210 likes | 426 Views
INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES. Chapter 1. Distributed systems: Definition s , design and example of distributed services. Content. Distributed systems: Definition Distributed systems characteristics Distributed system design Types of distributed systems
E N D
INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES Chapter 1. Distributed systems: Definitions, design and example of distributed services INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Content • Distributed systems: Definition • Distributed systems characteristics • Distributed system design • Types of distributed systems • Client-server Environment • File servers • Databases servers • Transactions Servers • Groupeware Servers • News Servers • Objects Servers • Examples INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Distributed systems: Definition • A distributed system is made up of: • A set of personal computers • Linked together by a network • Equiped with distributed softwares • Distributed softwares are operating system and applications that enable computers to coordinate their processing activities and share the network ressources: equipments, softwares and data. • Computers have the following characteristics: • They run independent processes in parallel • They don’t share a global clock • Their failures are independent INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Distributed systems characteristics • Some characteristics clearly show how important are distributed systems : • Ressource sharing • Openess • Multi Threading • Transparency • Faults Tolerance • Scalability INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Distributed systems characteristics(2) • Ressources sharing: • Peripheral devices (drivers, printers, …) • softwares: files, Data bases, Programming langages ,… • Every network ressource is managed by a ressource manager (e.g DBMS, …) • Costs Reduction. • Openess: • New softwares and hardwares can be easily added within a distributed system. • MultiThreading: • Many programs running in parallel on the same CPU. • It is important to keep a control on this processing behavior. • Transparency: • Consist of using a distributed system to hide components details to the End user and programmer in a way that they see the system as a black box that offers services than as a collection of independant components INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Distributed systems characteristics(3) • Faults tolerance : • To resume a distributed system running process after a failure has occured it is important for permanent data states(files and any hardware data stored in memory) to be saved after any failure detection. • Scalability: • A distributed system should efficiently work at different scales: • Few desktops with a file server • Local network with a hundreds of computers and a file server • Many Local networks linked together ( Internet). INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Distributed system design • The following are some problems directly tied to the distribution state of an information system: • Naming • Communication • Software structure • Tasks dispatching • Keeping the system Coherent • Application Programmer Interfaces (API’s) design INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Distributed system design (2) • Naming: • Namespace, Domain, Domain name service (DNS), Name Resolution Transparency,… • Communication: • Data transfer from the sender process environment to the receiver process environment. • In some cases reception must be synchronized with sending. • Communication through ports • Synchronous or asynchronous Mode • client/server architecture INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Distributed system design (3) • Software structure : • Applications • Support for operating system core : • Memories management • Processes management • RAM (Random access memory i.e working space) management • Inter process Communication (interwork) • Communication tools (RPC, Multicast,…) • Tasks dispatching: • Optimize distrubution of tasks to CPUs in relation with their processing capabilities and the distance. INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Distributed system design (4) • Keeping the system coherent: • Appears when many running processes are updating their data in parallel. • Updates should be atomic tasks. A set of changes made by a process should seem instantaneous for the other running processe. • To make sure that long lasting data are saved within all the components, failure recovery routines are necessary in order to resume the running process to the state befor the failure. • APIs (interfaces) design: • Text, GUI (Graphical User Interface), hypertexte, hypermedia, multimedia, ... INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Types of distributed systems • Centralized system (no more in use) • Client-Server • Client-Multiple servers (Google) • Client-Proxy-Server • Colleagues (peer-to-peer P2P) • (Client + code mobile) – server • Mobile agents • Spontaneous network • ressources discovery: e.g DHCP • Infrared network • Blue tooth INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Client-server Environment • Moving from a centrilazed environment to a decentralized one. Downsizing INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Client-server Environment (2) • Communication is achived through messages exchanged between two peer to peer (P2P) processes. A process is the client, and the other one is the server. • The processes represent cooperative or colleagues systems. • This cooperation results in an exchange of data: where the client receives final results from the server. INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Client-server Environment (3) • Example of servers: • File servers • Databases servers • Transactions servers • Groupware servers • News servers • Objects servers • Example of clients: • Browser (Netscape, Internet explorer) • Cellular phone softwares INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
File servers • It handle call on the network, related to writings and readings in files. • No filtering nor changes are made on data exchanged. INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Databases servers • The data received by the client application are results of SQL request processing on the DB-server. • The DB-server here is also called « applications server ». INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Transactions Servers • Used to implements transaction processing systems : • OLPT: On line Transaction Processing • Client Call a remote procedure that implement a transaction. Transaction server (or transaction monitor: MT) runs this procedure. • New monitor are trying to integrate other features : communication, distribution, ... INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Groupeware Servers • The groupware server (or collectware) is used to share or convey documents (multimedia ) within a company • The Push technique is often used. INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
News Servers • Those servers provide End users with documents (HTML, images,…). • E.g : HTTP, FTP, … servers • They can use intermediaries (eg. CGI programs, proxy’s) to improve funtionnalities. INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Objects Servers • This service aim to let communication between objects through Object Broker (ORB: Object Request Broker). • It is a paradigm that tend to replace client/server model : objects call other objects (local or remote) methods. • Objects are located by the broker ORB. INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES
Examples • Distributed systems : • Internet with firewall and services like email, video conference, … • Train or plane tickets reservation • Softwares: • Operating systems (platform) • CORBA, DCOM, RMI (Integration layer or Middlewares) • Instant Messenger, Chat (Applications) • Failures : • Bad response • Synchronization • Power • Omission • Autodetection INE4481 DISTRIBUTED DATABASES & CLIENT-SERVER ARCHITECTURES