2. Agenda
1. Evolution of computational technology
2. Parallel computing
3. Cluster computing
4. Grid Computing
5. Utility computing
6. Virtualization
7. Introduction to SOA
8. Cloud Computing
9. Internet Of Things
10. Q&A
3. 3
Can you name some examples of Distributed Systems?
Client-server (e.g., NFS)
The Internet
The Web
A sensor network
DNS
BitTorrent (peer to peer overlay)
Datacenters
Hadoop
Block Chain
4. 4
Definitions of Distributed Systems
A distributed system is a collection of independent computers that appear to
the users of the system as a single computer.
[Andrew Tanenbaum]
A distributed system is several computers doing something together. Thus, a
distributed system has three primary characteristics: multiple computers,
interconnections, and shared state.
[Michael Schroeder]
5. 5
Why Unsatisfactory?
Why are these definitions short?
Why do these definitions look inadequate to us?
Because we are interested in the insides of a distributed system
algorithms
design and implementation
maintenance
Meeting customer requirements, performance and reliability.
6. 6
A working definition of Distributed System
A distributed system is a collection of entities, each of which is autonomous,
programmable, asynchronous and failure-prone, and which communicate through an
unreliable communication medium.
Our interest in distributed systems involves
algorithmics, design and implementation, maintenance, study
Entity=a process on a device (PC, PDA…)
Communication Medium=Wired or wireless network
Distributed computing: This is a field of computer science engineering that studies
distributed systems. A distributed system consists of multiple autonomous computers, each
having its own private memory, communicating through a computer network. Information
exchange in a distributed system is accomplished through message passing. A computer
program that runs in a distributed system is known as a distributed program.
7. 7
Computing Paradigms
Centralized computing: This is a computing paradigm by which all computer
resources are centralized in one physical system. All resources (processors,
memory, and storage) are fully shared and tightly coupled within one
integrated OS. Many data centers and supercomputers are centralized systems,
but they are used in parallel, distributed, and cloud computing applications.
Parallel computing: All processors are either tightly coupled with centralized
shared memory or loosely coupled with distributed memory. Interprocessor
communication is accomplished through shared memory or via message
passing. A computer system capable of parallel computing is commonly known
as a parallel computer. Programs running in a parallel computer are called
parallel programs. The process of writing parallel programs is often referred to
as parallel programming.
8. 8
A range of challenges
• Failures recovery: no longer the exception, but rather a norm
• Scalability: 1000s of machines, Terabytes of data
• Asynchrony: clock skew and clock drift
• Security: of data, users, computations, etc.
• Mutual Exclusion:
• Fault Tolerance:
• Transaction management:
• Network bandwidth bottleneck:
9. Operational layers of distributed computing systems
Application layer: most user applications in science,
business, engineering, and financial services.
Middleware layer: The middleware layer acts as a bridge
between the application layer and the resource layer. This
layer provides resource broker, communication service, task
analyzer, task scheduler, security access, reliability control,
and information service capabilities.
Resource layer: The resource layer consists of a wide range
of resources including computing nodes and storage units.
This layer generally interacts with hardware devices and the
operating system. therefore, it is responsible for controlling
all distributed resources in distributed computing systems.
Networking layer: Routing and transferring packets and
enabling network services to the resource layer are the main
responsibility of the network layer in distributed computing
systems.
11. Gartner's Older Hype Cycle for Emerging Technologies
The hype cycle provides a graphical and conceptual presentation of the maturity emerging
technologies through five phases.
19. What is Serial Computing?
Traditionally, software has been written for serial computation:
To be run on a single computer having a single Central Processing Unit (CPU);
A problem is broken into a discrete series of instructions.
Instructions are executed one after another.
Only one instruction may execute at any moment in time.
20. What is Parallel Computing?
In the simplest sense, parallel computing is the simultaneous use of multiple compute resources to solve
a computational problem.
To be run using multiple CPUs
A problem is broken into discrete parts that can be solved concurrently
Each part is further broken down to a series of instructions
Instructions from each part execute simultaneously on different CPUs
21. Parallelism - A simplistic understanding
Multiple tasks at once.
Distribute work into multiple execution units.
A classification of parallelism:
Data Parallelism
Functional or Control Parallelism
Data Parallelism: Divide the dataset and solve each
sector “similarly” on a separate execution unit.
Functional Parallelism: Divide the 'problem' into
different tasks and execute the tasks on different units.
What would func. parallelism look like for the example
on the right?
Hybrid: Can do both: Say, first partition by data, and
then for each data block, partition by functionality
Sequential
Data
Parallelism
23. Single Instruction, Single Data (SISD)
qA serial (non-parallel) computer
qSingle instruction: only one instruction stream is being acted on by the CPU
during any one clock cycle
qSingle data: only one data stream is being used as input during any one clock
cycle
qDeterministic execution
q This is the oldest and until recently, the most prevalent form of computer
qExamples: most PCs, single CPU workstations and mainframes
Single Instruction, Single Data (SISD)
qA serial (non-parallel) computer
qSingle instruction: only one instruction stream is being acted on by the CPU
during any one clock cycle
qSingle data: only one data stream is being used as input during any one clock
cycle
qDeterministic execution
q This is the oldest and until recently, the most prevalent form of computer
qExamples: most PCs, single CPU workstations and mainframes
Instruction, Single Data (SISD)
allel) computer
: only one instruction stream is being acted on by the CPU
ock cycle
one data stream is being used as input during any one clock
cution
and until recently, the most prevalent form of computer
PCs, single CPU workstations and mainframes
ingle Instruction, Single Data (SISD)
al (non-parallel) computer
instruction: only one instruction stream is being acted on by the CPU
any oneclock cycle
data: only one data stream is being used as input during any oneclock
ministic execution
the oldest and until recently, themost prevalent form ofcomputer
les: most PCs, single CPU workstations and mainframes
24. Single Instruction, Multiple Data (SIMD)
qA type of parallel computer
qSingle instruction: All processing units execute the same instruction at any given clock cycle
qMultiple data: Each processing unit can operate on a different data element
qBest suited for specialized problems characterized by a high degree of regularity,such as image processing.
qSynchronous(lockstep) and deterministic execution
qTwo varieties: Processor Arraysand Vector Pipelines
qA type ofparallel computer
qSingle instruction: All processing units execute thesame instruction at any given clock cycle
qMultiple data: Each processing unit can operate on a different dataelement
qBest suited forspecialized problems characterized by a high degree of regularity,such as image processing.
qSynchronous(lockstep) and deterministic execution
qTwo varieties: Processor Arraysand Vector Pipelines
Single Instruction, Multiple Data (SIMD)
qA type ofparallel computer
qSingle instruction: All processing units execute thesame instruction atany given clock cycle
qMultiple data:Each processing unitcan operate on a different dataelement
qBest suited forspecialized problems characterized by a high degree of regularity,such as image processing.
qSynchronous(lockstep) and deterministic execution
qTwo varieties: Processor Arraysand Vector Pipelines
Single Instruction, Multiple Data (SIMD)
qA type of parallel computer
qSingle instruction: All processing units execute the same instruction at any given clock cycle
qMultiple data: Each processing unit can operate on a different data element
qBest suited for specialized problems characterized by a high degree of regularity,such as imag
qSynchronous (lockstep) and deterministic execution
qTwo varieties: Processor Arrays and Vector Pipelines
25. Multiple Instruction, Single Data (MISD)
qA single data stream is fed into multiple processing units.
qEach processing unit operates on the data independently via independent instruction streams.
qFew actual examples of this class of parallel computer have ever existed. One is the experimental
Carnegie-Mellon C.mmp computer (1971).
qSome conceivable uses might be:
Ø multiple frequencyfiltersoperating on a single signalstream
qmultiple cryptography algorithms attempting to crack a single coded message.
Multiple Instruction, Single Data (MISD)
qA single data stream is fed into multiple processing units.
qEach processing unit operates on the data independently via independent instruction streams.
qFew actual examples of this class of parallel computer have ever existed. One is the experimental
Carnegie-Mellon C.mmp computer (1971).
qSome conceivable uses might be:
Ø multiple frequencyfiltersoperating on a single signalstream
qmultiple cryptography algorithms attempting to crack a single coded message.
Multiple Instruction, Single Data (MISD)
qA single data stream is fed into multiple processing units.
qEach processing unit operates on the data independently via independent instruction streams.
qFew actual examples of this class of parallel computer have ever existed. One is the experimental
Carnegie-Mellon C.mmp computer (1971).
qSome conceivable uses might be:
Ø multiple frequencyfiltersoperating on a single signalstream
qmultiple cryptography algorithms attempting to crack a single coded message.
qA single datastream is fedintomultiple processing units.
qEach processing unit operates onthe dataindependently via independent instruction streams.
qFewactual examples ofthis class of parallel computer haveever existed. Oneis the experimental
Carnegie-Mellon C.mmpcomputer (1971).
qSome conceivable uses mightbe:
Ømultiplefrequencyfiltersoperatingonasinglesignalstream
qmultiple cryptographyalgorithms attempting to crack asingle coded message.
26. Multiple Instruction, Multiple Data (MIMD)
qCurrently, the most common type of parallel computer. Most modern computers fall into this category.
qMultiple Instruction: every processor may be executing a different instruction stream
qMultiple Data: every processor may be working with a different data stream
qExecution can be synchronous or asynchronous,deterministic or non-deterministic
qExamples: most current supercomputers, networked parallel computer "grids" and multi-processor SMP
computers - including some types of PCs.
Multiple Instruction, Multiple Data (MIMD)
qCurrently, the most common type of parallel computer. Most modern computers fall into this category.
qMultiple Instruction: every processor may be executing a different instruction stream
qMultiple Data: every processor may be working with a different data stream
qExecution can be synchronous or asynchronous,deterministic or non-deterministic
qExamples: most current supercomputers, networked parallel computer "grids" and multi-processor SMP
computers - including some types of PCs.
Multiple Instruction, Multiple Data (MIMD)
qCurrently, the most common type of parallel computer. Most modern computers fall into this category.
qMultiple Instruction: every processor may beexecuting a different instruction stream
qMultiple Data: every processor may beworking with a different data stream
qExecution can besynchronous or asynchronous,deterministic or non-deterministic
qExamples: most current supercomputers, networked parallel computer "grids" and multi-processor SMP
computers - including some types of PCs.
Multiple Instruction, Multiple Data (MIMD)
qCurrently, the most common typeof parallel computer. Most modern computers fall into this category.
qMultiple Instruction: every processormay beexecuting a different instruction stream
qMultiple Data: every processor may beworking with a different data stream
qExecution can besynchronous or asynchronous,deterministic or non-deterministic
qExamples: most current supercomputers, networked parallel computer "grids" and multi-processor SMP
computers - including some types of PCs.
28. Shared Memory
Shared memory parallel computers vary widely, but generally have in common the ability for all processors
to access all memory as global address space.
Multiple processors can operate independently but share the same memory resources.
Changes in a memory location effected by one processor are visible to all other processors.
Shared memory machines can be divided into two main classes based upon memory access times: UMA and
NUMA.
29. Shared Memory : UMA vs. NUMA
Uniform Memory Access (UMA):
Most commonly represented today by Symmetric Multiprocessor (SMP) machines
Identical processors
Equal access and access times to memory
Sometimes called CC-UMA - Cache Coherent UMA. Cache coherent means if one processor updates a
location in shared memory, all the other processors know about the update. Cache coherency is
accomplished at the hardware level.
Non-Uniform Memory Access (NUMA):
Often made by physically linking two or more SMPs
One SMP can directly access memory of another SMP
Not all processors have equal access time to all memories
Memory access across link is slower
If cache coherency is maintained, then may also be called CC-NUMA - Cache Coherent NUMA
30. Shared Memory: Pro and Con
Advantages
Global address space provides a user-friendly programming perspective to memory
Data sharing between tasks is both fast and uniform due to the proximity of memory to CPUs
Disadvantages:
Primary disadvantage is the lack of scalability between memory and CPUs. Adding more CPUs can
geometrically increases traffic on the shared memory-CPU path, and for cache coherent systems,
geometrically increase traffic associated with cache/memory management.
Programmer responsibility for synchronization constructs that ensure "correct" access of global
memory.
Expense: it becomes increasingly difficult and expensive to design and produce shared memory
machines with ever increasing numbers of processors.
31. Distributed Memory
Like shared memory systems, distributed memory systems vary widely but share a common characteristic.
Distributed memory systems require a communication network to connect inter-processor memory.
Processors have their own local memory. Memory addresses in one processor do not map to another
processor, so there is no concept of global address space across all processors.
Because each processor has its own local memory, it operates independently. Changes it makes to its local
memory have no effect on the memory of other processors. Hence, the concept of cache cohérence dose not
apply.
When a processor needs access to data in another processor, it is usually the task of the programmer to
explicitly define how and when data is communicated. Synchronisation between tasks is the programmer's
responsibility.
The network "fabric" used for data transfer varies widely, though it can can be as simple as Ethernet.
32. Distributed Memory: Pro and Con
Advantages
Memory is scalable with number of processors. Increase the number of processors and the size of
memory increases proportionately.
Each processor can rapidly access its own memory without interference and without the overhead
incurred with trying to maintain cache coherency.
Cost effectiveness: can use commodity, off-the-shelf processors and networking.
Disadvantages
The programmer is responsible for many of the details associated with data communication between
processors.
It may be difficult to map existing data structures, based on global memory, to this memory
organization.
Non-uniform memory access (NUMA) times
33. Hybrid Distributed-Shared Memory
he largest and fastest computers in the world today employ both shared and distributed memory architectures.
he shared memory component is usually a cache coherent SMP machine. Processors on a given SMP can
ddress that machine's memory as global.
he distributed memory component is the networking of multiple SMPs. SMPs know only about their own
memory - not the memory on another SMP. Therefore, network communications are required to move data from
ne SMP to another.
urrent trends seem to indicate that this type of memory architecture will continue to prevail and increase at the
igh end of computing for the foreseeable future.
dvantages and Disadvantages: whatever is common to both shared and distributed memory architectures.
34. Cluster computing
The cluster is often a collection of homogeneous compute nodes
that are physically connected in close range to one another.
Clustering enables the construction of scalable parallel and
distributed systems for both HPC and HTC applications.
Computer clusters have laid the foundation for today’s super
computers, computational grids, and Internet clouds built over data
centers.
35. Cluster Family Classification
Based on application demand, computer clusters are divided into three classes:
Compute clusters: These are clusters designed mainly for collective computation over a single large
job. This type of clusters is also known as a Beowulf cluster .
High-Availability clusters : HA (high-availability) clusters are designed to be fault-tolerant and
achieve HA of services. Of course, high redundancy provides higher availability. HA clusters should be designed
to avoid all single points of failure.
Load-balancing clusters: These clusters shoot for higher resource utilization through load
balancing among all participating nodes in the cluster. All nodes share the workload or function as a single virtual
machine (VM). Requests initiated from the user are distributed to all node computers to form a cluster. This
results in a balanced workload among different machines, and thus higher resource utilization or higher
performance. Middleware is needed to achieve dynamic load balancing by job or process migration among all
the cluster nodes.
36. High level Cluster Architecture
Cluster built around a low-latency, high bandwidth interconnection network. The gateway IP
address locates the cluster. Most clusters have loosely coupled node computers. All resources
of a server node are managed by their own OS. Thus, most clusters have multiple system
images as a result of having many autonomous nodes under different OS control.
37. Cluster Computer and its Architecture
A set of workstations connected by an Ethernet network is not necessarily a
cluster. A cluster is a single system. For example, suppose a workstation has a
300 Mflops/second processor, 512 MB of memory, and a 4 GB disk and can
support 50 active users and 1,000 processes. By clustering 100 such
workstations, can we get a single system that is equivalent to one huge
workstation, or a mega station , that has a 30 Gflops/second processor, 50 GB
of memory, and a 400 GB disk and can support 5,000 active users and
100,000 processes. SSI techniques are aimed at achieving this goal.
Single-System Image(SSI)
39. Different types of cluster nodes connections
Shared nothing
Shared disk
Shared memory
40. Key Operational Benefits of Clustering
High Performance
Expandability and Scalability
High Throughput
High Availability
Minimizing downtime of the Service
41. Challenges in the Cluster Computing
Challenges of cluster computing are as follows:
Middleware: To produce software environments that provides an illusion of a
single system image, rather than a collection of independent computers.
Program: The applications that run on the clusters must be explicitly written
which incorporates the division of tasks between nodes, also the
communication between them should be taken care of.
Elasticity: The variance in real-time response time when the number of
service requests changes dramatically.
Scalability: To meet the additional requirements of a resource thus effecting
the performance of the system.
42. Grid Computing
Some of the definitions of Grid Computing
The flexible, secure, coordinated resource sharing among dynamic collections of
individuals, institutions, and resources.
Transparent, secure, and coordinated resource sharing and collaboration across sites.
The ability to form virtual, collaborative organizations that share applications and data
in an open heterogeneous server environment in order to work on common problems.
The ability to aggregate large amounts of computing resources which are geographically
dispersed to tackle large problems and workloads as if all the servers and resources are
located in a single site.
A hardware and software infrastructure that provides dependable, consistent,
pervasive, and inexpensive access to computational resources.
The Web provides us information—the grid allows us to process it.
Grid Computing enables virtual organizations to share geographically distributed resources
as they pursue common goals, assuming the absence of central location, central control,
omniscience, and an existing trust relationship.
46. Grid Protocol Architecture
Grids provide protocols and services at five different layers as identified in the Grid protocol architecture.
Fabric layer: Grids provide access to different resource types such as compute, storage and network resource,
code repository, etc. Grids usually rely on existing fabric.
Connectivity layer : defines core communication and authentication protocols for easy and secure network
transactions.
Resource layer: The resource layer defines protocols required to initiate and control sharing of local resources
defines protocols for the publication, discovery, negotiation, monitoring, accounting and payment of sharing
operations on individual resources.
Grid Resource Allocation Management (GRAM):Remote allocation, reservation, monitoring, and control of
resources .
GridFTP (FTP Extensions):High performance data access and transport
Grid Resource Information Service (GRIS):Access to structure and state information
Collective layer: captures interactions across collections of resources, directory services such as MDS
(Monitoring and Discovery Service) allows for the monitoring and discovery of VO resources, Condor-G and
Nimrod-G are examples of co-allocating, scheduling and brokering services, and MPICH for Grid enabled
programming systems, and CAS (community authorization service) for global resource policies.
Application layer: comprises whatever user applications built on top of the above protocols and APIs and
operate in VO environments. Two examples are Grid workflow systems, and Grid portals.
47. Grid Protocols
Security: Grid Security Infrastructure: Security is defined in the resource layer of the grid architecture. The Grid Security
Infrastructure (GSI) for grids has been defined by creating extensions to standard and well-known protocols and APIs.
Extensions for Secure Socket Layer/ Transport Layer Security (SSL/TLS) and X.509 have been defined to allow single sign-on
(proxy certificate) and delegation
48. Grid Protocols
Resource Management: Grid Resource Allocation Management Protocol: The Grid Resource Allocation and Management
protocol and client API allows programs to be started on remote resources.
A Resource Specification Language (RSL) has been developed as a common notation for exchange of information between
applications, resource brokers, and local resource managers. RSL provides two types of information:
Resource requirements: machine type, number of nodes, memory, etc.
Job configuration: directory, executable, arguments, environment
49. Grid Protocols
Data Transfer: Grid File Transfer Protocol: The standard FTP protocol has been
extended while preserving interoperability with existing servers to develop GridFTP. The
extensions provide for striped/parallel data channels, partial files, automatic and manual TCP
buffer size settings, progress monitoring, and extended restart functionality.
Information Services: Grid Information Services: Grid Information Service (GIS)
provides access to static and dynamic information regarding a grid’s various components and
includes the type and state of available resources.
There are two types of Grid Information Services. The Grid Resource Information Service
(GRIS) and the Grid Index Information Service (GIIS). The GRIS supplies information about a
specific resource while the GIIS is an aggregate directory service. GIIS provides a collection of
information that has been gathered from multiple GRIS servers.
The Grid Resource Registration protocol is used by resources to register with the GRIS servers.
The Grid Resource Inquiry protocol is used to query a resource description server for
information and also query the aggregate server for information.
50. Globus Toolkit
Globus™ is a reference implementation of the grid architecture and grid protocols discussed
in the preceding sections.
Protocol stack in version 4.x of the Globus Toolkit.
51. Open Grid Services Architecture
Open Grid Services Architecture, an effort
led by IBM and the Globus team, tries to
marry the Web Services architecture with
the Grid Computing architecture. Taking
advantage of the experience gained from
the Globus implementation of grid
technologies and Web Services standards,
OGSA will model traditional grid resources
(computation, storage) as a Grid Service.
52. Challenges in grid computing
Challenges of grid computing are as follows:
Dynamicity: Resources in grid are owned and managed by more than one organization which may
enter and leave the grid at any time causing burden on the grid.
Administration: To form a unified resource pool, a heavy system administration burden is raised
along with other maintenance work to coordinate local administration policies with global ones.
Development: Problems are concerned with ways of writing software to run on grid-computing
platforms, which includes to decompose and distribute to processing elements, and then
assembling solutions.
Accounting: Finding ways to support different account- ing infrastructure, economic model and
application models that can cope well with tasks that communicate frequently and are
interdependent.
Heterogeneity: Finding ways to create a wide area data intensive programming and scheduling
framework in heterogeneous set of resources.
Programming: The low-coupling between nodes and the distributed nature of processing make the
programming of applications over grids more complex.
53. Utility computing
Utility computing focuses on a business model in which customers
receive computing resources from a paid service provider.
All grid/cloud platforms are regarded as utility service providers.
Cloud computing offers a broader concept than utility computing.
Distributed cloud applications run on any available servers in networks
We define utility Computing as being commercial compute resources
that are maintained and managed by a service provider. Customers that
have the need to augment their existing, internal computational
resources may purchase “cycles” from a computing provider.
54. Server consolidation
Virtualization brought overfull data centers and underutilized servers to
condense multiple physical servers into one server that would run many virtual
machines, allowing that physical server to run at a much higher rate of
utilization. This condensing of servers is called server consolidation.
56. Virtualization
Virtualization is a disruptive technology.
Virtualization in computing often refers to the abstraction of some
physical component into a logical object. By virtualizing an object,
you can obtain some greater measure of utility from the resource
the object provides.
A virtual machine (VM) can virtualize all of the hardware resources,
including processors, memory, storage, and network connectivity.
A virtual machine monitor (VMM), today is commonly called a
hypervisor, is the software that provides the environment in
which the VMs operate.
57. Features:
Hardware Independent Operating System.
Virtual Machines can be provisioned to any
System/Server.
Multiple Operating Systems can be installed
on a Server/System.
Resources are split and provisioned to VMS.
Can run multiple systems with same amount
of cooling, power and space.
x86 Architecture
VMware Virtualization Layer
Application Application
Operating System Operating System
CPU Memory NIC Disk
59. Hypervisor
The hypervisor manages the interactions between each virtual machine
and the hardware that the guests all share.
Role of Hypervisor:
Provide an environment identical to the physical environment.
Provide that environment with minimal performance cost.
Retain complete control of the system resources.
60. Type-1 Hypervisor
Type 1 hypervisors run directly on the server hardware without an operating
system beneath it. Because there is no intervening layer between the
hypervisor and the physical hardware, this is also referred to as a bare-
metal implementation.
Type 1 hypervisors include VMware ESX, Microsoft Hyper-V, and the many
Xen variants.
61. Hypervisor
A Type 2 hypervisor itself is an application that runs on top of a traditional
operating system.
VMware Player, Vmware Workstation, and Microsoft Virtual Server are
examples of Type 2hypervisors.
Type-2 Hypervisor
66. Cloud Computing
Cloud computing is an Internet cloud of resources can be either a centralized
or a distributed computing system.
The cloud applies parallel or distributed computing, or both. Clouds can be
built with physical or virtualized resources over large data centers that are
centralized or distributed.
Some consider cloud computing to be a form of utility computing or service
computing.
67. Cloud: A new consumption and delivery model.
Cloud Addresses:
Cost factor
Scalability
Utilization
Self-Service
IT-agility, flexibility and delivery of value
Cloud Representations: The industrialization of delivery for
IT.
68. Virtualized Servers,
Storage, Networking
Virtualization
&Platform
Management
Virtualized Servers,
Storage, Networking
Virtualization
&Platform
Management
Virtualized Servers,
Storage, Networking
Virtualization
&Platform
Management
Basic Cloud(Self
Service, Admin, VM
Provisioning
Service Orchestration
and Integration
Basic Cloud(Self
Service, Admin, VM
Provisioning
This is not always a linear
progression. some begin by
Optimizing the virtualization
foundation for a workload, then
gradually move to cloud.
Some require cloud capabilities
From the beginning and may
start with advanced cloud or
entry cloud solutions.
Some may be in all of these
stages w/ different workloads
across the data center.
Virtualization
Foundation
Advanced Cloud
Entry Cloud
69. Virtualization + Server Automation + Standardization + Self Service
Virtualization Networking Storage Services
Hypervisor VM
CPU Memory
Virtual Switch Virtual NICs
VLAN VPN
DAS SAN
iSCSi NFS
SOAP-XML REST
NAS
Fiber
71. Challenges in the Cloud Computing
Challenges of Cloud Computing are as follows:
Dynamic scalability: The compute nodes are scaled up and down dynamically by the application according
to the response time of the user’s queries. The scheduling delays involved are real concern which leads to
the need of effective and dynamic load management system.
Multi-tenancy: When the number of applications running on the same compute node increases, it will
reduce the amount of bandwidth allocated to each application which may lead to performance degradation.
Querying and access: Scalable provenance querying and secure access of provenance information are open
problems for both grid and cloud environment.
Standardization: As every organization has their own APIs and protocols used which makes the user data or
vendor lock-in. Thus integration and interoperability of all the services and application is a challenge.
Reliability and fault-tolerance: Tools for testing the application against fault tolerance and compute failures
are required which help in developing a reliable system.
Debugging and profiling: Parallel and remote debugging has always been a problem for developing HPC
programs and is an issue in cloud computing also.
Security and Privacy: The user has no idea where data is stored and who will use it as there are more
hackers than developers.
72. Detailed Comparison of Cluster, Grid and Cloud Computing
Clusters Grids Clouds
SLA Limited Yes Yes
Allocation Centralized Decentralized Both
Resource Handling Centralized Distributed Both
Loose coupling No Both Yes
Protocols/API MPI, Parallel Virtual MPI,MPICH-G, GIS,GRAM TCP/IP,SOAP, REST,AJAX
Reliability No Half Full
Security Yes Half No
User friendliness No Half Yes
Virtualization Half Half Yes
73. Detailed Comparison of Cluster, Grid and Cloud Computing..Cont
Clusters Grids Clouds
Interoperability Yes Yes Half
Standardized Yes Yes No
Business Model No No Yes
Task Size Single large Single large Small & medium
SOA No Yes Yes
Multitenancy No Yes Yes
System Performance Improves Improves Improves
Self service No Yes Yes
Computation service Computing Max. Computing On Demand
74. Detailed Comparison of Cluster, Grid and Cloud Computing..Cont
Clusters Grids Clouds
Computation service Computing Max. Computing On Demand
Heterogeneity No Yes Yes
Scalable No Half Yes
Inexpensive No No Yes
Data Locality
Exploited
No No Yes
Application HPC,HTC HPC, HTC, Batch SME interactive apps.
Switching cost Low Low High
Value Added Services No Half Yes
76. Evolution of the IoT
The future of the Internet will consist of heterogeneously connected devices that will further extend the
borders of the world with physical entities and virtual components. The Internet of Things (IoT) will empower
the connected things with new capabilities
85. Introduction to SOA
It has become a core idea of most distributed systems.
Loose coupling and support of heterogeneous implementations makes
services more attractive than distributed objects.
SOA is about how to design a software system that makes use of services of
new or legacy applications through their published or discoverable
interfaces. These applications are often distributed over the networks.
SOA also aims to make service interoperability extensible and effective.
It prompts architecture styles such as loose coupling, published interfaces,
and a standard communication model in order to support this goal.
87. Introduction to SOA
SOA as a form of distributed systems architecture characterized
Logical view: The SOA is an abstracted, logical view of actual programs, databases,
business processes, and so on, defined in terms of what it does, typically carrying
out a business-level operation.
Message orientation: The internal structure of providers and requesters include
the implementation language, process structure, and even database structure. By
avoiding any knowledge of the internal structure of an agent, one can incorporate
any software component or application to adhere to the formal service definition.
Description orientation: A service is described by machine-executable metadata.
The description supports the public nature of the SOA. Only those details that are
exposed to the public and are important for the use of the service should be
included in the description.
89. Introduction to SOA
SOA helps to meet the needs of business processes of large distributed systems.
90. SOA is based on 3 Concepts
A service will have functionality/work to be done which eases the work of the user/client.
This provided service could be as simple as getting some information from the user
and fetching the required data from the db or it could be as complicated as an entire
business process for an organization.
Enterprise service bus which enables interoperability between systems for services. It
makes it easier to have the services running in multiple systems with different platforms
and technologies.
Loose Coupling: When there is tight coupling between systems then the dependency is
very high. If it is loosely coupled then the dependency is low.
It is like writing a method and call this method in all the places. In the method specify
the external dependency.
If there is change in external dependency then only the method has to be modified.
Loose coupling will help in minimizing the risk of modifications and failures.
91. SOA Services
The noun “service” is defined in dictionaries as "The performance of work (a
function) by one for another.” by OASIS SOA reference model.
SOA focusses on business functionality. These processes are performed with
different steps on different systems. A service should represent the real
world business functionality.
A business person should be able to understand the functionality provided
by the service.
Technically, a service takes the required input, processes it and returns the
required information.
SOA is a software architecture that starts with interface definition and builds
the entire applications interfaces so that the client can call the interface.
92. Service Life Cycle
Implementing Services: It has usual software development Life cycle as:
Analysis, design, implementation, Integration and deploying in production.
93. SOA Services-Additional Attributes
Self-contained: They are self governed, independent, autonomous.
Abstraction: Services abstracts the implementation from the client. The
issues of abstraction is several calls has to be made. Hence, it is better to
send the required data at once instead of sending it multiple times.
Visibility of service: You need to know that a service exists or it can be
spread via “word of mouth”.
Stateless: Services will not maintain the state. Whatever the user asks for,
it is served. At times, for reference purposes it is stored in the database.
Idempotent: You call a service and there is some response from the
service. You do not know whether the response is right or wrong. You call
the same service again to verify. This is called as Idempotent.
94. SOA Services-Additional Attributes
Reusable: Service is written once and can be used many times.
Compassable: A service can call another service as business process is
broken into small functionalities.
SLA: A service can have Service Level Agreements like time to perform the
given task, reliability etc.
Pre and post conditions: Pre and post condition will help to know resolve the
issue(s) of the customer. Pre condition means customer would have come up
with some issues and post condition is resolving the issue of the customer.
Interoperability: Will be able to communicate between different systems.
Implemented as web services: Web services are used to implement SOA.
95. SOA - Loose Coupling
Fault tolerance: When the stock market system goes down for an
hour there is a loss of 8 million dollars.
If the flight booking systems goes down for an hour there is a
loss of 1 million dollar an hour.
Hence, the systems has to be robust.
Fault tolerance has to be implemented in the systems. This is
achieved through loose coupling.
96. Asynchronous Communication
Asynchronous communication: Sender of a message and receiver of a message
is not synchronized.
Consider the following example of an email:
Sender sends an email. Receiver receives it. Receiver checks the email at his own pace
and responds back. In this form of communication, sender sends a message to the
receiver. It is in receiver queue. When the receiver sees the message, sender gets an
acknowledgement.
97. Enterprise Service Bus (ESB)
An enterprise service bus (ESB) is a software architecture
model used for designing and implementing communication
between mutually interacting software applications in a service
oriented Architecture.
The concept has been developed from bus architecture from
the computer hardware. The motivation was to develop a
standard, structured and general purpose component which is
of loosely coupled that are expected to run independently.
It is like a management layer for technical services of SOA.
100. Responsibilities of ESB
Providing connectivity
Data transformation: As discussed earlier; can define how to couple
different data types into compatible one
(Intelligent) routing: Supporting load balancing and failover support
Dealing with security
Dealing with reliability: Has to define how to reliably deliver services and
defines how to handle the technical issues
Service management : When the number of services grow then
management comes into the picture. What processes and policies has to be
implemented should be part of this component.
Monitoring and logging: All the activities are monitored and logged in
102. SOA Basic Architectural Models
SOA Architecture can be seen from different perspective based on the need.
They are:
1. Business or Logical based
2. Mixed
3. Technical