Distributed systems are systems that mainly have computers that are independent and are mainly connected with the distribution middleware. The resources are shared in the systems which use the distributed system (Finkbeiner and Tentrup 2014). This paper mainly highlights the details of the distributed systems and presents a detailed comparison between the distributed systems and the non-distributed systems. Light is shed on a mobile distributed system and also ubiquitous systems in this report. The social issues that rise from ubiquitous systems are also given in details in this report.
Distributed Systems, Mobile Distributed Systems and Non-Distributed Systems
Definition of Distributed System
A network system that has independent computers which are connected by distribution middleware is called distributed system. With the help of distributed systems, different types of resources can be shared and provides the user with the capability of single coherent network as well as integrated network (Brand, Grawunder and Appelrath 2017). There are certain key features that are involved in distributed system. The main feature of distributed systems is that the components that are involved in distributed system are concurrent. Resource sharing is allowed in distributed system that includes system software connected with network. There is a possibility of multiple components but are generally autonomous. The distributed system do not require global clock. The system may have different geographies. The distributed system has greater fault tolerance compared to other models of network. The performance and the price ratio much better than other models.
There are certain goals of distributed system. The goals include transparency that includes to achieve the image of single system without having permanent details of location, migration, failure, persistence, relocation, resources and access to users. The second goal is openness which includes to make the network with easy modification and configuration (Völter, Kircher and Zdun 2013). The third goal is reliability. A distributed system is highly capable so that that it can be secured, capable for handling errors and should be consistent. The performance of distributed models boots the performance of the system. There should also be a scalability in the distributed system in respect to administration, size, and geography.
Difference Between Distributed Systems and Mobile Distributed Systems
Distributed system is known as software system which has components that are located mainly on networked computers which helps to coordinate and communicate all the actions by message passing. The components involved with distributed system interact with one another in order to achieve common goal. On the other hand, the goal of mobile distributed system is to show location that is based on alarm system by which the customers get a chance to locate their last position in case of emergencies (Leesatapornwongsa 2017). The applications of distributed system mainly runs on many computers with the network at same time and can also be stored on servers or can be stored with cloud computing. The distributed system provides a depth understanding of all the fundamental principles and all the models that underline the theory, systems, and algorithms related to distributed computing. Emerging topics of distributed systems are peer-to peer computing, HDFS, Google File System, Sensor Network, Distributed Hash Table, and also distributed systems that are needed with for some impact. The system of mobile distributed system mainly consists of two part: server side and the client side. The server side of mobile distributed system has many servers when they are ran on Linux and the client side mainly works on iPhone and other platforms of mobile phone.
Ubiquitous Distributed Systems
The concept of software engineering and also computer science is known as ubiquitous computing which makes computing everywhere and anytime. In comparison with desktop computing, any device can be used for ubiquitous computing. This can happen in all locations and can come in any format. The user having ubiquitous computing can interact with any computer that exists in different forms, including computers, tablets, terminals, and laptop (García-Valls and Baldoni 2015). There are also everyday objects with which a user can interact with computer. They are pair of glasses or may be a refrigerator. The technologies which includes this computing is internet, operating system, microprocessors, mobile code, advanced middleware, user interfaces and I/O devices, sensors, mobile protocols, new materials and networks. The models of ubiquitous computing has a very small vision, has devices that has robust networked processing. The models are distributed throughout life and generally turn to common place ends.
Difference Between Distributed Systems and Non-distributed Systems
There are many differences between distributed systems and non-distributed systems. The architecture which has distributed system mainly splits the tier of presentation and the physical and the logical tier so that they can run on different servers. The distributed system has a complex architecture with particular overhead. The architecture of distributed system uses RMI which lies between middle tier and presentation tier. This makes the remote invocation as a major determinant of design consideration and performance consideration (Sitalakshmi Venkatraman, Kaspi and Venkatraman 2016). The remote calls are minimized by the use of distributed systems. In contrast, the architecture which follows non-distributed architecture runs the application of presentation and middle tier in same server. All the components of business can be accessed without using remote calls. Particular performance can be improved by overall application because the architecture does not use remote calls. The middle tier and the presentation tier can be kept distinct logically.
Strengths of distributed architecture and non-distributed architecture- Distributed systems support different clients which provide a middle tier that is shared. On the other hand, the strength of non-distributed systems has simple architecture for all the web applications. All the applications are developed faster. The non-distributed systems can implement a good object oriented design (Meiklejohn and Van Roy 2015). The distributed system can permit distribution of all the components of applications across different servers. The strength of non-distributed system is that they cost less and the open sources of the web containers are also available.
The weakness of distributed system is that it has a complex approach and distributed systems can be chosen if requirements are dictated. The performance of the system affected by using distributed systems (Zhang et al. 2014). The local calls are much faster than the remote methods it uses. The overall performance of application is also determined by this. In contrast, the weakness of non-distributed system is that the architecture only supports the clients of web interface. The full application can run on a single server which can boost the performance and the components and cannot freely allocate all the physical layers (Lopes and Menascé 2016). The non-distributed systems need written codes so that they can manage the transactions. The weakness of distributed system is that they are difficult to debug and test. This is because they depend on the service of container. The object oriented design hampers the use of RMI and the structures are difficult to deploy. The weakness of non-distributed system is that they need written codes so that all the issues of concurrent threads are minimized.
Theoretical Aspects of Communication
Types and Characteristics of Inter-Process Communication
The inter process communication helps to communicate in between all the processes that are on same computer or may be on different computers. There are many types of inter process communication. The types of IPC are as follows:
- Local IPC: Local IPC allows more than one processes so that they can communicate with one another on single system.
- Pipe: Pipes are used to pass information from one process to different processes. Mainly there are two types of pipes, named pipes and unnamed pipes (Chen and Zhang 2014). The named pipes enables two way communication and unnamed pipes enables one way communication in inter process communication.
- Signals: Signals are interrupts that are software generated which are used to send process when an occurrence of an event happens.
- Message queuing: These signals allow processes so that they can exchange data that are used by queuing a message.
- Semaphores: These are used to synchronize processes of all the activities that are concurrently used for competing the system resource.
- Shared memory: All the memory segments that are to be shared are allowed by shared memory (Chmaj and Selvaraj 2015). The shared memory allows communication with all the memory segments so that they can exchange data in between processes which are used for writing and reading data in an operating system.
- Sockets: These are considered as end points that are needed for communication in between the processes (Harding et al. 2017). Sockets allow to communicate between server program and client program.
- Remote IPC: The remote IPC allows more than 2 processes for communication among themselves and also among different systems. There are some protocols which are implemented for remote IPC. The networking protocols are internet domain specific sockets, TLI (The Transport layer Interface) and RPCs (Remote procedure calls).
Support of Java Programming in Inter-Process Communication
The inter process communication helps java programming by categorizing the class of java into two parts: sockets API and sockets tools which works with URLs (Uniform Resource Locators). The API sockets of java provide access to network protocols that are used for communication between the internet and the hosts. Sockets are mechanisms that are used for all the other kinds of networked communications that are portable. Sockets are mainly considered as low level tools. Sockets can be used for any type of communication that is held between server and client or in between peers and server applications on internet (Kamal, Murshed and Buyya 2016). Sockets implements high level tools of networking which involves invocation that uses remote methods and also distributed object systems that are mainly involved on the sockets top.
RMI (Remote Method Invocation) of java is mainly a powerful tool that is used for object serialization in Java that allows to work transparently with other objects that are held in remote machines. With the RMI, distributed applications are written easily so that the clients and servers can work with data of each other as Java objects that are full-fledged instead of packets and streams of data.
Fault-Tolerance Requirements in Distributed Systems and Mobile Distributed Systems
Process and Communication Failures
In Distributed Systems- The distributed computing faces a vital issue in the system of fault tolerance. The fault tolerance helps the system to work in a condition which subjects to failure. The most important thing is to keep the function of the system so that they can work even if some of the part goes faulty or are damaged. A fault tolerant system is mainly related to dependable systems. Some useful requirements are covered by dependability so that they can acquire availability, safety, reliability, and maintainability. The availability occurs when the system is in ready state and may deliver the function to the corresponding users. There are systems that are highly available at an instant of time. The reliability of a computer system depends on the ability of the system which runs continuously without any failure (Kranjc et al. 2017). Reliability of a system is the time interval of time instead of instant of time. A system is highly reliable if it works for a longer period of time without any kind of interruption. Safety come when a system is not able to carry the processes in a correct way and all the operations are done incorrectly. Shattering does not happen. The maintainability of distributed systems can show the measure of accessibility which mainly involves failures that can be fixed and noticed mechanically.
In Mobile Distributed Systems- The process and communication failures that comes in mobile distributed systems are: Mobility: This involves a message that is sent to non-local mobile host from MSS that incurs search cost (Liu and Jiang 2014). The location change of mobile hosts mainly complicates all the routing messages. Destination codes are disconnected from all the old MSS and are then connected to new MSS. The node mobility can be handled by check point algorithm which generates request for the mobile hosts that are disconnected to take snapshot. To delay a response to such request till when the mobile hosts are reconnected with some of the MSS so that the completion time is increased. The energy consumption of components of mobile distributed system like display, disk drives, CPU and many others can drain the battery of the system (Fisher, Badam and Elmqvist 2014). The transmission of messages and transmission of messages also consumes some energy. The storage capacity of mobile distributed systems is stable. There is a limited capacity of storage of mobile hosts systems in which the process needs storage capacity so that they can store the snapshots at all the checkpoints. There is devices that are has less stable storage in mobile host. The recovery of rollback includes stable storages so that they can save the event logs, checkpoints and also other information that are related to recovery.
Additional Failures in Mobile Distributed Systems
There are additional failures that are related to mobile distributed systems. There is failure with the bandwidth which leads to limited communication of the network. There are disconnections of more than one mobile hosts which does not prevent recording global state of application which executed the mobile hosts. The disconnection of the mobile host that frequently takes place is an additional failure of the mobile distributed system (Leemans and Aalst 2015). There is also a synchronization problem in the mobile distributed system. The conservation of energy and the constraint of lower bandwidth require checkpoint algorithms.
Social Issues of Ubiquitous Distributed Systems
Social Issues of Ubiquitous Distributed Systems
In Ubiquitous Distributed Systems, there should be security policy which simultaneously have different mechanism to all the user and also have the ability so that they can discover all the services that are available in a transparent manner (Rasid et al. 2014). The system which is pervasive has a security policy that are flexible so that they can modify and update. In location detection, the numbers of devices that are included are really vast and it is very difficult to detect physical device. A secure channel of communication is needed along with device authentication. To request the trust channel that is flowing through shared and wireless channels can access control. The system also faces issues to ensure the access and the identity of all the user. The accessing of the system services and the resources does not depend on time, contextual information, and situation (Bezerra et al. 2014). There is also privacy issue in the ubiquitous systems. The privacy of all the user should be maintained and the data should also be kept private. The pervasive system likes to work with the information of users which poses a risk of the data being hacked.
Reduce the Impact of Social Issues
The issues that come from Ubiquitous systems can be reduced by hiding the infrastructure of the system (Munoz et al. 2015). The system should hide the difference of infrastructure from all the users and also can manage the conversations that are required for different environments, addressing the protocols that are mismatched. The scalability issue of pervasive systems can also be minimized by involving countless users, applications, communications, and devices.
This report gives a detail study of the distributed system that is used in most of the computer systems. A detailed structure of the distributed system is described in this report which is compared and contrasted with the non-distributed system. The inter process communication system is also highlighted in this report. This report has a detailed study of ubiquitous system and the social issues that arise from the ubiquitous system. A comparison between distributed systems and the mobile distributed systems are given in details. The process and communication failures of distributed systems and the mobile distributed systems are examined and detailed in this report.
Bezerra, C., Andrade, R., Santos, R.M., Abed, M., de Oliveira, K.M., Monteiro, J.M., Santos, I. and Ezzedine, H., 2014, October. Challenges for usability testing in ubiquitous systems. In Proceedings of the 26th Conference on l'Interaction Homme-Machine (pp. 183-188). ACM.
Brand, M., Grawunder, M. and Appelrath, H., 2017. A Modular Approach for Non-Distributed Crash Recovery for Streaming Systems. Datenbanksysteme für Business, Technologie und Web (BTW 2017).
Chen, C.P. and Zhang, C.Y., 2014. Data-intensive applications, challenges, techniques and technologies: A survey on Big Data. Information Sciences, 275, pp.314-347.
Chmaj, G. and Selvaraj, H., 2015. Distributed processing applications for UAV/drones: a survey. In Progress in Systems Engineering (pp. 449-454). Springer, Cham.
Finkbeiner, B. and Tentrup, L., 2014, March. Detecting Unrealizable Specifications of Distributed Systems. In TACAS(Vol. 8413, pp. 78-92).
Fisher, E.R., Badam, S.K. and Elmqvist, N., 2014. Designing peer-to-peer distributed user interfaces: Case studies on building distributed applications. International Journal of Human-Computer Studies, 72(1), pp.100-110.
García-Valls, M. and Baldoni, R., 2015, December. Adaptive middleware design for CPS: Considerations on the OS, resource managers, and the network run-time. In Proceedings of the 14th International Workshop on Adaptive and Reflective Middleware (p. 3). ACM.
Harding, R., Van Aken, D., Pavlo, A. and Stonebraker, M., 2017. An evaluation of distributed concurrency control. Proceedings of the VLDB Endowment, 10(5), pp.553-564.
Kamal, J., Murshed, M. and Buyya, R., 2016. Workload-aware incremental repartitioning of shared-nothing distributed databases for scalable OLTP applications. Future Generation Computer Systems, 56, pp.421-435.
Kranjc, J., Ora?, R., Podpe?an, V., Lavra?, N. and Robnik-Šikonja, M., 2017. ClowdFlows: Online workflows for distributed big data mining. Future Generation Computer Systems, 68, pp.38-58.
Leemans, M. and van der Aalst, W.M., 2015, September. Process mining in software systems: discovering real-life business transactions and process models from distributed systems. In Model Driven Engineering Languages and Systems (MODELS), 2015 ACM/IEEE 18th International Conference on (pp. 44-53). IEEE.
Leesatapornwongsa, T., 2017. Unearthing Concurrency and Scalability Bugs in Cloud-Scale Distributed Systems (Doctoral dissertation, The University of Chicago).
Liu, T. and Jiang, Z.P., 2014. Distributed nonlinear control of mobile autonomous multi-agents. Automatica, 50(4), pp.1075-1086.
Lopes, R.V. and Menascé, D., 2016. A taxonomy of job scheduling on distributed computing systems. IEEE Transactions on Parallel and Distributed Systems, 27(12), pp.3412-3428.
Meiklejohn, C. and Van Roy, P., 2015, July. Lasp: A language for distributed, coordination-free programming. In Proceedings of the 17th International Symposium on Principles and Practice of Declarative Programming (pp. 184-195). ACM.
Munoz, D., Gutierrez, F.J., Ochoa, S.F. and Baloian, N., 2015. SocialConnector: a ubiquitous system to ease the social interaction among family community members. Comput. Syst. Sci. Eng, 30(1), pp.57-68.
Rasid, M.F.A., Musa, W.M.W., Kadir, N.A.A., Noor, A.M., Touati, F., Mehmood, W., Khriji, L., Al-Busaidi, A. and Mnaouer, A.B., 2014, May. Embedded gateway services for internet of things applications in ubiquitous healthcare. In Information and Communication Technology (ICoICT), 2014 2nd International Conference on (pp. 145-148). IEEE.
Sitalakshmi Venkatraman, K.F., Kaspi, S. and Venkatraman, R., 2016. SQL Versus NoSQL Movement with Big Data Analytics.
Völter, M., Kircher, M. and Zdun, U., 2013. Remoting patterns: foundations of enterprise, internet and realtime distributed object middleware. John Wiley & Sons.
Zhang, I., Szekeres, A., Van Aken, D., Ackerman, I., Gribble, S.D., Krishnamurthy, A. and Levy, H.M., 2014, October. Customizable and Extensible Deployment for Mobile/Cloud Applications. In OSDI (Vol. 14, pp. 97-112).