Title: Mon, June 9, 2003
1uPortal Roadmap
- Ken Weiner, UNICON-IBS
- Dan Ellentuck, Columbia University
2Overview
- Release timeline
- uPortal 2.1
- New features for uPortal 2.2
- Beyond uPortal 2.2
3uPortal Release Timeline
1st Release
Performance
Misc.
1.0 Jul
1.6Jun
2.1 Dec
2.0.1 Apr
2.1.2 Apr
2.1.3 Jun
2.1.x Oct
2001
2003
2000
2002
1.5 Feb
2.0 Feb
2.2 Oct
2.0.2 Jul
2.0.3 Dec
2.1.1 Feb
Roles
XSLT Arch.
4uPortal CVS File Lines
Source http//www.rootbin.com/cgi-bin/cvsmonitor/
cvsmonitor.pl?cmdviewBrowseModulemoduleJASIG.uP
ortal on June 7, 2003
5uPortal CVS karma 2000-2003
Source http//www.rootbin.com/cgi-bin/cvsmonitor/
cvsmonitor.pl?cmdviewBrowseModulemoduleJASIG.uP
ortal on June 7, 2003
6uPortal 2.1 Features
- Applet publishing
- CWebProxy enhancements
- Local connection context
- Channel rendering groups
- Remote channels
- Groups and permissions managers
- Composite group service LDAP impl.
- Usage statistics gathering
- CAR file support
- JNDI data sources
7Planned for uPortal 2.2
- Aggregated layouts
- Integrated preferences management
- Internationalization
- Multiple permissions sources
- WSRP client, server
- Channel archive (CAR) improvements
- Channel publishing tool
- Transient channels
- Secure channels
- XML parser independence
- LDAP Context Lookup
8Aggregated Layouts
- Experience constructed for the end user by the
implementers/administrators of the portal
combined with the end user's customized content - System for constructing, managing, and
administering grouped content, such that the
presence and level of visibility of this content
is guaranteed to appear in a users layout - System allowing users to subscribe to grouped
content
9Aggregated Layouts
Fragment aggregation
A user layout constructed from pre-defined layout
fragments
10Aggregated Layouts
Subscribing to fragments
Health Legal Services Column
User adding content that has been grouped by
content administrators
Tab by Faculty and course
Departmental Calendar and Events Column
11Preferences Separate Channel
12Integrated Preferences
Source http//www.immagic.com/uPortalprefs/tour/
13Adding a New Column
Source http//www.immagic.com/uPortalprefs/tour/
14Content Subscription - Channels
Source http//www.immagic.com/uPortalprefs/tour/
15Content Subscription - Fragments
Source http//www.immagic.com/uPortalprefs/tour/
16Internationalization
I18N
- Support for multiple locales
- Locale Language Country
- Levels of personalization
- uPortal installation
- Layout or profile
- Channel definition
- Channel instance
- Session
17Locales in ChannelRuntimeData
- public class ChannelRuntimeData
- .
- .
- public Locale getLocales()
- .
- .
-
18Groups and Permissions Roadmap
- Introduction to Groups and Permissions
- A little past history
- Current Release Whats in, whats missing
- Plans for Future Releases 2.2 and beyond
19Introduction to Groups and Permissions
- What do these systems do?
- They collaborate on authorization deciding what
a user can see and do. In the portal, the most
basic authorization question is, what channels is
a user is permitted to subscribe to and render. - Permissions manages authorization data and
answers questions about what permissions a user
has. - Groups is a more general and lower-level service
that manages membership information about portal
entities, enabling the portal operate on these
entities collectively. Besides authorization, it
supports other group-y activities like channel
publication and layout management.
20Introduction to Groups and Permissions
- Why does this matter to you?
- Any uPortal deployment beyond prototype will
spend time and effort integrating Groups and
Permissions with pre-existing external resources,
e.g., LDAP. - The success of this integration is a good index
of how well the portal as a whole collaborates
with its surroundings.
21Prior Releases some history
- Ancient History Release 1.x
- Authorization performed by roles framework.
- Role is an arbitrary symbol with some
significance to the portal, e.g., Publisher,
Developer, Administrator, Honored Guest, etc.. - Each user had a list of roles.
- Portal could query roles framework to find out
what roles a user had and act accordingly.
Example only users with the role Publisher were
permitted to publish channels.
22Prior Releases some history
- Recent History Release 2.0
- Roles framework split in half
- Groups service to track user roles (memberships)
- Authorization to compute user permissions.
- Rationale
- Groups have uses that transcend authorization.
- Wanted richer authorization model to include a
Permission that authorized a user or principal to
perform some activity on some target in a context
provided by some owner. - The process of assessing a users memberships is
different from deciding what those memberships
entitle a user to do.
23Prior Releases some history
- Recent History Release 2.0
- Included
- Groups model
- Groups service API
- Groups Manager channel
- Permissions model
- Authorization service API
- Permissions Manager channel
- But, Groups and Permissions in Release 2.0 were
essentially prototypes. Even though they worked,
they only worked with the reference portal
database, so you had to re-implement one or both
of them if you wanted to integrate them with
pre-existing external services, like LDAP, which
is what any medium- to large-scale portal
deployment had to do.
24Current Release whats in, whats missing
- Groups and Permissions in Release 2.1
- Groups rewritten as a composite service with
multiple component services, each with its own
group source and its own adaptor to make the
external information look like group memberships. - Highly configurable. Group sources can be added
or dropped by editing a configuration file and
restarting the portal. - Sources can have varying relationships to the
composite service internally vs. externally
managed read-write or read-only. - All group information aggregated by the composite
service looks the same to clients they do not
have to be aware of service of origin. - Foreign group memberships enables creation of new
groups (roles) out of old ones. Example a group
derived from LDAP, supplemented by memberships
from a group of read from the user database of a
legacy system, plus additional members not found
in any current group source all appear to be
members of the same group. - Two adaptors LDAP and reference portal db.
- All permissions derived from a single source
reference portal db. - Logic for authorization can be overridden on a
per-call basis (pluggable permission policy).
25Current Release whats in, whats missing
- Current Release bottom line
- Pros
- Lots of flexibility for configuring multiple
sources of group information. - LDAP support.
- Moderate flexibility in managing authorization,
including pluggable permission policy. - Cons
- Not tested under heavy load.
- Single source of permissions.
- Can be tough to get going (learning curve).
26Plans for Release 2.2
- Groups and Permissions 2.2
- Improvements to LDAP adaptor. Caching, pre-load,
etc. - New Filesystem adaptor makes groups out of files
with lists of user IDs. Can create a group
system with minimal effort. Could be used to
bridge deployment effort and encourage
experimentation. - Group Manager usability enhancements more
flexible permission policy makes it easier for
native channels to use group manager servant to
collect group selections. - Support for multiple sources of Permissions,
including pluggable priority policy for deciding
which source takes precedence.
27Remote Channel Web Service
Swing client
Channels
Web Service
SOAP
Channels
uPortal
WSDL
uPortal
28Web Services for Remote Portals (WSRP)
- Developed by OASIS
- WSRP will define
- A WSDL interface description for invocation of
WSRP services - How to Publish, Find, Bind WSRP services and
metadata - Markup Fragment Rules for markup emitted by WSRP
services - Current spec
- 0.95, April 24, 2003
Source http//www.oasis-open.org/committees/wsrp/
presentations/wsrp_overview.ppt
29WSRP Interfaces
- Markup
- Enable embedding of Producer markup
- Service description
- Queries the entities of the producer
- Portlet entity management
- Manage entities within the Consumer
- Registration
- Consumer registers with Producer
30Remote Channel Web Service
Authenticate
credentials
Instantiate channel
fname
instance identifier
Web Service Client
Render channel
Web Service
instance identifier, runtime data
channel markup
Receive event
instance identifier, portal event
Free channel
instance identifier
Logout
WSDL
31Channel ARchives (CAR)
- Packaging and deployment of channel code and
resources - WEB-INF/cars directory ? .car files
- Car resource worker
- org.jasig.portal.car.CarResourceWorker
32CAR Viewer (Car Lot ?)
CAR file is a zip containingchannel sources,
stylesheets, and resources such as images
Images areloadedfrom car file
33CAR Improvements
- Support of more browser-accessible file types
- Automatic recognition of new or updated CAR
- Automatic channel publication
- Creation of database tables for a channel
- Externalized CAR resources
- Third party library support
- Ability to deploy services and channel types
34Channel Publishing Tool
- Maintain channel definitions as XML descriptors
- org.jasig.portal.tools.chanpub package
- ant pubish Dchannelmychannel.xml
35Channel Definition Descriptor
ltchannel-definitiongt lttitlegtMy
Channellt/titlegt ltnamegtMy Channellt/namegt
ltfnamegtmy-channellt/fnamegt ltdescgtMy very own
channellt/descgt lttypegtCustomlt/typegt
ltclassgtedu.myschool.portal.channels.CMyChannellt/cl
assgt lttimeoutgt30000lt/timeoutgt
lthaseditgtNlt/haseditgt lthashelpgtNlt/hashelpgt
lthasaboutgtNlt/hasaboutgt
ltcategoriesgtltcategorygtApplicationslt/categorygtlt/cat
egoriesgt ltgroupsgtltgroupgtEveryonelt/groupgtlt
/groupsgt ltparameters/gt lt/channel-definit
iongt
36Transient Channels
- Channels appear on demand
- Not needed anymore in user layout
- Preferences (CUserPreferences)
- Channel Admin (CChannelManager)
http//localhost8080/uPortal/.uP?uP_fnameport
al/userpreferences/general
37Beyond uPortal 2.2
- Layout fragment management
- XLIFF-based channel development
- WSRP service implementation
- JSR-168 portlet wrapper
- Channel deployment automation
- GUI for registration of XSLT stylesheets
- Channel notification service
38Plans for Release 2.2 and Beyond
- Groups and Permissions post-2.2
- Enhance Permission design to include a
higher-level Permission object, a Permission-Set,
containing multiple Permissions for a given
target, activity or owner. Meant to model a
complex role whose targets or activities could
vary depending on the group or user associated
with it. Example Permission-Set for Club
Treasurer could contain multiple activities that
remain constant, but whose targets vary depending
on the identity of the club Glee Club, Debating
Society, etc. - Rework Permissions Manager for pluggable
permissions policy, multiple permission sources
and usability enhancements. - Additional group adaptors contributed by the
uPortal community.
39Developer Meetings
- Set goals, prioritize features, technical
discussions, work assignments - 2 per year, usually in March and August
- Alternate east coast / west coast
- Previous meetings
- University of New Mexico, 3/2002
- Memorial University of Newfoundland, 8/2002
- SCT, 3/2003
- Next meeting
- Cornell University, 8/2003
40Open Source Channels
- portal_channels CVS repository
- Blackboard - CalPoly
- Bookmarks - Various
- UBC_AddressBook - UBC
- UBC_Webmail - UBC
- Classifieds Iowa State
- Elections Iowa State
- Missing components
- Release managers
- Mailing lists
- Bug reporting
41uPortal Mailing Lists
- jasig-announce_at_unm.edu
- Low traffic
- Open membership
- uPortal releases, conferences, training classes
- jasig-portal_at_unm.edu
- High traffic
- Open membership
- Discuss anything related to uPortal
- jasig-dev_at_unm.edu
- Medium traffic
- Membership restricted to uPortal framework
developers - Coordination of development work
42The End
Questions ?
Speaker Evaluation Info
- Speakers Ken Weiner and Dan Ellentuck
- Presentation Title uPortal Roadmap
- Date 06/9/2003
- Time 330 PM 430 PM
- Room Westminster I and II