49
uPortal Roadmap uPortal Roadmap Patches, evolution, and Patches, evolution, and revolution revolution Andrew Petro, Yale Andrew Petro, Yale University University Eric Dalquist, Unicon Eric Dalquist, Unicon

uPortal Roadmap

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

uPortal RoadmapuPortal Roadmap

Patches, evolution, and revolutionPatches, evolution, and revolution

Andrew Petro, Yale UniversityAndrew Petro, Yale University

Eric Dalquist, UniconEric Dalquist, Unicon

uPortal ReleasesuPortal Releases

uPortal 2.4.3

MajorMinor

Patch

Types of releasesTypes of releases Patch releasesPatch releases

Bug fixes, backwards-compatibleBug fixes, backwards-compatible Every 1-2 monthsEvery 1-2 months Easy to upgradeEasy to upgrade

Minor releasesMinor releases New features and possible database changesNew features and possible database changes Every 6-12 monthsEvery 6-12 months Not trivial to upgradeNot trivial to upgrade

Major releases Major releases Extensive changesExtensive changes Every 2-4 yearsEvery 2-4 years Difficult to upgradeDifficult to upgrade

2.4.32.5.1

2.5.02.6.0

3.0.0

Marching towards a particular Marching towards a particular releaserelease

Nightly buildNightly build ““Milestone”Milestone”AlphaAlphaBetaBetaRelease CandidateRelease Candidate

General Audience ReleaseGeneral Audience Release

This PresentationThis Presentation

uPortal 2.x RoadmapuPortal 2.x Roadmap

uPortal 3.x RoadmapuPortal 3.x Roadmap

Questions and AnswersQuestions and Answers

uPortal 2.x RoadmapuPortal 2.x Roadmap

2-4-patches2-4-patches

2-5-patches2-5-patches

Towards 2.6 and beyondTowards 2.6 and beyond

What’s a Roadmap?What’s a Roadmap?

2.5.0 Happened. What’s in it?2.5.0 Happened. What’s in it?2.4.3 Plans2.4.3 Plans2.5.1 Plans2.5.1 Plans

2.6.0 Opportunities2.6.0 Opportunities

3.0.0 Revolution3.0.0 Revolution

uPortal 2.5.0uPortal 2.5.0

Evolutionary improvementEvolutionary improvement

Incremental new features, Incremental new features,

Takes some work to upgradeTakes some work to upgrade

Released 26 May 2005Released 26 May 20052.5.0

2.5.0 features2.5.0 features

DLMDLMBetter JSR-168 supportBetter JSR-168 supportRequire / embrace JDK 1.4Require / embrace JDK 1.4

Chaining throwablesChaining throwablesSupport JDK 1.5Support JDK 1.5SpringSpringDOM3 / JAXP 1.3DOM3 / JAXP 1.3Threading / Concurrency libraryThreading / Concurrency library

2.5.0

DLMDLM

Alternative to ALMAlternative to ALMPushed fragments managed as layouts of Pushed fragments managed as layouts of

“fragment owners”“fragment owners”

2.5.0

What is DLM?What is DLM?

User’s Layout

Personal Preferences

Declarative Configuration

Fragment Owners

Library TabLibrary Tab

2.5.0

Library Tab PlusLibrary Tab Plus

2.5.0

Simple User Layout ManagementSimple User Layout Management

PersonDirectory

Template Assignment

Template Personal Layout

2.5.0

Simple User Layout ManagementSimple User Layout Management

PersonDirectory

Template Assignment

Template Personal Layout

2.5.0

““Distributed” User Layout Distributed” User Layout ManagementManagement

PersonDirectory

“Template” Assignment

Dynamic “Template” Personal Layout

2.5.0

““Distributed” User Layout Distributed” User Layout ManagementManagement

Person Directory

Template Assignment

Dynamic Template Personal Layout

2.5.0

SLM? ALM? DLM?SLM? ALM? DLM?Currently:

SLM ALM DLM

Where we’re going:

SLM CLM

JSR-168 support improvementsJSR-168 support improvements

Expiration cachingExpiration cachingRedirectsRedirectsWindow state changing in processActionWindow state changing in processAction

2.5.0

JDK 1.4 / Chaining ThrowablesJDK 1.4 / Chaining Throwables

NullPointerException

ChannelRenderingException

PortalException

PortalException

2.5.0

JDK 1.5 supportJDK 1.5 support

Compiles and runs under JDK / JRE 1.5Compiles and runs under JDK / JRE 1.5

2.5.0

SpringSpring

Declarative configurationDeclarative configurationThat’s about Java Objects, rather than That’s about Java Objects, rather than

about Stringsabout Strings

The sun is setting on static factories that The sun is setting on static factories that read class names from portal.properties.read class names from portal.properties.

PersonDirectory as the first Springified PersonDirectory as the first Springified componentcomponent

2.5.0

uPortal 2.4.3uPortal 2.4.3

The next 2-4-patches deliverableThe next 2-4-patches deliverableBackwards compatible conservative Backwards compatible conservative

fixes, enhancementfixes, enhancementSharing of fixes for released code.Sharing of fixes for released code.

2.4.3

Adoption of threading libraryAdoption of threading library

Backport-util-concurrentBackport-util-concurrent

2.4.3

Minor bugfixesMinor bugfixes

2.4.3

2.5.12.5.1

Backwards-compatible Backwards-compatible improvement.improvement.

Bugfixes.Bugfixes.

2.5.1

uPortal 2.6uPortal 2.6

And beyondAnd beyond

2.6.0

uPortal CVS headuPortal CVS head

portal

2.5.0

2.4.0

2-4-patches

2-5-patchesHea

d

2.4.1

2.4.3…

2.5.1

Will there be a uP 2.6?Will there be a uP 2.6?

Are there incremental improvements that Are there incremental improvements that could be made beyond uP 2.5 that would could be made beyond uP 2.5 that would make you want to deploy 2.6?make you want to deploy 2.6?

So much so that there are developers, So much so that there are developers, resources interested in working to make resources interested in working to make this happen?this happen?

Then it makes sense to produce uP 2.6.Then it makes sense to produce uP 2.6.

2.6.0

Some uP 2.6 ideasSome uP 2.6 ideas

Continue to improve Layout ManagementContinue to improve Layout ManagementStability, Stability, StabilityStability, Stability, StabilityHave we stopped leaking memory yet?Have we stopped leaking memory yet?Skinning improvements, CSS/Divs as Skinning improvements, CSS/Divs as

default exampledefault exampleGroups and PermissionsGroups and PermissionsMore SpringMore Spring……

2.6.0

Serializable SessionsSerializable Sessions

And sessions worth serializingAnd sessions worth serializing

Beyond load balancing and clusteringBeyond load balancing and clusteringState-retaining failover *State-retaining failover *

(For channels written to take advantage)(For channels written to take advantage)

JIRA for project planningJIRA for project planning

Identify desired improvementsIdentify desired improvementsSchedule for 2.6Schedule for 2.6 ““Assign” resourcesAssign” resourcesTrack to completionTrack to completion

2.6.0

Lather, Rinse, RepeatLather, Rinse, Repeat

Continue to Continue to incrementally improve incrementally improve uPortal 2.x so long as uPortal 2.x so long as there’s interest and there’s interest and resources.resources.

2.6.0

At some pointAt some point

Interest in continuing to develop uP 2.x Interest in continuing to develop uP 2.x waneswanes

Because there’s something better to work Because there’s something better to work onon

And now, for uPortal 3 roadmap…And now, for uPortal 3 roadmap…

2.6.0

uPortal 3.0.0uPortal 3.0.0

What’s next in portal technologyWhat’s next in portal technology

3.0.0

uPortal 3.0: OverviewuPortal 3.0: OverviewTerminology and paradigm change: Terminology and paradigm change:

Channels replaced by Portlets Channels replaced by Portlets Componentization of framework Componentization of framework Modular rendering pipelineModular rendering pipelineClean separation of business logic and Clean separation of business logic and

persistence layerpersistence layerFull support for uPortal 2 ChannelsFull support for uPortal 2 ChannelsUpgrade toolsUpgrade tools

3.0.0

Portlet Domain ObjectsPortlet Domain ObjectsPortlet Application & Portlet DeploymentPortlet Application & Portlet Deployment

Information from portlet.xmlInformation from portlet.xmlGenerated from deployed applicationsGenerated from deployed applications

Portlet Application & Portlet DefinitionPortlet Application & Portlet DefinitionDeployment + ConfigurationDeployment + ConfigurationMaps application idioms to uPortal idiomsMaps application idioms to uPortal idioms

3.0.0

Portlet Domain ObjectsPortlet Domain ObjectsPortlet Application & Portlet EntityPortlet Application & Portlet Entity

Definition + ConfigurationDefinition + ConfigurationSynonymous with channel publishingSynonymous with channel publishing

Portlet WindowPortlet WindowPortlet Entities painted on the screenPortlet Entities painted on the screenTracks the state of the portletTracks the state of the portletReferenced by portal layoutReferenced by portal layout

3.0.0

3.0.0

Domain Object ArchitectureDomain Object Architecture

Database

DAO’s

Registries

DAO Implementations e.g. Spring JDBC

Caching

uPortal Framework

Domain objects

Domain objectsTransfer objects

DomainObject

Factories

WSRP Consumer and ProducerWSRP Consumer and Producer

ConsumerConsumerWSRP4J consumer proxy portletWSRP4J consumer proxy portlet

ProducerProducer Implementation of WSRP4J producerImplementation of WSRP4J producerCurrently using Java Data Objects (JDO)Currently using Java Data Objects (JDO)Missing DAO layer consistent with uPortal 3Missing DAO layer consistent with uPortal 3

3.0.0

3.0.0

Rendering ArchitectureRendering 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

SecuritySecurity

Acegi featuresAcegi featuresHas analog to uPortal 2 security providersHas analog to uPortal 2 security providersDesigned with Spring Framework in mindDesigned with Spring Framework in mindURL protectionURL protectionBean method-level protectionBean method-level protectionSupport for Yale CASSupport for Yale CASHTTP BASIC AuthenticationHTTP BASIC Authentication

3.0.0

Groups and PermissionsGroups and Permissions

Port of groups and permissions Port of groups and permissions from uPortal 2from uPortal 2

Separate module within uPortal 3.0Separate module within uPortal 3.0Configured using SpringConfigured using SpringBuild process to produce separate jar filesBuild process to produce separate jar files

Allows groups/permissions to be used in Allows groups/permissions to be used in applications outside of uPortalapplications outside of uPortal

3.0.0

Person DirectoryPerson Directory

Person Directory has already been Person Directory has already been refactored in uPortal 2refactored in uPortal 2

Separate module within uPortal 3Separate module within uPortal 3Build process to produce separate jar filesBuild process to produce separate jar files

Allows person directory to be used in Allows person directory to be used in applications outside of uPortalapplications outside of uPortal

3.0.0

Portlet PublishingPortlet Publishing

First publish the portlet applicationFirst publish the portlet applicationMap custom PortletModes and WindowStatesMap custom PortletModes and WindowStatesMap user attributes from uPortal to the portletMap user attributes from uPortal to the portlet

Second publish portlets from the appSecond publish portlets from the appDescriptionDescriptionConfigurationConfigurationGroups and Permissions Groups and Permissions

3.0.0

UtilitiesUtilities

Design to be configured as beansDesign to be configured as beansCommand line interface is a wrapper Command line interface is a wrapper

around the beanaround the beanAllows utilities to be run from portal codeAllows utilities to be run from portal codeDbLoaderDbLoader

Now supports constraintsNow supports constraintsPortlet DeployerPortlet Deployer

3.0.0

Milestones and BetaMilestones and Beta

Milestone buildsMilestone buildsRender a layout based on an XML layout fileRender a layout based on an XML layout fileRender a layout based on data from database and Render a layout based on data from database and

ability to interact with portletsability to interact with portletsRemaining features minus upgrade tools and Remaining features minus upgrade tools and

instructionsinstructions Beta releaseBeta release

uPortal 2 feature set completeuPortal 2 feature set completeChannels and CAR files workChannels and CAR files workUpgrade tools and instructions availableUpgrade tools and instructions available

3.0.0

uPortal 3.0: Help NeededuPortal 3.0: Help Needed

TestingTestingMove uPortal 2 Concurrency changes to Move uPortal 2 Concurrency changes to

3.03.0Move uPortal 2 XML API changes to 3.0Move uPortal 2 XML API changes to 3.0Move Person Directory into a stand-alone Move Person Directory into a stand-alone

JARJARCreate WSRP DAOs and provide Spring Create WSRP DAOs and provide Spring

JDBC implementationJDBC implementation

3.0.0

The Future of uPortalThe Future of uPortal

uPortal 2.5uPortal 2.5Testing and minor fixesTesting and minor fixes

uPortal 2.6uPortal 2.6 Incremental development along with uPortal 3Incremental development along with uPortal 3

uPortal 3uPortal 3 Incorporating current uPortal 2 development Incorporating current uPortal 2 development

with the complete re-architecturewith the complete re-architecture