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
A 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
- Mail service (SMTP, POP3, IMAP)
- File transferring and sharing (FTP)
- Remote logging (telnet)
- Games and multimedia (RTP, SIP,H.26x)
- Web (HTTP)
Identify examples for both browser-based and non-browser-
based clients of distributed systems
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.
A 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
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.
- Comparison Chart
- Definition
- Key Differences
- 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
Compare and contrast XML and JSON, indicating the pros and
cons of both
| JSON | XML |
|---|---|
| JSON strengths | |
| Fully automated way of DE-serialising/serialising JavaScript objects, minimum to no coding | Developers have to write JavaScript code to serialise/DE-serialise to/from XML |
| Very good support by all browsers | While 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 approach | Verbose 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 libraries | Not 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 enforce | XML Schema or DTD can be used to define grammars |
| No namespace support, hence poor extensible | Good namespace support, many different extensible options in Schema |
| Limited development tools support | Supported 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 yet | Supported by all Web services products |











No comments:
Post a Comment