© The Middleware Company
SOA Blueprints
Learning Best Practices and Sample Applications for SOA
Steve Wilkes
Senior Middleware Maven7
THE MIDDLEWARE COMPANY
09.22.2004
© The Middleware Company
AGENDA
Why are we doing this?
What are the goals?
SOA Concepts
The Reference Example
The Specification
Implementations
© The Middleware Company
Why are we doing this?
SOA is the new old thing- The concept has been around for years- The practical realization has only recently materialized
J2EE had the PetStore- Initially a Patterns application without specification- Very successful as a learning tool- In some ways too successful – people learned architectural anti-
patterns in addition to the technology that was shown
SOA needs a PetStore not The PetStore- Demonstrating SOA best practice requires many applications- Industry focus on (inter) communication not eCommerce
© The Middleware Company
What are the goals?
Part of a long term project, SOA Blueprints aims to:- Define a baseline standardized set of enterprise applications- Focus on SOA principles- Highlight SOA design patterns and best practices- Encourage SOA adoption- Be industry agnostic- Be applicable to as many organizations as possible
The specification will lead to:- An agreement on SOA terminology- A reference open source implementation- An implementation by vendors- Additional modules with particular industry focus
© The Middleware Company
SOA Concepts
SOA Much More Than Web Services
Common SOA Terms
Patterns
SOA Platform Requirements
Standards
Glossary
© The Middleware Company
SOA Much More than Web Services
Service definition does not include protocol or wire format
How many protocols in your organization?
WSDL could be the key
Service providers should concentrate on the service
Service consumers just want to use the service
It’s the SOA that allows providers and consumers to communicate
© The Middleware Company
Common SOA Terms
Common SOA Terms(the specification includes those highlighted in blue)
© The Middleware Company
SOA Terms (cont)
Synchronous and Asynchronous Services
Component Services
Data Services
Composite (Business) Services
Conversational (Workflow) Services
Publish-Subscribe Services
Service Brokers
Exception Handling And Compensating Services
Service Security
Interception And Extensibility
Interoperability
© The Middleware Company
SOA Patterns
Initial patterns will include:Service Registry and Static Binding
Service Registry and Dynamic Binding
Service Broker
Distributed Service Broker
Service Bus
Distributed Service Bus
© The Middleware Company
SOA Anti-Patterns
Overly granular business services
Remote access to local services
Overuse of XML
Use of loose coupling where tight coupling is required
© The Middleware Company
SOA Granularity
© The Middleware Company
SOA Development Requirements
Target implementation environments should provide:Definition of services independent of implementation, location or use
Implementation and hosting of services as a provider
Location and usage of services as a consumer
Assembly of services from other services and business rules
Support for synchronous, asynchronous and conversational services
Orchestration of application presentation built on services and rules
Automated data transformation between disparate data structures
Provisioning of local and remote services
Support for simulating, testing and debugging of services
© The Middleware Company
Standards
Standards being considered for inclusion include:WS-I
BPEL4WS
WS-Security
WS-Notification
Jini
WSRP
WS-Manageability
© The Middleware Company
Reference Example
Common Enterprise Applications(the specification includes those highlighted in blue)
© The Middleware Company
The Specified Applications
Based around fictitious enterprise - GeneriCo
A distributed enterprise wide security mechanism
An employee self service portal providing:- Authentication- Organization Browser- Task List Management- Expense Reporting- Employee Reviews
A Product data service
Some payroll & supply chain functions as required by the specification
A basic HR application for management of employees and departmental structure
© The Middleware Company
The Security Mechanism
Provide security for:- New Applications- Legacy
Applications
Provide indentity management
Automate employee security
© The Middleware Company
The Employee Portal
© The Middleware Company
Employee Portal
Utilizes Security Adaptor Services
Provide Login / Logout Capabilities
Enable Password Change
Provide roles based access- to pages- to portlets- to actions
Authentication
© The Middleware Company
Employee Portal
Search for Employees
Browse Departments
Get Department Details
Get Employee Details
Organization Browser
© The Middleware Company
Employee Portal
View Task List
See Task Details
Add Tasks
Update Tasks
Link to Expenses
Link to Reviews
Task List Management
© The Middleware Company
Employee Portal
View Report List
See Report Details
Add Report
Update Report
Authorize Report
Pay Report
Utilization ofPay Roll Services
Expense Reporting
© The Middleware Company
Employee Portal
View Review List
See Review Details
Add Review
Update Review
Validate Review
Add Ratings
Finalize Review
Utilization ofPay Roll Services
Employee Reviews
© The Middleware Company
Product Data Services
Two Product Databases
Different Schemas
Want single dataservice to accessproduct information
Enable categorylisting
Enable productlisting
Needs to generate unique keys
Add missing information
Query across sources
© The Middleware Company
Message Definition
Messages are defined within the specification in a platform agnostic fashion:
Type: synchronous Client sends: getReports
Contents: GetReports Complex 1 employeeID Integer 0-1 or managerID Integer 0-1 or accountantID Integer 0-1
Security: auth token Protocol: http Client receives: listOfReports
Contents: Reports Complex 1 Report Complex 0-* ID Integer 1 Title String 1 SubmittedDate Date 1 Status String 1
or: authFault
one of
these
© The Middleware Company
Process Definition
Processes are also defined in an agnostic way:
© The Middleware Company
Implementation Guidelines
Specification is platform agnostic
Database schema will be supplied
WSDL will be provided for all services
Service testing will be provided by PushToTest
Transport protocols must be adhered to
Use of Portal server is recommended
Web design should follow guidelines
Standards should be adhered to where stated
© The Middleware Company
Vendor Implementations
Currently have commitment from the following vendors to provide implementations of the reference example:
BEA Systems
Diamelle Technologies
IONA Technologies
Microsoft
Oracle
Pramati
Sun Microsystems
Rogue Wave Software
© The Middleware Company
Open Source Implementation
Looking to build open source team
Currently have a number of committed members
Technologies we’re hoping to use include:- Hibernate for persistence- Spring as a lightweight container- Axis for web service provisioning- eXo as an enterprise portal- Twister as a BPEL4WS engine- Maven for build and management
Will become reference implementation for SOA
© The Middleware Company
Possible Interesting Things
An additional 10 or so vendors want to enhance the spec
Service management (Qos) an interesting add-on
Jini message board talking about an implementation
Some vendors considering CORBA implementation
Would like to include Mobility component
WSRP seems natural extension to Portal specification
Including more standards is a must
Launching an SOA Blueprints Wiki very soon
Open Source Implementation home announced soon
© The Middleware Company
Next Steps
Q & A
Goto soablueprints.com
Download the specification
Send us feedback
Get involved in open source implementation
© The Middleware Company
TheServerSide.com
TheServerSide.NET
MiddlewareRESEARCH.com
Steve Wilkes
Senior Middleware Maven7