Agile SOA Agile SOA Agile EAI Agile EAI How do we achieve How do we achieve agility agility in Enterprise in Enterprise Integration? Integration?
Jan 26, 2016
Agile SOAAgile SOAAgile EAIAgile EAI
How do we achieve agilityHow do we achieve agilityin Enterprise Integration?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.
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.
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).
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?
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
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.
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.
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)
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.
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.
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
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?
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.
Business Service Wrapper
Business Process == Business Service
ApplicationA
ApplicationB
ApplicationC
BusinessProcessWorkflow
Request
Response
Published Event
Subscribed Event
Legacy Application Wrappers
Business Process == Business Service
ApplicationA
ApplicationB
ApplicationC
Request
Response
Published Event
Subscribed Event
DatabaseQuestion-Answer
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.
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
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
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?
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.
To achieve To achieve EAI / SOA agility:EAI / SOA agility:
Focus on the Focus on the business-processbusiness-process
message exchanges.message exchanges.