Professional Documents
Culture Documents
Guido Schmutz
Technology Manager, Oracle ACE
Director for FMW & SOA
Trivadis AG, Switzerland
Abstract
Contact: guido.schmutz@trivadis.com
Blog: http://guidoschmutz.wordpress.com
Twitter: gschmutz
Trivadis Facts & Figures
Top-Down
n
middle (agile)
Service Service Service
API Components
Files DB Applications
Contract-First Web Service Design
+
Business Type
Customer
for SOA
+ nam e
+ bill ingAddress 0..*
+ lastYearShi pmentsVal ue
+ lastQtrShipmentsValue
+ thisQtrShipmentsValue
+ contactName1
+ contactName2
1 1
1 1 {i d1}
{i d1}
1 1..*
origin for
+ discountGiven
{i d1}
contains
Automation U... Automation Unit Automation U...
Showing Deployments 0..1 currentl y holds *
+ shortName *
Schedule Pickup Pickup and Deliv Obtain Payment Business Type
+ er
address *
Business Type
Shipment
Inv oice Item
+ tagNbr: {i d1}
Required Behavior * + desti nationAddress pai d for by + number: {id1}
0..1
+ weight + description
Automation Unit 1 + charge
Business Type + di mensi on
Implementation Model:: Handling Procedure + speci al Needs
Customers defines procedures for
Core Business + desti nationInstructions
Finance
Required Behavior + parcelType: string
* * + charge
Required Behavior + definition: stri ng
+ contentDescri ption
+ procedure: string T echnical Interface
Required Behavior + constraints: sting
Inv oices
Technical Interface
Required Behavior
manifest Subcontractors Required Behavior
Automation Unit
Required Behavior Inv oices
Business Type Busi ness Type
Endpoint Deployed AU Automation Unit HazardousShipment FoodShipment
:Customers :Customers Technical Interface
Shipping Obj ects
Shipments
Endpoint Implementation
Required Behavior
T echnical Interface Required Behavior
Deploy Deploy
Warehouses
instanceOf
Techni cal Interface
Node
Technology Model::alpha :Sun Serv er
Node
Technology Model::beta :Sun Serv er
instanceOf
Service Instance
cust01 :Customers
Required Behavior
Required Behavior Technical Interface
Customers
Accounts
Business Type Model
Automation Unit
Deploy
Automation Unit
Customers
Accounts
Showing Domains
executionEnvironment... executionEnvironment... Required Behavior
:SOAP Engine :EJB Container Deploy Required Behavior
Service Instance
cust02 :Customers Required Behavior
(from Technology Model) (from Technology Model) Utility Required Behavior
Automation Unit
Prov iderX Required Behavior
Communication Path Technical Interface
Communication Path
AddressFormatter
Node
Technology
Model::r01 :
Underlying
T echnical Interface
Router
Transactions
Techni cal Interface
Automation Unit
Customer Inv oicing
Automation Unit
Relationships
Accounting System T echnical Interface
New Accounts
business-properties {
name: Kreditkarten-Validierung
purpose:
domain: CreditCard
technical-properties {
owner: xxxx
service-type: BAS, BES
execution-frequency: 100 per day
operation validate-card
throws InvalidCreditCardNumber, ServiceFault {
operation-group: read-only
updating: true
resultCache: true
atomicTx: true
idempotent: true
can-particpate-in-tx: true
pattern: one-way | request-response
input-message {
RequestNr : ct.Text[1:1]
CreditCard : cc.CreditCard
}
output-message ValidateCardResponse {
RequestNr : core.Text
CreditCard : cc.CreditCard
WS-I: check your contracts!
There are four basic message exchange patterns (MEPs) used in Web
services
Notification
Request/Response
Web
Application Solicit Response Application
Service
One-Way
One-Way - A message comes to the service and the service produces nothing in
response (Fire-and-Forget).
Request/Response - A message comes to the service, and the service produces a
message in response (main program & subroutine architecture style).
Solicit Response - The service sends a message and gets a response back
(Reverse Request / Response).
Notification - The service sends a message and receives nothing in response
(Broadcast, Publish-Subscribe)
Solicit Response and Notification are not supported by the WS-I Basic
Profile
Standardized Service Data Models
Canonical Data Model
Inside Application
Granularity
Tight Loose
Level of coupling
SOA Logical Architecture Service
Categorization
Source: Oracle
Agenda
Object types
Java Implementation for Use Case
JAXB Annotations
EJB Annotations
Transformation
Java with JAX-WS - Code First
Determines XSD
Determines WSDL
Native Database Web Service (11g)
SQL
Demo: Database Adapter on OSB
Service Enablement of Java using
Oracle Service Bus (OSB
OSB adds a layer of indirection (virtualization)
Mediation: Transformation, Filtering, Enrichment, Routing
Adapter: supports integration of existing applications
OSB OSB
Mediation Mediation
SOA Platform Transport Adapter
Application B Application C
Web Service Java
Facade
SOAP Webservice
OSB HTTP Transport to wrap JAX-
WS Code First service
Proxy Service Business Service HTTP Transport
XQuery Transformation
Transformation
OSB EJB Transport to call EJB
Problem
Want to use an EJB session bean directly without having to service
enable it first
Solution
Use OSB EJB Transport to access the existing EJB session bean
Provide it as a contract-first SOAP web service on OSB
RMI / IIOP
Transaction propagation
OSB EJB Transport to call EJB
SOA
Platform OSB
Mediation Mediation Mediation
Adapter
WSDL 1.1
Agenda
Guido Schmutz
Technology Manager, Oracle ACE
Director for FMW & SOA
Trivadis AG, Switzerland
Feedback-URL: http://ezsession.com/kscope