240 likes | 252 Views
Introduction. Distributed Systems IT332. Outline. Definition of A Distributed System Goals of Distributed Systems Types of Distributed Systems. Definition of A Distributed System.
E N D
Introduction Distributed Systems IT332
Outline • Definition of A Distributed System • Goals of Distributed Systems • Types of Distributed Systems
Definition of A Distributed System • A distributed systems is a collection of independent computers that appears to its users as a single coherent system. • Two aspects: • (1) hardware - Independent computers • (2) software – users think they are dealing with a single system
Goals of Distributed Systems • Making Resources Accessible • Problems of sharing? security • Transparency • To hide the fact that its processes and resources are physically distributed across multiple computers • Openness • To offer services according to standard rules that describe the syntax and semantics of those services • Scalability
Transparency • Aiming at full distribution transparency is not always good idea and difficult to achieve • A Trade off between a high degree of transparency and the performance of the system
Openness • An open distributed system is a system that is able to interact with services from other systems irrespective of the underlying environment • Systems should conform to well-defined interfaces • Systems should support portability of applications • Systems should easily interoperate • Systems should easily extensible
Scalability • A distributed system is scalable if it will remain effective when the number of resources and users is significantly increased • At least three aspects • Number of users and/or processes (size scalability) • Maximum distance between nodes (geographical scalability) • Number of administrative domains (administrative scalability) • Most systems account only, to a certain extent, for size scalability by using powerful servers. • Today, the challenge lies in geographical and administrative scalability.
Scalability Techniques • Distribution: Partition data and computations across multiple machines: • Move computations to clients (Java applets) • Decentralized naming services (DNS) • Replication: Make copies of data available at different machines: • Replicated file servers (mainly for fault tolerance) • Replicated databases • Mirrored Web sites • Caching: Allow client processes to access local copies: • Web caches (browser/Web proxy) • File caching (at server and client)
Scaling Problem • Having multiple copies (cached or replicated), leads to inconsistencies • modifying one copy makes that copy different from the rest. • keeping copies consistent and in a general way requires global synchronization on each modification. • Global synchronization makes large-scale solutions practically impossible. • If we can tolerate inconsistencies, we may reduce the need for global synchronization.
Pitfalls When DevelopingDistributed Systems • False assumptions made by first time developer: • The network is reliable. • The network is secure. • The network is homogeneous. • The topology does not change. • Latency is zero. • Bandwidth is infinite. • Transport cost is zero. • There is one administrator.
Types of Distributed Systems • Distributed Computing Systems • Distributed Information Systems • Distributed Pervasive Systems
Distributed Computing Systems • Used for high‐performance computing tasks • Cluster computing systems • A collection of similar workstations or PCs connected by a high‐ speed local‐area network (LAN) • It is homogenous given that each node runs the same OS. • Used for parallel programming. • Grid computing systems • A collection of machines from different organizations are connected over a wide‐area network to allow the collaboration of a group of people or institutions in virtual manner. • It has a high degree of heterogeneity given that each machine may be in a different administrative domain, and may have different hardware, OS, and network technology. • Support virtual organizations (Vos) • A Vos defines a group of users/applications that have access to a specified group of resources, which may be distributed across many different computers, owned by many different organizations.
Cluster Computing An example of a cluster computing system.
Grid Computing Layered architecture for gridcomputingsystems
Distributed Information Systems • Used to integrate networked applications in an organization • Transaction processing systems • Support distributed transactions • A transaction contains operations such that either all of the operations are executed or none are executed • A transaction have ACID properties. • A distributed transaction is a transaction that accesses objects managed by multiple servers • Nested transactions are important in DS, they provide a natural way of distributing a transaction across multiple machines. Sub transactions are run in parallel.
Transaction Processing Systems A nested transaction
Transaction Processing Systems A transaction processing (TP) monitor allows an application to access multiple servers/database
Enterprise Application Integration • Enterprise application integration • Let applications communicate directly with each other not merely by means of the request/reply behavior supported by TPS. • Types of communication middleware: remote procedure call (RPC), remote method invocation (RMI), message‐ oriented middleware (MOM)
Enterprise Application Integration • With Remote Procedure Calls (RPC), an application component can send a request to another application component by doing a local procedure call. The result will be sent back in the same manner. • An RMI is essentially the same as an RPC, except that it operates on objects instead of applications. • RPC and RMI have the disadvantage that the caller and callee are coupled, as they need to : • Both be up. • Run at the time of communication. • To know how to refer to each other. • This coupling led to Message-Oriented Middleware MOM: applications simply send messages to logical contact points, described a subject. Likewise, when applications are interested for a specific type of message, the MOM will take care that those messages are delivered to those applications.
Enterprise Application Integration Middleware as a communication facilitator in enterprise application integration.
Distributed Pervasive Systems • Part of our surroundings • Nodes are often small, battery powered, mobile devices with only a wireless connection • Laptops, smart phones, digital cameras, etc. • Self‐managing: not managed through a system administrator and no human administrative control. • Examples: smart homes, electronic health care systems, sensor networks
Health Care Systems • New devices are being developed to monitor the well-being of individuals and to automatically contact physicians when needed. • Personal health care systems are often equipped with various sensors organized in a (preferably wireless) body-area network (BAN). • BAN should be able to operate while a person is moving, with no strings (i.e., wires) attached to immobile devices. • HCS is essentially a sensor networks system.
Health Care Systems (HCS) (b) (a) Monitoring a person in a pervasive electronic HCS, using (a) a local hub or (b) a continuous wireless connection.
Next Chapter • Architecture Questions?!