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