1. 5416chFM.qxd 9/21/05 5:35 PM Page i Pro Scalable .NET 2.0
Application Designs Joachim Rossberg Rickard Redler
2. 5416chFM.qxd 9/21/05 5:35 PM Page ii Pro Scalable .NET 2.0
Application Designs Copyright 2006 by Joachim Rossberg and Rickard
Redler All rights reserved. No part of this work may be reproduced
or transmitted in any form or by any means, electronic or
mechanical, including photocopying, recording, or by any
information storage or retrieval system, without the prior written
permission of the copyright owner and the publisher. ISBN:
1-59059-541-6 Printed and bound in the United States of America 9 8
7 6 5 4 3 2 1 Trademarked names may appear in this book. Rather
than use a trademark symbol with every occurrence of a trademarked
name, we use the names only in an editorial fashion and to the
benefit of the trademark owner, with no intention of infringement
of the trademark. Lead Editor: Ewan Buckingham Technical Reviewer:
Jason Lefebvre Editorial Board: Steve Anglin, Dan Appleman, Ewan
Buckingham, Gary Cornell, Tony Davis, Jason Gilmore, Jonathan
Hassell, Chris Mills, Dominic Shakeshaft, Jim Sumser Project
Manager: Beckie Stones Copy Edit Manager: Nicole LeClerc Copy
Editor: Julie M. Smith Assistant Production Director: Kari
Brooks-Copony Production Editor: Lori Bring Compositor and Artist:
Kinetic Publishing Services, LLC Proofreader: Linda Seifert
Indexer: Broccoli Information Management Interior Designer: Van
Winkle Design Group Cover Designer: Kurt Krames Manufacturing
Director: Tom Debolski Distributed to the book trade worldwide by
Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor, New
York, NY 10013. Phone 1-800-SPRINGER, fax 201-348-4505, e-mail
[email protected], or visit http://www.springeronline.com.
For information on translations, please contact Apress directly at
2560 Ninth Street, Suite 219, Berkeley, CA 94710. Phone
510-549-5930, fax 510-549-5939, e-mail [email protected], or visit
http://www.apress.com. The information in this book is distributed
on an as is basis, without warranty. Although every precau- tion
has been taken in the preparation of this work, neither the
author(s) nor Apress shall have any liability to any person or
entity with respect to any loss or damage caused or alleged to be
caused directly or indirectly by the information contained in this
work. The source code for this book is available to readers at
http://www.apress.com in the Source Code section.
3. 5416chFM.qxd 9/21/05 5:35 PM Page iii To Karin Opus, you
will always be with me in my heart Gaston, this one is for you as
well Joachim Rossberg To Jenny & Leah Rickard Redler
15. 5416chFM.qxd 9/21/05 5:35 PM Page xv Foreword T heres no
doubt in my mind that the two authors of this book, Joachim
Rossberg and Rickard Redler, share a wealth of knowledge about the
options Microsoft offers enterprises willing to create applications
on the .NET platform. In this book, they share that wealth of
knowledge with the rest of us. The greatest value from this book
probably comes from the higher priorities given to the breadth than
to the depth of the books different subjects. Its perspective is
that of the strategic architect rather than that of the programmer.
This is also the expressed purpose of its authors; in the books
introduction, they clearly state that the book is focused on design
rather than diving deep into specifics. True to this statement, the
content of the book spans a wide collection of subjects, includ-
ing technologies as disparate as content management, Unified
Modeling Language (UML), Object Role Modeling (ORM), Windows
Operating System versions, Network Load Balancing (NLB), Microsoft
Cluster Service (MSCS), Internet Information Services (IIS), and
SQL Server. Having said that, I must also mention that some of the
books chapters do in fact include surprising levels of detail. This
is especially true in Chapter 4, which covers architecture,
scalabil- ity, availability, and the security of the Windows Server
family, and in Chapter 7, which is about Internet Information
Services. In their discussion of the enterprise application
architecture in Chapter 5, the authors show that they are with the
times; one of their sources of inspiration for this chapter is
Microsofts ref- erence architecture for applications and services,
which was published in December 2002. This chapter presents a
condensed overview of the design patterns first presented by Eric
Gamma et al., otherwise known as the Gang of Four. It also contains
an overview of the typical application layers that together form an
enterprise application, and some useful coding conventions. Mainly,
though, the chapter gives an overview of the different technologies
that Microsoft has made available to an architect designing such an
application, and the pros and cons of each of these technologies.
Its worth noticing that even a subject such as content management
gets fair cov- erage in this chapter. It goes without saying that
web services have a prominent place in the book, having its own
chapter (Chapter 6). This is one of the most information-filled
chapters, including several code examples. It covers not only basic
XML web services, but also SOAP extensions and some of the Web
Services Enhancements that are being standardized. Scalability and
performance are all-pervading themes throughout the book. Each time
the authors present a product or a technology, they also include a
section about how it can affect the performance and scalability of
the application being architected. The book is full of recom-
mendations on which powerful hardware to use under different
circumstances and how best to configure your system. For example,
Chapter 7 gives advice on which performance counters to monitor on
your Web server and which kinds of values you should expect and
strive for. xv
16. 5416chFM.qxd 9/21/05 5:35 PM Page xvi xvi FOREWORD This
book should be especially valuable for those architects, designers,
and developers who are new to enterprise development in Microsoft
environments; this includes both those used to designing and
building smaller-sized applications for Microsoft Windows and those
used to designing and building enterprise-class applications in
other environments such as J2EE. It should also be a fine book for
university classes, because it gives students such a good overview
of the technologies many of them will live with once theyre out of
the university. Joachim and Rickard have all the reason in the
world to be proud of what they have achieved with this book. Sten
Sundblad Microsoft MSDN Regional Director (RD)
17. 5416chFM.qxd 9/21/05 5:35 PM Page xvii About the Authors
JOACHIM ROSSBERG was born in 1967, the year of the Summer of Love.
He grew up in the southeast part of Sweden just outside the small
town of Kalmar. After school he worked for ten years as an
assistant air traffic con- troller in Halmstad on the Swedish west
coast. There he also met his wife, Karin. The urge to learn more
grew stronger, and after some years he started studying psychology.
This led to studies at the University of Gothenburg, where he
finished his bachelors degree in psychology in 1998. During this
time, his interest in computers began, and he switched to studying
informatics instead. After graduating from university in 1998, he
began working in the IT business as a con- sultant at one of the
worlds six largest IT consultancies. After some years there,
rewarding him with great experiences, he decided to try a smaller
company, and is now employed at Know IT Consulting in Gothenburg.
Joachim has during these years been working as a system developer,
system designer, project manager, and infrastructure designer.
Nowadays he mainly focuses on project management, but still keeps
his technical interest alive. He has also, along with Rickard, been
a driver for the Microsoft competence network at Cap Gemini Ernst
& Young. Although he is Microsoft focusedas evidenced by his
MCSE, MCSA, MCSD, and MCDBA certificationshe also works with other
techniques and vendors. Joachim has also had a company on the side
called O.R. Education and Development. This company offered
trainings, conferences, and courses in computer-related areas.
Nowadays these are performed under the flag of Know IT Consulting.
Joachim and Karin live in Gothenburg with their two cats. In his
spare time, he likes to read (anything non-technical), listen to
music, and watch movies (he used to work at two cinemas in Kalmar
in his youth). He also spends a lot of time at the gym, running, or
inline skating. RICKARD REDLER was born in 1973 in town of rebro
located in the middle of Sweden. Early in his life, Rickard
discovered the abstract world of computers when the Sinclair
machine and the Commodore 20/64 were born. From that time on,
computers were a part of his life. During his studies at the
University of rebro, he found that the courses at the university
didnt give him the practical experience nec- essary to be a good
programmer. He therefore decided to run his own company to get
real-life experienceand also to make some money. Although his
company did quite well, in 1997 Rickard decided to become an
employee of Cap Gemini Ernst & Young in rebro. Early on,
Rickard was involved in the competence network at Cap Gemini Ernst
& Young, and when he and his wife, Jenny, later moved to
Gothenburg, Rickard, along xvii
18. 5416chFM.qxd 9/21/05 5:35 PM Page xviii xviii ABOUT THE
AUTHORS with Joachim, became a driver for the Microsoft competence
network at Cap Gemini Ernst & Young in Gothenburg. Even though
Rickard is a Certified Java Developer, these days he is working
more and more with Microsoft technologies, and also holds MCP and
MCSD certifica- tions both in Windows DNA and the .NET platform.
Nowadays Rickard is working for Know IT Consulting in Gothenburg as
architect and developer. When Rickard has spare time outside of
work, he likes to spend it with his wife and their daughter Leah.
He also likes to play his guitar and sing Eric Clapton songs.
19. 5416chFM.qxd 9/21/05 5:35 PM Page xix About the Technical
Reviewer JASON LEFEBVRE is Vice President and one of the founding
partners of Intensity Software, Inc. Intensity Software
(http://www.intensitysoftware.com) specializes in creating boxed
products that migrate legacy mainframe applications directly to ASP
.NET, with source code intact. Jason uses Visual Studio and the
Microsoft .NET framework daily while architecting solutions for
Intensitys consulting services clients. He is also one of the
developers who created the original IBuySpy Store demo application
and its NetCOBOL for .NET translation. Jason has been a par-
ticipating author in a number of books and has written numerous
articles on topics related to Microsoft .NET. xix
20. 5416chFM.qxd 9/21/05 5:35 PM Page xx
21. 5416chFM.qxd 9/21/05 5:35 PM Page xxi Acknowledgments There
are a lot of people who helped us in writing this book. Previous
Edition First of all, we would like to thank Phil Pledger, our
previous edition technical reviewer, for coming up with great ideas
and opinions. Phils comments and suggestions improved the overall
quality of the book. Then we would like to thank our Swedish
language reviewer for the previous edition, Johan Theorin, for
making us look more fluent in the English language than we really
are. Sten Sundblad at Sundblad and Sundblad (formerly ADB
Arkitektur) provided good sug- gestions for the book. Sten and Per
Sundblads book Designing for Scalability Using Windows DNA and
Design Patterns for Scalable Microsoft .NET Applications are always
sources of inspi- ration and knowledge. Erik Quist, formerly at
Sundblad and Sundblad, was helpful with answering questions we had.
We would also like to thank Dell Sweden for letting us use its test
lab. This provided us with access to hardware we otherwise could
not have gotten our hands on. Thomas Melzer and Marko Rhm have been
of great help. Thanks to VMware Corporation for providing software
so we could test our solutions without ruining ourselves
financially with hardware purchases. Allan Knudsen at Microsoft
Sweden helped in providing great documents about Windows Server
2003. Wolfram Meyer, also at Microsoft Sweden, came up with great
input for choosing between web services and .NET Remoting. We also
want to thank all at Apress who helped with the previous edition of
the book, especially Ewan Buckingham, Tracy Brown Collins, Laura
Cheu, and Ami Knox. This Edition We would like to thank the
technical reviewer for this edition, Jason Lefebvre. Thanks for new
input and great suggestions. Thanks also to Dennis Johansson at
Know IT Consulting in Gothenburg. You gave valuable input on the
SOA chapter. Michael hs. Thanks for feedback on the SOA chapter. We
also want to thank all at Apress who helped with this book,
especially Beckie Stones, Ewan Buckingham, Lori Bring, and Julie
Smith. A special thanks to Gary Cornell at Apress for giving us the
opportunity to write both of these editions. Joachim would like to
thank Karin, Opus, and Gaston for their support and for accepting
all the hours he spent in front of the computer. Rickard would like
to thank his wife, Jenny, for supporting him through all the work
on the book. Without your help we could not have done it. Thanks a
lot! xxi cafac74dd2d083cbec0906b66fcd56b1
22. 5416chFM.qxd 9/21/05 5:35 PM Page xxii
23. 5416chFM.qxd 9/21/05 5:35 PM Page xxiii Introduction W e
feel that many designers and architects lack an understanding of
how to use Microsoft technology to build and implement large
enterprise solutions. Far too often we have found architects
shivering at the thought of building mission-critical systems based
on this technol- ogynot because they have tried and failed in their
attempts, but because they simply do not have a good awareness of
what tools are available. We want to change this. The idea for this
book came up in 2002. We first thought about writing this as an
internal document at Cap Gemini Ernst & Young. When doing
research on the market, we discovered that very few books focused
on the IT architect and system designer. Most books were directed
toward the developer, and we wanted a book for a broader audience.
Because we think many IT architects lack a thorough understanding
of what they can actually achieve on a Microsoft platform, we
decided that we should extend the intended audience of our document
outside Cap Gemini Ernst & Young and try publishing it as a
book. Apress has always published great books, so we turned to them
first. Gary Cornell became interested, and this book is the result.
Who Should Read This Book The target audience is primarily
designers and IT architects, but we try to cover topics we feel are
valuable for developers to have knowledge about as well. First, let
us define these three categories. Different companies may have
different definitions for these terms, so to avoid confusion we
will specify what we mean here. Architects An architect is a person
who, together with the customer (or the decision maker), retrieves
the requirements and the data flow for an application or solution.
The architect also defines the servers, function blocks, and so on
that are needed to make the application work. An architect works
with the management of the company to find out how the application
should be designed at a high level. He or she also determines the
need for integration with other systems. This person does not have
to have deep technological skills; rather he or she designs on an
abstract level and produces a blueprint of what the solution should
look like. An architect can be either an application architect or
an infrastructure architect. The infra- structure architect focuses
on the networking issueshow clusters should be placed and how to
secure the infrastructure. The application architect focuses on the
application(s) and the design of these. The best result comes when
these two types of architects collaborate closely during the design
phase. xxiii
24. 5416chFM.qxd 9/21/05 5:35 PM Page xxiv xxiv INTRODUCTION
Designers A designer is a person who takes the map from the
architect and from it completes a working design based on, for
instance, Microsoft or Java. This person is probably a developer
with a lot of experience in the field. He or she knows the
technology very well in contrast to the architect. There are also
designers who design the infrastructure. These people determine the
clus- tering solution to use, which server versions to implement,
the security technology to use, and so on. Developers Finally we
have the developer, the person who implements the application
design that the designer has created. This coder performs the final
job. But the developer can also be a person who implements the
infrastructure that the architect and the designer have decided on
using. How This Book Is Organized We want you, the reader, to use
this book to inspire you. It is intended to show techniques
available to you through Microsoft technologies, and also to
demonstrate that you can build great applications on the Microsoft
platform these days. The book gives you an overview of the
important parts of an enterprise application and shows some best
practices that we have learned over the years for designing such an
applica- tion. Design is always key to a successful project. Since
the book is focused on design, we do not dive deep into the
specifics of enterprise applications. There are other books for
that. Instead this book tries to be a bridge between the
architect/designer and the developer. Use this book to find the
topics that are important to a certain part of an application, and
then continue dissecting that area. Note Even though this book is
rather canted toward the Microsoft way, it would be a mistake to
think that this is the only technology to use. We ourselves use
other technologies, such as Java and Linux, when nonMicrosoft
technologies provide a better solution (or even the only solution)
for our customers. The following is a chapter-by-chapter overview
of the book. Chapter 1: Introduction to Enterprise Application
Design Chapter 1 is a general introduction to a few important
topics associated with enterprise application design and
development. Here we give you an overview of enterprise application
integration (EAI), Unified Modeling Language (UML), and Object Role
Modeling (ORM).
25. 5416chFM.qxd 9/21/05 5:35 PM Page xxv INTRODUCTION xxv
Chapter 2: Windows Server System In this chapter, we show you what
kind of software is available from Microsoft, enabling you to build
a good platform for your application. We cover the operating
systems and the .NET Enterprise Servers, and see how they fit into
the design of an enterprise application. Chapter 3: Cluster
Techniques Here we give an overview of the two techniques Windows
offers that make it possible to cluster servers. Network Load
Balancing (NLB) and Microsoft Cluster Service (MSCS) are integrated
in the Windows Server family and used to enhance scalability,
reliability, and availability. We also take a closer look at
Application Center, which is a .NET Enterprise Server. This server
helps you manage your clusters in an easier way. Chapter 4: An
Overview of the Windows Server Family This chapter dives deeper
into the Windows Server operating systems. We show you the Win-
dows architecture and how you can use NLB and MSCS with your
platform. We also include a discussion about security in Windows.
Chapter 5: The Enterprise Application Architecture Chapter 5 looks
at the enterprise application itself. We discuss how you can, and
should, design it, as well as many other topics vital to the design
phase. Chapter 6: Web Services Design and Practice Everybody has
heard about web services. If you have not, or simply want to know
more, this is the place to look. Here we cover design and security
issues, and we also discuss when you should use web services and
when you should use .NET Remoting instead. Chapter 7: Service
Oriented Architecture (SOA) In this chapter, we take a look at SOA
or Service Oriented Architecture as it is called. We will discuss
what SOA and Services are and how the architecture differs from a
traditional application. Chapter 8: Internet Information Services
In this chapter, we dissect Internet Information Services (IIS). We
show its architecture, how ASP.NET is used, and how to tune and
secure IIS. Chapter 9: Data Storage Design and SQL Server Data
storage is important in all enterprises. You need to have a
well-thought-out storage policy in place so you can reduce cost and
double work. Here we show you how you can consolidate your data by
designing your data storage properly. We also cover SQL Servers
architecture, performance, and security in this chapter.
26. 5416chFM.qxd 9/21/05 5:35 PM Page xxvi xxvi INTRODUCTION
Chapter 10: An Example Application Here we bring it all together.
We show you how we would design an enterprise application using the
tips and tricks we present in this book. The application we
demonstrate how to build in this chapter is a time reporting
application for a large enterprise. What This Book Covers This book
will show you some of the best practices in designing an enterprise
application that we have found invaluable in our own work. More and
more our customers have asked for integration solutions over the
last few years. With the introduction of SOAP and XML, we have
found that we could use much of the same thinking when designing
these applica- tions as we used before. Of course, we have
constantly evolved our thinking and refined our design patterns as
new techniques have been introduced. A great source of inspiration
and knowledge are Sten Sundblad and Per Sundblad, authors of
Designing for Scalability Using Windows DNA (Microsoft Press, 2000.
ISBN: 0-735-60968-3) and of course its follow- up, Design Patterns
for Scalable Microsoft .NET Application (published through their
own company and available at their web site,
http://www.2xsundblad.com). These guys know what they are talking
about, so make sure to visit their web site to learn more about
their design patterns. What This Book Does Not Cover In this book,
we will not discuss integration in itself. We will instead focus on
a general design that can be implemented for many solutions, no
matter what their purpose may be. We will try to cover a broader
spectrum than most books do. If there is one thing we have learned,
it is that having the big picture is important. If a large project
needs to be delivered on time and at the same time fulfill its
expectations, developers and designers alike need to have a broad
view of it. This obviously means we cannot be as thorough as we
would like to be in many areas, but luckily other books are
available for this. For example, the Sundblad and Sundblad books we
have already mentioned are valuable for their design patterns and
modeling sug- gestions. Other books offer deep coverage of
operating systems, databases, web services, XML, and all those
areas that are important to us. This book tries to bridge these
boundaries so that you can build better applications for your
customers or companies. Building an enterprise application is not
an easy task. If you do not design it properly from the beginning,
the risk of failure will increase dramatically. Poor design might
not be noticed at once, but with time, performance issues as well
as extensibility issues are sure to emerge. To avoid this, IT
architects and system designers need to have knowledge about what
techniques are available and how these can be used. This book is
intended to be a guide in learning more about this subject. We
believe you, the reader, will find it useful in your professional
life. We hope you enjoy reading it as much as we enjoyed writing
it. We wont cover any non-Microsoft technology. This is not because
we dont use anything else but Microsoft (because we do), it is just
due to the fact that the book would have been too complex if we had
mixed in Java, Linux, UNIX, and all the others.
27. 5416ch01.qxd 9/21/05 5:43 PM Page 1 CHAPTER 1 Introduction
to Enterprise Application Design I nformation has been a key part
of society ever since humans started living in communities. Early
on, it was vital to keep track of the seasons so people could
anticipate when it was best to hunt, sow seed, and so on. As human
society has grown more and more complex, so has our need for
information. Applications and data, in various forms, are important
to many companies nowadays. Obviously this has been true for a long
time, but with the globalization of the enterprises of today it has
become even more important. In this chapter, were going to spend
some time discussing how enterprises have ended up with their
information spread over so many places that retrieval is often
difficult. We are also going to have a look at something called
enterprise application integration (EAI), a concept developed to
bring order to chaos. Even though integration may involve some
techniques and tools unnecessary in an ordi- nary multi-tier
application, the basic design does not change much. This way,
developers can still use the knowledge they have. Another important
area is the Service Oriented Architecture (SOA) that so many people
are talking about. SOA, and thinking in Service Oriented (SO) terms
during design phase, is important not only for medium-large and
large companies but also for smaller ones as well. SOA also has a
lot to do with integration, as youll see in Chapter 7. (We will
also have a short introduction here in Chapter 1.) One thing we
would like to point out is that designing for scalability is as
important to integration projects as it is to all other projects.
You will always have to consider this in enterprise applications.
Unnecessary delays and bad performance cost time and money, and if
you dont pre-plan solutions for these common problems during the
design phase, your application will most certainly be considered a
failure after it has been deployed. In this book, wed like to show
you some tips and tricks for building more successful solutions
that also scale well. Well also cover some of the implications that
having an SOA in your enterprise will have on both scala- bility
and performance. 1
28. 5416ch01.qxd 9/21/05 5:43 PM Page 2 2 CHAPTER 1
INTRODUCTION TO ENTERPRISE APPLICATION DESIGN Note One thing we
have learned over the years is that you should always design an
application so that it is possible to scale it. Even though a
particular application may not be intended for use by more than a
handful of people from the start, many such applications have a
tendency to grow in popularity, and sud- denly hundreds of users
want it. If youve designed with scalability in mind, from the
beginning, you really wont have a problem when this happens. By
simply separating the different layers from each other and then
placing them on different computers or clusters, you suddenly have
an application that can serve many users without a complete
rewrite. In the Beginning . . . Back in the eighties, stock traders
on Wall Street used stand-alone terminals. But it soon became
obvious that they needed a way to link the terminals, asset trading
data, and management sys- tems together so that it would be easier
to get an overview of all brokerage information, allowing them to
make better decisions. This may have been when the concept of
application integration was born. After that, many other businesses
found they had similar needs. Many things have pushed the need for
integration to the forefront of business concerns. Client-server
solutions started taking the place of mainframe systems, for
instance, and devel- opers were suddenly able to build more
flexible solutions for their companies. In those days, many of the
solutions and applications were proprietary to the companies that
had developed them. When two companies merged, heterogeneous
environments made it difficult to map data. The complexity of all
these applications needed to be reduced. A way to get these
applications to work together was required, and the answer was
application integration. With the Internet explosion in the
nineties, new ways for companies to do their business evolved.
Business-to-business (B2B) and business-to-consumer (B2C)
opportunities unavoid- ably led to a need for integration, not only
within companies, but also between companies and their customers.
The first generation of EAI solutions was often a hub-and-spoke
architecture (where a sin- gle integration server, the hub, handles
the information exchange and transformation for the spokes, or many
applications or data stores) or of an integration bus-oriented one.
Suddenly, a logical separation started to appear in applications.
Data was separated from transport, requests from responses,
publisher from subscriber, and so on. Slowly, standards like CORBA
and COM started to introduce themselves. People began talking about
loosely coupled com- munication. A problem with CORBA and COM,
however, was that they were still fairly proprietary. It was not
easy to integrate these two standards. There were also some
performance and scalability problems with these methods. The
constant evolution of business continuously drives a change to EAI.
Nowadays the term has expanded to also include message brokering,
business process flow management, and workflow. As companies try to
reduce costs, it becomes more and more important to sim- plify the
creation, management, and modification of integrated applications.
Companies cant rely on technicians and developers all the time when
a change has to be made in the IT infra- structure or in the
business processes. There is also a great need to reuse business
logic to cut costs and reduce complexity. Fortunately, standards
like XML, SOAP web services, and others , have been developed that
make it easier, more cost effective, and safer to integrate.
cafac74dd2d083cbec0906b66fcd56b1
29. 5416ch01.qxd 9/21/05 5:43 PM Page 3 CHAPTER 1 INTRODUCTION
TO ENTERPRISE APPLICATION DESIGN 3 Enterprises Today Lets take a
look at an imaginary company that manufactures and sells cars,
called R & R Auto- mobile Corporation. R & R has been
around for quite a number of years now. During this time, hundreds
of data and communications systems have grown up in the company,
and so many, in fact, that nobody knows the exact number. These
systems reside on different hardware and software platforms: 70
percent of these probably reside on mainframes, while the rest are
scat- tered on client-server and PC systems. Data is transferred
between these systems at different times. Some systems transfer or
receive data in real-time, while others transfer or receive data in
batches, on a daily, or even weekly, basis. A few systems cannot
communicate with others at all, and R & R staff has to print
information from those systems and manually enter it into other
systems. This chaotic architecture makes it hard for R & R to
know all the details about its relation- ship with its customers
(see Figure 1-1). This is obviously a problem for a company,
especially if it must be able to respond to changes in the business
environment in a timely manner. Figure 1-1. The chaotic situation
at R & R Automobile Corporation
30. 5416ch01.qxd 9/21/05 5:43 PM Page 4 4 CHAPTER 1
INTRODUCTION TO ENTERPRISE APPLICATION DESIGN R & R management
has discovered the need for a closer interaction with both partners
and customers. This means that the supply chain, customer support,
and service need to be tuned so that R & R can be an effective,
modern company, which management believes can be achieved by
providing a better integration between the applications. Obstacles
have arisen in the way of achieving this, however. Through all
these years that R & R has existed as a company, boundaries
have been established between units, including geographically
dispersed offices, product lines, and so on, and these factors all
diminish the ability of employees to share information within the
company. As you might understand, its hard to give value to the
customer if the obstacles within the company are as big as this.
Nevertheless, integration across the enterprise probably will
provide significant opportunities to show a unified front to the
customer. It will also most likely supply more efficient end-to-end
processes. Take a look at some of the problems, or perhaps
challenges, that face an R & R integration team: R & R uses
a mix of technologies. Over the years various technologies have
been used to build R & Rs applications and databases. As
mentioned, some systems provide an inter- face to the surrounding
world, while others do not. The company is rife with customer
relationship management (CRM) systems, and other applications, both
standard and proprietary. These applications are often run on
different platforms. New applications at R & R need to extend
the features provided with legacy systems. The cost of updating the
legacy systems is too great to be considered as a serious
alternative, and some of the systems just cant be changed. New
business workflows need to be developed. R & R needs to find
ways to develop new workflows for its business processes, while
somehow incorporating its existing applications. Many of the
applications in use at R & R have no clear separation between
their business logic, user interface, and data access. In a modern
n-tier application, designers and developers architect the
application to separate these items, as shown in Figure 1-2. The
data transferred between applications is provided in various
formats. EDI documents are used, but so are text files and XML
files. It is therefore difficult to map the fields from one data
structure to the fields in another. Different component models are
used. Some applications use CORBA (Common Object Request Broker
Architecture) and others use COM/COM+. This has resulted in tightly
coupled applications that do not easily communicate with each
other. R & Rs systems are not integrated with the outside
world, and