Information Technology S i
Enterprise Service BusAn Integration Platform for UCLA
Curtis Fornadley, ESB Program ManagerBruin Tech-a-Thon
December 11, 2014
Information Technology S i
UCLA Enterprise Service Bus (ESB)
• The What & Why of Enterprise Service Bus?• How it is Implemented at UCLA• How it is Used - Today and in the Future• Brief Introduction to Web Services
• Purpose: Raise awareness and understanding of ESB on the campus and get people thinking about uses for it in their respective areas.
Information Technology S i
My ESBMind Map
Information Technology S i
ESB TechnologyMind Map
Information Technology S i
Number of Interfaces = n(n-1)/2 ~ n2
Why ESB? Multitudes of point-to-point integrations are costly to build and maintain.
Information Technology S i
ESB Enables Real Time Data Exchange
Current data processes are largely built around a daily or weekly batched exchange.
Lacks the infrastructure to enable Real Time data exchange.
Consumer Requests Data
Data Provider Creates Extract
Database
Cron job runs at some interval
Data file sent to a FTP drop
Information Technology S i
ESB Provides the Plumbing
ESB = Secure, Scalable, and Cost Effective Way to Manage Information Flow Among Systems.
Information Technology S i
ESB and SOA
Service Oriented Architecture (SOA ) is an architectural approach where you Encapsulate and Expose “Services”. It does not prescribe a specific technical implementation.
SOA facilitates Integration and Interaction between systems. If system A exposes services using a SOA you can interact with those
services from system B.
An ESB is a Technical Implementation that aids in delivering a SOA.
There are 2 roles in SOA/ESB Service Provider Service Consumer A software agent may play both roles
Information Technology S i
ESB Concepts
ESB first appeared ~2002 Middleware – no UI to visualize
Application to Application Communication
Four Pillars of ESB: Messaging (MOM, queuing) Web Services (SOAP & REST) Transformation (XML, XSLT, JSON…) Routing Intelligence
“Leave and Layer” Asynchronous data sharing
Information Technology S i
The UCLA ESB UCPath was the initial driver for ESB at UCLA The Shared UCLA ESB is hosted by IT Services
Red Hat JBoss Fuse - Open source integration platform (ESB) Based on Apache ServiceMix and Java Technologies CXF Service Framework, ActiveMQ (JMS), Camel Routing, OSGi
Robust monitoring with JBoss Operations Network (JON) & AppDynamics
UCB, UCI and UCR are also on Fuse
UCLA ESB follows the PAAS/IAAS model of application tenancy, isolation, capacity modeling, periodic upgrades & best practices
Information Technology S i
The UCLA ESB Separate environments (Dev, Test, QA, Prod) to aid integrations
development through the software development lifecycle. All environments run on the IT Services VM Infrastructure
The ESB is Not an application hosting platform. Core business logic and data processing reside outside the
ESB in application data centers and server environments
A WS application can be deployed into the bus as a Service Provider (servicing clients), or as a Service Consumer (invoking services) or both.
Information Technology S i
The UCLA ESB Services Production:
ORA Post Award Management System - FS Key Entry WS Bruin Bill Consolidated Billing FS applications IWE Menu’s
QA: UCPath FAU Validation, IDM (Real Time) PeopleSoft/Oracle (batch file interface) All application communication with UC Oracle ODS will be through the UCLA ESB
Pipeline: IAMUCLA Student Affairs/IWE projects Financial System Replacement OPUS Faculty Information System
Information Technology S i
Two Kinds of Web Services
Simple Object Access Protocol (SOAP) Defines a standard communication protocol for XML-based message exchange WSDL is an XML-based language for describing Web services to clients and how
to access them Allows for rigid specifications of data exchange format and data types Can use different transport protocols including HTTP
Representational State Transfer (REST) Lightweight, shorter learning curve Consumer can get the contents of an object using an HTTP GET,
Use a POST, PUT, or DELETE to modify or add an object
REST can return text in any format - XML, plain text, JSON, HTML Data consumers need to know what to send and what to expect back
Information Technology S i
SOAP Overview
Information Technology S i
SOAP ExampleTo get WSDL: http://webservices.it.ucla.edu/iamucla/students/123456789?wsdl
Verbose XML that provides details on how to interact with the service
SOAP Request:<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"><soap:Body xmlns:m="http://webservices.it.ucla.edu/iamucla"><m:GetStudent>
<m:studentUID>123456789</m:studentUID></m:GetStudent>
</soap:Body></soap:Envelope>
SOAP Response:<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"><soap:Body xmlns:m="http://webservices.it.ucla.edu/iamucla"><m:GetStudentResponse>
<m:studentUID>123456789</m:studentUID><m:studentName>Joe Bruin</m:studentName>
</m:GetStudentResponse></soap:Body></soap:Envelope>
Information Technology S i
REST Example
Assume a method mapped to HTTP Get: http://webservices.it.ucla.edu/iamucla/students/123456789 Result is returned as text:
<student><uid>123456789</uid><name>Joe Bruin</name>
…</student>
Information Technology S i
UCLA Campus Web API
Many Web 2.0 web applications have moved away from SOAP-based web services towards RESTful web resources.
RESTful web APIs are accessible via standard HTTP methods by a variety of HTTP clients including browsers and mobile devices… or other services.
Already out there: Google, Yahoo, Twitter, Amazon etc.
ESB can serve as a proxy to provide Restful interfaces to SOAP based web services
Imagine all campus data services, like SRDB, available in this format
Information Technology S i
Web API and Microservices
Information Technology S i
Questions?
For More Information:https://spaces.ais.ucla.edu/display/esb/UCLA+Enterprise+Service+Bus
We Are Hiring!The ESB team is looking for Java Programmers
-Senior Integration Developer, ESB (PAIV)-Integration Engineer, ESB (PAIII)-Application Developer, ESB (PAIII)
Curtis [email protected]