ZotPortal: Integrating Legacy Systems and Planning for the Worst Case
Upcoming SlideShare
Loading in...5
×
 

ZotPortal: Integrating Legacy Systems and Planning for the Worst Case

on

  • 1,276 views

This mildly technical presentation will consist of two parts:...

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.

Statistics

Views

Total Views
1,276
Views on SlideShare
1,275
Embed Views
1

Actions

Likes
0
Downloads
10
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />

ZotPortal: Integrating Legacy Systems and Planning for the Worst Case ZotPortal: Integrating Legacy Systems and Planning for the Worst Case Presentation Transcript

  • ZotPortal: Integrating Legacy Systems and Planning for the Worst Case Erik A. Olsson erik.olsson@uci.edu
  • University of California, Irvine In between San Diego and Los Angeles 30,000 students Founded 1965 Jasig member institution (every year)
  • Agenda
  • Agenda Some history
  • Agenda Some history “Selling” the Prototype
  • Agenda Some history “Selling” the Prototype Connecting the silos
  • Agenda Some history “Selling” the Prototype Connecting the silos Preparing for the worst-case
  • Agenda Some history “Selling” the Prototype Connecting the silos Preparing for the worst-case Plans for the future
  • Agenda Some history “Selling” the Prototype Connecting the silos Preparing for the worst-case Plans for the future Q&A
  • A Quick History
  • A Quick History Staff Portal - uPortal based (2001)
  • A Quick History Staff Portal - uPortal based (2001) Started many times
  • A Quick History Staff Portal - uPortal based (2001) Started many times Student Portal committee (2005)
  • A Quick History Staff Portal - uPortal based (2001) Started many times Student Portal committee (2005) 2006 FTE hired
  • A Quick History Staff Portal - uPortal based (2001) Started many times Student Portal committee (2005) 2006 FTE hired Early 2007 first prototype
  • 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
  • “Selling” the Prototype
  • “Selling” the Prototype The traveling road-show
  • “Selling” the Prototype The traveling road-show 50+ presentations: libraries, academic departments, student groups, managers, chancellor
  • “Selling” the Prototype The traveling road-show 50+ presentations: libraries, academic departments, student groups, managers, chancellor Input from many stakeholders
  • “Selling” the Prototype The traveling road-show 50+ presentations: libraries, academic departments, student groups, managers, chancellor Input from many stakeholders Identified the requirements
  • “Selling” the Prototype The traveling road-show 50+ presentations: libraries, academic departments, student groups, managers, chancellor Input from many stakeholders Identified the requirements Wiki
  • Prototype to Reality
  • Prototype to Reality Approval to proceed
  • Prototype to Reality Approval to proceed Decide on a version 2.5.3 → 2.6.1 → 3.0.1
  • Prototype to Reality Approval to proceed Decide on a version 2.5.3 → 2.6.1 → 3.0.1 ALM → DLM
  • 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
  • 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
  • Usability
  • Usability Followed User-Centered Design (UCD) principles Made personas, user stories, etc
  • Usability Followed User-Centered Design (UCD) principles Made personas, user stories, etc Mock-ups in Illustrator
  • 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)
  • 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
  • Usability
  • Usability Too light
  • Usability Too light Too similar
  • Usability Too light Too similar Hard to see
  • Test Results
  • Test Results Studies & survey results
  • Test Results Studies & survey results Students want: course enrollment, course management system (EEE), financial aid, bookstore, admissions & “fun stuff.”
  • 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
  • Connecting the Silos
  • Connecting the Silos Admissions Financial Books Course Management Registrar
  • Connecting the Silos
  • Connecting the Silos Difficulties Disparate standards
  • Connecting the Silos Difficulties Disparate standards Disparate skill sets
  • Connecting the Silos Difficulties Disparate standards Disparate skill sets Willingness to participate
  • Connecting the Silos Difficulties Disparate standards Disparate skill sets Willingness to participate Availability
  • Approaches
  • Approaches 1.Authenticated RSS/XML
  • Approaches 1.Authenticated RSS/XML 2.IP-restricted script with parameters (or web proxy)
  • Approaches 1.Authenticated RSS/XML 2.IP-restricted script with parameters (or web proxy) 3.Authenticated Screen Scraping
  • Approaches 1.Authenticated RSS/XML 2.IP-restricted script with parameters (or web proxy) 3.Authenticated Screen Scraping 4.Web-services SOAP/WSDL
  • 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
  • Approach 1: RSS/XML User RSS Silo’d App XSLT uPortal
  • Approach 1: RSS/XML User RSS Auth Cookie Silo’d App XSLT uPortal
  • Approach 1: RSS/XML User RSS Auth Cookie Silo’d App XSLT uPortal Determines validity of cookie
  • Approach 1: RSS/XML User RSS Auth Cookie RSS Silo’d App XML XSLT uPortal Determines validity of cookie
  • 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
  • Approach 2: IP-restr. script User JSR-168 Silo’d App uPortal
  • Approach 2: IP-restr. script User ?id=jstudent JSR-168 Silo’d App uPortal
  • Approach 2: IP-restr. script User ?id=jstudent JSR-168 Silo’d App uPortal Checks against list of portal IPs
  • Approach 2: IP-restr. script User ?id=jstudent JSR-168 Silo’d App Simple XML uPortal Checks against list of portal IPs
  • Approach 2: IP-restr. script Used for: “My Housing” portlet Needed “campus_id” Work involved: Create simple portlet to fetch & parse simple response codes
  • Appr. 3: Auth. Screen Scrape User Silo’d Web Page uPortal
  • Appr. 3: Auth. Screen Scrape User JSR-168 Silo’d Web Page uPortal
  • Appr. 3: Auth. Screen Scrape Normal Web Proxy User Request JSR-168 Auth C ookie Silo’d Web Page uPortal Determines validity of cookie
  • 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
  • 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)
  • Approach 4: Web-service User JSR-168 Spring-WS + WS-Security Silo’d DB Web Service uPortal
  • Approach 4: Web-service User Signs with x509 cert JSR-168 Spring-WS + WS-Security Silo’d DB Web Service uPortal
  • 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
  • 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
  • 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
  • Approach 4: Web-service
  • Approach 4: Web-service No early progress
  • Approach 4: Web-service No early progress Gained DB access, basic schema docs
  • Approach 4: Web-service No early progress Gained DB access, basic schema docs Hibernate “rev-eng” ant scripts
  • Approach 4: Web-service No early progress Gained DB access, basic schema docs Hibernate “rev-eng” ant scripts Design XSD
  • 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
  • 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
  • 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
  • My Courses (demo)
  • My Courses (demo)
  • My Courses (demo)
  • My Courses (demo)
  • My Courses (demo)
  • My Courses (demo)
  • My Courses (demo)
  • Preparing for the Worst Case
  • Preparing for the Worst Case Your Datacenter
  • Requirements
  • Requirements Potential combined traffic of Staff Portal & Course Management System (EEE)
  • Requirements Potential combined traffic of Staff Portal & Course Management System (EEE) Full redundancy
  • Requirements Potential combined traffic of Staff Portal & Course Management System (EEE) Full redundancy Extremely low cost
  • 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
  • Products Considered
  • Products Considered Barracuda, very cheap, light-duty, not scalable
  • Products Considered Barracuda, very cheap, light-duty, not scalable F5, easy to use, very expensive & not scalable
  • Products Considered Barracuda, very cheap, light-duty, not scalable F5, easy to use, very expensive & not scalable Cisco, cheap & scalable, difficult to use
  • Normal Operation
  • portal.uci.edu
  • SSL portal.uci.edu
  • SSL SSL portal.uci.edu
  • SSL portal.uci.edu
  • SSL portal.uci.edu
  • SSL portal.uci.edu
  • SSL portal.uci.edu SESS 1-1
  • SSL portal.uci.edu SESS 1-1
  • SSL portal.uci.edu SESS
  • portal.uci.edu SESS
  • portal.uci.edu
  • SSL portal.uci.edu
  • SSL SSL portal.uci.edu
  • SSL portal.uci.edu
  • SSL portal.uci.edu
  • SSL portal.uci.edu
  • SSL portal.uci.edu SESS 2-3
  • SSL portal.uci.edu SESS 2-3
  • SSL portal.uci.edu SESS 2-3
  • SSL portal.uci.edu SESS
  • portal.uci.edu SESS
  • Disaster 1 Berkeley Place goes down Secondary location 100% uptime maintained
  • portal.uci.edu
  • SSL portal.uci.edu
  • SSL portal.uci.edu
  • SSL portal.uci.edu
  • SSL portal.uci.edu 1-3
  • SSL portal.uci.edu 1-3
  • SSL portal.uci.edu
  • portal.uci.edu
  • Disaster 1 (BP) Considerations Primaries are still up When BP comes back up, primaries unaffected No manual intervention required 100% uptime
  • Disaster 2 Worst Case ADC (Engineering Gateway) goes down Primaries go down
  • portal.uci.edu
  • SSL portal.uci.edu
  • SSL portal.uci.edu
  • portal.uci.edu SSL
  • SSL portal.uci.edu 2-3
  • SSL portal.uci.edu 2-3
  • DB SSL portal.uci.edu 2-3
  • SSL portal.uci.edu Manual Configuration Rewrite 2-3
  • SSL portal.uci.edu Manual Configuration Rewrite 2-3
  • SSL portal.uci.edu Manual Configuration Rewrite
  • portal.uci.edu Manual Configuration Rewrite
  • 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
  • Future Improvements
  • Future Improvements Send DB traffic through App Switches No manual configuration changes required Protection against primary taking over automatically when restored
  • 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
  • Since We Launched
  • Since We Launched Hardware failure on secondary server Not noticed App switch worked
  • 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
  • Questions? Erik A. Olsson erik.olsson@uci.edu