What is distributed computing?
Distributed computing is a model in which the software system components are shared between the multiple computers in order to increase performance and efficiency. Further, as per the narrowest of definitions, the distributed computing is limited to the programs along with the components that are shared between the computer systems within limited geographic areas. The detailed definitions consist of shared activities and program components as well. In the broadest sense of the term, the distributed computing means that something is shared between a number of systems that may be also in various other locations. In the organization, the distributed computing system is taking various steps in processes of business at the most effective places within a network of multiple computers. For example, in general distribution, by using the 3-tier model, the user interface processing is organized in another computer, which offers centralized access to several business processes. Generally, this type of distributed computing utilizes the client-server communications approach. Moreover, the distributed computing environment (DCE) is a widely-used industry standard, which helps this type of distributed computing. The third-party service providers presently provide some basic services, which fits into this approach. Furthermore, Grid computing is a type of distributed computing approach that involves an architecture if a distributed system of huge numbers of computer system interconnected with each other in order to solve a complex problem. In this model, personal computers and servers implement independent activities and are loosely connected with the internet or low bandwidth networks. Some individual users may enable some of their processing time of computers to put the service of a huge problem. There is the largest grid project name SETI@home, in which the owners of individual computers volunteers some of their cycles of multitasking processing to Search for the Extraterrestrial Intelligence (SETI) project.
What are the issues associated with the distributed computing system?
Scalability: In the distributed computing system scaling is one of the major issues. The scaling issues include dimensions such as communication capacity. Further, the system must be designed such as a way that the capacity may be enhanced with the improving demand on the system.
Heterogeneity: For distributed computing, it is a design issue. The communication infrastructure includes different channels capacities. The end-systems will have a wide variety of presentation techniques.
Objects translation and representation: Selecting the appropriate programming models for distributed objects such as Java and CORBA is an essential issue.
Management of resources: In the distributed computing system, objects including resources are identified at various places. Further, routing is also a major issue on the network layer and at the application layer of the distributed system. Moreover, the management of resource in a distributed system will communicate with its heterogeneous nature.
Privacy and security: How to apply the policies of security to the interdependent system is a great issue in the distributed computing system. As the distributed system handle the sensitive information and of a system, it must have a strong security policy integrated and also have privacy measurement. Security of distributed assets, such as base communications, storage, resources and user-interface I/O as well as higher-level includes of these resources such as display windows, files, messages, and processes and more complex objects, are essential issues in the distributed system.
Transparency: Transparency refers to the visibility of the distributed system that should appear to the user as a single system. the distributed system must be designed in order to hide the complexity of the system to a greater extent.
Openness: It is just like the transparency of the system, in which the system designed using the standard protocols in order to support interoperability. It is recommended for the developers to integrate new features or modify the subsystem in near future. To achieve this, the distributed system must possess well-determined interfaces.
Quality of service: In order to specify the quality of service provided to the system acceptable level and users acceptable levels of service offered to the users. Further, the quality of service is heavily dependent on the allocation process to the processors of the system, hardware, resource distribution, network, adaptability of the system etc. Further appropriate reliability, availability and performance are required to reflect the proper quality of service.
Synchronization: In the distributed computing system, one of the most significant issues is synchronization issues. the synchronization computing issues including of thousands of components. The present approach of synchronization such as do not scale, message passing, object method invocation, remote procedure call, barriers, monitors, semaphores as well.
Resource identification: Across various computers system, the resources are distributed and a proper naming approach is to be formulated for the same reference of the resources.
Communication: The distributed computing system became more efficient with the advent of the internet but there are some particular requirements for the reliability, availability and performance. An effective approach to communication should be used.
Software architectures: It reflects the application functionality distributed over the logical components and across the processors. Choosing the right architecture for an application is needed to improve the quality of service.