| |
| |
Preface | |
| |
| |
How This Document Is Organized | |
| |
| |
Related Publications | |
| |
| |
International Technical Support Organization Publications | |
| |
| |
ITSO Redbooks on the World Wide Web (WWW) | |
| |
| |
International Technical Support Organization | |
| |
| |
About the Authors | |
| |
| |
Acknowledgments | |
| |
| |
| |
The Need for Distributed Object Computing | |
| |
| |
From Host Computing to Client/Server Computing | |
| |
| |
Different Approaches: Fat Clients and Fat Servers | |
| |
| |
From Procedural Computing to Object Computing | |
| |
| |
Where Are We Today? Distributed Object Computing | |
| |
| |
Evolution of Object-Oriented Computing | |
| |
| |
Standards | |
| |
| |
Benefits | |
| |
| |
Onset of Network Computing | |
| |
| |
Conclusions | |
| |
| |
| |
The VisualAge Distributed Feature | |
| |
| |
What Is the Distributed Feature? New Terms for Distribution | |
| |
| |
Object Spaces | |
| |
| |
Object References | |
| |
| |
Shadow Objects | |
| |
| |
Remote Objects | |
| |
| |
Name Servers | |
| |
| |
The IBM Smalltalk Distribution Toolkit | |
| |
| |
Distributed Debugger | |
| |
| |
Distribution Matrix | |
| |
| |
Event Profiler | |
| |
| |
Event Services Framework | |
| |
| |
Name Server Browsers | |
| |
| |
Name Server Distributed Part | |
| |
| |
Object Visualizer | |
| |
| |
Remote Browsers | |
| |
| |
Remote File Dialog | |
| |
| |
Remote Inspector | |
| |
| |
Remote Transcript | |
| |
| |
Remote Workspace | |
| |
| |
SOM and DSOM and the Distributed Feature | |
| |
| |
OMG's CORBA | |
| |
| |
System Object Model (SOM) | |
| |
| |
Distributed System Object Model (DSOM) | |
| |
| |
VisualAge SOM/DSOM Support 33 Choosing Distributed Feature or SOM/DSOM Support | |
| |
| |
| |
Applications Suitable for the Distributed Feature | |
| |
| |
Object Server | |
| |
| |
Active Server | |
| |
| |
Peer-to-Peer Applications | |
| |
| |
Applying the Distributed Feature | |
| |
| |
Summary | |
| |
| |
| |
Set Up the Development Environment | |
| |
| |
Prerequisites | |
| |
| |
Hardware Configuration | |
| |
| |
Prerequisite Software | |
| |
| |
TCP/IP Configuration | |
| |
| |
Installation | |
| |
| |
VisualAge for Smalltalk, Professional Server | |
| |
| |
VisualAge for Smalltalk, Professional Client | |
| |
| |
Additional Clients | |
| |
| |
Server Activator File | |
| |
| |
Verification | |
| |
| |
TCP/IP Configuration | |
| |
| |
Distributed Feature Configuration | |
| |
| |
| |
A Quick Tour Through Distributed Object Land | |
| |
| |
The Celsius/Fahrenheit Converter | |
| |
| |
Building the Stand-alone Application | |
| |
| |
Moving the Model Object to a Remote Object Space | |
| |
| |
Accessing the Same Model Object from Two Clients | |
| |
| |
Dividing the Application | |
| |
| |
Using the Distribution Matrix | |
| |
| |
Real Distribution: Using a Distribution Matrix for the Run-time Scenario | |
| |
| |
Experiences | |
| |
| |
| |
The Foreign Currency Exchange Application | |
| |
| |
The Original (Nondistributed) FCE Application | |
| |
| |
Requirements Specifications Summary | |
| |
| |
The Object Model | |
| |
| |
The Nondistributed Implementation | |
| |
| |
Scenarios for a Distributed FCE Application | |
| |
| |
Object Server: Currency Management | |
| |
| |
Active Server: Exchange Rate Management | |
| |
| |
Peer-to-Peer: Trading Currencies Between Banks | |
| |
| |
The Residency Project | |
| |
| |
| |
Planning a Distributed OO Development Project | |
| |
| |
Considerations for Distribution Using the Visual Modeling Technique | |
| |
| |
Project Team Structure: Roles and Responsibilities | |
| |
| |
Iterative Development | |
| |
| |
Incremental Development | |
| |
| |
| |
Designing Distributed Object Applications | |
| |
| |
System Design Considerations | |
| |
| |
Object Design Considerations | |
| |
| |
Distribution Techniques | |
| |
| |
| |
An Approach to VisualAge Application Architecture | |
| |
| |
Introduction | |
| |
| |
Implementation of Layering Within the Residency Project | |
| |
| |
A User Interface Class: EmsCurrencyListView | |
| |
| |
A Business Domain Class: EmsCurrencyList | |
| |
| |
An Infrastructure Class: EmsPersistenceManager | |
| |
| |
Implementation of Instance Uniqueness Within the Residency Project | |
| |
| |
A New Superclass: EmsUniquePart | |
| |
| |
Singleton Classes | |
| |
| |
Questions to Be Addressed | |
| |
| |
| |
Introduction to the Distributed FCE Case Study | |
| |
| |
| |
The First Iteration | |
| |
| |
Overview | |
| |
| |
Business Domain and Infrastructure Layers | |
| |
| |
The User Interface Layer | |
| |
| |
Testing and Distributing the Application | |
| |
| |
Performance Analysis | |
| |
| |
Visualizing the Application Before Distribution | |
| |
| |
Profiling the Application After Distribution | |
| |
| |
Conclusions | |
| |
| |
| |
The Second Iteration | |
| |
| |
Overview | |
| |
| |
Applying the Golden Rules | |
| |
| |
Maximizing Local References | |
| |
| |
Minimizing Remote Messages | |
| |
| |
Adding the Dependency Mechanism and Parallel Processing | |
| |
| |
Performance Analysis | |
| |
| |
Profiling the Local Client | |
| |
| |
Conclusions | |
| |
| |
| |
The Third Iteration | |
| |
| |
Overview | |
| |
| |
Creating Local Copies of Remote Objects | |
| |
| |
Controlling Message Flow Between Object Spaces | |
| |
| |
Performance Analysis | |
| |
| |
Profiling the Local Client: Last Pass | |
| |
| |
Conclusions | |
| |
| |
| |
Applying the Event Services Framework | |
| |
| |
Using a Single Event Channel for Each Server Currency | |
| |
| |
Using Two Event Channels for Each Server Currency | |
| |
| |
| |
Testing Distributed Applications | |
| |
| |
Model Testing | |
| |
| |
Class and Unit Testing | |
| |
| |
Integration Testing | |
| |
| |
| |
Run-time Configuration Considerations | |
| |
| |
Building the Final Product | |
| |
| |
Preparation | |
| |
| |
Packaging the Application | |
| |
| |
Keeping Application Components in Sync | |
| |
| |
| |
Optimization and Performance Tuning | |
| |
| |
The Golden Rules | |
| |
| |
First Rule: Maximize Local References | |
| |
| |
Second Rule: Minimize Remote Messages | |
| |
| |
Third Rule: Do Not Wait Unless You Have To | |
| |
| |
Optimization Through Design | |
| |
| |
Iterations of Distribution Design | |
| |
| |
Object Copy Management | |
| |
| |
Object Space Layering | |
| |
| |
Uniqueness of Instances | |
| |
| |
Preconnect Object Spaces | |
| |
| |
Optimization Summary | |
| |
| |
| |
Lessons Learned, Hints, and Tips | |
| |
| |
Experiences During the Quick Tour | |
| |
| |
Modal Dialogs | |
| |
| |
Explicit Notification Mechanisms | |
| |
| |
Configuration Management | |
| |
| |
Development and Setup | |
| |
| |
Concurrency | |
| |
| |
Using Callbacks | |
| |
| |
Further Hints and Tips | |
| |
| |
| |
Requirements Specifications | |
| |
| |
Branch Functions | |
| |
| |
Central Bank Functions | |
| |
| |
| |
Database Definition | |
| |
| |
COUNTRY Table | |
| |
| |
CURRENCY Table | |
| |
| |
| |
Sample Code | |
| |
| |
First Iteration | |
| |
| |
EmsCurrencyEditView | |
| |
| |
EmsCurrencyListView | |
| |
| |
EmsInternationalOOBankAppView | |
| |
| |
EmsCountry | |
| |
| |
EmsCurrency | |
| |
| |
EmsCurrencyList | |
| |
| |
EmsFceDatabaseAccessSet | |
| |
| |
EmsPersistenceManager | |
| |
| |
EmsUniquePart | |
| |
| |
Second Iteration | |
| |
| |
EmsCurrency | |
| |
| |
EmsPersistenceManager | |
| |
| |
EmsUniquePart | |
| |
| |
EmsExchangeRate | |
| |
| |
Third Iteration | |
| |
| |
EmsCurrency | |
| |
| |
EmsCurrencyList | |
| |
| |
EmsPersistenceManager | |
| |
| |
EmsUniquePart | |
| |
| |
List of Abbreviations | |
| |
| |
Bibliography | |
| |
| |
Index | |