Book contents
- Frontmatter
- Contents
- acknowledgements
- Introduction
- PART 1 ARCHITECTURE
- PART 2 DESIGN
- PART 3 PROGRAMMING
- Chapter 8 Implementing an Application Server Framework
- Chapter 9 Using Java to Build Business Objects
- Chapter 10 Persistent Objects: Communicating with Databases
- Chapter 11 Interfaces and Client-Side Communication
- Chapter 12 Enforcing Business Rules
- Chapter 13 Multiprocessing, Concurrency, and Transactions
- Chapter 14 The Next Generation of Business Applications
- Appendix: Setting up a Development Environment
- Index
Chapter 13 - Multiprocessing, Concurrency, and Transactions
from PART 3 - PROGRAMMING
Published online by Cambridge University Press: 06 July 2010
- Frontmatter
- Contents
- acknowledgements
- Introduction
- PART 1 ARCHITECTURE
- PART 2 DESIGN
- PART 3 PROGRAMMING
- Chapter 8 Implementing an Application Server Framework
- Chapter 9 Using Java to Build Business Objects
- Chapter 10 Persistent Objects: Communicating with Databases
- Chapter 11 Interfaces and Client-Side Communication
- Chapter 12 Enforcing Business Rules
- Chapter 13 Multiprocessing, Concurrency, and Transactions
- Chapter 14 The Next Generation of Business Applications
- Appendix: Setting up a Development Environment
- Index
Summary
One of the most striking differences between traditional client/server development and the application server environment is the need to service a large number of users simultaneously. Instead of relying on database servers to manage concurrent access, it is now the responsibility of the application programmer to anticipate these needs, making sure that one user's service request does not interrupt or corrupt another service already running. Because of this added complexity, the programmer must decide when objects can be shared, when separate instances must be created, how to synchronize persistent data between objects, and how to coordinate changes in data when there is a chance that it can be modified by other applications.
Fortunately, you have many tools and techniques available to handle these issues. You can purchase middleware tools to replace some of the functionality that used to be provided by the database server. Most development environments provide tools to manage concurrent access, object brokers can assist in life cycle management, and transaction monitors can support complex application dependencies. There are also techniques that can ease concurrency and life cycle management. Application server implementation is far more complex than traditional client/server development, but with the proper approach, your application framework will be open, robust and ready to grow with your business.
This chapter will examine the following issues:
The trouble with multiprocessing
Multiprocessing within the application server
The class factory model
Multi-threading
Synchronizing objects and data
Transactions
The Trouble with Multiprocessing
Multiprocessing, the ability to service many different users at the same time on the same machine, introduces several new issues that are not often addressed in traditional client/server development.
- Type
- Chapter
- Information
- Building Application Servers , pp. 331 - 368Publisher: Cambridge University PressPrint publication year: 2000