In this blog, I would like to talk about the available Distributed System that we see today and how they are being utilized in our day to day applications.Distributed computing & Distributed system..
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. Success usually gives credit to the finder. Hunting large prime numbers and analyzing DNA codes are included in distributed computing projects.
Distributed computing is a very specific use of distributed systems, dividing a large and complex processing into sub - parts and executing them in distributed components in parallel, increasing productivity. For example, finding the prime numbers within a range that can be divided into smaller ranges and assigned to various computers.
Distributed system:
A distributed system consists of a collection of autonomous computers computers connected via a network and distribution middleware that allows computers to coordinate their activities and share the system's resources so that users perceive the system as a single, integrated computing facility.
Any network - based system can be viewed as a distributed system that exploits the network to use remote components, as opposed to centralized or standalone systems. They include various components such as: components on the client side, web servers, servers for databases, web services, etc.
Stand - alone power system & Distributed system..
Stand - alone power system:
A stand - alone power system, also known as a remote power supply area, is an off - the - grid electricity system for locations not equipped with a distribution system for electricity. Typical SAPS includes one or more methods of generating electricity, storing and regulating energy.
Standalone Advantages:
standalone computer is damage control.
standalone computers can also be more convenient.
standalone does not affect other computer users.
Distributed system:
A distributed system is a system with components located on various networked computers that communicate and coordinate their actions by transmitting messages to each other. The components interact with each other to achieve a common objective
Standalone system
|
Distributed
system
|
All the components are executed within a single
device.
|
The components are distributed and executed in multiple
devices
|
Do not 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)
|
The elements of distributed systems..
Operational Platform:
he system you need to have networking gear, servers, the means to put operating systems onto the servers, bring them up to baseline configuration, and monitor their operational status (disk, memory, cpu)
Deployment:
The first part of application management is a means of getting application components onto servers and controlling them. I generally prefer deploying complete, singular packages which bundle up all their volatile dependencies.
Configuration:
Your configuration system is going to be intimately tied to your deployment system, so think about these things together. Aside from separating the types of configuration you want there are a lot of trade offs.
Application Monitoring:
Application level monitoring and operational level monitoring are very similar, and can frequently be combined in one tool, but are conceptually quite different.
There are different types of services, which can be gained from distributed systems
•Mail service (SMTP, POP3, IMAP)
•File transferring and sharing (FTP)
•Remote logging (telnet)
•Games and multimedia (RTP, SIP,H.26x)
•Web (HTTP)
Advantage of Web-Based Applications:
An application is any piece of software that provides a computer with instructions to accomplish a specific task. The main difference between Web - based apps and offline apps is the method by which users access the program. Usually, web - based apps are accessed through a network connection or a web browser. This gives the programmer a much larger user audience .As long as users have access to the browser app, it is available worldwide, irrespective of the operating system or hardware installed on their computers .
Advantages of Non Web-Based Applications:
A non - Web - based application does not need to be compatible with Web browser applications, and without many of the security features that are normally required to establish a secure data connection between a Web server and a global audience. Furthermore, the programmer can develop code for a specific operating system instead of using a more generalized approach to Web compatibility .
The characteristics of different types of Web-based systems, including the RiWAs ..
To develop web - based applications, modern business applications use a variety of programming platforms. Some applications can be developed in Java, some in. Net, some in Angular JS, Node.js, and so on.
Web service is a standardized means of propagating communication on the World Wide Web between client and server applications. A web service is a module of software designed to perform a number of tasks. Web services can be searched over the network and can be invoked as well. When the web service is invoked, the customer who invokes that web service would be able to provide functionality.
Types of Web-based Systems
Web sites
•Web applications
•Web services and client apps
•Rich Internet Applications (RIAs)/Rich Web based Applications (RiWAs)
Architectures for distributed systems
Components and connectors are bundled with distributed system architectures. Components in the architecture can be individual nodes or important components, while connectors connect each of these components.
Component: A modular unit with well-defined interfaces; replaceable; reusableConnector: 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.
There are four different architectural styles, plus the hybrid architecture, when it comes to distributed systems. The basic idea is to organize logically different components, and distribute those computers over the various machines.
- Layered Architecture
- Object Based Architecture
- Data-centered Architecture
- Event Based Architecture
- Hybrid Architecture
The micro-service architecture & Monolithic architecture
Micro services Architecture
The idea is to divide your application into a set of smaller, interconnected services rather than a single monolithic application. Each micro service is a small application with its own hexagonal architecture consisting of business logic together with different adapters. Some micro services would expose an REST, RPC, or message - based API and most services use other services ' APIs.
The pattern of micro service architecture significantly impacts the application - database relationship. Each service has its own database scheme instead of sharing a single database scheme with other services. This approach, on the one hand, runs counter to the idea of a business - wide data model. It also often leads to some data being duplicated.
Some APIs are also exposed to web apps for mobile applications, desktop applications. However, the apps do not have direct access to the back - end services. Instead, an intermediary known as an API Gateway mediates communication. Tasks such as load balancing, caching, access control, API metering and monitoring are the responsibility of the API Gateway.
Benefits of Micro services Architecture:
1.By decomposing application into a set of manageable services that are much faster to develop and much easier to understand and maintain, it addresses the problem of complexity.
2.It enables each service to be developed independently by a team that is focused on that service.
3.It reduces the barrier to the adoption of new technologies as developers are free to choose which technologies make sense for their service and are not bound by the choices made at the beginning of the project
Drawbacks of Micro services Architecture:
1.Micro services architecture adds complexity to the project just because a distributed system is a micro services application. You need to select and implement a communication mechanism based on either messaging or RPC and write code to handle partial failure and take other distributed computing errors into account.
2.Micro services have the architecture of the partitioned database. Business transactions in a micro services - based application that update multiple business entities need to update multiple databases owned by different services.
About Model – View – Controller
Model – View – Controller (usually referred to as MVC or Model WC for the MVVC variant) is an architectural pattern commonly used to develop user interfaces that divide an application into three interconnected components. This is done to separate internal information representations from the presentation and acceptance of information from the user.
Traditionally used for desktop graphical user interfaces (GUIs), this architecture has become popular in designing web applications, including mobile, desktop and other clients. Popular programming languages such as Java, C #, Python, Ruby, PHP have MVC frameworks that are used directly out of the box in the development of web applications.
Uses of MVC for web-based systems ..
1. Faster development process:
MVC supports rapid development in parallel. When using an MVC model to develop any particular web application, one programmer may be able to work on the view while the other may work on the controller to create the web application's business logic. The application developed using the MVC model can therefore be completed three times faster than usi applications.
2. Ability to provide multiple views:
In the MVC Model, you can create multiple views for a model. Today, there is an increasing demand for new ways to access your application and for that MVC development is certainly a great solution. Moreover, in this method, Code duplication is very limited because it separates data and business logic from the display.
3. Support for asynchronous technique:
It is also possible to integrate MVC architecture with the JavaScript Framework. This means that even PDF files, site - specific browsers, and also desktop widgets can be used for MVC applications. MVC also supports asynchronous technique that helps developers develop a very fast loading application.
4.User interface tends to change more frequently for any web application than even the company's business rules. It's obvious that you make frequent changes to your web application, such as changing colors, fonts, screen layouts, and adding new mobile phone or tablet device support. In addition, adding new views in MVC pattern is very easy because the Model part is not dependent on the views part.
Compare and contrast RPC with RMI ..
RPC and RMI are the mechanisms that allow a client to invoke the server procedure or method by establishing client - server communication. The common difference between RPC and RMI is that RPC only supports the programming of procedures whereas RMI supports the programming of objects.
Another major difference between the two is that ordinary data structures consist of the parameters passed to the call of remote procedures. On the other hand, objects are the parameters passed to the remote method.
Comparison Chart
Basis for comparison
|
RPC
|
RMI
|
Supports
|
Procedural programming
|
Object-oriented programming
|
Parameters
|
Ordinary data structures are passed to remote procedures.
|
Objects are passed to remote methods.
|
Efficiency
|
Lower than RMI
|
More than RPC
|
In-out parameters are mandatory
|
Yes
|
Not necessarily
|
Overheads
|
More
|
Less comparatively
|
Provision of ease of programming
|
High
|
Low
|
- RPC supports paradigms for process programming, so it is based on C, while RMI supports object - oriented programming paradigms and is based on java.
- The usual data structures are the parameters passed to remote procedures in RPC. RMI, on the contrary, transits objects to the remote method as a parameter.
- RPC protocol generates more overheads than RMI.
- In RPC, references could not be probable because the two processes have the distinct address space, but it is possible in case of RMI.
CORBA is a standard for distributed objects on the most basic level.
CORBA allows a request to request an operation to be carried out by a distributed object and to return the results of the operation to the request.
The application communicates with the object being distributed that actually performs the operation. This is the basic functionality of the client / server, Where a client submits a server request and the server returns to the client. Data can be transferred from the client to the server and is linked to a specific operation on a particular object. The data is then returned in the form of a response to the client.
1. CORBA supports many existing languages. CORBA also supports mixing these languages within a single distributed application.
2. CORBA supports both distribution and Object Orientation.
3. CORBA is an industry standard. This creates competition among vendors and ensures that quality implementations exist. The use of the CORBA standard also provides the developer with a certain degree of portability between implementations. Note: application source is not 100% portable between different CORBA products.
4. CORBA provides a high degree of interoperability. This insures that distributed objects built on top of different CORBA products can communicate. Large companies do not need to mandate a single CORBA product for all development.
Over 600 companies back CORBA, including hardware companies, software companies, and cable companies, phone companies, banks.

XML's design goals emphasize simplicity, generality, and usability across the Internet. For different human languages, it is a textual data format with strong support through Unicode. While XML's design focuses on papers, the language is widely used to represent arbitrary data structures such as those used in web services. Several schema systems exist to aid in the definition of XML-based languages, while programmers have developed many application programming interfaces (APIs) to aid the processing of XML data.
Many industry data standards, e.g. HL7, OTA, FpML, MISMO, NIEM, etc. are based on XML and the rich features of the XML schema specification. Many of these standards are quite complex and it is not uncommon for a specification to comprise several thousand pages.
Tag
A tag is a markup construct that begins with < and ends with >. Tags come in three flavors:
start-tag, such as <section>;
end-tag, such as </section>;
empty-element tag, such as <line-break />.
In publishing, DITA is an XML industry data standard. XML is used extensively to underpin various publishing formats.
Element
An element is a logical document component that either begins with a start-tag and ends with a matching end-tag or consists only of an empty-element tag. The characters between the start-tag and end-tag, if any, are the element's content, and may contain markup, including other elements, which are called child elements. An example is <greeting>Hello, world!</greeting>. Another is <line-break />.
The pros and cons of XML and JSON...
Pros:
Simple syntax, which results in less "markup" overhead compared to XML.
Easy to use with JavaScript as the markup is a subset of JS object literal notation and has the same basic data types as JavaScript.
JSON Schema for description and datatype and structure validation
JsonPath for extracting information in deeply nested structures
Generalized markup; it is possible to create "dialects" for any kind of purpose
XML Schema for datatype, structure validation. Makes it also possible to create new data types
XSLT for transformation into different output formats
XPath/XQuery for extracting information in deeply nested structures
built in support for namespaces
Cons:
Simple syntax, only a handful of different data types are supported
Relatively wordy compared to JSON (results in more data for the same amount of information).





0 comments:
Post a Comment