The following is an excerpt from Enterprise Integration: The Essential Guide to Integration Solutions, by Beth Gold-Bernstein. It is reprinted here with permission from Addison-Wesley Professional; Copyright 2004.
7.1 Executive Overview
The Service Integration Architecture defines business
applications as reusable, easily changed components of
business functionality, and how these components interrelate.
This is the concept of a service-oriented architecture
(SOA). While SOA has been considered a best
practice for over two decades (see sidebar), until recently,
very few companies were interested in them. Now SOA
is suddenly a hot topic in IT, and at the center of many
initiatives aimed at increasing business agility. At this
point, if your company is not at least investigating SOA,
it should be.
To continue reading for free, register below or login
To read more you must become a member of SearchManufacturingERP.com
');
// -->

In a SOA, discrete business functions or processes are
created as independent components with standard interfaces
which can be accessed by other applications, services,
or business processes, regardless of the platform or
programming language. These services can be flexibly
combined to support different or changing business
processes and functions. It supports the creation of composite
applications, which can be quickly assembled from
existing and new services.
In the past, companies had to bet the business on
CORBA, J2EE, or .NET to create a SOA. But most large
companies use all of the above. The risks and costs of
standardizing on one outweighed the potential benefits of
SOA. This accounted for the low adoption rate. But Web
services have significantly altered the value equation of SOAs. Web services are the first universally accepted standard because all the
major vendors can, in theory, support it. They work with .NET, J2EE, and
CORBA (as long as everyone sticks to the same version of the standard). Despite
some areas of the standard that are still immature,Web services and XML have
significantly removed the risk barriers for adopting SOA, making the benefits far
outweigh the risks.
Existing mission critical applications currently on the mainframe and other
platforms can be wrapped in Web services interfaces and then accessed from
other applications or Web browsers. This enables businesses to create business
services out of existing systems, and rapidly implement and integrate new functionality.
Using Web services, companies can begin creating an SOA by leveraging
existing investments and incrementally adding new functionality. SOA is the
architecture that will best enable long-term business agility because it supports
reuse, and rapid deployment of new solutions.
The History of Service Oriented Architectures
The concept of SOA began in the early 1980s and was embraced by the
networking and object-oriented programming communities. In 1983 the
Open Systems Interconnect (OSI) Reference Model was adopted by
the International Standards Organization (ISO) as a common reference
for the development of data communication standards. It defines the
functions of data communications in seven layers. Each layer defines a
communication service, and each service has a clearly defined interface
with the layer above and below it. This SOA has passed the test of time.
While the technology and capabilities in each layer have changed dramatically,
the architecture itself stands. As long as the interfaces between
services remain the same, the services themselves can be changed easily.
The Open Software Foundation (OSF), the group responsible for the
UNIX standard, developed the Distributed Computing Environment
(DCE) based on a service-oriented architecture. DCE provides infrastructure
services for distributed computing, including authentication and
security services (Kerberos), directory services, remote procedure calls,
and file and management services.
CORBA is a vendor-independent architecture and infrastructure defined
by the Object Management Group (OMG) that enables computer
applications to work together over networks using the standard protocol
IIOP. CORBA enables interoperability across platforms. CORBA applications
are component-based.
The most current component technologies are J2EE and .NET. J2EE
is a component-based platform that manages the distributed infrastructure
and supports Web services to enable interoperable business applications.
It is currently the most widely deployed component model.
.NET is Microsoft's implementation of a Web services architecture,
which enables the legions of Microsoft programmers to create Web
services in the programming languages they are most familiar with. This
preserves a very large investment in existing skill sets. J2EE programmers
are usually more expensive than Microsoft programmers.
7.2 Benefits of SOA
• Enable business agility. SOA is the best way to enable business agility. It
maximizes leverage of existing resources while minimizing the time and cost
of deploying new applications. Rather than developing applications from
scratch, companies can utilize exiting functionality and create new solutions
by assembling component applications from existing and new functionality.
This enables rapid deployment of new solutions.
• Provide higher return on investment. Companies that define reusable business
services and create or wrap business functionality as standard services
will maximize their IT investments, through reuse and leveraging existing
assets.
• Enable IT agility. Standard service definitions can provide a layer of abstraction
for business services. A service can run anywhere and be accessed from
anywhere. Therefore, a company can easily change location or technology of
the underlying code.
• Reduce training costs. Business services can be encapsulated and abstracted
in a way that makes them easy to utilize and assemble into component applications
with minimal programming. Companies can utilize more skilled
programmers for creating the underlying functionality and service definitions,
which can then be reused by less technical programmers and visual
application assembly tools.
• Reduce the cost of testing and bug fixing. Each service is like a black box
that performs a specific function and has a published interface that accepts
defined inputs and produces defined outputs. Each service can be tested
individually, then reused over and over again. Interface testing is fairly
straightforward, and can be automated using testing tools.
• Support multiple client types and platforms. The SOA offers a layer of
abstraction from the underlying platforms. This makes it possible for multiple
types of end-user devices, including browsers and mobile devices such
as pagers, cell phones, PDAs, and other specialized devices to utilize the same
business functionality and have information communicated to different
devices. This platform independence provides great savings for large companies
that have a myriad of technologies in use.
• Speed development time through parallel development. Different programmers
can independently work on different services because each service
is self-contained and does not depend upon the state of another service. As
long as the service interfaces are well-defined at the beginning of the project,
and programmers know what to expect from other services, they can easily
define and create services independently. It used to be said that past a certain
point adding more programmers to a project increases development time.
This is no longer true with SOAs.
• Increase scalability and availability. Because SOA offers location transparency,
there is the potential to increase scalability by adding multiple
instances of a service. Load-balancing technology would dynamically find
and route the request to the appropriate service instance. Likewise, if there
are multiple instances of a service on the network, and one becomes available,
software can transparently route the request to another instance,
thereby providing better availability. This is more the case for new services
built on application services, and not legacy functionality that has been
wrapped in Web service interfaces.
What makes SOA so compelling is that it can be done on both a large and
small scale with the same benefits. Texas A&M University was able to demonstrate
these principles in the development of their online class-registration system
described in Case Study 7.1 (Software AG n.d.). This application was a small
step in the application of SOA with a big impact.
Ultimately, SOAs will become the way most organizations build their IT
infrastructures, because it is the best and only proven way to provide long-term agility. However, it will take some time and investment to get there. To date, most
of the industry focus has been on solving the considerable technical connectivity
problems. However, the larger hurdles to truly enabling business agility through
SOA are in defining, building, and managing reusable business services.
Case Study 7.1
Improving Student Services at Texas A&M
Texas A&M University has been a real leader in the application of technology
to supporting the mission of the university. As one of the world's largest educational
institutions, improving services to the students—especially during
registration—remains a high priority.
A service-oriented architecture using Web services is well suited to provide
improved registration and ancillary services to students that expect
more electronic services and less time standing in lines. So a decision was
made to implement an online service. The IT department developed their
class-registration system using Web services and two staff and was able to
deliver a system in three months. Most of the service was provided by the
existing Cobol and Natural programs running on the mainframe. They were
tied together into Web services using EntireX Communicator. It was estimated
that using this approach and technology there was a saving of over 50% in
development time compared to prior similar efforts in the department.
During registration, thousands of students were served simultaneously
and efficiently. The impact to the university was a higher degree of satisfaction
by students and a significant reduction in phone calls for the university
staff.
7.3 Defining Services—Bottom-Up or Top-Down?
To date, the majority of the focus on SOA and Web services has been on the technical
details of defining interfaces. While the standard interface definition is
the critical enabler of the system, the bottom-up approach has its limitations.
If the focus is only on the interface specification, and not on how to define what
functionality to expose as a service, companies will not reap the full benefits
of an SOA. Increased business agility and decreased costs are dependent upon well-defined, well-managed, reusable services that are fast and easy to connect to.
Unfortunately, there is no mathematical theory or methodology that can tell
a developer whether the component or service is at the correct level of granularity
to maximize reuse. The most commonly used method of creating business
services is the trial-and-error approach. This usually means defining services in
the context of a particular business process, then revising for reuse in the next
solution.
A top-down business approach to defining services will enable companies to
better meet the current and future needs of the business. It starts with the business
requirements. Each service should provide the functionality to meet one
or more business requirements, and the set of functions should be closely related.
This is called functional cohesion. However, the services should be loosely
coupled. The processing within one service should not be dependent upon the
state of processing in another. A service abstracts the functionality from the
underlying technology.
In truth, to get the job done, both bottom-up and top-down methods are
necessary. The top-down approach yields a level of abstraction that is necessary
to create business agility. However, at some point the model needs to meet the
technology, and the services need to be implemented as components or collections
of components. Companies will continue to build components from the
bottom-up to encapsulate business services. The key is to make these components
functionally cohesive to avoid overlapping functionality and loosely
coupled to enable rapid change and to minimize the impact of change.
7.4 Event-Driven Service Design
In this chapter we offer a top-down event-driven method for defining discrete
business services that can be used on a project or enterprise basis. Defining business
requirements in terms of business events offers a number of advantages.
First, event-driven service-oriented architectures provide the most agile systems.
In the ebizQ webinar, "Creating the New Enterprise Agility: Service-Oriented
and Event-Driven" (http://www.ebizq.net/expoq/events/event39.html), Roy Schulte,
VP Gartner, stated, "agility generally involves event-driven business practices,
facilitated by service-oriented architectures." He used the analogy of trains and
trucks to describe the agility of SOA. "Changing a truck's direction is easier than
making a train go where the tracks don't. If you want the train to move over one
foot, you have to do an immense amount of work tearing up and re-laying tracks," Schulte said. "On the other hand, all you need to do to turn the more
agile truck is move the steering wheel." SOA is the architecture that provides the
wheels for the agile enterprise.
Second, business events are a good way to design services because they are
easy for business users to understand, identify, and verify in a design. They represent
the essential activities of the business. One of the best ways to ensure maximum
reuse of a service is to have an interface design review, so all stakeholders
can evaluate whether the service will meet their needs. This is the process used by
OASIS to develop standards. When companies adopt this practice, the services
are more likely to meet a wider range of needs. Business stakeholders are better
able to define and verify business events and required system responses, than
technical interfaces. The event responses define the requirements for the interface
design.
Finally, defining the business events the system will capture and respond to
clearly defines the boundaries of the system. This is essential for ensuring successful
and rapid implementations. The event responses are further decomposed
into sets of functionally cohesive system responses. These responses may be supplied
by exiting systems or new development. The service may be an integrated
interface to a set of responses supplied by different systems that need to be coordinated.
A service can itself provide different levels of abstraction. The service
can also be a single function provided by a component or application. Focusing
on business events and required responses provides a business-oriented approach
to defining the SOA. This method is described in the Service Integration
Specification.
7.5 Service Integration Architecture Specification
Some have called the process of creating reusable business services similar to
cooking waffles. You need to throw the first one out, and it gets better over time.
While it is certainly an iterative process, this specification will provide guidelines
for creating reusable services. A full copy of the specifications is in Appendix E.
7.5.1 Introduction
This SOA Specification provides architecture and design guidance for applying a
service-oriented architecture approach to integration. This document defines the
events, services, and components. It is the design and architecture specification
for the development of the services and components.
7.5.2 Scope
The scope of this specification is defined by the scope of the project. It documents
the architecture and design for an SOA approach to an integrated solution.
The scope of this specification should describe the scope of the application
or system that is being designed.
7.5.3 Key Participants
This section should define the stakeholders who can verify the business events,
services, and interfaces; the development team who will execute the implementation
of the design; and the team responsible for the architecture and design. Any
other participants or stakeholders should also be identified, including their roles.
7.5.4 Business Events
The Business Events section defines the business activities that the system must
support. A business event is something that
• Occurs in the business environment
• Occurs at a given point in time
• Must be responded to by the system
The Event Table describes the relevant activities that happen in the business
and the required system responses. There are two types of events: business
events and temporal events. Business events are activities that occur in the
business, and are detected by defining each business activity within the scope
of the system. Temporal events occur at a predetermined point in time. Temporal
events exist because the business policy demands that certain system activities
occur at certain times, or because the system produces its outputs on a
timed basis. Case Study 7.2 describes how managing business events more efficiently
at Delta Airlines can have significant impact on its business (Tillett and
Schwartz 2001).
The business requirements are defined in the Statement of Purpose (Chapter
2, page 30). From that list, create a list of business events within the scope of
the system, and define the responses to each event (see Figure 7-1, page 126). In
the Event Description column, include how the event is initiated, or detected.
When defining Responses, give descriptive names that unambiguously define
what the system response is, such as "Verify existing customer," "Enter New
Customer,""Check Credit."
Case Study 7.2
Delta Airlines—Managing Business Events
Through the Delta Nervous System
The Delta Nervous System (DNS) represents an investment of $1 billion "to
deliver timely data to customers, employees, and partners." However, it is
not the delivery of the information, but the use of that data in handling business
events that is the major benefit of the DNS. For example, an initial application
of the system is aimed at baggage handlers and ensuring that they
have an accurate picture of gate changes and flight delays so they can better
plan the movement of luggage on and off planes. The change in status of a
flight is a business event that has repercussions across the airline system.
Whenever an event occurs, the change in status can be acted upon by providing
the key participants of that event with information and services to
react to these changes.
The DNS is turning Delta into a real-time enterprise with the ability to better
serve its customers. However, it also has enormous revenue-generation
and cost-saving implications. For example, having real-time information
allows Delta to increase the number of flights per day by moving planes in
and out faster. Overtime of idle ground crews can be reduced through better
planning. Costs associated with the mishandling of bags can be eliminated.
While the focus is on making information available, the value will be in
identifying meaningful events and then taking appropriate action as a result
of the events. It is not necessary for a business to create a new source of
information. Rather, it is important to create an architecture that is able to
act upon business events and flow those through the system efficiently as a
service. Delta has put such a system in place with its DNS.
7.5.5 Services
The system responses defined in the Events Table are used to determine the
essential services the system must provide. Some of these services or functions
already exist in other systems, and other functionality will be new and must be
developed then integrated. The service descriptions define the scope of functionality
required to perform a specific business service.
Figure 7-1 Event Table
| Event Number | Business Event | Event Description | Response |
| E1 | Customer places Web order | This event is kicked off
by an external event
when a customer makes
an order request. It
ensures a valid order is
placed into the system. | R1.1 Verify existing
customer
R1.2 Enter new customer
R1.3 Check credit
R1.4 Check inventory
stock |
| E2 | Order is processed | This event is kicked off
when an order enters
the system. It ensures
that the order is ready
to ship. | R2.1 Enter accounts
payable
R2.2 Fulfill order |
| E3 | Order is shipped | This event is kicked off
when an order has been
processed. It ensures
that the order is shipped
and all parties are made
aware of the results. | R3.1 Tracking number
assigned
R3.2 E-mail notification
to customer |
| E4 | Order is returned | This event is kicked off
by an external event
when a customer returns
an order. It ensures that
the returned order is
processed correctly. | R4.1 Return authorization
issued
R4.2 Credit customer
account
R4.3 Credit inventory |
To maximize business agility and IT investment, business services should be
defined at the level of granularity that will optimize reuse. Tight cohesion—
grouping closely related functions together into business services—and loose
coupling between services are the design metrics that will yield more reusable
design.
Three parts of the specification fully define each service: the Service Category
Table, the Service Definition Table, and the Service Interface Table.
This level of description is sufficient for developing a new Web service or
wrapping existing functionality as a business service.
Service Category Table
The Service Category Table lists all required responses to business events, and
defines whether the function already exists in one or more systems, or if it is new
functionality. The table also defines likely services to provide the functionality.
The service at this point is a first best guess at a services definition and will
be refined further in the next step. When defining services, think of modules
within an existing application that may perform the service or likely component
modules for development (Figure 7-2, page 128).
Service Definition Table
The Service Definition Table fully describes each service at a level sufficient
for creating Web services or other integration interfaces. Each service should be
described in terms of its functions and systems used to create the service. In creating
this table, group all functions and responses together that will form a cohesive
module. For example, the service should manage a particular set of data,
such as customer information, or product information, or should perform a specific
service that might be used in other applications, such as credit checking or
pricing. There should be loose coupling between services. Each service should
interact with any other service through the defined interface. Changes in one
service should not impact functioning of other services.
The description defines how the service will be implemented, such as
Web service, application adapter, or application module interface (Figure 7-3,
page 129). This is the place in the specification that brings the top-down design
down to the technology-specification level.
Figure 7-2 Service Category Table
| Response | Description | Service Category | Existing/New
Systems |
| R1.1 Verify existing
customer | Verify the existence
of the customer in
the system | Customer
maintenance | Customer database |
| R1.2 Enter new
customer/change
customer data | Update customer
records with new
information | Customer
maintenance | Customer
management—SAP |
| R1.3 Check creditM | Check the credit
rating of customer
for proposed order
amount | Risk management | Financials |
| R1.4 Check
inventory stock | Check availability of
stock to fulfill order | Inventory
management | Warehouse system |
| R2.1 Enter order | Enter all order
information via web
interface; send to
appropriate
systems | Order management | Financial A/R;
order fulfillment |
| R2.2 Fulfill order | Pick, package and
ship all order
items, report on
backorders | Order fulfillment | Warehouse system |
| R3.1 Tracking
number assigned | Assign an on-line
tracking number to
shipment | Shipping
management | New—FedEx Web
service |
| R3.2 E-mail notification
to customer | Send E-mail to customer
when order
has been shipped | Shipping
management | New—Web
component |
| R4.1 Return
authorization
issued | Issue return
authorization
number | Customer
management | Customer
management |
| R4.2 Credit
customer account | Issue credit to
customer account
when order is
returned | Accounts
receivable | Financials |
| R4.3 Credit
inventory | Add returned
merchandise to
inventory | Inventory
management | Warehouse system |
Figure 7-3 Service Definition Table
| Service | Functions | Description | Existing/ New
Systems |
| Customer record
maintenance | Check existence/
add/delete/modify | Web service
abstracts, database
connections and
lookups, manages
customer records | New—Web service,
interfaces with customer
management |
| Credit check | Check credit | Interface to credit
check module of
ERP system | Financials |
| Inventory
management | Debit/credit
inventory stock | Interface to warehouse
management
system | Warehouse system |
| Accounts
receivable | Credit/debit
customer account | Interface to A/R module
of ERP system | Financials |
| Order management | Workflow management
of a manual
service | Interface to warehouse
management
system | Warehouse system |
| Shipping
management | Integrate with
FedEx system; send
notification to
customer | Integrate FedEx
tracking Web service
into customer
web interface; create
e-mail notification
component | New—FedEx Web
service |
| Customer
management | Process returns;
call center support | Web portal for call
center, providing
unified interface
to customer and
order info | New—Web
component |
Service Interface Table
While the Web services standard defines how to specify an interface, it does not
define the data and functionality that the interface needs to contain. The Service
Interface Specification provides the information necessary for creating Web services
or other application or component interfaces. Using the Service Definition
Table, list all inputs, outputs, and methods that the interface needs to support,
and determine how the interface will be implemented (Figure 7-4).
Figure 7-4 Service Interface Table
Service: Customer maintenance
Inputs: Customer ID; name, telephone number; address; shipping
information; e-mail; credit; discount
Outputs: Customer ID; name, telephone number; address; shipping
information; e-mail; credit; discount
Methods: MCRUD data operations
Implementation: Portal based interface with data access service that controls
connectivity to back-end data sources. Will either build Web
service or install vendor data connectivity solution
The goal of defining standard interfaces is to maximize business agility.
The standardized interface enables applications and services built on different
platforms with different languages and technology to interoperate. It enables
services to change internal functionality and rules or underlying technology
without impacting other applications or components, as long as the interface
remains the same. Therefore, getting the interface right is essential to maximizing
reuse and agility. It is highly recommended that companies follow best practices
of the standards committees when defining interfaces by having design reviews
that include all stakeholders. It is also recommended that you create a glossary of
terminology that is meaningful and consistent across all stakeholders. The purpose
of the Interface Specification is to enable such design reviews, and to fully
describe the interface so it can be implemented correctly and optimally.
7.5.6 Use Case Diagram and Specification
A use case diagram can be used to depict the relationships between users, events,
and services. It is the final piece of the puzzle for the specification. It integrates all
of the information from the previous sections.
Use cases define actors and how they interact with the system services.Actors
represent a role, and can be humans, other computers, pieces of hardware, or
even other software systems. They must supply stimuli to initiate the event that
in turn requires a system response (or service).Use cases describe the behavior of
the system when one of these actors sends one particular stimulus. It depicts the
business events and system responses in terms of the event stimulus that triggers
the use case, the inputs from and outputs to other actors, and the behaviors that
convert the inputs to the outputs.
The basic components of use case diagrams are the actor, the use case, and the
association (see Figure 7-5).An actor is depicted using a stick figure, and the role of
the user is written beneath the icon.Actors can be humans, other computers, pieces
of hardware, or even other software systems. A use case is depicted with an ellipse,
and the name of the use case is written inside.Associations are lines between actors
and use cases, and they indicate that an actor participates in the use case.
To support the analysis of nonfunctional requirements (e.g., reliability, maintainability,
and performance), use cases should be created to support scenarios in
which these nonfunctional requirements will be tested. Examples include: 1) creating
a use case that tests performance across a distributed component interface,
and 2) creating a use case that tests the adaptiveness of a component by extending
it (i.e., adding classes) and examining it to determine if the architectural
design principles still hold. These system-level use cases may be implemented in
a stand-alone fashion whereby a part or slice of the architecture is being tested
independently from the business domain functionality it will need to support.
To create the use case, first identify the primary actors in the system. Then
prioritize the services to be implemented.We recommend creating a use case for
each proposed service. As an example, see Figure 7-6 (page 132).
The Use Case Specification contains text that further describes the use case
(Figure 7-7). The text specification also usually describes everything that can go
wrong during the course of the specified behavior, and what remedial action the
system will take. This specification can be customized or expanded to handle
particular issues within an implementation or organization.
7.5.7 Conclusions and Commentary
This section should provide any final comments on the system, the design, or the
usage of the system. It should include any known issues, constraints, or extenuating
factors that contributed to decisions, or could affect the system in the future.
Figure 7-7 Use Case Specification
Use Case: Use Case 009—Place an Order
Primary actors: Customer
Abstract: This use case allows the customer to create a purchase order
using/updating existing customer information or by creating
information for a new customer. If the customer has initiated a
purchase order directly (without accessing an online catalog), he
or she can select the items from a product list for this use case.
Goal: To allow customers to create and submit an order
Focus classes: Customer, item configuration, purchase order, standard item
Preconditions: Customer has user ID and valid password on customer extranet
Trigger: User decides to place an order online
General scenario:
1. Customer clicks the "order" button—Initiating Event
2. Screen appears displaying or requesting customer information
(UC010—Display Customer Information, UC011—Customer
not Found)
3. Customer completes purchase order information including
payment type, "Bill to" and "Ship to" addresses
4. Customer selects item from item list (UC017—Order Standard
Item from Product List)
5. Customer selects item from online catalog (UC007—Order
Standard Item from Online Catalog)
6. Customer clicks on "clear" button
7. Customer clicks on "submit" button
8. Customer clicks on "end" button—Post Condition
(goal achieved)
Successful
operation
responses/output:
1. User provided visual confirmation of order and confirmation
number
2. Order entry system updated with order
Extensions/
alternative paths/
unsuccessful
operation
responses/outputs:
4a. This step may be omitted
7a. This step may be omitted
6a. This step may be omitted
Variations: None
Dependencies: UC007—Initiate Session
Requirements
reference: Requirements 4.1, 4.2, 4.3, 4.7
Screen reference: Screen 8
Backend reference: Web Services 2, 7, 9
Notes: None
Issues: Need to verify how "product list" will be displayed, stored, and
updated
Need to determine how to link submitting the PO when the
customer is using the online catalog
7.6 Best Practices in Service Integration Architecture
A successful service-oriented architecture enables companies to rapidly implement
new business solutions or change existing ones and can deliver a substantial
ROI. However, SOA is not necessarily easy to accomplish. The following best
practices will help you reap the full benefits of SOA.
• Provide high-level organizational structure and support. Success with
SOA requires ongoing enterprise commitment and investment. SOA cannot
be accomplished with a single project. There needs to be a group of experts,
such as the competency center, that focuses on the definition, growth,
and reuse of the SOA. There need to be organizational processes and policies
governing enterprise integration. As integration crosses organizational
boundaries, it can also cause territorial disputes. Companies need processes
and policies for managing these disputes (described in more detail in section
4.4, Organizational Structure and Architecture Governance).
• Implement standards-based architecture. Standards help ensure both interoperability
and portability. They prevent technology lock-in, and help preserve
value in IT investments. Web service standards are enabling the widespread
adoption of SOA, despite the fact that it has been a known best architectural
practice for three decades. XML enabling your systems is one way to provide a
standards-based transport, management, and storage format for all structured
data and unstructured content within the organization.
• Implement a standards-based approach. Follow the example of the standards
committees that have long experience with creating processes that are
successful in creating interoperable standards. Perform design reviews for
service interfaces, and include all stakeholders. Stakeholders can be identified
through the use cases.
• Think big, start small. When planning for an SOA implementation, consider
the enterprise-wide impact in order to maximize reuse and agility. But
start with a project that has a limited scope and a high probability of success.
Nothing succeeds like success. You will learn a lot from each implementation,
so wait until you have a couple of smaller implementations under your
belt before tackling the most difficult challenges.
• Invest in training. You will have a higher probability of success if your
employees know what they're doing. Few designers and programmers have
experience with SOAs built on standards such as Web services and XML. It'sall too new. All stakeholders, including business and IT managers, architects,
designers, programmers, and operational support personnel need to understand
the overall concepts of SOA and what their role in the process is.
Architects and designers need to understand the design parameters and best
practices for creating agile and reusable systems. Programmers need to understand
the new technology, and how to implement services and infrastructure
components. Operational support personnel need to understand the implications
of managing a distributed SOA.
• Use tools to save time and money. Don't try to handcraft everything. A wide
variety of tools are available that can reduce time and skill sets required to
implement the solution. Invest in tools when the advantages clearly outweigh
the cost.
The Vanguard Group is an interesting case study where each of these best
practices came into play (Case Study 7.3) (Dragoon 2003).
Case Study 7.3
The Vanguard Group's "Brilliantly Simple Solution"
It had been described as a "brilliantly simple solution" when the Vanguard
Group made a decision in the late 1990s to align their customers Web portal
with their customer service system. In retrospect, it is surprising that more
organizations have not come to the same conclusion, because the benefits
seem so apparent:
• Parity between the customer interface channels in functionality
• Reduction of complexity in maintaining multiple systems
• An architecture that can be leveraged and reused for other purposes
The actual results have been impressive. Training of internal employees
was significantly reduced, virtually eliminating four to six weeks of training.
Retiring a large number of databases and applications reduced the complexity
of the underlying architecture. Almost 10% fewer staff was required to
maintain the systems. User response times were reduced by 60% to 70%,
increasing the efficiency of the staff. Furthermore, the architecture supported
the development of applications that improved several key business processes,
resulting in straight-through processing of transactions. Savings from these changes were expected to result in annual savings of $30 million. The
investment to achieve this was significant, but the expected ROI is an internal
rate of return of over 20%.
While investments in architecture are often thought of as costs that have
no apparent benefit, Vanguard demonstrates that the implementation of an
architecture that supports reusability can have significant impact on a business.
A well-designed service-oriented architecture is the key to achieving
these benefits. Web services are not required, as we see with what Vanguard
accomplished, but should help lower the costs that were borne in this project
by reducing the amount of custom infrastructure work that is now provided
through the Web services technology.
7.7 Next Steps
Services are the building blocks for composite applications and process-driven
integration. Defining reusable enterprise services, as well as managing and measuring
reuse, requires ongoing enterprise commitment and investment. Success
with SOA is as much a matter of management as it is technology. Companies
interested in long-term business agility will invest in all aspects of the enterprise
integration architecture, including information and process integration architectures
(Chapter 8 and Chapter 9, respectively). Companies focused on pressing
tactical needs, will define only what is absolutely necessary and move on to
implementation (Part III). See Figure 7-8.
Read other excerpts and download more sample chapters from our manufacturing ERP bookshelf