580 likes | 912 Views
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
E N D
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
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 • Advisory group • Service team • Portal infrastructure team • Academic development group • Other development groups
Why Change? uPortal Benefits • Focus on Higher Education • Influence over product direction • Easier to customize • Product continuity • Active community • Opportunities for self-support
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 Strategies Re-use code and techniques • Links/menus • Static XSLT • RSS • WebProxy • Native, custom code
General Strategies Portlets, not channels • Native in uPortal 3.x • Minimize upgrade effort • Maximize portability
General Strategies Get Help - Worked with Unicon • Proof of concept • Feasibility study • Design and development • Support and consultation
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 • Implemented as a portlet • Retrieve via file system, classpath, URL • Caching
RSS • Promoted as standard was of publishing information on campus • Single feed per channel • Use XSLT portlet • Script retrievesand caches on disk
WebProxy • Extensively used in portal • Great for integrating existing or purchased applications • Local or remote • Integrate simple, custom .Net applications
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 • Used to integrate preview of other WebISO applications • PubCookie does nothave proxy ticket • Minimal impact onportal server • Minimal integrationtouch point
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 Database Pool • LDAP • User attributes • Groups • Portal session • Portal logger • Extra information
Native Portlets Course Guide Library/Reserves Learn@UW Course Guide
Organization • Fixed set of tabs determined by group membership • Content categories relegated to particular tabs • Key applications available in header on all tabs
Personalization • Readily identify and navigate to content loaded on the page • Easy selection of content • Separate selection from arrangement
Framework Code • Tightly managed by small group of developers • Rarely changes • Modified version of released uPortal
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 • 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 • kshrc/cshrc files • Scripts, tools • Data files • chanpub files
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 • Develop on HEAD • Tag releases for other environments (test, qa, prod, etc.)
More Tags • Environment-specific files are branched (my-predev-tc-under) • Installed/removed files have “in” or “out” tags (intest, outaqa, outaprod_20060605_1030)
testdemo demo predev dev test demo qa prod Environments pc pc pc pc
Demo Combination of portlets • Same as production (weather) • Simulation (Course Resources) • Screen shots (email) • Missing (academic analysis) Also developing tutorials
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 Layer 4 Database
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 • Add to or remove from cluster • Cluster synchronization and rolling restarts • Prime a server • Trigger thread dump • Compare CVS tags