The BankManager service shown in Chapter 29 is an example of a Server Activated Object (SAO).
Although SAOs are sufficient for most uses, they have a number of restrictions:
SAOs don’t enable clients to control when they are created.
They are either just shared (singleton) or created on demand (per-call).
SAOs don’t enable per-client state to be preserved between subsequent method calls.
You can only create SAOs using the default constructor.
There are cases in which these limitations are too restrictive.
Client activated objects (CAOs) provide you with an alternative solution. Client activation allows you to
directly control when remote objects are created
provide each client with a unique copy of the object and thus allow per-client ...