Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ZotPortal: Integrating Legacy Systems and Planning for the Worst Case

1,261 views

Published on

This mildly technical presentation will consist of two parts:

1. A discussion of how UC Irvine's ZotPortal (based on uPortal) was integrated with the COBOL-based legacy campus course enrollment system to show students their course schedules in a new way. Also covered: how ZotPortal shows the students their required book lists by interfacing with the campus book store's web site.

2. The ZotPortal hardware architecture: how we are preparing for power and network outages by distributing our system across the campus.

Published in: Technology, Design
  • Be the first to comment

  • Be the first to like this

ZotPortal: Integrating Legacy Systems and Planning for the Worst Case

  1. 1. ZotPortal: Integrating Legacy Systems and Planning for the Worst Case Erik A. Olsson erik.olsson@uci.edu
  2. 2. University of California, Irvine In between San Diego and Los Angeles 30,000 students Founded 1965 Jasig member institution (every year)
  3. 3. Agenda
  4. 4. Agenda Some history
  5. 5. Agenda Some history “Selling” the Prototype
  6. 6. Agenda Some history “Selling” the Prototype Connecting the silos
  7. 7. Agenda Some history “Selling” the Prototype Connecting the silos Preparing for the worst-case
  8. 8. Agenda Some history “Selling” the Prototype Connecting the silos Preparing for the worst-case Plans for the future
  9. 9. Agenda Some history “Selling” the Prototype Connecting the silos Preparing for the worst-case Plans for the future Q&A
  10. 10. A Quick History
  11. 11. A Quick History Staff Portal - uPortal based (2001)
  12. 12. A Quick History Staff Portal - uPortal based (2001) Started many times
  13. 13. A Quick History Staff Portal - uPortal based (2001) Started many times Student Portal committee (2005)
  14. 14. A Quick History Staff Portal - uPortal based (2001) Started many times Student Portal committee (2005) 2006 FTE hired
  15. 15. A Quick History Staff Portal - uPortal based (2001) Started many times Student Portal committee (2005) 2006 FTE hired Early 2007 first prototype
  16. 16. A Quick History Staff Portal - uPortal based (2001) Started many times Student Portal committee (2005) 2006 FTE hired Early 2007 first prototype Based on MyVT branch
  17. 17. “Selling” the Prototype
  18. 18. “Selling” the Prototype The traveling road-show
  19. 19. “Selling” the Prototype The traveling road-show 50+ presentations: libraries, academic departments, student groups, managers, chancellor
  20. 20. “Selling” the Prototype The traveling road-show 50+ presentations: libraries, academic departments, student groups, managers, chancellor Input from many stakeholders
  21. 21. “Selling” the Prototype The traveling road-show 50+ presentations: libraries, academic departments, student groups, managers, chancellor Input from many stakeholders Identified the requirements
  22. 22. “Selling” the Prototype The traveling road-show 50+ presentations: libraries, academic departments, student groups, managers, chancellor Input from many stakeholders Identified the requirements Wiki
  23. 23. Prototype to Reality
  24. 24. Prototype to Reality Approval to proceed
  25. 25. Prototype to Reality Approval to proceed Decide on a version 2.5.3 → 2.6.1 → 3.0.1
  26. 26. Prototype to Reality Approval to proceed Decide on a version 2.5.3 → 2.6.1 → 3.0.1 ALM → DLM
  27. 27. Prototype to Reality Approval to proceed Decide on a version 2.5.3 → 2.6.1 → 3.0.1 ALM → DLM Table-based → DIV- based
  28. 28. Prototype to Reality Approval to proceed Decide on a version 2.5.3 → 2.6.1 → 3.0.1 ALM → DLM Table-based → DIV- based Something to use a development base
  29. 29. Usability
  30. 30. Usability Followed User-Centered Design (UCD) principles Made personas, user stories, etc
  31. 31. Usability Followed User-Centered Design (UCD) principles Made personas, user stories, etc Mock-ups in Illustrator
  32. 32. Usability Followed User-Centered Design (UCD) principles Made personas, user stories, etc Mock-ups in Illustrator When you have something to test, test it (with incentives)
  33. 33. Usability Followed User-Centered Design (UCD) principles Made personas, user stories, etc Mock-ups in Illustrator When you have something to test, test it (with incentives) Discovered several problems
  34. 34. Usability
  35. 35. Usability Too light
  36. 36. Usability Too light Too similar
  37. 37. Usability Too light Too similar Hard to see
  38. 38. Test Results
  39. 39. Test Results Studies & survey results
  40. 40. Test Results Studies & survey results Students want: course enrollment, course management system (EEE), financial aid, bookstore, admissions & “fun stuff.”
  41. 41. Test Results Studies & survey results Students want: course enrollment, course management system (EEE), financial aid, bookstore, admissions & “fun stuff.” UI problems mostly fixed by uPortal 3 release
  42. 42. Connecting the Silos
  43. 43. Connecting the Silos Admissions Financial Books Course Management Registrar
  44. 44. Connecting the Silos
  45. 45. Connecting the Silos Difficulties Disparate standards
  46. 46. Connecting the Silos Difficulties Disparate standards Disparate skill sets
  47. 47. Connecting the Silos Difficulties Disparate standards Disparate skill sets Willingness to participate
  48. 48. Connecting the Silos Difficulties Disparate standards Disparate skill sets Willingness to participate Availability
  49. 49. Approaches
  50. 50. Approaches 1.Authenticated RSS/XML
  51. 51. Approaches 1.Authenticated RSS/XML 2.IP-restricted script with parameters (or web proxy)
  52. 52. Approaches 1.Authenticated RSS/XML 2.IP-restricted script with parameters (or web proxy) 3.Authenticated Screen Scraping
  53. 53. Approaches 1.Authenticated RSS/XML 2.IP-restricted script with parameters (or web proxy) 3.Authenticated Screen Scraping 4.Web-services SOAP/WSDL
  54. 54. Approaches 1.Authenticated RSS/XML 2.IP-restricted script with parameters (or web proxy) 3.Authenticated Screen Scraping 4.Web-services SOAP/WSDL Avoided: Direct database
  55. 55. Approach 1: RSS/XML User RSS Silo’d App XSLT uPortal
  56. 56. Approach 1: RSS/XML User RSS Auth Cookie Silo’d App XSLT uPortal
  57. 57. Approach 1: RSS/XML User RSS Auth Cookie Silo’d App XSLT uPortal Determines validity of cookie
  58. 58. Approach 1: RSS/XML User RSS Auth Cookie RSS Silo’d App XML XSLT uPortal Determines validity of cookie
  59. 59. Approach 1: RSS/XML Used for: “My Admissions Application” channel “MyEEE Tasks” channel (course management) Work involved: Install XSLT file, setup channel, Small portlet, pull in the RSS
  60. 60. Approach 2: IP-restr. script User JSR-168 Silo’d App uPortal
  61. 61. Approach 2: IP-restr. script User ?id=jstudent JSR-168 Silo’d App uPortal
  62. 62. Approach 2: IP-restr. script User ?id=jstudent JSR-168 Silo’d App uPortal Checks against list of portal IPs
  63. 63. Approach 2: IP-restr. script User ?id=jstudent JSR-168 Silo’d App Simple XML uPortal Checks against list of portal IPs
  64. 64. Approach 2: IP-restr. script Used for: “My Housing” portlet Needed “campus_id” Work involved: Create simple portlet to fetch & parse simple response codes
  65. 65. Appr. 3: Auth. Screen Scrape User Silo’d Web Page uPortal
  66. 66. Appr. 3: Auth. Screen Scrape User JSR-168 Silo’d Web Page uPortal
  67. 67. Appr. 3: Auth. Screen Scrape Normal Web Proxy User Request JSR-168 Auth C ookie Silo’d Web Page uPortal Determines validity of cookie
  68. 68. Appr. 3: Auth. Screen Scrape Normal Web Proxy User Request JSR-168 Auth C ookie Unmarshal Silo’d View Transform Web Page uPortal Clean Determines Massage validity of Response cookie
  69. 69. Appr. 3: Auth. Screen Scrape Used for: Library portlet Fetching bookstore books Why bother? Department uses vendor product with bad HTML Want to show less than whole page and rewrite significantly (otherwise WPP works)
  70. 70. Approach 4: Web-service User JSR-168 Spring-WS + WS-Security Silo’d DB Web Service uPortal
  71. 71. Approach 4: Web-service User Signs with x509 cert JSR-168 Spring-WS + WS-Security Silo’d DB Web Service uPortal
  72. 72. Approach 4: Web-service Verifies x509 User Signs with cert signed by x509 cert custom CA JSR-168 Spring-WS + WS-Security Silo’d DB Web Service uPortal
  73. 73. Approach 4: Web-service Verifies x509 User Signs with cert signed by x509 cert custom CA JSR-168 Spring-WS + WS-Security Silo’d DB Web Service uPortal Reverse- engineered Hibernate
  74. 74. Approach 4: Web-service Verifies x509 User Signs with cert signed by x509 cert custom CA JSR-168 Spring-WS + WS-Security Silo’d DB Web Service uPortal Encrypts with portlet’s Reverse- public key engineered Hibernate
  75. 75. Approach 4: Web-service
  76. 76. Approach 4: Web-service No early progress
  77. 77. Approach 4: Web-service No early progress Gained DB access, basic schema docs
  78. 78. Approach 4: Web-service No early progress Gained DB access, basic schema docs Hibernate “rev-eng” ant scripts
  79. 79. Approach 4: Web-service No early progress Gained DB access, basic schema docs Hibernate “rev-eng” ant scripts Design XSD
  80. 80. Approach 4: Web-service No early progress Gained DB access, basic schema docs Hibernate “rev-eng” ant scripts Design XSD Implement service and deliver to department
  81. 81. Approach 4: Web-service No early progress Gained DB access, basic schema docs Hibernate “rev-eng” ant scripts Design XSD Implement service and deliver to department Other departments now using
  82. 82. Approach 4: Web-service No early progress Gained DB access, basic schema docs Hibernate “rev-eng” ant scripts Design XSD Implement service and deliver to department Other departments now using Demo of this portlet
  83. 83. My Courses (demo)
  84. 84. My Courses (demo)
  85. 85. My Courses (demo)
  86. 86. My Courses (demo)
  87. 87. My Courses (demo)
  88. 88. My Courses (demo)
  89. 89. My Courses (demo)
  90. 90. Preparing for the Worst Case
  91. 91. Preparing for the Worst Case Your Datacenter
  92. 92. Requirements
  93. 93. Requirements Potential combined traffic of Staff Portal & Course Management System (EEE)
  94. 94. Requirements Potential combined traffic of Staff Portal & Course Management System (EEE) Full redundancy
  95. 95. Requirements Potential combined traffic of Staff Portal & Course Management System (EEE) Full redundancy Extremely low cost
  96. 96. Requirements Potential combined traffic of Staff Portal & Course Management System (EEE) Full redundancy Extremely low cost Need: Load balancer/app switch (redundant) Reliable hardware (redundant) Redundant data centers
  97. 97. Products Considered
  98. 98. Products Considered Barracuda, very cheap, light-duty, not scalable
  99. 99. Products Considered Barracuda, very cheap, light-duty, not scalable F5, easy to use, very expensive & not scalable
  100. 100. Products Considered Barracuda, very cheap, light-duty, not scalable F5, easy to use, very expensive & not scalable Cisco, cheap & scalable, difficult to use
  101. 101. Normal Operation
  102. 102. portal.uci.edu
  103. 103. SSL portal.uci.edu
  104. 104. SSL SSL portal.uci.edu
  105. 105. SSL portal.uci.edu
  106. 106. SSL portal.uci.edu
  107. 107. SSL portal.uci.edu
  108. 108. SSL portal.uci.edu SESS 1-1
  109. 109. SSL portal.uci.edu SESS 1-1
  110. 110. SSL portal.uci.edu SESS
  111. 111. portal.uci.edu SESS
  112. 112. portal.uci.edu
  113. 113. SSL portal.uci.edu
  114. 114. SSL SSL portal.uci.edu
  115. 115. SSL portal.uci.edu
  116. 116. SSL portal.uci.edu
  117. 117. SSL portal.uci.edu
  118. 118. SSL portal.uci.edu SESS 2-3
  119. 119. SSL portal.uci.edu SESS 2-3
  120. 120. SSL portal.uci.edu SESS 2-3
  121. 121. SSL portal.uci.edu SESS
  122. 122. portal.uci.edu SESS
  123. 123. Disaster 1 Berkeley Place goes down Secondary location 100% uptime maintained
  124. 124. portal.uci.edu
  125. 125. SSL portal.uci.edu
  126. 126. SSL portal.uci.edu
  127. 127. SSL portal.uci.edu
  128. 128. SSL portal.uci.edu 1-3
  129. 129. SSL portal.uci.edu 1-3
  130. 130. SSL portal.uci.edu
  131. 131. portal.uci.edu
  132. 132. Disaster 1 (BP) Considerations Primaries are still up When BP comes back up, primaries unaffected No manual intervention required 100% uptime
  133. 133. Disaster 2 Worst Case ADC (Engineering Gateway) goes down Primaries go down
  134. 134. portal.uci.edu
  135. 135. SSL portal.uci.edu
  136. 136. SSL portal.uci.edu
  137. 137. portal.uci.edu SSL
  138. 138. SSL portal.uci.edu 2-3
  139. 139. SSL portal.uci.edu 2-3
  140. 140. DB SSL portal.uci.edu 2-3
  141. 141. SSL portal.uci.edu Manual Configuration Rewrite 2-3
  142. 142. SSL portal.uci.edu Manual Configuration Rewrite 2-3
  143. 143. SSL portal.uci.edu Manual Configuration Rewrite
  144. 144. portal.uci.edu Manual Configuration Rewrite
  145. 145. Disaster 2 (ADC) Considerations Secondaries are now primaries Manual DB configuration change Depends on human response time Requires manual configuration change once ADC is back up
  146. 146. Future Improvements
  147. 147. Future Improvements Send DB traffic through App Switches No manual configuration changes required Protection against primary taking over automatically when restored
  148. 148. Future Improvements Send DB traffic through App Switches No manual configuration changes required Protection against primary taking over automatically when restored App switch supports multiple contexts
  149. 149. Since We Launched
  150. 150. Since We Launched Hardware failure on secondary server Not noticed App switch worked
  151. 151. Since We Launched Hardware failure on secondary server Not noticed App switch worked Kernel panic in secondary server’s primary domain Killed networking uPortal instances lost network connectivity App switched worked
  152. 152. Questions? Erik A. Olsson erik.olsson@uci.edu

×