leveraging service oriented architecture (soa) to ... · a case study –oracle apps...
TRANSCRIPT
Leveraging Service Oriented Architecture (SOA)
to integrate
Oracle Applications with SalesForce.com
Presented by:
Shashi Mamidibathula, CPIM, PMP [email protected]
Principal
Pramaan Systems www.pramaan.com
2
Agenda
� Introduction
� Explore Service Oriented Architecture (SOA)
� Understand the components of SOA
� Comparison of Traditional vs. SOA based systems integration
� A case study – Oracle Apps ↔ SalesForce.com integration
� Conclusion
3
Introduction
� Business Case
� To integrate an organization’s disparate systems
� Approach1: Traditional way of “tightly” integrating / linking each of the
required systems
� Approach2: SOA way of “loosely” integrating (coupling) systems using
communication points (services)
� A few real-life examples of SOA
� Banks: Credit Check of an individual
� Oracle: Choosing best shipping method in Oracle Shipping
� Oracle: Connecting Oracle Apps (Mfg / Fin) with Siebel (CRM)
� Restaurant vs. Food Court
4
SOA – Overview
� Service Oriented Architecture (SOA) - An architecture to integrate
computational systems using a collection of services that are well
connected and communicate with each other.
� SOA emphasizes on “Integration of Services” rather than “Integration
of Applications”
� Architecture based on Standards (OASIS, OAGi, W3C, etc.) and
backed by IBM, Oracle, Microsoft, etc.
� SOA philosophy has been around for at least 10 years
� Getting more popular with Internet and increasing growth of cross-
platform applications
5
Services
� Service: An existing functionality within a system that is exposed
(made securely public) and can communicate with its requestor
� The term “Web Services” is a sub-set of the term “services”
� A service can perform a pre-defined set of activities
� A service typically looks like this:
� WSDL (Web Services Description Language), SOAP (Simple Object
Access Protocol) are used to for sending messages (/requests)
� XML (eXtensible Markup Language) is the basis
Service
Consumer
Service
Provider
Service Request
Request Response
6
Assuming two way communications
between each of the systems –
Number of interfaces required formula:
N * (N – 1)
# of Systems Interfaces Required
Traditional vs. SOA Model
� Traditional Systems
427
306
205
124
63
7
Assuming two way communications
between each of the systems –
Number of interfaces required formula:
N * 2
# of Systems Interfaces Required
Traditional vs. SOA Model
� SOA Based Systems
147
126
105
84
63
S
E
R
V
I
C
E
S
8
Evolution of Software Systems
� The paper-based approach:
� Example: Receive customer’s order and enter via Fax / mail and feed it
into the system
� The file interface approach:
� Receive customer’s order via a file upload, EDI, etc.
� The SOA-based approach:
� Services enable communication between the sender and the receiver
9
Evolution of Oracle Applications
� Client-Server model: Character mode Applications (10.6 and prior) and 10.7SC
� Difficult to maintain
� Not so easy to expand
� Not very scalable
� Mostly closed systems
� Three tier Internet architecture (11.0 and beyond)
� Maintenance is better than in previous versions
� Not very easy to communicate with external systems (e.g.: Siebel )
� Oracle started providing “Business Objects” and public APIs such as TCA (Trading Community Architecture)
� Future – Oracle SOA based Fusion architecture (Rel. 12 onwards)
� Promising – More Business Objects (BODs), RIA / AJAX based thin web-clients and more open for communication
10
Advantages of SOA
� An open, portable and standards-based way of integrating heterogeneous
systems
� Provides a powerful framework for fast and accurate information transfer
� Loose Coupling enables design of flexible systems
� Provides a high degree of customization and scalability
� Optimizes business performance by utilizing existing resources
� Cost of deploying new applications and customizing existing applications is
minimal
� Data fragmentation avoided and manual processes minimized
� Upgrades are typically fast and easy to accomplish
� Avoids vendor lock-in
11
Advantages of SOA – contd...
� Avoids “Rat’s Nest” integration of applications
� Provides a huge Return on Investment (ROI)
� 70% of IT Budgets are spent on integrating different systems
� Initial cost of modifying the tightly-coupled application integrations
may be high, but significantly fades away over time
� Many more...
12
Oracle’s SOA Suite
Application Server
J2EE, WS-*, Event Services
Enterprise Service Bus
RoutingAdapters
UDDI
Registry
BPEL Process Manager
Native
BPEL
Human
Workflow
Business
Rules
Web Services
Manager
Security
BAM MonitoringEventsAnalytics
JDeveloper
App Dev
FrameworkXSLT
Transform
B2B
BPA
Analyst Tools
13
BPEL
� Business Process Execution Language (pronounced B-pel / biple)
� Based on native BPEL (standardized) and provides Oracle’s additional constructs
� XML based; used by developers and business analysts to “orchestrate” web-services
� Helps assemble the building blocks (services) of SOA
� BPEL : SOA :: SQL : RDBMS
� Oracle BPEL Process Manager has a rich set of constructs for building complicated Process Flows
� Partner Links inside BPEL Process flow expose the enabled services and activities
� Processes can be defined as Synchronous or Asynchronous
15
Customer Details
SalesForce.com – online CRM systemOther external systems
Financials, Manufacturing, CRM modulesModules Installed
11.5.9Oracle Applications
Version
Hi-tech manufacturing (innovative two-wheeled,
self-balancing human transportation devices)
Line of Business
Bedford, NH, USALocation
Segway, Inc.Customer
16
Business Requirements
� New / existing customers register their purchased products on
Segway’s web-site – facilitated by SalesForce.com online CRM
system
� On a periodic basis, new customer registrations are extracted from
SalesForce.com into a flat file and ftp’d over to Oracle DB server
� Customer registration data has to be processed in Oracle
� Create / synchronize Sales Force's customer data with customers in
Oracle Receivables, using TCA architecture’s APIs
� Perform updates to Oracle InstallBase and Oracle Service Contracts
using public APIs
� Provide error logging and data correction mechanism
17
Current Interface’s Program Design
Extract Customer Data
Load data into Oracle Apps staging tables
(using SQL*Loader)
Synchronize (create/update) customer
Info using TCA
Update Oracle InstallBase (API)
Update Oracle Service Contracts (API)
Oracle ERP
SalesForce.com
Error
Log
FTP flat file to Oracle DB Server
Update
SalesForce
With
Oracle’s
Status
18
Limitations of traditional interfaces
� Too many manual processes which could lead to data discrepancy
� No real time data synchronization
� Cost of maintenance is high
� Development efforts from Oracle Applications side
� Development efforts from SalesForce.com side
� Manual / programmatic efforts in updating statuses
� Difficult to add additional systems as these two systems are “tightly”
integrated
� Future releases for either of these systems may lead to more design
and development efforts
19
Steps for Making the Interfaces SOA-Enabled
� Identify the Processes
� Activities that can be converted as services
� Identify the type of communication required between the two systems
� Check if the two vendors “publish” the required services / activities
� Publish / Define the services
� All standards should be adhered to
� Security should not be compromised
� Orchestrate / compose the services to create an end-to-end business process, using BPEL Process Manager
20
SOA – Enabling systems ... contd.
ERP/
Legacy Apps
Custom Apps
& Services
Web services
WSDL/WSIF
XML/XML Schema
SOAP JCA JMS
BUSINESS SERVICES
Process Flow
Logic
XSLT/XQuery
BPEL
ORCHESTRATE
PORTAL JSR-168
INTERACT/ACCESS
Struts/JSF
Portal
Web Application
API
WS
WS-Security
GATEWAY
Security
Reliability
Logging
Failover
Dynamic Routing
WS-Policy, SAML
Web Services Mgmt
Monitoring
Optimization
BAM
MONITOR & OPTIMIZE
JMX
Source: Oracle Corp.
21
Identify Services
Extract Customer Data
Load data into Oracle Apps staging tables
(using SQL*Loader)
Synchronize (create/update) customer
Info using TCA
Update Oracle InstallBase (API)
Update Oracle Service Contracts (API)
Oracle ERP
SalesForce.com
Error
Log
FTP flat file to Oracle DB Server
Update
SalesForce
With
Oracle’s
Status
A
SalesForce.com
service to
extract and send
required
customer data
An Oracle Apps
based service to
perform
required actions
in Oracle
22
Define Services
Multi Step process
1. Get authorized by SalesForce: Takes a pre-defined / dynamically
passed User ID and password
required to authenticate within
SalesForce. If authenticated, receive
the “Session ID from SalesForce.
“Assign” activity that copies Userid and Password to be passed
“Invoke” activity that calls SalesForce via SOAP web service port for authentication
“Assign” activity that copies the received “Session ID” from SalesForce (only if authorized)
Communication with SalesForce Service
23
Define Services - 2
“Invoke” activity that builds the query and places a request to SalesForce for new Customer Registrations
“Assign” activity that copies the received customer data from the “resultSet” into a predefined variable
2. Query SalesForce for
customer Data: Build a query string using SalesForce’s
SForce Object Query
Language (SOQL) and get the
results, using “query” operation
provided by SalesForce. Use
“queryMore” operation for >
2000 records.
Communication with SalesForce Service
(SalesForce
Partner Link)
24
Define Services - 3
� List of Operations Allowed by SalesForce Service (from
SalesForce.com)
SalesForce Service
25
Calling Concurrent Program within the Service
1. Get authentication from Oracle
Applications
2. Execute the concurrent program
within Oracle Applications, to process
the customer registration data,
obtained from SalesForce
“Assign” activity to set the concurrent program details
“Assign” activity to set Oracle Applications Context (Org-ID, responsibility, username,etc)
“”Invoke” activity to call the concurrent program
Communication with Oracle Applications
26
Updating SalesForce’s customer records
1. Get authentication from SalesForce
2. Build an update string using
SalesForce’s SForce Object Query
Language (SOQL) to perform an
update
3. Using the “update” operation provided
by SalesForce, update SalesForce to
indicate the transfer of records
Communication with SalesForce
“Invoke” activity update records in SalesForce
NOTE: This process could be modified to receive the
customer number, etc. from Oracle Applications and
accordingly update SalesForce system.
27
Conclusion
� SOA is not a hype, it is here to stay
� It would be the choice / basis for developing next-generation
connected applications
� SOA is still evolving and hence has a lot more to offer in the future
� SOA should be an organizational philosophy – not just for Technical
team / Business analysts
� Time to get started with making your existing applications “service-
oriented”
� Start with a simple interface / integration to get a feel of it
� Be Secure and Encrypt wherever needed
� Get equipped with required knowledge and training