leveraging service oriented architecture (soa) to ... · a case study –oracle apps...

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

Upload: vantram

Post on 15-Jun-2018

218 views

Category:

Documents


0 download

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

14

Customer Case Study

Segway, Inc.

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

28

Q & A