520 likes | 669 Views
uPortal Roadmap. Patches, evolution, and revolution Andrew Petro, Yale University Eric Dalquist, Unicon. uPortal Releases. uPortal 2.4.3. Patch. Minor. Major. Types of releases. 2.4. 3 2.5. 1. Patch releases Bug fixes, backwards-compatible Every 1-2 months Easy to upgrade
E N D
uPortal Roadmap Patches, evolution, and revolution Andrew Petro, Yale University Eric Dalquist, Unicon
uPortal Releases uPortal 2.4.3 Patch Minor Major
Types of releases 2.4.3 2.5.1 • Patch releases • Bug fixes, backwards-compatible • Every 1-2 months • Easy to upgrade • Minor releases • New features and possible database changes • Every 6-12 months • May take work to upgrade • Major releases • Extensive changes • Every 2-4 years • (May be) Difficult to upgrade 2.5.0 2.6.0 3.0.0
Marching towards a particular release • Nightly build • “Milestone” • Alpha • Beta • Release Candidate • General Audience Release
This Presentation • uPortal 2.x Roadmap • uPortal 3.x Roadmap • Questions and Answers
uPortal 2.x Roadmap 2-4-patches 2-5-patches Towards 2.6 and beyond
What’s a Roadmap? • 2.5.0 Happened. What’s in it? • 2.4.3 Plans • 2.5.1 Plans • 2.6.0 Opportunities • 3.0.0 Revolution
uPortal 2.5.0 Evolutionary improvement Incremental new features, Takes some work to upgrade Released 26 May 2005 2.5.0
2.5.0 features • DLM • Better JSR-168 support • Require / embrace JDK 1.4 • Chaining throwables • Support JDK 1.5 • Spring • DOM3 / JAXP 1.3 • Threading / Concurrency library 2.5.0
DLM • Alternative to ALM • Pushed fragments managed as layouts of “fragment owners” 2.5.0
What is DLM? Personal Preferences Fragment Owners Declarative Configuration User’s Layout
Library Tab 2.5.0
Library Tab Plus 2.5.0
Simple User Layout Management PersonDirectory Template Assignment Template Personal Layout 2.5.0
Simple User Layout Management PersonDirectory Template Assignment Template Personal Layout 2.5.0
“Distributed” User Layout Management PersonDirectory “Template” Assignment Dynamic “Template” Personal Layout 2.5.0
“Distributed” User Layout Management Person Directory Template Assignment Dynamic Template Personal Layout 2.5.0
SLM? ALM? DLM? Currently: SLM ALM DLM Where we’re going: SLM CLM
JSR-168 support improvements • Expiration caching • Redirects • Window state changing in processAction 2.5.0
JDK 1.4 / Chaining Throwables PortalException PortalException ChannelRenderingException NullPointerException 2.5.0
JDK 1.5 support • Compiles and runs under JDK / JRE 1.5 2.5.0
Spring • Declarative configuration • That’s about Java Objects, rather than about Strings • The sun is setting on static factories that read class names from portal.properties. • PersonDirectory as the first Springified component 2.5.0
uPortal 2.4.3 The next 2-4-patches deliverable Backwards compatible conservative fixes, enhancement Sharing of fixes for released code. 2.4.3
Adoption of threading library • Backport-util-concurrent 2.4.3
Minor bugfixes 2.4.3
2.5.1 Backwards-compatible improvement. Bugfixes. 2.5.1
uPortal 2.6 And beyond 2.6.0
uPortal CVS head Head 2-5-patches 2.5.1 2.5.0 2-4-patches 2.4.3 … 2.4.0 2.4.1 portal
Will there be a uP 2.6? • Are there incremental improvements that could be made beyond uP 2.5 that would make you want to deploy 2.6? • So much so that there are developers, resources interested in working to make this happen? • Then it makes sense to produce uP 2.6. 2.6.0
Some uP 2.6 ideas • Continue to improve Layout Management • Stability, Stability, Stability • Have we stopped leaking memory yet? • Skinning improvements, CSS/Divs as default example • Groups and Permissions • More Spring • … 2.6.0
Serializable Sessions • And sessions worth serializing • Beyond load balancing and clustering • State-retaining failover * • (For channels written to take advantage)
JIRA for project planning • Identify desired improvements • Schedule for 2.6 • “Assign” resources • Track to completion 2.6.0
Lather, Rinse, Repeat • Continue to incrementally improve uPortal 2.x so long as there’s interest and resources. 2.6.0
Work to do Head 2-5-patches 2.5.1 2.5.0 2-4-patches 2.4.3 … 2.4.0 2.4.1 portal
At some point • Interest in continuing to develop uP 2.x wanes • Because there’s something better to work on • Move what we need into uP 3 • And now, for uPortal 3 roadmap… 2.6.0
uPortal 3.0.0 What’s next in portal technology 3.0.0
uPortal 3.0: Overview • Terminology and paradigm change: Channels replaced by Portlets • Componentization of framework • Modular rendering pipeline • Clean separation of business logic and persistence layer • Full support for uPortal 2 Channels • Upgrade tools 3.0.0
Portlet Domain Objects • Portlet Application & Portlet Deployment • Information from portlet.xml • Generated from deployed applications • Portlet Application & Portlet Definition • Deployment + Configuration • Maps application idioms to uPortal idioms 3.0.0
Portlet Domain Objects • Portlet Application & Portlet Entity • Definition + Configuration • Synonymous with channel publishing • Portlet Window • Portlet Entities painted on the screen • Tracks the state of the portlet • Referenced by portal layout 3.0.0
Domain Object Architecture uPortal Framework Domain objects Registries Domain objects Transfer objects DomainObjectFactories Caching DAO’s DAO Implementations e.g. Spring JDBC Database 3.0.0
WSRP Consumer and Producer • Consumer • WSRP4J consumer proxy portlet • Producer • Implementation of WSRP4J producer • Currently using Java Data Objects (JDO) • Missing DAO layer consistent with uPortal 3 3.0.0
Context Resolver Context A Context X Default Context Parameterprocessing … Rendering pipeline Layoutgenerator Transformer … Filter Transformer Serializer Rendering Architecture Selects context to process incoming request Parses request URL andinitiates actions on portlets Generates abstract user layout Chain of transformers and filters compiles presentation markup. Produces final markup, i.e. HTML, WML 3.0.0
Security • Acegi features • Has analog to uPortal 2 security providers • Designed with Spring Framework in mind • URL protection • Bean method-level protection • Support for Yale CAS • HTTP BASIC Authentication 3.0.0
Groups and Permissions • Port of groups and permissions from uPortal 2 • Separate module within uPortal 3.0 • Configured using Spring • Build process to produce separate jar files • Allows groups/permissions to be used in applications outside of uPortal 3.0.0
Person Directory • Person Directory has already been refactored in uPortal 2 • Separate module within uPortal 3 • Build process to produce separate jar files • Allows person directory to be used in applications outside of uPortal 3.0.0
Portlet Publishing • First publish the portlet application • Map custom PortletModes and WindowStates • Map user attributes from uPortal to the portlet • Second publish portlets from the app • Description • Configuration • Groups and Permissions 3.0.0
Utilities • Design to be configured as beans • Command line interface is a wrapper around the bean • Allows utilities to be run from portal code • DbLoader • Now supports constraints • Portlet Deployer 3.0.0
Milestones and Beta • Milestone builds • Render a layout based on an XML layout file • Render a layout based on data from database and ability to interact with portlets • Remaining features minus upgrade tools and instructions • Beta release • uPortal 2 feature set complete • Channels and CAR files work • Upgrade tools and instructions available 3.0.0