colorado software summit: october 22 – 27, 2006 © copyright 2006 ... · colorado software...
TRANSCRIPT
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 1
The Evolution of Service-Oriented Development
Bill JonesOracle Corporation
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 2
Agenda
What’s important about SOA
Where we are
How did we get here
Where are we going
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 3
What’s Important about SOA
Enables IT agility
Reduces cost of integration
Enables new types of applications
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 4
Where Are We?
Standards
SOAP, WSDL, XML, Schema, UDDI, WS-I 1.xSwA
WS-Security, WS-ReliableMessaging
Tools
Provide service enablement
Solutions
Process orchestration, BPM
Integration, ESB
Service Management, WSM
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 5
Java Standards
DescriptionJava APIs
for XML
Java API for XML Registries
Java API for XML Remote Procedure CallJAX-RPC
SAAJ
Java API for XML Data Binding
SOAP API for Attachments in Java
JAXP
JAXB
JAXR
Java API for XML Parsing
Stateless Session EJB Endpoint ModelEJB 2.1
Web Services Deployment ModelJSR 109
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 6
Whence SOA?
Inside technologies
RPC
Distributed Transaction Coordinators
Distributed Objects
MOM
Integration platforms
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 7
Phase IPhase I
DownsizeDownsize•• Client/ServerClient/Server•• DCE DCE
Phase II Phase II
ComponentsComponents
•• CORBA CORBA•• DCOM DCOM•• EJB EJB
Phase III Phase III
MessagingMessaging•• MOM MOM
Whence SOA – Inside
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 8
Common Characteristics
Tight coupling
Shared implicit assumptions
Proprietary technology
Suited for communication where you havecontrol over both sides of interaction
Extension of local programming model
Generally more efficient, easier to developand debug.
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 9
Whence SOA?
Outside technologies (B2B)
EDI
• “the computer-to-computer exchange of structuredinformation, by agreed message standards, from onecomputer application to another by electronic meansand with a minimum of human intervention” –Wikipedia
ebXML
Verticals
• RosettaNet, OAGIS, etc.
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 10
EDIEDI
Vertical Vertical
XML StandardsXML Standards
B2B B2B
Whence SOA – Outside
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 11
Common Characteristics
Loose coupling
Explicit semantics and metadata
Standard internet technologies
Combined and/or leveraged in proprietary ways
Attempt to address concerns of inter-organization interactions
Security, federation, trust, authorization, liability,etc.
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 12
Agenda Checkpoint
What’s important about SOA
Where we are
How did we get here
Where are we going
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 13
Customer Needs
Increasingly Complex Infrastructure
Increasingly Demanding Users
End-to-End Processes
Shorter Change Cycles
Better Insight and Auditing
IT
Heterogeneous Systems
Silos
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 14
Service-Oriented Architecture(SOA)
Web Solution SOA Solution
More Interoperable
Agile Business Processes
Richer Clients
Improved Reuse
Packaged
Applications
Fulfillment
Center
Customer
Service
Business
Partners
1
2
3
1
2
3
4
4
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 15
Customer Challenges
Building a Business Case for SOA
Selecting the Right Projects
Building a SOA Roadmap
Applying SOA Principles to Projects
Realizing a Service-Oriented Solution
Evolving Enterprise Architecture
Affecting Organizational Changes
Continuing to Succeed with SOA
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 16
Experiment and
Learn
Get Maximum
Benefits
Key Underlying SOA Enablers
Technology
Standards
Strategy
Architecture
Information
Governance
Organization
Processes
Delivery
Operations
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 17
Where Are We Going
Core Standards evolve
SOAP 1.2, WSDL 2.0, XML 1.1, UDDI 3.0, WS-Iadditional profiles (e.g. BSP, RAMP)
WS-Security 1.1, WS-RX, MTOM
Additional Standards Mature
WS-Trust, WS-SecureConversation, SAML 2.0
WS-Management, WS-Eventing, WS-Transfer,WS-Enumeration
WS-Notification, WS-Transaction, more?
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 18
Java Standards
DescriptionJava APIs
for XML
Java API for XML Registries
Java API for XML Remote Procedure CallJAX-RPC
SAAJ
Java API for XML Data Binding
SOAP API for Attachments in Java
JAXP
JAXB
JAXR
Java API for XML Parsing
Stateless Session EJB Endpoint ModelEJB 2.1
Web Services Deployment ModelJSR 109
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 19
Methodologies
Emphasize the ‘A’ in architecture
Top down vs. bottom up
Interoperability as a design pattern
Governance is not just a product
Internal standards, best practices
Reference Architecture?
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 20
SOA: Top Down versus Bottom Up?
Business Analyst
Integration Developer
Notation Layer
BPMN or UML
Executable Layer
XML, XQuery, BPEL, Rules
Service DeveloperBusiness Services
Adapters, Java, Struts, JSF
Existing Systems
MAINFRAMEPACKAGED
APPLICATIONS
JAVADATABASE
Activity Activity Activity
assign invoke receive assign
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 21
Where Are We Going
Solutions
Composite Applications Frameworks
• Service Component Architecture, JBI
SOA Governance
• Metadata management, Policy Management,Development and interface standards, Automatingand verifying best practices
B2B?
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 22
Example – Publish Inventory toAccount Reps
Warehouse
Management
Inventory
Portal
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 23
Example – Cashflow Management
Logistics
Manufacturing
Execution
Work in
Progress
Manifests
RFID
Business Activity
Monitoring
Alerts
RFID
Events
Manufacturing
Schedule
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 24
SCA in a NutshellSCA models the “A” in SOA – for systems composed ofreusable services
model for service-based system:
• service construction
• service assembly
• deployment
Heterogeneity – supports components from
• multiple languages
• multiple container technologies
• multiple service access methods
0.9 Level specification published in November 2005
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 25
SCA – High Level PointsUnified declarative model describing serviceassemblies
dependency resolution and configurationdeclarative policies for infrastructure services
• Security, Transactions, Reliable messaging
Business-level model for implementing servicesservice components with service interfaces
Binding model for multiple access methodsWSDL, SOAP over HTTPbut also: JMSTM/messaging, JavaTM RMI/IIOP…JavaTM interfaces are good, as are WSDL portTypes
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 26
Service Assembly Model
Unified, language-independent way to exposeimplementations as services
• JavaTM, BPEL, PHP, other languages (including .NET)
Technology independent modelling andcomposition of service networks
• Service dependencies
• Resolution through wiring
Facilities for dynamic service configuration• Properties / Protocols / Qualities of service
• Profiles
Design time and deployment time configuration
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 27
Assembly Model Concepts
Design Time Assembly
Composite
Implementation
Component
Service
Reference
Wire
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 28
Composite
Composite
External Web Service
System
Service Assembly ModelModel for assembling tightly coupled code (Composites)
Model for assembling loosely coupled services (Systems)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 29
Composite
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 30
Composite
Assembly of services developed and deployedtogether
Containsservice implementations organized as componentsrequired services as referencespublic serviceswires connect components, services, and
references
Used as implementation of components at nexthigher layer
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 31
Implementations
Basic elements of business functionSupport for different implementation technologies
e.g. JavaTM, BPEL, C++, PHP, …implementation type extensibility
Provides business function via one or more servicesUses other services through service referencesService and references typed by interfaces
remotable, bi-directional, companion callbackinterface
ScopedRuntime managed state and routing
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 32
Component
Configured instance of implementation withina Composite
more than one component can use sameimplementation
Provides and consumes services
Sets properties
Sets service references by wiring them toservices
wiring to services provided by other componentsor by references of the composite
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 33
Reference
Represent services that are external to the compositeaccessed by components within the composite like any other
component service
Use bindings to describe the access mechanism to theexternal servicee.g. Web service, stateless session EJBTM, JMSTM, JCATM, …
binding type extensibility
overridable (no, may, must)
Can define required characteristics through Policy
Reference
StockQuote
Service
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 34
Service
Used to publish services provided by composite, foruse by external clients of the composite
can be service provided by component or a reference
Use bindings to describe the access mechanism thatexternal clients have to use
Web service, stateless session EJBTM, JMSTM, …
binding type extensibility
always overridable
Can define provided characteristics through Policy
Service
MyValue
Service
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 35
SCA Interaction Model
Synchronous & Asynchronous servicerelationships
Support for Conversational services
Asynchronous support
“non-blocking” invocation
Callbacks
•Point to point
Extended for business event support
•Pub-sub
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 36
Example
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 37
SCA Composite Example<?xml version="1.0" encoding="ASCII"?><composite xmlns="http://www.osoa.org/xmlns/sca/0.9" name="bigbank.accountcomposite" >
<service name="AccountService"> <interface.bpel process="AccountService"/> <binding.ws port="http://www.bigbank.com/AccountService#
wsdl.endpoint(AccountService/AccountServiceSOAP)"/> <reference>AccountServiceComponent</reference></service>
<component name="AccountServiceComponent"> <implementation.java class="services.account.AccountServiceImpl"/> <property name=“currency”>EURO</property> <reference name="accountDataService" target="AccountDataServiceComponent"/> <reference name="stockQuoteService" target="StockQuoteService"/></component>
<component name="AccountDataServiceComponent"> <implementation.java class="services.accountdata.AccountDataServiceImpl"/></component>
<reference name="StockQuoteService"> <interface.java interface="services.stockquote.StockQuoteService"/> <binding.ws port="http://www.quickstockquote.com/StockQuoteService#
wsdl.endpoint(StockQuoteService/StockQuoteServiceSOAP)"/></reference>
</composite>
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 38
DemonstrationSCA
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 39
What Is JBI?
JBI
C#Amazon
SOAP
HTTPJCA COM
fx
BPEL XQuery Rules
In Memory
SAP
• Unified Metadata (WSDL)
• Unified Addressing (Logical Naming)
• Plug-and-play Binding Components
• Optimized Transport and Data Format
• Both Sync. and Async. Interactions
JMXInstall
Monitor
LifecycleService Engines
Binding
Components
Services
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 40
JBI AdvantagesCore design is made for service oriented service provision andconsumption
Encapsulation of technical binding and technology
Introduce meanings for standard installation and artifact deployment
Introduce a standard way for managing components
Support for mediated XML messaging (unlike JCA that is designed toprovide EIS connectivity)
Avoid Vendor Lock-in
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 41
Absolutely Shameless SelfPromotion
Co-author of JavaTransaction Processing:Design andImplementation
From amazon.comreviews:
“Required EnterpriseTransactions Reading”
“All J2EE developersshould read this book”
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 42
AQ&Q U E S T I O N SQ U E S T I O N S
A N S W E R SA N S W E R S
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 43
Agenda
Overview
RPC
SOA
Web Services
Integration and Orchestration
Composition
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 44
Integration
TechnologyBPEL Process Orchestration
Enterprise Service Bus
Registry
Web Services Management & Security
StandardsBPEL, WSIF, JMS, JCA
UDDI
WS-Security
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 45
Business Process Integration
SubmitSubmit
Order Order
CheckCheck
InventoryInventory
CheckCheck
CreditCredit
SendSend
Result to Result to
UserUser
Portal
SAP
Java Web App
Mainframe
FormulateFormulate
FulfillmentFulfillment
OfferOffer
FormulateFormulate
RejectionRejection
CanCan
Fulfill?Fulfill?
TransformTransform
Order/Order/
Customer Customer
DetermineDetermine
DiscountDiscount
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 46
Building Business Processes
Coordinate asynchronouscommunication betweenservices
Correlate messageexchanges betweenparties
Implement parallelprocessing of activities
Manipulate/transformdata between partnerinteractions
Support for long runningbusiness transactionsand activities
Provide consistentexception handling
How do I …
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 47
Requirements for Processes
Process languageBusiness Process Execution Language
Process runtime environmentHigh performance execution of long running processes
Process monitoring and lifecyclemanagement
Management environment
Process design time environmentDesign time tools to visualize process development
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 48
The BPEL AlternativeGetting to Process Standards
?
Build your own 1-off orchestration
Traditional EAI
The BPEL Alternative
• Rich metadata (XML Schema, WSDL)
• Sophisticated binding framework (WSDL)
• Internet scale connectivity
• Support for both sync and async interactions (BPEL)
• Sophisticated flow coordination (BPEL)
• Advanced exception management (BPEL)
• Extensible
• Composable
• Convergence of application development and
integration
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 49
BPEL Process Language Structure
<process>
<!– Definition and roles of process participants -->
<partnerLinks> ... </partnerLinks>
<!- Data/state used within the process -->
<variables> ... </variables>
<!- Properties that enable conversations -->
<correlationSets> ... </correlationSets>
<!- Exception handling -->
<faultHandlers> ... </faultHandlers>
<!- Error recovery – undoing actions -->
<compensationHandlers> ... </compensationHandlers>
<!- Concurrent events with process itself -->
<eventHandlers> ... </eventHandlers>
</process>
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 50
BPEL ActivitiesProcess Programming Language
Primitive Activities<invoke>
<receive>
<assign>
<reply>
<throw>
<terminate>
<wait>
Structured Activities<sequence>
<switch>
<pick>
<flow>
<link>
<while>
<scope>
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 51
Example – Synchronizing CustomerInformation
INTEGRATION FLOW
Siebel
CRM
Oracle
Financials
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 52
Packaged
Applications
Fulfillment
Center
Customer
Service
Consumers Services
Web
Phone
Systems
Business
Partners
Apply Policies
Security
Monitoring
Logging
Auditing
1
1
Example: Managing Services &Applying Policies
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 53
DemonstrationIntegration and Orchestration
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Oracle Corporation
Bill Jones — The Evolution of Service-Oriented Development Page 54
Agenda
Overview
RPC
SOA
Web Services
Integration and Orchestration
Composition