SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
Architectural Integration Styles for Large-scale Enterprise Software Systems
Jonas Anderson, Pontus Johnson
f
Dept. o Industrial Information and Control Systems,
KTH, Royal Institute of Technology
Osquldas vag 12, SE - 100 44 Stockholm, SWEDEN
Gonasa, pontusj} @ics.kth.se
Abstract
A predominant problem in the management of largescale enterprise software systems is application
integration. Despite the considerable efforts spent on the
development of new standards and technologies f o r
software interoperation, the integration of systems that
originally were not designed io interact with each other is
f
a major undertaking, requiring in-depth knowledge o
existing systems, incorporation of integration products,
and development and/or parameterization of various
kinds of adapters and gateways.
This article presents the concept of architectural
integration styles, i.e. architectural styles describing
software structures of integration solutions f o r enterprise
software systems. The article further proposes an
approach f o r selection of styles based on the
characteristics of the existing software applications and
the desired quality attributes of the integrated system.
A number of architectural integration styles f o r
enterprise systems are presented in the article, and a case
study o the style selection process applied to a mid-sized
f
Swedish electricity retailer is described.

1. Introduction
Integration of software systems has during the last
decades become one of the most important, as well as
resource consuming, activities in enterprise software
system management. Enterprise software systems are
typically composed of a mix of legacy, custom, and
commercial-of-the-shelf software, and characterized by
large-grained,
heterogeneous
and
unmodifiable
components, and heterogeneous connectors.
As a result of the increasing focus on system
integration, there is a growing market for software
integration products and standards. The once fairly clear
market division has recently been blurred by component
technologies and standards like CORBA [20], COM [9],
and Enterprise JavaBeans [171 incorporating more and
more services. Typical integration solutions are
exemplified by remote method invocation, message

0-7695-1345-X’01/$10.00 0 2001 IEEE

queuing systems, transaction management systems,
message brokers, adapters, and database connectivity
solutions [7] [16] [21] [22].
This article considers architectural styles [14] as a
means for design of integration solutions for enterprise
software systems. The article argues that architectural
styles on the level of enterprise software systems can be
used as generalizations of common integration solutions,
much in the same way that styles and pattems are used in
traditional software architecture and design. In other
words, architectural integrations styles may be seen as
generalizations of historically successful solutions to
common problems. The perhaps most interesting part
about architectural styles is that they are believed to
impact software quality attributes. Certain styles are more
appropriate than others for achieving certain quality
attributes in a system. It is consequently desirable to
classify “good” architectural styles and employ them when
certain goals are sought.
There are, however, a number of differences between
traditional software systems and enterprise software
systems that need to be taken into consideration. The
article assumes that the components of enterprise software
systems are unmodifiable. This is not always the case, but
whether it is or not, on the enterprise system level, it is
almost always desirable to construct non-intrusive
integration solutions, justifying the view of components as
unmodifiable. As a consequence, the article examines
enterprise software architecture from the aspect of systems
integration. This focus delimits the problem nicely,
permitting a structured analysis based on a manageable
number of variables.

1.1. Purpose of the article
The purpose of the article is to propose an approach for
selection of integration solutions, based on architectural
integration styles for enterprise software systems. To
promote this, a structure for describing architectural
integration styles is presented. To firther strengthen the
feasibility of the approach, a number of architectural
styles are presented. The approach and the presented
styles are subsequently considered in the context of a

224
systems integration project in an energy company on the
Swedish energy market.

1.2. Definitions
Below, some in the article recurring terms are defined.
Architectural style. Before describing architectural
integration styles for enterprise software systems, we need
to define architectural styles in general. According to
Alexander et al. [I], reiterated by Gamma et al. [12], a
pattern “describes a problem that occurs over and over
again in our environment, and then describes the core of
the solution to that problem, in such a way that you can
use this solution a million times over, without ever doing
it the same way twice”. According to Bass et al. [5], an
architectural style is the same thing as a system pattern (to
be differentiated from design and code patterns). Bass et
al. define architectural styles (or system patterns) as 1) a
set of component types, 2) a runtime topological layout of
these components, 3 ) a set of semantic constraints, and 4)
a set of connectors.
Enterprise software system. The total interconnected
system of systems and applications within an organization.
Thus, in an enterprise software system, software systems
that from a vendor view may be considered as large and
complex, are in an enterprise software system considered
as components.
Enterprise software architecture.
The
model
description of an enterprise software system, consisting of
more or less structured and/or explicit descriptions of the
source (present), intermediate, and target (intended)
architectures. In addition, technically outdated but
commonly business critical and/or inadequately
documented source architectures are commonly termed
legacy enterprise software architectures. This article
advocates architectural integration styles as a prominent
part in such architectural descriptions. Accordingly,
components in these different architectural descriptions
are termed legacy, source, intermediate, and target
components.
Architectural integration style. An architectural
integration style is in this article used to denote a
generalization of a historically successful integration
solution on the level of enterprise software systems.
Integration styles are further elaborated on in the
remainder of the article.
Base components. The term base component refers to
the original components introduced for hnctional rather
than integration purposes. Contributing to the selection of
base components are legacy components, available
packaged components, organizational needs, and business
vision. In this article, the base components are considered
as the main building blocks in the architectural integration
styles.

1.3. Outline of article
Section 2 discusses the main differences between
traditional single-vendor software systems and enterprise
software systems. Section 3 presents a structure for
describing architectural ‘integration styles for enterprise
software systems as well as the rationale for using such a
structure. In Section 4, a number of architectural
integration styles for enterprise software systems are
described. Analyzed styles include the gateway style, the
adapter style, the point-to-point style, the mediator style,
the message router style, the database federation style,
and the desktop integration style. Section 5 presents a
case study of the selection of architectural integration
style for an enterprise active on the Swedish energy
market. The styles in Section 4 are considered in the
context of an extensive application integration project.
Section 6 concludes the article with a discussion on the
findings of the research.

2. Large-scale enterprise systems
To support the article’s attempt to use the concept of
architectural styles on enterprise software systems, this
section presents the main differences between singlevendor software systems and large-scale enterprise
software systems. The main themes of the differences
stressed in this article are the latter system level’s
heterogeneity of interconnected architectural entities, and
the strive for maximizing the use of packaged software,
thus limiting cost and risk, but also the degree of freedom
regarding changes and replacement of components
compared to custom development. Hence, the
architectural design space for enterprise software systems
becomes rather discrete in terms of feasible design
alternatives, and the share of the total effort spent on the
parameterization and adaptation of components and
connectors is considerably larger.
The total enterprise software system in a medium-sized
enterprise may comprise of more than a hundred
interconnected components with different degree of
interaction [8]. Traditionally, systems have been
developed and customized from scratch in order to fulfill
the specific requirements for one organization. Some
notable characteristics of the elements in an enterprise
software architecture are briefly highlighted below [3].
Components are large-grained. Enterprise software
components reflect the chunks of software that the
organization wishes to makes explicit in order to maintain
a high level of freedom regarding the quality attributes
focused upon. Thus, enterprise software components are
often fairly large-grained, as they tend to reflect available
packaged software components, legacy software
components, and management goals. For instance,

225
complete systems such as customer information systems
and geographical information systems might be
considered as components in enterprise software
architectures [ 161.
The supply of packaged components is limited. The
number of on the market available large-grained
components is always limited. Often components with the
desired hnctionality do not exist, forcing enterprises to
either develop those components from scratch or combine
packaged software to fulfill the requirements of the
component.
The legacy architecture constitutes the starting
point of the system development effort. Enterprises
have to take their legacy software components under
consideration. These components often constitute a
significant asset that may not be easily replaceable without
severe disturbances to the business operations [6].
The enterprise software system may contain both
data and functional redundancy. The use of packaged
components increases complexity since those components
rarely correspond completely to the organization’s
requirements. In order to grasp the bulk of the
requirements, different packaged components are
combined with custom-developed components, such as
adapters, wrappers, and gateways [6] [ 161, often resulting
in both functional and data redundancy. Data and
hnctionality can also be virtually redundant, i.e. similar
but not identical, causing further inconsistencies in
enterprise databases [4].
Components are not modifiable. Since enterprise
software systems to a large extent consist of packaged
software, changes to the system cannot be performed
directly on the base components. Normally, the source
code is not available, and if it were, changes might violate
the components’ commercial status as packaged software.
Therefore, changes to the system are preferably handled
indirectly, either by influencing the software vendor to
adapt its packaged product in coming releases, or by
implementing non-intrusive modifications, e.g. by
wrapping the component in order to change its external
behavior.
Components are heterogeneous. In an enterprise
software system that to a large extent is composed of the
combination of packaged and legacy components from a
wide range of vendors, epochs, and intended purposes,
uniform system components normally proves hard, costly,
and often even inappropriate to realize.
Connectors are heterogeneous. Connectors in an
enterprise software system are by nature diverse since
their main purpose is to glue heterogeneous components
together. Moreover, connectors do not only interface with
other components within the same enterprise software
system, they also provide interfaces to other
organizations’ software systems bringing even more

heterogeneity into the enterprise’s total battery of
connectors.

3. Describing architectural integration styles
for enterprise software systems
Traditional development is a creative process where
the components are defined and the functionality is
determined and allocated along with the selection of
architectural style. Because of these parallel processes, the
degrees of freedom are innumerous, making controlled
decision processes hard to implement.
When developing integration solutions of the kind
discussed herein, the components are unmodifiable and
the functionality is determined and allocated beforehand.
These limitations make it far easier to structure the
process of style selection.
Assuming that the main style selection process starts
after the base components have been chosen, this article
proposes that selection of architectural styles for
enterprise systems can be based on the characteristics of
the individual base components and the desired quality
attributes of the resulting system.
In other words, applying an architectural style on a
certain set of components yields some specific quality
attributes. To relate this to Alexander et al. [I] and
Gamma et al. [12], the problem is described as a set of
components and a set of desired quality attributes while
the solution is the style definition. This is not a new
definition of styles but a reformulation adapted for
architectural integration styles for enterprise software
systems.
To make the style selection process straightforward,
styles need to be described in three parts. Firstly, the style
must be defined. Secondly, the constraints that the
components are subject to (these are part of or
consequences of the style definition) should be described.
Finally, the quality attributes that the resulting system
displays need to be examined.
Perhaps the most problematic issue with architectural
styles, whether they are limited to enterprise software
systems or not, is the identification of all the relevant
component constraints and resulting quality attributes. In
this article, a basic set will be considered without claiming
any kind of completeness. Below, we present the basic
parts of a style description.

3.1. Style definition
In the proposed style description, the definition is thus
expressed as one or several constraints on components,
connectors, semantics or topology. These defining
constraints may imply other constraints (e.g., a constraint
on connectors is often also a constraint on the component

226
interfaces). In the style definition, the primary constraints
are described.

3.2. Quality attributes
Architectural styles are principally believed to impact
quality attributes of the resulting system [IS]. The
resulting characteristics are therefore described in terms of
“ilities” [19]. As such, a number of quality attributes are
considered in Table 1 . The table is by no means a
complete account of quality attributes, and the hierarchical
division is not claimed to be the only possible division.

Perhaps the most obvious component constraint relates
to the component types allowed by the architectural style
(stand-alone components, database components, etc.).
There are also a number,of constraints related to the
things that one component needs to know or manage about
a collaborating component. This includes collaborator
location and availability, information such as transfer
protocol [IO], data format [18], schema, and content
(including method signatures and interfaces) as well as
architectural assumptions [ 1 I ] [ 131.
Furthermore, there may be constraints on the types of
access that the component must provide, e.g. interface
access to the database, to the application logic, or to
internal objects of the component. Interfaces can
furthermore be subdivided into full-service, limitedservice, and controlled interfaces [ 161.

3.4. Organizing styles
Styles are related to each other in several different
ways and a clear organization of proposed styles may help
both in the use of and in the proposition of new styles.
The two most important relations are the sub-style and
uses relations. A sub-style is constructed by adding
constraints to its parent style (or meta-style). A uses
relation indicates that one style typically uses another
style.

components

accessibility
User
functionality
accessibility

I
I

Adapter

How much of the functionality that is accessible to the
end-users.
Point-to-Point

Table 1. Quality attributes

Also note that most quality attributes are directional
(the more of the quality attribute the better); a style that
improves many quality attributes is better than a style that
only improves one. Also, the easier it is to combine a style
with other styles without affecting the quality attributes
(the more orthogonal the styles are), the better it is.

3.3. Component constraint dimensions
Component constraints are either part of, or results of,
the style definition. As argued before, however, it makes
sense to express these constraints separately and in more
detail in the case of integration of unmodifiable
components. Connectors are treated more en passant since
they are not decided on beforehand.

Figure 2. “Uses”and sub-style relations between
presented architectural integration styles.

Another way of relating styles is by the type of
architectural constraints that they impose. On the topmost
level, constraints maybe divided into component type,
connector, topological, and semantic constraints.
A third set of dimensions for relating styles are the
quality attributes that they supposedly support.
Particularly interesting to note is that the quality attributes
of the styles are most easily expressed using a
comparative approach, since it is difficult to e.g. express
the scalability of one style without referring to another
style.

227
L L

------

r-----

I

Source

I

I

J
L
-

%
-',

Target
Amiication

-----I
I

I

Application

I

I

+I

i-

Component

L-----

The Screen-Scraping, Application, and
Database Gateway Style

The Desktop IntegrationStyle

The Message Router Style

m
Component

Component

Component

The Database Federation Style

The Point-to-Point Style

The Adapter Style

Figure I Architectural integration styles. Note that the gateway, the desktop integration, the message router,
.
and the database federation architectural integration styles all are sub-styles to the general mediator style.
Therefore, the mediator style is not explicitly illustrated in the figure.

4. Examples of architectural integration

styles
In this section, a number of architectural integration
styles for enterprise software systems are presented. The
styles are diverse and are not selected based on any
specific principle. Each style is described according to the
structure discussed in the previous section, including a
style definition, supported quality attributes, and
component constraints. The considered styles are the
gateway style, the adapter style, the point-to-point style,
the mediator style, the message router style, the database
federation style, and the desktop integration style.

4.1. The gateway style
The gateway style summarizes many ideas behind the
system migration approach of gradually altering complex
software system, e.g. summarized in [6]. Consequently,
the purpose of the gateway style is to allow direct
integration between two systems on the data or application
logic level. These two systems are normally referred to as
the source and target enterprise system. The gateway style
assumes that at least the source system is composed of a

database component, an application logic component, and
a user interface component. However, these may or may
not be separable (and whether they are often determines
the gateway sub-style employed). As is shown below,
gateways come in many colors and forms.
Style definition. The gateway style is defined by the
introduction of a component for direct interface mapping
between a source and a target system. The style is
divisible into several sub-styles based on the type of
source systems and the means for communication. A
database gateway encapsulates a database from the
application logic in the source component by providing a
new database management interface suited for the target
component. Application gateways, or adapters,
encapsulate the application logic and the data by
providing the source component with an application
interface compatible with the target component. The
screen scraper gateway is an application gateway that
connects to a (legacy) source component by tapping into
the data stream originally intended for the terminal.
As the name implies, the static gateway binds the
interfaces at design-time, while the dynamic gateway
allows runtime binding. A thin gateway provides nothing
but interface binding, while a thick gateway also includes
transformation of data format and schema.

228
The gateways may offer forward translation of calls
and data from a source component to a target component
and/or reverse translation from a target component to a
source component.
Quality attributes. The gateway style is intended to
provide integration of methods and data in a non-intrusive
manner. Component accessibility is therefore the main
benefit of the style. Database gateways have no effect on
functionality accessibility while application gateways may
or may not improve data accessibility.
A static gateway makes the integrated system less
modijiable than a dynamic gateway because minor
changes in any base component may necessitate a change
in the gateway. Dynamic gateways are designed to
manage some of these changes run-time. Dynamic
gateways may further increase the modifiability by selfparameterization through probing of the base component
when first connected.
For database gateways, forward translation facilitates
the accessibility of source data and functionality for the
target system, whereas the reverse translation primarily
addresses the issue of data consistency.
Given that the gateway is well implemented, it will
have moderately negative effects on performance, and no
effects on reliability or security per se. However, e.g.
reliability and security of the integrated system may be
compromised by unmanaged architectural assumptions.
Components. The database gatewqy requires the
separation of the source database from the rest of the
source component as well as access to the database. On
the back-end, the gateway interfaces with the database and
on the front-end, it interfaces with the application logic of
the target component.
The application gateway requires the separation of the
user interface and the rest of the source component as well
as access to the application logic. The back-end interfaces
with the source component’s application logic while the
front-end interfaces with the target component’s user
interface and/or application logic.
The back-end of the screen-scraper gatewa-v interfaces
with the source component’s application logic. As with all
application gateways, the front-end interfaces with the
target component’s user interface andor application logic.
The whole point of the gateway style is to let both the
target and source components remain oblivious of its
counterparts’ interfaces, data formats, locations, etc., as
well as of the specificities of the gateway.

4.2. The adapter style

interfaces. It is closely related to the gateway style; it is
however presented as a style in its own right because of its
common usage.
Style definition. The style introduces a component
between a mediator, for instance a message router, and a
base component, for interface binding and transformation.
As for gateways, static adapters bind the base
component interfaces at design-time, while dynamic
adapters allow runtime binding. The thin adapter
provides nothing but interface binding, while the thick
adapter also includes transformation of data format and
schema.
Centralized adapters run on the same node as the
mediator (and possibly even in the same process space)
and are normally thin. Distributed adapters on the other
hand reside both on the source and the target node and are
normally thick.
Quality attributes. The characteristics of adapters are
the similar to those of application gateways. Their main
benefit is thus component accessibility of functionality
and data. A drawback is that adapters often need to be
modified when the source application is upgraded (this is
more true of thin and static adapters than of thick and
dynamic).
Distributed adapters have the advantage of closeness to
the source or target component, making it easier to
supervise and control the application, e.g. restarting it,
capturing events, etc. Also, coordination of the interaction
between the mediator and the source or target component
is easier dealt with when the adapter resides on both sides
of the communication.
Components. On the one end of the adapter, a base
component is located, and on the other sits a mediator
component (e.g. a message router).
The base component does not need to have any
information about the mediator, while the mediator needs
to mange information about the adapter’s location,
availability and possibly also the base components (and
adapters) architectural assumptions. If the adapter is thin,
the mediator may also need to know the data format and
schema of the base component’s data (although it might
just pass the problem of data interpretation on to the
collaborators).
The base component needs to expose its application
logic interfaces either (and preferably) as APls, or through
screen-scraping. If the base component does not expose
functionality in a (for integration purposes) reasonable
manner, this will likely become a major concern for the
whole integration process.

The purpose of the adapter style is to allow integration
between mediators (such as message routers) and base
components. The style provides a binding and
transformation between mediator and base component

229
4.3. The point-to-point style
The point-to-point style is perhaps the simplest style to
implement for small systems, featuring as direct
communication between components as is possible.
Style definition. The main conceptual feature of this
style is that all inter-component communication is direct
or when necessary, via (thin) gateways, i.e. each
component is connected using static binding to those
collaborators with which it needs to communicate.
There are many sub-styles of the point-to-point style.
These include synchronous or asynchronous point-topoint, queued, or direct point-to-point.
Quality attributes. The style can be used for limited
both user and inter-component data access as well as for
limited user and inter-component function access. The
accessibility may be limited since a target component or
graphical user interface (GUI) may not be designed to
invoke functions offered by a source component. The
common functionality and data is thus reduced to the least
common denominator of the interconnected base
components.
The style is easily implemented for systems with a
small number of components but quickly becomes
unwieldy as the number of components increases, since
the number of connectors increases rapidly. Hence, the
point-to-point style does not scale well. In the worst case,
the number of connectors becomes n(n - I ) ,where n is the
2

number of components. Furthermore, the more
heterogeneous the component interfaces are, the more
gateways are needed.
The style may also result in a weak security system. If
the components have different security standards, these
may be highly problematic to integrate, in the worst case
these need to be negotiated as many times as there are
connectors. Further, the style is not very efficient for
managing data consistency, since this requires all affected
components to be notified when data changes in one
component. Since users may change data in all systems
(no single point of data entry), all components must be
able to notify all other affected components of the data
change and all must be able to accept and act on such
notifications.
Components. The components in the point-to-point
style need to be active stand-alone components. Since all
intelligence is located in the base components, they need
to be more or less compatible from the start. For instance,
one component must be designed to ask for certain data
and another to be able to provide it. Integrating a
component that is based on the assumption that the
communication is synchronous with a component with an
asynchronous assumption may further cause difficulties,
which indicates potential problems of transfer protocols.

As indicated above, the more similar the components are
(as to GUIs, security standards, etc.), the easier they will
be to integrate. This goes for most styles, but becomes
particularly pertinent in this case because of the rapid
growth of integration surfaces as the number of
components increases. The style does not include
directory services or other mediators, which means that
the components need to have (certain knowledge about
their collaborators. They need to know the location of the
collaborators, the interface signatures, data formats and
schemas, they need to be able to manage temporary
unavailability of collaborators, etc. Some of these issues
may however be managed using gateways.
Finally, the components need to provide access to the
relevant data and functionality through application
interfaces.

4.4. The mediator style
The mediator style features a central component
implementing services to simplify integration. All styles
presented below are sub-styles to the mediator style.
Style definition. The main feature of the mediator
style is the introduction of a new central component
providing services facilitating integration. These services
may include load-balancing services, transformation
services, routing services, etc.
In the middle-tier mediator sub-style, client
components are located on one end of the mediator and
server components on the other. In the peer-to-peer
mediator sub-style, all components may act as clients or
servers.
In the hub mediator sub-style, all traffic is directed
through the mediator, and no additional point-to-point
connections are allowed between components.
Quality attributes. The characteristics of the mediator
style vary markedly depending on the services provided
by the central component. However, the centralized
topology of the style, and in particular the strict rules of
the hub mediator sub-style, may have effects on the
reliability, providing a single point of failure; on
scalability, minimizing the number of connectors; on
security, permitting the deployment of a centralized
authorization and access control system; on accessibility,
providing a single point of information exchange; and on
performance, in particular for the middle-tier sub-style,
permitting distribution of loads among servers. Just as
with the point-to-point style, the accessibility may be
limited if target components or GUIs are not designed to
invoke functions offered by source components. The
common fhctionality and data is thus reduced to the least
common denominator, implying that the style is best
suited for similar components.

230
Components. Components can be of any kind in the
general mediator style. Sub-styles do however normally
limit the options. All components need to be designed for
interaction with the mediators. In many cases, however,
adapters can provide these capabilities.

4.5. The message router style
The message router style allows components to remain
unaware of the specific locations and availability of their
collaborators.
Style definition. The message router is a hub and
peer-to-peer mediator style with a central component that
directs information between the base components based
on the content or source of the information. All intercomponent communication is routed through the central
component. A message queuing service is typically
provided by the message router.
Quality attributes. The message router reduces the
complexity and thus scalability problems of the point-topoint style topology. The previous worst-case scenario of
n! connectors (where n is the number of interconnected
components) is reduced to a worst case of n connectors,
since all base components communicate via the mediator.
As with all mediator styles, a single-point-of-failure may
decrease reliability. The message queuing service may
however increase durability of information if persistent
storage is provided. Authentication and access control can
be provided as additional services on top of the message
router. Encryption must be provided at the component
level for message protection. Accessibility is similar to the
point-to-point style.
Components. The components in the message router
style are typically stand-alone components. The style
requires that the transmitting components know the
address, availability, transfer protocol, and interfaces of
the router. If the components are not designed to
communicate with the router, adapters may be employed.
The availability of the recipients normally becomes
unimportant for the sender because of the message
router’s queuing service. The sender needs to know only
the data representation format and content expected by the
recipient. Severe performance problems may occur if a
component is designed for direct synchronous
communication, since the message router is based on an
asynchronous communication model. The calling
component may, e.g. block its execution waiting for the
competition of a request sent to an unavailable server
component while the message router queues the message
without generating errors. These problems are, however,
not unique for the message router style.
Components need to be able to send and receive
messages. Adapters can often package API calls as

messages if the component does not provide this
capability.

4.6. The database federation style
The database federation style is employed in order to
integrate heterogeneous databases and to provide a unified
view of their contents to the database users.
Style definition. The style is a middle-tier mediator
style; the back-end of the central component is connected
to several databases while the client-end provides a
uniform interface to client applications, creating a virtual
database model containing the information of the source
databases. The virtual database may also be physically
replicated creating a data warehouse sub-style.
Quality attributes. The database federation style is
mainly aimed at improving data accessibility, isolation,
and consistency. The centralized control over the data
stores makes these objectives feasible. Modifiability is
improved in the sense that new client applications only
need to adhere to one database management system
interface, and new databases only need to interface to the
central component. Security is easier to implement than in
the point-to-point style because of the single-point-ofentry. The vulnerability is however also increased because
of the single-point-of-failure.
Components. The back-end components of the
database style are database management systems of
various kinds. These components need not know anything
of the collaborating components and they may in principle
feature any DBMS interface.
The
client-end
components
are stand-alone
components and need to know everything (address,
interface formats, etc.) about the mediator component, but
nothing about the back-end databases. They need to
access the central unit but need not necessarily provide
any interfaces of their own.

4.7. The desktop integration style
The desktop integration style offers a pragmatic
alternative to more ambitious approaches to integration by
employing the user interface as the main point of
integration. The main usage of this style and its obvious
advantages are for the rapid deployment of new user
interfaces without changing the bulk of the underlying
components, e.g. for giving a new look-and-feel to legacy
systems or to provide a unique user view for a specific
purpose. Further, the user interface component may be
supplemented with a gateway component to increase the
inter-component interaction.
Style definition. The desktop integration style is a
mediator style where a new user interface is employed as
integrator of disparate stand-alone components.

23 1
Depending on whether the interface component is thin or
thick, the style may also provide gateway functionality in
terms of function and data synchronization between
components.
The thin desktop integration sub-style introduces no
new functionality, simply visualizing the components
functionality and data in a new user interface. The thick
desktop integration sub-style adds an active component
providing some gateway fimctionality to the solution.
Also, new functionality may be introduced using the GUI
as the gateway mediator.
Quality attributes. The thin desktop integration substyle provides user accessibility to both functionality and
data. If the interface is well implemented, the user is able
to perform the same functions and access the same data
using the new interface as by using user interfaces of all
the base components. Components cannot however,
access functions and data of the other components; all
inter-component interaction must be mediated by the user.
Data consistency, atomicity, isolation, durability, and
security are not managed by the sub-style. Introducing a
new component or upgrading an existing one may
necessitate redevelopment of the user interface.
Furthermore, the usability of the system is probably poor
since the user faces several applications in one GUI.
Introducing a gateway component, the thick desktop
integration
sub-style
improves the
component
accessibility of both functionality and data. The gateway
may for instance be used to manage data consistency or
security between the base components. Dependencies
introduced in terms of static bindings to underlying
components may, however, require that changes in
components, either directly or by hard-detected side
effects, must be reflected in GUI. Hence, complexity and
upgradeability are inflicted.
Components. The components connected to the thin
interface are stand-alone components. Typically these
components are in themselves complete application
systems with a database, application logic and a user
interface. The user interfaces of all of the components are
replaced with the new CUI. The base components need
not manage any information about the other base
components, the user interface and the optional gateway
do however need to be aware of the locations, interfaces,
availability, etc. of the base components.

5. Application of architectural integration
styles
This section exemplifies the use of some of the
architectural integration styles previously described. The
example is based on a participatory case study of the
acquisition of a business system for a mid-sized electricity

retailer, active on the deregulated Scandinavian energy
market.
Architectural integration styles may be utilized in
several ways. To select a suitable style for a given
scenario, the base components need to be described and
the desired quality attributes of the resulting system need
to be specified. Having completed this description, the
characteristics of the base components can be compared to
the component constraints of the different architectural
integration styles and the desired quality attributes can be
compared to the attributes supported by the architectural
integration styles. These comparisons reveal the style that
best suits the base components and the desired quality
attributes. Because of the high cost associated with custom
development, the most preferred styles need to be
compared with the products available on the market to
determine which parts of the integration solution that can
be procured as third-party products and which parts that
need to be custom developed.

5.1. The initial scenario
The enterprise under study was recently formed by the
merger of the energy sales departments of five
municipality-owned electric utilities into one organization.
As a consequence, five completely disparate organizations
had to be integrated without a single day out of operation.
The functional areas for the target architecture were sales
and marketing, customer relations, electricity trading,
new interfaces towards customer and partners (e.g.,
Swedish national grid, large customers, and banks), and
basic administration (e.g., billing). In some of the
hnctional areas, one or several legacy systems were
already in operation, while other functional areas totally
lacked system support. In order to quickly reap some of
the benefits of the merger while maintaining business
operations, rudimentary scripts andor spreadsheet
applications were used as temporary solutions for the
exchange of information between the legacy components
and the compilation of this information. However, the
degree of automation was low, demanding considerable
manual intervention to provide a reasonable flow of
operations. This case has previously been discussed from
an enterprise architectural analysis process perspective
in [3], and from the perspective of strategic information
systems planning in [2].
Base system. The resulting enterprise software system
consisted of five different sets of geographically
distributed legacy enterprise software systems (to maintain
a consistent terminology, the legacy systems are hereafter
called components). The enterprise software system thus
contained a complex collection of legacy systems
(especially with regard to the large and complex
databases) and extensive use of large-grained packaged

232
components, such as customer information systems,
billing systems, energy settlement systems, and sales
support systems. Furthermore, the system revealed nonmodifiable, heterogeneous components, overlapping data
and functionality, and rudimentary and heterogeneous
connectors ranging from object brokers to the exchange of
flat files.
The legacy components were based on four
significantly different approaches; two installations were
minicomputer-based customer information systems, one
was based on an outsourced mainframe solution, one was
a small-scale client-server type of system, and one
installation was a large-scale bespoke developed clientserver system. All but the bespoke developed system were
packaged applications that were also used by several other
energy companies, and consequently maintained and
upgraded in regular releases.
None of the legacy components were designed to
interoperate with other applications. All provided limited
data interfaces, allowing reading of database data but not
writing, and only one component provided an application
programming .interface (API), the remaining components
application logic only accessible by means of screenscraping. Only the bespoke component was designed to
use external services for locating and managing
availability of collaborators. All components featured
proprietary data formats and schemas. The one component
that featured an API did not conform to any wellestablished standard.
Initial architectural style. Describing the initial
system in any specific architectural style is most
straightforwardly done in terms of the point-to-point style,
since most connectors provided simplistic one-to-one
connections (heavily relying on file transfer). Message
passing and data formats were constructed ad-hoc by the
use of proprietary formats, with the exception of
settlement measurement data that was expressed in an
Electronic Data Interchange (EDI) format derivate, and
that was based on a message routing product. As message
passing was asynchronous and batch-oriented, i.e. files
were transferred regularly for instance once every 24Ih
hour or weekly, transaction atomicity was poor.
Moreover, since enterprise data were distributed on
several databases (and in several cases redundant), dhta
consistency was inadequate.
Before the company merger, the components, their
interconnections, and the data managed in the architecture
were of limited number and size. Hence, given the limited
complexity the point-to-point style proved adequate. But,
the company merger called for a more coherent view of
the new organization’s total enterprise software
architecture. Since new connectors and adapters had to be
applied for every new inter-component interaction,
complexity accelerated with each additional component
introduced into the architecture.

In the remainder of this section, the process for
selecting feasible design alternatives in terms of
architectural styles is hrther elaborated.
Desired quality attributes. Starting with the
enterprise’s business requirements, high-level quality and
functional requirements of the new enterprise software
architecture were formulated. This effort led to a refined
set of requirements. In that stage of the process, the
functional requirements mainly served as the rationale for
determining which base components to include in the
target architecture. From an initially rather long list of
desirable quality attributes, a limited set to focus upon was
selected. The quality attributes hereby addressed were
modifiability, reliability, accessibility, and performance.

5.2. Architectural integration styles
This section exemplifies how architectural integration
styles may be employed by demonstrating some of the
main design alternatives from the selected case. Some of
the design alternatives omitted in this case description
circumvented the architectural problem by either
outsourcing the complete operation to a service provider
or by procuring a turn-key, packaged system that was not
intended to be decomposable into smaller components. It
is also stressed that some styles, such as the transaction
management style and the publishhbscribe style are
omitted since they were not reflected in any of the design
alternatives in the case study.
The investigated styles were Adapter, Desktop
integration, Message router, Gateway, and Database
Federation. All styles but the first two were used as the
basis (solitary or in combination with other styles) for
different design alternatives. The adapter and transformer
styles played an important role in the implementation of
the other styles, but were not considered as primary design
drivers; rather, they provided informative constraints on
whether the main design alternatives were feasible or not.
The presentation order of the styles differs somewhat from
Section 4 due to pedagogic reasons.
The adapter style. During the style selection process,
the styles discussed under the headings below provided
the basis for the main design alternatives. Because of the
diverse interfaces provided by the base components,
prohibiting direct inter-component access to data as well
as hnctionality, adapters were considered for all
integration styles based on mediators. Adapters do,
however, only increase accessibility by binding and
transforming interfaces. The limited-service base
component interfaces (e.g., allowing database reading but
not writing) remain limited even after the introduction of
an adapter. In most cases, available adapters were static,
i.e. bound to base component interfaces at design-time,

233
and thick in order to cope with significantly differing data
schemes and formats in source data components.
As a result, an important trade-off was between
spending resources on data conversion in order to limit the
number of concurrent (and redundant) data components,
or on implementation and/or parameterization of adapters
to pave the way for mediator integration styles.
The desktop integration style. From a component
view, the main benefit of the desktop integration style is
that it is applicable to almost any components. This was
also the case for the studied base components. As a first
integrating step to create uniform business operations,
although the enterprise was spatially distributed, the
desktop integration style was considered, since it is
designed to improve user accessibility to both data and
hnctionality.
Both the thin and the thick desktop integration substyles were studied. The thick desktop style, also
providing gateway functionality is discussed below
together with the gateway style.
Application of the thin desktop integration style was
considered in order to hastily tie systems together
adapting to the new business and organizational
requirements, e.g., GUIs that were adapted to a specific
user group or business process.
In its most simplistic form, the user was considered as
the intelligent mediator by allowing the user access to
more than one legacy component through the client CUI,
e.g. by accessing the underlying systems directly using
their native user interfaces (if required using for instance a
terminal emulator as adapter/connector), and the functions
included in the client GUI, such as “cut and paste” to
ensure the proper exchange of data between components.
The main advantage of the thin desktop integration
sub-style was that it did not require any programming and
none, or only sparse, parameterization since the
integration functionality was “implemented” through
trained users.
However, in order to implement the thin desktop
integration sub-style, extensive user training had to be
carried out due to source components’ heavily diverse
user interfaces. Also, it was early revealed that the substyle could not be fully implemented since the users then
would have to be fully trained to operate four totally
different user interfaces. However, implemented in a
limited scale and combined with some organizational
changes, the style offered some ease of the burden. But,
the design alternative had severe shortcomings as to
modifiability mainly in terms of scalability.
The message router style. The benefits of a message
router style include accessibility and modifiability (mainly
in terms of scalability). For two major parts of the source
architecture, the message router style was already applied,
which provided useful information in the architectural
planning process.

Firstly, the bespoke developed client-sever application
mentioned above employed a commercial message
oriented middleware product bolh for interaction between
components within the application, and with
interconnected legacy enterprise components. However,
the experiences from this effort were deterrent. Since the
base components were not selected from an integration
perspective, information exchange between components
could not be controlled and turned out to be both complex
and voluminous. Hence, both performance, and reliability
suffered. Moreover, the remaining legacy base
components were not compatible with the considered
message router e.g. as to data formats, data schemas, data
interface signatures, or location and availability
management. Since these incompatibilities required
powerful adapters that were not available on the market,
the necessary resources for developing these adapters
from scratch became significant.
Secondly, as mentioned above, all energy measurement
related information was, due to the regulatory framework
on the electricity market, exchanged in a common
message format (EDlel, an Electronic Data Interchange
format derivate) using a packaged message router product.
The message router was employed both for internal
interactions among components in the enterprise system,
and externally to connect to systems located at other
energy companies or at the Swedish National Grid
authority. For its intended purpose, the message router
functioned well, proving itself as a simple, stable and
flexible solution. However, its real-time performance was
poor and it had limitations in its transfer protocol (e.g.
making it unable to provide transaction atomicity). Thus,
making this design alternative inappropriate as a generalpurpose message router mediator.
The gateway style. Ensuring a high degree of
modifiability in terms of both scalability and
upgradeability was the prime reason for making use of the
gateway style in one of the design alternatives. Legacy
considerations, especially with regard to legacy data, were
a major consideration throughout the architectural
planning process. As a result, the database gateway style
was considered, to allow new components to be added or
phased out gradually. A contributing factor for this was
that several of the legacy components in operation served
their purpose well, and the wrapping of these components
was initially expected to allow the development effort to
be focused on the functionality that lacked or was
inadequate in the source architecture.
In addition, there were several business and political
reasons for management to maintain a freedom of action
regarding a gradual transition into a target architecture.
The company’s aggressive policy of company
acquisitions, mergers and partnerships demanded
flexibility in terms of information systems. Accordingly,
the style provided means for a gradual reduction in the

234
number of redundant components, but also for the
incorporation of new components. However, when
assessing the availability of third party products to support
the integration to the base components’ database
management systems, it became evident that these had to
be custom developed to a considerable cost and risk (cf.
the adapter and transformer styles).
An optional design alternative was to consider the
legacy/source components as non, or semi-decomposable,
and to deploy a combined application and screen-scraper
gateway. A distinct advantage with this choice was that it
could provide a uniform GUI for users throughout the
enterprise, thus providing a single-point-of-entry-data, and
(to a limited extent) both reverse and forward translation
of information. This would support data consistency,
atomicity, and isolation. Moreover, new G U S ,
specifically adapted to different user groups could be
developed, improving both usability and security (in terms
of authentication and access control). The style also
permitted a limited addition of new components, such as
contact center functionality. The main drawback with this
style was, however, that in order to provide a uniform
interface to several heterogeneous source/legacy
components, the gateway would only be able to provide
the least common denominator of the functionality and
data of the underlying components. Furthermore, the
gateway had to be fairly complex and hence both hard and
costly to implement and to maintain over time.
The database federation style. To provide a one-way
forward translation of a sub-set of the data from the
source architecture data components, either by providing a
virtual database, or by replicating the selected information
into a separate data store (data warehouse), a design
alternative that employed the database federation style
was considered. The benefits of this approach were mainly
that it provided reading accessibility to the selected data
in the entire organization, e.g. for generating economical
statistics. Because of the limited-service interfaces of the
base components, write access was not provided on the
data level. Moreover, the poor performance of this
alternative ruled it out as a method for real-time access of
enterprise data. Also from a usability and data consistency
perspective, the approach was cumbersome, as changes to
data in the source components had to be done through the
present legacy GUIs, causing a bothersome situation for
the users (cf. the desktop integration style above).

5.3. Results of the style selection process
In the planning process, the architectural styles
discussed in this section served several purposes. Firstly,
styles and patterns are proven solutions to recurring
problems; a main benefit is therefore the reuse of
historically successful designs.

Secondly, they served as a simple intuitive description
of different design alternatives that stakeholder found
comprehensible. Once overcoming this novel way of
describing an enterprise software architecture, the
structure provided by the style description and its
relatively pure coupling between the style problem, its
advantages and disadvantages, together with the style’s
relation to other styles were found helpful as a way to
promote awareness and communication among
stakeholders (e.g. top-management, IT-staff, users, and
vendors).
Thirdly, design alternatives expressed in terms of
architectural styles provided useful input the architectural
design by clarifying feasible design choices, thus
gradually delimiting the design space. It should here be
stressed that initially, the design space seemed rather
endless. But as design alternatives were abandoned, both
due to legacy architecture considerations, availability of
appropriate packaged software, and organizational
matters, only a very limited number of alternatives were
left to choose between.
In the exemplifying case, it was concluded that in the
given context, the point-to-point integration style was
initially ruled out mainly due to its poor scalability.
Despite several attractive properties, the gateway, and the
message router style proved too costly and too risky to
implement in full scale in the short run, and therefore only
constituted feasible solutions in the longer perspective. A
paramount reason for ruling out the general mediator
styles was the poor availability of COTS adapters.
Therefore, since this state of affairs was expected to
change as bigger electricity retail companies in
conjunction with vendors would contribute to the
development of these products, it was concluded that the
desktop integration and the database federation styles
were the only feasible design alternatives during the
foreseeable planning period. Although, tactical rather than
strategic to their nature, and with several major
weaknesses, the relatively low cost and risk involved in
the implementation gave them an decisive advantage over
the other considered styles, even if they arguably
postponed several strategic architectural design choices.

6. Summary
In the article, we propose an approach for selection of
integration solution based on architectural integration
styles for enterprise software systems. The approach is
supported by an adapted structure for integration style
description based on the characteristics of enterprise
software systems, e.g., non-modifiable components,
extensive use of packaged software and legacy
components. Integration styles and the proposed structure

235
for integration style description is exemplified by a
presentation of seven styles.
The application of integration styles in the enterprise
context is demonstrated in a case study, briefly outlining
the architectural planning process, describing the source
architecture and presenting a number of design
alternatives in terms of architectural integration styles.
Styles and patterns are proven solutions to recurring
problems; a main benefit is therefore the reuse of
historically successful designs. Moreover and due to the
limited supply of integration product on the market, the
selection of an architectural integration style constitutes a
considerable part of the enterprise software system design.
Architectural integration styles allow this design process
to be conducted on a generalized level, independent of
specificities of individual products. Further benefits are
due to improved communication between stakeholders
and increased awareness of risks, constraints, and
opportunities in enterprise architectures.

7 References
.
Alexander, C., Ishikawa, S., Silverstein, M., Jacobson, M.,
Fiksdahl-King,I., Angel, S., A Pattern Language, Oxford
University Press, 1977.
[2] Anderson, J., Cegrell, T., Cheong, K.H., Haglind, M.,
“Strategic Management of Information Technology in Small and
Medium Sized Electric Utilities: Bridging the Gap Between
Theory and Practice,” to appear in proceedings of Portland
International Conference on Management of Engineering and
Technology, 2001.
[3] Anderson, J., Johnson, P., “Extending Attribute-Based
Architectural Analysis to Enterprise Software Systems,
Proceedings of the Third Australasian Workshop on Software
and System Architectures, 2000.
[4] Anderson, J., Johnson, P., “IT Infrastructure Architectures
for Electric Utilities: A Comparative Analysis of Description
Techniques”, Proceedings of the 33“/ Hawaii International
Conference on Systems Sciences, 2000.
[I]

’

[5] Bass, L., Clements, P., Kazman, R., Software Architecture
in Practice. Addison-Wesley, 1998.
[6] Brodie, M. L., Stonebraker, M., Migrating Legacy Systems:
Gateways, Interfaces. and the Incremental Approach, Morgan
Kaufmann Publishers, 1995.
[7] Brown, A., Large-scale, Component-Based Development,
Prentice-Hall, 2000.
[8] Cegrell, T.. et.al., “IT Strategy for Electric Utilities: From a
Paper Tiger to an Effective Management Tool,” Proceedings of
DA/DSM DistribuTech Europe 97, 1998.
[ 9 ] Chappell, D., Understanding ActiveX and OLE: A Guide
for Developers and Managers, Microsoft Press, 1996.
[IO] DeLine, R., Resolving Packaging Mismatch (Ph.D. Thesis),
Camegie Mellon University, 1999.
[ 11 Gacek, C., Detecting Architectural Mismatch During
3
System Composition (Ph.D. The:j.is), University of Southern
California, 1998.
[ 121 Gamma, E., Helm, R., Johnson, R., Vlissides, J., Design
Patterns: Elements o Reusabk Object-Oriented Software,
f
Addison-Wesley, 1998.
[I31 Garlan, D., Allen, R., Ockerbloom, J., “Architectural
Mismatch: Why Reuse is so Hard,” IEEE Software, 1994.
[ 141 Garlan, D., Shaw, M., Software Architecture: Perspectives
on an Emerging Discipline, Prentice Hall, 1996.
[ 151 Kazman, R., Bass, L., Toward Deriving Software
Architectures from Quality Attributes, Technical Report
CMU/SEI-94-TR-IO,SEI, 1994.
[ 161 Linthicum,D.,
Enterprise Application Integration,
Addison-Wesley, 2000.
[ 171 Monson-Haefel, R., Enterprise JavaBeans, 2“d Ed.,
O’Reilly & Associates, 2000.
[ 181 Ockerbloom, J., Mediating Among Diverse Data Formats
(Ph.D. Thesis), Camegie Mellon University, 1998.
[191 Pressman, R., Software Engineering: A Practitioner’s
Approach, 5‘hed., McGraw-Hill, 2000.
[20] Pritchard, J., COM and CORBA Side by Side:
Architectures, Strategies, and Implementations, AddisonWesley, 1999.
[21] Ruh, W., Maginnis, F., Brown, J., Enterprise Application
Integration: A Wiley Tech Brief; John Wiley & Sons, Inc., 2001.
[22] Thomas, A., Selecting Enterprise JavaBeans Technology,
Patricia Seybold Group, 1998.

236

Contenu connexe

Tendances

Architectural views
Architectural viewsArchitectural views
Architectural viewsSaleem Khan
 
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture4+1 View Model of Software Architecture
4+1 View Model of Software Architecturebashcode
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and viewsDr Reeja S R
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecturedrewz lin
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpointsHenry Muccini
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patternsHimanshu
 
Can “Feature” be used to Model the Changing Access Control Policies?
Can “Feature” be used to Model the Changing Access Control Policies? Can “Feature” be used to Model the Changing Access Control Policies?
Can “Feature” be used to Model the Changing Access Control Policies? IJORCS
 
Evolution of Modelling Techniques for Service Oriented Architecture
Evolution of Modelling Techniques for Service Oriented ArchitectureEvolution of Modelling Techniques for Service Oriented Architecture
Evolution of Modelling Techniques for Service Oriented ArchitectureIJERA Editor
 
PLA and the SC 2002-04-15
PLA and the SC 2002-04-15PLA and the SC 2002-04-15
PLA and the SC 2002-04-15Jay van Zyl
 
Reconstructing Software Architecture
Reconstructing Software ArchitectureReconstructing Software Architecture
Reconstructing Software ArchitectureHimanshu
 
ER 2002 Paper "A Pattern-Based Approach to Mobile Information Systems Co...
ER 2002 Paper "A Pattern-Based Approach to Mobile Information Systems Co...ER 2002 Paper "A Pattern-Based Approach to Mobile Information Systems Co...
ER 2002 Paper "A Pattern-Based Approach to Mobile Information Systems Co...Walter Ariel Risi
 
Comparative Study of Object Oriented Design and Component Based Software Engi...
Comparative Study of Object Oriented Design and Component Based Software Engi...Comparative Study of Object Oriented Design and Component Based Software Engi...
Comparative Study of Object Oriented Design and Component Based Software Engi...ijsrd.com
 
System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)Animesh Chaturvedi
 
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTSFRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTSacijjournal
 
An Empirical Study of the Improved SPLD Framework using Expert Opinion Technique
An Empirical Study of the Improved SPLD Framework using Expert Opinion TechniqueAn Empirical Study of the Improved SPLD Framework using Expert Opinion Technique
An Empirical Study of the Improved SPLD Framework using Expert Opinion TechniqueIJEACS
 

Tendances (20)

Architectural views
Architectural viewsArchitectural views
Architectural views
 
Sda 2
Sda   2Sda   2
Sda 2
 
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and views
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecture
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
 
Can “Feature” be used to Model the Changing Access Control Policies?
Can “Feature” be used to Model the Changing Access Control Policies? Can “Feature” be used to Model the Changing Access Control Policies?
Can “Feature” be used to Model the Changing Access Control Policies?
 
software architecture
software architecturesoftware architecture
software architecture
 
Object oriented analysis and design unit- v
Object oriented analysis and design unit- vObject oriented analysis and design unit- v
Object oriented analysis and design unit- v
 
Evolution of Modelling Techniques for Service Oriented Architecture
Evolution of Modelling Techniques for Service Oriented ArchitectureEvolution of Modelling Techniques for Service Oriented Architecture
Evolution of Modelling Techniques for Service Oriented Architecture
 
PLA and the SC 2002-04-15
PLA and the SC 2002-04-15PLA and the SC 2002-04-15
PLA and the SC 2002-04-15
 
Reconstructing Software Architecture
Reconstructing Software ArchitectureReconstructing Software Architecture
Reconstructing Software Architecture
 
ER 2002 Paper "A Pattern-Based Approach to Mobile Information Systems Co...
ER 2002 Paper "A Pattern-Based Approach to Mobile Information Systems Co...ER 2002 Paper "A Pattern-Based Approach to Mobile Information Systems Co...
ER 2002 Paper "A Pattern-Based Approach to Mobile Information Systems Co...
 
Lq3620002008
Lq3620002008Lq3620002008
Lq3620002008
 
Comparative Study of Object Oriented Design and Component Based Software Engi...
Comparative Study of Object Oriented Design and Component Based Software Engi...Comparative Study of Object Oriented Design and Component Based Software Engi...
Comparative Study of Object Oriented Design and Component Based Software Engi...
 
System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)
 
Class notes
Class notesClass notes
Class notes
 
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTSFRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
 
An Empirical Study of the Improved SPLD Framework using Expert Opinion Technique
An Empirical Study of the Improved SPLD Framework using Expert Opinion TechniqueAn Empirical Study of the Improved SPLD Framework using Expert Opinion Technique
An Empirical Study of the Improved SPLD Framework using Expert Opinion Technique
 

En vedette

Best practice business analyse (KAM201302)
Best practice business analyse (KAM201302)Best practice business analyse (KAM201302)
Best practice business analyse (KAM201302)Crowdale.com
 
Lectura 2.2 the roleofontologiesinemergnetmiddleware
Lectura 2.2   the roleofontologiesinemergnetmiddlewareLectura 2.2   the roleofontologiesinemergnetmiddleware
Lectura 2.2 the roleofontologiesinemergnetmiddlewareMatias Menendez
 
Unit8 a1 jaimie walsh
Unit8 a1 jaimie walshUnit8 a1 jaimie walsh
Unit8 a1 jaimie walshwalsha
 
Lectura 3.5 word normalizationintwitter finitestate_transducers
Lectura 3.5 word normalizationintwitter finitestate_transducersLectura 3.5 word normalizationintwitter finitestate_transducers
Lectura 3.5 word normalizationintwitter finitestate_transducersMatias Menendez
 
Lectura 2.3 soa-overview-directions-benatallah
Lectura 2.3   soa-overview-directions-benatallahLectura 2.3   soa-overview-directions-benatallah
Lectura 2.3 soa-overview-directions-benatallahMatias Menendez
 
Lectura 2.1 architectural integrationstylesfor largescale
Lectura 2.1   architectural integrationstylesfor largescaleLectura 2.1   architectural integrationstylesfor largescale
Lectura 2.1 architectural integrationstylesfor largescaleMatias Menendez
 
Logo design
Logo designLogo design
Logo designwalsha
 
Sistema de denúncia de desperdício de água - Etapa de Síntese
Sistema de denúncia de desperdício de água - Etapa de SínteseSistema de denúncia de desperdício de água - Etapa de Síntese
Sistema de denúncia de desperdício de água - Etapa de SínteseCRISLANIO MACEDO
 
Lectura 2.5 don t-just_maintain_busin
Lectura 2.5   don t-just_maintain_businLectura 2.5   don t-just_maintain_busin
Lectura 2.5 don t-just_maintain_businMatias Menendez
 

En vedette (10)

Best practice business analyse (KAM201302)
Best practice business analyse (KAM201302)Best practice business analyse (KAM201302)
Best practice business analyse (KAM201302)
 
Lectura 2.2 the roleofontologiesinemergnetmiddleware
Lectura 2.2   the roleofontologiesinemergnetmiddlewareLectura 2.2   the roleofontologiesinemergnetmiddleware
Lectura 2.2 the roleofontologiesinemergnetmiddleware
 
Unit8 a1 jaimie walsh
Unit8 a1 jaimie walshUnit8 a1 jaimie walsh
Unit8 a1 jaimie walsh
 
Lectura 3.5 word normalizationintwitter finitestate_transducers
Lectura 3.5 word normalizationintwitter finitestate_transducersLectura 3.5 word normalizationintwitter finitestate_transducers
Lectura 3.5 word normalizationintwitter finitestate_transducers
 
Lectura 2.3 soa-overview-directions-benatallah
Lectura 2.3   soa-overview-directions-benatallahLectura 2.3   soa-overview-directions-benatallah
Lectura 2.3 soa-overview-directions-benatallah
 
Lectura 2.1 architectural integrationstylesfor largescale
Lectura 2.1   architectural integrationstylesfor largescaleLectura 2.1   architectural integrationstylesfor largescale
Lectura 2.1 architectural integrationstylesfor largescale
 
Logo design
Logo designLogo design
Logo design
 
Sistema de denúncia de desperdício de água - Etapa de Síntese
Sistema de denúncia de desperdício de água - Etapa de SínteseSistema de denúncia de desperdício de água - Etapa de Síntese
Sistema de denúncia de desperdício de água - Etapa de Síntese
 
Lectura 2.5 don t-just_maintain_busin
Lectura 2.5   don t-just_maintain_businLectura 2.5   don t-just_maintain_busin
Lectura 2.5 don t-just_maintain_busin
 
Aprendizaje visual
Aprendizaje visualAprendizaje visual
Aprendizaje visual
 

Similaire à Lectura 2.1 architectural integrationstylesfor largescale-editable_pdf

A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLESA COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLESijfcstjournal
 
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLESA COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLESADEIJ Journal
 
Coupling based structural metrics for measuring the quality of a software (sy...
Coupling based structural metrics for measuring the quality of a software (sy...Coupling based structural metrics for measuring the quality of a software (sy...
Coupling based structural metrics for measuring the quality of a software (sy...Mumbai Academisc
 
Various Approaches Of System Analysis
Various Approaches Of System AnalysisVarious Approaches Of System Analysis
Various Approaches Of System AnalysisLaura Torres
 
Reverse Engineering for Documenting Software Architectures, a Literature Review
Reverse Engineering for Documenting Software Architectures, a Literature ReviewReverse Engineering for Documenting Software Architectures, a Literature Review
Reverse Engineering for Documenting Software Architectures, a Literature ReviewEditor IJCATR
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxKarthigaiSelviS3
 
Technical Architecture
Technical ArchitectureTechnical Architecture
Technical Architecturescmiyer
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and DesignRa'Fat Al-Msie'deen
 
Is The Architectures Of The Convnets ) For Action...
Is The Architectures Of The Convnets ) For Action...Is The Architectures Of The Convnets ) For Action...
Is The Architectures Of The Convnets ) For Action...Sheila Guy
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfputtipavan23022023
 
Oracle AIA - Does it deliver on it's integration promise?
Oracle AIA - Does it deliver on it's integration promise?Oracle AIA - Does it deliver on it's integration promise?
Oracle AIA - Does it deliver on it's integration promise?Revelation Technologies
 
term paper for cbd models
term paper for cbd modelsterm paper for cbd models
term paper for cbd modelsSukhdeep Singh
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part iBisrat Girma
 
Presenting an Excusable Model of Enterprise Architecture for Evaluation of R...
Presenting an Excusable Model of Enterprise  Architecture for Evaluation of R...Presenting an Excusable Model of Enterprise  Architecture for Evaluation of R...
Presenting an Excusable Model of Enterprise Architecture for Evaluation of R...Editor IJCATR
 

Similaire à Lectura 2.1 architectural integrationstylesfor largescale-editable_pdf (20)

SA_UNIT_1.pptx
SA_UNIT_1.pptxSA_UNIT_1.pptx
SA_UNIT_1.pptx
 
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLESA COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
 
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLESA COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
 
Coupling based structural metrics for measuring the quality of a software (sy...
Coupling based structural metrics for measuring the quality of a software (sy...Coupling based structural metrics for measuring the quality of a software (sy...
Coupling based structural metrics for measuring the quality of a software (sy...
 
Various Approaches Of System Analysis
Various Approaches Of System AnalysisVarious Approaches Of System Analysis
Various Approaches Of System Analysis
 
Unit2 2
Unit2 2Unit2 2
Unit2 2
 
Reverse Engineering for Documenting Software Architectures, a Literature Review
Reverse Engineering for Documenting Software Architectures, a Literature ReviewReverse Engineering for Documenting Software Architectures, a Literature Review
Reverse Engineering for Documenting Software Architectures, a Literature Review
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
 
Technical Architecture
Technical ArchitectureTechnical Architecture
Technical Architecture
 
3 analysis and design overview
3 analysis and design overview3 analysis and design overview
3 analysis and design overview
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and Design
 
Is The Architectures Of The Convnets ) For Action...
Is The Architectures Of The Convnets ) For Action...Is The Architectures Of The Convnets ) For Action...
Is The Architectures Of The Convnets ) For Action...
 
Software Patterns
Software PatternsSoftware Patterns
Software Patterns
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
 
Oracle AIA - Does it deliver on it's integration promise?
Oracle AIA - Does it deliver on it's integration promise?Oracle AIA - Does it deliver on it's integration promise?
Oracle AIA - Does it deliver on it's integration promise?
 
Unit 2
Unit 2Unit 2
Unit 2
 
term paper for cbd models
term paper for cbd modelsterm paper for cbd models
term paper for cbd models
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
 
Presenting an Excusable Model of Enterprise Architecture for Evaluation of R...
Presenting an Excusable Model of Enterprise  Architecture for Evaluation of R...Presenting an Excusable Model of Enterprise  Architecture for Evaluation of R...
Presenting an Excusable Model of Enterprise Architecture for Evaluation of R...
 
Slides chapter 9
Slides chapter 9Slides chapter 9
Slides chapter 9
 

Dernier

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Dernier (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

Lectura 2.1 architectural integrationstylesfor largescale-editable_pdf

  • 1. Architectural Integration Styles for Large-scale Enterprise Software Systems Jonas Anderson, Pontus Johnson f Dept. o Industrial Information and Control Systems, KTH, Royal Institute of Technology Osquldas vag 12, SE - 100 44 Stockholm, SWEDEN Gonasa, pontusj} @ics.kth.se Abstract A predominant problem in the management of largescale enterprise software systems is application integration. Despite the considerable efforts spent on the development of new standards and technologies f o r software interoperation, the integration of systems that originally were not designed io interact with each other is f a major undertaking, requiring in-depth knowledge o existing systems, incorporation of integration products, and development and/or parameterization of various kinds of adapters and gateways. This article presents the concept of architectural integration styles, i.e. architectural styles describing software structures of integration solutions f o r enterprise software systems. The article further proposes an approach f o r selection of styles based on the characteristics of the existing software applications and the desired quality attributes of the integrated system. A number of architectural integration styles f o r enterprise systems are presented in the article, and a case study o the style selection process applied to a mid-sized f Swedish electricity retailer is described. 1. Introduction Integration of software systems has during the last decades become one of the most important, as well as resource consuming, activities in enterprise software system management. Enterprise software systems are typically composed of a mix of legacy, custom, and commercial-of-the-shelf software, and characterized by large-grained, heterogeneous and unmodifiable components, and heterogeneous connectors. As a result of the increasing focus on system integration, there is a growing market for software integration products and standards. The once fairly clear market division has recently been blurred by component technologies and standards like CORBA [20], COM [9], and Enterprise JavaBeans [171 incorporating more and more services. Typical integration solutions are exemplified by remote method invocation, message 0-7695-1345-X’01/$10.00 0 2001 IEEE queuing systems, transaction management systems, message brokers, adapters, and database connectivity solutions [7] [16] [21] [22]. This article considers architectural styles [14] as a means for design of integration solutions for enterprise software systems. The article argues that architectural styles on the level of enterprise software systems can be used as generalizations of common integration solutions, much in the same way that styles and pattems are used in traditional software architecture and design. In other words, architectural integrations styles may be seen as generalizations of historically successful solutions to common problems. The perhaps most interesting part about architectural styles is that they are believed to impact software quality attributes. Certain styles are more appropriate than others for achieving certain quality attributes in a system. It is consequently desirable to classify “good” architectural styles and employ them when certain goals are sought. There are, however, a number of differences between traditional software systems and enterprise software systems that need to be taken into consideration. The article assumes that the components of enterprise software systems are unmodifiable. This is not always the case, but whether it is or not, on the enterprise system level, it is almost always desirable to construct non-intrusive integration solutions, justifying the view of components as unmodifiable. As a consequence, the article examines enterprise software architecture from the aspect of systems integration. This focus delimits the problem nicely, permitting a structured analysis based on a manageable number of variables. 1.1. Purpose of the article The purpose of the article is to propose an approach for selection of integration solutions, based on architectural integration styles for enterprise software systems. To promote this, a structure for describing architectural integration styles is presented. To firther strengthen the feasibility of the approach, a number of architectural styles are presented. The approach and the presented styles are subsequently considered in the context of a 224
  • 2. systems integration project in an energy company on the Swedish energy market. 1.2. Definitions Below, some in the article recurring terms are defined. Architectural style. Before describing architectural integration styles for enterprise software systems, we need to define architectural styles in general. According to Alexander et al. [I], reiterated by Gamma et al. [12], a pattern “describes a problem that occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice”. According to Bass et al. [5], an architectural style is the same thing as a system pattern (to be differentiated from design and code patterns). Bass et al. define architectural styles (or system patterns) as 1) a set of component types, 2) a runtime topological layout of these components, 3 ) a set of semantic constraints, and 4) a set of connectors. Enterprise software system. The total interconnected system of systems and applications within an organization. Thus, in an enterprise software system, software systems that from a vendor view may be considered as large and complex, are in an enterprise software system considered as components. Enterprise software architecture. The model description of an enterprise software system, consisting of more or less structured and/or explicit descriptions of the source (present), intermediate, and target (intended) architectures. In addition, technically outdated but commonly business critical and/or inadequately documented source architectures are commonly termed legacy enterprise software architectures. This article advocates architectural integration styles as a prominent part in such architectural descriptions. Accordingly, components in these different architectural descriptions are termed legacy, source, intermediate, and target components. Architectural integration style. An architectural integration style is in this article used to denote a generalization of a historically successful integration solution on the level of enterprise software systems. Integration styles are further elaborated on in the remainder of the article. Base components. The term base component refers to the original components introduced for hnctional rather than integration purposes. Contributing to the selection of base components are legacy components, available packaged components, organizational needs, and business vision. In this article, the base components are considered as the main building blocks in the architectural integration styles. 1.3. Outline of article Section 2 discusses the main differences between traditional single-vendor software systems and enterprise software systems. Section 3 presents a structure for describing architectural ‘integration styles for enterprise software systems as well as the rationale for using such a structure. In Section 4, a number of architectural integration styles for enterprise software systems are described. Analyzed styles include the gateway style, the adapter style, the point-to-point style, the mediator style, the message router style, the database federation style, and the desktop integration style. Section 5 presents a case study of the selection of architectural integration style for an enterprise active on the Swedish energy market. The styles in Section 4 are considered in the context of an extensive application integration project. Section 6 concludes the article with a discussion on the findings of the research. 2. Large-scale enterprise systems To support the article’s attempt to use the concept of architectural styles on enterprise software systems, this section presents the main differences between singlevendor software systems and large-scale enterprise software systems. The main themes of the differences stressed in this article are the latter system level’s heterogeneity of interconnected architectural entities, and the strive for maximizing the use of packaged software, thus limiting cost and risk, but also the degree of freedom regarding changes and replacement of components compared to custom development. Hence, the architectural design space for enterprise software systems becomes rather discrete in terms of feasible design alternatives, and the share of the total effort spent on the parameterization and adaptation of components and connectors is considerably larger. The total enterprise software system in a medium-sized enterprise may comprise of more than a hundred interconnected components with different degree of interaction [8]. Traditionally, systems have been developed and customized from scratch in order to fulfill the specific requirements for one organization. Some notable characteristics of the elements in an enterprise software architecture are briefly highlighted below [3]. Components are large-grained. Enterprise software components reflect the chunks of software that the organization wishes to makes explicit in order to maintain a high level of freedom regarding the quality attributes focused upon. Thus, enterprise software components are often fairly large-grained, as they tend to reflect available packaged software components, legacy software components, and management goals. For instance, 225
  • 3. complete systems such as customer information systems and geographical information systems might be considered as components in enterprise software architectures [ 161. The supply of packaged components is limited. The number of on the market available large-grained components is always limited. Often components with the desired hnctionality do not exist, forcing enterprises to either develop those components from scratch or combine packaged software to fulfill the requirements of the component. The legacy architecture constitutes the starting point of the system development effort. Enterprises have to take their legacy software components under consideration. These components often constitute a significant asset that may not be easily replaceable without severe disturbances to the business operations [6]. The enterprise software system may contain both data and functional redundancy. The use of packaged components increases complexity since those components rarely correspond completely to the organization’s requirements. In order to grasp the bulk of the requirements, different packaged components are combined with custom-developed components, such as adapters, wrappers, and gateways [6] [ 161, often resulting in both functional and data redundancy. Data and hnctionality can also be virtually redundant, i.e. similar but not identical, causing further inconsistencies in enterprise databases [4]. Components are not modifiable. Since enterprise software systems to a large extent consist of packaged software, changes to the system cannot be performed directly on the base components. Normally, the source code is not available, and if it were, changes might violate the components’ commercial status as packaged software. Therefore, changes to the system are preferably handled indirectly, either by influencing the software vendor to adapt its packaged product in coming releases, or by implementing non-intrusive modifications, e.g. by wrapping the component in order to change its external behavior. Components are heterogeneous. In an enterprise software system that to a large extent is composed of the combination of packaged and legacy components from a wide range of vendors, epochs, and intended purposes, uniform system components normally proves hard, costly, and often even inappropriate to realize. Connectors are heterogeneous. Connectors in an enterprise software system are by nature diverse since their main purpose is to glue heterogeneous components together. Moreover, connectors do not only interface with other components within the same enterprise software system, they also provide interfaces to other organizations’ software systems bringing even more heterogeneity into the enterprise’s total battery of connectors. 3. Describing architectural integration styles for enterprise software systems Traditional development is a creative process where the components are defined and the functionality is determined and allocated along with the selection of architectural style. Because of these parallel processes, the degrees of freedom are innumerous, making controlled decision processes hard to implement. When developing integration solutions of the kind discussed herein, the components are unmodifiable and the functionality is determined and allocated beforehand. These limitations make it far easier to structure the process of style selection. Assuming that the main style selection process starts after the base components have been chosen, this article proposes that selection of architectural styles for enterprise systems can be based on the characteristics of the individual base components and the desired quality attributes of the resulting system. In other words, applying an architectural style on a certain set of components yields some specific quality attributes. To relate this to Alexander et al. [I] and Gamma et al. [12], the problem is described as a set of components and a set of desired quality attributes while the solution is the style definition. This is not a new definition of styles but a reformulation adapted for architectural integration styles for enterprise software systems. To make the style selection process straightforward, styles need to be described in three parts. Firstly, the style must be defined. Secondly, the constraints that the components are subject to (these are part of or consequences of the style definition) should be described. Finally, the quality attributes that the resulting system displays need to be examined. Perhaps the most problematic issue with architectural styles, whether they are limited to enterprise software systems or not, is the identification of all the relevant component constraints and resulting quality attributes. In this article, a basic set will be considered without claiming any kind of completeness. Below, we present the basic parts of a style description. 3.1. Style definition In the proposed style description, the definition is thus expressed as one or several constraints on components, connectors, semantics or topology. These defining constraints may imply other constraints (e.g., a constraint on connectors is often also a constraint on the component 226
  • 4. interfaces). In the style definition, the primary constraints are described. 3.2. Quality attributes Architectural styles are principally believed to impact quality attributes of the resulting system [IS]. The resulting characteristics are therefore described in terms of “ilities” [19]. As such, a number of quality attributes are considered in Table 1 . The table is by no means a complete account of quality attributes, and the hierarchical division is not claimed to be the only possible division. Perhaps the most obvious component constraint relates to the component types allowed by the architectural style (stand-alone components, database components, etc.). There are also a number,of constraints related to the things that one component needs to know or manage about a collaborating component. This includes collaborator location and availability, information such as transfer protocol [IO], data format [18], schema, and content (including method signatures and interfaces) as well as architectural assumptions [ 1 I ] [ 131. Furthermore, there may be constraints on the types of access that the component must provide, e.g. interface access to the database, to the application logic, or to internal objects of the component. Interfaces can furthermore be subdivided into full-service, limitedservice, and controlled interfaces [ 161. 3.4. Organizing styles Styles are related to each other in several different ways and a clear organization of proposed styles may help both in the use of and in the proposition of new styles. The two most important relations are the sub-style and uses relations. A sub-style is constructed by adding constraints to its parent style (or meta-style). A uses relation indicates that one style typically uses another style. components accessibility User functionality accessibility I I Adapter How much of the functionality that is accessible to the end-users. Point-to-Point Table 1. Quality attributes Also note that most quality attributes are directional (the more of the quality attribute the better); a style that improves many quality attributes is better than a style that only improves one. Also, the easier it is to combine a style with other styles without affecting the quality attributes (the more orthogonal the styles are), the better it is. 3.3. Component constraint dimensions Component constraints are either part of, or results of, the style definition. As argued before, however, it makes sense to express these constraints separately and in more detail in the case of integration of unmodifiable components. Connectors are treated more en passant since they are not decided on beforehand. Figure 2. “Uses”and sub-style relations between presented architectural integration styles. Another way of relating styles is by the type of architectural constraints that they impose. On the topmost level, constraints maybe divided into component type, connector, topological, and semantic constraints. A third set of dimensions for relating styles are the quality attributes that they supposedly support. Particularly interesting to note is that the quality attributes of the styles are most easily expressed using a comparative approach, since it is difficult to e.g. express the scalability of one style without referring to another style. 227
  • 5. L L ------ r----- I Source I I J L - % -', Target Amiication -----I I I Application I I +I i- Component L----- The Screen-Scraping, Application, and Database Gateway Style The Desktop IntegrationStyle The Message Router Style m Component Component Component The Database Federation Style The Point-to-Point Style The Adapter Style Figure I Architectural integration styles. Note that the gateway, the desktop integration, the message router, . and the database federation architectural integration styles all are sub-styles to the general mediator style. Therefore, the mediator style is not explicitly illustrated in the figure. 4. Examples of architectural integration styles In this section, a number of architectural integration styles for enterprise software systems are presented. The styles are diverse and are not selected based on any specific principle. Each style is described according to the structure discussed in the previous section, including a style definition, supported quality attributes, and component constraints. The considered styles are the gateway style, the adapter style, the point-to-point style, the mediator style, the message router style, the database federation style, and the desktop integration style. 4.1. The gateway style The gateway style summarizes many ideas behind the system migration approach of gradually altering complex software system, e.g. summarized in [6]. Consequently, the purpose of the gateway style is to allow direct integration between two systems on the data or application logic level. These two systems are normally referred to as the source and target enterprise system. The gateway style assumes that at least the source system is composed of a database component, an application logic component, and a user interface component. However, these may or may not be separable (and whether they are often determines the gateway sub-style employed). As is shown below, gateways come in many colors and forms. Style definition. The gateway style is defined by the introduction of a component for direct interface mapping between a source and a target system. The style is divisible into several sub-styles based on the type of source systems and the means for communication. A database gateway encapsulates a database from the application logic in the source component by providing a new database management interface suited for the target component. Application gateways, or adapters, encapsulate the application logic and the data by providing the source component with an application interface compatible with the target component. The screen scraper gateway is an application gateway that connects to a (legacy) source component by tapping into the data stream originally intended for the terminal. As the name implies, the static gateway binds the interfaces at design-time, while the dynamic gateway allows runtime binding. A thin gateway provides nothing but interface binding, while a thick gateway also includes transformation of data format and schema. 228
  • 6. The gateways may offer forward translation of calls and data from a source component to a target component and/or reverse translation from a target component to a source component. Quality attributes. The gateway style is intended to provide integration of methods and data in a non-intrusive manner. Component accessibility is therefore the main benefit of the style. Database gateways have no effect on functionality accessibility while application gateways may or may not improve data accessibility. A static gateway makes the integrated system less modijiable than a dynamic gateway because minor changes in any base component may necessitate a change in the gateway. Dynamic gateways are designed to manage some of these changes run-time. Dynamic gateways may further increase the modifiability by selfparameterization through probing of the base component when first connected. For database gateways, forward translation facilitates the accessibility of source data and functionality for the target system, whereas the reverse translation primarily addresses the issue of data consistency. Given that the gateway is well implemented, it will have moderately negative effects on performance, and no effects on reliability or security per se. However, e.g. reliability and security of the integrated system may be compromised by unmanaged architectural assumptions. Components. The database gatewqy requires the separation of the source database from the rest of the source component as well as access to the database. On the back-end, the gateway interfaces with the database and on the front-end, it interfaces with the application logic of the target component. The application gateway requires the separation of the user interface and the rest of the source component as well as access to the application logic. The back-end interfaces with the source component’s application logic while the front-end interfaces with the target component’s user interface and/or application logic. The back-end of the screen-scraper gatewa-v interfaces with the source component’s application logic. As with all application gateways, the front-end interfaces with the target component’s user interface andor application logic. The whole point of the gateway style is to let both the target and source components remain oblivious of its counterparts’ interfaces, data formats, locations, etc., as well as of the specificities of the gateway. 4.2. The adapter style interfaces. It is closely related to the gateway style; it is however presented as a style in its own right because of its common usage. Style definition. The style introduces a component between a mediator, for instance a message router, and a base component, for interface binding and transformation. As for gateways, static adapters bind the base component interfaces at design-time, while dynamic adapters allow runtime binding. The thin adapter provides nothing but interface binding, while the thick adapter also includes transformation of data format and schema. Centralized adapters run on the same node as the mediator (and possibly even in the same process space) and are normally thin. Distributed adapters on the other hand reside both on the source and the target node and are normally thick. Quality attributes. The characteristics of adapters are the similar to those of application gateways. Their main benefit is thus component accessibility of functionality and data. A drawback is that adapters often need to be modified when the source application is upgraded (this is more true of thin and static adapters than of thick and dynamic). Distributed adapters have the advantage of closeness to the source or target component, making it easier to supervise and control the application, e.g. restarting it, capturing events, etc. Also, coordination of the interaction between the mediator and the source or target component is easier dealt with when the adapter resides on both sides of the communication. Components. On the one end of the adapter, a base component is located, and on the other sits a mediator component (e.g. a message router). The base component does not need to have any information about the mediator, while the mediator needs to mange information about the adapter’s location, availability and possibly also the base components (and adapters) architectural assumptions. If the adapter is thin, the mediator may also need to know the data format and schema of the base component’s data (although it might just pass the problem of data interpretation on to the collaborators). The base component needs to expose its application logic interfaces either (and preferably) as APls, or through screen-scraping. If the base component does not expose functionality in a (for integration purposes) reasonable manner, this will likely become a major concern for the whole integration process. The purpose of the adapter style is to allow integration between mediators (such as message routers) and base components. The style provides a binding and transformation between mediator and base component 229
  • 7. 4.3. The point-to-point style The point-to-point style is perhaps the simplest style to implement for small systems, featuring as direct communication between components as is possible. Style definition. The main conceptual feature of this style is that all inter-component communication is direct or when necessary, via (thin) gateways, i.e. each component is connected using static binding to those collaborators with which it needs to communicate. There are many sub-styles of the point-to-point style. These include synchronous or asynchronous point-topoint, queued, or direct point-to-point. Quality attributes. The style can be used for limited both user and inter-component data access as well as for limited user and inter-component function access. The accessibility may be limited since a target component or graphical user interface (GUI) may not be designed to invoke functions offered by a source component. The common functionality and data is thus reduced to the least common denominator of the interconnected base components. The style is easily implemented for systems with a small number of components but quickly becomes unwieldy as the number of components increases, since the number of connectors increases rapidly. Hence, the point-to-point style does not scale well. In the worst case, the number of connectors becomes n(n - I ) ,where n is the 2 number of components. Furthermore, the more heterogeneous the component interfaces are, the more gateways are needed. The style may also result in a weak security system. If the components have different security standards, these may be highly problematic to integrate, in the worst case these need to be negotiated as many times as there are connectors. Further, the style is not very efficient for managing data consistency, since this requires all affected components to be notified when data changes in one component. Since users may change data in all systems (no single point of data entry), all components must be able to notify all other affected components of the data change and all must be able to accept and act on such notifications. Components. The components in the point-to-point style need to be active stand-alone components. Since all intelligence is located in the base components, they need to be more or less compatible from the start. For instance, one component must be designed to ask for certain data and another to be able to provide it. Integrating a component that is based on the assumption that the communication is synchronous with a component with an asynchronous assumption may further cause difficulties, which indicates potential problems of transfer protocols. As indicated above, the more similar the components are (as to GUIs, security standards, etc.), the easier they will be to integrate. This goes for most styles, but becomes particularly pertinent in this case because of the rapid growth of integration surfaces as the number of components increases. The style does not include directory services or other mediators, which means that the components need to have (certain knowledge about their collaborators. They need to know the location of the collaborators, the interface signatures, data formats and schemas, they need to be able to manage temporary unavailability of collaborators, etc. Some of these issues may however be managed using gateways. Finally, the components need to provide access to the relevant data and functionality through application interfaces. 4.4. The mediator style The mediator style features a central component implementing services to simplify integration. All styles presented below are sub-styles to the mediator style. Style definition. The main feature of the mediator style is the introduction of a new central component providing services facilitating integration. These services may include load-balancing services, transformation services, routing services, etc. In the middle-tier mediator sub-style, client components are located on one end of the mediator and server components on the other. In the peer-to-peer mediator sub-style, all components may act as clients or servers. In the hub mediator sub-style, all traffic is directed through the mediator, and no additional point-to-point connections are allowed between components. Quality attributes. The characteristics of the mediator style vary markedly depending on the services provided by the central component. However, the centralized topology of the style, and in particular the strict rules of the hub mediator sub-style, may have effects on the reliability, providing a single point of failure; on scalability, minimizing the number of connectors; on security, permitting the deployment of a centralized authorization and access control system; on accessibility, providing a single point of information exchange; and on performance, in particular for the middle-tier sub-style, permitting distribution of loads among servers. Just as with the point-to-point style, the accessibility may be limited if target components or GUIs are not designed to invoke functions offered by source components. The common fhctionality and data is thus reduced to the least common denominator, implying that the style is best suited for similar components. 230
  • 8. Components. Components can be of any kind in the general mediator style. Sub-styles do however normally limit the options. All components need to be designed for interaction with the mediators. In many cases, however, adapters can provide these capabilities. 4.5. The message router style The message router style allows components to remain unaware of the specific locations and availability of their collaborators. Style definition. The message router is a hub and peer-to-peer mediator style with a central component that directs information between the base components based on the content or source of the information. All intercomponent communication is routed through the central component. A message queuing service is typically provided by the message router. Quality attributes. The message router reduces the complexity and thus scalability problems of the point-topoint style topology. The previous worst-case scenario of n! connectors (where n is the number of interconnected components) is reduced to a worst case of n connectors, since all base components communicate via the mediator. As with all mediator styles, a single-point-of-failure may decrease reliability. The message queuing service may however increase durability of information if persistent storage is provided. Authentication and access control can be provided as additional services on top of the message router. Encryption must be provided at the component level for message protection. Accessibility is similar to the point-to-point style. Components. The components in the message router style are typically stand-alone components. The style requires that the transmitting components know the address, availability, transfer protocol, and interfaces of the router. If the components are not designed to communicate with the router, adapters may be employed. The availability of the recipients normally becomes unimportant for the sender because of the message router’s queuing service. The sender needs to know only the data representation format and content expected by the recipient. Severe performance problems may occur if a component is designed for direct synchronous communication, since the message router is based on an asynchronous communication model. The calling component may, e.g. block its execution waiting for the competition of a request sent to an unavailable server component while the message router queues the message without generating errors. These problems are, however, not unique for the message router style. Components need to be able to send and receive messages. Adapters can often package API calls as messages if the component does not provide this capability. 4.6. The database federation style The database federation style is employed in order to integrate heterogeneous databases and to provide a unified view of their contents to the database users. Style definition. The style is a middle-tier mediator style; the back-end of the central component is connected to several databases while the client-end provides a uniform interface to client applications, creating a virtual database model containing the information of the source databases. The virtual database may also be physically replicated creating a data warehouse sub-style. Quality attributes. The database federation style is mainly aimed at improving data accessibility, isolation, and consistency. The centralized control over the data stores makes these objectives feasible. Modifiability is improved in the sense that new client applications only need to adhere to one database management system interface, and new databases only need to interface to the central component. Security is easier to implement than in the point-to-point style because of the single-point-ofentry. The vulnerability is however also increased because of the single-point-of-failure. Components. The back-end components of the database style are database management systems of various kinds. These components need not know anything of the collaborating components and they may in principle feature any DBMS interface. The client-end components are stand-alone components and need to know everything (address, interface formats, etc.) about the mediator component, but nothing about the back-end databases. They need to access the central unit but need not necessarily provide any interfaces of their own. 4.7. The desktop integration style The desktop integration style offers a pragmatic alternative to more ambitious approaches to integration by employing the user interface as the main point of integration. The main usage of this style and its obvious advantages are for the rapid deployment of new user interfaces without changing the bulk of the underlying components, e.g. for giving a new look-and-feel to legacy systems or to provide a unique user view for a specific purpose. Further, the user interface component may be supplemented with a gateway component to increase the inter-component interaction. Style definition. The desktop integration style is a mediator style where a new user interface is employed as integrator of disparate stand-alone components. 23 1
  • 9. Depending on whether the interface component is thin or thick, the style may also provide gateway functionality in terms of function and data synchronization between components. The thin desktop integration sub-style introduces no new functionality, simply visualizing the components functionality and data in a new user interface. The thick desktop integration sub-style adds an active component providing some gateway fimctionality to the solution. Also, new functionality may be introduced using the GUI as the gateway mediator. Quality attributes. The thin desktop integration substyle provides user accessibility to both functionality and data. If the interface is well implemented, the user is able to perform the same functions and access the same data using the new interface as by using user interfaces of all the base components. Components cannot however, access functions and data of the other components; all inter-component interaction must be mediated by the user. Data consistency, atomicity, isolation, durability, and security are not managed by the sub-style. Introducing a new component or upgrading an existing one may necessitate redevelopment of the user interface. Furthermore, the usability of the system is probably poor since the user faces several applications in one GUI. Introducing a gateway component, the thick desktop integration sub-style improves the component accessibility of both functionality and data. The gateway may for instance be used to manage data consistency or security between the base components. Dependencies introduced in terms of static bindings to underlying components may, however, require that changes in components, either directly or by hard-detected side effects, must be reflected in GUI. Hence, complexity and upgradeability are inflicted. Components. The components connected to the thin interface are stand-alone components. Typically these components are in themselves complete application systems with a database, application logic and a user interface. The user interfaces of all of the components are replaced with the new CUI. The base components need not manage any information about the other base components, the user interface and the optional gateway do however need to be aware of the locations, interfaces, availability, etc. of the base components. 5. Application of architectural integration styles This section exemplifies the use of some of the architectural integration styles previously described. The example is based on a participatory case study of the acquisition of a business system for a mid-sized electricity retailer, active on the deregulated Scandinavian energy market. Architectural integration styles may be utilized in several ways. To select a suitable style for a given scenario, the base components need to be described and the desired quality attributes of the resulting system need to be specified. Having completed this description, the characteristics of the base components can be compared to the component constraints of the different architectural integration styles and the desired quality attributes can be compared to the attributes supported by the architectural integration styles. These comparisons reveal the style that best suits the base components and the desired quality attributes. Because of the high cost associated with custom development, the most preferred styles need to be compared with the products available on the market to determine which parts of the integration solution that can be procured as third-party products and which parts that need to be custom developed. 5.1. The initial scenario The enterprise under study was recently formed by the merger of the energy sales departments of five municipality-owned electric utilities into one organization. As a consequence, five completely disparate organizations had to be integrated without a single day out of operation. The functional areas for the target architecture were sales and marketing, customer relations, electricity trading, new interfaces towards customer and partners (e.g., Swedish national grid, large customers, and banks), and basic administration (e.g., billing). In some of the hnctional areas, one or several legacy systems were already in operation, while other functional areas totally lacked system support. In order to quickly reap some of the benefits of the merger while maintaining business operations, rudimentary scripts andor spreadsheet applications were used as temporary solutions for the exchange of information between the legacy components and the compilation of this information. However, the degree of automation was low, demanding considerable manual intervention to provide a reasonable flow of operations. This case has previously been discussed from an enterprise architectural analysis process perspective in [3], and from the perspective of strategic information systems planning in [2]. Base system. The resulting enterprise software system consisted of five different sets of geographically distributed legacy enterprise software systems (to maintain a consistent terminology, the legacy systems are hereafter called components). The enterprise software system thus contained a complex collection of legacy systems (especially with regard to the large and complex databases) and extensive use of large-grained packaged 232
  • 10. components, such as customer information systems, billing systems, energy settlement systems, and sales support systems. Furthermore, the system revealed nonmodifiable, heterogeneous components, overlapping data and functionality, and rudimentary and heterogeneous connectors ranging from object brokers to the exchange of flat files. The legacy components were based on four significantly different approaches; two installations were minicomputer-based customer information systems, one was based on an outsourced mainframe solution, one was a small-scale client-server type of system, and one installation was a large-scale bespoke developed clientserver system. All but the bespoke developed system were packaged applications that were also used by several other energy companies, and consequently maintained and upgraded in regular releases. None of the legacy components were designed to interoperate with other applications. All provided limited data interfaces, allowing reading of database data but not writing, and only one component provided an application programming .interface (API), the remaining components application logic only accessible by means of screenscraping. Only the bespoke component was designed to use external services for locating and managing availability of collaborators. All components featured proprietary data formats and schemas. The one component that featured an API did not conform to any wellestablished standard. Initial architectural style. Describing the initial system in any specific architectural style is most straightforwardly done in terms of the point-to-point style, since most connectors provided simplistic one-to-one connections (heavily relying on file transfer). Message passing and data formats were constructed ad-hoc by the use of proprietary formats, with the exception of settlement measurement data that was expressed in an Electronic Data Interchange (EDI) format derivate, and that was based on a message routing product. As message passing was asynchronous and batch-oriented, i.e. files were transferred regularly for instance once every 24Ih hour or weekly, transaction atomicity was poor. Moreover, since enterprise data were distributed on several databases (and in several cases redundant), dhta consistency was inadequate. Before the company merger, the components, their interconnections, and the data managed in the architecture were of limited number and size. Hence, given the limited complexity the point-to-point style proved adequate. But, the company merger called for a more coherent view of the new organization’s total enterprise software architecture. Since new connectors and adapters had to be applied for every new inter-component interaction, complexity accelerated with each additional component introduced into the architecture. In the remainder of this section, the process for selecting feasible design alternatives in terms of architectural styles is hrther elaborated. Desired quality attributes. Starting with the enterprise’s business requirements, high-level quality and functional requirements of the new enterprise software architecture were formulated. This effort led to a refined set of requirements. In that stage of the process, the functional requirements mainly served as the rationale for determining which base components to include in the target architecture. From an initially rather long list of desirable quality attributes, a limited set to focus upon was selected. The quality attributes hereby addressed were modifiability, reliability, accessibility, and performance. 5.2. Architectural integration styles This section exemplifies how architectural integration styles may be employed by demonstrating some of the main design alternatives from the selected case. Some of the design alternatives omitted in this case description circumvented the architectural problem by either outsourcing the complete operation to a service provider or by procuring a turn-key, packaged system that was not intended to be decomposable into smaller components. It is also stressed that some styles, such as the transaction management style and the publishhbscribe style are omitted since they were not reflected in any of the design alternatives in the case study. The investigated styles were Adapter, Desktop integration, Message router, Gateway, and Database Federation. All styles but the first two were used as the basis (solitary or in combination with other styles) for different design alternatives. The adapter and transformer styles played an important role in the implementation of the other styles, but were not considered as primary design drivers; rather, they provided informative constraints on whether the main design alternatives were feasible or not. The presentation order of the styles differs somewhat from Section 4 due to pedagogic reasons. The adapter style. During the style selection process, the styles discussed under the headings below provided the basis for the main design alternatives. Because of the diverse interfaces provided by the base components, prohibiting direct inter-component access to data as well as hnctionality, adapters were considered for all integration styles based on mediators. Adapters do, however, only increase accessibility by binding and transforming interfaces. The limited-service base component interfaces (e.g., allowing database reading but not writing) remain limited even after the introduction of an adapter. In most cases, available adapters were static, i.e. bound to base component interfaces at design-time, 233
  • 11. and thick in order to cope with significantly differing data schemes and formats in source data components. As a result, an important trade-off was between spending resources on data conversion in order to limit the number of concurrent (and redundant) data components, or on implementation and/or parameterization of adapters to pave the way for mediator integration styles. The desktop integration style. From a component view, the main benefit of the desktop integration style is that it is applicable to almost any components. This was also the case for the studied base components. As a first integrating step to create uniform business operations, although the enterprise was spatially distributed, the desktop integration style was considered, since it is designed to improve user accessibility to both data and hnctionality. Both the thin and the thick desktop integration substyles were studied. The thick desktop style, also providing gateway functionality is discussed below together with the gateway style. Application of the thin desktop integration style was considered in order to hastily tie systems together adapting to the new business and organizational requirements, e.g., GUIs that were adapted to a specific user group or business process. In its most simplistic form, the user was considered as the intelligent mediator by allowing the user access to more than one legacy component through the client CUI, e.g. by accessing the underlying systems directly using their native user interfaces (if required using for instance a terminal emulator as adapter/connector), and the functions included in the client GUI, such as “cut and paste” to ensure the proper exchange of data between components. The main advantage of the thin desktop integration sub-style was that it did not require any programming and none, or only sparse, parameterization since the integration functionality was “implemented” through trained users. However, in order to implement the thin desktop integration sub-style, extensive user training had to be carried out due to source components’ heavily diverse user interfaces. Also, it was early revealed that the substyle could not be fully implemented since the users then would have to be fully trained to operate four totally different user interfaces. However, implemented in a limited scale and combined with some organizational changes, the style offered some ease of the burden. But, the design alternative had severe shortcomings as to modifiability mainly in terms of scalability. The message router style. The benefits of a message router style include accessibility and modifiability (mainly in terms of scalability). For two major parts of the source architecture, the message router style was already applied, which provided useful information in the architectural planning process. Firstly, the bespoke developed client-sever application mentioned above employed a commercial message oriented middleware product bolh for interaction between components within the application, and with interconnected legacy enterprise components. However, the experiences from this effort were deterrent. Since the base components were not selected from an integration perspective, information exchange between components could not be controlled and turned out to be both complex and voluminous. Hence, both performance, and reliability suffered. Moreover, the remaining legacy base components were not compatible with the considered message router e.g. as to data formats, data schemas, data interface signatures, or location and availability management. Since these incompatibilities required powerful adapters that were not available on the market, the necessary resources for developing these adapters from scratch became significant. Secondly, as mentioned above, all energy measurement related information was, due to the regulatory framework on the electricity market, exchanged in a common message format (EDlel, an Electronic Data Interchange format derivate) using a packaged message router product. The message router was employed both for internal interactions among components in the enterprise system, and externally to connect to systems located at other energy companies or at the Swedish National Grid authority. For its intended purpose, the message router functioned well, proving itself as a simple, stable and flexible solution. However, its real-time performance was poor and it had limitations in its transfer protocol (e.g. making it unable to provide transaction atomicity). Thus, making this design alternative inappropriate as a generalpurpose message router mediator. The gateway style. Ensuring a high degree of modifiability in terms of both scalability and upgradeability was the prime reason for making use of the gateway style in one of the design alternatives. Legacy considerations, especially with regard to legacy data, were a major consideration throughout the architectural planning process. As a result, the database gateway style was considered, to allow new components to be added or phased out gradually. A contributing factor for this was that several of the legacy components in operation served their purpose well, and the wrapping of these components was initially expected to allow the development effort to be focused on the functionality that lacked or was inadequate in the source architecture. In addition, there were several business and political reasons for management to maintain a freedom of action regarding a gradual transition into a target architecture. The company’s aggressive policy of company acquisitions, mergers and partnerships demanded flexibility in terms of information systems. Accordingly, the style provided means for a gradual reduction in the 234
  • 12. number of redundant components, but also for the incorporation of new components. However, when assessing the availability of third party products to support the integration to the base components’ database management systems, it became evident that these had to be custom developed to a considerable cost and risk (cf. the adapter and transformer styles). An optional design alternative was to consider the legacy/source components as non, or semi-decomposable, and to deploy a combined application and screen-scraper gateway. A distinct advantage with this choice was that it could provide a uniform GUI for users throughout the enterprise, thus providing a single-point-of-entry-data, and (to a limited extent) both reverse and forward translation of information. This would support data consistency, atomicity, and isolation. Moreover, new G U S , specifically adapted to different user groups could be developed, improving both usability and security (in terms of authentication and access control). The style also permitted a limited addition of new components, such as contact center functionality. The main drawback with this style was, however, that in order to provide a uniform interface to several heterogeneous source/legacy components, the gateway would only be able to provide the least common denominator of the functionality and data of the underlying components. Furthermore, the gateway had to be fairly complex and hence both hard and costly to implement and to maintain over time. The database federation style. To provide a one-way forward translation of a sub-set of the data from the source architecture data components, either by providing a virtual database, or by replicating the selected information into a separate data store (data warehouse), a design alternative that employed the database federation style was considered. The benefits of this approach were mainly that it provided reading accessibility to the selected data in the entire organization, e.g. for generating economical statistics. Because of the limited-service interfaces of the base components, write access was not provided on the data level. Moreover, the poor performance of this alternative ruled it out as a method for real-time access of enterprise data. Also from a usability and data consistency perspective, the approach was cumbersome, as changes to data in the source components had to be done through the present legacy GUIs, causing a bothersome situation for the users (cf. the desktop integration style above). 5.3. Results of the style selection process In the planning process, the architectural styles discussed in this section served several purposes. Firstly, styles and patterns are proven solutions to recurring problems; a main benefit is therefore the reuse of historically successful designs. Secondly, they served as a simple intuitive description of different design alternatives that stakeholder found comprehensible. Once overcoming this novel way of describing an enterprise software architecture, the structure provided by the style description and its relatively pure coupling between the style problem, its advantages and disadvantages, together with the style’s relation to other styles were found helpful as a way to promote awareness and communication among stakeholders (e.g. top-management, IT-staff, users, and vendors). Thirdly, design alternatives expressed in terms of architectural styles provided useful input the architectural design by clarifying feasible design choices, thus gradually delimiting the design space. It should here be stressed that initially, the design space seemed rather endless. But as design alternatives were abandoned, both due to legacy architecture considerations, availability of appropriate packaged software, and organizational matters, only a very limited number of alternatives were left to choose between. In the exemplifying case, it was concluded that in the given context, the point-to-point integration style was initially ruled out mainly due to its poor scalability. Despite several attractive properties, the gateway, and the message router style proved too costly and too risky to implement in full scale in the short run, and therefore only constituted feasible solutions in the longer perspective. A paramount reason for ruling out the general mediator styles was the poor availability of COTS adapters. Therefore, since this state of affairs was expected to change as bigger electricity retail companies in conjunction with vendors would contribute to the development of these products, it was concluded that the desktop integration and the database federation styles were the only feasible design alternatives during the foreseeable planning period. Although, tactical rather than strategic to their nature, and with several major weaknesses, the relatively low cost and risk involved in the implementation gave them an decisive advantage over the other considered styles, even if they arguably postponed several strategic architectural design choices. 6. Summary In the article, we propose an approach for selection of integration solution based on architectural integration styles for enterprise software systems. The approach is supported by an adapted structure for integration style description based on the characteristics of enterprise software systems, e.g., non-modifiable components, extensive use of packaged software and legacy components. Integration styles and the proposed structure 235
  • 13. for integration style description is exemplified by a presentation of seven styles. The application of integration styles in the enterprise context is demonstrated in a case study, briefly outlining the architectural planning process, describing the source architecture and presenting a number of design alternatives in terms of architectural integration styles. Styles and patterns are proven solutions to recurring problems; a main benefit is therefore the reuse of historically successful designs. Moreover and due to the limited supply of integration product on the market, the selection of an architectural integration style constitutes a considerable part of the enterprise software system design. Architectural integration styles allow this design process to be conducted on a generalized level, independent of specificities of individual products. Further benefits are due to improved communication between stakeholders and increased awareness of risks, constraints, and opportunities in enterprise architectures. 7 References . Alexander, C., Ishikawa, S., Silverstein, M., Jacobson, M., Fiksdahl-King,I., Angel, S., A Pattern Language, Oxford University Press, 1977. [2] Anderson, J., Cegrell, T., Cheong, K.H., Haglind, M., “Strategic Management of Information Technology in Small and Medium Sized Electric Utilities: Bridging the Gap Between Theory and Practice,” to appear in proceedings of Portland International Conference on Management of Engineering and Technology, 2001. [3] Anderson, J., Johnson, P., “Extending Attribute-Based Architectural Analysis to Enterprise Software Systems, Proceedings of the Third Australasian Workshop on Software and System Architectures, 2000. [4] Anderson, J., Johnson, P., “IT Infrastructure Architectures for Electric Utilities: A Comparative Analysis of Description Techniques”, Proceedings of the 33“/ Hawaii International Conference on Systems Sciences, 2000. [I] ’ [5] Bass, L., Clements, P., Kazman, R., Software Architecture in Practice. Addison-Wesley, 1998. [6] Brodie, M. L., Stonebraker, M., Migrating Legacy Systems: Gateways, Interfaces. and the Incremental Approach, Morgan Kaufmann Publishers, 1995. [7] Brown, A., Large-scale, Component-Based Development, Prentice-Hall, 2000. [8] Cegrell, T.. et.al., “IT Strategy for Electric Utilities: From a Paper Tiger to an Effective Management Tool,” Proceedings of DA/DSM DistribuTech Europe 97, 1998. [ 9 ] Chappell, D., Understanding ActiveX and OLE: A Guide for Developers and Managers, Microsoft Press, 1996. [IO] DeLine, R., Resolving Packaging Mismatch (Ph.D. Thesis), Camegie Mellon University, 1999. [ 11 Gacek, C., Detecting Architectural Mismatch During 3 System Composition (Ph.D. The:j.is), University of Southern California, 1998. [ 121 Gamma, E., Helm, R., Johnson, R., Vlissides, J., Design Patterns: Elements o Reusabk Object-Oriented Software, f Addison-Wesley, 1998. [I31 Garlan, D., Allen, R., Ockerbloom, J., “Architectural Mismatch: Why Reuse is so Hard,” IEEE Software, 1994. [ 141 Garlan, D., Shaw, M., Software Architecture: Perspectives on an Emerging Discipline, Prentice Hall, 1996. [ 151 Kazman, R., Bass, L., Toward Deriving Software Architectures from Quality Attributes, Technical Report CMU/SEI-94-TR-IO,SEI, 1994. [ 161 Linthicum,D., Enterprise Application Integration, Addison-Wesley, 2000. [ 171 Monson-Haefel, R., Enterprise JavaBeans, 2“d Ed., O’Reilly & Associates, 2000. [ 181 Ockerbloom, J., Mediating Among Diverse Data Formats (Ph.D. Thesis), Camegie Mellon University, 1998. [191 Pressman, R., Software Engineering: A Practitioner’s Approach, 5‘hed., McGraw-Hill, 2000. [20] Pritchard, J., COM and CORBA Side by Side: Architectures, Strategies, and Implementations, AddisonWesley, 1999. [21] Ruh, W., Maginnis, F., Brown, J., Enterprise Application Integration: A Wiley Tech Brief; John Wiley & Sons, Inc., 2001. [22] Thomas, A., Selecting Enterprise JavaBeans Technology, Patricia Seybold Group, 1998. 236