Distributed Systems
In this article we will talking about the distributed systems. And then, same as the previous one it separated to some sub topics as well.
1.Introduction to Distributed Systems
2.Architecture of the Distributed Systems
3.Communication in Distributed Systems
What is distributed systems? Distributed systems means multiple of nodes that are physically separated but linked with each together. They are communicating the data within the network as a process.
And when we move on to the distributed computing, it mean same as the systems this also having the multiple programs. And they sharing the data in limited different locations.
And also there are some differences between standalone and distributed systems.
| Standalone system | Distributed system |
| Al the components are executed within a single device. | The components are distributed and executed in multiple devices. |
| Do not need a network | Need a network |
| Usually one or tightly coupled set of technologies are used to develop (JAVA, .NET) | Multiple and loosely coupled set of technologies are used to develop(HTML +CSS + JS + PHP |
As some 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
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
And there are two types RIAs/RiWAs (client-side perspective),
- Browser-based
-Examples for browser based,
1. Plugin-based
2. Standard HTML-CSS-JS – websites, web apps
- Non browser-based
-Examples for non-browser based,
1. Standard desktop application components such as adobe, Microsoft etc.
2. Mobile apps
3. IOT devices.
different types of web-based systems,
- Static web application
- Very little, content and is not very flexible.
- Modification is too difficult.
- Dynamic web application
- At the technical level, dynamic web apps are more complex.
- upgrading content is very simple
- Online store or e-commerce
- In these kinds of web apps are more complicated because, it should have the online payments.
- And there should be a management panel as well for the administrator.
- Animated web-applications
- These kind of web apps usually use the FLASH technology.
- And there are some more innovative and modern designs as well.
Then let us move on to architecture side. There are some different kind of architecture styles in distributed systems.
- Layered Architecture
This include some of layers, which are different from each other. As an example that OSI model is related to this architecture. In this process, there are some layers up to down. They send requests and communicating up to bottom and bottom to up. And bottom of the layers are provide some services to top layers. Main advantage of this is calls always follow a specific path, and that each layer can be easily replaced or modified without affecting the whole architecture.
- client-server (or two-tier) architecture
Usually (not always) the client (user) sends a request asking the server for some service the server responses with the resources. There can be multiple clients, accessing the same server. These clients may use different types of devices.
- Object Based Architecture
This architecture is based on some arrangement of objects. Each object can interact with other objects through a given connector or interface. As the layer architecture in this, objects are communicating method as invocation. It is called Remote Procedure Calls (RPC).
When we take the monolithic and microservice Architectures there are some differences,
| Monolithic Architecture | Microservice Architecture |
| Has single code base with multiple modules. | Include collection of small, autonomous services. |
| Deployment is little bit complex | Services can be deployed independently. |
| Big database | A service has its ow database in order to decoupled from other services. |
| More advanced | Small process |
As a modularizing style, we can get Model–View–Controller (MVC). MVC is an architectural pattern. Mostly used for designing the user interfaces.
Strengths of MVC
1) Faster development process: With MVC, one programmer can work on the view while other can work on the controller to create business logic. Applications developed using MVC can be three times faster than applications developed using other development patterns.
2) Ability to provide multiple views: You can create multiple views for a model and code duplication is very limited in because it separates data and business logic from the display.
3) Support for asynchronous technique: Help developers to develop an application that loads very fast.
4) Modification does not affect the entire model: Because model part does not depends on views part.
5) MVC model returns data without formatting: So the same components can be used and called for use with any interface.
Weaknesses of MVC
1) Increased complexity
2) Inefficiency of data access in view
3) Difficulty of using MVC with modern user interface.
4) Need multiple programmers
5) Knowledge on multiple technologies is required.
6) Developer have knowledge of client side code and html code.
When we move on to the third part of the distributed systems, there are some communicating techniques,
1) Functional oriented communication
2) Message Oriented Communication
3) Request oriented communication
In functional oriented communication there are two types called RPC and RMI
| Basis for compari-sons | RPC (Remote Procedure Call) | RMI(Remote method Invocation) |
| Supports | Procedural programming | Object-oriented programming |
| Parameters | Ordinary data structures are passed to remote procedures | Objects are passed to remote methods |
| Efficiency | Lower than RMI | More than RPC and supported modern programming approach |
| Overheads | More | Less comparatively |
| In-out parameters are mandatory | Yes | Not necessarily |
| Provision of ease of | High | low |
In functional oriented communication there is method called Common Object Request Broker Architecture (CORBA). CORBA (Common Object Request Broker Architecture) – It is an architecture and specification for creating, distributing and managing distributed program objects in a network.
In it JSON and XML are the data receiving methods.
XML –
- Designed to store and transport data.
- Both human and machine-readable
- Often used for distributing data over networks
- Used by many other tools like protocols
- Main and only component is called an element. There are three components.
- Start tag
- Body
- End tag
| XML | JSON |
| Stands for extensive Markup Language | Stands for Java Script Object Notation |
| Less simple than JSON | Simple to read and write |
| Less easy to learn | Easy to learn |
| Document-oriented | Data-oriented |
| Provides capability to display data because it’s a markup language | Provide display capabilities |
| Doesn’t support array | Supports array |
| More secure | Less secure than XML |
| Files are less human readable | More human readable than XML |
| Supports many data types such as text, number, images, charts etc. | Supports only text and number data type |
And there are some data formatting /structuring techniques as well.
- Plain text
- Files(text, image)
- Query string
References
Innovative Mobile Solutions
Transform Ideas into Mobile Apps
Mobile Apps Tailored for Success
Seamless Mobile Experiences
Expert Mobile App Development