Building SOA Training
"Building SOA" is designed to help organizations succeed in the transition to SOA. It provides an introduction to both the benefits and potential drawbacks of the SOA approach, but the main focus is on the technical issues involved in building scalable, reusable, and performant SOA components using web services.
This course is a mixture of presentation, demonstration, and assignments. The material is technology-agnostic, but open source Java tools are used for examples and for the (optional) in-class assignments. To give Java developers applied training in building SOA components this course can also be merged with the Hands-on Web Services course.
The course can be presented in abbreviated form as one day of lecture and demonstrations, but is much more effective when it includes in-class assignments to help attendees apply and absorb the material. The full course, including assignments, takes 3-4 days. The short form of the class can be presented to groups of any size, while optimum size for the full course is 6-12 architects and developers.
Course Objectives
- Learn the principles of SOA and how it can help your organization
- Learn the issues around partitioning services for business processes
- Understand service life-cycle issues, including extensibility and versioning
- Understand service layering, orchestration, and the role of ESBs
- Apply all this knowledge in the class context
Attainment of course objectives is measured by performance on in-class assignments and snap quizes for each module. Certificates of completion are available for attendees who demonstrate their grasp of the material and ability to apply it to practical problems.
Course Prerequisites
- Basic understanding of enterprise architecture concepts
- Basic knowledge of programming (any language) and XML
Core Course Outline
Part I - Getting started
- Background and principles of web services:
- Older approaches to linking applications
- Benefits of XML message exchange
- SOAP message exchange
- Introduction to SOA:
- Principles of SOA
- Web services as SOA components
- Contacts in SOA
Part II - Understanding XML schema definitions
- Introduction to XML schema definitions
- Namespaces in schema
- Schema components:
- simpleType definitions
- complexType definitions
- groups and attributeGroups
- Schema structure styles
- Combining schemas
- Schema extensibility and flexibility
- Deriving schemas for existing data
- Best practices in schema for data exchange
Assignments:
- Constructing simpleType definition
- Constructing complexType definition
- Structuring complex data representation
Part III - Defining WSDL service interfaces
- WSDL 1.1 definition components:
- message and types
- portType and binding
- service
- WSDL structuring options
- Deriving WSDL from existing services
- WSDL 2.0 differences
Assignments:
- Understanding supplied WSDL
- Simple WSDL definition for supplied messages
Part IV - Partitioning services
- Analyzing existing business processes:
- Component breakdown of processes
- Common components across processes
- Planning for new business processes
- Service granularity and composability:
- Issues with fine-grained services
- Structuring for composition
- Building data format libraries
Assignments:
- Business process analysis
- Developing data formats
Part V - Service life-cycles
- Service life-cycle in SOA
- Compatible and incompatible changes:
- Adding and removing operations
- Changing what operations do
- Adding and removing data
- Changing what data means
- Exposing multiple service versions
- Reducing life-cycle costs:
- Structuring services for extensibility
- Adapting to new service versions
Assignments:
- Compatible and incompatible changes
- Adapting to a new service version
Part VI - Composition strategies
- Service layers:
- Defining your layers
- Building on lower layers
- Coping with service evolution
- Service orchestration:
- Using orchestration engines
- Coping with service evolution
- Performance costs of orchestration
- Composition trade-offs
Assignments:
- Direct service composition in code
- Simple service orchestration
- Service orchestration with data incompatibilities
Part VII - Security architecture
- Issues in security architecture
- Different types of security solutions:
- Transport security
- Message security
- Conversation security
- Identity management
- Controlling security:
- Managing security policies
- Enforcing security policies
- Management and performance costs of security
Assignments:
- Security for the enterprise
Part VIII - SOA governance
- Issues in governance
- Budgeting and management issues:
- Delivering added value
- Establishing quality of service
- Meeting legal requirements
- Managing changes over life-cycle
- Control issues:
- Enforcing security requirements
- Monitoring quality of service
- Usage cost assessment
- Governance with an ESB
- Governance without an ESB
Assignments:
- Group exercise in governance
