Phased soa integration of people soft and 3rd party applications


Published on

White Paper written for Northrop Grumman Presentation at Collaborate 10:
A challenge arises when creating a new integration between systems when one system is not able to communicate through Web Services due to technology and/or training and resources. Is the solution to create old style integrations using batch processes and flat files until both systems are able to implement Web Services? Worse yet, do we spend more money to redevelop the existing interface once we have the ability to do it better?

Published in: Technology
1 Comment
1 Like
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Phased soa integration of people soft and 3rd party applications

  1. 1. Phased SOA Integration of PeopleSoft and 3rd Party Applications Randall Groncki Northrop Grumman Corporation Introduction The technology of Service Oriented Architecture and Web Services is several years old. Tools based upon open standards have been available in Oracle’s People Tools since version 8.48 and a proprietary form earlier than this. However, these technologies are just now becoming main stream in established ERP environments as developers and support become more familiar the implementation and customers demand faster, tighter integration between systems. A challenge arises when creating a new integration between systems when one system is not able to communicate through Web Services due to technology and/or training and resources. Is the solution to create old style integrations using batch processes and flat files until both systems are able to implement Web Services? Worse yet, do we spend more money to redevelop the existing interface once we have the ability to do it better? This paper describes one solution to this problem. The simple idea is to develop the final PeopleTools integration solution using web services while allowing the other system to create their side of the interface using the batch tools and resources they have available. Then, create a surrogate for the other system inside PeopleSoft which will communicate using Web Services with the PeopleSoft application and translate the data to the older batch style to the other system. At some point in the future when web services are available to that other system, the PeopleTools solution will require minimum changes to turn off the surrogate and have the two systems communicate directly. Integration Goal Our goal was to integrate PeopleSoft HCM Enterprise Learning module with the Plateau LMS application. The PeopleSoft HCM implementation at the customer controls the agency’s in house, classroom training while the Plateau application provides CBT and web seminars to the customer and outside clients. Plateau students outside of the customer can see customer Course offerings and request enrollment into these courses through the Plateau application. Plateau then keeps the students informed of their enrollment status as that status proceeds through the course enrollment lifecycle. The Integrating Systems The PeopleSoft HCM 8.8 Enterprise Learning Module controls the internal agency classroom training: • PeopleSoft HCM 8.8 using Tools 8.48 • HCM application with Enterprise Learning Module for customer only o Course definitions o Session Scheduling o Facilities management and scheduling 1 Collaborate 10 Copyright ©2010 Northrop Grumman
  2. 2. o Instructor scheduling o Course rosters and status o Communications to all involved in the training 2 Collaborate 10 Copyright ©2010 Northrop Grumman
  3. 3. The Plateau LMS is a JAVA based application providing training to the customer and outside clients: • Plateau LMS Version 5.8 • Live and recorded Seminars • CBT Classes • One application serves multiple Federal Agencies • Web based application • Hosted by the customer Integration Vision The vision of our completed system is one where the systems communicate in near real time using asynchronous messages (think mailbox, not telephone call). A change to integrated data on one system is sent as an individual transaction to the other system upon the user saving. The systems will communicate using XML messages through Web Services. Each system is constantly “listening” for updates from the other system and acts upon a message immediately upon receiving it. Integration Challenge The intended integration is a perfect textbook example of a good, web services application, but, we ran into a problem: The Plateau team was not ready to use web services. Both the PeopleSoft and Plateau application are able to communicate through web services as delivered from the respective vendors. However, the PeopleSoft support team is larger and has both developers and administrators with web services training and experience. While not junior, none of the Plateau developers and system administrators has training or experience with web services. Currently, the Plateau team is only capable of traditional style interfaces. Web Services Definition We are defining Web Services in the following way for this specific integration. A Web Services Integration contains a service provider providing a service and a consumer using that service from the provider. The provider and consumer communicate through XML messages sent asynchronously creating “Near Real Time” integration. Since both systems can change enrollment status for a student, both systems must “Provide” and “Consume” web services maintain data synchronization. Provider • Creates functionality and makes it available to other applications and processes • Defines the communication process • Data file composition and description • Communication methods and security 3 Collaborate 10 Copyright ©2010 Northrop Grumman
  4. 4. • Constantly listens for requests Consumer • Consumes (uses) Web Services • Initiates Communication • Must adhere to Provider’s rules PeopleSoft Integration Points PeopleSoft must keep Plateau up to date on changes and additions to courses as well as changes to enrollments for those students who have enrolled through Plateau. • Course Table • Course Session Table • Facilities Table • Facilities Rooms Table • Changes to Plateau enrollments in PeopleSoft courses Conversely, Plateau must communicate new course enrolments to PeopleSoft and changes to those enrollments through Plateau. Once a student has enrolled in a course, the student or the student’s management may cancel that enrolment. • Enrollments into PeopleSoft Courses • Changes to PeopleSoft enrollments Service Provider Consumer Psoft Course Update Plateau PeopleSoft Psoft Session Update Plateau PeopleSoft Psoft Facility Update Plateau PeopleSoft Psoft Room Update Plateau PeopleSoft Course Update Status PeopleSoft Plateau Enroll/Change in Psoft course PeopleSoft Plateau Enroll Status Plateau PeopleSoft Enroll/Change in Psoft course Plateau PeopleSoft Enroll Status PeopleSoft Plateau Additionally, each system must track which enrollments were sent through the integration and which were not. Sending an update to an enrollment which did not come through the integration will generate an error in the other system. Conversely, not sending information on an updated enrollment will cause the systems to fall out of synchronization. 4 Collaborate 10 Copyright ©2010 Northrop Grumman
  5. 5. Integration Plan Given that the PeopleSoft group is web service capable now and the Plateau group will eventually implement web services, we would implement in two phases. The goal of the phases is to implement the integration now using available technology, and then migrate to web services later while rewriting as little code as possible. Phase 1 will create a traditional integration between PeopleSoft and Plateau. • Phase 2 XML data structures were agreed upon, and then created as Oracle database tables within the Plateau environment. DBAs created DBLinks granting the PeopleSoft application full access to these tables. • The PeopleSoft side is coded as a Web Services application. A surrogate Plateau service is created inside PeopleSoft until the real Plateau system is ready. • Changes to source data update the database tables in real time. • Recurring batch processes read the integration tables an update the target systems. Phase 2 implements real web services between PeopleSoft and Plateau. • Communicate phase one data through Web Services • DBLinks are removed • Data updates in near real time It is easier to understand the Phase 2 integration plan before looking at the Phase 1 plan. The Phase 1 plan does not make sense until the final integration plan is understood. Phase 2 Integration Example: PeopleSoft Adds Course Offering In this example, PeopleSoft Enterprise Learning users add course to the course catalog. Upon save, PeopleSoft will send the new course data to Plateau to be added to the available courses. Plateau’s listener receives the message sending it to a handler which adds the course to the Plateau course catalog. Plateau then generates a status message informing PeopleSoft that the course addition was received and successfully processed. PeopleSoft receives the status message, completing the transaction. If errors occurred, PeopleSoft users will be able to see them on a status page and deal with them as appropriate. 5 Collaborate 10 Copyright ©2010 Northrop Grumman
  6. 6. Phase 2 Integration Example: New Enrollment This example shows a Plateau user enrolling into a PeopleSoft course. Upon submission, Plateau sends the enrollment and student information to PeopleSoft. PeopleSoft’s listener receives the message and hands the XML document to a PeopleCode Application Package controlling enrolments. First, the system looks to see if the student is already in the PeopleSoft database. If this is a new student, PeopleSoft creates a new employee ID as a “Student-Non Employee” type using a Component Interface. Then, the Student Enrollment Component Interface is invoked to enroll the student into the course in “Requested” status. The new enrollment generates an Enrollments Status message which is sent back to Plateau. Plateau receives the Enrollment Status message and updates the student rolls and notifies the student of the enrollment. Any subsequent change to the enrollment on either system will generate a new message to keep the other system informed. An example of this is when the course manager changes the student’s enrollment status from “Requested” to “Enrolled”. Plateau is instantly notified and the student is informed as per the Plateau business rules. 6 Collaborate 10 Copyright ©2010 Northrop Grumman
  7. 7. Phase 1 Implementation A total Web Services solution was too aggressive for the Phase 1 implementation. The purpose of this phase is to integrate the two systems today in such a way to minimize rewrites and changes during the Phase 2 integration while focusing on integration processes and business rules. The PeopleSoft side of the integration is written as a web services application while the Plateau side of the integration is written as a traditional, batch style interface. A Plateau surrogate system is built into the PeopleSoft side as a translator which will communicate with PeopleSoft using web services while simultaneously communicating with Plateau as a batch process. Plateau hosts Oracle database tables which the systems communicate through using DBLinks. A custom Application Engine acts as the surrogate sending agent for Plateau. The scheduled process reads the database tables for needed work publishing each required transaction as its own message. When Plateau is ready for Phase 2, the routings on PeopleSoft’s Service Operations will change to point to the real Plateau application instead of the surrogate. The integration will then continue with minimum code change within the PeopleSoft application. Phase 1 Integration Example: PeopleSoft Adds Course Offering PeopleSoft users add a new course to the course catalog. The PeopleSoft Integration Broker publishes the message to Plateau. The Plateau Surrogate catches the message invoking a PeopleCode Application Package Handler which writes the transaction to the database tables on Plateau. Plateau’s scheduled batch process picks up the new transaction and adds it to the Plateau course offerings and then writes a successful status message to a database table 7 Collaborate 10 Copyright ©2010 Northrop Grumman
  8. 8. A PeopleSoft App Engine reads the status table and publishes the status message to PeopleSoft Listener. The Listener then evokes a handler updating the original system on the success or failure of adding that course to Plateau. 8 Collaborate 10 Copyright ©2010 Northrop Grumman
  9. 9. Phase 2 Implementation Depending on the system, implementing phase 2 will be either easy or very involved. Plateau must recode much of their integration for Phase 2. The existing batch processes will not ramp up to individual, near real time messaging needed for web services. The level of effort is unknown at this time. PeopleSoft’s Phase 2 will be simple and strait forward. New routings on the Service Operations will point the existing services to the new Plateau listeners. Additionally, developers and Administrators will create SOAP wrappers and transport security for the messages. The existing Plateau Surrogate Listeners and Application Engine will be removed. Conclusion When implemented properly and for the right applications, Web Services have many advantages over traditional interfaces. Foremost of these in our user’s view is the “Near Real Time” integration that they have come to expect from their applications through common sites such as Google, Yahoo and most internet shopping sites. The question becomes how to start implementing Web Services integrations now when many of the interfacing systems are not Web Services enabled? Better said, how do we not pay for developing these twice in PeopleSoft: the old way now and the better way later when that other system is ready? One solution, as shown here, is to build surrogate, web service enabled systems into PeopleSoft allowing us to code once now for the ultimate solution and turn off the surrogates when they are no longer needed. 9 Collaborate 10 Copyright ©2010 Northrop Grumman