u Portal 3 Sneak Preview JASIG Winter Conference

  • Slides: 32
Download presentation
u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 u. Portal 3 sneak preview

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 u. Portal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc.

u. Portal 3: Sneak Preview Outline JA-SIG Winter Conference 2005 • Project goals •

u. Portal 3: Sneak Preview Outline JA-SIG Winter Conference 2005 • Project goals • Architecture overview – Flexibility through configuration • Demonstration – u. Portal 2 UI support • Features – What’s currently there • Release targets and timelines – More features to come

u. Portal 3: Sneak Preview Project goals JA-SIG Winter Conference 2005 • Long-term goals

u. Portal 3: Sneak Preview Project goals JA-SIG Winter Conference 2005 • Long-term goals for the framework – configuration flexibility • rendering mechanisms • HTTP parameter generation/processing mechanisms • data layer implementations – code maintenance in a long run • isolated, individually configured groups of components • transparent, sparse coupling

u. Portal 3: Sneak Preview Project goals JA-SIG Winter Conference 2005 • Goals for

u. Portal 3: Sneak Preview Project goals JA-SIG Winter Conference 2005 • Goals for the initial release – Spring framework • Dependency injection • Unified configuration – JSR 168 support – Complete WSRP integration – u. Portal 2 backwards-compatibility – Modular support for subprojects: GAP, Person. Dir – Shedding custom code: ACEGI, Hibernate

u. Portal 3: Sneak Preview Outline JA-SIG Winter Conference 2005 • Project goals •

u. Portal 3: Sneak Preview Outline JA-SIG Winter Conference 2005 • Project goals • Architecture overview – Flexibility through configuration • Demonstration – u. Portal 2 UI support • Features – What’s currently there • Release targets and timelines – More features to come

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: portal contexts u.

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: portal contexts u. Portal context • What is a Portal Context ? – Defines all aspects of a traditional portal instance • Parameter syntax • Design, navigation, profiles • Portlet selections, session scopes – Multiple, concurrent contexts can be used • Example contexts – u. Portal 2 clone – static frame showing a single portlet – service context for AJAX callback

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: context resolvers …

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: context resolvers … AJAX callbacks Single portlet u. Portal 2 lookalike Context Resolver • Servlet Path resolver – switch contexts by going to a specific servlet path – http: //host/u. Portal/context/. . . • Alternative context resolution strategies – user information • authentication state • user affiliation (groups), attributes (permissions) – user agent information (browser) – internal states, session (i. e. down for maintenance)

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: rendering • Rendering

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: rendering • Rendering is compiled by components – Rendering trees – Linear pipelines • Rendering component output – Creates or modifies content – Determines viable rendering path – Multiple component types • SAX components – XSLT transformer filter • String components – Portlet content injector – Built to accommodate other component types

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: Spring configuration u.

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: Spring configuration u. Portal 2 lookalike context rendering pipeline configuration … <property name=“pipeline. Elements”> <ref bean=“layout. Source”/> User layout <ref bean=“transient. Layout. Injector”/> <ref bean=“structure. Transfromation. Filter”/> <ref bean=“theme. Transformation. Filter”/> Structure and theme <ref bean=“sax 2 String. Caching. Filter”/> Caching/Serialization <ref bean=“rendering. Initiation. Filter”/> Portlet rendering <ref bean=“portlet. Incorporation. Filter”/> <ref bean=“servlet. Response. Writer”/> </property> …

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: render caching •

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: render caching • Some components cache content – ICache. Filter interface – Independent of the content type (SAX, String) • Cache manager – – output Determines available cache entry points Checks entry point validity Chooses optimal entry point Replays cache

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: URL parameter syntax

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: URL parameter syntax • URL construction and request parameter processing is programmatic and modular – URLs are generated by implementations, not by hand – Framework components come with their own URL constructors and parameter processors <property name=“url. Constructor. Providers”> <ref bean=“transient. Layout. Url. Constructor”/> Constructors <ref bean=“portlet. Error. Handler. Url. Constructor”/> </property> <property name=“processors”> <ref bean=“transient. Layout. Parameter. Processor”/> <ref bean=“portlet. Error. Handler. Parameter. Processor”/> </property> Processors

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: URL construction •

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: URL construction • URL construction in Java code – Construct URLs by calling methods on command interfaces – Portlet error handler URL example: IPortlet. Error. Commands c = portal. Url. get. Url. Constructor (name); c. restart. Broken. Portlet (portlet. Window. Id); portal. Url. to. String (); – Portlets can access framework URL syntax • Outside of JSR 168 • Used by u. Portal 3 management portlets

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: URL construction •

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: URL construction • URL construction in XSLT stylesheets – Using extension elements portlet <portlet: render. Url> <portlet: parameter name="parameter. Name" value="parameter value"/> <portlet: portlet. Mode window. Id="another. Id" mode="view"/> </portlet: render. Url> <portal: url> framework <rendering: parameter source=“theme” name=“skin. Name” value=“matrix”/> <rendering: attribute source="structure" name=“minimized" value=“true" select="//folder[@type='some. Type']"/> </portal: url>

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: Examples of URL

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: Examples of URL syntax features • u. Portal 2 syntax support – Layout management, Channel/Folder attributes, etc. • Encode navigational state – Chemistry Tab: http: //host/u. Portal/Chemistry 101/ – Mail portlet: http: //host/u. Portal/portlet/mail • Encode user spaces – Users’ tab: http: //host/u. Portal/~peter/blog. Page/

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: controllers • User

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: controllers • User – Keeps track of the current user – Distributes authentication events – ACEGI implementation • Persistence – Coordinates persistence for a context • Locale manager – Maintains and resolves multiple sources of locale preference

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: portlet handling •

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: portlet handling • Portlet. Window. Manager – Coordinates portlet render/action requests – Rendering models • Linear • Multithreaded – Error handler • Portlet Domain Objects – – Deployment (as distributed) Definition (published) Entity (subscribed) Window (placed in the layout)

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: portlet registries u.

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: portlet registries u. Portal Framework Domain objects Registries Domain objects Transfer objects DAO’s DAO Implementations e. g. Spring JDBC Database Domain Object Factories Caching

u. Portal 3: Sneak Preview WSRP JA-SIG Winter Conference 2005 • Consumer Support –

u. Portal 3: Sneak Preview WSRP JA-SIG Winter Conference 2005 • Consumer Support – Similar to u. Portal 2. 4 – Confirmed integration to the Sakai framework • Producer Support – Any portlet can be exposed – Re-use configured instances – u. Portal as a service provider

u. Portal 3: Sneak Preview Porltets JA-SIG Winter Conference 2005 • Specification Compliance –

u. Portal 3: Sneak Preview Porltets JA-SIG Winter Conference 2005 • Specification Compliance – Complete JSR-168 specification compliance – Ease of extension for custom features • Management – Better use of portlet deployment data – Administrators need less detailed portlet knowledge • Future compatibility – JSR-286 on the horizon – Significantly less effort for integration with u. Portal 3

u. Portal 3: Sneak Preview Object Caching JA-SIG Winter Conference 2005 • u. Portal

u. Portal 3: Sneak Preview Object Caching JA-SIG Winter Conference 2005 • u. Portal 2 has no explicit caches – Caches are hidden in the framework – Difficult to configured • One cache per object type • Reduces long term references – Lowers the possibility of memory leaks long term – Less complicated framework code • Performance tuning for your environment – Fine grained controls provide flexibility

u. Portal 3: Sneak Preview Object Caching JA-SIG Winter Conference 2005 • Cache Configuration

u. Portal 3: Sneak Preview Object Caching JA-SIG Winter Conference 2005 • Cache Configuration registries Context <bean id="portlet. Definition. Registry" class=“. . . Portlet. Definition. Registry. Impl"> <property name="cache"> <ref bean="/caches/portlet. Definition. Cache"/> </property> </bean> caches Context <bean id="portlet. Definition. Cache" class=". . . Ehcache. Adapter"> <property name="ehcache"> <bean parent="base. Eh. Cache. Bean"> <property name="max. Elements. In. Memory"> <value>32</value> </property> </bean>

u. Portal 3: Sneak Preview u. Portal 2 Compatibility JA-SIG Winter Conference 2005 •

u. Portal 3: Sneak Preview u. Portal 2 Compatibility JA-SIG Winter Conference 2005 • Full u. Portal 2 stylesheet support is available – – Structure and theme style compatibility URL Syntax Stylesheet Definition Files (SDFs) Support provided by u. Portal 3 API implementations • Simple User Layout Management – Port of the basic u. Portal 2 layout manager – Provides layout customization for u. Portal 3 – Template user support

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 u. Portal 2 Compatibility -

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 u. Portal 2 Compatibility - TODO • IChannel Support – We need community feedback – What APIs do your channels use? – IBM’s API Scanner: • http: //www. alphaworks. ibm. com/tech/aus • DLM Integration – Targeted as the default layout manager • Database Upgrade Tools – Layout customizations – User preferences

u. Portal 3: Sneak Preview Hibernate JA-SIG Winter Conference 2005 • Standard persistence mechanism

u. Portal 3: Sneak Preview Hibernate JA-SIG Winter Conference 2005 • Standard persistence mechanism for u. Portal 3 – All DAOs will use Hibernate for persistence • Greatly reduced persistence code – No SQL to maintain – Simplifies adding persisted data – Integrated schema update tools • Provides greater range of database support

u. Portal 3: Sneak Preview Unit Testing JA-SIG Winter Conference 2005 • New design

u. Portal 3: Sneak Preview Unit Testing JA-SIG Winter Conference 2005 • New design is easier to test – Smaller components are more specialized • Long term stability – Tests provide assurance during customization • Greater initial coverage – Majority of the code is covered by tests

u. Portal 3: Sneak Preview Services JA-SIG Winter Conference 2005 • Sub-Project Development –

u. Portal 3: Sneak Preview Services JA-SIG Winter Conference 2005 • Sub-Project Development – Break out u. Portal independent services – Provides functionality to more than just u. Portal • Current Sub-Projects – Groups and Permissions – Person Directory

u. Portal 3: Sneak Preview Release Strategy JA-SIG Winter Conference 2005 • Milestone 3

u. Portal 3: Sneak Preview Release Strategy JA-SIG Winter Conference 2005 • Milestone 3 – – – Released December 2 nd Group management portlet ported User locale preference framework u. Portal 2 stylesheet support u. Portal 3 Rendering context Service integration • Person Directory • Groups Framework December January February March April May

u. Portal 3: Sneak Preview Release Strategy JA-SIG Winter Conference 2005 • Alpha –

u. Portal 3: Sneak Preview Release Strategy JA-SIG Winter Conference 2005 • Alpha – – – Target: End of February 2006 Implementation cleanup Permissions framework integration Service integration testing Portlet support verification December January February March April May

u. Portal 3: Sneak Preview Release Strategy JA-SIG Winter Conference 2005 • Beta –

u. Portal 3: Sneak Preview Release Strategy JA-SIG Winter Conference 2005 • Beta – – Target: End of March 2006 Ready to Rock! Complete ‘Portlet Only’ portal Usable by new adopters for evaluation and planning December January February March April May

u. Portal 3: Sneak Preview Release Strategy JA-SIG Winter Conference 2005 • Release Candidates

u. Portal 3: Sneak Preview Release Strategy JA-SIG Winter Conference 2005 • Release Candidates & 3. 0 Final – – Need community involvement! IChannel support Database migration tools Distributed Layout Management

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: rendering attributes •

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: rendering attributes • Rendering attributes – “rendering preferences” – Information associated with layout elements – Defined by users, transforms, components – u. Portal 2 example: column width • Generalized in u. Portal 3 – Providers: determine appropriate attribute sources • By folder. Id, portlet. Window. Id, element name, etc. – Values: handle persistence, scoping – Injectors: insert rendering attribute information • XSLT params, <parameter/> elements, etc. – Multiple attribute scopes: transforms, layouts, portlets

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: rendering attributes •

u. Portal 3: Sneak Preview JA-SIG Winter Conference 2005 Architecture overview: rendering attributes • Simple rendering attribute provider example – – Recognizes <folder/> elements by @ID attribute Stores attribute values for that user in a DB Outputs default values for missing attributes Configured to inject attributes as <parameter/> elements • Hierarchical rendering attribute provider – Recognizes <folder/> elements by @ID attribute • Outputs attribute values defined by the user – Recognizes <folder/> by @fragment. Id attribute • Outputs attribute values defined by the fragment author