Friday, March 8, 2019

Distributed system





A distributed computing is  where multiple computing units are connected to complete common task. The larger computing power can do lots of task than single unit , and searches can be done more efficiently. Successes usually give the finder credit. Distributed computing split a large and complex process into subparts and execute them in parallel in distributed components, to increase productivity.
Distributed system consist of a collection of autonomous  computers , connected through a network and distribution middleware, which enables computers to coordinate their activities and share the resources of the system , so that user perceive the system as a single , integrated computing facility. Distributed   system can be seen as network based system . it exploits network to use remote components , opposed to the centralized or standalone system. This includes web application, email etc.


Standalone system
Distributed system
All the computers are executed within a single device
Components are distributed and executed in multiple devices
Don’t 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)22


Elements of Distributed system:
               1Processing components
               2Data networks for components to communicate
               3Including the components who are dedicated for processing the communication , called                    
               Connectors
               4Data stores (data bases)
               5The configure of the above elements

              Types of services

Games and Multimedia
RTP- The real-time Transport protocol is a network protocol for delivering audio and video over IP network. RTP  is used in communication and entertainment system that involve streaming media, such as telephony , video teleconference applications including WebRTC , television services and web-based push-to-talk features
SIP-The Session Initiation (SIP) is a signaling protocol used for initiating , maintaining , and terminating real-time sessions that include voice , video  and messaging applications.
Mail service
SMTP(Simple mail transfer protocol)
This stands for simple Mail Transfer Protocol. This is a standard protocol for sending emails over the internet. This is a protocol which defines mail sending and cant be used for mail receving. This is the most commonly used protocol for transferring mail between two server. Authentication is not required likes POP3 and IMAP

IMAP
Stands for Internet Message Access Protocol. Standard protocol for accessing emails and is a client/server protocol. Here the emails are received and held by the Internet server. Unlike pop, this doesn’t move the emails . the biggest difference between POP3 and IMPA is the mail syns up.
  


Browser-based
·        Plugin-based / standard HTML+CSS+JS
Non –browser-based
·        Mobile app
·        IOT
·        Standard Desktop application components

The data processing is divided into parts . A part is either client or server. The server part provide services for the clients. This architecture is depending  on both sides. If one side has some issues it cant be exist
The main communication modes:
               RPC, remote producer call
               Massage-based
               A client can be connected to several server

Different architecture for distributed system

Multiprocessor Architecture
·        Simplest distributed system model
·        System composed of multiple processes which may execute on different processors
·        Architectural model of many large real-time system
·        Distribution of processor may be pre-ordered or may be under the control of a dispatcher

Client server architecture
·        The application is modelled as set of services that are provided by server and a set of clients that use these services
·        Client know of servers but servers need not know of clients
·        Client and servers are logical processes
·        The mapping of processors to  process is not necessarily 1:1

Distributed object architecture
·        There is no distinction in a distributed object architecture between client and server
·        Each distributable entity is an object that provides services  to other objects and receives services from other objects
·        Object communication is through a middleware system called an object request broker
Peer –to – peer architecture
·        Peer to peer system are decentralized system where computations may be carried out by any node in the network
·        The overall system is designed to take advantage of the computational power and storage of a large number of networked computers
·        Most peer-to-peer systems have been personal systems  but there is increasing business use of this technology

Service-oriented architecture
·        Based around the notation of  externally provided services
·        A web service is a standard approach to making  a reusable component  available  and accessible across the web


The monolithic architecture pattern is the traditional architectural style that system utilize, with the monolith application built as single , autonomous unit. While this style has been an integral part of many businesses, its numerous limitations and issues are motivating more and more to make the switch to microservices.
               Monolithic structure make any changes to the application extremely slow as it often affects the entire system. It can require a completely rebuilt and deployed version of software whenever a modification is made to small section of code. If developers wish  to scale certain functions of an application , they must scale the entire application , further complicating changes and updates. Microservices help to solve these challenges and more  

MVC architecture

MVC architecture also known as the model , view and controller Architecture. Lets discuss about the main elements of this. Here:
1.      Model
2.      View
3.      Controller
Model is the central componenet of the  pattern . it’s the application dynamic data structure , independent of the user interface. Directly manages the data, logic and rules of the application
View is any representation of information such as chart, diagram or table
Controller is accepts input and converts it to commands for the model or view

MVC architecture is highly used web application. There are multiple goals in the mvc architecture .
Here are:
               Simultaneous development
               Code reuse
There are multiple advantages and disadvantages that can gain from the MVC architecture
Advantages are:
               Simultaneous development
               High-cohesion
               Low coupling
               Ease of modification
               Multi views for model
Disadvantages :
               Code navigability
               Multi-artifact consistency
               Pronounced learning curve
              
Different Approaches of MVC



1.Kendo
A great framework for mobile and web app development, consisting of 3 widgets. UI web(everything you need to build a modern website) , UI mobile (offers the ability  to built mobile web apps that could be mistaken for native apps) and UI DataVis (enables developers to implement attractive user-facing visualization of data and reports)

2.Ember
Originally released in 2011 , Ember takes cues from Angular when it comes to ability to create dynamic user-facing elements for web apps. Like Google’s framework , Ember can update the view when the model changes and vice vresa, keeping the mechanism of apps perfectly in sync

3.AngularJS
Considered by many to be the “big daddy” of Javascript frameworks, due to the fact it was developed by Google. There’s a huge developer community behind AngularJS and it excels particular in supercharging HTML code thanks to its ability to aid the construction of dynamic user interface





 














RPC is c based and as such it has structured programming semantics on other side, RMI is a Java based technology and its object oriented

With RPC you can just call remote functions exported into server , in RMI you can have references to remote objects and invoke their models, and also pass and return more remote objects  references that can be distributed among many JVM instances , so its much more powerful


RMI stands out when the need to develop something more complex than pure client-server architecture arises
Its very east to spread out objects over a network enabling all the client to communicate without having to establish individual connections explicitly



              

The common Object Request  Broker Architecture (COBA) is a specification developed by the object management group. COBA describes a messaging mechanism by which objects distributed over a network can communicate with each other irrespective of the platform and language used to develop those objects

 COBA have two types of objects:
1.      Server provider- The object that include some functionality
2.      Client – the object that requires the services of other objects

The service provider object and client object communicate with each other. Each service provider defines an interface. Which provides a description of the service provided by client







The XML specification include here relate to web services and service-oriented architecture


The XML-specification----

a.      Extensible  resource    identifier (XRI)-URI-compatible identifier scheme and resolution protocol for abstract identifier
b.      Ink XML- Ink Markup Language is data format for representing digital ink data that is input with an electronic pen .as part of a multimodal system
c.      RELAX NG- is schema language for XML based TREX and RELAX
d.      Schematron –is a language and toolkit for making assertions about found in XML documents
Also have
XForms / XML Query/Voice XML/XML Schema





Json
Pros –

Simple syntax , which results in less “markup” overhead compared to XML

Easy to use with JavaScript the markup is a subset of JS Object literal notation and has the same basic data type as JavaScript

Json path for extracting information deeply nested structures


Cons –
No support for comments
Simple syntax , only handful of different data types are supported

XML
Pros –
Generalized markup ; its possible to create “dialects” for kind of purpose

XML schema for datatype , structure validation. Makes it also possible to create new datatypes

XSLT for transformation into different output formats

Built in support for namespaces

Cons
Relatively wordy compared to JSON





No comments:

Post a Comment