Title: Jerry Held
1(No Transcript)
2Jason PepperPrincipal Product Manager Oracle
Corporation
3Tips Techniques for Deploying a Scalable Portal
4Agenda
- Why is Scalability Important for Portal
Deployment? - OracleAS Portal Page Generation Architecture
- Page and Portlet Caching
- Other Performance Factors
- Results
- Conclusion
5Agenda
- Why is Scalability Important for Portal
Deployment? - OracleAS Portal Page Generation Architecture
- Page and Portlet Caching
- Other Performance Factors
- Results
- Conclusion
6Why Portals?
- Enable integrated, secure access to all
information sources - Support personalized views for different users
and communities
7The Portal Challenge?
How to make it Popular
Or, how to make it Scale?
8How to make your Portal scale?
- Cross platform
- Choose the most cost-effective platform for each
component - Distributed
- Spread the load across servers
- Parallel execution
- Use multiple threads to access content
- Cache, Cache, Cache
9Intelligent Caching
- Keep information fresh and timely while
minimizing the cost of dynamic, personalized
content - Must support
- Personalization
- Modularity pages and page fragments
- Page, Portlet, and Item-level security
10Agenda
- Why is Scalability Important for Portal
Deployment? - OracleAS Portal Page Generation Architecture
- Page and Portlet Caching
- Other Performance Factors
- Results
- Conclusion
11OracleAS Portal Page Generation
OracleAS Portal Middle Tier
OracleAS Portal Database Tier
Browser Client
Web Cache
Page Metadata
Oracle HTTP Server
mod_oc4j
Parallel Page Engine
Portal Repository
Database Provider
PortletContent
CachedMetadata Content
PortletContent
Web Provider
Portal Cache
12(No Transcript)
13My Oracle Architecture
14OracleAS Portal Page Generation
OracleAS Portal Middle Tier
OracleAS Portal Database Tier
Browser Client
Web Cache
Page Metadata
Oracle HTTP Server
mod_oc4j
Parallel Page Engine
Portal Repository
Database Provider
PortletContent
CachedMetadata Content
PortletContent
Web Provider
Portal Cache
15OracleAS Web Cache
- Memory-based cache
- Combines caching, compression, and assembly to
accelerate both static and dynamic content - Also provides load-balancing, failover, and surge
protection to improve availability, reliability - Portal functions as Origin Server
16Portal Use of Web Cache
- Automatically installed and configured
- UI for global cache settings and invalidation (by
user, by object, or for entire cache) - Features used
- Caching of dynamically generated, user-specific
page and portlet content - Fine-grained cache control
- Invalidation-based caching
- Layer 7 load balancing and failover detection
- Performance Assurance and Surge Protection
17Web Cache Deployment Options
- Single Portal Installation
- Co-located
- Same physical server as Portal middle tier
- OK for smaller sites
- Dedicated
- Web Cache on own server
- Preferred option to avoid resource contention
- Performs well on inexpensive hardware
18Web Cache Deployment Options
- Multiple Portal Installations and/or Web
Providers - Dedicated
- Each installation/provider has its own Web Cache
- Better for autonomous administration, load
distribution, firewall protection, network
performance - Privilege changes cause invalidation on local
site only - Shared
- Each installation/provider uses a common Web
Cache - Privilege changes cause invalidation across sites
19My Oracle Tweaks
- Upgraded to Web Cache 904
- Compressed CSS bug
- Buffer limit incompatibilty 32K
- Invalidation propogation fails without identical
config files - Enable session binding to match LBR
- Compression rule for non-cacheable pages using
/portal/page
20OracleAS Portal Page Generation
OracleAS Portal Middle Tier
OracleAS Portal Database Tier
Browser Client
Web Cache
Page Metadata
Oracle HTTP Server
mod_oc4j
Parallel Page Engine
Portal Repository
Database Provider
PortletContent
CachedMetadata Content
PortletContent
Web Provider
Portal Cache
21Portal Middle Tier
- OracleAS installation acts as the Portal middle
tier - Portal directly leverages the following OracleAS
services - Oracle HTTP Server
- mod_plsql
- mod_oc4j
- Web Cache
22Oracle HTTP Server
- Powered by Apache
- De-facto standard web listener
- Serves as the HTTP entry point to OracleAS
23My Oracle Tweaks
- KeepAlive Off
- MinSpareServers 30
- MaxSpareServers 100
- StartServers 30
- MaxClients 250
- MaxRequestsPerChild 2000
24mod_oc4j
- Apache plug-in
- Routes Servlet requests to OracleAS Containers
for J2EE (OC4J) Servlet engine - Proven industry leading performance
- Supports latest J2EE specifications
25My Oracle Tweaks
- Removed xingc from opmn.xml
- Increased mx and ms
- cacheDir matched to PlsqlCacheDirectory
- TCP.NODELAY Yes
- SDU 8761
- numProcs set in opmn.xml
ltoc4j maxRetry"3" instanceName"home"
numProcs"2"gt ltconfig-file
path"/disk2/oracle/midtier/j2ee/home/config/serve
r.xml"/gt ltoc4j-option value"-properties"/gt
ltport ajp"3000-3100" jms"3201-3300"
rmi"3101-3200"/gt ltenvironmentgt ltprop
name"LD_LIBRARY_PATH" value"/disk2/oracle/midtie
r/lib"/gt lt/environmentgt lt/oc4jgt
26Parallel Page Engine
- Runs as a Servlet
- Responsible for page assembly
- Talks to web and database providers to get
portlet content - Leverages local file system cache to store page
definitions and portlet content - Configurable number of threads for talking to
providers in parallel
27mod_plsql
- Translates URL requests into stored procedure
calls - Gateway into Portal Database
- Access to Portal Repository, Portal UI and
Database Providers - Provides connection pooling for efficient session
management
28My Oracle Tweaks
- NLS_LANG matches DB setting
- PlsqlIdleSessionCleanup 15 (mins)
- PlsqlCacheDirectory aliased to RAM disk
- PlsqlCacheTotalSixe 8Gb
- PlsqlCacheMaxAge 15 (days)
29Portal Cache
- File system-based storage for cached versions of
page definitions and portlet content - Eliminates the need to always regenerate pages
and portlets - Provides backup to Web Cache
30OracleAS Portal Page Generation
OracleAS Portal Middle Tier
OracleAS Portal Database Tier
Browser Client
Web Cache
Page Metadata
Oracle HTTP Server
mod_oc4j
Parallel Page Engine
Portal Repository
Database Provider
PortletContent
CachedMetadata Content
PortletContent
Web Provider
Portal Cache
31Portal Database
- Foundation of an Oracle Portal installation
- Consists of 200 tables/views and over 1000
PL/SQL packages - Portal Databases can be registered with each
other to make up a federated portal environment - departmental portals/installations can be easily
networked together to form an enterprise portal
32Portal Repository
- Storage for
- provider registry
- page and style definitions
- user customizations
- access controls
- definitions of page groups, data-driven
components, etc. - logs
- UI screens for creating and editing all of the
portal objects (e.g. pages, items, charts, etc.)
33Database Providers
- Hosted out of a Portal Database
- Implemented as PL/SQL or Java stored procedures
- Interacts with framework via direct database
procedure calls results returned as HTML/XML - Ideal for database-centric applications
- Built with PDK-PL/SQL and/or declarative wizards
- APIs for preference store, logging, translation
store, security, caching, etc.
34OracleAS Portal Page Generation
OracleAS Portal Middle Tier
OracleAS Portal Database Tier
Browser Client
Web Cache
Page Metadata
Oracle HTTP Server
mod_oc4j
Parallel Page Engine
Portal Repository
Database Provider
PortletContent
CachedMetadata Content
PortletContent
Web Provider
Portal Cache
35Web Providers
- Work in any web environment
- Servlet, JSP, ASP, cgi-bin, Perl, etc.
- Communication via HTTP results returned as
HTML/XML - Stuctured data exchange using SOAP
- Ideal for adapting existing or remote Web
services - allow developers to work in a familiar
development environment - Java PDK
- Helper classes for portlet creation
- Provide Java API-level services (storage,
preferences, parameter passing, errors, etc.)
36Agenda
- Why is Scalability Important for Portal
Deployment? - OracleAS Portal Page Generation Architecture
- Page and Portlet Caching
- Other Performance Factors
- Results
- Conclusion
37Page and Portlet Caching
- Dynamic page assembly is an expensive operation
- Places heavy load on providers, database,
network, and middle tier - Caching minimizes database and provider calls
- Almost all content and metadata is cached
- Page definitions
- Portlet content
- Assembled pages
- Documents (including images)
- Events
- Login Metadata
38Caching Types
- Invalidation-based caching (Web Cache)
- Providers proactively send invalidation message
- Content can also expire when maximum cache
retention period is reached (invalidation-with-exp
iry) - Validation-based caching (Portal Cache)
- The middle tier contacts the provider to see if
the cache entry is still valid - Expiry-based caching (Portal Cache)
- PPE checks a time stamp for the cache entry to
see if it is still valid
39Choosing a Caching Type
- Validation/Invalidation
- Users will always see the most up-to-date
information - Use when
- Content changes frequently
- Cost of checking validity or triggering
invalidation is low - Expiry
- Content cached for specified period of time may
grow stale - Use when
- Content is not time-sensitive
- Cost of validation/invalidation is high
40User and System Level Caching
- System level
- Cache entries shared by all users, including
public users - Recommended for content that isnt protected, or
for content that doesnt support user
customizations - User level
- Cache entries only available to a specific user
- Required for protected content, or for content
that supports user customizations
41Web Cache and User Level Caching
Web Cache
- User-level content keyed by userid
- Can be refreshed from Portal Cache if
invalidation-based combined with validation-based
caching (DB portlets only) - System-level content in Web Cache shared across
sessions
Sess 1
Sess 2
Sess 3
Sess 4
User1
User2
42Page Caching Options
Page Group
Page
43Page Caching Options
- Cache page definition only
- Page definition (page structure, portlets, items)
cached at user level - Both Web Cache and Portal Cache (invalidation
validation) - Refreshed when any change occurs on page,
including customization, items, privileges,
templates, and styles - Page re-assembled on every request
- Portlet validity/expiry checked on every request
44Page Caching Options
- Cache page definition and content for N minutes
- Caches assembled page at user level
- Portal Cache only (expiry-based) plus browser
- Best for performance
- Eliminates definition generation and page
assembly - But can result in stale content
- Ignores portlet caching options until page
expires - Change to page definition will always force a
refresh
45Page Caching Options
- Cache Page Definition Only at System Level
- Single cached copy of the page definition in the
system cache for all users. - Page customization options disabled.
- Reduces storage requirements and improves
performance. - Cache Page Definition And Content at System Level
for Minutes - Single cached copy of the page definition and
page content, including the rendered content of
all portlets. - Page customizations are not possible
- Select this option for pages that are more static
and are unlikely to change within the specified
period.
46Page Caching Options
- Dont cache
- Disables page caching
- Use sparingly to avoid impact on performance
- Use when
- Testing
- Page contains PL/SQL items or URL items to render
dynamic content that must be constantly refreshed
(better to use a portlet with short expiry) - Concerned that changes to security can cause
active users to lose privileges on page
47Page Caching Options - Summary
Page Definition Only
Page Definition and Content
Dont Cache
- Portlets where content must always be up-to-date
- System Cache for all users
- Static content
- Expiry-based portlets
- System Cache for all users
- Dynamic items that must be up-to-date
- Testing
48Portlet Caching
49Portlet Caching
- Content only is cached (not metadata)
- Invalidation-based provider must send
invalidation message - Validation-based provider contacted to validate
portlet - Expiry-based provider not contacted until cache
entry expires (different than pages) - Invoked through PDK APIs
- Can combine validation invalidation for DB
portlets
50Portlet Caching System Level
- Disables all customization options for the
portlet. - Does not enforce access privileges for the
portlet. - Displays only public data.
- A System cached Page, will cause the portlet to
be cached at the system level. - If Web Provider specifies system-level caching
for a portlet. Cannot change the cache setting
for the portlet manually because it is already
set.
51Choosing Portlet Caching Options
Invalidation
Validation
Expiry
- Static or Dynamic content
- Real-time application can send invalidation
message
- Same as Invalidation
- Use in combination with invalidation (DB Portlets
only)
- Static content (choose period to match update
frequency) e.g. page banner - Dynamic, not real time (e.g. delayed stock quote,
catalogue)
- Dont cache if content must be real-time and the
application cannot trigger an invalidation message
52Document and Image Caching
- Documents and Images in Portal Repository (/docs)
- Cached in Portal Cache only (for security)
- Exceptions Category, Perspective, Style
- Documents and Images from File System
- Default Cached in Web Cache forever
- Portal /images directory set to expire after 30
days - Recommended for widely used images (e.g. logo,
banner icons)
53Other Cacheable Objects
- Event Metadata
- New feature
- Portlets can publish/subscribe to events (e.g.
push button, click link, select value) - Minimizes coding makes portlets more reusable
- Supports inter-portlet and inter-page
communication via formal parameters - Same caching model as pages (invalidation
validation) - Login Metadata
- Describes the current session
- Passed to providers that want to track state
- Cached in Web Cache
54Invalidation Events
- Two types
- Hard Invalidations Happen immediately
- Soft Invalidations Deferred to avoid processing
spikes - Affect both Web Cache and Portal Cache
- Granular scope, depending on event
- Entire Cache
- All objects for a specified user
- All instances of a specified object
- Pages containing an invalidated portlet
55Hard Invalidation Events
- Clear entire cache
- Clear cache for user
- Clear cache for object
- Click Refresh link on page
- Modify page properties or layout
- Modify item
- Modify template or style
- Modify provider properties
- Customize page or portlet
- Edit defaults on page or portlet
56Soft Invalidation Events
- Delete user
- Add user to group
- Remove user from group
- Add group to group
- Remove group from group
- Delete group
- Change privilege on object in Repository
57Agenda
- Why is Scalability Important for Portal
Deployment? - OracleAS Portal Page Generation Architecture
- Page and Portlet Caching
- Other Performance Factors
- Results
- Conclusion
58Other Performance Factors
- HTTP Server
- Login Rate
- Portlet Execution Speed
- Page Complexity
- Network Bandwidth
- Load Distribution
- Other Portal Activity
- Hardware Resources
- CPU Performance
- Type of Content
- SSL
59Agenda
- Why is Scalability Important for Portal
Deployment? - OracleAS Portal Page Generation Architecture
- Page and Portlet Caching
- Other Performance Factors
- Results
- Conclusion
60Unique Logins per Day
61Unique Logins per Hour
62Page Views per Day
63Page Views CPU Load
64Agenda
- Why is Scalability Important for Portal
Deployment? - OracleAS Portal Page Generation Architecture
- Page and Portlet Caching
- Other Performance Factors
- Results
- Conclusion
65Conclusion
- Key Success Factors for deploying an enterprise
portal to a large audience - Intelligent Caching
- Scalable, Distributed, Cross-Platform
Architecture - Uniquely combined in OracleAS Portal
- Understanding scalability features and the page
generation process will help you design and build
your enterprise portal
66Next Steps.
- Recommended sessions
- 40046 An Overview of Enterprise Portals Today
and Tomorrow - Marco Tilli - 40031 The New Enterprise Manager End-to-end
Performance Management of Oracle Solutions - 40051 Manage, Integrate and Publish your
Enterprise Content into Your Portal - 40047 Collaborate on the same Portal page
- Recommended demos and/or hands-on labs
- Oracle Application Server Portal Hands-on lab
67Next Steps.
- See Your Business in Our Software
- Visit the DEMOgrounds for a customized
architectural review, see a customized demo with
Solutions Factory, or receive a personalized
proposal. Visit the DEMOgrounds for more
information. - Relevant web sites to visit for more information
- http//portalcenter.oracle.com
- http//otn.oracle.com/products/oem/content.html
68A
69Reminder..Please complete the OracleWorld
online session surveyThank you.
70Session Activity Guide
Sessions - ENTERPRISE PORTALS
- Design an Attractive and Compelling Portal
InterfaceMonday, 400 PM Moscone 133 - An Overview of Enterprise Portals Today and
TomorrowTuesday, 1100 AM Moscone 134 - Manage, Integrate, and Publish Enterprise Content
into Your PortalTuesday, 830 AM Moscone 133 - Develop Java Portlets for Your PortalTuesday,
500 PM Moscone 252
- Get Your Community to Collaborate on the Same
Portal PageWednesday, 830 AM Moscone 252 - Integrate your Enterprise Business Applications
Into Your PortalWednesday, 1100 AM Moscone 252 - Tips and Techniques for Deploying a Scalable
PortalWednesday, 100 PM Moscone 302 - Administer and Monitor Your Portal with Oracle
Enterprise ManagerWednesday, 430 PM Moscone 302
71Session Activity Guide
Activities - ENTERPRISE PORTALS
- Hands On Labs Monday, 1030 AM 500
PMTuesday, 830 AM 1230 PMTuesday, 300 PM
500 PMTuesday, 630 PM 1000 PMWednesday,
830 AM 430 PMThursday, 830 AM 230
PMMarriott Hotel - Golden Gate B2 - Oracle DEMOgroundsMonday, 500 PM 800
PMTuesday, 1030 AM 100 PMTuesday, 300 PM
600 PMWednesday, 1100 AM 430 PMThursday,
1030 AM 200 PMShow floor Booth 1326 Oracle
AS
- Meet the Portal Guru Marco TilliTuesday, 330
PM Guru Lounge - Portal PartnersOracle Application Server Partner
Pavilion Booth 710
72(No Transcript)