java.sun.com/javaone/sf
| 2004 JavaOne
SM
Conference | Session TS-2941
1
Building Service-
Oriented Architectures
With Java
™ 2
Platform, Enterprise
Edition (J2EE
™)
Ted Farrell
Chief Architect, Application Development
Oracle Corporation
| 2004 JavaOne
SM
Conference | Session TS-2941
2
Agenda
Service-Oriented Architectures
SOA on the J2EE™ Platform
Best Practices
Demonstration
Q&A
| 2004 JavaOne
SM
Conference | Session TS-2941
3
Service-Oriented Architectures
•
Decouple architecture from implementation
─
Loosely- coupled interfaces
─
Multi- channel access across different tiers
•
Process-oriented vs. component-based
•
Orchestration
─
Process flow between services
─
Data mapping/transformation
•
Evolving business models
─
Technology changes and new business requirements
─
Continuous small changes vs. sporadic large ones
| 2004 JavaOne
SM
Conference | Session TS-2941
4
Benefits of SOA
•
Better reuse
─
Build new client functionality on top of
existing Business Services
•
Well-defined interfaces
─
Make changes without affecting clients
•
Easier maintainability
─
Changes/versions are not all-or-nothing
•
Better flexibility
| 2004 JavaOne
SM
Conference | Session TS-2941
5
SOA Across the Enterprise
receive
get order
get props
get desc.
SCOPE
FLOW
reply
receive
ship order
send msg
FLOW
reply
Business
Services
| 2004 JavaOne
SM
Conference | Session TS-2941
6
Service-Oriented Interface
•
The interface contract to the service is
implementation-independent
•
The service can be dynamically invoked
─
Runtime binding
•
The service is self-contained
─
Maintains its own state
•
Examples
─
Web Services
─
WSRP
─
Data Control (JSR 227)
| 2004 JavaOne
SM
Conference | Session TS-2941
7
Web Service
•
WSDL for definition
•
SOAP for protocol
•
UDDI for lookup
•
True implementation and OS independence
| 2004 JavaOne
SM
Conference | Session TS-2941
8
Business Process Execution
Language (BPEL)
•
WSDL for definition
─
High-level business definition
─
Low-level technical definition
•
XPath for expression language
•
XML Schema for data typing
•
Protocol independent
─
Definition
─
Binding
WSDL
| 2004 JavaOne
SM
Conference | Session TS-2941
9
Web Services Interchange
Format (WSIF)
•
Framework for WSDL Bindings
─
Open source
─
Extendable
•
Technology-specific adaptors
─
SOAP
─
Java™ Cryptography Architecture (JCA)
─
EJB™ specification
─
Java Message Service (JMS)
─
Etc.
| 2004 JavaOne
SM
Conference | Session TS-2941
10
Web Services Interchange
Format (WSIF)
WSIF
JCA
EJB
SOAP
Generic Definition
App Server
JCA
Native Objects
Generic Objects
WSDL
| 2004 JavaOne
SM
Conference | Session TS-2941
11
Web Services for Remote
Portals (WSRP)
•
WSDL for definition
•
SOAP for protocol
•
UDDI for lookup
•
Meta information for:
─
User context
─
Device information
─
Locale
─
Publishing information
| 2004 JavaOne
SM
Conference | Session TS-2941
12
Data Control (JSR 227)
•
SOI for data binding data into user interfaces
•
What about Web Services?
!
Consistent definition
X
Conversion to XML
X
Binding-specific attributes
•
Too specific for general service
X
Overhead for native
(EJB spec, Java class, etc.) types
•
Data Control
!
Consistent definition
!
No conversion of data
!
Native communication to services
| 2004 JavaOne
SM
Conference | Session TS-2941
13
Data Control Architecture
Client
Data Control
EJB
JCA
WS
App Server
WS
Client
Server
Generic Objects
Native Objects
| 2004 JavaOne
SM
Conference | Session TS-2941
14
The Implementation Is the Service
•
Performance
•
Scalability
•
Transactions
•
Caching
•
Clustering
•
Capabilities/choice
•
Integration into legacy systems
•
Optimizations
| 2004 JavaOne
SM
Conference | Session TS-2941
15
Same
Objects
Vendor’s
Server
Optimizing Your SOA
•
Interface-only
─
XML, WSDL, SOAP, HTTP, BPEL, WSRP
•
Same technology (Good)
─
JSR 207 Process Definition for Java Technology
─
JSR 208 Java Business Integration
─
JSR 235 Service Data Objects
─
JSR 227 Declarative Data Binding
─
JSR 168 (Portal)
•
Same server (Better)
─
Optimized XML
─
By-pass network calls
─
Shared connections
•
Same container (Best)
─
Native communication
─
Integrated cache, etc.
J2EE
Anyone
| 2004 JavaOne
SM
Conference | Session TS-2941
16
J2EE Platform for SOAs
•
More vendor support
─
More common technologies
─
More optimization
•
Increased chance of optimized
implementation
─
Standard definitions—optimized
implementation
─
WSIF Adaptor for the J2EE platform?
─
Optimized when both the
J2EE platform
─
SOAP when mixed
─
No change for developer
•
More platform support
─
Better legacy access
Same
Objects
Vendor’s
Server
J2EE
Anyone
| 2004 JavaOne
SM
Conference | Session TS-2941
17
Where Are Your Services?
•
Interfaces to existing functionality
─
Service-oriented interfaces
─
From existing APIs (EJB, Beans, etc.)
─
New APIs (refactoring and delegation)
─
Security
─
State Management
•
New interfaces to new functionality
| 2004 JavaOne
SM
Conference | Session TS-2941
18
What Are Your Interfaces?
•
Web Services
─
Wrap all functionality as Web Services
─
Map all data into XML
─
Translate and load all data into/out of XML
─
SOAP
•
What else?
| 2004 JavaOne
SM
Conference | Session TS-2941
19
Choosing a Service-Oriented Interface
•
Consistent interface
─
Targeted at function
─
Hide implementation
─
Expose capabilities
•
Generic data description
─
Reduce runtime overhead
•
Consider the clients
─
Now and future
•
Mutually agreed upon
─
Standards when they fit
─
Extend standards where they don’t
─
Submit standards when possible
| 2004 JavaOne
SM
Conference | Session TS-2941
20
Demo
Building an End-to-end
Application Using SOA
| 2004 JavaOne
SM
Conference | Session TS-2941
21
Summary
•
Services-oriented architectures
─
Running back-end business processes
─
Feeding front-end user interfaces
•
Pick the right interface for the job
─
Consider the clients
─
Utilize standards
─
Take advantage of optimizations
•
SOA on the J2EE platform
─
Choice
─
Diversity
─
Optimization
| 2004 JavaOne
SM
Conference | Session TS-2941
22
For More Information
•
BOF-1917: XML and J2EE™ Technology-
Based Information Integration–Real-World
Experiences and Case Studies
•
TS-3203: On the Road to SOA: Building
Real-World Enterprise Web Services
•
Oracle Booth #601
| 2004 JavaOne
SM
Conference | Session TS-2941
23
Q&A
java.sun.com/javaone/sf
| 2004 JavaOne
SM
Conference | Session TS-2941
24
Building Service-
Oriented Architectures
With Java
™ 2
Platform, Enterprise
Edition (J2EE
™)
Ted Farrell
Chief Architect, Application Development
Oracle Corporation