Thursday, March 7, 2019

Explain the term 'distributed systems', contrasting it from 'distributed computing'


 A distributed system is a network that consists of autonomous computers that are connected using a distribution middle ware. They help in sharing different resources and capabilities to provide users with a single and integrated coherent network.
Distributed computing is a computing concept that, in its most general sense, refers to multiple computer systems working on a single problem. In distributed computing, a single problem is divided into many parts, and each part is solved by different computers.





Compare and contrast the standalone systems with distributed systems, providing examples for advantageous use of both

 Operating system is developed to ease people daily life. For user benefits and needs the operating system may be single user or distributed. In distributed systems, many computers connected to each other and share their resources with each other. There are some advantages and disadvantages of distributed operating system that we will discuss.


Advantages of distributed operating systems:-
  • Give more performance than single system
  • If one pc in distributed system malfunction or corrupts then other node or pc will take care of
  • More resources can be added easily
  • Resources like printers can be shared on multiple pc’s
Disadvantages of distributed operating systems:-
  • Security problem due to sharing
  • Some messages can be lost in the network system
  • Bandwidth is another problem if there is large data then all network wires to be replaced which tends to become expensive
  • Overloading is another problem in distributed operating systems
  • If there is a database connected on local system and many users accessing that database through remote or distributed way then performance become slow
  • The databases in network operating is difficult to administrate then single user system



Discuss the elements of distributed systems


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.



Identify different types of services, which can be gained from distributed systems, specifying the protocols used for them 


  1. Mail service (SMTP, POP3, IMAP)
  2. File transferring and sharing (FTP)
  3. Remote logging (telnet)
  4. Games and multimedia (RTP, SIP,H.26x)
  5. Web (HTTP)




Identify examples for both browser-based and non-browser-

based clients of distributed systems  


A browser-based (or web-based) tool, application, program, or app is software that runs on your web browser. Browser-based applications only require an internet connection and an installed web browser on your computer to function. Most web-based applications are installed and run on a remote server that you access with your web browser.
client does not share any of its resources, but requests a server's content or service function.Clients therefore initiate communication sessions with servers which await incoming requests. Examples of computer applications that use the client–server model are Email, network printing, and the World Wide Web.
 


Discuss the characteristics of different types of Web-based systems, including the RiWAs 



  • Type 1: server-side HTML web application.
  • Type 2: JS generation widgets (AJAX)
  • Type 3: service-oriented single-page web apps 

Explain different architectures for distributed systems, explaining special features of each

A distributed system is a software system that interconnects a collection of heterogeneous independent computers, where coordination and communication between computers only happen through message passing, with the intention of working towards a common goal. The idea behind distributed systems is to provide a viewpoint of being a single coherent system, to the outside world. So, the set of independent computers or nodes are interconnected through a Local Area Network (LAN) or a Wide Area Network (WAN).
In this blog, I would like to talk about the available Distributed System architectures that we see today and how they are being utilised in our day to day applications. Distributed system architectures are bundled up with components and connectors. Components can be individual nodes or important components in the architecture whereas connectors are the ones that connect each of these components. 

  • Component: A modular unit with well-defined interfaces; replaceable; reusable
  • Connector: A communication link between modules which mediates coordination or cooperation among components
 So the idea behind distributed architectures is to have these components presented on different platforms, where components can communicate with each other over a communication network in order to achieve specifics objectives.

Architectural Styles

There are four different architectural styles, plus the hybrid architecture, when it comes to distributed systems.  The basic idea is to organise logically different components, and distribute those computers over the various machines.

  • Layered Architecture
  • Object Based Architecture
  • Data-centred Architecture
  • Event Based Architecture
  • Hybrid Architecture

Layered Architecture

The layered architecture separates layers of components from each other, giving it a much more modular approach. A well known example for this is the OSI model that incorporates a layered architecture when interacting with each of the components. Each interaction is sequential where a layer will contact the adjacent layer and this process continues, until the request is been catered to. But in certain cases, the implementation can be made so that some layers will be skipped, which is called cross-layer coordination. Through cross-layer coordination, one can obtain better results due to performance increase.

 Object Based Architecture

This architecture style is based on loosely coupled arrangement of objects. This has no specific architecture like layers. Like in layers, this does not have a sequential set of steps that needs to be carried out for a given call. Each of the components are referred to as objects, where each object can interact with other objects through a given connector or interface. These are much more direct where all the different components can interact directly with other components through a direct method call.

Compare and contrast the micro-service architecture from 

monolithic architecture

Micro services Architecture. The idea is to split your application into a set of smaller, interconnected services instead of building a single monolithic application. Each micro service is a small application that has its own hexagonal architecture consisting of business logic along with various adaptors.


Explain the MVC style, indicating the limitations of it in the context of web-based systems

Design Patterns - MVC Pattern. MVC Pattern stands for Model-View-Controller Pattern. This pattern is used to separate application's concerns. Model - Model represents an object or JAVA POJO carrying data. 

As consumers continue to migrate online to do their shopping, it’s natural that companies follow suit by moving their customer service options to Web-based platforms. Doing so can take care of issues quickly, linking customers to relevant policies and forms to expedite solutions. However, this capability comes with disadvantages as well.


Compare and contrast RPC with 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.
nother 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.
  1. Comparison Chart
  2. Definition
  3. Key Differences
  4. Conclusion





Explain the need for CORBA, indicating it’s use in web-based 

systems 

The Common Object Request Broker Architecture (CORBA) is a standard developed by the Object Management Group (OMg) to provide inseparability among distributed objects. CORBA is the world's leading middle ware solution enabling the exchange of information, independent of hardware platforms, programming languages, and operating systems. CORBA is essentially a design specification for an Object Request Broker (ORB), where an ORB provides the mechanism required for distributed objects to communicate with one another, whether locally or on remote devices, written in different languages, or at different locations on a network.
The CORBA Interface Definition Language, or IDL, allows the development of language and location-independent interfaces to distributed objects. Using CORBA, application components can communicate with one another no matter where they are located, or who has designed them. CORBA provides the location transparency to be able to execute these applications.
CORBA is often described as a "software bus" because it is a software-based communications interface through which objects are located and accessed. The illustration below identifies the primary components seen within a CORBA implementation.



 Discuss the XML specification


XML code, a formal recommendation from the World Wide Web Consortium (W3C), is similar to Hypertext Markup Language (HTML). Both XML and HTML contain markup symbols to describe page or file contents. HTML code describes Web page content (mainly text and graphic images) only in terms of how it is to be displayed and interacted with.




 Compare and contrast XML and JSON, indicating the pros and 

cons of both 


JSONXML
JSON strengths
Fully automated way of DE-serialising/serialising JavaScript objects, minimum to no codingDevelopers have to write JavaScript code to serialise/DE-serialise to/from XML
Very good support by all browsersWhile XML parser are built-in into all modern browsers, cross-browser XML parsing can be tricky, e.g., see this article
Concise format thanks to name/value pair -based approachVerbose format because of tags and namespaces
Fast object DE-serialisation in JavaScript (based on anecdotal evidence )Slower DE-serialisation in JavaScript (based on anecdotal evidence )
Supported by many AJAX toolkit and JavaScript librariesNot very well supported by AJAX toolkit
Simple API (available for JavaScript and many other languages)More complex APIs
JSON weaknesses
No support for formal grammar definition, hence interface contracts are hard to communicate and enforceXML Schema or DTD can be used to define grammars
No namespace support, hence poor extensibleGood namespace support, many different extensible options in Schema
Limited development tools supportSupported by wide array of development and other (e.g., transformation) tools
Narrow focus, used for RPC only, primarily with JavaScript clients (although one can argue that it's one of the strengths)Broad focus - can be used for RPC, EDI, metadata, you name it
No support in Web services -related products (application servers, ESBs, etc), at least not yetSupported by all Web services products


No comments:

Post a Comment