330 likes | 494 Views
Lather, Rinse, Reuse: Rapid PeopleSoft Web Services Using a Configurable Data Services Framework. Session #29613 March 29, 2011. Presenters:. Jeremiah Adams Enterprise Architect for University Information Systems Formerly IT Architect for Boulder Campus Chris Rigsby
E N D
Lather, Rinse, Reuse: Rapid PeopleSoft Web Services Using a Configurable Data Services Framework Session #29613 March 29, 2011
Presenters: • Jeremiah Adams • Enterprise Architect for University Information Systems • Formerly IT Architect for Boulder Campus • Chris Rigsby • Systems Engineer with Optimyzed Systems LLC • Working on the University of Colorado’s implementation project since April ‘08 • Former Systems Architect for University of Minnesota • HEUG Tech Advisory Group Member in ’06
Overview • Deploy a service based framework for student data interfaces • Leverage new technology capabilities and the opportunity of a system deployment to shift integration paradigms • Exploit re-usability for efficient service production
Agenda • Background • Architectural Considerations • Demo • Design • Lessons Learned
University of Colorado • 3 Campus System • 56, 000 Students • 2.6 Billion Operating Budget • 5,400 Instructional Faculty
CU& Oracle The University of Colorado operates PeopleSoft: • Financials • HR • Campus Solutions • Enterprise Portal • CRM Additionally we rely upon Oracle Fusion Middleware, Service Bus, Weblogic Server and RAC.
Background • In the midst of deploying Campus Solutions • Transitioning from a Mainframe SIS • Many external systems bolstering functionality of mainframe • External system access to data via batch files, and ODBC to Data Warehouse
Defining The Problem • Downstream system from legacy SIS required student data. • Hundreds of interfaces were in existence • Many of these systems and therefore interfaces needed to be re-produced
Defining The Environment Central IT Campus IT Distributed IT
Objectives • Balance Performance / Elegance / Simplicity • Capitalize on re-usability, and understandability • Develop a Canonical Model • Reduce local data storage • Eliminate use of ODBC • Simplify our integrations to follow 3 patterns: • Request Response • Event • Batch File
Technology Context • Use the tools at hand: • Campus Solutions • Fusion Middleware • OSB • OWSM
Data Governance • DAG • Registrars from all campuses • Procedures / approval for distributed access to and storage of data
Demo: CU Boulder’s “Advisee” Web Service A quick LIVE demonstration using soapUI Input: • A student ID (EMPLID) value Output: • Person Data • Names • Addresses • Email Addresses • Phone Numbers • Student Data • Career, Program, Plan • Student Groups • Service Indicators • Advisor(s) • Academic Work • Transfer Credit • Courses Taken at CU
Designing the Framework Goals • Build reusable Data Service objects that can be glued together in different ways to make Web Services • Make it easy to extract data as XML • Make the output configurable • Create friendlier table and field aliases for consumers • Control which tables/field are sent for a particular web service • Automate the creation of complex output XSD schema documents • Allow for non-disruptive extensibility • Add a new table to a data service without affecting existing consumers
Designing the Framework After several trial iterations using PSUnit to drive testing of PeopleCode Application Classes…
Designing the Framework PeopleCode Class: CUDataEntity • 1 instance per table/record in each Data Service • Manages data for table and field aliases • Manages visibility (include or exclude this table or any fields in the output)
Designing the Framework PeopleCode Class: CUAbstractDataService • Contains an array of PeopleCodeRowset objects • Rowsets can be hierarchical structured data containers • Parent/Children/Grandchildren • Allows multiple tree-like structures to be grouped
Designing the Framework PeopleCode Class: CUAbstractDataService • Contains a swiss-army knife of utility methods that subclasses can use to: • Populate the entire Rowset tree with a single call • Filter the data to show only current effective-dated data • Output XML and XSD for a web service by crawling the Rowset structure
Designing the Framework PeopleCode Class: CUAbstractWebServiceHandler This abstract class provides utilities that allow subclasses to easily coordinate the work of one or more Data Service objects.
Designing the Framework PIA Component: Data Service Defaults • Establishes the linkage between a PeopleCodeDataService implementation and configuration data • Basic description of the Data Service • Record/Field aliases • Output control (checkboxes to include in output) These are default values for a DataService object. Each Web Service implementation can override!
Designing the Framework PIA Component: Data Service Defaults
Designing the Framework PIA Component: Data Service Defaults
Designing the Framework PIA Component: Web Service Configuration • Linkage between configuration data and the PeopleCode • Handler class • Inherits config (aliases, include flags) from Data Services, allows overide for each Web Service Handler without affecting other services • Automagically generates XML Schema (XSD) for the output data structure based on include flags and aliases!
PIA Component: Web Service Configuration Designing the Framework PIA Component: Web Service Configuration
PIA Component: Web Service Configuration Designing the Framework
PIA Component: Web Service Configuration Designing the Framework
Creating a New Web Service • Design & Build a new Data Service class (if needed, otherwise reuse an existing one) • Iteratively Code & Test the new Data Service class using PSUnit • Configure Data Service output defaults • Design & Build the Web Service Handler class • Iteratively Code & Test the new Web Service Handler class using PSUnit • Configure the Web Service Handler Outputs • Generate Output XML Schema • Build XML Input Schema • Build the IB Web Service • Create Request and Response Messages • Create the Service definition (container for one or more Service Operations) • Create the synchronous Service Operation • Assign to a Service • Assign the Request and Response Messages • Create “Any-to-Local” Routing • Assign PeopleCode Request Handler • Publish Service Operation as a Web Service (Generate WSDL)
Lessons Learned & Next Steps • Less than 2 Hours to build a new Web Service! • The “Huge Results Set” Issue • Oracle Web Services Manager Slowing Us Down • Implement Async Request/Response? • Desire to move from UsernameToken to Certificate-based Authentication
Questions? • What did we miss? • We will be contributing this package to “community source” for you to review and use!
Contacts • Jeremiah Adams • Enterprise Architect • University Information Services • University of Colorado • E-mail: Jeremiah.Adams@cu.edu • Chris Rigsby • Systems Engineer (Consultant) • Optimyzed Systems LLC • http://optimyzed.com • E-mail: chris.rigsby@optimyzed.com
This presentation and all Alliance 2011 presentations are available for download from the Conference site atwww. heug.orgwww.psugonline.orgwww.federalusersnetwork.com Presentations from previous meetings are also available