Distributed systems


Distributed systems

01) Distribute system,  contrasting it from Distributed computing

Distribute system
A system whose components are located on different network computers, which components are located on different network computers, which communicate and coordinate their action by passing messages to one another.

Distributed computing
In distributed system there is network of computers working and those components communicating with each other to pass messages about there task. Distributed computing means that distributed system is working on single problem and that problem divided into many sub tasks and assigned them to individual components. Since all components are working as a network, that single problem can be solved using that distributed system.
 

02) Compare and contrast the standalone system with distributed system, providing examples for advantageous use of both

standalone system
  •   All the components are executed within a single device.
  • Don't need a network.
  • Usually, one or tightly coupled set of technologies are used to develop(JAVA,.NET)
  • Advantages of a standalone computer are damage control
  • less expertise to manage one computer than it does to set up or troubleshoot several
  • standalone computers allow the users to log onto the network from anywhere and access his file server.this is central management of computer

Distributed system
  • The component is distributed and executed in multiple devices
  • need a network
  • Multiple and loosely coupled sets of technologies are used to develop(HTML, CSS, JS, PHP)
  • Redundancy and resiliency
  • Distribute system can also be faster than the single computer system
  • easily scalable
  • well designed
03) Elements of distributed systems
  • processing components
  • data networks
  • connectors
  • data stores(database)and data
  • the configuration of the above element
04) Identify the type of services, which can be gained from a distributed system, specifying the protocols used for them
  • Mail service(SMTP,POP3,IMAP)
  • file transferring and sharing(FTP)
  • Remote logging (telnet)
  • Games and multimedia (RTP, SIP, H.26x)
  • web(HTTP)
05) Identify examples for both browser-based and non-browser-based client of the distributed system

Browser-Based
  • plugin-based
  • standard :- HTML+ CSS +JS
Non-Browser-Based
  • The standard desktop application component
  • Mobile App
  • IOT devices
06) Discuss the characteristics of different types of web-based-system, including the Riwas
  • web sites
  • web application
  • web services and client app
  • Rich internet application(RIAS)/RICH web-based application(Riwas)
07) Explain different architectures for distributed systems, expanding special features of each
  • Client-server(or two-tier)architecture
  • 3-tier architecture
  • n-tier architecture
  • service-oriented architecture(SOA)
Client-Server Architecture
  • Usually, the client sends a request asking the server for some service and the server response with the resources
  • there can be multiple clients, accessing the same server
3-Tier Architecture
  • 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
examples:
  • presentation tier
  • Application Tier
  • Data Tier
n-tier Architecture
  • When there is a need for further separation and distribution of the components, more tiers can add extend the 2-tier or 3-tier architecture into an n-tier architecture
Service Oriented Architecture
  • when different types of distributed systems want to communicate and share there services forming enterprise-level systems, SOA is used
08) Compare and contrast the micro-service architecture from monolithic architecture
  • The idea is to split your application into a set of smaller, interconnected services instead of building a single monolithic application
  • Monolithic, in this context, means composed all in one place
  • It's designed to be self-contained
  • Each microservice is a small application that has its own hexagonal architecture consisting of business logic along with various adapters
  • Microservices are software development technique a variant of the service-oriented architecture
09) Explain the MVC style, indicating the limitations of it in the context of web-based systems

MVC is stands for Model View Controller.

Model: It specifies the logical structure of data in a software application and the high-level class associated with it. It is the domain-specific representation of the data which describes the working of an application. When a model changes its state, domain notifies its associated views, so they can refresh.

View: View component is used for all the UI logic of the application and these are the components that display the application’s user interface (UI). It renders the model into a form suitable for interaction. Multiple views can exist for a single model for different purposes.

Controller: Controllers act as an interface between Model and View components. It processes all the business logic and incoming requests, manipulate data using the Model component, and interact with the Views to render the final output. It receives input and initiates a response by making calls on model objects.



10) Identify different approaches to use of MVC for web-based systems and discuss their strengths and weaknesses  

MVC architecture has had wide acceptance for corporation software development. It plans to divide the system in three different layers that are in charge of interface control logic and data access, this facilitates the maintenance and evolution of systems according to the independence of the present classes in each layer. With the purpose of illustrating a successful application built under MVC, in this work we introduce different phases of analysis, design and implementation of a database and web application using UML. As central component of the application, it has a database made up by fifteen relations and a user interface supported by seventeen web pages.

Advantages of MVC

    1) Faster development process.
    2) Ability to provide multiple views.
    3) Support for asynchronous technique.
    4) Modification does not affect the entire model.
    5) MVC model returns the data without formatting.
    6) SEO friendly Development platform.

Disadvantages 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.

11) Discuss the need for the very specific type of communication technologies/techniques for the distributed/web-based systems

Communication is very important because in every application we should make requests and get the responses for that requests that is usual thing in web development.

1. Functional oriented communication
  •    RPC/RMI • CORBA 
2. Message Oriented communication
  •    SOAP 
3. Resource oriented communication
  •   REST


12 ) Compare and contrast RPC with RMI 
  • RPC is C based, and as such it has structured programming semantics
  •  call it to remote functions exported into a server



  • RMI is a Java-based technology and it's object-oriented.
  • RMI you can have references to remote objects and invoke their methods, and also pass and return more remote object references 
SupportsProcedural programmingObject-oriented programming
ParametersOrdinary data structures are passed to remote procedures.Objects are passed to remote methods.
EfficiencyLower than RMIMore than RPC and supported by modern programming approach (i.e. Object-oriented paradigms)
OverheadsMoreLess comparatively
In-out parameters are mandatory.YesNot necessarily
Provision of ease of programmingHighlow
                                                         



13) Explain the need for CORBA, indicating it's used in web-based systems  


  • 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         
  • The CORBA standards define some standard services that may be provided to support distributed object-oriented applications. ... The naming service is a directory service that allows objects to be named and discovered by other objects.


14) Discuss the XML specification, highlighting the important sections such as element naming conventions 
  • Designed to store and transport data
  •  Both human- and machine-readable (self-descriptive)
  • Often used for distributing data over networks 
  • Used by many 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 
  • There is a special type of element with the single self-closing tag 36 03 Saman
  • An element has a name 
  •  Element names are case-sensitive 
  • Element names must start with a letter or underscore e 
  •  Element names cannot start with the letters XML (or XML, or XML, etc) 
  • Element names can contain letters, digits, hyphens, underscores, and periods 
  • Element names cannot contain spaces
  •  Any name can be used, no words are reserved (except XML) 

15) Compare and contrast XML and JSON, indicating the pros and cons of both 

JSON is a much simpler format than XML. JSON is intended only for describing data as an object hierarchy, while XML has many other features as well. If you only need to send plain simple data, then JSON is a good alternative, as that is just what it's intended for.




16) Identify other data formatting/structuring techniques available for the communication of web-based systems

Recent advances in technology provide support for multi-site, web-based data entry systems and the storage of data in a centralized location, resulting in immediate access to data for investigators, reduced participant burden and human entry error, and improved integrity of clinical trial data. The purpose of this paper is to describe the development of a comprehensive, web-based data management system for a multi-site randomized behavioral intervention trial. Strategies used to create this study-specific data management system included interdisciplinary collaboration, design mapping, feasibility assessments, and input from an advisory board of former patients with characteristics similar to the targeted population. The resulting data management system and development strategies provide a template for other behavioral intervention studies.


Thank you for reading till the end of the blog.


Comments

Popular posts from this blog

Tutorial 02 – Industry Practices and Tools 1 Article

RiWAs - Client-side development 2

Programming Application & framework Tutorial Article