Tutorial 04
1. Explain the term “distributed systems”, contrasting it from “distributed computing”
Distributed system is a collection of independent
computers that are connected with an interconnection network. Distributed systems
allows multiple machine to perform multiple processes. Distributed system
example include banking system , air reservation system and so on.
Distributed computing is a method of computer
processing in which different parts of a computer program are run on two or
more computers that are communicating with each other over a network.In distributed
computing a large work load is distributed amongst different computers. When
all computers finish their operations, the work done is combined together to
obtain the result. Most of the large corporations like Facebook and Amazon work
on the basis of distributed computing as they need to perform all kinds of
different tasks every day regarding thousands of requests, chats, orders,
refunds, replacements, posts and many so need to require lots of computers
assigned different-different task. These companies take the advantage of
distributed computing to work efficiently.
2. Compare and contrast the standalone systems with distributed systems, providing examples for advantageous use of both
Distributed System
|
Standalone System
|
Allows
resource sharing, including software by systems connected to the network
|
|
Need
a network
|
|
Multiple and loosely
coupled set of technologies
are used to develop (HTML +CSS + JS + PHP)
|
|
The components are distributed and
executed in
|
|
Easiest to understand is
redundancy and resiliency. If a company is serving its website from a
distributed set of servers, rather than a single server, it may be able to stay
up even if one server physically fails. If data is distributed between multiple
servers or disks, a common occurrence in modern distributed systems, there may
not be any data loss even if a storage device ceases to work.
|
|
3. Discuss the elements of distributed systems
RESOURCE SHARING: It
is the ability of the system to use any hardware, software or data anywhere in
the system. The resource manager controls access, provides naming scheme and
controls concurrency among the system tools. The resource sharing model depicts
the correct resources provided and how they are used for interaction among each
other
OPENNESS: It is concerned
with extension and improvement of distributed system and how new components are
integrated to existing ones.
CONCURRENCY: Components in
distributed system are executed in concurrent processes. Moreover, the
integrity of the system is violated if concurrent updates are not coordinated.
SCALABILITY: It is the adaption
of distributed system to accommodate more users and respond faster. This is
usually done by adding faster processors. In a distributed system, components
are not required to be changed when scale of the system increased.
FAULT TOLERANCE: Fault
tolerance in distributed system is achieved by recovery and redundancy
processes and is quite competitive.
TRANSPARENCY: Distributed
system should be perceived by users and application programmers as a whole
rather than a collection of cooperative components. This is transparency of a
distributed system.
- Games and multimedia (RTP, SIP, H.26x)
- File transferring and sharing (FTP)
- Mail service (SMTP, POP3, IMAP)
- Remote logging (telnet)
- Web (HTTP)
5. Identify examples for both browser-based and non-browser-based clients of distributed systems
Browser-based
|
Non-browser-based
|
Office
Online
|
|
Web
Applications
|
|
Google
Docs
|
|
Netflix
|
|
Dropbox
| VLC player |
6. Discuss the characteristics of different types of Web-based systems, including the RiWAs
- Product related characteristics - integral part of web application. It consists of: Present, Hypertext, and Content. Presentation plays an important role in product marketing and survival. Hypertext is the base of web application. Content is the informational part.
- Use related characteristics - can divide the user related characteristics of web application as: Natural content, Social content and Technical content. Natural Content includes the geographical location from where the web applications are accessed and availability of the web application. Social Content is related to user specific aspect. Technical Content is related to network of web application and the devices where web application are used.
- Development related characteristics - It includes Development team, Development process, Technical infrastructure and Integration. Development team must be highly knowledgeable in their field. There must be proficient designers, database developers, IT experts, hypertext experts, application developers. The development process must be flexible. There must be parallel processes of development. The web application must have support for integration with already existing system or with external content and services.
- Evolution related characteristics - As per the changes in requirements there occurs some changes or upgradations in the web application. This evolution may concern all the other three characteristics viz. Product, Use and Development. Market competition or short time development may cause the changes.
7. Explain different architectures for distributed systems, explaining special features of each
- 2-tier Architecture - The basic architecture of the distributed systems.Usually the client sends arequest asking the server for some service and the server responses with the resources. There can be multiple clients, accessing the same server. These clients may use different types of devices. There is no intermediate between client and server. Because of tight coupling a 2 tiered applications will run faster.
- 3-tier Architecture – There are three layers.Those are Client layer , Business layer and Data layer. Each tier can scale horizontally. used, 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. Presentation tier can cache requests, network utilization is minimized, and the load is reduced on the Application and Data tiers.
- n-tier
Architecture - also called multi-tier architecture because the software is
engineered to have the processing, data management, and presentation functions
physically and logically separated. When there is a need for further separation
and distribution of the components, more tiers can be added and extend the
2-tier or 3-tier architecture into an n-tier
architecture.
It is not strictly
true that monolith apps are always simple, but microservices are often 10 times
larger and almost always requires more resources.
Monolith apps allow
you to set your deployment once and then simply adjust it based on ongoing
changes. Microservices require much more
work; you will need to deploy each microservice independently, worry about
orchestration tools, and try to unify the format of your ci/cd pipelines to
reduce the a amount of time required for doing it for each new microservice.
If you plan to use a
microservices architecture, get a DevOps for your team and prepare yourself. For scalability, microservices are again
better suited. Monolith apps are hard to scale because, even if you run more
workers, every worker will be on the single, whole project, an inefficient way
of using resources. Cost is tricky to calculate because monolith
architecture is cheaper in some scenarios, but not in others.
9. Explain the MVC style, indicating the limitations of it in the context of web-based systems
MVC (Model View Controller) 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 −
The lowest level of the pattern which is responsible for maintaining data.
- View −
This is responsible for displaying all or a portion of the data to the
user.
- Controller −
Software Code that controls the interactions between the Model and View.
- Faster development process - MVC supports rapid and parallel development. If an MVC model is used to develop any particular web application then it is possible that one programmer can work on the view while the another can work on the controller to create business logic of the web application.
- 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.
- Support for asynchronous technique - The MVC architecture can also integrate with the JavaScript Framework. This means that MVC applications can be made to work even with PDF files, site-specific browsers, and also with desktop widgets.
- SEO friendly Development platform - MVC platform supports development of SEO friendly web pages or web applications. Using this platform, it is very easy to develop SEO-friendly URLs to generate more visits from a specific application. This development architecture is commonly used in the Test Driven Development applications.
- The main
disadvantage of MVC Architecture is it can’t be suitable for small applications
which has adverse effect in the application’s performance and design.
11. Discuss the need for very specific type of communication technologies/techniques for the distributed/web-based systems
- Functional oriented communication
- Message Oriented communication
- Resource oriented communication
12. Compare and contrast RPC with RMI
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 and supported by modern
programming approach (i.e. Object-oriented paradigms)
|
Overheads
|
More comparatively
|
Less comparatively
|
13. Explain the need for CORBA, indicating it’s use in web-based systems
The Common Object
Request Broker Architecture (CORBA) is a specification developed by the Object
Management Group (OMG). CORBA describes a messaging mechanism by which objects
distributed over a network can communicate with each other irrespective of the
platform and language used to develop those objects.
- 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
15. Compare and contrast XML and JSON, indicating the pros and cons of both
- Both JSON and XML are "self-describing" (human readable)
- Both JSON and XML are hierarchical (values within values)
- Both JSON and XML can be parsed and used by lots of programming languages
- Both JS JSON
doesn't use end tag
- JSON is shorter
- JSON is quicker to read and write
- JSON can use arrays
- ON and XML can be fetched with an XMLHttpRequest
The biggest difference:
XML has to be parsed with an XML parser. JSON can be parsed by a standard
JavaScript function.
16. Identify other data formatting/structuring techniques available for the communication of web-based systems
- Attributes definition
- Architecture Design
- Scenario Analysis
No comments:
Post a Comment