Chapter 1 Notes

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 24

What is Cloud?

The term Cloud refers to a Network or Internet. In other words, we can say that Cloud is
something, which is present at remote location. Cloud can provide services over public and
private networks, i.e., WAN, LAN or VPN.

Applications such as e-mail, web conferencing, customer relationship management (CRM)


execute on cloud.

Definition of Cloud Computing


Cloud Computing refers to manipulating, configuring and accessing the applications
online. It offers online data storage, infrastructure and application.

Cloud computing offers platform independency, as the software is not required to be


installed locally on the PC. Hence, the Cloud Computing is making our business
applications mobile and collaborative.

Cloud Computing provides us means by which we can access the applications as


utilities over the internet. It allows us to create, configure, and customize the business
applications online.

Cloud Computing is the use of hardware and software to deliver a service over a
network (typically the Internet). With cloud computing, users can access files and use
applications from any device that can access the Internet. An example of a Cloud
Computing provider is Google's Gmail. Instead of running an email program on your
computer, you log in to a web email account remotely. The software and storage for your
computer does not exist on your computer; it is on the services computer on the cloud.

The practice of using a network of remote servers hosted on the Internet to store,
manage, and process data, rather than a local server or a personal computer.

In cloud computing, the word "cloud" (also phrased as "the cloud") is used as a
metaphor for "the Internet," so the phrase cloud computing means a type of Internet
based computing, where different services including servers, storage and applications are
delivered to an organization's computers and devices.

Cloud computing is a type of computing that relies on sharing computing


resources rather than having local servers or personal devices to handle applications.

It is a complex infrastructure technology comprising of servers, databases and


computers. These are connected together and can be shared by multiple users based on access
permissions.

With tremendous enhancement in technology all the leading companies and the
emerging ones are migrating towards cloud computing and are offering the best cloud
services to their customer. But there is a big question? What exactly the term cloud
computing mean, what is cloud storage and if I adopt this technology, then will there be any
benefits to my business….
Speaking forthrightly on cloud computing. In this blog, I am going to tell you about
cloud computing and its service. I know there is lots of confusion about this technology and
most of us are juggling these words like IOT, client-server, web app and web services. Then
what exactly this cloud computing means and what actually cloud computing services are?
Cloud computing is a broad term and we can’t define it in simple words. But according to the
NIST (National institute of Standards and Technology)
“Cloud computing is a model for enabling convenient, On-demand access to a
shared pool of configurable computing resources that can be rapidly
provisioned and released with minimal management efforts or services
provider interaction.”
Is this definition screwing your mind so let’s take a simple approach……? Before that, we
need to take a look on the characteristics, model and services of the technology to simplify
our concept.
Basically, cloud computing has some essential characteristics without which we cannot
approve its definition. They are: 1. On-demand self-service, 2. Broad network access, 3.
Resource pooling, 4. Rapid elasticity and 5. Measured Service

History of Cloud Computing


The concept of Cloud Computing came into existence in the year 1950 by IBM with
implementation of mainframe computers, accessible via thin/static clients. Initially it was
known as Remote Job Entry Process, since then, cloud computing has been evolved from
static clients to dynamic ones and from software to services. The following diagram explains
the evolution of cloud computing:
Basic Concepts
There are certain services and models working behind the scene making the cloud
computing feasible and accessible to end users. Following are the working models for cloud
computing:

● Deployment Models

● Service Models
Deployment Models
Deployment models define the type of access to the cloud, i.e., how the cloud is located?
Cloud can have any of the four types of access: Public, Private, Hybrid, and Community.
PUBLIC CLOUD
The public cloud allows systems and services to be easily accessible to the general public.
Public cloud may be less secure because of its openness.

A public cloud is the most popular cloud among all the deployment models. Public cloud is
the best cloud computing services because it adopts the best resource management technique
and high availability and security. In this deployment model, the service provider creates
resource like application for the business, storage space for the business and general users.
Development environment for the developer and this model always try to minimize its
customer’s expenses and resource uses. Public cloud services are both paid services and free
to use.
Example: We all are using public cloud services in our day to day life, like using Google
drive is the most beautiful example of the public cloud. Also we use Google docs and Google
spread sheet is also the services of the public cloud.
Example :
1. Amazon AWS
2. Microsoft Azure
3. Google
4. Salesforce.com
5. Windows azure
6. Rackspace
7. Google compute engine
8. Qt cloud services

PRIVATE CLOUD
The private cloud allows systems and services to be accessible within an
organization. It is more secured because of its private nature.

Private cloud is a datacentre which is software defined. Which means you have that
much hardware capability which can drive your personal or your organization’s
requirements. It is generally in a virtual environment. Normally it delivers the same
advantage what the public cloud offers. Basically, a private cloud is giving services to the
single organization.

COMMUNITY CLOUD
The community cloud allows systems and services to be accessible by a group of
organizations.

A community cloud is a type of cloud computing services which serve its services to
multiple organizations which are mutually joined together. This organization has common
concerns just like uses, requirements and security issues. This type of cloud can be managed
by the same organization or by the third party. The benefits of this cloud are cost saving.
Instead of managing the service by the individual, they can manage it together with common
concern.
Example : Consider an organization are having 10 schools and they want to handle the data
of all these schools, so this organization will subscribe the community cloud services instead
of managing it individually, and they can do this task with minimum resource and less cost.
HYBRID CLOUD
The hybrid cloud is a mixture of public and private cloud, in which the critical
activities are performed using private cloud while the non-critical activities are performed
using public cloud.

Service Models
Cloud computing is based on service models. These are categorized into three basic
service models which are -

● Infrastructure-as–a-Service (IaaS)

● Platform-as-a-Service (PaaS)

● Software-as-a-Service (SaaS)
The Infrastructure-as-a-Service (IaaS) is the most basic level of service. Each of the
service models inherits the security and management mechanism from the underlying
model, as shown in the following diagram:

INFRASTRUCTURE-AS-A-SERVICE (IAAS)
IaaS provides access to fundamental resources such as physical machines, virtual
machines, virtual storage, etc. In the example given in PaaS, we consider the scenario of
small firm and its development environment. Now consider, the same firm is dealing with
the huge customer data and backup of the same data. Then you need to upgrade your storing
capacity as per the demand of the customer grows and you also need to bother about the
backup of the customer data in case of any disaster. And if we consider the maintenance cost
of the RAID then it will be costlier. But if you subscribe the IaaS then everything will go
well and your storage capacity will increase as per the demand and no need to pay only for
the uses, that mean no need to stock the resource for the future. This service is normally use
for cloud hosting you can find some of the popular cloud providers.

IaaS Characteristics:

*Generally includes multiple users on a single piece of hardware

*Resources are available as a service

*Allows dynamic scaling capabilities – the cost varies based on the infrastructure selection

*Very flexible cloud computing model and gives organizations a complete true control over
their infrastructure

PLATFORM-AS-A-SERVICE (PAAS)
PaaS provides the runtime environment for applications, development and
deployment tools, etc.

If you are the web app developer and still working on the stand alone machine then this
service is best for you. If you want to develop a CRM application then PaaS is best for you.
Now, what is this PaaS stands for? Okay! It’s a Platform as a service but which platform it
is.
Example: Suppose you want to start a small firm for web app development, now the first
thing you need to consider is, purchasing latest computer, then you need to install the
platform for development and frequently need to update with new packages or patches to
keep it updated…Now consider you are subscribing the PaaS then you will able to do the
same thing with the help of low-cost computing device and also there is no need to install the
development platform on your local standalone machine. You just need to login to the server
and start the development and you can deploy your developed app on the internet and also
can sell it on the online market. The best example of PaaS is salesforce.com which is the
biggest CRM cloud which I know.

PaaS Characteristics:

*Built on top of virtualization technology – you can demand for resources as per your need
and scale up/ down as per the requirement

*Provides varying services to facilitate development, testing, deployment and hosting of


software applications in integrated development environment

*Multiple users can utilize the same development application

*Integrated web services and databases

*Billing and subscription is managed by tools


SOFTWARE-AS-A-SERVICE (SAAS)
SaaS model allows using software applications as a service to end-users.

Software as a service (SaaS) is some time called as on-demand software. But if we go


through the definition, it will be the licensing delivery model in which service provider uses
subscription basis services. It means, the software will be hosted centrally and the customer
uses that software through low-cost computing devices like a thin client and can access it by
browsers. Now a day most of the company migrating towards the software as a service
because of it high reliability and low maintenance cost. The most famous category of these
services is, CRM, MIS and CRM type of software.
Benefit of the model:
Once you subscribe the SaaS services then you will get the latest services of the IT.
That means, you don’t need to update the software with newly arrived patches, also there is
no need to bother about the security issue of the same. Because once the copy of your
software is updated by the cloud server then you will get the updated one. The most useful
thing of this model is, No need to bother about the upgrading of the hardware to drive the
latest software on it. Nowadays we also have cloud antivirus, which uses the processing
power of server and not your local machine. The biggest driving force behind the cloud
computing industries is its cost-reducing policy by outsourced hardware, maintenance, and
support.

SaaS Characteristics:

*Software is hosted on a remote server and is always accessible through a web browser over
Internet

*Application is managed from a central location

*Application users don’t need to worry about hardware, software updates and patches

*Any integration with the third party applications are done through APIs

ANYTHING-AS-A-SERVICE (XAAS) is yet another service model, which includes


Network-as-a-Service, Business-as-a-Service, Identity-as-a-Service, Database-as-a-
Service or Strategy-as-a-Service.

COMPARISION OF IAAS, PAAS AND SAAS


Characteristics of Cloud Computing
The 5 essential characteristics of cloud computing are
1. On-demand self-service:
Cloud Computing allows the users to use web services and resources on demand . One
can logon to a website at any time and use them. On-demand self-service provides resources
on demand, that mean if you are the owner of a website having huge traffic and high database
uses and suddenly your website will start starving for resources at peak time and there would
be demand for extra resources to fulfil the customer’s requirement, which is not the same in
case of cloud computing. Cloud services will automatically do this for you, and you just need
to pay as per the usages without any human intervention.
A consumer can unilaterally provision computing capabilities such as server
time and network storage as needed automatically, without requiring human
interaction with a service provider.

2. Broad network access:


Since cloud computing is completely web based, it can be accessed from anywhere and at
any time. Obviously, the cloud computing and its services are all about internet and
networks, so to get more benefits from this technology in efficient and better way, we need a
broad network access. Because if network has low latency means it has better productivity.
So the broad network access could be considered as the heart of this technology.
Capabilities are available over the network and accessed through standard
mechanisms that promote use by heterogeneous thin or thick client platforms
(e.g., mobile phones, laptops, and PDAs) as well as other traditional or cloud based
software services.

3. Resource pooling:
Cloud computing allows multiple tenants to share a pool of resources. One can share
single physical instance of hardware, database and basic infrastructure . It’s a common term
generally used in I.T, when service provider serves their customer and “tenants” with
minimum and optimistically arranged computing resource in such a way that they can give
better services in less cost or using better resource management strategy. But this pooled
service is not limited to the users.
The provider’s computing resources are pooled to serve multiple consumers
using a multi-tenant model, with different physical and virtual resources
dynamically assigned and reassigned according to consumer demand.

4. Rapid elasticity :
It is very easy to scale the resources vertically or horizontally at any time. Scaling of
resources means the ability of resources to deal with increasing or decreasing demand . The
resources being used by customers at any given point of time are automatically monitored .
What is the most interesting thing of cloud computing and the key factor of the cloud
computing? Yes. It is Rapid elasticity. Then what’s this elasticity mean. Now take an
example.
Suppose you and your friend are taking benefits of the cloud services but the difference
is, you are working on the high-end application and use the tremendous resource, but your
friend using the same service for the word processing. In this situation cloud services will
utilise only that much power which you really want. So it’s a real way to optimise the
resource and it is beneficial for both customer and for the service provider.
Capabilities can be rapidly and elastically provisioned - in some cases
automatically - to quickly scale out; and rapidly released to quickly scale in.
To the consumer, the capabilities available for provisioning often appear to be
unlimited and can be purchased in any quantity at any time.
5. Measured Service:
In this service cloud provider controls and monitors all the aspects of cloud service.
Resource optimization, billing, and capacity planning etc. depend on it. As the name suggest,
the measured services are those services which are measured or monitored in the context of
billing, usage, utilization and for predictive planning. One positive aspect of measured
services is, it gives the prediction regarding utilization of the resources and user need to pay
only for the resources which are utilised by him. So there is no need to pay for the idle time
or down time (Where ideally down time of cloud computing is 0%)
Cloud systems automatically control and optimize resource usage by leveraging
a metering capability at some level of abstraction appropriate to the type of
service.
Resource usage can be monitored, controlled, and reported - providing
transparency for both the provider and consumer of the service.

Benefits of Cloud Computing


Cloud Computing has numerous advantages. Some of them are listed below -

● One can access applications as utilities, over the Internet.

● One can manipulate and configure the applications online at any time.

● It does not require installing software to access or manipulating cloud application.

● Cloud Computing offers online development and deployment tools, programming


runtime environment through PaaS model.
● Cloud resources are available over the network in a manner that provide platform
independent access to any type of clients.

● Cloud Computing offers on-demand self-service. The resources can be used without
interaction with cloud service provider.

● Cloud Computing is highly cost effective because it operates at high efficiency with
optimum utilization. It just requires an Internet connection

● Cloud Computing offers load balancing that makes it more reliable.

Risks related to Cloud Computing


Although cloud Computing is a promising innovation with various benefits in the
world of computing, it comes with risks. Some of them are discussed below:

Security and Privacy


It is the biggest concern about cloud computing. Since data management and
infrastructure management in cloud is provided by third-party, it is always a risk to handover
the sensitive information to cloud service providers.

Although the cloud computing vendors ensure highly secured password protected accounts,
any sign of security breach may result in loss of customers and businesses.
Lock In
It is very difficult for the customers to switch from one Cloud Service Provider
(CSP) to another. It results in dependency on a particular CSP for service.

Isolation Failure
This risk involves the failure of isolation mechanism that separates storage, memory,
and routing between the different tenants.

Management Interface Compromise


In case of public cloud provider, the customer management interfaces are accessible
through the Internet.

Insecure or Incomplete Data Deletion


It is possible that the data requested for deletion may not get deleted. It happens because
either of the following reasons

● Extra copies of data are stored but are not available at the time of deletion

● Disk that stores data of multiple tenants is destroyed.


Cluster Computing
A computer cluster is a group of linked computers, working together closely thus in many
respects forming a single computer. The components of a cluster are connected to each other
through fast local area networks

Cluster means a group of similar things. A Cluster Computing is the collection of loosely
or tightly connected computer which work together which gives the illusion of single high
performance computer. The cluster computer used to perform a single task with high
performance computing. This can be achieved by connecting the entire computer via high
performance LAN (Local Area Network) where every computer runs their instance of OS.

Need for a cluster: Requirements for computing increasing fast.

• More data to process.

• More compute intensive algorithms available.

Cluster categorizations

• High Availability Cluster

• Load Balancing Cluster

• HPC Cluster

High Availability Cluster


• Failover Clusters, mainly implemented to improve the availability of service that
cluster provides

• They operates by having redundant nodes, upon failure the standby node take cares

• Types of High availability clusters: one way & two way

• Often used for critical databases, network file sharing and business applications

Load Balancing Cluster

Multiple computers connected together to share computational workload

Logically they are multiple computers but function as single virtual computer

Request initiated from the user is distributed among all the nodes by one or more load
balancer
HPC Cluster

HPC clusters are mainly used to increases the performance by splitting the
computational task into different nodes

Mainly used in scientific computing

Popular HPC cluster implementations are nodes running with Linux OS and free
software’s to implement the parallelism

The job running on the cluster nodes requires little or no inter nodes communication is
called “Grid Computing”

The local Scheduling software manages the cluster nodes load balancing

Middleware such as MPI (Message Passing Interface) or PVM (Parallel Virtual


Machine) permits compute clustering programs to be portable to a wide variety of
clusters

Benefits of Cluster Computing

The main benefits of cluster are:

1. Availability
2. Scalability
3. Performance

These benefits map to needs of today’s enterprise business, education, military and scientific
community infrastructures.

Grid Computing
Grid computing is the collection of computer resources from multiple locations to
reach a common goal. The grid can be thought of as a distributed system with non-interactive
workloads that involve a large number of files.

Grid computing is a term referring to the combination of computer resources from


multiple administrative domains to reach a common goal. It Coordinates resources that are
not subject to centralized control, it Uses standard, open, general-purpose protocols and
interfaces and Delivers nontrivial qualities of service

In simple Grid Computing is the collection of computer which is situated at different


place to solve a single problem or To Reach a common goal More than one computer
employed. But Grid Computing Uses Non Interactive workload and Huge numbers of file. It
is heterogeneous and also geographically dispersed in nature. Mean to say, the number of
computer processed the job to fulfil a single task. Now consider what happen if we can able
to join all the mobile devices to each other and make a big grid, then consider how much
processing power we will have. Normally It uses the concept of Distributed
Computing where a middleware do the job of joining them together.
Need: Large-scale science and engineering are done through the interaction of people,
heterogeneous computing resources, information systems, and instruments, all of which are
geographically and organizationally dispersed.
The overall motivation for “Grids” is to facilitate the routine interactions of these resources in
order to support large-scale science and Engineering.

Example
I know one example which i used from last 10 year. Actually i am the member of this
project. And it is SETI (Search for Extra-terrestrial Intelligence). Where SETI@HOME is an
Internet Based Public Volunteer Computing Program where you can donate your Processing
power to the Berkeley University to do research on the Space, Space Science and Different
Computer Intensive Research to do the Analysis of Signal Coming from the Space.
Grid Applications

• Sequential Jobs for particular platform

• Concurrent Sequential Jobs for different platforms

• Homogeneous Parallel job for particular OS

• Heterogeneous Parallel Jobs

• Bio Informatics applications

• High Energy Physics Applications

• Weather Modelling and Predicting Ocean Currents

• Disaster Management

• Aerodynamic Simulations

Advantages and Disadvantages

Advantages

• Can solve larger, more complex problems in a shorter time

• Easier to collaborate with other organizations

• Make better use of existing hardware


Disadvantages

• Grid software and standards are still evolving

• Learning curve to get started

• Non-interactive job submission

Distributed Computing
As the name suggest, the distributed computing is the software system which
computers are located apart from each other but make a illusion of single computer by
passing messages to each other. Normally in distributed computing all the computing
machine work with each other and coordinate by passing the messages to achieve a common
goal.
Example:
We often to use distributed computing when we play multiplayer games and never
think about the technology behind the same. Multiplayer Games is the best example of
Distributed Computing. SOA (Service-Oriented architecture) uses architectural pattern in
which application component provide services to other components using messages.
Utility Computing
Utility computing is somewhat similar to our cable TV services where service
Provider Company gives their services to the customer as per demand. We often to say on
demand services and also charged the customer for the services. The services offered may be
in the form of Computation, storage, and other services. The utility computing is much closed
to cloud computing.

Then what Cloud Computing is not…?


Cloud computing is not Utility computing because cloud computing not always uses
metered services and it uses distributed and virtualized platform, where utility computing
uses centralised resources. Okay.....then it is client server computing....and my answer to this
question is no because if it is client server computing then we need to know about the server
and its location but in this case will not Stephen server not also the location of this is sir client
server computing......okay... Can definitely it will be the grid computing it is grid computing
then we know grid computing grid computing never uses distributed virtual machines these
machines are usually concentrate on a single job or very large task.
Bengali sales cloud computing is a utility computing for software as a service but we
know software as a service is managed by particular organisation and utility computing give
the service is very specific. So can we say it is a virtualisation? We know about the
virtualisation and we're using this from last 50 years in mainframe technology so how is it
possible that what will be the cloud computing answer to this question is again no because
heart of Cloud computing it's not a cloud computing...
OMG....Then what it is......?
I.T industries always believed on standardization so we have a very standard and very
specific definition of cloud computing by national institute of standards and
technology(NIST) and according to NIST “Cloud computing is a model for enabling
ubiquitous, convenient, on-demand network access to a shared pool of configurable
computing resources (e.g., networks, servers, storage, applications, and services) that can be
rapidly provisioned and released with minimal management effort or service provider
interaction. This cloud model is composed of five essential characteristics, three service
models, and four deployment models”

Difference between Cluster, Grid and Cloud Computing


Cluster Computing Grid Computing Cloud Computing

Characteristics of Cluster Characteristics of Grid Characteristic of cloud


computing Computing computing

1:Tightly coupled systems 1: Loosely coupled 1: Dynamic computing


(Decentralization) infrastructure
2: Single system image
2: IT service-centric
3: Centralized Job 2: Diversity and Dynamism approach
management & scheduling
system 3: Distributed Job 3: Self-service based usage
Management & scheduling model

4: Minimally or self-
managed platform

5: Consumption-based billing

In cluster computing, a bunch In grid computing, the In cloud computing, the


of similar (or identical) computers do not have to be computers need not to be in
computers are hooked up in the same physical location the same physical location.
locally (in the same physical and can be operated
location, directly connected independently. As far as
with very high speed other computers are
connections) to operate as a concerned each computer on
single computer the grid is a distinct
computer.

The cluster computers all The computers that are part The memory, storage device
have the same hardware and of a grid can run different and network communication
OS. operating systems and have are managed by the operating
different hardware system of the basic physical
cloud units. Open source
software such as LINUX can
support the basic physical
unit management and
virtualization computing.

The whole system (all nodes) Every node is autonomous Every node acts as an
behaves like a single system i.e. it has its own resource independent entity
view and resources are manager and behaves like an
managed by centralized independent entity
resource manager.

The computers in the cluster Grid are inherently


are normally contained in a distributed by its nature over
single location or complex. a LAN, metropolitan or Clouds are mainly distributed
WAN over MAN

More than 2 computers are A large project is divided It does just the opposite. It
connected to solve a problem among multiple computers to allows multiple smaller
make use of their resources. applications to run at the
same time.

Areas of cluster computing Areas of Grid Computing Areas of cloud Computing


1.Predictive Modelling and 1.Banking
Simulations
1. Educational resources 2.Insurance
2.Commercial sectors for 2.Engineering Design and
industrial promotion Automation 3.Weather Forecasting
3.Medical research 4.Space Exploration
3.Energy Resources 5.Software as a service
Exploration 6.PaaS

4.Medical, Military and 7.Infrastructure- as -a-


Basic Research Service

5.Visualization

Size or scalability is 100s Size or scalability is 1000s Size or scalability is 100s to


1000s

One of the standard OSs Any standard OS (dominated A hypervisor (VM) on which
(Linux, Windows) by Unix) multiple OSs run

Single Ownership Multiple Ownership Single Ownership

Dedicated, high-end with low Mostly Internet with high Dedicated, high-end with low
latency and high bandwidth latency and low Bandwidth latency and high Bandwidth
Interconnection Network Interconnection Network Interconnection Network

Traditional login/password Public/private key pair based Each user/application is


based. Medium level of authentication and mapping a provided with a virtual
privacy depends on user user to an account. Limited machine. High
privileges. support for privacy security/privacy is
guaranteed. Support for
setting per-file Access
Control List (ACL).

Limited service negotiation Yes, SLA based service SLA based service
negotiation negotiation

User management is User management is User management is


centralized decentralized and also virtual centralized or can be
organization (VO)-based delegated to third party

Resource management is Resource management is Resource management is


centralized distributed centralized/distributed

Virtual Interface Architecture Some Open Grid Forum Web Services (SOAP and
(VIA)-based standards standards REST) standards

Single system image No single system image Yes, but optionally include
Single system image

Stable and guarantee capacity Varies, but high capacity Provisioned on demand
capacity

Failure management (Self- Failure management (Self- Strong support for failover
healing) is limited (often healing) is limited (often and content replication. VMs
failed tasks/applications are failed tasks/applications are can be easily migrated from
restarted). restarted). one node to other

Limited pricing of services Pricing of services is Utility pricing, discounted


but not open market dominated by public good or for larger customers
privately assigned

Multi-clustering within an Limited adoption for High potential, third party


Organization for internetworking, but being solution providers can
internetworking explored through research loosely tie together services
efforts such as Gridbus of different Clouds for
InterGrid internetworking

Potential for building 3rd Potential for building 3rd High potential - can create
party or value-added party or value-added new services by dynamically
solutions is limited due to solutions is limited due to provisioning of compute,
rigid architecture strong orientation for storage, and application
scientific Computing services and offer as their
own isolated or composite
Cloud services to users
What Is Service-Oriented Architecture?
Service-Oriented Architecture (SOA) is a style of software design where services are
provided to the other components by application components, through a communication
protocol over a network. Its principles are independent of vendors and other technologies. In
service oriented architecture, a number of services communicate with each other, in one of
two ways: through passing data or through two or more services coordinating an activity.

Service-Oriented Architecture Patterns

There are three roles in each of the Service-Oriented Architecture building blocks: service
provider; service broker, service registry, service repository; and service requester/consumer.

The service provider works in conjunction with the service registry, debating the whys and
how’s of the services being offered, such as security, availability, what to charge, and more.
This role also determines the service category and if there need to be any trading agreements.

The service broker makes information regarding the service available to those requesting it.
The scope of the broker is determined by whoever implements it.

The service requester locates entries in the broker registry and then binds them to the service
provider. They may or may not be able to access multiple services; that depends on the
capability of the service requester.
Implementing Service-Oriented Architecture
When it comes to implementing service-oriented architecture (SOA), there is a wide range of
technologies that can be used, depending on what your end goal is and what you’re trying to
accomplish.

Typically, Service-Oriented Architecture is implemented with web services, which makes the
“functional building blocks accessible over standard internet protocols.”

An example of a web service standard is SOAP, which stands for Simple Object Access
Protocol. In a nutshell, SOAP “is a messaging protocol specification for exchanging
structured information in the implementation of web services in computer networks.
Although SOAP wasn’t well-received at first, since 2003 it has gained more popularity and is
becoming more widely used and accepted. Other options for implementing Service-Oriented
Architecture include Jini, COBRA, or REST.

It’s important to note that architectures can “operate independently of specific technologies,”
which means they can be implemented in a variety of ways, including messaging, such as
ActiveMQ; Apache Thrift; and SORCER.

You might also like