Doing SOA theright way

Download Report

Transcript Doing SOA theright way

Doing SOA the right way
Dheeraj Bhushan
ACCO Brands
Lincolnshire, IL
Agenda






Why Service Oriented Architecture
SOA Technology
SOA Features
SOA Design Principles
Oracle SOA Suite
Oracle SOA Components
• BPEL Features


Corporate SOA Initiative
Designing with SOA Principles and
Examples
Why
Service Oriented Architecture?






Globalization
Economic Pressures
Business Process Outsourcing
Regulatory Compliance
Technology
Standards
•
•
•
•
EDI
UCC, VICS
UNSPSC
…
SOA Technology
• Internet

Ubiquitous means of Data and Control Flow
• Web Services
Business Process Execution Language: BPEL
 Enterprise Service Bus: ESB
 Java Web Services or Servlet

• Stateless Services
Stateless Session Beans (Java Beans)
 CORBA Objects (IDL)
 COM objects (COM+,DCOM, .NET)

SOA Principles
Oracle SOA Suite Features
Standardized Service Contract
 Loose Coupling
 Abstraction
 Autonomy
 Discoverability

SOA Design Principles

Reusability
• Key design decisions deliver on this
Principle

Statelessness
• Design decision of Synchronous or
Asynchronous Service
SOA and Oracle SOA Suite
SOA represents
architectural
model
that lies atthat
theadheres
heart of to
thethe
service-oriented
SOA is aan
form
of technology
architecture
principles of
computing platformWhen
and isrealized
supported
by thethe
application
of thetechnology
service-orientation
service-orientation.
through
Web Services
platform,
design
paradigm.the
SOA
is based
Standards
such as these
XML, WSDL,
BPEL
etc.
SOA
establishes
potential
to in
support
and promote
principles
throughout
the business process and automation domains of an enterprise**
Orchestration
engine to tie
services into
business
processes
WS-*
Web services management
and security solution to
enforce authentication and
authorization policies on
services and to monitor
services and processes for
compliance to SLAs
BPEL4WS
BPEL 1.1
Oracle SOA Suite
Web Services
Manager
BPEL Process
Manager
Enterprise Service Bus
Business Activity
Monitoring
Business Rules
Engine
Business rules
engine to enable
business policies
to be captured
JSR-94
and automated
MOM &
Multi-protocol
Services
enterprise service bus
aggregation
to integrate
applications
Oracle SOA Stack

Business Process Execution Language
(BPEL): orchestration engine to tie services into
business processes



Enterprise Service Bus (ESB): Multi-protocol
enterprise application to integrate application
messages.
Rules Author: Business rules engine to enable
business policies to be captured and automated
Oracle Web Services Manager (OWSM):
Web services management and security solution
to enforce authentication and authorization
policies on services and to monitor services and
processes for compliance to SLAs
BPEL Features
Web Services/ WSDL as component
model
 XML as data-model (data loosecoupling)
 Synchronous and Asynchronous
message exchange patterns
 Hierarchical exception model
 Long running unit of
work/compensation

Corporate SOA Initiative



Institute Master Data Management (MDM)
Establish Center of Excellence (CoE)
Define Business vocabulary
•
•
•
•

Nouns
Verbs/ Business Components
Business Services
Business Processes
Build a Plan to answer the questions
• What technology, where
SOA Considerations
Design and Build using the SOA Principles
• Design with Loose coupling based on Web
Services
• Focus aggressively on reusability
Reusability:
Don’t create a component that will or can
not be reused. If a component can not be
reused in its current shape. Break it,
Merge it or Modify it so that it can be reused.
Designing Reusability

Design Web Services Framework
• New Web Services
Services at tier 1 provide framework utilities
 Services at tier 2 are Nouns of the Company
vocabulary
 Service at tier 3 are components or a
Business Process from the company context
 Services at tier 4 or higher are Business
Processes from the company offering.

• Convert to Web Services

Service name is a noun for tier 1 Service
BPEL

Strength
•
•
•
•
Modules
Domains
Flows
Web Services

Weakness
• Stay as high level
in Business Process
as possible
• Avoid Iterate
ESB

Strength
• Modules
• Groups
• Web Services

Weakness
• Document Size
limitation
Example: Three Way Integration

Questions we decided to answer
• We must create Reusable Objects
• Take a step towards Web Services as a
standard for loose coupling applications.
No Challenge No Reward
Some tough choices we made for
Reusability.

Create BPEL Processes instead of
exposing PL/SQL APIs as Web Services.
a. We accepted that we can not anticipate all
scenarios of future extension so the most
flexible vehicle for converting the PL/SQL
APIs to a Web Service was chosen; BPEL.
b. We also expected to make these endpoints
flexible and secure so some rudimentary
form of security was built into the process
from the beginning.
No Challenge No Reward Cont…

Created our own XML vocabulary for
Intermediate objects, keeping in mind
the organizational objective.
• Our Processes talk to each other on custom
XML messages. Most of these are API
parameter in XML Schema format, however
some are not API calls and these took a whole
lot more time to build.
• Some reuse of a processes was evident early
on; therefore there was extra effort put into
building the vocabulary to ensure it reuse is
easier, as the reuse is expected in near term.
Shipment Confirmation


Our target process for using Web Services model
was chosen to be the E-Business Suite Shipment
confirmation process.
Here are some of the factors influencing that
decision
• The existing process was created to support a legacy
application and not our current target application.
• The code was working in batch mode running for a long
time to play catch up during peak season.
• The Code had become cumbersome to maintain and a
lot of other changes embedded into this code prohibited
solution approaches that needed change to this code.
Our To Do List
MDM and CoE are management
sponsored initiatives so we started
on the next Step that the our project
could sponsor.
 Define Business Vocabulary
• Define namespace
• Define tier 1,2, 3 and 4 components
• Design components
• Refine Definitions
Define Business Vocabulary

Define your organizational namespace
• http://xmlns.acco.com/

Define a Component Architecture
• Nouns should be tier 2 services

URL/BusinessObjects/1.0/NounName
• Business components or verbs make the tier 3

URL/ComponentContext/verbNoun | componentname like
• URL/apps/ebsInterface/OrgShipMethod – Get Organization
Specific Ship Method (EBS Data element) given a set of carrier
and service attributes
• Business Processes or tier 4 services

URL/apps/ApplicationContext/ProcessName
• URL/apps/ebs/ShipmentConfirmation – Confirms third party
warehouse shipments in EBS.
Design Components




Define your as is process
Define your activities in the as is process
Normalize your activities
Use Testing Driven Development to build BPEL
• Convert your Use Cases to test cases for BPEL
• Build your Release 1 BPEL Model based on activities and
Use Cases
• Test your model against Use Cases
• Identify failed Use cases
• Fix Model to address failures
• Retest Model against Use Cases
Develop Service Contract

Design a Web Service Contract
• XML Schema
• WS Policy
• WSDL
XML Schema: Shipment Request
XML Schema: Shipment Response
WS Policy: Example
WSDL: Examples
Synchronous Process with Exceptions
Synchronous Process Exceptions
Asynchronous Process
ShipmentConfirmation Solution
E-Business Suite
WSH_DELIVERY_DETAILS_PUB
-storeShipment
XXAB_SHIPCONFIRM_TABLES
WSH_FREIGHT_COSTS_PUB
*
ONT_TABLES
WSH_DELIVERIES_PUB
Shipment Download
Interface and Other
Oracle EBS tables
WSH_TABLES
MTL_TRANSACTIONS_INTERFACE
Oracle Shipping
Execution APIs
BPEL Process Manager
-CRUD
Delivery
*
-CRUD
PlannedShipment
-inquiry
-send
*
*
-calls
*
-Invoke
-calls
-sendShipment *
*
-Calls
ShipmentConfirmation
-recieve
*
-saveShipment
*
-generate
*
*
* *
-SendInquiry
PKMSShipments
DeliveryDetail
*
-Calls -CRUD
*
-Invoke
FreightCosts
*
-CRUD
*
-Execute
-Execute
*
TripStop
*
OTM Remote Inquiry
Interface
*
OTM-Application Server
-UpdateShipment
*
RIQServlet
-ReturnShipment
WMServlet
MaterialTransaction
OrderHold
Oracle Inventory
Interface Table
Fusion Middleware
Oracle API Wrapper
Processes
E-Business Suite
Shipment Inquiry
BPEL Process Manager
Key Orchestrating
Process
-CRUD
Delivery
*
-CRUD
PlannedShipment
-inquiry
-send
*
*
ShipmentConfirmation
*
-recieve
*
-generate
*
DeliveryDetail
*
-Calls -CRUD
*
PKMSShipments
-calls
*
-Invoke
-calls
*
-Calls
*
-Invoke
FreightCosts
*
-CRUD
*
-Execute
-Execute
*
*
Service endpoint,
created from ESB Object
MaterialTransaction
OrderHold
TripStop
Oracle Interface
Wrapper Processes
BPEL Tips
Name the process as to what it is
performing
 Develop Iteratively
 Design with Use Cases
 Develop and Test Comprehensively
 Agile is a good development model
for BPEL. If you have not used it
before, it is time now.

References







Oracle SOA Suite Developer Guide (B28764-01)
Oracle BPEL Process Manager Developer Guide
(B28981-02)
Oracle Enterprise Service Bus Developer Guide
(B28211-01)
OASIS Reference Model for Service Oriented
Architecture 1.0 ++
OASIS Reference Architecture for Service
Oriented Architecture 1.0 ++
SOA Practitioner’s Guide Part 1: Why ServicesOriented Architecture?
SOA Practitioner’s Guide Part 2: SOA Reference
Architecture
Notices
++
Copyright © OASIS® 1993–2008. All Rights Reserved.
All capitalized terms in the following text have the meanings assigned to them in the OASIS
Intellectual Property Rights Policy (the "OASIS IPR Policy"). The full Policy may be found at the
OASIS website.
This document and translations of it may be copied and furnished to others, and derivative works
that comment on or otherwise explain it or assist in its implementation may be prepared, copied,
published, and distributed, in whole or in part, without restriction of any kind, provided that the
above copyright notice and this section are included on all such copies and derivative works.
However, this document itself may not be modified in any way, including by removing the copyright
notice or references to OASIS, except as needed for the purpose of developing any document or
deliverable produced by an OASIS Technical Committee (in which case the rules applicable to
copyrights, as set forth in the OASIS IPR Policy, must be followed) or as required to translate it into
languages other than English.
The limited permissions granted above are perpetual and will not be revoked by OASIS or its
successors or assigns.
This document and the information contained herein is provided on an "AS IS" basis and OASIS
DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY
WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP
RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
PURPOSE.
** Service-Oriented Architecture concepts, Technology, and Design Thomas
Erl