uportal 3: sneak previewja-sig winter conference 2005 uportal 3 sneak preview eric dalquist, peter...
TRANSCRIPT
![Page 1: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/1.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
uPortal 3sneak preview
Eric Dalquist, Peter Kharchenko
Unicon Inc.
![Page 2: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/2.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Outline
• Project goals
• Architecture overview– Flexibility through configuration
• Demonstration– uPortal2 UI support
• Features– What’s currently there
• Release targets and timelines– More features to come
![Page 3: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/3.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Project goals
• 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
![Page 4: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/4.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Project goals
• Goals for the initial release– Spring framework
• Dependency injection• Unified configuration
– JSR168 support– Complete WSRP integration– uPortal2 backwards-compatibility– Modular support for subprojects: GAP,
PersonDir – Shedding custom code: ACEGI, Hibernate
![Page 5: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/5.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Outline
• Project goals
• Architecture overview– Flexibility through configuration
• Demonstration– uPortal2 UI support
• Features– What’s currently there
• Release targets and timelines– More features to come
![Page 6: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/6.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Architecture overview: portal contexts
• 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
– uPortal2 clone– static frame showing a single portlet– service context for AJAX callback
uPor
tal c
onte
xt
![Page 7: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/7.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Architecture overview: context resolvers
• 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)
• Servlet Path resolver– switch contexts by going to
a specific servlet path– http://host/uPortal/context/...
AJA
X c
allb
acks
…
Context Resolver
uPor
tal2
look
alik
e
Sin
gle
port
let
![Page 8: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/8.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
output
Architecture overview: rendering
• Rendering is compiled by components– Rendering trees– Linear pipelines
• Rendering component– 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
![Page 9: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/9.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Architecture overview: Spring configuration
…
<property name=“pipelineElements”>
<ref bean=“layoutSource”/>
<ref bean=“transientLayoutInjector”/>
<ref bean=“structureTransfromationFilter”/>
<ref bean=“themeTransformationFilter”/>
<ref bean=“sax2StringCachingFilter”/>
<ref bean=“renderingInitiationFilter”/>
<ref bean=“portletIncorporationFilter”/>
<ref bean=“servletResponseWriter”/>
</property>
…
User layout
Structure and theme
Caching/Serialization
Portlet rendering
uPortal2 lookalike context rendering pipeline configuration
![Page 10: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/10.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
output
Architecture overview: render caching
• Some components cache content– ICacheFilter interface– Independent of the content type (SAX, String)
• Cache manager– Determines available cache entry points– Checks entry point validity– Chooses optimal entry point– Replays cache
![Page 11: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/11.jpg)
uPortal 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=“urlConstructorProviders”>
<ref bean=“transientLayoutUrlConstructor”/>
<ref bean=“portletErrorHandlerUrlConstructor”/>
</property>
<property name=“processors”>
<ref bean=“transientLayoutParameterProcessor”/>
<ref bean=“portletErrorHandlerParameterProcessor”/>
</property>
Constructors
Processors
![Page 12: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/12.jpg)
uPortal 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:
– Portlets can access framework URL syntax• Outside of JSR168• Used by uPortal3 management portlets
IPortletErrorCommands c = portalUrl.getUrlConstructor (name);
c.restartBrokenPortlet (portletWindowId);
portalUrl.toString ();
![Page 13: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/13.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Architecture overview: URL construction
• URL construction in XSLT stylesheets– Using extension elements
<portal:url>
<rendering:parameter source=“theme” name=“skinName” value=“matrix”/>
<rendering:attribute source="structure" name=“minimized" value=“true" select="//folder[@type='someType']"/>
</portal:url>
<portlet:renderUrl>
<portlet:parameter name="parameterName" value="parameter value"/>
<portlet:portletMode windowId="anotherId" mode="view"/>
</portlet:renderUrl>
portlet
framework
![Page 14: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/14.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Architecture overview: Examples of URL syntax features
• uPortal2 syntax support– Layout management, Channel/Folder attributes, etc.
• Encode navigational state– Chemistry Tab: http://host/uPortal/Chemistry101/– Mail portlet: http://host/uPortal/portlet/mail
• Encode user spaces– Users’ tab: http://host/uPortal/~peter/blogPage/
![Page 15: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/15.jpg)
uPortal 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
![Page 16: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/16.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Architecture overview: portlet handling
• PortletWindowManager– 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)
![Page 17: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/17.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Architecture overview: portlet registries
Database
DAO’s
Registries
DAO Implementations e.g. Spring JDBC
Caching
uPortal Framework
Domain objects
Domain objectsTransfer objects
DomainObject
Factories
![Page 18: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/18.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
WSRP
• Consumer Support– Similar to uPortal 2.4– Confirmed integration to the Sakai framework
• Producer Support– Any portlet can be exposed– Re-use configured instances– uPortal as a service provider
![Page 19: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/19.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Porltets
• 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 uPortal3
![Page 20: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/20.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Object Caching
• uPortal2 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
![Page 21: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/21.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Object Caching
• Cache Configuration
<bean id="portletDefinitionRegistry" class=“...PortletDefinitionRegistryImpl"> <property name="cache"> <ref bean="/caches/portletDefinitionCache"/> </property></bean>
registries Context
<bean id="portletDefinitionCache" class="...EhcacheAdapter"> <property name="ehcache"> <bean parent="baseEhCacheBean"> <property name="maxElementsInMemory"> <value>32</value> </property> </bean> </property></bean>
caches Context
![Page 22: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/22.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
uPortal 2 Compatibility
• Full uPortal 2 stylesheet support is available– Structure and theme style compatibility– URL Syntax– Stylesheet Definition Files (SDFs)– Support provided by uPortal3 API implementations
• Simple User Layout Management– Port of the basic uPortal 2 layout manager– Provides layout customization for uPortal 3– Template user support
![Page 23: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/23.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
uPortal 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
![Page 24: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/24.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Hibernate
• Standard persistence mechanism for uPortal3– 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
![Page 25: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/25.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Unit Testing
• 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
![Page 26: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/26.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Services
• Sub-Project Development– Break out uPortal independent services– Provides functionality to more than just uPortal
• Current Sub-Projects– Groups and Permissions– Person Directory
![Page 27: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/27.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Release Strategy
• Milestone 3– Released December 2nd– Group management portlet ported– User locale preference framework– uPortal 2 stylesheet support– uPortal 3 Rendering context– Service integration
• Person Directory• Groups Framework
December January February March April May
![Page 28: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/28.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Release Strategy
• Alpha– Target: End of February 2006– Implementation cleanup– Permissions framework integration– Service integration testing– Portlet support verification
December January February March April May
![Page 29: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/29.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Release Strategy
• 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
![Page 30: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/30.jpg)
uPortal 3: Sneak Preview JA-SIG Winter Conference 2005
Release Strategy
• Release Candidates & 3.0 Final– Need community involvement!– IChannel support– Database migration tools– Distributed Layout Management
![Page 31: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/31.jpg)
uPortal 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– uPortal2 example: column width
• Generalized in uPortal3– Providers: determine appropriate attribute sources
• By folderId, portletWindowId, element name, etc.
– Values: handle persistence, scoping– Injectors: insert rendering attribute information
• XSLT params, <parameter/> elements, etc.
– Multiple attribute scopes: transforms, layouts, portlets
![Page 32: UPortal 3: Sneak PreviewJA-SIG Winter Conference 2005 uPortal 3 sneak preview Eric Dalquist, Peter Kharchenko Unicon Inc](https://reader035.vdocuments.net/reader035/viewer/2022062515/56649f565503460f94c7b2ec/html5/thumbnails/32.jpg)
uPortal 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 @fragmentId attribute
• Outputs attribute values defined by the fragment author