An operation is the entity responsible for performing the set of tasks needed to complete a basic financial operation, including data input and validation, interaction with external services, and management of the results and data received. An operation has a requester that requests its execution, provides input data, and eventually receives the results. The operation requester can be a Java application, an applet, a batch command processor, another more general operation, and so on. Since an operation is completely separate from the requester (the entity that launches an operation), different requesters can run the same operation.
For a given operation, there may be an operation view and an operation model on the client and on the server with their corresponding operation flow. Each different task within the operation flow can be implemented as an operation step. Because the toolkit operates in a distributed client/server environment, the operation views, models, and steps play its role in the client, the server, or both.
An operation can be categorized as being either a generic operation or a concrete operation. A generic operation provides common functionality for many concrete operations while a concrete operation provides the functionality required just for the operation itself. A concrete operation usually extends a generic operation to take advantage of its common functionality and may consist of only XML definitions. In this case, the operation uses code from a generic operation and the operation definitions from the concrete operation.
An operation can also be categorized according to whether it runs on the client (client operation) or on the server (server operation.) A client or server operation can also be a generic or concrete operation. In a Java client environment, there can also be operations called client/server operations in which some operation flow occurs in the client and some operation flow occurs in the server. The client/server operation uses one client operation to execute its client flow and one server operation to execute its server flow. The client and server operations can communicate with each other using events. The Event Manager (see Events) is responsible for managing these events.