ZotPortal: Integrating Legacy Systems and Planning for the Worst Case

1,047 views
993 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
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,047
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

































































































































































































































































































  • 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

    ×