Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

22
Agile SOA Agile SOA Agile EAI Agile EAI How do we achieve How do we achieve agility agility in Enterprise in Enterprise Integration? Integration?

Transcript of Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

Page 1: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

Agile SOAAgile SOAAgile EAIAgile EAI

How do we achieve agilityHow do we achieve agilityin Enterprise Integration?in Enterprise Integration?

Page 2: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

What is Enterprise Integration? Enterprise Integration is the main activity

of an in-house software development organization.Building software products is not our main activity.

Why?DTE is in a mature industry and a relatively stable environment. As a result we can buy almost all of the software we need cheaper than we can build it.

But we still need to create interfacesfor almost everything we buy.

Enterprise Integration means building application-to-application (A2A)and business-to-business (B2B) interfaces.

Page 3: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

ContentsContentsContext

Analysis

Planning

Managing

Testing

Deploying

What is Enterprise Integration?

The message is the feature-set.

Release planning is a multi-player game.

Concurrent engineering requires a different approach to project management.

Re-usable components and services require automated test suites.

Deployment requires configuration control.

Page 4: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

The message is the feature.The message is the feature.

The message is the feature in EAI and SOA.

Analysis: Enterprise Patterns.

How to identify the messages quickly and simply. Messages are speech acts. Identify messages in complete sentences. Nouns identify business objects (data entities).

Page 5: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

The message is the feature … because:

Enterprise Integration implements communications between business processes.

The simple way to plan the integration features is to think about the messages that are exchanged between business processes.

A major application is the IT proxy or interface for some business process.

A2A or B2B -- It is the same thing. What if your enterprise decides to out-source a business process?

Page 6: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

Analysis: What to look for …

In-coming Messages

Request Work Order Request

Question Work Order Status Entity State (data)

Subscribed Event External Event

of Interest to Me Data Subscribed

Out-going Messages

Response Work Order Complete

Answer Progress / Exception Business Object (data)

Published Event Event I Observe or Validate

of Interest to Others Data Published

Page 7: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

Messages are speech acts.

Express each message as a complete sentence.

Request: Please install a new service S at location L.

Response: Service Service S installed at location Llocation L.

Question: What is the status of work order W?

Notice: Inventory asset A moved from location L1 to location L2.

Page 8: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

Noun ==> Business Object

Write each message as a complete sentence.Use nouns in a consistent way.Avoid application-specific jargon.

Request: Please install a new service Sservice S at location Llocation L.

Response: Service SService S installed at location Llocation L.

Question: What is the status of work order Wwork order W?

Notice: Inventory asset Aasset A moved from location L1location L1 to location L2location L2.

Page 9: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

Message Patterns ==> Design Patterns

Request-Response (work order … publish-subscribe) Client: Please replace meter M at location L

with a meter of type T. Service: Meter M1 with reading R1 replaced

with meter M2 reading R2.

Question-Answer (query … remote procedure call) Client: Order status S = What is the status of work order W? Service: Work order W has status S.

Event Notice (event … publish-subscribe) Publisher: Work order W will be delayed due to problem P. Subscriber: (updates local work management)

Page 10: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

Example: Metering Service

In-coming Messages

Request: (We accept the request.)Please install a meter of type T

for service S at location L. Query: (We answer the question.)

Metric M = How much energy has been used at meter M?

Response: (When the work is done, the delegate responds with work order results.)Work order W completed normally with results R

Notice: (We subscribe to notice.)Meter M needs a new battery before date D.

Out-going Messages

Request: (We delegate work to …) Please install a meter of type T for service S at location L.

Query: (We ask the delegate.) Status S = What is status of work order W?

Publish: (We publish the event.) Meter M is monitoring service S at location L.

Page 11: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

Business Collaboration - a Use Case Scenario

From To MessageClient Metering

ServicePlease replace meter M at location L with a meter of type T.(This is work order WO-A received from the Client.)

MeteringService

FieldService

Please replace meter M at location L with a meter of type T.(This is work order WO-B delegating work to Field Service.)

FieldService

MeteringService

Meter M1 reading R1 replaced with meter M2 reading R2.(Work order WO-B completion report received from Field Service.)

MeteringService

Client Meter M1 reading R1 replaced with meter M2 reading R2.(This is work order WO-A completion report sent to Client.)

MeteringService

Subscribers Meter M1 reading R1 replaced with meter M2 reading R2.(This event notice is published for all interested subscribers.)

Subscriber (self) Each subscriber updates its world-model (stored in a database) to reflect the business event. There may be additional side-effects.

Page 12: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

Release planning Release planning is a multi-player game.is a multi-player game.

Planning and Budgeting Business Process -- owner / governor Application Portfolio -- owner / governor Component Library -- architect / planner

Design and Construction Software Architect -- designer / planner / coordinator Project Manager -- planner / coordinator Software Developer -- builder / tester / operator / maintainer

Page 13: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

How do you plan a release?

A release is a coherent set of features for a specific audience (UI feature set) for a specific process (EAI feature set)

Ask which features are necessary and sufficient. Is data replication necessary and sufficient? Is passive notification of exceptions sufficient? Is workflow needed?

Page 14: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

Interface Packaging ==> Wrapperswithin

wrappers

publish subscribe

Business Process A

Application1

Application2

Application3

Business Process B

Application4

Application5

Application6

Message D

elivery Service

QuestionQuestion

AnswerAnswer

Create services by building wrappers on business services, legacy applications, and the message delivery system.

Page 15: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

Business Service Wrapper

Business Process == Business Service

ApplicationA

ApplicationB

ApplicationC

BusinessProcessWorkflow

Request

Response

Published Event

Subscribed Event

Page 16: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

Legacy Application Wrappers

Business Process == Business Service

ApplicationA

ApplicationB

ApplicationC

Request

Response

Published Event

Subscribed Event

DatabaseQuestion-Answer

Page 17: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

Work Breakdown StructureSender Detect the event / need. Assemble the business objects

into the message. Send the message.

What about workflow? Workflow is essential

for handling business-process exceptions.

Each process manages its own workflow and no other workflow.

Receiver Receive the request. Translate the business objects

into local form. Call the equivalent method.

Workflow Responsibilities Delegate work as needed. Respond to process exceptions. Publish events. Feed back results. Collect statistics.

Page 18: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

Concurrent EngineeringConcurrent Engineering

Who should do which components? Each application’s maintenance team has the local knowledge to …

Write logic to detect events. Write logic to translate between local representation and standard representation. Write application wrappers (API).

Each business-process team has the knowledge to … Define and implement local workflows. Define and implement end-to-end tests. Design business-process monitoring (dashboard displays and reports).

A tooling team has the skill and focus to … Create commonly-used components and services. Create and maintain a repertoire of common business objects.

The project coordinators have the skills and tools to … Identify project-to-project dependencies. Coordinate release plans.

Messages and

business objectsprovide

clear and succinct points of contact

for design discussions

and release coordination

Page 19: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

SOA requires automated test suites.

Why do you need automated test suites?

If you have a service with 10-20 clients,and you are about to deploy a new release …

You can ask all of the clients to re-test.-OR-You can exhaustively test the service

to assure backward compatibility.

For a service of any complexity, automated tests are the only robust solution.

By definition, integration tests cross system boundaries. Business process tests tend to require set-up, tear-down, etc.

Some services have 100’s of clients

Page 20: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

Configuration Control Challenges

Where is each component used? To whom do we send release notices?

Where is this service used? When the service is down, who is affected?

Which version is used where? When a method is deprecated, who is at risk?

Page 21: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

SummarySummary Business processes communicate via messages. That means the message is the feature (the user story)

for agile EAI and agile SOA.

Secret Sauce: Identify each message with a complete sentence.

Secret Organization: Concurrent engineering reduces time to solution.

Page 22: Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?

To achieve To achieve EAI / SOA agility:EAI / SOA agility:

Focus on the Focus on the business-processbusiness-process

message exchanges.message exchanges.