Preliminary design
The ever improving adoption of technology in different sectors of the economy has witnessed a lot improvements and benefits in equal measure. The communication industry has not been left behind either. There has been serious need for the development of a network for communication that will help scale up the existing modes of communication. This has seen the emergence of the distributed message system. It is a complex message system that is able to allow for many operations and applications to effectively run together. The communication system was developed in order to enable both the sender and the receiver to communicate without any trouble or hindrances. It should be noted that the distributed system is an advanced version of the traditional message system (Bennett et al, 2015).
In order for the distributed messaging system to operate effectively, it is important to put in place a proper design process of the system that will ensure that the objectives or the intentions of the system are fully incorporated and perfectly developed. A proper analysis of the architecture that the system is expected to operate on has to be properly carried out. The distributed messaging system operates in such a manner that it allows for a stream of messages to be passed over it. The messages are passed in form of bytes. The location of the receiver is not dependent on anything, meaning that the receiver can be at any distance. The system is also useful since it is able to identify the path that would have minimum traffic.
A lot of activities and procedures are involved when designing such a system. An initial preliminary design is worked on. The preliminary design will identify the basic requirements for the design of the process. The criteria used when designing such a system will also be discussed. Once the preliminary design stage is completed, it moves to the detailed design stage. This stage presents a very expressive outline of how the system was set up. All the sections and procedures are clearly shown (Bhatnagar & Reddy, 2014). Once complete, it is important to determine whether the system meets the intended objectives. A system test is therefore necessary. It then should be evaluation to determine whether it achieves optimization. All the above activities are necessary for any system design and will be discussed in this paper for the distributed messaging system.
This section will outline the definitions as well as the development of the concept of distributed messaging system. The main idea of this phase is to determine whether the system will abide by the performance and the design specifications. It will also outline whether the system can be developed using the available methods (Buede & Miller, 2016).
A distributed messaging system can be designed to serve a number of purposes. It will present an ability to link both the remote users and the remote resources in a scalable and open manner. Proper distributed system design should be able to remain open for interactions with other components. It should also be a system that can be altered in order to accommodate changes in the resources, number of users and also the computing entities. The preliminary design must therefore ensure that the distributed messaging system is much larger and powerful and most importantly must be reliable (Coffman et al, 2017).
Detailed design
Some of the design features that the distributed messaging system must have include the following;
- Security- the distributed system will be able to authenticate access to services and data.
- Fault tolerance- the system will be able to make a recovery from any component failure without necessarily conducting incorrect actions.
- Recoverability- the system allows for failed components to restart themselves and thereafter rejoin the system whenever the cause of the failure has been repaired.
- Scalability- the system is able to function perfectly even as some of the system aspect are scaled to a larger size (Magnoni, 2016).
- Availability- the system is able to restore operations which then allows it to resume providing the services even when there are some failed components.
- Consistency- the system is also able to carry out several actions all at a time by multiple components that are usually in the presence of failure and concurrency. This makes it to perfectly act as a non-distributed system (Ehn, 2017).
- Predictable performance-the system should also be able to offer the desired responsiveness in a timely manner.
The above standards may be difficult to achieve for the system. It is therefore important to have in place that will ensure that the system meets the intended objectives and performance. In order to achieve that, there are 8 assumptions that have to be considered and that will give guidance during the process of designing the system (Singh, 2014). They are commonly known as the 8 fallacies. They are;
- The network is reliable.
- The network is secure
- Bandwidth is infinite.
- Transport cost is zero
- Topology doesn’t change.
- Latency is zero.
- The network is homogeneous- a network that runs a single network protocol
- There is one administrator.
Designing a communication system that will be reliable and one that that will run over an unreliable network of communication is a complex activity that requires proper detailed design in order to achieve. This is because a process clearly knows its own state as well as the previous states that the processes were in earlier. The design of the system require real actions and not just assumptions (Espino & Verizon, 2014). The first step of the design process is to limit the scope. Our focus will be mainly on a given type of distributed messaging system design that makes use of a client server model that has standard protocols. The purpose of the standard protocols is to offer favorable help with the low level details of reliable communication network. This intends to make the job much easier.
To begin with, we get to make a review of the client server technology as well as protocols. In such applications, there is server that offers some services that include sending out the current stock prices and processing database queries. It is necessary to have a very reliable communication that exists between the client and the server. This means that there is no data being dropped. It also implies that the data has to get to the client side in exactly the same order that it was sent from the server. In the distributed communication system, there are a lot of server types that are encountered. A file server serves the purpose of managing the storage units of a disk that the file system is located (Evans & Brooks, 2016). The database servers serves the purpose of housing databases as well as availing them to the clients. The network name servers carries out implementation of a mapping that exists between a service description or a symbolic name and a value. The value may be an IP address or port number.
Figure 1: The client server technology.
In any distributed communication system, there can exist several servers of a particular type such as multiple network name servers or multiple file servers. We can use the tern service to represent a set of servers that are of a particular type. Whenever a process that requires access to a service gets associated with a particular server that offers the service, the process is defined as binding (Filbeck, Wallaert & Thorson, 2017). There exists a number of policies of binding that outline how a given type of server is chosen. For instance, the policy can be on the basis of locality, where a Unix NIS client begins by looking for a server on its own machine, or on the basis of load balance, where a CICS client is bound to ab extent that there is an attempt for uniform responsiveness for all clients.
A distributed communication system also makes the use of data replication. This involves a service maintaining multiple data copies in order to allow for local access at multiple locations. It could also enable increase of the availability whenever a server process happens to crash. Another common concept in the distributed system involves locally maintaining copies of data whenever there is need to access the quickly. This concept is known as caching. Whenever there is a request from a cached data and instead of the primary service, the concept is referred to cache hit. The process of caching is similar to that of replication only that the cached data can at times get stale. This therefore brings a need of developing a policy that validates the cached data item before it is used (Grohman, & Filbeck, 2015).
Given that the communication between a client and a server may not be reliable, the internet protocol (IP) suite will therefore facilitate communication between most commercial networks and the internet. The transmission control protocol (TCP) will enable the clients and the servers to develop connections to each other such that they can exchange data in packets. This is because it assures reliable delivery of data. An IP suite has got 4 types of layers;
- Application layer
- Transport layer
- Network layer
- Link layer
The design of a distributed communication system can be proved to have a lot of positive benefits towards the communication network. Once set up, a system test has to be carried out in order to determine whether the system is effective or not. During the system test, it is also evaluated to find out if the system achieves the intended objectives (Grohman, 2016). The distributed communication system was therefore realized to handle the following concerns.
- Loss of network data that results in retransmit. Any communication system will always try to achieve at most once transmission tries. At times whenever a duplicate transmission occurs, it will require a well-designed system to try reduce the damage. This is often achieved by the distributive communication system (Grønbæk, 2017).
- Crash of a server process during RPC operation- in a situation where a server process crashes and the task is not completed, the system will carry out a retry request once the recovery of the server is completed, bit whenever the server crashes while completing the task but there is no RPC reply sent, there may be resultant duplicate requests due to the a number of client retries.
- Client processes crashes before receiving response- when such a situation happens, the client is restarted and the server does away with the response data. A detailed distributed system will probably handle such an occurrence (He, Fu & Hägg, 2015).
An important of a system design. In this case, an evaluation for the distributed communication system will enable a determination of whether the system goals will be met. Evaluation on the detailed design will enable an understanding of the language(s) that the system will support. The message formats that the system will support will also be determined. Whether the system will be on the basis of broker or if it will be on the broker less messaging. The type of utility tools that the system will be based on will also be determined. Most importantly, an evaluation is carried out to determine whether the design is for throughput, ease of use, high fan, latency, persistence, small or large messages or high fan out. A proper evaluation is therefore necessary.
Conclusion
The design of the distributed messaging system serves the purpose of making important improvements in the field of communication. The system will be able to be adopted and effectively used by different members within the society. An evaluation carried out to determine the benefits of the distributed messaging system tends to prove how the system will be a big boost to the communication industry (Winkler, 2016). All this can be attributed to the unrelenting efforts that were made by the designers of the system. The system had a detailed design that was put in place to ensure that the intended objectives of the system are achieved and are fully effective.
The paper has clearly discussed the preliminary and detailed design phases of the distributed messaging system given that they are among the most important phases of any system design. Besides the above named stages, it is also important to carry out a system test once the design stages are complete. This helps in determining whether the system is good to go or whether there still are areas that should be improved. An evaluation is then carried out to determine how effective or beneficial the system is. From the above procedures, the distributed messaging system proves to be very beneficial and can be recommended for adoption (York, & Paradkar, 2016).
References
Bennett, I.M., Babu, B.R., Morkhandikar, K. and Gururaj, P., Nuance Communications Inc, (2015). Distributed real-time speech recognition system. U.S. Patent 9,076,448.
Bhatnagar, P. and Reddy, S., AUTHOMATE Inc, (2014). System, design, and process for strong authentication using bidirectional OTP and out-of-band multichannel authentication. U.S. Patent 8,763,097.
Buede, D.M., and Miller, W.D., (2016). The engineering design of systems: models and methods. John Wiley & Sons.
Coffman, D.J., Vanderveen, T.W., Lee, B.A., and Schlotterbeck, D.L., CareFusion 303 Inc, (2017). Distributed remote asset and medication management drug delivery system. U.S. Patent 9,600,633.
Ehn, P., (2017). Scandinavian design: On participation and skill. In Participatory design (pp. 41-77). CRC Press.
Espino, M., Verizon Patent and Licensing Inc, (2014). Method and system for brokering messages in a distributed system. U.S. Patent 8,849,892.
Evans, J. and Brooks, B., TigerText, Inc., (2016). Messaging system apparatuses circuits and methods of operation thereof. U.S. Patent 9,443,227.
Filbeck, A., Wallaert, T.E. and Thorson, T.H., Lennox Industries Inc, (2017). System and method for zoning a distributed-architecture heating, ventilation and air conditioning network. U.S. Patent 9,651,925.
Grohman, W. and Filbeck, A., Lennox Industries Inc, (2015). Communication protocol system and method for a distributed-architecture heating, ventilation and air conditioning network. U.S. Patent 8,977,794.
Grohman, W., Lennox Industries Inc, (2016). Device abstraction system and method for a distributed-architecture heating, ventilation and air conditioning system. U.S. Patent 9,325,517.
Grønbæk, K., Grudin, J., Bødker, S., and Bannon, L., (2017). Achieving cooperative system design: shifting from a product to a process focus. In Participatory Design (pp. 79-97). CRC Press.
He, X., Fu, C. and Hägg, M.B., (2015). Membrane system design and process feasibility analysis for CO2 capture from flue gas with a fixed-site-carrier membrane. Chemical Engineering Journal, 268, pp.1-9.
Magnoni, L. (2016). Modern Messaging for Distributed Sytems. Available from https://iopscience.iop.org/article/10.1088/1742-6596/608/1/012038/pdf Accessed on 21 Aug 2018.
Singh, R., Sahay, A., Muzzio, F., Ierapetritou, M., and Ramachandran, R., (2014). A systematic framework for onsite design and implementation of a control system in a continuous tablet manufacturing process. Computers & Chemical Engineering, 66, pp.186-200.
Winkler, R. (2016). Systems engineering implementation in the conceptual design phase of 4MOST. Available from https://www.4most.eu/cms/wp-content/uploads/2015/04/4MOST_SE_Paper_Spie_2014_Olga.pdf Accessed on 22 Aug 2018.
York, P. and Paradkar, A., (2016). Crystal engineering and particle design for the powder compaction process. In Pharmaceutical Powder Compaction Technology, Second Edition (pp. 248-265). CRC Press, 56-90.