The New epoch in the electronic world has turned former assumptions from legs on a head - former approaches to business and the software cannot bring success more. The electronic world now is distributed, parallel and interconnected. It is distributed - as the information is placed in many various places worldwide. Time of uniform central computers has passed. It is parallel - as activity occurs is decentralized and simultaneously. Now one stream of management is not enough neither for acceptance of the business decision, nor for performance of programs. It is interconnected - as any action in one place can affect world around considerably. Simple computer systems, languages and models of the past cannot correspond to modern requirements.
There is a set of driving factors in this new world. The number of the companies trusting critically significant operations to systems of distributed objects of the enterprise increases. These object-oriented systems contain the distributed servers and the databases incorporated for support of parallel operations. The increasing number of branches for realization of the activity is compelled to cooperate in a real-time mode. Banks, airlines and the telephone companies cannot work without intensive information interchange between all characters. At last, now we can meet real time devices everywhere - in machines, devices, household electronics and buildings.
Significant drop in prices on microprocessors, semi-conductor microcircuits, devices and so essential increase in performance of the microprocessors, observable during several years, made profitable using the distributed systems and real time systems based on microcontrollers. Today the majority of the commercial, industrial, military, medical and household goods is supplied with microprocessors and entirely or in a significant part cope programs. Such systems meet in microwaves and video recorders, in phones and TVs, in cars and planes, in submarines and spacecrafts, in industrial automatic devices and cash dispenses, in medical diagnostics systems and control systems of manufacture, in control systems of all types of transport and control systems of lifts, in controllers of robots and in e-mail, in commerce and in systems of monitoring, in "intellectual" transport and information highways. This list can be continued indefinitely. All this parallel systems, and many of them are besides distributed or real time systems.
At the beginning of development of computer facilities computer software was basically batch tasks. Programs were consecutive and worked in an independent mode. All actions of the consecutive program are made strictly serially. Now, when there are a huge number of interactive programs and the tendency of transition is distinctly traced to the distributed microcomputer systems, we can see that many appendices by the nature are parallel, as the certain kinds of activity in them occur logically simultaneously. Representation of such parallelism in the consecutive program conducts to complication of its structure, to appoint to each kind of activity a separate problem much easier. Some similar problems are carried out simultaneously, that is in parallel, and quite often they cooperate, communicate, and synchronize the work.
The quantity of systems, including distributed and real time, in which the role of parallelism is big grows. Property of the parallel application is presence of many problems which are carried out simultaneously. Thus the order of following of external events is often unpredictable, and the periods of processing of such events can be blocked. So, with the multi-user interactive system many persons work at once, and it is impossible to predict, from whom following event of input will come.
The consecutive application is a consecutive program which consists of passive objects and has only one stream of management. When one object causes operation of other object, management is transferred from the caused operation to cause. After the caused operation finishes, management comes back the caused operation. In the consecutive application there is only a synchronous message transfer.
In the parallel application, as a rule, there are some active objects - everyone with the stream of management. In this case asynchronous message transfer is supported: the active object-sender can send the asynchronous message to active object-addressee, and then continue working on the program without dependence from, whether the information up to the addressee is cunning. If the object-addressee during the moment of arrival of the message is borrowed by processing of other work the message is put in turn.
The Concept of parallel work is widely spread at designing of operational systems, databases, and real-time systems, the interactive and distributed systems. The basic complexity consists in breaking of the application into parallel streams carried out problems and to give means of an exchange of messages and synchronization of these problems among themselves.
Real time systems are parallel systems with time restrictions. They are widespread in commercial, military and industrial applications. The term "real time system" usually concerns to system as a whole, including the real time application, real time operational system, a subsystem of input/conclusion of real time, and also the drivers of special devices operating work of various gauges (entrance devices) and mechanisms (target devices).
Real time systems are often very complex, as their work is connected with numerous independent streams of entrance events and producing the various target information. Frequency of receipts of events is usually unpredictable; however it is necessary to react quickly enough, in order to observe the time restrictions formulated in requirements to the program. Quite often it is impossible to foresee the order of receipt of events. Besides entrance loading can considerably and is unexpected change.

The Distributed application is a parallel application which is executed in the environment consisting of several geographically carried units. Each unit represents the separate computing system, and these systems are connected by local (or global) network. While the software necessary for support of distributed applications is very difficult and variously the term "the distributed system" usually designates the distributed operational systems, the distributed file systems distributed microcontroller control system, the distributed databases, etc.

The Distributed processing has following advantages:
- The raised availability. If some units are temporarily inaccessible, operation is carried out in the reduced configuration. There is no uniform point of refusal;
- A flexible configuration. The same appendix is admissible to configure in the various ways, using various number of units;
- An opportunity of expansion of system. If necessary it is easy to expand system due to addition of new units;
- Reduction of expenses. Frequently distributed decision appears more cheaply centralized, especially if to consider promptly decreasing cost and increasing productivity of microprocessors.
Now successful development of any modern enterprise is impossible without use of the integrated computer systems and technologies. The major part of such systems are networks for data gathering, information interchange, managements of the process equipment, the control of productions, in the organization of a life and leisure, etc. Requirement to parameters of networks is separated depending on their application, however, for any network the major are adaptability, survivability and openness. As adaptability understand an opportunity of adjustment at change of a configuration of a network or its elements. Survivability assumes ability to carry out the established functions in conditions of influence of an environment or refusals of components of system. The openness of a network means an opportunity of its modernization without infringement of functioning.
The Significant part of appendices of network technologies is connected with service of business and manufacture, however, already now they find application and in a life. Convergence of computer branch and the industry of household electronics open new, unknown prospects before manufacturers.
Now there is a set of various network technologies. However, wide introduction of microprocessors and microcontrollers in the most various equipment has demanded presence of the networks uniting various electronic devices. One of such powerful and highly effective decisions of the organization of a network is network interface CAN (Controller Area Network). Today it is possible to consider the CAN-interface the standard consecutive interface of the microcontrollers used in any types of distributed built-in applications, i.e. CAN represents system of the distributed messages. Owing to the distinctive features, availability of inexpensive network controllers from many manufacturers, and also simplicity of realization of development of the network decision, the CAN-report today is applied:
- In any type of mobile system (cars, buses, trains, planes, the ships, etc.);
- On manufacture (from machine tools up to control systems of robots and telemetry);
- In monitoring systems and managements (the control of fire safety, the control and management of systems of an artificial climate (temperature, humidity, light exposure, an air conditioning), the control and management of chambers of tracking, management of devices of illumination, protection and the signal system, data gathering over various devices and gauges, and other);
- In medicine;
- In a life (allows connecting together audio and video devices, phone, computer, etc.).
We shall result the most accessible example. Each modern car is equipped with an onboard control system on the basis of the CAN-interface. The onboard system of the car represents the certain quantity of modules. Each module is responsible for the monitoring system or managements (for example, antiblocking break system, systems of ignition and management of the engine, fuel system, blocking of differential, management of light, drives of mirrors and windows, systems of safety and comfort, etc.). These modules are connected among themselves and with a control panel in interior of the car only with two (three) wire trunk. Now it is more cheaply, more reliably and more conveniently in operation to establish in each module the microcontroller, than "to pull" huge quantity of wires to each block of the car.
Why is CAN-interface so popular at developers and users? Here some advantages of the given network:
- Simplicity in installation and adjustment (the physical trunk represents twisted pair (shielded or unshielded) and the general wire, i.e. only 3 wires);
- High reliability (the controller ensures the functioning in a network even if any of 3 wires in the trunk is torn off or short-circuited (on a feed or on the general wire); even at breakage of 2 wires the part of functions of the basic system can be realized in each of the subsystems created by breakage);
- Network flexibility and simplicity of expansion (new devices can be added to a network without change of already existing software);
- Priority-based message transfers (each message has the priority level and if simultaneously there are two messages in the system, there message with higher priority is appropriated);
- An opportunity of simultaneous message transfer at once to several devices;
- Presence of the mechanism of detection and restriction of mistakes by transfer information (noise stability);
- High speed of data transmission;
- Maintenance of data exchange in real time;
- An opportunity of creation completely synchronous system.
It is not the full list of parameters of networks with the CAN-interface, but already it allows to carry the given system to the most perspective and promising. For example, application in system of the modules which are carrying out connection of a CAN-network with other networks, with the modem, the terminal, a computer, etc., allows realizing system of the remote control and management of the equipment and the personnel.

Recent successes in the field of development of hardware maintenance and a communication facility have led to avalanche growth of number of the parallel and distributed systems, and also systems of real time. It, in turn, promoted change of the requirements shown to the software.
Recently tendencies to rapprochement of two largest areas of development of the software - information systems and real time operating systems are observed. In large information systems there is a problem of adequacy of reactions of software during service of the big number of clients. Operating systems of real time, as a rule, not only operate any specific equipment, but also work with databases. For creation of such appendices it is necessary to unite object-oriented concepts with methods of parallel processing.
Basic structural unit of real time system is the object. Objects cooperate with each other. Objects are distributed - everyone supports the own condition which is distinct from others. Objects are parallel - each of them potentially can operate in parallel with others. Objects are connected - each of them can send each other messages through a network of connections (skilled developers know, what difficulties stand up for each of these terms separately, and creation of the systems possessing all three characteristics, - one of the most complex engineering problems.)
The New electronic world bears with itself greater opportunities, but they are given by high expenses for development. It is very difficult to understand extremely complex interactions of the parallel distributed systems, let alone a prediction. It is impossible to remove a backup copy from the distributed system and it cannot be restarted, if in any part failure will be found out. The system as a whole should work, despite of failures, mistakes or damage of data in its some parts. The majority of modern systems are real time systems. The Great value has coordination on time. And in end of everything, productivity of complex systems often happens nonlinear and cannot be predicted by simple extrapolation.
How to consult with all these problems? For this purpose it is possible to use the same methods which are applied by engineers of any area: modeling before construction, creation of architecture on the basis of former experience, the process based on optimum techniques, a reuse of components, and also the tools, allowing to raise efficiency of use of time and skills of the developer.
Increasing complexity of the modern software has led to creation of special scientific discipline - to computer engineering (Software Engineering) which primary goal is creation of effective methods of development complex ON (engineering designing of the software).
In traditional engineering disciplines last achievements of applied mathematics guaranteeing were always used, that the project will meet the put requirements at comprehensible expenses. Being based on the estimations received by means of mathematical model, it is possible to start confidently enough, for example, designing the bridge. However with reference to the software designing appears mainly informal process for which frequently there are no models and methods of forecasting of result. From this point of view would be rather instructive to compare evolution of program and hardware maintenance during several last decades. If hardware devices in due course became more tiny, more quickly and more cheaply programs, on the contrary, appeared more and more volumetric, slow, dear and less reliable. One of principal causes of such position consists that in a basis of designing of the modern equipment use prognostic models lays.
In practice of software development it is possible to explain Absence of fundamental engineering principles partly changeable, in something even chaotic, the nature of programs that strongly complicates mathematical modeling. As it is strange, the same people perfectly understand a difference between designing and assembly, for example, an air liner. As an additional obstacle that some of them are focused on traditional procedural programming serves. Though any fundamental dependence on such model is not available, the problem of a binding to more modern, object-oriented model nevertheless exists.
At a stage of design modeling the architecture of system is thought over. The analytical model, in which the basic attention was given a subject domain, corresponds with environment where the program will be maintained and with design model where the accent is put on area of the decision. Criteria of splitting of system on subsystems are formulated. In case of the distributed system the most important is division of the responsibility between units of system, including from the point of view of centralization and distribution of data and management. Besides interfaces for an exchange of messages are projected, synchronous, asynchronous, group communications and services are considered. Then there comes a turn of designing of separate subsystems. While designing of parallel appendices including real time systems, it is reduced basically to allocation of in parallel carried out object-oriented problems. Also interfaces for synchronization and by data exchange between problems are created.
Market globalization becomes universal, and it means, that to remain in business and to be competitive, industrial industries should pay greater attention to problems of quality and efficiency. In turn, it focus attention to development of the advanced control systems that processes proceeded in the best way. In particular, modern control systems - a key for perfection of the technology providing:
- The improved quality of a product;
- Minimization of losses;
- Increase in productivity for the established capacities;
- Higher level of safety;
- , etc., etc.
The list of the literature used at a writing of given clause
Хассан Гома . Designing of systems of the real time distributed and parallel appendices.
S.A.Tretjakov. Controller Area Network (CAN) - a local network of controllers.
G.K.Gudvin, S.F.Grebe, M.E.Salgado. Designing of control systems.
To return to the list of clauses
|