|
||
Lesson 5
Objective
|
Separating business logic and system services
Identify business logic and system service infrastructures |
|
|
In the past, when one wrote the code for a remote object, you required the skills related to the business logic as well as the skills
to handle transactions, security, concurrency, and other system concerns.
Business logic
These skill sets are very different from one another, and it would be more efficient if we could separate the concerns to relieve the programmer from having to wear many hats at the same time. Let us examine the two areas.
Remote objects provide some business service that is programmed into their methods. To program the remote object will require
specialized knowledge of the business rules applied to the service. The programmer will, therefore, need to be an expert in the
business rules.
System services
For the remote object to provide the services in a reliable secure manner, it must behave appropriately within the system
infrastructure in which it executes. A systems programmer is required to implement these services (often known as
"plumbing"), which include, but are not limited to:
Transaction management: Managing multiple operations in an object such that they all are executed or none are executed. This ensures consistent state of the underlying persistent information. An analogy to this is that, when you want to take a shower, you need to know where the bathroom
is and, once there, you can take a
shower without connecting pipes, etc. In fact, you do not need to understand plumbing at all. However, to install a shower you require
a plumber.
In the diagram below I have shown the remote object, which provides some business service, supported by the system infrastructure and the specific services it may provide.
In the next lesson, you will be introduced to reusable components. |
||
|
|
||
