Friday, March 8, 2019

Distributed Systems


Distributed Systems

A distributed computer system consists of multiple software components that are on multiple computers, but run as a single system.
The computers that are in a distributed system can be physically close together and connected by a local network, or they can be geographically distant and connected by a wide area network.
A distributed system can consist of any number of possible configurations, such as mainframes, personal computers, workstations, minicomputers, and so on.
The goal of distributed computing is to make such a network work as a single computer.



Distributed Computing

Distributed computing is where multiple computing units are connected to achieve a common task. The larger computing power enables a lot more tasks to be performed than in a single unit, and searches can be coordinated for efficiency.

Distributed computing is used to solve complex computational problems that cannot be completed within a reasonable amount of time on a single computer. The time necessary to complete all the calculations is reduced by harnessing the power of multiple computers.


Standalone system vs Distributed system





Advantage of standalone systems

•One preferred standpoint of an independent framework is harm control. For instance, if something turns out badly, just the independent will be influenced.

•Effortlessness is another preferred standpoint, since it takes significantly less ability to oversee one PC than it does to setup or investigate a few.

•Independent PCs can likewise be progressively helpful. For instance, imprinting on a system may expect you to walk some separation from the PC to the printer. Contrarily, any peripherals on an independent must be in arm's span. At long last, an independent does not influence other PC clients. With a system, one client may squander space by watching films or tuning in to music. Thusly, every other person utilizing the system may see slower PC execution.




Advantage of distributed systems

•Sharing Data : There is a provision in the environment where user at one site may be able to access the data residing at other sites.

•Autonomy : Because of sharing data by means of data distribution each site is able to retain a degree of control over data that are stored locally. Each local database administrator may have different degree of local autonomy.

•Availability : If one site fails in a distributed system, the remaining sites may be able to continue operating. Thus a failure of a site doesn't necessarily imply the shutdown of the System.



Elements of distributed systems

• Processing components

• Data networks
 It's for components to communicate, which includes the components who are dedicated for
processing the communication, called connectors.

• Data stores

• Configuration


_________________________________________________________________________________



Types of services in distributed systems

Mail service (Protocols :- SMTP, POP3, IMAP)

File transferring and sharing (Protocol :- FTP)

Remote logging (Protocol :- telnet)

Games and multimedia (Protocols :- RTP, SIP,H.26x)

Web (Protocol :- HTTP)



_________________________________________________________________________________



Web application

An online application or web application is a product program that keeps running in an Internet program, on or through a website page. Like a product program that keeps running on a PC work area or work area application, a web application takes into consideration client connection and can be intended for an assortment of employments. Web applications are typically made utilizing a mix of programming dialects intended for use on the Internet.


Rich Web based Applications
 
RiWAs are web application that have most of the characteristics of desktop application, typically delivered through web browser plug-ins or independently via sandboxes or virtual machine.it has always been about the user experience, it enhances the end-user experience in different ways.it can run faster and be more engaging. they can offer users a better visual experience, better accessibility, usability and more interactivity than traditional browser applications that uses only HTML and HTTP



_________________________________________________________________________________


Architectures of distributed system


•Client server architecture (two tier architecture)

A two-tier architecture is a software architecture in which a presentation layer or interface runs on a client, and a data layer or data structure gets stored on a server. Separating these two components into different locations represents a two-tier architecture, as opposed to a single-tier architecture. Other kinds of multi-tier architectures add additional layers in distributed software design.



•Three tier architecture

A three-tier client/server is a type of multi-tier computing architecture in which an entire application is distributed across three different computing layers or tiers. It divides the presentation, application logic and data processing layers across client and server devices.



•N tier architecture

N-tier architecture is a client-server architecture concept in software engineering where the presentation, processing and data management functions are both logically and physically separated. These functions are each running on a separate machine or separate clusters so that each is able to provide the services at top capacity since there is no resource sharing. This separation makes managing each separately easier since doing work on one does not affect the others, isolating any problems that might occur.



•Service oriented architecture

Service Oriented Architecture is about enabling heterogeneous, componentized, and distributed applications to work together seamlessly.3 It is a process and architectural mindset that focuses on organizing systems as reusable components, not fixed processes. In SOA, application functionality may be discovered and reused through loosely coupled standards-based interfaces. Loose coupling of components is a core characteristic of SOA; and leads to flexibility and agility. Loosely coupled, modular systems reduce vendor lock-in, and enable quicker, less expensive response to change. SOA helps break up stovepipes and facilitates cross-domain sharing of enterprise resources.


_________________________________________________________________________________



Micro-service architecture

Microservice architecture, also referred to as microservices, is a phrase used in software design to refer to a single software application designed as a suite of independently deployable small services. For example, the small application might support multiple clients, expose APIs and integrate with other applications.



Monolithic architecture

A monolithic architecture is the traditional unified model for the design of a software program. Monolithic software is designed to be self-contained; components of the program are interconnected and interdependent rather than loosely coupled as is the case with modular software programs.



Micro-service architecture vs Monolithic architecture

First, let’s compare microservices vs monolithic architecture. A monolithic application is built as a single unit. Enterprise Applications are built in three parts: a database (consisting of many tables usually in a relational database management system), a client-side user interface (consisting of HTML pages and/or JavaScript running in a browser), and a server-side application. This server-side application will handle HTTP requests, execute some domain-specific logic, retrieve and update data from the database, and populate the HTML views to be sent to the browser. It is a monolith – a single logical executable. To make any alterations to the system, a developer must build and deploy an updated version of the server-side application.

By contrast, microservice capabilities are expressed formally with business-oriented APIs. They encapsulate a core business capability, and as such are valuable assets to the business. The implementation of the service, which may involve integrations with systems of record, is completely hidden as the interface is defined purely in business terms. The positioning of services as valuable assets to the business implicitly promotes them as adaptable for use in multiple contexts. The same service can be reused in more than one business process or over different business channels or digital touchpoints, depending on need. Dependencies between services and their consumer are minimized by applying the principle of loose coupling. By standardizing on contracts expressed through business-oriented APIs, consumers are not impacted by changes in the implementation of the service. This allows service owners to change the implementation and modify the systems of record or service compositions which may lie behind the interface and replace them without any downstream impact.


_________________________________________________________________________________



MVC

Model View Controller or MVC as it is popularly called, is a software design pattern for developing web applications. A Model View Controller pattern is made up of the following three parts ; Model , View, Controller. The lowest level of the pattern which is responsible for maintaining data.


Strengths

Faster development process: MVC supports rapid and parallel development. With MVC, one programmer can work on the view while other can work on the controller to create business logic of the web application. The application developed using MVC can be three times faster than application developed using other development patterns.

Ability to provide multiple views: In the MVC Model, you can create multiple views for a model. Code duplication is very limited in MVC because it separates data and business logic from the display.

Support for asynchronous technique: MVC also supports asynchronous technique, which helps developers to develop an application that loads very fast.
Modification does not affect the entire model: Modification does not affect the entire model because model part does not depend on the views part. Therefore, any changes in the Model will not affect the entire architecture.

SEO friendly Development platform: Using this platform, it is very easy to develop SEO-friendly URLs to generate more visits from a specific application.



Weaknesses

Increased complexity.

Inefficiency of data access in view.

Difficulty of using MVC with modern user interface.
Need multiple programmers.

Knowledge on multiple technologies is required.

Developer have knowledge of client side code and html code.



_________________________________________________________________________________



RPC vs RMI












_________________________________________________________________________________



COBRA

Common Object Request Broker Architecture (CORBA) is an architecture and specification for creating, distributing, and managing distributed program objects in a network. It allows programs at different locations and developed by different vendors to communicate in a network through an "interface broker." CORBA was developed by a consortium of vendors through the Object Management Group (OMG), which currently includes over 500 member companies. Both International Organization for Standardization (ISO) and X/Open have sanctioned CORBA as the standard architecture for distributed objects (which are also known as components). CORBA 3 is the latest level.

No comments:

Post a Comment

Client - side Development II - RiWAs

Key features of RiWAs Direct interaction:  In RiWAs, users can interact directly with page elements through editing or drag-and-drop too...