how we did it l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
How We Did It PowerPoint Presentation
Download Presentation
How We Did It

Loading in 2 Seconds...

play fullscreen
1 / 58

How We Did It - PowerPoint PPT Presentation


  • 266 Views
  • Uploaded 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

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

PowerPoint Slideshow about 'How We Did It' - Faraday


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

How We Did It

Techniques from a Major uPortal Deployment

Jim Helwig

JA-SIG June 2006

how we did it2
Background

General Strategies

Development Techniques

Code Management

Infrastructure

Administration

How We Did It
my uw madison
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
Organization
  • Advisory group
  • Service team
  • Portal infrastructure team
  • Academic development group
  • Other development groups
why change
Why Change?

uPortal Benefits

  • Focus on Higher Education
  • Influence over product direction
  • Easier to customize
  • Product continuity
  • Active community
  • Opportunities for self-support
general strategies11
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
General Strategies

Re-use code and techniques

  • Links/menus
  • Static XSLT
  • RSS
  • WebProxy
  • Native, custom code
general strategies13
General Strategies

Portlets, not channels

  • Native in uPortal 3.x
  • Minimize upgrade effort
  • Maximize portability
general strategies14
General Strategies

Get Help - Worked with Unicon

  • Proof of concept
  • Feasibility study
  • Design and development
  • Support and consultation
links menus
Links/Menus
  • Beyond bookmarks
  • Dynamic Menu Portlet
  • Dynamic set of links, based upon group membership
  • UI for delegated administration
  • File based configuration
  • Caching
static xslt
Static XSLT
  • Implemented as a portlet
  • Retrieve via file system, classpath, URL
  • Caching
slide18
RSS
  • Promoted as standard was of publishing information on campus
  • Single feed per channel
  • Use XSLT portlet
  • Script retrievesand caches on disk
webproxy
WebProxy
  • Extensively used in portal
  • Great for integrating existing or purchased applications
  • Local or remote
  • Integrate simple, custom .Net applications
webproxy configuration
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
IFrame
  • Used to integrate preview of other WebISO applications
  • PubCookie does nothave proxy ticket
  • Minimal impact onportal server
  • Minimal integrationtouch point
native portlets
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
Portal API Abstraction Layer
  • Portal Database Pool
  • LDAP
  • User attributes
  • Groups
  • Portal session
  • Portal logger
  • Extra information
native portlets28
Native Portlets

Course Guide

Library/Reserves

Learn@UW

Course Guide

organization29
Organization
  • Fixed set of tabs determined by group membership
  • Content categories relegated to particular tabs
  • Key applications available in header on all tabs
personalization
Personalization
  • Readily identify and navigate to content loaded on the page
  • Easy selection of content
  • Separate selection from arrangement
framework code
Framework Code
  • Tightly managed by small group of developers
  • Rarely changes
  • Modified version of released uPortal
portlet code
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
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
Administrative Components
  • kshrc/cshrc files
  • Scripts, tools
  • Data files
  • chanpub files
framework version control
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
Application Version Control
  • Develop on HEAD
  • Tag releases for other environments (test, qa, prod, etc.)
more tags
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

testdemo

demo

predev

dev

test

demo

qa

prod

Environments

pc

pc

pc

pc

slide44
Demo

Combination of portlets

  • Same as production (weather)
  • Simulation (Course Resources)
  • Screen shots (email)
  • Missing (academic analysis)

Also developing tutorials

infrastructure45
Infrastructure
  • Sun v210 dual UltraSPARC IIIi 1.3Ghz 2Gb Ram
  • Tomcat 5.5.16
  • Apache 2.0.55
  • Oracle 9.2.0.7 on the “Oracle farm”
  • JDK 1.5.0_06
  • uPortal 2.5.1+
  • Layer 4 Nortel Alteon
  • PubCookie for WebISO
clustering
Clustering

Layer 4

Database

code migration
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
Scripts
  • Add to or remove from cluster
  • Cluster synchronization and rolling restarts
  • Prime a server
  • Trigger thread dump
  • Compare CVS tags
tools
Tools
  • Attribute swapper portlet
  • Log viewer
  • Cluster status page
  • JConsole for monitoring
  • Custom JMX dashboard
  • Wiki
  • Jira
load testing
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
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
Resources

Code contributions

https://www.ja-sig.org/wiki/display/JSG/UW-Madison+Contributions

Code management https://mywebspace.wisc.edu/jfthomps/vc

Demo

https://my.wisc.edu (Fall 2006)

Jim Helwig

Jim.helwig@doit.wisc.edu

University of Wisconsin-Madison