Distrbuted Systems

Distributed System

A distributed system is collection of independent computers that appears to its users as a single system in order to achieve a common goal.

Distribution computing:- Distributed computing is a field of computer science that studies distributed systems.

Features of distributed system is 

  • It has a single authority.
  • It can be worldwide.
  • It can be typical service like infrastructure services or application service
  • It has concurrency.
  • It has independent failures.
  • No global clock.

Necessity for a Distributed system

  • Sharing of information and services.
  • Possibility to add components that improves availability, reliability, fault tolerance performance, scalabilty. 
  • Continuing advances in communication technology.
  • If one machine crashes, the system as a whole can still survive. Higher availability and improved reliability. 
  • Modular expand-ability.
  • Allow Many users to access the common database.


Ex:- Intranets, Internet,  Mobile and ubiquitous and WWW.

Standalone vs Distributed System.

Standalone System

  • Standalone application is a binary that can be launched directly.
  • It does not run on Stream run time environment. 
  • In standalone mode, all operators will be fused into single partition and single processing element will be generated for this partition. 

 Architectures of Distributed System.


Architecture describe the a the way to configure a collection of components and connectors.

Multiprocessor architecture
Client-server architecture
Distributed object architecture
Inter-organizational computing.


Multiprocessor Architecture

This is the simplest distribution system model which is composed of  multiple processes which may execute on different processors.
Distribution of process to processor may be per-order or may be under control of a dispatcher.








Client-Server architecture

The application is modeled as a set of services that are provided by server and a set of clients that use these services.
Clients know about the server but server doesn't know of the client that use the services.
It is a logical process between client and server.





Distributed object architecture

There is no distinction  in a distributed object architectures between client and servers.
Each distributable entity is an object and receives services from other objects.
Object communication is through a middle ware system called an object request broker.
However, distributed object architectures are more complex to design than C/S systems.




 Inter-Organizational architecture

For security and interoperability reasons most distributed computing has implemented at the enterprise level.
Local standards, management and operational processes apply.
Newer models of distributed computing have been designed to support inter-organizational computing where different nodes are located in different organization.



Monolithic and micro-services architecture.

Monolithic Architecture.

Monolithic is design to be self-contained; components of the program are interconnected are interdependent rather than loosely coupled as is the case with modular software program.

Micro Service Architecture

Micro services 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 micro services architecture, services are fine-grained and the protocols are lightweight.

 Model View Controller (MVC)

Model–view–controller is an architectural pattern commonly used for developing user interfaces that divides an application into three interconnected parts. ... Popular programming languages like Java, C#, Python, Ruby, PHP have MVC frameworks that are used in web application development straight out of the box.

  • MVC advantages

    • Simultaneous development – Multiple developers can work simultaneously on the model, controller and views.

    •  MVC enables logical grouping of related actions on a controller together. The views for a specific model are also grouped together.

    •  The very nature of the MVC framework is such that there is low coupling among models, views or controllers.

    • Because of the separation of responsibilities, future development or modification is easier

    • Multiple views for a model – Models can have multiple views.

     MVC disadvantages

    • Code navigability – The framework navigation can be complex because it introduces new layers of abstraction and requires users to adapt to the decomposition criteria of MVC.

    •  Multi-artifact consistency – Decomposing a feature into three artifacts causes scattering. Thus, requiring developers to maintain the consistency of multiple representations at once.

    •  Pronounced learning curve – Knowledge on multiple technologies becomes the norm. Developers using MVC need to be skilled in multiple technologies.

    What is 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.



    Basis for comparison















    Common Object Request Broker Architecture (COBRA)


    COBRA is a defined by Object Management Group(OMG) as designed to facilitate the communication of system that are deployed on diverse platforms.







Comments

  1. This type of message always inspiring and I prefer to read quality content, so happy to find good place to many here in the post, the writing is just great, thanks for the post.
    doors next

    ReplyDelete
  2. Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I'll be subscribing to your feed and I hope you post again soon. Big thanks for the useful info. https://tutlance.com/homework-help-answers/programming

    ReplyDelete

Post a Comment

Popular posts from this blog

What Is Programming

Client Side Development 2 - RiWAs