Overview of SOA Feature Pack for WAS 6.1
At WebSphere Technical Exchange 2006, Rajeev Gandhi--a member of WebSphere Customer Programs--spoke about the IBM WebSphere Application Server V6.1 Feature Pack for SOA, one of the WebSphere Software Early Programs, which is being developed using Apache Tuscany.
Also, for some of the overall themes of the talk, see Evolution of SCA, WAS, and WPS.
This information is current as of November 3, 2006.
Background
SCA and SDO
- Programming model for SOA
- First released by IBM Sept. 2005
- Open SOA (OSOA) organization standardizing
- Apache Tuscany open source project
SCA/SDO in WPS/WESB -> OSOA/Apache Tuscany -> WAS 6.1
- In WAS 6.1, SCA/SDO will be in two parts
- Apache Tuscany
- IBM propriatary enhancements
Industry participation
- OSOA has lots of vendors (osoa.org)
- Apache Tuscany has lots of contributors
Overview and Benefits
What is a ?
- Service
- Service orientation
- SOA
- Composite application
Current programming model (J2EE)
- Data
- Composition
- Invocation
- Lots of choices: EJB, JMS, JCA, BPEL
SOA programming model
- Data: SDO
- Composition: SCA, BPEL
- BPEL is not part of the feature pack
- Invocation: SOA via SCA
- Much simpler programming model
SOA Feature Pack
- SCA 1.0 impl
- SDO 2.1 impl
- Relational DAS impl
SCA Overview
- Component model
- Lots of ways to implement components
- Lots of ways to access components
- SCA Assembly Model defines the config on an SCA
SDO Overview
- Common data model abstraction
- Supports different data sources (via DASs)
- Unified CRUD functions
- Access to disconnected data
- Tracking of changes to data
Relational Data Access Service (DAS)
- DAS: Adapter to populate SDO data graphs from data sources
- RDAS: Data source is relational (JDBC?) databases
Benefits
- Improved flexibility
- Increased programmer produtivity
SCA Application Model and Assembly
SCA Model Concepts
- Design time assembly
- Deployment time assembly
Service Assembly Model
- Assembles tightly coupled code (Composites)
- Assembles loosely coupled services (Systems)
SCA Component
- Name
- Services (WPS interfaces/export)
- References (WPS imports)
- Properties
- Implementation
- OSOA/Tuscany is similar to WPS, but not exactly the same
Service Composite
- Similar to a WPS module
- Component that contains other components
- No tooling (like WID) in Tuscany
- Q: Does the feature pack support mediations? No.
- Q: Does this replace WSIF? Yes, tackles what WSIF was designed for.
Component Implementation
- Implements the functionality of the provider
- Component Type
- Configurable aspects of an implementation
- Services, references, and properties
- C/C++, Java, Cobol, PHP, EJB, BPEL, SQL/XQuery, etc.
Component and Component Types
- Type is the configurable aspects of an implementation
- Two approaches
- Introspect the implementation
- Look for component type file
- Introspection is preferable
Composite Service
- Service interface for a component/composite
- Interface
- Minimum: WSDL port type
- Optional: Java
- Bindings
- Minimum: SCA and Web services
- Optional: JMS, SLSB
Composite Reference
- Same interface and binding options
Wires
- Connect the source to target within a composite
- Source/target can be composite or component
Composite Properties
- Specified in the composite (not the component?)
- Properties and their types are defined by the implementation
- Exposed as part of the composite's interface
Bindings
- Bindings describe the access mechanism of the composite service and reference
- Binding specified through binding child elements within the composite service or reference
Interfaces
- Components, services, and references are defined by interfaces
- Defines operations and parameters
- Java and WSDL, for ex, can be wired together
- Runtime converts between the two
Composite Inclusion
- Team development of a composite
- Multiple physical files
- Inlines other composites into one
SCA System
- The composite runtime assembly
- Built from the set of composite files
- No single file representing the SCA system
Deployment in WebSphere
- WAS 6.1 SOA FP
- SCA components go in a WAR file
- WAR file or JAR file
- App server will change to enable deployment of non-EAR JAR files (at least SCA JARs)
- BLA: Business Level Application
- Q: SCA tooling from IBM? Will be added to ASTK; will work like WID.
SCA Application Example
Bigbank
- SCA app provides total value of the stock portfolio
- One composite, two components
- Account service
- Account data service
- Code--Composite file--is XML format, edited in Notepad (for now)
- <property>
- <component> (account service)
- <component> (account data service)
- <service>
- <reference>
SCA Model for Java
SCA Java Implementation Model
- Annotations
- @Service(AccountService.class) (class)
- @Property (instance variable – String)
- @Reference (instance variable – StockQuoteService)
- @Reference (instance variable – AccountDataService)
SCA Client Model for Java
Asynchronous calls
- @Callback annotation (instance variable – MyServiceCallback)
Quality of Service
QoS
- Security
- Transaction
- Relaible messaging
Two types of QoS
- Services and references (to/from non-SCA)
- Components and implementations (within a composite)
SDO Basics
All parameters and return types are SDOs
That was the end of the talk.