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 J
3. 3
Can you name some examples of Distributed Systems?
q Client-server (e.g., NFS)
q The Internet
q The Web
q A sensor network
q DNS
q BitTorrent (peer to peer overlay)
q Datacenters
q Hadoop
qBlock Chain
4. 4
Definitions of Distributed Systems
q A distributed system is a collection of independent computers that appear to
the users of the system as a single computer.
[Andrew Tanenbaum]
q 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?
qWhy are these definitions short?
qWhy do these definitions look inadequate to us?
qBecause 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
q 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.
qOur interest in distributed systems involves
Øalgorithmics, design and implementation, maintenance, study
qEntity=a process on a device (PC, PDA…)
qCommunication Medium=Wired or wireless network
q 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
q 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.
qParallel 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
q The hype cycle provides a graphical and conceptual presentation of the maturity emerging
technologies through five phases.
18. What is Serial Computing?
qTraditionally, 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.
19. What is Parallel Computing?
qIn 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
qInstructions from each part execute simultaneously on different CPUs
20. Parallelism - A simplistic understanding
qMultiple tasks at once.
qDistribute work into multiple execution units.
qA classification of parallelism:
ØData Parallelism
ØFunctional or Control Parallelism
qData Parallelism: Divide the dataset and solve each
sector “similarly” on a separate execution unit.
qFunctional 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?
qHybrid: Can do both: Say, first partition by data, and
then for each data block, partition by functionality
Sequential
Data
Parallelism
22. 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
e Instruction, Single Data (SISD)
arallel) computer
on: only one instruction stream is being acted on by the CPU
clock cycle
y one data stream is being used as input during any one clock
xecution
st and until recently, the most prevalent form of computer
t PCs, single CPU workstations and mainframes
Single Instruction, Single Data (SISD)
rial (non-parallel) computer
le instruction: only one instruction stream is being acted on by the CPU
ng any oneclock cycle
le data: only one data stream is being used as input during any oneclock
e
erministic execution
is the oldest and until recently, themost prevalent form ofcomputer
mples: most PCs, single CPU workstations and mainframes
23. 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
Single Instruction, Multiple Data (SIMD)
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 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 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
qSynchronous (lockstep) and deterministic execution
qTwo varieties: Processor Arrays and Vector Pipelines
24. 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.
MultipleInstruction, Single Data(MISD)
qA single datastream is fedintomultiple processing units.
qEach processing unit operates onthe dataindependently via independent instruction streams.
qFew actual examples ofthis class of parallel computer haveever existed. Oneis the experimental
Carnegie-Mellon C.mmpcomputer (1971).
qSome conceivable uses mightbe:
Ømultiple frequencyfiltersoperatingonasingle signalstream
qmultiple cryptographyalgorithms attempting to crack asingle coded message.
25. 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 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 typeof 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.
27. Shared Memory
qShared memory parallel computers vary widely, but generally have in common the ability for all processors
to access all memory as global address space.
qMultiple processors can operate independently but share the same memory resources.
qChanges in a memory location effected by one processor are visible to all other processors.
qShared memory machines can be divided into two main classes based upon memory access times: UMA and
NUMA.
28. Shared Memory : UMA vs. NUMA
qUniform 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.
qNon-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
29. Shared Memory: Pro and Con
q 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
q 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.
30. Distributed Memory
qLike 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.
qProcessors 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.
qBecause 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.
qWhen 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.
qThe network "fabric" used for data transfer varies widely, though it can can be as simple as Ethernet.
31. Distributed Memory: Pro and Con
qAdvantages
Ø 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.
qDisadvantages
Ø 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
32. Hybrid Distributed-Shared Memory
The largest and fastest computers in the world today employ both shared and distributed memory architectures.
The shared memory component is usually a cache coherent SMP machine. Processors on a given SMP can
address that machine's memory as global.
The 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
one SMP to another.
Current trends seem to indicate that this type of memory architecture will continue to prevail and increase at the
high end of computing for the foreseeable future.
Advantages and Disadvantages: whatever is common to both shared and distributed memory architectures.
33. Cluster computing
q The cluster is often a collection of homogeneous compute nodes
that are physically connected in close range to one another.
q Clustering enables the construction of scalable parallel and
distributed systems for both HPC and HTC applications.
q Computer clusters have laid the foundation for today’s super
computers, computational grids, and Internet clouds built over data
centers.
34. Cluster Family Classification
q 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.
35. 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.
36. Cluster Computer and its Architecture
q 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)
38. Different types of cluster nodes connections
Shared nothing
Shared disk
Shared memory
39. Key Operational Benefits of Clustering
qHigh Performance
qExpandability and Scalability
qHigh Throughput
qHigh Availability
qMinimizing downtime of the Service
40. Challenges in the Cluster Computing
Challenges of cluster computing are as follows:
qMiddleware: To produce software environments that provides an illusion of a
single system image, rather than a collection of independent computers.
qProgram: 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.
qElasticity: The variance in real-time response time when the number of
service requests changes dramatically.
qScalability: To meet the additional requirements of a resource thus effecting
the performance of the system.
41. Grid Computing
q 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.
q 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.
45. 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.
46. 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
47. 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
48. 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.
49. Globus Toolkit
qGlobus™ 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.
50. Open Grid Services Architecture
qOpen 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.
51. Challenges in grid computing
Challenges of grid computing are as follows:
q 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.
q 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.
q 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.
q 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.
q Heterogeneity: Finding ways to create a wide area data intensive programming and scheduling
framework in heterogeneous set of resources.
q Programming: The low-coupling between nodes and the distributed nature of processing make the
programming of applications over grids more complex.
52. Utility computing
q Utility computing focuses on a business model in which customers
receive computing resources from a paid service provider.
q All grid/cloud platforms are regarded as utility service providers.
q Cloud computing offers a broader concept than utility computing.
q Distributed cloud applications run on any available servers in networks
q 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. Virtualization
q Virtualization is a disruptive technology.
q 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.
q A virtual machine (VM) can virtualize all of the hardware resources,
including processors, memory, storage, and network connectivity.
A virtual machine monitor (VMM), which today is commonly called
a hypervisor, is the software that provides the environment in
which the VMs operate.
56. Server consolidation
q 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.
57. Hypervisor
q The hypervisor manages the interactions between each virtual machine
and the hardware that the guests all share.
q 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.
58. Type-1 Hypervisor
q 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.
q Type 1 hypervisors include VMware ESX, Microsoft Hyper-V, and the many
Xen variants.
59. Hypervisor
q A Type 2 hypervisor itself is an application that runs on top of a traditional
operating system.
q VMware Player, Vmware Workstation, and Microsoft Virtual Server are
examples of Type 2hypervisors.
Type-2 Hypervisor
64. Cloud Computing
q Cloud computing 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.
65. qCloud: A new consumption and delivery model.
q Cloud Addresses:
Ø Cost factor
Ø Scalability
Ø Utilization
Ø Self-Service
Ø IT-agility, flexibility and delivery of value
q Cloud Representations: The industrialization of delivery for
IT.
66. 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
q This is not always a linear
progression. some begin by
Optimizing the virtualization
foundation for a workload, then
gradually move to cloud.
q Some require cloud capabilities
From the beginning and may
start with advanced cloud or
entry cloud solutions.
q Some may be in all of these
stages w/ different workloads
across the data center.
Virtualization
Foundation
Advanced Cloud
Entry Cloud
67. 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
69. Challenges in the Cloud Computing
Challenges of Cloud Computing are as follows:
q 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.
q 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.
q Querying and access: Scalable provenance querying and secure access of provenance information are open
problems for both grid and cloud environment.
q 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.
q Reliability and fault-tolerance: Tools for testing the application against fault tolerance and compute failures
are required which help in developing a reliable system.
q Debugging and profiling: Parallel and remote debugging has always been a problem for developing HPC
programs and is an issue in cloud computing also.
q Security and Privacy: The user has no idea where data is stored and who will use it as there are more
hackers than developers.
70. 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
71. 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
72. 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
74. Evolution of the IoT
q 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
83. Introduction to SOA
q It has become a core idea of most distributed systems.
q Loose coupling and support of heterogeneous implementations makes
services more attractive than distributed objects.
q 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.
q SOA also aims to make service interoperability extensible and effective.
q It prompts architecture styles such as loose coupling, published interfaces,
and a standard communication model in order to support this goal.
86. Introduction to SOA
q SOA helps to meet the needs of business processes of large distributed systems.
87. SOA is based on 3 Concepts
q 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.
q 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.
q 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.
88. SOA Services
q The noun “service” is defined in dictionaries as "The performance of work (a
function) by one for another.” by OASIS SOA reference model.
q SOA focusses on business functionality. These processes are performed with
different steps on different systems. A service should represent the real
world business functionality.
q A business person should be able to understand the functionality provided
by the service.
q Technically, a service takes the required input, processes it and returns the
required information.
q SOA is a software architecture that starts with interface definition and builds
the entire applications interfaces so that the client can call the interface.
89. Service Life Cycle
q Implementing Services: It has usual software development Life cycle as:
q Analysis, design, implementation, Integration and deploying in production.
90. SOA Services-Additional Attributes
q Self-contained: They are self governed, independent, autonomous.
q 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.
q Visibility of service: You need to know that a service exists or it can be
spread via “word of mouth”.
q 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.
q 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.
91. SOA Services-Additional Attributes
q Reusable: Service is written once and can be used many times.
q Compassable: A service can call another service as business process is
broken into small functionalities.
q SLA: A service can have Service Level Agreements like time to perform the
given task, reliability etc.
q 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.
q Interoperability: Will be able to communicate between different systems.
q Implemented as web services: Web services are used to implement SOA.
92. SOA — Loose Coupling
q 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.
93. Asynchronous Communication
q 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.
94. Enterprise Service Bus (ESB)
q 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.
q 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.
q It is like a management layer for technical services of SOA.
97. Responsibilities of ESB
q Providing connectivity
q Data transformation: As discussed earlier; can define how to couple
different data types into compatible one
q (Intelligent) routing: Supporting load balancing and failover support
q Dealing with security
q Dealing with reliability: Has to define how to reliably deliver services and
defines how to handle the technical issues
q 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.
q Monitoring and logging: All the activities are monitored and logged in
99. SOA Basic Architectural Models
q SOA Architecture can be seen from different perspective based on the need.
They are:
1. Business or Logical based
2. Mixed
3. Technical