| |
| |
List of Figures | |
| |
| |
List of Boxes | |
| |
| |
Preface | |
| |
| |
Acknowledgments | |
| |
| |
| |
The Nature of the Problem | |
| |
| |
| |
Example: Moving to e-business | |
| |
| |
| |
What is IT architecture? | |
| |
| |
| |
Why is it different from what we did before? | |
| |
| |
| |
The IT architecture approach | |
| |
| |
| |
Alternatives | |
| |
| |
| |
Why not surround? | |
| |
| |
| |
Packages | |
| |
| |
| |
How do we get there? | |
| |
| |
| |
Rewrite | |
| |
| |
| |
Evolution | |
| |
| |
| |
Bringing the techies and modelers together | |
| |
| |
| |
Conclusions | |
| |
| |
| |
A Short History of Middleware Technology--From the Stone Age to Message Queuing | |
| |
| |
| |
Early days | |
| |
| |
| |
Preliminaries | |
| |
| |
| |
Remote procedure calls (RPC) | |
| |
| |
| |
Remote database access | |
| |
| |
| |
Distributed transaction processing | |
| |
| |
| |
Message queuing | |
| |
| |
| |
Message queuing vs. distributed transaction processing | |
| |
| |
| |
What happened to all this technology? | |
| |
| |
| |
A Short History of Middleware Technology--Object Middleware | |
| |
| |
| |
Object-oriented concepts | |
| |
| |
| |
Object middleware concepts | |
| |
| |
| |
Object middleware technologies--DCOM and CORBA | |
| |
| |
| |
Using object interfaces | |
| |
| |
| |
Conclusions | |
| |
| |
| |
A Short History of Middleware Technology--Components and the Web | |
| |
| |
| |
Internet applications | |
| |
| |
| |
Transactional component middleware | |
| |
| |
| |
COM+ | |
| |
| |
| |
EJB | |
| |
| |
| |
The issues of state | |
| |
| |
| |
Conclusions | |
| |
| |
| |
Middleware Classification and Middleware Architectures | |
| |
| |
| |
Middleware elements | |
| |
| |
| |
Networking and interoperability | |
| |
| |
| |
The programmatic interface | |
| |
| |
| |
Server control | |
| |
| |
| |
System administration infrastructure | |
| |
| |
| |
A technical classification of middleware? | |
| |
| |
| |
What is communicating? | |
| |
| |
| |
How they communicate | |
| |
| |
| |
What is the interface? | |
| |
| |
| |
Classifying middleware from technological principles | |
| |
| |
| |
Vendor architectures | |
| |
| |
| |
Positioning | |
| |
| |
| |
Strawman for user target architecture | |
| |
| |
| |
Marketing | |
| |
| |
| |
Implicit architectures | |
| |
| |
| |
Conclusions | |
| |
| |
| |
What Is Middleware For? | |
| |
| |
| |
Support for business processes | |
| |
| |
| |
Transactional, real-time | |
| |
| |
| |
Transactional, deferrable | |
| |
| |
| |
Information retrieval | |
| |
| |
| |
Collaboration | |
| |
| |
| |
The presentation layer | |
| |
| |
| |
The transaction server layer | |
| |
| |
| |
The data layer | |
| |
| |
| |
A generic functional architecture | |
| |
| |
| |
Mediators | |
| |
| |
| |
Conclusions | |
| |
| |
| |
Resiliency | |
| |
| |
| |
Using backup servers | |
| |
| |
| |
Detecting failure | |
| |
| |
| |
Clean-up work in progress | |
| |
| |
| |
Activating the application | |
| |
| |
| |
Reprocessing "lost" messages | |
| |
| |
| |
Dual active | |
| |
| |
| |
Applying resiliency techniques in practice | |
| |
| |
| |
System software failure | |
| |
| |
| |
Planned downtime | |
| |
| |
| |
Application software failure | |
| |
| |
| |
Developing a resiliency strategy | |
| |
| |
| |
Conclusions | |
| |
| |
| |
Performance and Scalability | |
| |
| |
| |
The un-slippery slope | |
| |
| |
| |
Transaction processing | |
| |
| |
| |
Object interfaces | |
| |
| |
| |
Transactional component containers | |
| |
| |
| |
Two-phase commit | |
| |
| |
| |
Message queuing | |
| |
| |
| |
Using remote database access for real-time transactions | |
| |
| |
| |
Conclusions on real time | |
| |
| |
| |
Batch | |
| |
| |
| |
Is distribution an alternative? | |
| |
| |
| |
Load balancing | |
| |
| |
| |
Business intelligence systems | |
| |
| |
| |
Ad-hoc database queries | |
| |
| |
| |
Data replication | |
| |
| |
| |
Backups and recovery | |
| |
| |
| |
Design for scalability and performance | |
| |
| |
| |
Conclusions | |
| |
| |
| |
Security and Systems Management | |
| |
| |
| |
Systems management technology | |
| |
| |
| |
Security technology | |
| |
| |
| |
Building application security | |
| |
| |
| |
Circumventing security | |
| |
| |
| |
Handling internal security violations | |
| |
| |
| |
Existing applications | |
| |
| |
| |
Application support for systems management and security | |
| |
| |
| |
Conclusions | |
| |
| |
| |
Implementation Design and Components | |
| |
| |
| |
Some general comments on design | |
| |
| |
| |
Implementation design | |
| |
| |
| |
The presentation layer | |
| |
| |
| |
Mapping business objects to implementation objects | |
| |
| |
| |
Grouping objects into components | |
| |
| |
| |
Making reuse work | |
| |
| |
| |
Completing the implementation design | |
| |
| |
| |
Conclusions | |
| |
| |
| |
Implementing Business Processes | |
| |
| |
| |
What is a process? | |
| |
| |
| |
Business processes | |
| |
| |
| |
The alternative view--functional analysis | |
| |
| |
| |
Information and processes | |
| |
| |
| |
Processes and computer applications | |
| |
| |
| |
Business rules | |
| |
| |
| |
Real time vs. deferrable | |
| |
| |
| |
Data distribution | |
| |
| |
| |
Long transactions | |
| |
| |
| |
Generic business processes | |
| |
| |
| |
Batch | |
| |
| |
| |
Business process flexibility | |
| |
| |
| |
Conclusions | |
| |
| |
| |
Information Access and Information Accuracy | |
| |
| |
| |
Information access | |
| |
| |
| |
Basic process information | |
| |
| |
| |
Process management | |
| |
| |
| |
Process improvement | |
| |
| |
| |
Customer view | |
| |
| |
| |
Marketing and strategic business analysis | |
| |
| |
| |
Summary of requirements for information access | |
| |
| |
| |
Information accuracy | |
| |
| |
| |
Shared data or controlled duplication | |
| |
| |
| |
Shared data | |
| |
| |
| |
Controlled duplication | |
| |
| |
| |
Hybrid strategy | |
| |
| |
| |
Creating consistency in existing databases | |
| |
| |
| |
The technical problem | |
| |
| |
| |
The data migration problem | |
| |
| |
| |
The business process problem | |
| |
| |
| |
The information controller | |
| |
| |
| |
Conclusions | |
| |
| |
| |
Change--Integration | |
| |
| |
| |
Creating a presentation layer | |
| |
| |
| |
Screen-scraping task | |
| |
| |
| |
Interface size mismatch | |
| |
| |
| |
Turning existing applications into transaction servers | |
| |
| |
| |
Wrapping | |
| |
| |
| |
Building a middle tier | |
| |
| |
| |
Business processing change with new interfaces | |
| |
| |
| |
Changing the middleware between transaction servers | |
| |
| |
| |
Runtime integration products | |
| |
| |
| |
Extensible markup language (XML) | |
| |
| |
| |
Conclusions | |
| |
| |
| |
Change--Flexibility | |
| |
| |
| |
Understanding large applications | |
| |
| |
| |
Airline example | |
| |
| |
| |
Bank example | |
| |
| |
| |
Batch | |
| |
| |
| |
Conclusions | |
| |
| |
| |
Building an IT Architecture | |
| |
| |
| |
Integrated applications architecture | |
| |
| |
| |
Business process design | |
| |
| |
| |
Managing information | |
| |
| |
| |
The organizational and project management context | |
| |
| |
| |
Understanding existing systems | |
| |
| |
| |
Business process change design | |
| |
| |
| |
Application functional design | |
| |
| |
| |
Implementation design | |
| |
| |
| |
Implementation--coding | |
| |
| |
| |
Implementation--testing | |
| |
| |
| |
Deployment | |
| |
| |
| |
Project management | |
| |
| |
| |
Breaking down the barriers | |
| |
| |
| |
The future | |
| |
| |
Index | |