soa taking theory into real world application

31
© 2006 5by5 Software Ventures Ltd. All Rights Reserved. Reproduction without prior written permission is strictly prohibited. David S. Linthicum SOA: Taking Theory into Real- World Application

Upload: david-linthicum

Post on 04-Jul-2015

541 views

Category:

Business


0 download

TRANSCRIPT

Page 1: Soa Taking Theory Into Real World Application

© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

David S. Linthicum

SOA: Taking Theory into Real-World Application

Page 2: Soa Taking Theory Into Real World Application

2© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

Goals and Characteristics of a SOA

• Improved Adaptability and Agility– Respond to business needs in near real-time

• Functional Reusability– Eliminate the need for large scale rip and replace

• Independent Change Management– Focus on configuration rather than programming

• Interoperability instead of point-to-point integration– Loosely-coupled framework, services in network

• Orchestrate rather than integrate– Configuration rather than development to deliver business needs

Page 3: Soa Taking Theory Into Real World Application

3© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

Page 4: Soa Taking Theory Into Real World Application

4© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

Initial Costs Customization ChangesMaintenance

Custom Integration

Copyright (C) 2002 ZapThink, LLC

Rel

ativ

e C

osts

The Relative Costs of Different Integration Approaches

Page 5: Soa Taking Theory Into Real World Application

5© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

Initial Costs Customization ChangesMaintenance

Custom Integration

Copyright (C) 2002 ZapThink, LLC

Rel

ativ

e C

osts

The Relative Costs of Different Integration Approaches

Traditional EAI, B2Bi

Page 6: Soa Taking Theory Into Real World Application

6© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

Initial Costs Customization ChangesMaintenance

Custom Integration

Copyright (C) 2002 ZapThink, LLC

Rel

ativ

e C

osts

The Relative Costs of Different Integration Approaches

Traditional EAI, B2BiWeb Services "Adapters"

Page 7: Soa Taking Theory Into Real World Application

7© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

Initial Costs Customization ChangesMaintenance

Custom Integration

Copyright (C) 2002 ZapThink, LLC

Rel

ativ

e C

osts

The Relative Costs of Different Integration Approaches

Traditional EAI, B2BiWeb Services "Adapters"Service-Oriented Integration

Page 8: Soa Taking Theory Into Real World Application

8© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

Initial Costs Customization ChangesMaintenance

Custom Integration

Copyright (C) 2002 ZapThink, LLC

Rel

ativ

e C

osts

The Relative Costs of Different Integration Approaches

Traditional EAI, B2BiWeb Services "Adapters"Service-Oriented Integration

Page 9: Soa Taking Theory Into Real World Application

9© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

Development model for SOA

•Integration tightly couples end-points•Interoperability considers each end point separately

– Producer: Provides service– Consumer: Consumes the service

•Producer/Consumers describe their interfaces and are then connected at run time (late binding)

•Focus on agreement of business service interface– Do not focus on operating system, implementation, etc….

Producer ConsumerSOA

(SharedServices)

Consumer

Interface

Producer

Interface

Page 10: Soa Taking Theory Into Real World Application

10© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

SOA Levels

• Level 0 SOAs are SOAs that simply send SOAP messages from system to system. There is little notion of true services, but instead, they leverage Web services as an information integration mechanism. Hardly SOA, but certainly a first step.

Page 11: Soa Taking Theory Into Real World Application

11© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

• Level 1 SOAs are SOAs that also leverage everything in Level 0 but add the notion of a messaging/queuing system. Most ESBs are level 1 SOAs, leveraging a messaging environment that uses service interfaces, but really does not deal with true services (behavior), and instead moves information between entities as messages through queues.

Page 12: Soa Taking Theory Into Real World Application

12© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

• Level 2 SOAs are SOAs that leverage everything in Level 1, and add the element of transformation and routing. This means that the SOA can move information from source and target systems, leveraging service interfaces, as well as transform the data/schemas to account for the differences in application semantics. Moreover, by adding the element of intelligent routing, you're able to route the information based on elements such as source, content, and logical operators in the SOA.

Page 13: Soa Taking Theory Into Real World Application

13© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

• Level 3 SOAs are SOAs that leverage everything in Level 2, adding a common directory service. The directory provides a point of discovery of processes, services, schemas, and such, allowing all those who leverage the SOA to easily locate and leverage assets such as services. Without directories, the notion of service reuse--the real reason for building SOAs--won?t work. Directories are typically standards-based, including UDDI, LDAP, and sometimes more proprietary directories such as Active Directory.

Page 14: Soa Taking Theory Into Real World Application

14© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

• Level 4 SOAs are SOAs that leverage everything in Level 3, adding the notion of brokering and managing true services. Here is where the brokering of application behavior comes into play. In other words, at this level we are not only about managing information movement, but the discovery and leveraging of true services.

Page 15: Soa Taking Theory Into Real World Application

15© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

• Finally, Level 5 SOAs are SOAs that leverage everything in Level 4, adding the notion of orchestration. Orchestration is key, providing the architect with the ability to leverage exposed services and information flows, creating, in essence, a "meta-application" above the existing processes and services to solve business problems.

Page 16: Soa Taking Theory Into Real World Application

16© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

1. Understand your business objectives and define success.

• The technology you layer into that business should add value by supporting that business’ objectives and facilitating efficiencies. – The technology should help improve the

bottom line.– Thus, it’s very important to define these

objectives up front, including the goals for business success.

Page 17: Soa Taking Theory Into Real World Application

17© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

2. Define your problem domain.

• You can’t boil the ocean, thus you must define the scope of your SOA, within an enterprise.

• Most SOAs are best implemented in small steps, such as moving a single division, or portion of a division, to SOA, if needed, instead of an entire enterprise all at once.

• You need to establish the demarcation lines at the beginning of the project to provide better focus and understanding.

• Remember, a POC will have a POC domain.

Page 18: Soa Taking Theory Into Real World Application

18© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

3. Understand all application semantics in your domain.

• You can’t deal with information you don’t understand, including information bound to behavior (services).

• It is extremely important for you to identify all application semantics—metadata, if you will--that exist in your domain, thus allowing you to properly deal with that data.

Page 19: Soa Taking Theory Into Real World Application

19© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

4. Understand all services available in your domain.

• Service interfaces are quirky. They differ greatly from application to application, custom or proprietary.

• What’s more, many interfaces, despite what the application vendors or developers may claim, are not really service interfaces at all, and you need to know the difference.

• Services provide behavior as well as information, thus they are service-oriented.

• There are some services that just produce information; those are information-oriented and should not be included in this step.

• It is important to devote time to validating assumptions about services, including:– Where they exist.– The purpose of the service.– Information bound to the service.– Dependencies (e.g., if it’s a composite service).– Security issues.

Page 20: Soa Taking Theory Into Real World Application

20© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

5. Understand all information sources and sinks available in your domain.

• Next, it’s important to define those interfaces that just deal with simple information.

• They can either do two things: – Consume information (sink) or – Produce information (source)

• You need to understand a few things here, such as:– Where they exist.– The structure of the information flowing in and out.– Integrity constraints.– Dependencies (other sources and sinks, perhaps services in

some instances).– Security issues.

Page 21: Soa Taking Theory Into Real World Application

21© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

6. Understand all processes in your domain.

• You need to define and list all business processes that exist within your domain, either automated or not.

• This is important because, now that we know which services and information sources and sinks are available, we must define higher level mechanisms for interaction, including all high-level, mid-level, and low level processes.

• In many instance, these processes have yet to become automated or are only partially automated.

Page 22: Soa Taking Theory Into Real World Application

22© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

7. Identify and catalog all interfaces outside of the domain you must leverage (services and simple

information).

• You need to identify all of the outside interfaces that systems in your problem domains interact with, or, should interact with, to provide the maximum value. – These can range from EDI interactions to modern Web services

connections. – We need to define these interfaces with the same amount of

detail as defined previously.

• What’s important here is to make sure that all desired interfaces are also defined, including the ability to expose services outside of your problem domain to partners, as well as your ability to see and leverage their services.

Page 23: Soa Taking Theory Into Real World Application

23© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

Understand Outside Interfaces

New Accounts

Finance/ Operations

CommissionCalculation

Sales

DataCleaning

On DemandApplications

Best Practices asShared Processes

Sales Order Update

Page 24: Soa Taking Theory Into Real World Application

24© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

8. Define new services and information bound to those services.

• You must define all new services that are to make up your SOA, these will fall into one of three categories. – First are services exposed out of existing

systems, or, legacy services, such as ERP, CRM, legacy, etc..

– The second type of services are composite services, which are services unto themselves that are made up of many different services.

– Finally, scratch built services are services that are built from the ground up to be a true service.

Page 25: Soa Taking Theory Into Real World Application

25© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

9. Define new processes, as well as services and information bound to those processes.

• At this point we should understand most of what is needed to define new processes, as well as bind them to existing processes, and automate processes previously not automated.

• New processes should be defined that automate the interactions of services as well as information flows to automate a particular business event or sets of events.

• While you can define some very complex logic within new processes using today’s tools, the theme here is to orchestrate existing services and information flows rather than create new functionality.

• In essence, it’s a meta-application that sits on top of many smaller applications, defining interactions from lower to higher levels.

Page 26: Soa Taking Theory Into Real World Application

26© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

Create Business Processes

Drag-and-drop services from private and

public directories

Use simple, rules-based

orchestration

Easily configure services

Page 27: Soa Taking Theory Into Real World Application

27© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

System

System

Page 28: Soa Taking Theory Into Real World Application

28© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

10. Select your technology set.

• Many technologies are available, including application servers, distributed objects, and integration servers.

• The choice of technology will likely be a mix of products and vendors that, together, meet the needs of your SOA. – It is very rare for a single vendor to be able to solve all

problems--not that that reality has ever kept vendors from making the claim that they can.

– Technology selection is a difficult process which requires a great deal of time and effort.

– Creating the criteria for technology and products, understanding available solutions, and then matching the criteria to those products is hardly a piece of cake.

Page 29: Soa Taking Theory Into Real World Application

29© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

11. Deploy SOA technology.

• This is the “just do it” step, meaning that you’ve understood everything that needs to be understood, defined new services and processes, selected the proper technology set, and now it’s time to build the thing.

Page 30: Soa Taking Theory Into Real World Application

30© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

12. Test and evaluate.

• To insure proper testing, a test plan will have to be put in place.

• It is really just a step-by-step procedure detailing how the SOA will be tested when completed.

• A test plan is particularly important because of the challenges in testing an SOA solution. Most source and target systems are business-critical and therefore cannot be taken offline.

Page 31: Soa Taking Theory Into Real World Application

31© 2006 5by5 Software Ventures Ltd. All Rights Reserved.Reproduction without prior written permission is strictly prohibited.

Thanks!