How we did it
1 / 58

- PowerPoint PPT Presentation

  • Updated On :

How We Did It. Techniques from a Major uPortal Deployment Jim Helwig JA-SIG June 2006. Background General Strategies Development Techniques Code Management Infrastructure Administration. How We Did It. Background. My UW-Madison.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about '' - collin

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
How we did it l.jpg

How We Did It

Techniques from a Major uPortal Deployment

Jim Helwig

JA-SIG June 2006

How we did it2 l.jpg


General Strategies

Development Techniques

Code Management



How We Did It

My uw madison l.jpg
My UW-Madison

  • Created in 2000 using commercial product (Epicentric on WebLogic)

  • 50+ modules/channels

  • Students, Faculty/Staff, Applicants

  • 75,000+ customers

  • 60,000+ logins and 20,000+ unique customers per day

  • 1,000+ concurrent customers

Organization l.jpg

  • Advisory group

  • Service team

  • Portal infrastructure team

  • Academic development group

  • Other development groups

Why change l.jpg
Why Change?

uPortal Benefits

  • Focus on Higher Education

  • Influence over product direction

  • Easier to customize

  • Product continuity

  • Active community

  • Opportunities for self-support

Dc 10 boeing 757 mid flight l.jpg
DC-10  Boeing 757 … mid-flight

General strategies11 l.jpg
General Strategies

Carry over same set of functionality

  • Don’t lose anything

  • Don’t pile on new features

    “Two years of development with nothing new to show for it.”

General strategies12 l.jpg
General Strategies

Re-use code and techniques

  • Links/menus

  • Static XSLT

  • RSS

  • WebProxy

  • Native, custom code

General strategies13 l.jpg
General Strategies

Portlets, not channels

  • Native in uPortal 3.x

  • Minimize upgrade effort

  • Maximize portability

General strategies14 l.jpg
General Strategies

Get Help - Worked with Unicon

  • Proof of concept

  • Feasibility study

  • Design and development

  • Support and consultation

Links menus l.jpg

  • Beyond bookmarks

  • Dynamic Menu Portlet

  • Dynamic set of links, based upon group membership

  • UI for delegated administration

  • File based configuration

  • Caching

Static xslt l.jpg
Static XSLT

  • Implemented as a portlet

  • Retrieve via file system, classpath, URL

  • Caching

Slide18 l.jpg

  • Promoted as standard was of publishing information on campus

  • Single feed per channel

  • Use XSLT portlet

  • Script retrievesand caches on disk

Webproxy l.jpg

  • Extensively used in portal

  • Great for integrating existing or purchased applications

  • Local or remote

  • Integrate simple, custom .Net applications

Webproxy configuration l.jpg
WebProxy - Configuration

  • Works with any tag based input

  • Manages remote session

  • Authenticates via BASIC/NTLM/Form Based

  • Page caching

  • URL Re-Writing

  • Content Clipping

  • Proxies binary resources

  • Variable substitution

Iframe l.jpg

  • Used to integrate preview of other WebISO applications

  • PubCookie does nothave proxy ticket

  • Minimal impact onportal server

  • Minimal integrationtouch point

Native portlets l.jpg
Native Portlets

  • Great for integrating multiple systems

  • Reuse Java code and JSPs

  • Ported shared libraries

  • Called for implementation of missing APIs/services

Portal api abstraction layer l.jpg
Portal API Abstraction Layer

  • Portal Database Pool

  • LDAP

  • User attributes

  • Groups

  • Portal session

  • Portal logger

  • Extra information

Native portlets28 l.jpg
Native Portlets

Course Guide


[email protected]

Course Guide

Organization29 l.jpg

  • Fixed set of tabs determined by group membership

  • Content categories relegated to particular tabs

  • Key applications available in header on all tabs

Personalization l.jpg

  • Readily identify and navigate to content loaded on the page

  • Easy selection of content

  • Separate selection from arrangement

Framework code l.jpg
Framework Code

  • Tightly managed by small group of developers

  • Rarely changes

  • Modified version of released uPortal

Portlet code l.jpg
Portlet Code

  • Developed by a variety of groups

  • Each portlet (or suite of portlets) in a separate directory

  • Build/deploy individually or collectively

  • Easy to plug in external portlets

Shared libraries l.jpg
Shared Libraries

  • Code common to a number of portlets

  • Deployed to Tomcat/shared

  • Problematic – recommend keeping project separate and deploying to each portlet’s WEB-INF/lib

Administrative components l.jpg
Administrative Components

  • kshrc/cshrc files

  • Scripts, tools

  • Data files

  • chanpub files

Framework version control l.jpg
Framework Version Control

  • Treat framework and apps differently

  • Import uPortal into CVS on vendor branch (tag Vup2-5-1)

  • Local modifications on HEAD

  • Tag local releases (Rdev2-5-1, etc.)

Application version control l.jpg
Application Version Control

  • Develop on HEAD

  • Tag releases for other environments (test, qa, prod, etc.)

More tags l.jpg
More Tags

  • Environment-specific files are branched (my-predev-tc-under)

  • Installed/removed files have “in” or “out” tags (intest, outaqa, outaprod_20060605_1030)

Environments l.jpg














Slide44 l.jpg

Combination of portlets

  • Same as production (weather)

  • Simulation (Course Resources)

  • Screen shots (email)

  • Missing (academic analysis)

    Also developing tutorials

Infrastructure45 l.jpg

  • Sun v210 dual UltraSPARC IIIi 1.3Ghz 2Gb Ram

  • Tomcat 5.5.16

  • Apache 2.0.55

  • Oracle on the “Oracle farm”

  • JDK 1.5.0_06

  • uPortal 2.5.1+

  • Layer 4 Nortel Alteon

  • PubCookie for WebISO

Clustering l.jpg

Layer 4


Code migration l.jpg
Code Migration

  • Tag and script driven

  • File-based configuration

  • Update script:

    • Stop server

    • Check out from CVS

    • Update tags

    • Build/deploy

    • Start server

    • Prime portal

Scripts l.jpg

  • Add to or remove from cluster

  • Cluster synchronization and rolling restarts

  • Prime a server

  • Trigger thread dump

  • Compare CVS tags

Tools l.jpg

  • Attribute swapper portlet

  • Log viewer

  • Cluster status page

  • JConsole for monitoring

  • Custom JMX dashboard

  • Wiki

  • Jira

Load testing l.jpg
Load Testing

  • JMeter

  • Actual distribution over tabs

  • Types:

    • Typical load, soak testing

    • Heavy load and recovery

    • Capacity testing

  • Found thread contention, memory leaks, poor performers, bottlenecks

Usage reports l.jpg
Usage Reports

  • Focusing on

    • Logins and group membership

    • Page requests and generation times

    • Channel (portlet) views and render times

    • Channel actions

    • Customization

  • Persist metrics in database

  • Periodically aggregate in data warehouse and purge anything older than 7 days

Resources l.jpg

Code contributions

Code management

Demo (Fall 2006)

Jim Helwig

[email protected]

University of Wisconsin-Madison