1 / 58

How We Did It

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

Faraday
Download Presentation

How We Did It

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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

More Related