Más contenido relacionado Similar a Phased soa integration of people soft and 3rd party applications (20) Phased soa integration of people soft and 3rd party applications1. 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. o Instructor scheduling
o Course rosters and status
o Communications to all involved in the training
2
Collaborate 10 Copyright ©2010 Northrop Grumman
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. • 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. 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. 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. 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. 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. 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