I-Mid Distributed Computing - Doc2
I-Mid Distributed Computing - Doc2
Cloud Computing :
Cloud computing is a computing paradigm shift where computing is moved away from personal computers or an individual application server to a cloud of computers. Users of the cloud only need to be concerned with the computing service being asked for, as the underlying details of how it is achieved are hidden. This method of distributed computing is done through pooling all computer resources together and being managed by software rather than a human. The services being requested of a cloud are not limited to using web applications, but can also be T management tasks such as requesting of systems, a software stack or a specific web appliance. Grid Computing:
!ultiple independent computing clusters which act like a grid because they are composed of resource nodes not located within a single administrative domain. "formal# $ffering online computation or storage as a metered commercial service, known as utility computing, computing on demand, or cloud computing. The creation of a virtual supercomputer by using spare computing resources within an organi%ation. Utility Computing :
Conventional nternet hosting services have the capability to quickly arrange for the rental of individual servers, for e&le to provision a bank of web servers to accommodate a sudden surge in traffic to a web site. Utility computing usually envisions some form of virtuali%ation so that the amount of storage or computing power available is considerably larger than that of a single time'sharing computer. !ultiple servers are used on the back end to make this possible. These might be a dedicated computer cluster specifically built for the purpose of being rented out, or even an under'utili%ed supercomputer. The technique of running a single calculation on multiple computers is known as distributed computing. Distributed Computing:
( method of computer processing in which different parts of a program are run simultaneously on two or more computers that are communicating with each other over a network. )istributed computing is a type of segmented or parallel computing, but the latter term is most commonly used to refer to processing in which different parts of a program run simultaneously on two or more processors that are part of the same computer. *hile both types of processing require that a program be segmented+divided into sections that can run simultaneously, distributed computing also requires that the division of the program take into account the different environments on which the different sections of the program will be running. ,or e&le, two computers are likely to have different file systems and different hardware components. Cluster Computing:
( computer cluster is a group of linked computers, working together closely so that in many respects they form a single computer. The components of a cluster are commonly, but not
always, connected to each other through fast local area networks. Clusters are usually deployed to improve performance and-or availability over that provided by a single computer, while typically being much more cost'effective than single computers of comparable speed or availability.
communication protocol across the 2. different organi1ations at +merican +utomobile +ssociation "+++# and the hundreds of cell-sample centers at 3uropean ioinformatics Institute to e&change information. What is IIOP efore diving into IIO!, let me first e&plain some of the terminology used in this article. )OR + is a distributed technology that supports access to remote ob$ects developed in multiple languages across a variety of platforms. The core of the )OR + architecture is the Ob$ect Re%uest roker "OR #, which is the ob$ect bus. The OR allows client applications to find ob$ects and invoke methods on them locally or across a network. It handles passing re%uests, responses and e&ceptions between a client ob$ect and a server ob$ect. When the client applications uses an ob$ect, it doesn4t need to know the ob$ect4s location, programming language or type of platform because the OR masks these details. The OR handles the location of server ob$ects in a repository that keeps this level of detail from the client.
3ach OR must define a standard representation for the ob$ects it transmits, the so-called on-thewire format. In an ideal world, all OR s would use the same on-the-wire format, but this is not how )OR + implementations have evolved. To cope with this problem, )OR + 5.. defines a standard format that OR s can use to e&change ob$ects6 the *eneral Inter-OR !rotocol "*IO!#. The Internet Inter-OR !rotocol "IIO!# in turn specifies how *IO! maps to T)!. To present things in a different way,
)OR + is to ob$ect oriented computing what the WWW is to documents I78 is to )OR + what 'T,8 is to the web IIO! is to )OR + what 'TT! is to the www IOR is to )OR + what /R8 is to the www
The working of IIOP IIO! is a high-level protocol that takes care of many of the services associated with the levels above the transport layer, including data translation, memory buffer management, dead-locks and communication management. It is also responsible for directing re%uests to the correct ob$ect instance within an OR . )OR + and IIO! assume the client-server model of computing in which a client program always makes re%uests and a server program waits to receive re%uests from clients. 9or a client to make a re%uest of a program somewhere in a network, it must have an address for the program "ob$ect instance#. This address is known as the Interoperable Ob$ect Reference "IOR#. !art of the address is based on the server0s I! address and port number. In the client0s computer, a table can be created to map IORs to pro&y names that are easier to use. + )ommon 7ata Representation ")7R# provides a way to encode and decode data so that it can be e&changed in a standard way. The client application can access the ob$ect using the IOR, which masks the client application4s OR implementation from the OR implementation used to host the )OR + ob$ect. +t the lowest level, you have the physical device "an 3thernet card# which gives you a ,+) address. 9rom there, you move up into the 3thernet protocol, which gives you a connectionbased, broadcast, bus-network topology, where messages are encoded and collisions resolved. :e&t, you get into the Internet !rotocol "I!#, which specifies the format of packets that traverse the Internet and gives a hostname, specified in four octets ";<5.;=-.555.;25#. This hostname, along with additional information, allows I! to be routed. +bove I! is the Transport )ontrol !rotocol "T)!#, which adds the functionality of port number and control directives such as packet segmentation and time to live. IIO! is built on T)!. This gives us reliable, stream-based delivery and T)! is responsible for ensuring that the right application on a machine receives the message. +bove IIO! is the OR level, which marshals and unmarshals the IIO! re%uests. 8ast is the application level, which includes ob$ect implementations and other OR ob$ects such as the :aming and other services. IIO! doesn4t have a default port to listen at.
IIO! helps )OR + achieve language, site and platform independence but )OR + is not the only architecture that uses IIO!. ecause a T)!(I!-based pro&y is usable on almost any machine that runs today, more parties now use IIO!. When another architecture is IIO!-compliant, it not only establishes a well-proven communication transport for its use, but it also can communicate with any OR implementation that is IIO!-compliant. The possibilities are endless.
'" and
emote
R,I or Remote ,ethod Invokation is very similar to R!) or Remote !rocedure call in that the client both send pro&y ob$ects "or stubs# to the server however the subtle difference is that client side R!) invokes FUNCTIONS through the pro&y function and R,I invokes METHODS through the pro&y function. RMI is considered s ight ! s"#erior as it is an o$%ect&oriented version of R!). The main difference between R!) and R,I is that RMI in'o 'es objects. Instead of calling procedures remotely by use of a pro&y function, we instead use a pro&y object. There is greater transparency with R,I, namely due the e&ploitation of ob$ects, references, inheritance, polymorphism, and e&ceptions as the technology is integrated into the language. R,I is also more advanced than R!), allowing for dynamic invocation, where interfaces can to change at runtime, and object adaption, providing an additional layer of abstraction.
Ser'er host
(((
T h e C ie n t&S e r 'e r P ar ad ig ) * c o n c e # t" a
/imple in concept, the client'server model provides an efficient abstraction for the delivery of services. $perations required include those for a server process to listen for and to accept requests, and for a client process to issue requests and accept responses. .y assigning asymmetric roles to the two sides, event synchroni%ation is simplified0 the server process waits for requests, and the client in turn waits for responses. !any nternet services are client'server applications. These services are often known by the protocol that the application implements. *ell known nternet services include 1TT2, ,T2, )3/, finger, gopher, etc.
(((
,-e #oint$,o$#oint 'essage 'odel n this model, a message system forwards a message from the sender to the receiver:s message queue. Unlike the basic message passing model, the middleware provides a message depository, and allows the sending and the receiving to be decoupled. ;ia the middleware, a sender deposits a message in the message queue of the receiving process. ( receiving process e&tracts the messages from its message queue, and handles each one accordingly. Compared to the basic message'passing model, this paradigm provides the additional abstraction for asynchronous operations. To achieve the same effect with basic message'passing, a developer will have to make use of threads or child processes. The 2ublish-/ubscribe !essage !odel n this model, each message is associated with a specific topic or event. (pplications interested in the occurrence of a specific event may subscribe to messages for that event. *hen 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 message model offers a powerful 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.
P rocess , P ro cess +
r e ) o te ) e th o d in ' o c a tio n ) e th o d+ ) e th o d, a r e ) o t e o $ %e c t
T h e R e ) o te M e th o d C a
P aradig )
3etwork services 0 n this paradigm, service providers register themselves with directory servers on a network. ( process desiring a particular service contacts the directory
server at run time, and, if the service is available, will be provided a reference to the service. Using the reference, the process interacts with the service. This paradigm is essentially an e&tension of the remote method call paradigm. The difference is that service ob7ects are registered with a global directory service, allowing them to be look up and accessed by service requestors on a federated network. 8ava:s 8ini technology is based on this paradigm.
D ir e c t o r ! s e r ' ic e
s e r ' ic e o $ %e c t
S e r ' ic e r e - " e s t o r
m essage m essage
M e s s a g e &$ a s e d g r o " # w a r e # a r a d ig )
Process .
Proce ss /
a m essage
M e s s a g e # a s s in g
The basic operations required to support the basic message passing paradigm are send, and receive. ,or connection'oriented communication, the operations connect and disconnect are also required. *ith the abstraction provided by this model, the interconnected processes perform input and output to each other, in a manner similar to file -$. The -$ operations encapsulate the details of network communication at the operating'system level.