Introduction To Parallel and Distributed Computing
Introduction To Parallel and Distributed Computing
Parallel Computing:
In distributed computing we have multiple autonomous computers which seems to the user as
single system. In distributed systems there is no shared memory and computers communicate
with each other through message passing. In distributed computing a single task is divided
among different computers.
Difference between Parallel Computing and Distributed Computing:
S.NO PARALLEL COMPUTING DISTRIBUTED COMPUTING
4.
distributed memory It have only distributed memory
• All the nodes in the distributed system are connected to each other. So nodes can easily
share data with other nodes.
• More nodes can easily be added to the distributed system i.e. it can be scaled as required. •
Failure of one node does not lead to the failure of the entire distributed system. Other nodes
can still communicate with each other.
• Resources like printers can be shared with multiple nodes rather than being restricted to
just one.
Disadvantages of Distributed Systems
Some disadvantages of Distributed Systems are as follows −
• Itis difficult to provide adequate security in distributed systems because the nodes as
well as the connections need to be secured.
• Some messages and data can be lost in the network while moving from one node to
another.
• The database connected to the distributed systems is quite complicated and difficult to
handle as compared to a single user system.
• Overloading may occur in the network if all the nodes of the distributed system try to
send data at once.
• Virtualization
• Service-Oriented Architecture (SOA)
• Grid Computing
• Utility Computing
Virtualization
Virtualization is a technique, which allows to share single physical instance of an application
or resource among multiple organizations or tenants (customers). It does this by assigning a
logical name to a physical resource and providing a pointer to that physical resource when
demanded.
The
Multitenant architecture offers virtual isolation among the multiple tenants. Hence, the
organizations can use and customize their application as though they each have their instances
running.
The basis of a distributed architecture is its transparency, reliability, and availability. The
following table lists the different forms of transparency in a distributed system −
Sr.No. Transparency & Description
1 Access
Hides the way in which resources are accessed and the differences in
data platform.
2 Location
Hides where resources are located.
3 Technology
4 Migration / Relocation
Hide resources that may be moved to another location which are in use.
5 Replication
Hide resources that may be copied at several location.
6 Concurrency
Hide resources that may be shared with other users.
7 Failure
Hides failure and recovery of resources from user.
8 Persistence
Hides whether a resource ( software ) is in memory or disk.
Advantages
• Resource sharing − Sharing of hardware and software resources. • Openness −
Flexibility of using hardware and software of different vendors. • Concurrency −
Concurrent processing to enhance performance. • Scalability − Increased throughput
by adding new resources.
• Fault tolerance − The ability to continue in operation after a fault has occurred.
Disadvantages
Client-Server Architecture
The client-server architecture is the most common distributed system architecture which
decomposes the system into two major subsystems or logical processes −
• Client − This is the first process that issues a request to the second process i.e. the server.
• Server − This is the second process that receives the request, carries it out, and sends a
reply to the client.
In this architecture, the application is modelled as a set of services that are provided by
servers and a set of clients that use these services. The servers need not know about
clients, but the clients must know the identity of servers, and the mapping of
processors to processes is not necessarily 1 : 1
Client-server Architecture can be classified into two models based on the functionality of the
client −
Thin-client model
In thin-client model, all the application processing and data management is carried by
the server. The client is simply responsible for running the presentation software.
• Used when legacy systems are migrated to client server architectures in which
legacy system acts as a server in its own right with a graphical interface
implemented on a client
•A major disadvantage is that it places a heavy processing load on both the server
and the network.
Thick/Fat-client model
In thick-client model, the server is only in charge for data management. The software
on the client implements the application logic and the interactions with the system user.
• Most appropriate for new C/S systems where the capabilities of the client system
are known in advance
• More complex than a thin client model especially for management. New versions
of the application have to be installed on all clients.
Advantages
• Separation of responsibilities such as user interface presentation and business
logic processing.
• Reusability of server components and potential for concurrency
• Simplifies the design and the development of distributed applications
• It makes it easy to migrate or integrate existing applications into a distributed
environment.
• It also makes effective use of resources when a large number of clients are
accessing a high-performance server.
Disadvantages
Security complications.
• Limited server availability and reliability.
• Limited testability and scalability.
• Fat clients with presentation and business logic together.
The most general use of multi-tier architecture is the three-tier architecture. A three-tier
architecture is typically composed of a presentation tier, an application tier, and a data
storage tier and may execute on a separate processor.
Presentation Tier
Presentation layer is the topmost level of the application by which users can access
directly such as webpage or Operating System GUI (Graphical User interface). The
primary function of this layer is to translate the tasks and results to something that user
can understand. It communicates with other tiers so that it places the results to the
browser/client tier and all other tiers in the network.
Application tier coordinates the application, processes the commands, makes logical
decisions, evaluation, and performs calculations. It controls an application’s
functionality by performing detailed processing. It also moves and processes data
between the two surrounding layers.
Data Tier
In this layer, information is stored and retrieved from the database or file system. The
information is then passed back for processing and then back to the user. It includes
the data persistence mechanisms (database servers, file shares, etc.) and provides
API (Application Programming Interface) to the application tier which provides methods
of managing the stored data.
Advantages
• Better performance than a thin-client approach and is simpler to manage than a
thick-client approach.
• Enhances the reusability and scalability − as demands increase, extra servers can be added.
• Provides multi-threading support and also reduces network traffic. •
SOA Operation
Advantages
• Loose coupling of service–orientation provides great flexibility for enterprises to
make use of all available service recourses irrespective of platform and
technology restrictions.
• Each service component is independent from other services due to the stateless
service feature.
• The implementation of a service will not affect the application of the service as
long as the exposed interface is not changed.
•A client or any service can access other services regardless of their platform,
technology, vendors, or language implementations.
• Reusability of assets and services since clients of a service only need to know its
public interfaces, service composition.
• SOA based business application development are much more efficient in terms of
time and cost.
• Enhances the scalability and provide standard connection between systems. •
• SOA allows users to combine a large number of facilities from existing services to form
applications.
• SOA encompasses a set of design principles that structure system development and provide means
for integrating components into a coherent and decentralized system.
• SOA based computing packages functionalities into a set of interoperable services, which can be
integrated into different software systems belonging to separate business domains. There are two
major roles within Service-oriented Architecture:
1. Service provider: The service provider is the maintainer of the service and the organization that
makes available one or more services for others to use. To advertise services, the provider can
publish them in a registry, together with a service contract that specifies the nature of the service,
how to use it, the requirements for the service, and the fees charged.
2. Service consumer: The service consumer can locate the service metadata in the registry and
develop the required client components to bind and use the service.
Services might aggregate information and data retrieved from other services or create workflows
of services to satisfy the request of a given service consumer. This practice is known as service
orchestration Another important interaction pattern is service choreography, which is the
coordinated interaction of services without a single point of control.
Components of SOA:
Guiding Principles of SOA:
1. Standardized service contract: Specified through one or more service description documents. 2.
Loose coupling: Services are designed as self-contained components, maintain relationships that
minimize dependencies on other services.
3. Abstraction: A service is completely defined by service contracts and description documents. They
hide their logic, which is encapsulated within their implementation.
4. Reusability: Designed as components, services can be reused more effectively, thus reducing
development time and the associated costs.
5. Autonomy: Services have control over the logic they encapsulate and, from a service consumer
point of view, there is no need to know about their implementation.
6. Discoverability: Services are defined by description documents that constitute supplemental
metadata through which they can be effectively discovered. Service discovery provides an effective
means for utilizing third-party resources.
7. Composability: Using services as building blocks, sophisticated and complex operations can be
implemented. Service orchestration and choreography provide a solid support for composing
services and achieving business goals.
Advantages of SOA:
• Service reusability: In SOA, applications are made from existing services.Thus, services can be
reused to make many applications.
• Easy maintenance: As services are independent of each other they can be updated and modified
easily without affecting other services.
• Platform independant: SOA allows making a complex application by combining services picked
from different sources, independent of the platform.
• Availability: SOA facilities are easily available to anyone on request.
• Reliability: SOA applications are more reliable because it is easy to debug small services rather
than huge codes
• Scalability: Services can run on different servers within an environment, this increases scalability
Disadvantages of SOA:
• High overhead: A validation of input parameters of services is done whenever services interact
this decreases performance as it increases load and response time.
• High investment: A huge initial investment is required for SOA.
• Complex service management: When services interact they exchange messages to tasks. the number
of messages may go in millions. It becomes a cumbersome task to handle a large number of
messages.
Practical applications of SOA: SOA is used in many ways around us whether it is mentioned
or not.
1. SOA infrastructure is used by many armies and air force to deploy situational awareness systems.
2. SOA is used to improve the healthcare delivery.
3. Nowadays many apps are games and they use inbuilt functions to run. For example, an app might
need GPS so it uses inbuilt GPS functions of the device. This is SOA in mobile solutions.
4. SOA helps maintain museums a virtualized storage pool for their information and content.
WEB SERVICES
Different books and different organizations provide different definitions to Web Services. Some
of them are listed here.
• A web service is any piece of software that makes itself available over the internet and
uses a standardized XML messaging system. XML is used to encode all
communications to a web service. For example, a client invokes a web service by
sending an XML message, then waits for a corresponding XML response. As all
communication is in XML, web services are not tied to any one operating system or
programming language—Java can talk with Perl; Windows applications can talk with
Unix applications.
• Web services are self-contained, modular, distributed, dynamic applications that can be
described, published, located, or invoked over the network to create products, processes,
and supply chains. These applications can be local, distributed, or web-based. Web
services are built on top of open standards such as TCP/IP, HTTP, Java, HTML, and
XML.
• Web services are XML-based information exchange systems that use the Internet for direct
application-to-application interaction. These systems can include programs, objects,
messages, or documents.
• A web service is a collection of open protocols and standards used for exchanging data
between applications or systems. Software applications written in various programming
languages and running on various platforms can use web services to exchange data over
computer networks like the Internet in a manner similar to inter-process communication
on a single computer. This interoperability (e.g., between Java and Python, or Windows
and Linux applications) is due to the use of open standards.
To summarize, a complete web service is, therefore, any service that −
• Is available over the Internet or private (intranet) networks
• Uses a standardized XML messaging system
• Is not tied to any one operating system or programming language
• Is self-describing via a common XML grammar
• Is discoverable via a simple find mechanism
Example
Consider a simple account-management and order processing system. The accounting personnel
use a client application built with Visual Basic or JSP to create new accounts and enter new
customer orders.
The processing logic for this system is written in Java and resides on a Solaris machine, which
also interacts with a database to store information.
The steps to perform this operation are as follows −
• The client program bundles the account registration information into a SOAP message. •
This SOAP message is sent to the web service as the body of an HTTP POST request.
• The web service unpacks the SOAP request and converts it into a command that the
application can understand.
• The application processes the information as required and responds with a new unique
account number for that customer.
• Next,the web service packages the response into another SOAP message, which it sends
back to the client program in response to its HTTP request.
• The client program unpacks the SOAP message to obtain the results of the account
registration process.
GRID COMPUTING
Grid computing is a distributed structure of a large number of computers connected to solve
a complicated problem. In grid computing, servers and computers run independently and
are loosely connected by the Internet. Computers may connect directly or through
scheduling systems.
In other words, Grid Computing involves a large number of computer which are connected
parallel and makes a computer cluster.
Grid computing is used in various types of applications such as mathematical, scientific, and
educational tasks via various computing resources.
Grid computing is a processor architecture that integrates computer resources from various
domains to achieve a primary goal. The computers on the network will work together in grid
computing on a project, thus acting as a supercomputer.
Grid systems are mainly designed for resource sharing by Distributed
and cluster computing on a large scale. It divides the complex tasks into smaller pieces that
are distributed to the CPUs
Cloud Computing
loud Computing is defined as the on-demand facility of computer power, database storage,
applications, and other IT resources through the internet. It provides a solution for IT
infrastructure at a low price.
In simple words, cloud computing means storing and accessing the data via the internet
instead of the computer’s hard drive.
Cloud computing is a pay-per-use model.
In Grid computing, resources are shared In cloud computing, all the resources
among multiple computing units for are managed centrally and are place
processing a single task. over different servers in clusters.
Grid computing is a collection of In cloud computing, more than one
Interconnected computers and networks that computer coordinates to resolve the
can be called for large scale processing problem together.
tools.
In this, Grids are mainly owned and managed The cloud servers are owned by
by an organization within its premises. infrastructure providers and are placed in
physically various locations.
PROS &CONS
Once the data is stored in the cloud, it is easier to get back-up and restore that data using the cloud. 2)
Improved collaboration
Cloud applications improve collaboration by allowing groups of people to quickly and easily share
informcloud via shared storage.
3) Excellent accessibility
Cloud allows us to quickly and easily access store information anywhere, anytime in the whole world,
usinternet connection. An internet cloud infrastructure increases organization productivity and efficiency
bthat our data is always accessible.
Cloud computing reduces both hardware and software maintenance costs for organizations. 5)
Mobility
Cloud computing allows us to easily access all cloud data via mobile.
Cloud computing offers Application Programming Interfaces (APIs) to the users for access services on tpays
the charges as per the usage of service.
7) Unlimited storage capacity
Cloud offers us a huge amount of storing capacity for storing our important data such as documents,
imvideo, etc. in one place.
8) Data security
Data security is one of the biggest advantages of cloud computing. Cloud offers many advanced
featuresecurity and ensures that data is securely stored and handled.
1) Internet Connectivity
As you know, in cloud computing, every data (image, audio, video, etc.) is stored on the cloud, and we data
through the cloud by using the internet connection. If you do not have good internet connectivity, access
these data. However, we have no any other way to access data from the cloud.
2) Vendor lock-in
Vendor lock-in is the biggest disadvantage of cloud computing. Organizations may face problems when their
services from one vendor to another. As different vendors provide different platforms, that can camoving
from one cloud to another.
3) Limited Control
As we know, cloud infrastructure is completely owned, managed, and monitored by the service providerusers
have less control over the function and execution of services within a cloud infrastructure.
4) Security
Although cloud service providers implement the best security standards to store important information.
adopting cloud technology, you should be aware that you will be sending all your organization's sensitivto a
third party, i.e., a cloud computing service provider. While sending the data on the cloud, there mathat your
organization's information is hacked by Hackers.
REAL TIME APPLICATIONS
Cloud Computing has its applications in almost all the fields such as business, entertainment, data
stnetworking, management, entertainment, education, art and global positioning system, etc.
Somefamous cloud computing applications are discussed here in this tutorial:
Business Applications
Cloud computing has made businesses more collaborative and easy by incorporating variouas
MailChimp, Chatter, Google Apps for business, and Quickbooks.
SN Application Description
1 MailChimp
It offers an e-mail publishing platform. It is widely employed by the
businesses to design and send their e-mail campaigns.
2 Chatter
Chatter app helps the employee to share important information about
organization in real time. One can get the instant feed regarding any
issue.
3 Google Apps for Business
Google offers creating text documents, spreadsheets,
presentations,etc., on Google Docs which allows the business users to
share them in collaborating manner.
4 Quickbooks
It offers online accounting solutions for a business. It helps in
monitoring cash flow, creating VAT returns and creating business
reports.
1 Box.com
Box.com offers drag and drop service for files. The users need to drop
the files into Box and access from anywhere.
2 Mozy
Mozy offers online backup service for files to prevent data loss.
3 Joukuu
Joukuu is a web-based interface. It allows to display a single list of
contents for files stored in Google Docs, Box.net and Dropbox.
Management Applications
There are apps available for management task such as time tracking, organizing notes.
Applicatiosuch tasks are discussed below:
SN Application Description
1 Toggl
It helps in tracking time period assigned to a particular project.
2 Evernote
It organizes the sticky notes and even can read the text from images
which helps the user to locate the notes easily.
3 Outright
It is an accounting app. It helps to track income, expenses, profits and
losses in real time.
Social Applications
There are several social networking services providing websites such as Facebook, Twitter, etc.
SN Application Description
1 Facebook
It offers social networking service. One can share photos, videos, files,
status and much more.
2 Twitter
It helps to interact with the public directly. One can follow any celebrity,
organization and any person, who is on twitter and can have latest
updates regarding the same.
Entertainment Applications
SN Application Description
1 Audio box.fm
It offers streaming service. The music files are stored online and can be
played from cloud using the own media player of the service.
Art Applications
SN Application Description
1 Moo
It offers art services such as designing and printing business cards,
postcards and mini cards.