Back to the first article
Previous article: Object-oriented distributed development system (3)
3.5 Water Wire Forms PIPELINININININING DESIGN Model
"Irradiation" is often discussed when discussing CPU technology. In the CPU design, the problem of non-flow wire design mode is that each unit directive must be completed before another instruction. This will have a lot of idle time slice, no efficiency. The most basic idea of the pipeline is to take advantage of the Idle components within the CPU, so that there can be more unit instructions simultaneously, reduce idle time slips. That is, there is no waiting for the unit instruction. Very obvious, this technology can greatly improve hardware efficiency.
This idea is borrowed within Softengine, replacing the task instead of instead of the hardware component. The basic theory of the pipeline design: divides the big task into a series of overlapable, smaller tasks, and is also processed by some function objects. Therefore, on the basis of Softengine, the designer applied by the application needs to analyze the process of processing, divided into large tasks in the design phase, and improve the performance of the application system. Softengine can effectively support this advanced design pattern.
For example, in a normal development and design (non-streamline design), it is assumed that a task requires 4 steps.
Step 1: Save data to disk, time consuming
100MS
Step 2: Read historical information from disk, time consuming
20ms
Step 3: Read configuration information from memory, time consuming
5MS
Step 4: The result is calculated, and the result is returned, time consuming
10ms
See below:
Chart 11 Non-Pipelining Mode
The processing time of the entire process takes 135ms, and the return time requested is also 135ms. It is not difficult to see that the first step is the most time consumption, but it is a key step of workflow, and the follow-up step does not wait for its operation. And in this workflow, each step is to wait for the previous step (at the same time, there can only be one step at work), so 135ms is not the optimization result.
Through the pipeline design pattern, it can be optimized. First, this task is divided into three small tasks, respectively, by four objects, so five objects are designed:
Object
A
: The big task is three small tasks and distributes. As a task begins.
Object
B
: Save data to disk, time consuming
100MS
Object
C
: Read historical information from disk, time consuming
20ms
Object
Di
: Read configuration information from memory, time consuming
5MS
Object
E
: Waiting for the task
2
with
3
The result, returned, time consuming
10ms
See below:
Chart 12 Pipelining Mode
Although each step is processed and has not decreased. However, the time-time operation of the object B is arranged in the main process, so there is no impact on the entire processing time. The processing of objects C and D is arranged at the same time. Object E wait for C and D. So as long as the workflow is:
(A) -> (c, d) -> (e)
Step by way of considering the timing transmission time coupling time, and the distribution time of A, the total response time is:
MAX (C, D) E = Max (20, 5) 10 = 30ms.
Therefore, the advantages of the pipeline design model are obvious. It also improves the past development process.
4. Improvement of distributed systems for development processes
The above introduction to the key concepts and techniques of distributed development systems. With these technologies, it can not only improve the performance of the system, but also improve the environment and steps developed in the past. The development steps include the following 5 steps: Design Design:
Change the practice of past designs, mainly concentrate on the design of business processes, workflows, task flows. Constantly optimizing the process is the key to the success of the application system.
Define define:
After the process is determined, you can define a variety of function objects, service objects, task objects, and description. This process needs to place the defined object into the determined process, simulate its usability, validity, etc.
.
Realize Realization:
Start implementing various objects defined. And the unit white box test is carried out to ensure the stability of each object itself. In the process of implementation, it will find contradictions in definitions, and it is necessary to discuss the modification with the designer.
Deploy deployment:
After each object is implemented, the system can be deployed in accordance with the design of the design. The entire process is system adjustment through the configuration file. So whenever the object has strong independence, and guarantees that each object has been minimized, it can be guaranteed in the joint test, there will be no more modification works. But in the deployment, the original process will be adjusted according to the actual situation to achieve the best results.
Transport
Row Running:
The final step of development is to enter the operating state.
Chart 13 Development Process
Compared with traditional development processes, the division of each stage is more clear, which is conducive to division and division of labor of different roles. Especially in the deployment phase, the original designer can use the component object that is completed, and directly intervene in the system. Another advantage is that the entire development cycle is shortened. These are uniform structured structures that do not need to be designed to define objects in accordance with certain models, which are uniform structured, which are uniformly multi-traditional software development. Especially sufficient white box tests, the success rate of the joint test is improved, and there is a lot of time.
5. Small knot
In this article, Softengine takes the key technologies needed to develop a distributed or traditional application system development with Softengine as an example. I hope to provide some good architecture and improve our development environment for non-Web application development platforms.
In subsequent articles (application articles), there will be a few practical cases, such as how to build the fastest, flexible, and most stable wireless digital value-added service (SMS SMS, MMS MMS) platform, and related components, etc. Describe their distributed, componentized systems, and specific solutions. Further talk, the operability of the actual application.
Note:
Some views mentioned in the article are just the experience in development, represents only
Distributed technology involved in the article can also be in Softengine
Defirmed
.
More cases, and related technology software downloads: http://www.snapbug.net
(Finish)
Back to the first article