uPortal Roadmap


Published on

An overview of the uPortal roadmap at a Jasig conference in New Orleans

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

uPortal Roadmap

  1. 1. Presenters: Eric Dalquist Unicon, Inc. Andrew Petro Yale University Ken Weiner Unicon Inc. “ uPortal Roadmap”
  2. 2. Overview <ul><li>uPortal releases </li></ul><ul><li>Where we are </li></ul><ul><ul><li>uPortal 2.4 – 2.4.x </li></ul></ul><ul><li>Where we’re going </li></ul><ul><ul><li>uPortal 2.5 – 2.x </li></ul></ul><ul><ul><li>uPortal 3.0 </li></ul></ul>
  3. 3. uPortal Releases <ul><li>Patch releases </li></ul><ul><ul><li>Bug fixes, more stable than previous release </li></ul></ul><ul><ul><li>Every 1-2 months </li></ul></ul><ul><ul><li>Easy to upgrade </li></ul></ul><ul><li>Minor releases </li></ul><ul><ul><li>New features and possible database changes </li></ul></ul><ul><ul><li>Every 6-12 months </li></ul></ul><ul><ul><li>Not trivial to upgrade </li></ul></ul><ul><li>Major releases </li></ul><ul><ul><li>Extensive changes </li></ul></ul><ul><ul><li>Every 2-4 years </li></ul></ul><ul><ul><li>Difficult to upgrade </li></ul></ul>uPortal 2.4.1 Major Minor Patch
  4. 4. 2000-2003 1.0 JSP Architecture 1.5 Added roles 1.6 Performance 2.3 Apr JSR 168 Portlet Support 2004 2.4 Sep 3.0 ? WSRP Consumer uPortal Release Timeline 2005 2.0 XSLT Architecture 2.1 Groups, stats, etc. 2.2 Agg.layouts, i18n 2.5 Mar ? Distributed Layouts Native Portlets
  5. 5. uPortal 2.4
  6. 6. uPortal 2.4 Summary <ul><li>2.4 Released September 24, 2004 </li></ul><ul><ul><li>WSRP Consumer </li></ul></ul><ul><ul><li>EXCLUSIVE Portlet WindowState </li></ul></ul><ul><ul><li>Automatic CAR Deployment </li></ul></ul><ul><ul><li>Automatic RSS Version Detection </li></ul></ul><ul><ul><li>Multiple Named LDAP Server Option </li></ul></ul><ul><ul><li>Apache Commons Logging </li></ul></ul><ul><li>2.4.1 Released November 4, 2004 </li></ul>
  7. 7. uPortal 2.4: WSRP Consumer <ul><li>Based on WSRP4J </li></ul><ul><ul><li>Configuration information is provided by the producer </li></ul></ul><ul><ul><li>Four service URLs are needed from the producer </li></ul></ul><ul><ul><li>A portlet handle is needed, multiple portlets may be provided by a single producer </li></ul></ul><ul><li>WSRP Producer Deprecated </li></ul><ul><ul><li>May be re-introduced in a later version </li></ul></ul>
  8. 8. uPortal 2.4: Portlet File Downloading <ul><li>Simple Servlet </li></ul><ul><ul><li>Standard way of providing non-HTML content </li></ul></ul><ul><ul><li>Portlet places the file information in the session, servlet uses that data to send the appropriate file </li></ul></ul><ul><ul><li>Tomcat bug prevents a portlet and servlet from sharing a session, should be fixed in Tomcat 5.5 </li></ul></ul><ul><li>EXCLUSIVE Portlet WindowState </li></ul><ul><ul><li>Allows a portlet to function as a servlet </li></ul></ul><ul><ul><li>No portal markup is included in the output </li></ul></ul><ul><ul><li>Any file type can be provided to the client </li></ul></ul><ul><ul><li>Custom uPortal extension to the portlet spec </li></ul></ul>
  9. 9. uPortal 2.4: CAR Automation <ul><li>Publishing </li></ul><ul><ul><li>Added to the Auto-Published category </li></ul></ul><ul><ul><li>Only Administrators given permissions </li></ul></ul><ul><li>Channel-Type Registration </li></ul><ul><ul><li>Adds and configures a channel-type </li></ul></ul><ul><li>Table Creation </li></ul><ul><ul><li>Can drop, create and populate tables using the uPortal dbloader syntax </li></ul></ul><ul><li>Conditional Processing </li></ul><ul><ul><li>CAR versions can be accounted for to prevent re-deployment of the same channel </li></ul></ul>
  10. 10. uPortal 2.4: RSS Version Detection <ul><li>Updated Style Sheet for RSS Channels </li></ul><ul><ul><li>Works with all versions of RSS feeds </li></ul></ul><ul><ul><li>Automatically adjusts and provides consistent output </li></ul></ul>
  11. 11. uPortal 2.4: Multiple LDAP Server Support <ul><li>Multiple Named LDAP Servers </li></ul><ul><ul><li>New ldap.xml configuration file </li></ul></ul><ul><ul><li>New LdapServices provides access to server objects </li></ul></ul><ul><ul><li>Old LdapServices is deprecated, wraps new class </li></ul></ul><ul><ul><li>Server objects provide connections and meta information </li></ul></ul>
  12. 12. uPortal 2.4: Error Viewing Servlet <ul><li>PortletException creations are logged to a table </li></ul><ul><li>Error viewing servlet provides a view of the table </li></ul><ul><li>Provides an easy way to track problems in a running portal environment </li></ul>
  13. 13. uPortal 2.4: Apache Commons Logging <ul><li>Old Logging System </li></ul><ul><ul><li>LogService uPortal class provided logging </li></ul></ul><ul><ul><li>It has been deprecated as of 2.4 and wraps a Commons Log </li></ul></ul><ul><ul><li>LogServices.log(Priority.FATAL, “Message”, err) </li></ul></ul><ul><li>New Logging System </li></ul><ul><ul><li>Use Commons Logging directly in each class </li></ul></ul><ul><ul><li>Allows different logging back-ends </li></ul></ul><ul><ul><li>Simpler configuration which can affect loggers in libraries uPortal uses as well </li></ul></ul><ul><ul><li>log.fatal(“Message”, err) </li></ul></ul>
  14. 14. uPortal 2.4: Configurable Security Contexts <ul><li>Previously only one of each context type was really usable </li></ul><ul><li>Contexts can now implement an interface that allows properties to be provided </li></ul><ul><li>SimpleLdapSecurityContext is the only configurable context currently </li></ul><ul><ul><li>Allows multiple LDAP servers to be used for authentication </li></ul></ul>
  15. 15. uPortal 2.4.2: Memory Leaks Plugged <ul><li>Going into uPortal 2.4.2 </li></ul><ul><li>Several uPortal Objects were being leaked </li></ul><ul><ul><li>ChannelManager </li></ul></ul><ul><ul><li>IPerson </li></ul></ul><ul><li>Memory improvement: </li></ul><ul><ul><li>All objects, down 75% </li></ul></ul><ul><ul><li>uPortal objects, down 94% </li></ul></ul><ul><ul><li>ChannelManager objects, down 100% </li></ul></ul>
  16. 16. uPortal 2.5
  17. 17. uPortal 2.5: Portlet Caching <ul><li>Portlet content currently cached until user interacts with portlet </li></ul><ul><li>Specification describes optional expiration based caching of portlet content </li></ul><ul><li>Support in CVS and will be included in uPortal 2.5 </li></ul>
  18. 18. uPortal 2.5: Portlet Spec Compliance <ul><li>uPortal did not support portlets sending redirects or changing WindowState during processAction </li></ul><ul><li>A fix is in HEAD that allows for this behavior </li></ul><ul><li>uPortal 2.x is moving closer to 100% JSR-168 compliance </li></ul><ul><li>Goal is for all known issues to be resolved for the 2.5 release </li></ul>
  19. 19. uPortal 2.5: Database Connection Pooling <ul><li>uPortal 2.5 will come with the Jakarta Commons DBCP library for pooling support </li></ul><ul><li>Connections created through standard JDBC are now pooled by default; this is configurable </li></ul><ul><li>Drastically increases initportal speeds with Oracle and PostgreSQL databases </li></ul><ul><li>JNDI failover, if the JNDI lookup fails the plain JDBC connection is used instead </li></ul>
  20. 20. uPortal 2.5: JDK 1.4 <ul><li>uPortal 2.4 is JDK 1.3 compliant </li></ul><ul><li>uPortal 2.5 will require JDK 1.4 </li></ul><ul><li>Chaining Throwables </li></ul>
  21. 21. uPortal 2.5: CError Refactoring <ul><li>CError displays full chained stacktrace </li></ul><ul><ul><li>JDK 1.4 Throwable.printStackTrace() </li></ul></ul><ul><li>General refactoring and code improvement </li></ul><ul><ul><li>Old: edit your CError locally to add special rendering for new Throwables. </li></ul></ul><ul><ul><li>New: plug in a handler for the new Throwable to be rendered specially. </li></ul></ul>
  22. 22. uPortal 2.5: PersonDirectory Refactoring <ul><li>Spring </li></ul><ul><li>Dependency Injection in uPortal 2 </li></ul><ul><li>More modular implementation exercised by unit tests </li></ul>
  23. 23. New Documentation Module <ul><li>Portal_documentation CVS module </li></ul><ul><li>Uses Anakia </li></ul><ul><li>Old: edit some display HTML, then edit some print HTML </li></ul><ul><li>New: edit one XML descriptor and Anakia generates the HTML according to the style </li></ul>
  24. 24. uPortal 2.5: Aggregated Layouts Revisited <ul><li>Some niggling details </li></ul><ul><li>Commitment: Fix by 2.5 </li></ul><ul><li>Default tab, UI for subscribe-time parameters, remove channel control in view mode, saving layout changes </li></ul>
  25. 25. uPortal 2.5: Unit testing <ul><li>Batchtest in build.xml </li></ul><ul><li>Improved test facilities (TransientDatasource, PropertiesManager) </li></ul><ul><li>Refactorings to use Dependency Injection make code more testable </li></ul><ul><li>Speaking of DI, let’s talk about uPortal 3… </li></ul>
  26. 26. uPortal 3.0
  27. 27. uPortal 3.0: Overview <ul><li>Terminology and paradigm change: Channels replaced by Portlets </li></ul><ul><li>Componentization of framework </li></ul><ul><li>Modular rendering pipeline </li></ul><ul><li>Clean separation of business logic and persistence layer </li></ul><ul><li>Full support for uPortal 2 Channels </li></ul><ul><li>Upgrade tools </li></ul>
  28. 28. uPortal Domain Objects <ul><li>Portlet Application Deployment Portlet Deployment </li></ul><ul><ul><li>Information from portlet.xml file </li></ul></ul><ul><li>Portlet Application Definition Portlet Definition </li></ul><ul><ul><li>Deployment + Preferences </li></ul></ul><ul><li>Portlet Application Entity Portlet Entity </li></ul><ul><ul><li>Definition + Preferences </li></ul></ul><ul><li>Portlet Window </li></ul><ul><ul><li>Instances of Portlet Entity painted on screen </li></ul></ul><ul><ul><li>Keeps track of Portlet Window State </li></ul></ul><ul><ul><li>Referenced by portal layout </li></ul></ul>
  29. 29. uPortal 3.0 Domain Object Architecture Database DAO’s Registries DAO Implementations e.g. Spring JDBC Caching uPortal Framework Domain objects Domain objects Transfer objects Domain Object Factories
  30. 30. uPortal 3.0: Pluto 1.1 <ul><li>Pluto 1.0 </li></ul><ul><ul><li>Community found it “clumsy and complex” </li></ul></ul><ul><li>Pluto 1.1 </li></ul><ul><ul><li>A refactoring and rewrite </li></ul></ul><ul><ul><li>Goals </li></ul></ul><ul><ul><ul><li>Simplify container, driver, and deployer </li></ul></ul></ul><ul><ul><ul><li>Reduce complexity of embedding container into a portal </li></ul></ul></ul><ul><ul><ul><li>Use common best practices and design patterns </li></ul></ul></ul><ul><ul><li>Dependency injection via Spring Framework </li></ul></ul><ul><ul><li>Good fit for uPortal 3 </li></ul></ul>
  31. 31. WSRP Consumer and Producer <ul><li>Consumer </li></ul><ul><ul><li>WSRP4J consumer proxy portlet </li></ul></ul><ul><li>Producer </li></ul><ul><ul><li>Implementation of WSRP4J producer </li></ul></ul><ul><ul><li>Currently using Java Data Objects (JDO) </li></ul></ul><ul><ul><li>Missing DAO layer consistent with uPortal 3 </li></ul></ul>
  32. 32. uPortal 3.0 Rendering Architecture Parses request URL and initiates actions on portlets Generates abstract user layout Chain of transformers and filters compiles presentation markup. Selects context to process incoming request Produces final markup, i.e. HTML, WML Context X Context A … Context Resolver Default Context Parameter processing Rendering pipeline Layout generator Transformer … Transformer Filter Serializer
  33. 33. uPortal 3.0: Security <ul><li>Acegi features </li></ul><ul><ul><li>Has analog to uPortal 2 security providers </li></ul></ul><ul><ul><li>Designed with Spring Framework in mind </li></ul></ul><ul><ul><li>URL protection </li></ul></ul><ul><ul><li>Bean method-level protection </li></ul></ul><ul><ul><li>Support for Yale CAS </li></ul></ul><ul><ul><li>HTTP BASIC Authentication </li></ul></ul>
  34. 34. uPortal 3.0: Groups and Permissions <ul><li>Port of groups and permissions from uPortal 2 </li></ul><ul><li>Separate module within uPortal 3.0 </li></ul><ul><li>Build process to produce separate jar files </li></ul><ul><ul><li>Allows groups/permissions to be used in applications outside of uPortal </li></ul></ul>
  35. 35. uPortal 3.0: Milestones and Beta <ul><li>Milestone builds </li></ul><ul><ul><li>Render a layout based on an XML layout file </li></ul></ul><ul><ul><li>Render a layout based on data from database and ability to interact with portlets </li></ul></ul><ul><ul><li>Remaining features minus upgrade tools and instructions </li></ul></ul><ul><li>Beta release </li></ul><ul><ul><li>uPortal 2 feature set complete </li></ul></ul><ul><ul><li>Channels and CAR files work </li></ul></ul><ul><ul><li>Upgrade tools and instructions available </li></ul></ul>
  36. 36. uPortal 3.0: Help Needed <ul><li>Integrate Pluto 1.1 </li></ul><ul><li>Implement Authentication with Acegi </li></ul><ul><li>Introduce true DAO layer in WSRP impl </li></ul><ul><li>Provide Spring JDBC impl for WSRP DAOs </li></ul><ul><li>Make DAO unit tests utilize in-memory HSQLDB database </li></ul><ul><li>Sync changes from uPortal 2 DbLoader </li></ul><ul><li>Channel adapter for backwards compatibility </li></ul>
  37. 37. Project Tools <ul><li>Issue Tracking </li></ul><ul><ul><li>Currently Bugzilla </li></ul></ul><ul><ul><li>Will be JIRA </li></ul></ul><ul><li>Collaborative documentation </li></ul><ul><ul><li>Was nothing </li></ul></ul><ul><ul><li>Recently Yale’s uPortalTiki Wiki </li></ul></ul><ul><ul><li>Will likely be Confluence </li></ul></ul>
  38. 38. <ul><li>Eric Dalquist </li></ul><ul><li>Unicon Inc. </li></ul><ul><li>[email_address] </li></ul><ul><li>Andrew Petro </li></ul><ul><li>Yale University </li></ul><ul><li>[email_address] </li></ul><ul><li>Ken Weiner </li></ul><ul><li>Unicon Inc. </li></ul><ul><li>[email_address] </li></ul>The End Speaker Info : Questions ?