|
Distributed Computing This website demonstrates using wikis as teaching and learning tool. The course instructor is also happy to share the teaching materials here with those who find it readable. |
Lecture /
Distributed Computing ParadigmsA Distributed Computing Lecture by Steven Choy IntroductionTwo characteristics of distributed applications:
Levles of distributed application paradigms
The Message Passing Paradigm
Client-Server Paradigm
Peer-to-peer Paradigm
Some Variations of Client-Server ModelSource: Chapter 2: System Models in 'Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4 (the website for the book is http://www.cdk4.net/). Please refer to this chapter of the textbook.
Services may be implemented by several server processes — in separate machines that interact as necessary — to provide an integrated service to clients. This model is usually used to provide complicated services such as fault tolerance or security issues.
A proxy server to provide a shared cache for clients at a site or across several sites. The cache is a fast secondary storage device that records the most recently used data objects. When a client requests an object, the caching service first checks the cache and supplies the object from the cache if it is available. If not, a search is required through the Web servers. The cache will be updated when the object has been found — this most recently sought object will be added into the cache memory.
Messaging System Paradigm
Each message is associated with a specific topic or event. Applications interested in the occurrence of a specific event may subscribe to messages for that event. When the awaited event occurs, the process publishes a message announcing the event or topic. The middleware message system distributes the message to all its subscribers.
The publish/subscribe model offers an abstraction for multicasting or group communication. The publish operation allows a process to multicast to a group of processes, and the subscribe operation allows a process to listen for such multicast.
The Java Message Service (JMS) API is a messaging standard that allows application components based on the Java 2 Platform, Enterprise Edition (J2EE) to create, send, receive, and read messages. It enables distributed communication that is loosely coupled, reliable, and asynchronous.
Enterprise messaging provides a reliable, flexible service for the asynchronous exchange of critical business data and events throughout an enterprise. The JMS API adds to this a common API and provider framework that enables the development of portable, message based applications in the Java programming language.
The Remote Procedure Call Paradigm (RPC)
The Distributed Objects Paradigms
The Object Space Paradigm
The Mobile Agent paradigm
There are some really promising applications in what are called “mobile ISAs,” especially in the area of collaboration. This involves dispatching mobile agents from one computer and delivering them to a remote computer for execution. A collaboration ISA might create ad hoc online meetings based on specified criteria, pick an optimum meeting host, and then set the meeting up for all invited users.
The Web Services and Service Oriented Architecture (SOA)
The Grid Computing ParadigmReference: IBM developerWorks : New to grid computing
Grid computing allows you to unite pools of servers, storage systems, and networks into a single large system so you can deliver the power of multiple-systems resources to a single user point for a specific purpose. To a user, data file, or an application, the system appears to be a single enormous virtual computing system.
The major purpose of a grid is to virtualize computing resources to solve problems.
With grid computing, an organization can transform its distributed and difficult-to-manage systems into a large virtual computer that can be set loose on problems and processes too complex for a single computer to handle efficiently.
Clusters, Network-attached storage devices, Scientific instruments, Networks
Virtualization of the computing environment allows organizations to:
Use otherwise idle computer resources to accelerate business processes.
Speed applications so that processing time decreases, driving faster time to market.
Enable the development of new and more productive applications.
Drive down the costs of developing new applications.
Increase collaboration and productivity capabilities.
Maximize the resources available to users.
Increase the resiliency and utilization of the IT environment.
Thanks for ReadingIf you would rather like to have this lecture note in printed format, please click the print action link in the top right corner. You are welcome to make contribution to this lecture note. You can suggest links to useful resources or draw illustration to aid understanding of some topics. If you find any problem in this lecture note, please feel free to tell Steven via the following email address. ![]() |