TechnoGrity Leveraging SOA

Download as pdf or txt
Download as pdf or txt
You are on page 1of 28

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
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

2
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

3
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

4
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:
Service Request
Service Service
Consumer Request Response Provider

 WSDL (Web Services Description Language), SOAP (Simple Object


Access Protocol) are used to for sending messages (/requests)
 XML (eXtensible Markup Language) is the basis

5
Traditional vs. SOA Model
Assuming two way communications
 Traditional Systems between each of the systems –
Number of interfaces required formula:
N * (N – 1)
# of Systems Interfaces Required
3 6
4 12
5 20
6 30
7 42

6
Traditional vs. SOA Model
Assuming two way communications
 SOA Based Systems between each of the systems –
Number of interfaces required formula:
S
N*2
E
# of Systems Interfaces Required
R
3 6
V
I
4 8

C
5 10

E 6 12

S 7 14

7
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

8
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

9
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

10
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...

11
Oracle’s SOA Suite

BPA BAM Analytics Events Monitoring


Analyst Tools

BPEL Process Manager


Native Human Business Web Services
JDeveloper
BPEL Workflow Rules Manager

Enterprise Service Bus


App Dev XSLT
Framework Adapters Routing Security
Transform

Application Server UDDI


B2B
J2EE, WS-*, Event Services Registry

12
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

13
Customer Case Study
Segway, Inc.

14
Customer Details

Customer Segway, Inc.


Location Bedford, NH, USA
Line of Business Hi-tech manufacturing (innovative two-wheeled,
self-balancing human transportation devices)
Oracle Applications 11.5.9
Version
Modules Installed Financials, Manufacturing, CRM modules
Other external systems SalesForce.com – online CRM system

15
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

16
Current Interface’s Program Design
Extract Customer Data

SalesForce.com

FTP flat file to Oracle DB Server

Load data into Oracle Apps staging tables Update


(using SQL*Loader) SalesForce
With
Oracle’s
Status

Synchronize (create/update) customer


Info using TCA

Update Oracle InstallBase (API) Error


Log

Update Oracle Service Contracts (API)

Oracle ERP

17
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

18
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

19
SOA – Enabling systems ... contd.

ERP/
Legacy Apps Portal

Security
Custom Apps
& Services Reliability Web Application
Logging
Failover Process Flow Monitoring
Dynamic Routing Logic Optimization
WS

Web services API

BUSINESS SERVICES GATEWAY ORCHESTRATE INTERACT/ACCESS MONITOR & OPTIMIZE


XML/XML Schema WS-Security BPEL PORTAL JSR-168 BAM
WSDL/WSIF WS-Policy, SAML XSLT/XQuery Struts/JSF JMX
SOAP JCA JMS Web Services Mgmt

Source: Oracle Corp.

20
Identify Services
Extract Customer Data

SalesForce.com
A
FTP flat file to Oracle DB Server SalesForce.com
service to
Update
extract and send
Load data into Oracle Apps staging tables
(using SQL*Loader) SalesForce required
With customer data
Oracle’s
Status

Synchronize (create/update) customer


Info using TCA

Update Oracle InstallBase (API) Error


Log
An Oracle Apps
based service to
Update Oracle Service Contracts (API) perform
required actions
Oracle ERP
in Oracle

21
Define Services
Communication with SalesForce Service
“Assign” activity that
copies Userid and
Multi Step process Password to be passed

1. Get authorized by SalesForce:


Takes a pre-defined / dynamically “Invoke” activity that
calls SalesForce via SOAP
web service port for
passed User ID and password authentication

required to authenticate within


SalesForce. If authenticated, receive
the “Session ID from SalesForce. “Assign” activity that
copies the received
“Session ID” from
SalesForce (only if
authorized)

22
Define Services - 2
Communication with SalesForce Service

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 (SalesForce
“Invoke” activity that Partner Link)
provided by SalesForce. Use builds the query and
places a request to
“queryMore” operation for > SalesForce for new
Customer Registrations
2000 records.
“Assign” activity that
copies the received
customer data from the
“resultSet” into a
predefined variable

23
Define Services - 3
SalesForce Service
 List of Operations Allowed by SalesForce Service (from
SalesForce.com)

24
Calling Concurrent Program within the Service
Communication with Oracle Applications
“Assign” activity to set
the concurrent program
1. Get authentication from Oracle details

Applications
2. Execute the concurrent program “Assign” activity to set
Oracle Applications
within Oracle Applications, to process Context (Org-ID,
responsibility,
username,etc)
the customer registration data,
obtained from SalesForce
“”Invoke” activity to call
the concurrent program

25
Updating SalesForce’s customer records
Communication with SalesForce

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
“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.

26
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

27
Q & A

28

You might also like