47,99 €
In Detail
Modeling business processes for SOA and developing end-to-end IT support has become one of the top IT priorities. The SOA approach is based on services and on processes. Processes are focused on composition of services and in that sense services become process activities.
Experience has shown that the implementation and optimization of processes are the most important factors in the success of SOA projects. SOA is so valuable to businesses because it enables process optimization. In order to optimize processes, we need to know which processes are relevant and we have to understand them, something that cannot be done without business process modeling. There is a major problem with this approach, a semantic gap between the process model and the applications.
This book will show you how to fill this gap. It describes a pragmatic approach to business process modeling using the Business Process Modeling Notation (BPMN) and the automatic mapping of BPMN to the Business Process Execution Language (BPEL), which is the de-facto standard for executing business processes in SOA. The book will also cover related technologies like Business Rules Management and Business Activity Monitoring which play a pivotal role in achieving closed loop Business Process Management.
Learn how to model business processes in an SOA-compliant approach using BPMN, translate them into BPEL and execute them on the SOA platform. A practical guide with real-world examples illustrating all key concepts.
Approach
The book provides a well-balanced mixture of theoretical discussion and real-world examples. It explains the concepts and approaches, and describes methodology and notation. It demonstrates these concepts on real-world examples and provides a step-by-step example tutorial that guides readers from business process modeling in BPMN through transformation into BPEL to execution on the SOA process server. It also discusses some key concepts using practical examples and business scenarios around Business Rules Management and Business Activity Monitoring with BPM and SOA.
Who this book is for
This book is for CIOs, executives, SOA project managers, business process analysts, BPM and SOA architects, who are responsible for improving the efficiency of business processes through IT, or for designing SOA. It provides a high-level coverage of business process modeling, but it also gives practical development examples on how to move from model to execution. We expect the readers to be familiar with the basics of SOA.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 358
Veröffentlichungsjahr: 2008
Copyright © 2008 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, Packt Publishing, nor its dealers or distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: August 2008
Production Reference: 1220808
Published by Packt Publishing Ltd.
32 Lincoln Road
Olton
Birmingham, B27 6PA, UK.
ISBN 978-1-84719-146-5
www.packtpub.com
Cover Image by Vinayak Chittar ([email protected])
Authors
Matjaz B. Juric
Kapil Pant
Reviewer
Frank Jennings
Senior Acquisition Editor
Louay Fatoohi
Development Editor
Nikhil Bangera
Technical Editor
Aanchal A. Kumar
Copy Editor
Sumathi Sridhar
Editorial Team Leader
Akshara Aware
Project Manager
Abhijeet Deobhakta
Project Coordinator
Patricia Weir
Indexer
Monica Ajmera
Proofreader
Dirk Manuel
Production Coordinator
Rajni Thorat
Cover Work
Rajni Thorat
More and more organizations are turning to Business Process Management in their quest for practical ways to create new business value and to streamline their operations, and to ultimately become flexible, responsive and efficient organizations.
For the last 30 years, the business world has become more process aware, and BPM has come a long way since initial iterations that relied heavily on static flowcharts to map out corporate processes in mostly unchanging organizations.
Today, BPM has become a discipline in its own right. It applies sophisticated software and best practices to model, simulate, automate, manage, and monitor processes, in order to coordinate operations with dynamic business priorities. This has given rise to unprecedented process flexibility and scalability, wherein workflows (both human and automated) are determined in real-time by events and/or outcomes within the process, and effective knowledge transfer is made possible as processes become well-documented business artifacts on which employees can be trained.
The introduction of an independent process tier represents BPM's first major contribution to business computing. It puts the management of business logic in the hands of business managers, without threatening the integrity of the application logic.
To enjoy the full benefits of BPM, processes must integrate with existing applications and systems. They require access to the functions that are locked in application silos. Today's IT organization is complex, consisting of many different applications and systems built using heterogeneous technologies, on various types of middleware, using multiple databases and running on many platforms. Hard-coding point-to-point integration with these applications is not a good solution as it creates tight coupling with the application and makes the process brittle and inflexibleThis can make the processes expensive to change and may therefore defeat the entire purpose of BPM.
This is where Service Oriented Architecture (SOA) comes in. It provides the technical ability to create that process independence. The goal of SOA is to expose an organization's IT assets as re-usable services that can communicate and integrate more readily. SOA's aim is to provide a common communication framework to organize and describe the capabilities, usage policies and service provider locations without exposing the implementation details. It allows organizations to plug in new services or upgrade existing services in a granular fashion in order to address new business requirements, while providing the possibility of making the services consumable across different channels, and at the same time enabling existing legacy applications as services. The goal is to eliminate the integration headache common to many organizations today, while leveraging existing IT investments.
BPM and SOA are a natural match —together they facilitate the next phase of business process automation, deriving higher value from services. Business automation will no longer be about hard coding a function that is to be repeated infinitely.
Today, business automation through BPM and SOA is all about creating services that are re-usable in many different ways, in multiple processes that can be continually improved. Through this synergy, organizations will achieve better business and IT results than were ever possible through either discipline alone.
This book provides adequate coverage of BPM in the context of SOA, as well as a pragmatic approach to carrying out the analysis, execution and monitoring of business processes from end-to-end, using Business Process Modeling Notation (BPMN), and the automatic mapping of BPMN to the Business Process Execution Language (BPEL) for executing business processes in SOA.
Geoffroy de Lamalle
Business Development Manager, SOA—Europe, Middle East & Africa,
IDS Scheer AG
Matjaz B. Juric holds a Ph.D. in computer and information science. He is Associate Professor at the University of Maribor and the director of Science Park project. In addition to this book, he has authored or coauthored SOA Approach to Integration, Business Process Execution Language for Web Services (English and French editions), BPEL Cookbook: Best Practices for SOA-based integration and composite applications development, Professional J2EE EAI, Professional EJB, J2EE Design Patterns Applied, and .NET Serialization Handbook. He has published chapters in More Java Gems (Cambridge University Press) and in Technology Supporting Business Solutions (Nova Science Publishers). He has also published articles in journals and magazines, such as SOA World Journal, Web Services Journal, Java Developer's Journal, Java Report, Java World, eai Journal, theserverside.com, OTN, ACM journals, and has presented at conferences such as OOPSLA, Java Development, XML Europe, OOW, SCI, and others. He is a reviewer, program committee member, and conference organizer.
Matjaz has been involved in several large-scale projects. He has been a consultant for several large companies on SOA projects. In cooperation with the IBM Java Technology Centre, he worked on performance analysis and optimization of RMI-IIOP, an integral part of the Java platform. Matjaz is also a member of the BPEL Advisory Board.
Matjaz is the chair of SOA Competency Centre, and the author of courses and consultant for the BPEL and SOA consulting company BPELmentor.com. For more information, please visit http://www.bpelmentor.com/
My efforts in this book are dedicated to my family. Special thanks to my dear beautiful Ana. Thanks to my friends at Packt Publishing and University of Maribor and to Ales Frece.
Kapil Pant is an accomplished BPM consultant and Public speaker with extensive experience in Products and Professional Services consulting. He currently manages Wipro Technologies' BPM/SOA practice in Europe, and leads consulting engagements including Business Process Improvement workshops, BPMS and SOA Tools Study and Recommendations, and BPM Architecture, Implementation and Governance.
Over the years, Kapil has been extensively involved in conducting successful workshops on Process Improvement, Requirements Analysis, BPM/SOA and Enterprise Architecture for clients in Telecom, Banking, Securities and Insurance industry verticals. He has also worked closely with leading System Integrators such as Wipro, Tata Consulting, HCL and Satyam to conduct technology enablement programs for client projects across industry verticals.
As a recognized Public Speaker, Kapil is known for his well-researched programs delivered in his high-energy, enthusiastic, and down-to-earth style. He has presented keynote speeches, workshops, seminars, and over 40 road-shows across the Asia Pacific, Europe and the USA. He was also nominated by the Government of India to lead seminars as a part of a 25-member working committee for E-Governance Enterprise Architecture and Standards Taxonomy.
He has a Masters Degree in Computer Applications, a Bachelors Degree in Business Studies, and a TOGAF Certification.
Kapil presently lives in Hampshire, UK with his wife and enjoys blogging in his free time.
I would like to express my thanks to my colleagues in Wipro Technologies, specifically my senior colleagues Gopalakrishna Byllahalli and Gunendra Patil for their firm support, guidance and encouragement.
Ashish Sharma for his technical understanding and help with some of the key sections in the book.
Louay Fatoohi and Patricia Weir from Packt Publishing for their continued support, patience and understanding during the course of this project.
Finally, I am grateful to my parents and grandmother for their blessings and my wife Ekta for her constant encouragement and critical advice without which this book would not have been possible.
Frank Jennings works in the Information Products Group of Sun Microsystems Inc. He has more than 9 years of experience in Java, SOA and System Design. He is an Electronics Engineer from Madras University and has worked for several open-source projects.
Frank has written regular columns for leading Java journals including Java Developer's Journal and Linux Developer's Week. Frank is also the co-author of the book SOA Approach to Integration focusing on SOA design pattern for enterprises. Frank also is involved in technical publications for Sun Microsystems in the fields of Solaris and Developer AMP Stack. His blog can be read at http://blogs.sun.com/phantom and he can be reached at <[email protected]>. He also holds a Post Graduate Diploma in Computer Science and an Advance Diploma in Computer Integrated Management from University of Indianapolis
Modeling business processes for SOA and developing end-to-end IT support for these processes have become top IT priorities for many organisation. The SOA approach is based services and on processes. Processes are focused on composition of services and in that sense services become process activities.
Experience has shown that the implementation and the optimization of processes are the most important factors in the success of SOA projects. SOA is so valuable to businesses because it enables process optimization. In order to optimize processes, we need to know which processes are relevant and we have to understand them – something that cannot be done without business process modeling. There is a major problem with this approach – a semantic gap between the process model and the applications.
This book will show you how to bridge this gap. It describes a pragmatic approach to business process modeling using the Business Process Modeling Notation (BPMN) and the automatic mapping of BPMN to the Business Process Execution Language (BPEL), which is the de-facto standard for executing business processes in SOA. The book will also cover related technologies such as Business Rules Management and Business Activity Monitoring, which play a pivotal role in achieving closed-loop Business Process Management.
Chapter 1 looks at the relation between SOA and business processes. SOA provides the technology platform for the implementation of business processes, and the development of applications that provide end-to-end support for business processes. This chapter also covers the long-term association of SOA with business processes and BPM.
Chapter 2 gives an overview of the role of business process modeling for SOA. It outlines the importance of BPM and its life-cycle, which consists of business process design, process implementation, process execution and control, and process optimization. It discusses each of these stages in brief. It also briefly discusses ARIS the methodology, BPMN notations, and process simulation.
Chapter 3 covers the concepts of business process modeling, and the use of BPMN as a standard in providing a consistent, process vocabulary to any business. It discusses the essential components of BPMN using some examples, which will enable you to start creating BPDs. It also introduces the Oracle Business Process Analysis Suite.
Chapter 4 addresses some general guidelines for process modeling before taking a deep dive into some complex constructs of BPMN, especially the length and breadth of Events, and the role they play in creating and visualizing BPDs. It also covers support for workflow patterns in BPMN and their use during process execution using BPEL.
Chapter 5 covers two important aspects in the BPM process: process analysis using simulation and process transformation for implementation. It emphasizes the importance of tools to extend support for some of the gaps in the current standards and transformation to reduce the issues of synchronization and process round-trips.
Chapter 6 covers business process modeling using BPMN and process analysis using simulation techniques. It covers process transition from BPMN to BPEL, followed by process orchestration and execution using process engines such as Oracle's BPEL Process Manager. It also evaluates some of the best practices for implementing various technology components to make the end-to-end process of BPM and SOA seamless.
Feedback from our readers is always welcome. Let us know what you think about this book, and what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.
To send us general feedback, simply drop an email to <[email protected]>, making sure to mention the book title in the subject of your message.
If there is a book that you need and would like to see us publish, please send us a note in the SUGGEST A TITLE form on www.packtpub.com or email <[email protected]>.
If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.
Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.
Although we have taken every care to ensure the accuracy of our contents, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in text or code—we would be grateful if you would report this to us. By doing this you can save other readers from frustration, and help to improve subsequent versions of this book. If you find any errata, report them by visiting http://www.packtpub.com/support, selecting your book, clicking on the let us know link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata added to the list of existing errata. The existing errata can be viewed by selecting your title from http://www.packtpub.com/support.
Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the Internet, please immidiately provide us the location address or website name, so we can pursue a remedy.
Please contact us at <[email protected]> with a link to the suspected pirated material.
We appreciate your help in protecting our authors, and our ability to bring you valuable content.
If you are having a problem with some aspect of the book, you can contact us at <[email protected]> and we will do our best to address it.
The main objective of information technology is to provide support for business operations. IT has successfully automated various functions such as payroll, general ledger, and invoices through the introduction of application systems. Although this has been very valuable for companies, there has also been an understanding that automation of such activities is not all that IT can provide. Therefore, information systems have tried to cover more and more functions. As a result, ERP (Enterprise Resource Planning), CRM (Customer Relationship Management), SCM (Supply Chain Management), and similar systems have emerged.
Through the introduction of these systems, companies have started to realize that the ultimate objective would be to automate business processes – in other words, to develop applications that would provide support at each and every step of a business process, from its beginning until its completion.
Although fulfilling this objective might sound simple, it is not! There are at least two major challenges:
Fulfilling both requirements requires a highly flexible IT architecture, which would allow changes to be made to the software quickly and efficiently. Business processes are also required to relate more closely to the application systems, which has not been the case so far. Usually, business processes have been modeled "on paper", resulting in nice pictures. However, there has been a semantic gap between those pictures of business processes and the actual application systems, and changes in the processes have not produced clear dependencies to the changes required in application systems.
Service Oriented Architecture (SOA) has emerged as a solution to these problems. In this book, we will show you how we can use SOA along with Business Process Management (BPM) to solve these and other related challenges. We will look at its complete life cycle, starting with the business process modeling and ending with the application that implements such processes. We will see that SOA introduces 'new approach' technologies and languages such as BPMN (Business Process Modeling Notation), BPEL (Business Process Execution Language), ESB (Enterprise Service Bus), services, rule engines, registries/repositories, and others, to fulfill the objectives.
In this chapter, we will look at business processes and their relevance to IT, application systems, and SOA in particular. We will:
Business processes are essential for every company—large or small. Companies rely on business processes. Let us look at what business processes are.
A business process is a set of coordinated activities that are performed either by humans or by tools with an objective to realize a certain business result.
A business process consists of a set of coordinated activities that accomplish a particular business goal. The order of these activities and the efficiency of those who perform the activities determine the overall performance of a business process. It is very much in the interest of every company to have business processes that are efficient and include only necessary activities, because this will allow them to work faster.
As business processes define the order of work, they are related directly to the efficiency and effectiveness of a company. The better the business processes are defined, the more efficiently a company can operate. In today's competitive market, the efficiency of a company is a key criterion for success, because in addition to innovation, operating efficiency is key to improving the company's competitive advantage in the market.
Knowing and understanding the details of business processes is important, because this gives us the opportunity to identify the bottlenecks and optimize business processes. Optimizing business processes make them more efficient, our customers happier, will reduce the workload on the employees, and will reduce the utilization of resources.
Managing business processes is, therefore, very important. Each company should know how its business processes are defined, who is involved in the various related activities, and how long it takes to execute a certain process.
We have already mentioned that the objective of IT is to support and automate business activities using application systems. On the one hand, this reduces the load on the employees, and on the other, it guarantees that the activities and tasks are performed efficiently as compared to manual tasks and activities.
The focus, therefore, has to be on the process itself. The level to which a business process is optimized is directly related to efficiency of such a process. Today, having highly-optimized business processes is one of the most important priorities of companies.
Optimized business processes are increasingly important for companies as they provide the company with a competitive advantage. With SOA, companies can optimize business processes easily, with less effort, and in a shorter time than with previous approaches.
However, it's not only the competitive advantage that matters; companies also need to react to changes in the global market, to new opportunities, and to threats from other companies. They react with modifications to their business processes.
The more efficient business processes a company has, the more efficient its operations will be. This will allow the company to have a competitive advantage over other companies and possibly become a leader in a certain area. Many of you might say that this is trivial to understand. Indeed, it is. But if we put emphasis on these topics, you will see that optimizing business processes is not easy, and not all companies define a systematic approach to business process optimization. Optimizing processes is also related to information systems. Each change in the process requires changes in application systems.
Often, business processes are classified into internal or private business processes, and public or global business processes. Internal business processes are related to a single company. Global business processes connect two or more companies. Both types of processes are important and can be modeled and automated by SOA.
Before we dig into these topics, let us first look at some examples of business processes. Some examples of common business processes are supply, marketing and sales, procurement, and so on. Such processes take place in almost every company. They are called support processes.
However, the most important thing for each company is its "core" business processes—those processes that are directly related to the core business activities of the company. For example, a marketing company that manages advertisement boards relies on efficient processes that start with an order for advertising, and end when the advertisement is published on boards throughout the country or abroad. The faster the company can realize the orders, and the faster it can react to new requirements from customers, the better it is.
Business processes are always specific to a company. This is particularly true for core business processes. Companies, therefore, cannot buy IT support for these processes in the market, but have to custom develop it to address their specific needs.
A company that produces car seats requires an efficient production process. Such a process can be automated, starting with the cutting of leather, continuing with the gluing of seat pillows, assembly of the seat carrying construction, and so on. In addition to production tasks, we can also automate other related tasks. Production can also be linked to the supply, which will open up new opportunities for supply chain management and help reduce stock levels. It is obvious that we are limited only by our own creativity.
A clothing company's core processes are design, production, and sale of clothes. The faster the turnaround between design and production, the more flexibility the company has to react to customers' wishes, and the better it can adapt to new opportunities. The better the connection between production and sales, the better the company can adjust its production to actual demand in the market.
A stockbroker company provides services related to buying and selling stocks. It also provides capital management services. Using the Internet, the company can develop applications that will allow customers to observe price changes in real-time and place orders online. This will change the processes dramatically and provide new opportunities for services that such companies offer their clients. At the same time, it will allow tighter integration with clients and closer observation of their needs. IT can help business processes change in order to get the maximum value from new technologies.
SOA introduces new horizons in business processes optimization, where the only limit is our creativity. Business processes can provide an important competitive advantage.
In some industries, best practices related to business processes have been gathered and published. Such business process frameworks can be used for various reasons:
Some experts are of the opinion that the best practices represent the average state in the industry. If our company is benefiting from such processes, it means that our processes are no better than average. Usually, companies that are above average keep their business processes confidential, because they know that their business processes reflect their true competitive advantage.
In the telecommunication sector, a well-known business process framework is Enhanced Telecom Operations Map (eTOM). eTOM defines best practices process frameworks for different aspects related to telecommunication business, such as:
We could find many more examples. However, the fact is that business processes are always specific to a single company, and are quite complex. A birds-eye view of the processes (as provided above) only tells half the truth. We can get a complete understanding of a business process only when we look at the details. It's in these details that the complexity hides.
When a company is established, its business processes are often not defined in a systematic way. Rather, they arise in a spontaneous way. It is the employees who often define the various activities and tasks. As the company grows, more and more people get involved in the processes, and processes become more and more complex. Processes in a large company differ from the processes in a small company.
In the real world, however, no single person can give a complete overview of an organization's business processes. The knowledge about how a process works is usually in the heads of employees and very often each person only knows about his or her own part of the process. The management does not motivate employees to think about the process, or even to think of optimizing it. Therefore, processes remain unchanged and are far from optimal.
If we agree with this, we can very simply conclude that if there is no single person in the company who could give an overview of the whole business process, then how can we know whether the company's operations are optimal. The management definitely wants to have the answers for the following questions:
We need to understand the business process in order to answer these questions. First, we should understand how business processes work. To do this, the usual approach has been business process modeling, which uses graphical (visual) languages to represent process flows, roles, and related documents. Business process modeling is not something very new. It has been around for quite a while and is a matured and well‑understood discipline.
We can model business processes in a variety of visual languages; the most widely used are EPC (Event Process Chain), eEPC (Extended Event Process Chain), UML Activity Diagrams, and recently BPMN.
We use business process models to understand the processes. This gives us the opportunity to modify and improve them, and to optimize them. Business process optimization and re-engineering are very important and it is up to our imagination to improve processes and integrate them to gain synergic benefits, and use other approaches to optimize them. We will not go into the details of business process optimization right now, because we will come back to this topic later in this chapter, and will discuss it again in the next chapter.
However, we will emphasize that business process re-engineering and optimization are related to several important topics that should not be overlooked. We will mention just three here:
We have defined business processes as a set of coordinated activities. We have also seen that most often employees perform these activities. Usually employees use applications to support their work. Sometimes, these applications fully support some activities, and the employee's intervention is not required.
With each new application that is introduced into a company, more activities become supported by IT. In other words, business processes are highly dependent on these applications, and vice versa. In addition, applications gradually start to impersonate business processes.
Usually, business processes are tightly coupled with applications. Companies rely on IT applications in order to function. IT not only provides support for business operations, but has actually become an essential part of every business.
Today, businesses depend on IT. Can you imagine a business without IT? Can you imagine how any major company would operate, if IT does not function for one day?
Up to here, everything looks good. Nevertheless, we have not thought about the fact that business processes change over time. If the business processes are constant, we can afford to tightly couple them with application software. The fact, however, is that business processes are not constant and need to change. They need to be flexible. Therefore, IT also has to be flexible. In the next section, we will look at IT flexibility.
If each change in a business process requires a corresponding change in the IT system and in one or more applications, then the crucial question is: How quickly can we modify the applications?
The fact is that the time needed to modify the applications is crucial. In the eyes of the managers, this is 'lost' time, because the company needs to wait until the IT system is modified, before it can start using the new processes. Moreover, new processes might be better equipped to offer new or modified products or services. Therefore, the management will always put IT under pressure to do the modifications as quickly as possible—to minimize the IT gap.
To get a better understanding, let us look at a few examples. If an insurance company wants to offer a new insurance product, it has to upgrade the IT system before it can launch this new product in the market. The insurance company has to modify all the applications related to offering/ordering insurance products. This includes the applications on the office counters, the applications on the notebooks of insurance agents, the web site where insurance products can be bought online, in the call center for phone orders, and so on. Next, the applications for invoicing have to be modified. Various reports have to be modified too, in order to obtain information on how well the new product sells, who buys it, and how satisfied the customers are.
If a telecommunication operator introduces a new service or modifies an existing service, does this require changes to the IT applications? Yes, it does. It requires changes similar to those discussed earlier. In a telecommunication company however, such changes might also require modification in the software that runs the network. Today, there are many businesses where the IT support has infiltrated so deep into the company operations, that not only do support services rely on the application systems, but the whole core business operation has become dependent on the software.
Therefore, it is quite understandable that the management requires its IT systems to be flexible.
On the other hand, we know that IT systems in companies are usually very complex. We also know that complex systems require time to change. We can easily see that we are talking about two contradictory forces. One is the requirement from the management that changes should happen as quickly as possible. The other is the requirement from engineers, who require time to change complex systems.
In the real world, the request from management is usually of higher priority. This is why engineers are forced to change applications in a short time. Therefore, they do not have enough time to plan and design the changes. Even worse, they often need to apply modifications to software under pressure of time. In such conditions, they might be able to implement the changes, but changes may be done in a manner that negatively influences the overall software architecture and the entire information systems.
When such changes happen repeatedly, the overall software architecture becomes less robust. The changes get more difficult to implement, and hence require more time. This becomes a vicious circle. At a certain point, the architecture might even get so fragile that changes can compromise the integrity of the whole system. The dependencies and relations between the various software parts become almost unmanageable, and it takes so long to apply changes that it cannot fulfill the business requirements any more.
This is related to other impact factors, including:
A typical information system today consists of a mix of heterogeneous application systems that have been developed over time. The application systems in a company are usually a mixture of:
These systems use different architectural styles (client/server, multi-tier), different technologies, and languages (C++, Java, C#, Visual Basic, COBOL, and so on). It is quite unlikely that this mix of different systems was designed in a unified manner—it just grew, and will continue to grow. The fact is that companies rely on these systems and cannot afford to turn them off overnight.
Over time, some integration was achieved between the application systems, but it was not properly designed. This resulted in point-to-point integrations and the use of several different integration middleware products, including RPC, message brokers, distributed object models, proprietary integration servers, and in the recent years, web services.
Point-to-point integrations are very problematic, because as the number of involved systems starts to grow, the number of connections starts to grow exponentially. As point-to-point integrations are tightly-coupled integrations, they are very difficult to maintain. Changes in one system provoke a 'domino effect', whereby changes have to be applied in all related systems. Often, the complexity of maintaining the integrations becomes very high, and so does the cost.
To get a feeling for the number of necessary connections, let us presume that several applications have to be connected to each other. We will count only unidirectional connections, that is, if application A has to be connected to B, and B to A, then these are counted as two connections. With fifty applications, we would need an unbelievable 2,450 connections if we integrate applications on a point-to-point basis. To be honest, in the real world, we will probably not need to connect each application with the others. However, this does not change the fact that we will have to manage and maintain a large number of individual connections.
These issues are manifested while dealing with:
All of these issues make applying changes to information systems even more difficult and time consuming, thus increasing the IT gap even further.
Existing applications have most likely been developed using traditional software life cycles. These consist of various stages, including:
Depending on the development process, these stages are either sequential, partially parallel (Waterfall model), or iterative-incremental (Rational Unified Process). No matter which development process is used, they all are based on the following two facts:
