Overview
During this course, we give an overview of SOA and SOA Governance. You will gain insight into the added value of using service contracts as part of your development process.
Requirements
Experience in software design
Course Outline
Key concepts and themes
- What is SOA?
- What kind of architectural style to choose?
- The “pipe and filter” style
- Constraints on data types
- The development lifecycle
- Providing an appropriate level of abstraction
- Key themes addressed within RUP for SOA
Service identification and specification
- Constructing a model of a service
- WSDL-defined services
- Developing service specifications
- Defining service providers
- Determining the granularity of a service
- A behavioural specification
- Policy specification
- Defining candidate services
- Refactoring services
Managing a service portfolio
- Applications as dynamic entities
- A portfolio of available capabilities
- Process time-binding
- Run-time binding
- WSDL, XSD and WS-Policy
- The service portfolio management process
- Configuring an SLA for a web service
Partitioning service-oriented solutions
- Managing the models
- Categorizing the elements
- Different stakeholders reviewing the model
- Using packages
- Representing views into the model
- Composite structure from UML 2.0
- Using “parts” and “connectors”
- Partitioning the managed services
New and updated guidelines
- Managing message attachments
- Designing messages
- Assuring consistency of message schema
- Service data encapsulation
- Relationship data schema – service boundaries
- Service mediation
- State management
- The merits of stateful and stateless services
- Managing resource state
- Going from services to service components
- The traditional design/implementation model
Message-centric design
- Focus on the service domain
- Domain engineering
- Applying object-oriented analysis and design
- Producing highly reusable models
- The traditional business-to-business arena
- EDI standardization
- Hybrid message and service-centric approach
- Use case analysis
- Documenting requirements
- Using business process models
- Non-functional requirements
- The requirements database
Service-centric design
- Exposing functions expected of the business
- Exposing operations of service providers
- Making intuitive service interfaces
- Service-centric modelling
- Use-case driven approach
- Understanding the needs of the actors
- The project goals -from a business standpoint
- Involvement of the software architect
- Policy information, required by service consumers
- The business executive role
- Interaction with the back-end system
- Connecting service to implementation model
- Refining the service model
- Addressing performance concerns
Collaboration-centric design
- Collaborating services
- Process view of the services
- Traditional business modelling
- Fulfilling roles in the collaboration
- Partner Interchange processes (PIPs)
- OAGIS standards
- Process-centric mindset
- The “business vs. IT gap”
- “Black box” activities
- Defining key performance indicators (KPIs)
- Versioning and publishing a model
- Producing metrics for monitoring
- Choreography language
- Business process execution language (BPEL)
- Monitoring the services
What is SOA Governance?
- Compliance to standards or laws
- Change management
- Ensuring quality of services
- Managing the portfolio of services
- Managing the service lifecycle
- Uing policies to restrict behavior
- Monitoring performance of services
The SOA Governance issue
- Governance appearing as SOA initiatives
- A dynamic environment for services to interact
- Encouraging the reuse of services
- Controlling how services interact with each other
SOA Governance Stages
- First: realization that governance is needed
- Second: governance improving business execution
- Third: mixing technology & changes in behavior
- Fourth: technology selection & implementation
Service Management
- Design-time perspective
- Run-time perspective
- Repository of service for reuse
- Services contained in heterogeneous platforms
- Service-virtualization for run-time management of services
Critical governance components
- Service registry service and an asset repository
- Creating a “SOA Centre of Excellence”
- Focusing on establishing SOA organizational guidelines
- The organizational maturity
- Agreed governance policies
SOA Governance tools
- Real time monitoring of events
- Failures in a BSM framework
- Service-level instrumentation
- Hooking into operational management systems
- Virtualization as enabler to separate governance/service logic
- Service virtualization managed by operational staff
Developing core SOA governance
- Why SOA technology stack has grown complex
- Mixing between COTS & in-house
- Justifying external consultants to help out
- Figuring out which business we are really in
Roles and responsibilities involved in SOA Governance
- Establishing a SOA Centre of Excellence
- Enterprise-wide planning and assistance in execution
- The roles of the SOA architect/governance architect
- Solving potential conflicting interests
- Ensure that governance guidelines are followed
Barriers to SOA governance
- Not realizing the need for governance
- Lack of Governance technologies
- Lack of Service virtualizations
State of good governance
- Interaction with external parties
- Managing the business rules and BRE mgmt
- Regulations for good governance
- The agreements repository
- Proactively embedding governance in the business
- Governance by action rather than by statement
- SLA monitoring to establish premium prices
Critical success factors
- Start thinking about governance early
- View governance as a moving target
- Manage policies as entities with their own lifecycles
- Choose a technology platform
- The platform should address immediate governance needs
- Future support as SOA infrastructure scales
- Enforce service level agreements