This is a brief taster presentation in to the Service Oriented Architecture which I prepared for my company as part of job handover. I used it sow seeds of SOA and hopefully people took away a sense of how can we be more SOA like, even if switching completely to SOA would be a step too far. Feel free to use.
Service-Oriented Architecture SOA is defined by IBM's SOA foundation as follows: "Service-Oriented Architecture (SOA) is an architectural style for creating an enterprise IT architecture that exploits the principles of service-orientation to achieve a tighter relationship between the business and the information systems that support the business." SOA has the following characteristics: It enhances the relationship between enterprise architecture and the business. It allows the building of composite applications as a set of integrated services. It provides flexible business processes. SOA is not simply a technology or a product: it's a style of design, with many aspects (such as architectural, methodological and organisational) unrelated to the actual technology.
Business alignment : Services are not based on IT capabilities, but on what the business needs. Services business alignment is supported by service analysis and design techniques. Specifications : Services are self-contained and described in terms of interfaces, operations, semantics, dynamic behaviors, policies, and qualities of service. Reusability : Services reusability is supported by services granularity design decisions. Agreements : Services agreements are between entities, namely services providers and consumers. These agreements are based on services specification and not implementation. Hosting and discoverability : As they go through their life cycle, services are hosted and discoverable, as supported by services metadata, registries and repositories. Aggregation : Loosely-coupled services are aggregated
SOA is about behavior, not something you build or buy. You have to change behavior to make it effective. Managing the portfolio of services: planning development of new services and updating current services Some key activities that are often mentioned as being part of SOA governance are: Managing the portfolio of services: planning development of new services and updating current services Managing the service lifecycle: meant to ensure that updates of services do not disturb current service consumers Using policies to restrict behavior: rules can be created that all services need to apply to, to ensure consistency of services Monitoring performance of services: because of service composition, the consequences of service downtime or underperformance can be severe. By monitoring service performance and availability, action can be taken instantly when a problem occurs.
Eclipse Swordfish
Conhesive pieces of functionality that are atonomas Artifact store – meta information on the services, documentation, EBS – something all services connect to allowing commiication Goverence – to control, monitor and maintance the set of services