Tutorial 04 – Distributed systems

distributed systems

A distributed system is a network that consists of autonomous computers that are connected using a distribution middleware. They help in sharing different resources and capabilities to provide users with a single and integrated coherent network.


The key features of a distributed system are:
  • Components in the system are concurrent. A distributed system allows resource sharing, including software by systems connected to the network at the same time.
  • There can be multiple components, but they will generally be autonomous in nature.
  • A global clock is not required in a distributed system. The systems can be spread across different geographies.
  • Compared to other network models, there is greater fault tolerance in a distributed model.
  • Price/performance ratio is much better


Distributed computing

Distributed computing is a computing concept that, in its most general sense, refers to multiple computer systems working on a single problem. In distributed computing, a single problem is divided into many parts, and each part is solved by different computers. As long as the computers are networked, they can communicate with each other to solve the problem. If done properly, the computers perform like a single entity.
The ultimate goal of distributed computing is to maximize performance by connecting users and IT resources in a cost-effective, transparent and reliable manner. It also ensures fault tolerance and enables resource accessibility in the event that one of the components fails.

Standalone systems vs distributed systems

The standalone db has a one to one relationship between processor and database. A distributed model has databases in different locations, loosely connected to each other. The distributed model would be used in retail whereby each store has its own database, but every night receives a price change table from the corporate database.
This is where the loosely comes in. In the store example, it is likely an integration job that moves the data by directly connecting the two database together using specialized programs designed for that purpose. The slower way is to transmit text files from A to B and load them using code.
Now the advanced example of this is a distributed model inside a single datacenter. In large scale database systems like Oracle and SQL Server, connecting different database systems together is often done in real time. Connections between the database are up all the time, and each can be reading and writing to the other at the same time.





Elements of distributed systems

Intranets, Internet, WWW, email.
Telecommunication networks: Telephone networks and Cellular networks.
Network of branch office computers -Information system to handle automatic processing of orders,
Real-time process control: Aircraft control systems,
Electronic banking,
Airline reservation systems,
Sensor networks,
Mobile and Pervasive Computing systems.

Different types of services, which can be gained from distributed systems, specifying the protocols used for them

Client-server model

The client-server model is a core network computing concept also building functionality for email exchange and Web/database access. Web technologies and protocols built around the client-server model are:
  • Hypertext Transfer Protocol (HTTP)
  • Domain Name System (DNS)
  • Simple Mail Transfer Protocol (SMTP)
  • Telnet

Multi-tier architecture


Peer-to-peer model


Characteristics of different types of Web-based systems

  • Product related characteristics;    It is the integral part of web application. It consists of: Present, Hypertext, and Content.

  • Use related characteristics;  It is difficult to predict the usage frequency of a web application because is varies according to the user, devices used by the users etc. we can divide the user related characteristics of web application as: Natural content, Social content and Technical content.

  • Development related characteristics;   
  • Evolution related characteristics
Architectures for distributed systems
A distributed system can be demonstrated by the client-server architecture which forms the base for multi-tier architectures; alternatives are the broker architecture such as CORBA, and the Service-Oriented Architecture (SOA).
Micro-service architecture 
Microservices are a software development technique—a variant of the service-oriented architecture (SOA) architectural style that structures an application as a collection of loosely coupled services. In a microservices architecture, servicesare fine-grained and the protocols are lightweight.
Monolithic Architecture
Monolithic, in this context, means composed all in one piece. Monolithic software is designed to be self-contained; components of the program are interconnected and interdependent rather than loosely coupled as is the case with modular software programs.
MVC style
Design Patterns – MVC Pattern. MVC Pattern stands for Model-View-Controller Pattern. This pattern is used to separate application’s concerns. Model – Model represents an object or JAVA POJO carrying data.
RPC
A remote procedure call (RPC) is a network programming model or interprocess communication technique that is used for point-to-point communications between software applications. Client and server applications communicate during this process.
RMI
The RMI (Remote Method Invocation) is an API that provides a mechanism to create distributed application in java. The RMI allows an object to invoke methods on an object running in another JVM. The RMI provides remote communication between the applications using two objects stub and skeleton.
What is CORBA
CORBA is the world’s leading middleware solution enabling the exchange of information, independent of hardware platforms, programming languages, and operating systems. … The CORBA Interface Definition Language, or IDL, allows the development of language and location-independent interfaces to distributed objects.
XML specification
Extensible Markup Language (XML) is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. The W3C’s XML 1.0 Specification and several other related specifications[—all of them free open standards—define XML.
Identify other data formatting/structuring techniques available for the communication of web-based systems
  • Introduction[edit]
  • Markup Languages[edit]
  • Hypertext[edit]
  • Hypertext Markup Language (HTML)[edit]
  • Hypertext Transfer Protocol (HTTP)[edit]
  • Cascading Stylesheets (CSS)[edit]
  • Types of CSS[edit]
  • Web Design Programs


Comments