SOA (Service Oriented Architecture)

17
Service-oriented architecture 8 th July 2013

Transcript of SOA (Service Oriented Architecture)

Page 1: SOA (Service Oriented Architecture)

Service-oriented architecture

8th July 2013

Page 2: SOA (Service Oriented Architecture)

What is a Service?

• A service is a reusable component that can be used as a building block to form larger, more complex business-application functionality.

• A service may be as simple as “get me some person data,” or as complex as “process a disbursement.”

• How the service is implemented, and how a user of the service accesses it, are limited only by the SOA infrastructure choices of the enterprise.

• From a theory point of view, it really doesn’t matter how a service is implemented.

• Service-Oriented Architecture (SOA) is an architectural style. Applications built using an SOA style deliver functionality as services that can be used or reused when building applications or integrating within the enterprise or trading partners.

Page 3: SOA (Service Oriented Architecture)

Analogy• This model could loosely be

compared to a SOA. The people in the house uses a number of different "applications" like radiators, computers, toilets, lamps, under floor heating, bathtubs etc. These applications don't care how the city generates the water, creates the electricity or handles the waste as long as it works. The components of the city are generators, water pumps and sanitation areas. It provides the house with all these needs but it's up to the house to use it in what ever way it sees fit

Page 4: SOA (Service Oriented Architecture)

A real world example(cooks)• Let's assume you have 4 cooks. In SOA, you assume they hate

each other, so you strive to let them have to talk to each other as little as possible.

• How do you do that? Well, you will first define the roles and interface -- cook 1 will make salad, cook 2 will make soup, cook 3 will make the steak, etc.. Then you will place the dishes well organized on the table (so these are the interfaces) and say, "Everybody please place your creation into your assigned dishes. Don't care about anybody else.".

• This way, the four cooks have to talk to each other as little as possible, which is very good in software development -- not necessarily because they hate each other, but for other reasons like physical location, efficiency in making decisions etc.

Page 5: SOA (Service Oriented Architecture)

Revolutionary steps• programmers learnt that organizing code into modules made it easy to maintain

and reuse This led to the development of large libraries of code that are still used today

• The next major revolution in software design was object orientation. The implementation details of an object were hidden from the consumers of the object and could be changed as long as the object’s signature remained the same. This led to even greater ease of maintenance and extensibility. where objects could reside on different machines across a network and talk to each other using various remote access protocols .

• The industry gradually realized that there was a huge potential market for pieces of functionality that could be plugged into software applications and customized for that specific application’s needs. This led to the concept of software components.

• The latest buzzword in the software industry is ‘Service Orientation’. In this approach, software functionality is defined as a set of services. Service Oriented Architecture (SOA) Explained

Page 6: SOA (Service Oriented Architecture)

SOA is an evolutionary step for architecture

Page 7: SOA (Service Oriented Architecture)

Motivation

• Application Centric

• Goal - Service Centric

• Service Centric

Page 8: SOA (Service Oriented Architecture)

Before SOA – After SOA

source:IBM

Page 9: SOA (Service Oriented Architecture)

SOA is acronym for Service Oriented Architecture.

• SOA is designing and writing software applications in such a way that distinct software modules can be integrated seamlessly with high degree of re-usability.

• Most of the people restrict SOA as writing client/server software-web-services. But it is too small context of SOA. SOA is much larger than that and over the past few years web-services have been primary medium of communication which is probably the reason why people think of SOA as web-services in general restricting the boundaries and meaning of SOA.

• You can think of writing a database-access module which is so independent that it can work on its own without any dependencies. This module can expose classes which can be used by any host-software that needs database access. There's no start-up configuration in host-application. Whatever is needed or required is communicated through classes exposes by database-access module. We can call these classes as services and consider the module as service-enabled.

Page 10: SOA (Service Oriented Architecture)

What is Service Architecture?

• A collection of services

• classified into types

• arranged into layers

• Governed by architectural patterns and policies

services

identification

granularity

dependency

type typetype

source:TietoEnator AB, Kurts Bilder

Page 11: SOA (Service Oriented Architecture)

Benefits of Service Oriented Architecture (SOA):

• 1. Platform Independence – • 2. Focused Developer Roles – • 3. Location Transparency – • 4.Code Reuse _• 5. Greater Testability • 6. Parallel Development – • 7. Better scalability – • 8. Higher availability –.

Page 12: SOA (Service Oriented Architecture)

What is an Enterprise Service Bus

An enterprise service bus is an infrastructure used for building compound applications• is the glue that holds the compound application together• is an emerging style for integrating enterprise applications in an

implementation-independent fashion• can be thought of as an abstraction layer on top of an Enterprise

Messaging System• is an infrastructure used for building compound applications• is the glue that holds the compound application together• is an emerging style for integrating enterprise applications in an

implementation-independent fashion• can be thought of as an abstraction layer on top of an Enterprise

Messaging System

Page 13: SOA (Service Oriented Architecture)

Characteristics of ESB

• Key Characteristics of an ESB• Streamlines development• Supports multiple binding

strategies• Performs data transformation• Intelligent routing• Real time monitoring• Exception handling• Service security

Page 14: SOA (Service Oriented Architecture)

SOA Principles

• Standardized Service Contracts• Loose Coupling• Abstraction• Reusability• Autonomy• Statelessness• Discoverability• Composability

Page 15: SOA (Service Oriented Architecture)

SOA Depends on who you are!

Business owner: is a solution to increase your incomes and business .

Enterprise architect: is a way to draw nice and clean piece of software on a blank canvas.

Architect: is the solution to design loosely coupled services over an integration platform, to just plug services into outlets.

Developer: is a programming paradigm where a service is in the center of the design and the code.

Page 16: SOA (Service Oriented Architecture)

SOA Depends on who you are!

Business owner: is a solution to increase your incomes and business .

Enterprise architect: is a way to draw nice and clean piece of software on a blank canvas.

Architect: is the solution to design loosely coupled services over an integration platform, to just plug services into outlets.

Developer: is a programming paradigm where a service is in the center of the design and the code.

Page 17: SOA (Service Oriented Architecture)

SOA Depends on who you are!

Business owner: is a solution to increase your incomes and business .

Enterprise architect: is a way to draw nice and clean piece of software on a blank canvas.

Architect: is the solution to design loosely coupled services over an integration platform, to just plug services into outlets.

Developer: is a programming paradigm where a service is in the center of the design and the code.