top of page
Search

Distributed systems

  • hassamadhi9594
  • Mar 8, 2019
  • 5 min read

Computer based systems can be mainly divided into 2 types, according to the distribution of the

components

1. Standalone systems (or commonly referred as desktop applications)

2. Distributed systems

A distributed system is a system whose components are located on different networked computers, which communicate and coordinate their actions by passing messages to one another. The components interact with one another in order to achieve a common goal.

A computer program that runs within a distributed system is called a distributed program (and distributed programming is the process of writing such programs).There are many different types of implementations for the message passing mechanism, including pure HTTP, RPC-like connectors and message queues.

Distributed computing also refers to the use of distributed systems to solve computational problems. In distributed computing, a problem is divided into many tasks, each of which is solved by one or more computers,which communicate with each other via message passing.


Elements of distributed systems

•Processing components

•Data networks for components to communicate

• Including the components who are dedicated for

processing the communication, called connectors

•Data stores (data bases) and Data

•The configuration of the above elements




Distributed systems allow

• the components to

• share the computing resources

• increasing the processing power

• provide better user experience

• the users to share data and other resources, such as documents and files

• the engineers to have a centralized control

• easier maintenance, modifications, and updates.


There are different types of services, which can be gained from distributed systems

•Mail service (SMTP, POP3, IMAP)

• File transferring and sharing (FTP)

•Remote logging (telnet)

•Games and multimedia (RTP, SIP, H.26x)

•Web (HTTP)

• The service of the web gained through the internet is called the WWW


Types of Web-based Systems

•Web sites

•Web applications

•Web services and client apps

•Rich Internet Applications (RIAs)/Rich Webbased Applications (RiWAs)













Web-based systems,

Web-based information displays many benefits of multimedia technology. Using today's fast

broadband connection, it's possible to stream sophisticated content to a computer anywhere in the world. This is an advantage for many people as the information can be received and read wherever and whenever it is convenient for them, which can be a crucial factor for a busy executive. A significant amount of interactive multimedia content is now delivered via the internet.

Different architectures for distributed systems,

The basic architecture of the distributed systems is called the client-server (or two-tier) architecture.

Usually (not always) the client (user) sends a request asking the server for some service and the

server responses with the resources.


There can be multiple clients, accessing the same server. These clients may use different types of devices.

3-tier architecture is used, when there is a need for data persistence and also to separate the application logic from the data. This can be seen as an extension of 2-tier architecture.


When there is a need for further separation and distribution of the components, more tiers can be added and extend the 2-tier or 3-tier architecture into an n-tier architecture.


When different types of distributed systems want to communicate and share their services forming enterprise level systems, the Service Oriented Architecture (SOA) is used.



Modularizing Styles

Monolithic vs micro-services



Model-View-Controller (MVC) – Classic MVC


Model-View-Controller (MVC) – MVC for web Oracle Model 2 architecture (client-side mvc)



Model-View-Controller (MVC) – MVC for web Dual MVC architecture (client-mvc and server-mvc)




Model-View-Controller (MVC) – MVC web version

Model-View-Controller (MVC) Balanced Abstract Web MVC (BAW-MVC) (A distributed mvc version)

Communication techniques/technologies

Functional oriented communication

• RPC/RMI

• CORBA

Message Oriented communication

• SOAP

Resource oriented communication

• REST

Difference Between RPC and RMI


RPC and RMI are the mechanisms which enable a client to invoke the procedure or method from the server through establishing communication between client and server. The common difference between RPC and RMI is that RPC only supports procedural programming whereas RMI supports object-oriented programming.

Another major difference between the two is that the parameters passed to remote procedures call consist of ordinary data structures. On the other hand, the parameters passed to remote method consist of objects.

Remote Procedure Call (RPC) is a programming language feature devised for the distributed computing and based on semantics of local procedure calls. It is the most common forms of remote service and was designed as a way to abstract the procedure call mechanism to use between systems connected through a network. It is similar to IPC mechanism where the operating system allows the processes to manage shared data and deal with an environment where different processes are executing on separate systems and necessarily require message-based communication.

Remote Method Invocation (RMI) is similar to RPC but is language specific and a feature of java. A thread is permitted to call the method on a remote object. To maintain the transparency on the client and server side, it implements remote object using stubs and skeletons. The stub resides with the client and for the remote object it behaves as a proxy.

When a client calls a remote method, the stub for the remote method is called. The client stub is accountable for creating and sending the parcel containing the name of a method and the marshalled parameters, and the skeleton is responsible for receiving the parcel.


The skeleton unmarshals parameters and invokes the desired method on the server. The skeleton marshals the given value (or exceptions) with the parcel and sends it to client stub. The stub reassembles the return parcel and sends it to the client.


Common Object Request Broker Architecture (CORBA)

The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between systems on different operating systems, programming languages, and computing hardware. CORBA uses an object-oriented model although the systems that use the CORBA do not have to be object-oriented. CORBA is an example of the distributed object paradigm.



XML

•Designed to store and transport data

•Both human- and machine-readable (self descriptive)

•Often used for distributing data over networks

•Used by may other tools like protocols

•The main and the only component of XML is called an element

•An element has 3 components

1. Start tag

2. Body

3. End tag


XML vs JSON

JSON

Pro:

Simple syntax, which results in less "markup" overhead compared to XML.Easy to use with JavaScript as the markup is a subset of JS object literal notation and has the same basic data types as JavaScript. JSON Schema for description and datatype and structure validationJsonPath for extracting information in deeply nested structures

Con:

Simple syntax, only a handful of different data types are supported.

No support for comments.

XML

Pro:

Generalized markup; it is possible to create "dialects" for any kind of purpose XML Schema for datatype, structure validation. Makes it also possible to create new datatypesXSLT for transformation into different output formats XPath/XQuery for extracting information in deeply nested structuresbuilt in support for namespaces

Con:

Relatively wordy compared to JSON (results in more data for the same amount of information).


 
 
 

Recent Posts

See All
Data Persistence

In this blog I would like to talk about data persistence. •Information systems process data and convert them into information •The data...

 
 
 

Comments


© 2023 by The Book Lover. Proudly created with Wix.com

Join my mailing list

bottom of page