Presentation is loading. Please wait.

Presentation is loading. Please wait.

uPortal: architecture and features

Similar presentations


Presentation on theme: "uPortal: architecture and features"— Presentation transcript:

1 uPortal: architecture and features
Peter Kharchenko - Interactive Business Solutions, Inc.

2 uPortal releases and branches
2.0 was released February 2002. Two code branches 2.0.x “bugfix” branch no new features frequent packaged releases 2.0.1 uPortal was released April 2002. 2.1 development branch new features fall-winter time release goals

3 Where does uPortal fit? People Browsing Devices uPortal with Channels
Data Applications

4 What is uPortal? Enterprise, horizontal portal
Framework for presenting aggregated content (channels) Personalization Access control

5 Content rendering

6 Content Transformation
XML XSLT Processor XHTML: Web Browser HTML: PDA Stylesheet WML: Cell Phone

7 Multiple Target Devices

8 Tab / Column Layout

9 Tree / Column Layout

10 Channel Elementary unit of presentation, defined by the IChannel interface User Interaction External Information Channel Content (Presentation) IChannel Set Runtime Data () Render XML ()

11 Framework Organization
User Interaction Presentation uPortal Framework Channel Channel Channel

12 User Layout User Layout is an abstract structure defining the overall content available to the user userLayout is a tree structure consisting of “folders” and “channels”, the later always being the leaf nodes

13 User Layout

14 Structure Transformation
Channel Column Tab User Layout

15 Theme Transformation

16 Compiling the Presentation
userLayout Structure transformation XSLT structuredLayout setRuntimeData() XSLT Channels Theme transformation renderXML() HTML, WML VoiceML...

17 Caching uPortal provides caching services to channels implementing ICacheable User Interaction External Information Channel Content (Presentation) IChannel setRuntimeData () generateKey() isCacheValid() renderXML()

18 Caching Both channel and frame content is cached (theme transformations are expensive!) Users character-level caching (fastest), falling back to SAX-level caching HTML, XHTML and XML serializers support character caching

19 Rendering groups (2.1) Inter-channel communication (2.0)
identifying channels (channel JNDI contexts) passing events using URL syntax communication through shared objects Tightly coupled channels (2.1) interact with one channel immediately affects presentation of the other channels 2.1 allows channels to declare their rendering dependencies that define rendering groups

20 Channel services (2.0) Access points to common services
Bound to channel’s JNDI context Examples: logging channel storage calendaring printing Configured in properties/services.xml

21 Personalization

22 What can be personalized
User layout Skins colors, fonts, textures, etc. using standard uPortal CSS classes Theme transformation target markup language presentation implementation Structure transformation presentation structure and navigation

23 Organizing the settings ?
Users switch between different settings because: they’re using a different browser/client their mood school told them to do so A profile combines all settings into one unit User can switch between profiles Profiles can be associated with particular browser types for automatic selection

24 Preferences channel (2.0)

25 Preferences channel (2.0)
Allows to customize layout skins user profiles theme transformation profile-browser mapping Issues modular, but very big layout management module is specific to tab-column structure, while its general alternative is unintuitive Result: layout/preferences management implementation complexities is preventing development of new layout structures

26 Managing preferences in 2.1
Preferences channel profile management and skin selection In-layout preferences management user layout management stylesheet-defined param/attribute management default tab column width etc.

27 Managing preferences in 2.1
Abstracted layout management code org.jasig.portal.layout.* implements all layout management operations provides additional layout management info. Theme stylesheet renders the layout in both normal and “preferences management” mode uses uPortal URL syntax to talk to the abstracted layout management code that does the work Result intuitive layout management easier to write then a prefs. channel module easier to implement alternative structures

28 Imposing restrictions
Look & feel limiting skin selection allowing only system profiles single structure stylesheet User layouts Channel selection (publish/subscribe) Template users (default layouts) Aggregated layouts (2.1)

29 Aggregated layouts (2.1) Create/maintain layout fragments
Push/present fragments to the users Allow for general, flexible restrictions on how fragments can be changed and rearranged Example “library tab”, “department tab” user can not remove “department tab” user can not move channels within a library tab user can add department-published channels to the department tab, but not other channels

30 Security and directory access

31 Authentication Flexible authentication API
can accommodate both local and distributed authentication schemes allows for single sign-on to back-end services Existing provider implementations: Local directly authenticating against DB LDAP Distributed CAS

32 Authorization Permission (IPermission interface)
activity (publish, write, read, etc.) principal (user, service, channel, etc.) target (channel, document, group, etc.) owner (channel, owner, framework, etc.) type (grant, deny) Reference implementation uses RDB Managed by “CPermissionsManager” Pluggable permission logic (2.1) define custom permission resolution rules

33 Directory access Directory information is available to the framework and uPortal channels Can accommodate multiple, disparate directory information sources Current implementation supports multiple LDAP and RDBM sources configured in PersonDirs.xml Standardized on eduPerson naming

34 Groups General API for maintaining groups of entities
Used in the uPortal to define groups of users for authorization purposes define category structure of published channels Managed by “CGroupsManager” Composite groups (2.1) use multiple, disparate sources for group persistence

35 Groups & Permissions CGroupsManager CPermissionsManager
Can be used from within other channels used by the uPortal’s channel manager Integrated in 2.1 branch Not part of the 2.0.x distributions, but can be downloaded and installed independently

36 Publish/Subscribe Channel publishing document
Channel parameters Default values Modification permissions Descriptions Publish/Subscribe steps Step sequence Instructions, help Flexible channel publishing

37 Channel archives (2.1) Provide a standardized packaging for channel distribution Transparent installation and configuration interactive installation GUI parameter validation maintaining WebApp file stricture Versioning upgrade capability

38 Distributed channels (2.1)
SOAP-based content retrieval Web services protocol, very similar to the proposed WSRP Sharing uPortal channels: present SOAP access point for external entities to access uPortal channels Viewing remote content: publish a channel running on some other servier Sharing amongst uPortal installations Integrating with non-uPortal platforms

39 Improved clustering support (2.1)
Means to integrate multi-JVM portal installations Cache synchronization permissions groups channel registry uPortal JNDI context synchronization … would like to avoid EJB-server complexities

40 Information on 2.1 features
UNM developer’s meeting minutes uPortal web page


Download ppt "uPortal: architecture and features"

Similar presentations


Ads by Google