Assate: Object-Oriented Distributed Development System (1)
3. Key technologies of the layout system
3.1 Object-Oriented Technology Object-Oriented
Customer / server mode is a typical distributed computing model. In this mode, the client establishes a connection to the server, communicating by mutual agreed to achieve the purpose of exchange information. The Softengine core communication channel encapsulates these complex underlying details. By multi-layer package technology, the underlying object is completely isolated from the application object. SOFTENGINE only provides some abstract classes as an "soft bus" interface in the component area. As shown below:
Chart 2 Abstract Class Is The Interface of Soft-Bus.
Application Objects: Applications System Objects: System Object Infrastructure Objects: Bottom Object Abstract Class: Abstract Class
Designing a reusable object-oriented software is not a simple matter, a distributed reuse system is more difficult. It is well done on the basis of Softengine. Because its own architecture is an objective design, it is also reusable.
In the component area, developers only need to focus on the application's business, inherit the interface abstract class, implement the defined business process, and construct the application system by publishing instantiated application objects. This object-oriented development model is very simple, very effective, can also be relieved from heavy physical labor (coding), more energy for design work.
Application objects in the component area can be reused. According to certain release methods, you can use it again in different Softengine systems. Reuse can no longer depend on the quality of the encoding, but how to design a good application business logic. In this regard, we will discuss in subsequent pipeline design patterns.
3.2 Task Drive Task-Driven
The task driver is used inside Softengine. The task drive concept mentioned here is not exactly the same for some professional task-driven papers, closer to event drivers. That is, all objects are in an idle state when there is no task; until there is a task (event) reaches, the operation mode of the object is converted to the activation state.
During different objects, the transfer task is the only way to cooperate (Collaborate). There are two models in cooperation:
Completely independent mode
(Individual)
Loose coupling mode
(Loosely Couple)
The following shows the differences:
Chart 3 Individual and Loosely Coupled Collaboration
Object
A
Object
B
Sequentially handle the same task, object
B
Must wait for the object
A
Process. Object
A
Object
B
Cooperative relationship is called: loose coating mode
.
Object
B
Object
C
Different tasks separately. This relationship is called: completely independent mode. That is, the object
C
The tasks needed, not always from the object
B
There is no necessary association between them.
In fully independent mode, the object C is relatively independent of the function, and the efficiency is relatively high, which has high real-time. However, there is a relatively concentrated in function, and the adaptability is relatively poor, and the possibility of reusable is also relatively reduced. Loose coupling mode, to complete the task, subdivide the processing steps / functionality into different objects. Make the functions of objects A and B relatively special, adaptability, and reusability also increases. At the same time, it is more convenient to adjust the load balance (Load Balancing). However, the task has multiple delivery, and the relative coupling relationship, it also reduces local processing performance. The performance comparison of the two shown below: Figure 4 Performance of Collaboration
In practical application development, if you select a fully stand-alone mode or loose coupling mode, depending on how the application is defined in the design phase. This will be elaborated again in subsequent chart: pipeline design mode.
Each of the transferred tasks has its own living cycle, from being generated to be discarded. Survival period below picture:
Figure 5 Live-cycle of task
Created: is generated to send backward: Send Pending: Suspension Timeout: Timeout Operating: Process Droped: Discard
A task is generated by a function object, and transmits (forward) to the next destination object, where the task will be discarded, or returned (backward) to the source object. This is a regular task survival cycle, but if the target object is not reachable during the task transfer, this task will be suspended. Until continued to transfer or timeout (TIMEOUT) was discarded. The security issues in the transfer will be discussed in subsequent data security topics.
Subsequent: Object-Oriented Distributed Development System (3)