Distributed Systems: Types, Characteristics, and Applications, Mitschriften von Computer Vision

These notes describe about the Distributed Applications and what are the types of distributed applications are. About how we can scale in or scale out

Art: Mitschriften

2020/2021

Hochgeladen am 19.06.2022

mohammad-afwan
mohammad-afwan 🇩🇪

5 dokumente

1 / 7

Toggle sidebar

Diese Seite wird in der Vorschau nicht angezeigt

Lass dir nichts Wichtiges entgehen!

bg1
Exercise 5
Task 1
Types of distributed systems
There are 3 types of Distributed Systems: distributed computing systems, distributed
information systems, and pervasive systems
High performance distributed computing
In cluster computing the underlying hardware consists of a collection of similar
workstations or PCs, closely connected by means of a high-speed local-area network. In
addition, each node runs the same operating system.
The situation becomes very different in the case of grid computing. This subgroup
consists of distributed systems that are often constructed as a federation of computer
systems, where each system may fall under a different administrative domain and may
be very different when it comes to hardware, software, and deployed network
technology.
From the perspective of grid computing, a next logical step is to simply outsource the
entire infrastructure that is needed for compute-intensive applications. In essence, this
is what cloud computing is all about
Cluster computing
It became financially and technically attractive to build a supercomputer using off-the-
shelf technology by simply hooking up a collection of relatively simple computers in a
high-speed network (Diagram 1.7)
However, several modern cluster computers have been moving away from these
symmetric architectures to more hybrid solutions in which the middleware is
functionally partitioned across different nodes
Grid computing
In Grid Computing no assumptions are made concerning similarity of hardware,
operating systems, networks, administrative domains, security policies, etc.
The architecture consists of four layers. The lowest fabric layer provides interfaces to
local resources at a specific site. The connectivity layer consists of communication
protocols for supporting grid transactions that span the usage of multiple resources and
it also performs authentication.
The resource layer is responsible for managing a single resource. The resource layer is
thus seen to be responsible for access control, and hence will rely on the authentication
performed as part of the connectivity layer.
Collective layer deals with handling access to multiple resources and typically consists of
services for resource discovery, allocation and scheduling of tasks onto multiple
resources, data replication, and so on.
Application layer consists of the applications that operate within a virtual organization,
and which make use of the grid computing environment. (Diagram 1.8)
Typically, the collective, connectivity, and resource layer form the heart of what could be
called a grid middleware layer.
Cloud computing
Concept of utility computing by which a customer could upload tasks to a data centre
and be charged on a per-resource basis.
Utility computing formed the basis for what is now called cloud computing.
In practice, clouds are organized into four layers,
Hardware: The lowest layer is formed by the means to manage the necessary hardware:
processors, routers, but also power and cooling systems.
pf3
pf4
pf5

Unvollständige Textvorschau

Nur auf Docsity: Lade Distributed Systems: Types, Characteristics, and Applications und mehr Mitschriften als PDF für Computer Vision herunter!

Exercise 5

Task 1

❖ Types of distributed systems ➢ There are 3 types of Distributed Systems: distributed computing systems, distributed information systems, and pervasive systems ➢ High performance distributed computing ▪ In cluster computing the underlying hardware consists of a collection of similar workstations or PCs, closely connected by means of a high-speed local-area network. In addition, each node runs the same operating system. ▪ The situation becomes very different in the case of grid computing. This subgroup consists of distributed systems that are often constructed as a federation of computer systems, where each system may fall under a different administrative domain and may be very different when it comes to hardware, software, and deployed network technology. ▪ From the perspective of grid computing, a next logical step is to simply outsource the entire infrastructure that is needed for compute-intensive applications. In essence, this is what cloud computing is all about ➢ Cluster computing ▪ It became financially and technically attractive to build a supercomputer using off-the- shelf technology by simply hooking up a collection of relatively simple computers in a high-speed network (Diagram 1.7) ▪ However, several modern cluster computers have been moving away from these symmetric architectures to more hybrid solutions in which the middleware is functionally partitioned across different nodes ➢ Grid computing ▪ In Grid Computing no assumptions are made concerning similarity of hardware, operating systems, networks, administrative domains, security policies, etc. ▪ The architecture consists of four layers. The lowest fabric layer provides interfaces to local resources at a specific site. The connectivity layer consists of communication protocols for supporting grid transactions that span the usage of multiple resources and it also performs authentication. ▪ The resource layer is responsible for managing a single resource. The resource layer is thus seen to be responsible for access control, and hence will rely on the authentication performed as part of the connectivity layer. ▪ Collective layer deals with handling access to multiple resources and typically consists of services for resource discovery, allocation and scheduling of tasks onto multiple resources, data replication, and so on. ▪ Application layer consists of the applications that operate within a virtual organization, and which make use of the grid computing environment. (Diagram 1.8) ▪ Typically, the collective, connectivity, and resource layer form the heart of what could be called a grid middleware layer. ➢ Cloud computing ▪ Concept of utility computing by which a customer could upload tasks to a data centre and be charged on a per-resource basis. ▪ Utility computing formed the basis for what is now called cloud computing. ▪ In practice, clouds are organized into four layers, ▪ Hardware: The lowest layer is formed by the means to manage the necessary hardware: processors, routers, but also power and cooling systems.

▪ Infrastructure: It deploys virtualization techniques to provide customers an infrastructure consisting of virtual storage and computing resources. Indeed, nothing is what it seems: cloud computing evolves around allocating and managing virtual storage devices and virtual servers. ▪ Platform: platform layer provides to a cloud computing customer what an operating system provides to application developers in practice, an application developer is offered a vendor-specific API, which includes calls to uploading and executing a program in that vendor’s cloud. ▪ Application: Actual applications run in this layer and are offered to users for further customization. ▪ Cloud-computing providers offer these layers to their customers through various leading to three different types of services:

  • Infrastructure-as-a-Service (IaaS) covering the hardware and infrastructure layer.
  • Platform-as-a-Service (PaaS) covering the platform layer.
  • Software-as-a-Service (SaaS) in which their applications are covered. ➢ Distributed information systems ▪ In many cases, a networked application simply consists of a server running that application (often including a database) and making it available to remote programs, called clients. ▪ Such clients send a request to the server for executing a specific operation, after which a response is sent back. ▪ Integration at the lowest level allows clients to wrap several requests, possibly for different servers, into a single larger request and have it executed as a distributed transaction. ▪ The key idea is that all, or none of the requests are executed. ▪ As applications became more sophisticated and were gradually separated into independent components (Notably distinguishing database components from processing components), it became clear that integration should also take place by letting applications communicate directly with each other. ▪ This has now led to a huge industry that concentrates on enterprise application integration (EAI). ➢ Distributed transaction processing ▪ In practice, operations on a database are carried out in the form of transactions. Programming using transactions require special primitives that must either be supplied by the underlying distributed system or by the language runtime system. ▪ What primitives to be sent depends upon type of system Ex: Mail System, Accounting System. ▪ However, Ordinary statements, procedure calls, and so on, are also allowed inside a transaction. ▪ Remote procedure calls (RPC), that is, procedure calls to remote servers, are often also encapsulated in a transaction, leading to what is known as a transactional RPC.
  • BEGIN_TRANSACTION: Mark the start of a transaction
  • END_TRANSACTION: Terminate the transaction and try to commit
  • ABORT_TRANSACTION: Kill the transaction and restore the old values
  • READ: Read data from a file, a table, or otherwise
  • WRITE: Write data to a file, a table, or otherwise ▪ BEGIN_TRANSACTION and END_TRANSACTION is used to delimit the scope of a transaction. ▪ The operations between them form the body of the transaction. The characteristic feature of a transaction is either all of these operations are executed, or none are executed this is one of the four characteristic (ACID) properties that transactions have.

▪ Remote procedure call: Sometimes small changes should trigger many applications to take actions. In such cases, it is not really the change of data that is important, but the execution of a series of actions. RPC allows an application A to make use of the information available only to application B, without giving A direct access to that information. Disadvantage is that caller and callee must be up and running for the call to succeed. ▪ Messaging: The messaging system ensures that eventually the request is delivered, and if needed, that a response is eventually returned as well, and it works even if caller and callee are not running at same time. Drawbacks: it also introduces problems concerning data formatting and layout, it requires an application to know where to send a message to, there need to be scenarios for dealing with lost messages ➢ Pervasive systems ➢ The distributed systems discussed so far are largely characterized by their stability: nodes are fixed and have a permanent and high-quality connection to a network. To a certain extent, this stability is realized through the various techniques for achieving distribution transparency. ➢ However, matters have changed since the introduction of mobile and embedded computing devices, leading to what are generally referred to as pervasive systems. ➢ Pervasive systems are intended to naturally blend into our environment. They are naturally also distributed systems, and certainly meet the characterization of distributed system. ➢ What makes them unique in comparison to the computing and information systems described so far, is that the separation between users and system components is much more blurred. ➢ There is often no single dedicated interface, such as a screen/keyboard combination. Instead, a pervasive system is often equipped with many sensors that pick up various aspects of a user’s behaviour. ➢ Many devices in pervasive systems are characterized by being small, battery-powered, mobile, and having only a wireless connection, although not all these characteristics apply to all devices. Their role in what is now coined as the Internet of Things (IoT). ➢ Three different types of pervasive systems: ubiquitous computing systems, mobile systems, and sensor networks. ➢ Ubiquitous computing systems: In a ubiquitous computing system means: the system is pervasive and continuously present. The latter means that a user will be continuously interacting with the system, often not even being aware that interaction is taking place. ➢ Requirements for a ubiquitous computing system roughly as follows: ▪ a) Distribution, b) Interaction, c) Context awareness, d) Autonomy, e) Intelligence. ▪ Distribution - As mentioned, a ubiquitous computing system is an example of a distributed system: the devices and other computers forming the nodes of a system are simply networked and work together to form the illusion of a single coherent system. ▪ Interaction - For ubiquitous computing systems, much of the interaction by humans will be implicit, with an implicit action being defined as one “that is not primarily aimed to interact with a computerized system but which such a system understands as input” (Ex

  • Car setting changes according to driver) ▪ Context awareness - Any information that can be used to characterize the situation of entities (i.e., whether a person, place or object) that are considered relevant to the interaction between a user and an application, including the user and the application themselves. Context is often characterized by location, identity, time, and activity: the where, who, when, and what. A system will need to have the necessary (sensory) input to determine one or several of these context types. (Ex – GPS System) ▪ Autonomy - In a ubiquitous computing environment there is simply no room for a systems administrator to keep everything up and running.

▪ Therefore, the system should be able to act autonomously, and automatically react to changes. There are some techniques using which autonomy is brought as in instance Address allocation (Addresses can be allocated automatically using protocols like the Dynamic Host Configuration Protocol - DHCP), Adding devices (A step towards automatic configuration is realized by the Universal Plug and Play protocol - UPnP), Automatic updates (Devices can automatically check for updates through the internet and if available component will be updated and it will ideally continue where they left of) ▪ Intelligence - In many cases a wide range of advanced algorithms and models need to be deployed to handle incomplete input, quickly react to a changing environment, handle unexpected events, and so on. Unfortunately, distributed solutions for many problems in the field of artificial intelligence are yet to be found ➢ Mobile computing systems: Many aspects of pervasive systems also apply to mobile computing. There are several issues that set mobile computing aside to pervasive systems in general. ▪ First, the devices that form part of a (distributed) mobile system may vary widely. ▪ Second, in mobile computing the location of a device is assumed to change over time.

❖ Task 2

➢ Our applications ‘Moodle’ and ‘Horstl’ have to be integrated. Which parts from

Moodle and Horstl should be integrated by: 1) File Transfer 2) Shared Database 3)

RPC or 4) Messaging technologies?

➢ File Transfer – Section of Moodle where students upload their Assignments and

section of Horstl where students upload necessary documents like photo for ID card

can be integrated using File Transfer. So if integrated student uploaded photo for ID

can be used as profile picture at both the places at Moodle and Horstl.

➢ Shared Database – Student details like FD number, login credentials, selected

subjects for semester, grades and other personal details can be stored in shared

database so it reduces duplication of data and also brings efficiency if data is

changed (Ex - Selection of Subjects) at one place then it will be global.

➢ RPC – Change in some sensitive data which may bring change at multiple places must

be handled with RPC as an instance change FD number. FD number may be used at

various places as foreign key so change in FD number triggers change of data at

various places so it must be handled with RPC.

//2. Create a purchase order for a specific supplier app.post('/suppliers/createOrder/:id', (req, res) => { Orders.push({ id: req.params.id, order: "newOrder" }) console.log(Orders); res.send("Order Placed Successfully"); }); //3. Delete a supplier app.delete('/suppliers/DeleteSupplier/:id', (req, res) => { let filteredSuppliers = suppliers.filter((item) => item.id != req.params.id); suppliers = filteredSuppliers; console.log(suppliers) res.send("Supplier Deleted"); }); //4. Retrieve all data of a specific supplier app.get('/suppliers/getSupplier/:id', (req, res) => { suppliers.find( (data, i) => { if (data.id == req.params.id) res.send(data); }); }); //5. Retrieve all suppliers with a minimum turnover in a time period. app.get('/suppliers/getSuppliersByTurnover', (req, res) => { let filteredSuppliers = suppliers.filter( (item) => item.turnOver >= req.query.turnOver && item.year >= req.query.year); res.send(filteredSuppliers); }); app.listen('4000', () => { console.log("Server started"); });