How We Did It - PowerPoint PPT Presentation

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

play fullscreen
1 / 58
Download
Download Presentation

How We Did It

Presentation Transcript

  1. How We Did It Techniques from a Major uPortal Deployment Jim Helwig JA-SIG June 2006

  2. Background General Strategies Development Techniques Code Management Infrastructure Administration How We Did It

  3. Background

  4. 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

  5. Organization • Advisory group • Service team • Portal infrastructure team • Academic development group • Other development groups

  6. Why Change? uPortal Benefits • Focus on Higher Education • Influence over product direction • Easier to customize • Product continuity • Active community • Opportunities for self-support

  7. DC-10

  8. DC-10  Boeing 757 … mid-flight

  9. While avoiding this…

  10. General Strategies

  11. 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.”

  12. General Strategies Re-use code and techniques • Links/menus • Static XSLT • RSS • WebProxy • Native, custom code

  13. General Strategies Portlets, not channels • Native in uPortal 3.x • Minimize upgrade effort • Maximize portability

  14. General Strategies Get Help - Worked with Unicon • Proof of concept • Feasibility study • Design and development • Support and consultation

  15. Development Techniques

  16. Links/Menus • Beyond bookmarks • Dynamic Menu Portlet • Dynamic set of links, based upon group membership • UI for delegated administration • File based configuration • Caching

  17. Static XSLT • Implemented as a portlet • Retrieve via file system, classpath, URL • Caching

  18. RSS • Promoted as standard was of publishing information on campus • Single feed per channel • Use XSLT portlet • Script retrievesand caches on disk

  19. WebProxy • Extensively used in portal • Great for integrating existing or purchased applications • Local or remote • Integrate simple, custom .Net applications

  20. WebProxy – Existing Vendor Product

  21. WebProxy – Remote Application

  22. WebProxy – Custom .Net Application

  23. 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

  24. WebProxy – Configuration UI

  25. IFrame • Used to integrate preview of other WebISO applications • PubCookie does nothave proxy ticket • Minimal impact onportal server • Minimal integrationtouch point

  26. Native Portlets • Great for integrating multiple systems • Reuse Java code and JSPs • Ported shared libraries • Called for implementation of missing APIs/services

  27. Portal API Abstraction Layer • Portal Database Pool • LDAP • User attributes • Groups • Portal session • Portal logger • Extra information

  28. Native Portlets Course Guide Library/Reserves Learn@UW Course Guide

  29. Organization • Fixed set of tabs determined by group membership • Content categories relegated to particular tabs • Key applications available in header on all tabs

  30. Personalization • Readily identify and navigate to content loaded on the page • Easy selection of content • Separate selection from arrangement

  31. Content Selection

  32. Content Arrangement

  33. Code Management

  34. Code Organization

  35. Framework Code • Tightly managed by small group of developers • Rarely changes • Modified version of released uPortal

  36. 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

  37. 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

  38. Administrative Components • kshrc/cshrc files • Scripts, tools • Data files • chanpub files

  39. 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.)

  40. Application Version Control • Develop on HEAD • Tag releases for other environments (test, qa, prod, etc.)

  41. More Tags • Environment-specific files are branched (my-predev-tc-under) • Installed/removed files have “in” or “out” tags (intest, outaqa, outaprod_20060605_1030)

  42. Infrastructure

  43. testdemo demo predev dev test demo qa prod Environments pc pc pc pc

  44. Demo Combination of portlets • Same as production (weather) • Simulation (Course Resources) • Screen shots (email) • Missing (academic analysis) Also developing tutorials

  45. 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

  46. Clustering Layer 4 Database

  47. Administration

  48. 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

  49. Build reports

  50. Scripts • Add to or remove from cluster • Cluster synchronization and rolling restarts • Prime a server • Trigger thread dump • Compare CVS tags