CC Unit3 Revised Final
CC Unit3 Revised Final
CC Unit3 Revised Final
Cloud Platform Architecture: Cloud computing and service models, Architectural design of
compute and storage clouds, Public cloud platforms, Inter cloud Resource Management, Cloud
Security and Trust Management, Service Oriented Architecture, Message Oriented Middleware
Deployment Models:
These models defines the type of access to the cloud resources and how cloud is located.
The deployment models are based on the ability of an organization to manage business
needs and secure assets.
The deployment models are
1. Public cloud
2. Private cloud
3. Hybrid cloud
Public Cloud:
Public cloud is open to all to store and access information via the Internet using the pay-per-
usage method.
In public cloud the resources are present for free and for pay also.
In public cloud, computing resources are managed and operated by the third party, i. e Cloud
Service Provider (CSP).
Public Cloud provides a shared platform that is accessible to the general public through an
Internet connection.
Therefore, third-party providers deliver services hosted in the cloud over the internet. These
services include application service, message service, storage service and network service
for customers.
In the Public cloud, the same storage is being used by multiple users at the same time.
Public cloud is owned, managed, and operated by businesses, universities, government
organizations, or a combination of them.
Amazon Elastic Compute Cloud (EC2), Microsoft Azure, IBM's Blue Cloud, Sun Cloud,
and Google Cloud, AWS are examples of the public cloud.
Advantages of Public Cloud: The following are some advantages of public cloud -
1) Low Cost: Public cloud has a lower cost than private, or hybrid cloud, as it shares the
same resources with a large number of consumers.
2) Location Independent: Public cloud is location independent because its services are
offered through the internet.
3) Save Time: In Public cloud, the cloud service provider is responsible for the manage and
maintain data centres in which data is stored, so the cloud user can save their time to establish
connectivity, deploying new products, release product updates, configure, and assemble
servers.
5) Scalability and reliability: Public cloud offers high scalability (easy to add and remove)
and more reliable (24/7 available) services to the users at an affordable cost.
1) Low Security: Public Cloud is less secure because resources are shared publicly.
2) Performance: In the public cloud, performance depends upon the speed of internet
connectivity.
3) Less customizable: Public cloud is less customizable than the private cloud.
Private Cloud:
Advantages of Private cloud: There are the following advantages of Private Cloud -
1) More Control: Private clouds have more control over their resources and hardware than
public clouds because it is only accessed by selected users.
2) Security & privacy: Security & privacy are one of the big advantages of cloud computing.
Private cloud improved the security level as compared to the public cloud.
3) Improved performance: Private cloud offers better performance with improved speed and
space capacity.
1) High cost: The cost is higher than a public cloud because set up and maintain hardware
resources are costly.
3) Limited scalability: Private clouds are scaled only within the capacity of internal hosted
resources.
4) Skilled people: Skilled people are required to manage and operate cloud services.
Hybrid Cloud is a combination of the public cloud and the private cloud.
The main aim to combine these cloud (Public and Private) is to create a unified,
automated, and well-managed computing environment.
In the Hybrid cloud, non-critical activities are performed by the public
cloud and critical activities are performed by the private cloud.
Mainly, a hybrid cloud is used in finance, healthcare, and Universities.
The best hybrid cloud provider companies are Amazon, Microsoft, Google,
Cisco, and NetApp.
Advantages of Hybrid Cloud: There are the following advantages of Hybrid Cloud -
1) Flexible and Secure: It provides flexible resources because of the public cloud and secure
resources because of the private cloud.
2) Cost Effective: Hybrid cloud costs less than the private cloud. It helps organizations to
save costs for both infrastructure and application support.
3) Security: Hybrid cloud is secure because critical activities are performed by the private
cloud.
4) Risk Management: Hybrid cloud provides an excellent way for companies to manage the
risk.
1) Networking issues: In the Hybrid Cloud, networking becomes complex because of the
private and the public cloud.
Service Models: There are 3 types of service models in Cloud Computing, which are
1. Software as a Service (SaaS)
2. Platform as a Service (PaaS)
3. Infrastructure as a Service (IaaS)
In this service, the cloud provider leases the applications or software which are owned
by them to its clients.
The client can access these software on any device which is connected to the internet
using the tools such as web browsers, apps etc.
So, It is also known as “on-demand software”.
In SaaS, associated data and software are hosted centrally on the cloud server.
It removes the need to install and run applications on our own computers
Advantages of SaaS
1. Cost-Effective: Pay only for what you use.
2. Reduced time: Users can run most SaaS apps directly from their web browser without
needing to download and install any software. This reduces the time spent in
installation and configuration and can reduce the issues that can get in the way of the
software deployment.
3. Accessibility: We can Access app data from anywhere.
4. Automatic updates: Rather than purchasing new software, customers rely on a SaaS
provider to automatically perform the updates.
5. Scalability: It allows the users to access the services and features on-demand.
Disadvantages of Saas :
1. Limited customization: SaaS solutions are typically not as customizable as on-
premises software, meaning that users may have to work within the constraints of the
SaaS provider’s platform and may not be able to tailor the software to their specific
needs.
2. Dependence on internet connectivity: SaaS solutions are typically cloud-based, which
means that they require a stable internet connection to function properly. This can be
problematic for users in areas with poor connectivity or for those who need to access
the software in offline environments.
3. Security concerns: SaaS providers are responsible for maintaining the security of the
data stored on their servers, but there is still a risk of data breaches or other security
incidents.
4. Limited control over data: SaaS providers may have access to a user’s data, which
can be a concern for organizations that need to maintain strict control over their data for
regulatory or other reasons.
In this service, the cloud provider gives the ability to the customer to deploy customer
created application using programming language, tools etc that are provided by the cloud
provider.
It provides a platform and environment to allow customers to build applications and
services over the internet.
However, the customer can not control the underlying architecture including operating
systems, storage, servers etc.
This service would make sense only when we are developers, because this service
provides us a platform for developing applications, like Google App Engine.
A PaaS provider hosts the hardware and software on its own infrastructure. As a result,
PaaS frees users from having to install in-house hardware and software to develop or
run a new application. Thus, the development and deployment of the application take
place independent of the hardware.
Disadvantages of Paas:
1. Limited control over infrastructure: PaaS providers typically manage the
underlying infrastructure and take care of maintenance and updates, but this can also
mean that users have less control over the environment and may not be able to make
certain customizations.
2. Dependence on the provider: Users are dependent on the PaaS provider for the
availability, scalability, and reliability of the platform, which can be a risk if the
provider experiences outages or other issues.
3. Limited flexibility: PaaS solutions may not be able to accommodate certain types of
workloads or applications, which can limit the value of the solution for certain
organizations.
In this service, the cloud provider provides customer with a virtual machine and other
resources as a service, they abstract the user from the physical machine, location, data
partitioning etc.
If the user wants a Linux machine, he will get a Linux machine, he will not worry about
physical machine or the networking of the system on which OS is installed. For example
AWS is one IaaS like AWS EC2.
Typically IaaS is a service where infrastructure is provided as outsourcing to enterprises
such as networking equipment, devices, database, and web servers.
It is also known as Hardware as a Service (HaaS).
Advantages of IaaS:
1. Cost-Effective: Eliminates capital expense and reduces ongoing cost and IaaS
customers pay on a per-user basis, typically by the hour, week, or month.
2. Website hosting: Running websites using IaaS can be less expensive than traditional
web hosting.
3. Security: The IaaS Cloud Provider may provide better security than your existing
software.
4. Maintenance: There is no need to manage the underlying data center or the
introduction of new releases of the development or underlying software. This is all
handled by the IaaS Cloud Provider.
Disadvantages of laaS :
1. Limited control over infrastructure: IaaS providers typically manage the underlying
infrastructure and take care of maintenance and updates, but this can also mean that users
have less control over the environment and may not be able to make certain
customizations.
These design objectives are achieved through the use of various cloud computing technologies,
such as virtualization, automation, and others.
1. Shifting of Computing: The ability to shift computer process, storage, software delivery
from desktop to data centres over the Internet.
2. Service Provisioning: The providers can supply the cloud services to customers and end
users by signing the SLAs (Service Layer Architectures)
3. Scalability in Performance: The ability to dynamically scale up or down the amount of
resources as required to meet changing demands.
4. Flexibility or Elasticity: The ability to rapidly provision and release resources as needed,
so that organizations can respond quickly to changing business needs.
5. Agility: The ability to rapidly respond to changing business and market needs by quickly
deploying new applications and services.
6. Cost-effectiveness: The ability to reduce capital expenditures and increase operational
efficiency by leveraging shared resources and economies of scale
7. High availability: The ability to ensure that resources are always available to meet the
needs of applications and user.
8. Reliability: The ability to ensure that services are provided with a high level of durability
and fault tolerance.
9. Security: The ability to protect sensitive data and maintain the confidentiality, integrity
and availability of resources.
10. Interoperability: The ability to easily integrate and interoperate with existing IT
Systems and infrastructure.
11. Portability: The ability to easily move applications and data between different cloud
environments and providers.
Scalability: System scalability can benefit from cluster architecture. If one service takes a
lot of processing power, storage capacity, or network traffic, it is simple to add more
servers and bandwidth.
Reliability: Usually data can be placed at multiple data centres. So even if one data
centre crashes, the user data is still accessible from other data centres. The scale of the
cloud architecture can be easily expanded by adding more servers and enlarging the
network connectivity accordingly.
The Internet cloud is imagined as a massive cluster of servers. The different resources
like data, memory and speed of concern servers are allocated as per demand
dynamically
In general private clouds are easier to manage and public clouds are easy to access.
The trends in cloud development are that more and more clouds will be hybrid. This is
because many cloud applications must go beyond the boundary of the intranet.
So we must learn how to create a private cloud and how to interact with public clouds in
open Internet.
Security becomes a critical issue in safeguarding operation of all the cloud types.
The consumers depend on providers to meet more of their computing needs, and they
will require specific level of QoS to meet their objectives and sustain their operations
To achieve this, the providers can deploy market oriented resource management
architecture to regulate the supply and demand of cloud resources.
This architecture supports market oriented resource allocation in cloud computing
environment.
According to this, the cloud is built with the entities like
Users or Brokers: these can submit service requests from anywhere in the world to the
data centre and cloud to be processed.
SLA resource allocator: It acts as the interface between data centre/cloud service
provider and external users or brokers. When service request is first submitted then the
service request examiner interprets the submitted request for QoS requirements before
determining whether to accept or reject the request.
Critical QoS parameters to consider in a service request such as time, cost, reliability,
and trust/security.
In particular, Qos requirements can not be static and may change over time due to
continuing changes in business operations and operating environments.
Virtualization software is also used as the platform for developing new cloud
applications that enable developers to use any operating systems and programming
environments.
There are 3 popular public clouds like AWS, Microsoft Azure and GAE, that are
providing the virtualization support
AWS provides extreme flexibility (VMs) for users to execute their own applications.
GAE provides limited application level virtualization for users to build their
applications.
Microsoft provides programming-level virtualization (.NET virtualization) for users
to build their applications.
The VMware tools apply to workstations, servers and virtual infrastructure. Microsoft
tools are used on PCs and some special servers.
IT power consumption in the United States has more than doubled to 3% of the total
energy consumed in the country.
The large number of data centres in the country has contributed to this energy crisis to
a great extent.
More than half of the companies in the Fortune 500 are actively implementing the
new corporate energy policies.
When cloud services are managed by single cloud provider then this may lead to
single point failure due to resource unavailable. To avoid such situation multiple
cloud providers/data centres located at various geographical locations must be
considered. Thus management of cloud services by multiple cloud providers protect
the data from failure and also helps in achieving high resource availability.
Public cloud networks can expose the system to various security attacks like
hypervisor malware, hijacking, man in middle attack, guest hopping etc. In addition to
this, there are two types of attacks that make the system vulnerable to attacks. These
are
1. Active attacks
2. Passive attacks
1. Active Attacks: In this type of attack, the hackers try to steal the password or data
which is sensitive to the system.
2. Passive Attacks: In this type of attack, the hackers try to modify kernel data structure
with the intention of damaging the cloud services.
To overcome from the above obstacles various technology like storage, virtual LAN and
network middle boxes i.e firewalls, packet filters are included in the cloud.
Cloud architecture allows virtual machines to share multiple CPUs and main memory
but it does not support I/O sharing. This may lead to I/O interference problems
between virtual machines. To overcome this problem IO architecture must be
improved.
The rise in internet applications are pulled beyond the cloud limits then transmission
and placement of data in cloud computing becomes complex. To overcome this
problem all the weak servers must be eliminated from the cloud application.
In cloud applications the database will grow and shrink based on requirement. Hence
for this reason distributed SANs must be incorporated as new storage in cloud
architecture.
Debugging must be performed on large scale distributed data centre so as to detect
bugs. But this phenomenon is not supported in cloud computing. Thus to detect the
software bugs virtual machine must be used in cloud computing. The concept of
virtualization applied on virtual machine helps in capturing the most critical
information of the system without compromising the security. Besides this debugging
is applied over simulators to identify the software bugs.
The packaging and distribution of VMs can be done using Open Virtualization Format
(OVF) which specifies open, secure, portable, efficient and extensible format. Apart
from this, it also specifies a format to distribute software to be incorporated in VMs.
Typically the VM format is independent of any particular host platform or
virtualization platform and guest operating system. The idea behind this is to resolve
virtual platform-agnostic packaging along with certification and integrity of packaged
software. The virtual appliances are sustained by package so as to cover multiple VMs
The cloud computing providers depends upon open source software since licensing
models for commercial software does not support utility computing. Hence the
commercial software companies must change their licensing structure to perform
better Cloud Computing services. Cloud providers must consider licensing scheme
like pay-for-use and bulk-use-licensing schemes to expand their business.
Reputation sharing can have adverse effects on the repetition of entire cloud. That is if
single customer carries unauthorized functions/activities then this may affect the
entire cloud. To overcome this must enforce various reputation guarding services on
cloud. Besides this legal liabilities must be resolved at SLA level.
Public Cloud: A public cloud is owned by a service provider, built over Internet and offered
a service to the user on payment. For example GAE (Google App Engine), AWS, Microsoft
Azure, IBM Blue Cloud. All these cloud services for creating and managing VM instances to
the users within their own infrastructure.
The above figure introduces 5 levels of cloud players. At the top level, individual users and
organization users demand very different services. The application providers at the SaaS
level serve mainly individual users. The service providers at IaaS and PaaS levels serve
business organizations. However IaaS provides compute, storage and communication
resources to both application and organization users. PaaS level defines environment to
support both infrastructure services and organization users directly.
Google has pioneered cloud services in Gmail, Google docs and Google earth among
other applications. In 2008, Google announced the GAE web application platform which
is becoming common platform for many small cloud service providers.
GAE Architecture:
The Google Cloud architecture defines basic blocks that are used for delivering
cloud services to the cloud application providers.
The major building blocks of Google Cloud platform that has been used for
deliver cloud services, include GFS, MapReduce, Chubby, BigTable.
The overall architecture of Google Cloud is shown in the following figure.
Google App Engine uses Google infrastructure for running user programs. It also
makes use of various software components. The front end of these components uses
application framework like ASP, JSP, and J2EE. The GAE also supports
development languages like Java and Python. This front end is considered as
dynamic web serving infrastructure that supports common technology.
GAE provides platform for developing user applications. This platform includes 5
functional components. The functionalities of these components are described
below.
1. Data Store: This component provides object oriented services, distributed services
and data storage services to the users depending on BigTable technique. It also
performs secure data management operation.
2. The Application Runtime Environment: This component provides a scalable web
programming and execution platform for running user applications. Java and python,
the two programming development languages supported by application runtime
environment.
3. The Software Development Kit (SDK): This component develops local applications
and also allows the users to text execute and runs the application code.
6. GAE applications:
Free GAE services to all Gmail account owners
Google Search Engine, Google Docs, Google Earth and Gmail, all these
applications can support large no of users simultaneously
These applications run in Google data centres. Inside of each centre, there might
be thousands of server nodes to form different clusters. Each cluster can run
multipurpose servers.
Amazon has been a leader in providing public cloud services. It provides cloud
services through AWS.
Amazon Web Services(AWS) cloud offers wide range of infrastructure
services(IaaS). It provides high reliable and high scalable infrastructure for deploying
web scale solution. The architecture of AWS shown below
EC2: EC2 stands for Elastic Cloud Computing. It is a virtual machine hosted in the
cloud. It offers a virtualized platform for running cloud applications on virtual
machines.
S3: S3 stands for Simple Storage Service. It facilitates the user with object oriented
storage services.
EBS: EBS stands for Elastic Block Store. It is a virtual disk for the virtual machine
like our C or D drives. We can create any no of disks, each of any size. It makes the
use of block storage interface to substantiate the traditional application.
SQS: SQS stands for Simple Queuing Service which ensures reliability while
performing message exchange from one process to other process.
SQS and SNS (Simple Notification Service) services are implemented in AWS cloud
Compared to Google, Amazon provides more flexible cloud computing platform for
developers to develop their applications.
1. Windows Azure
2. Azure service platform
3. User applications.
1. Windows Azure: It offers a cloud platform built on windows OS and based on
Microsoft virtualization technology. Applications are installed on VMs deployed on
the data centre servers. On the top of the infrastructure various services are built for
different cloud applications.
1. Azure Service platform: It controls the servers, storage and network resources of
data centres. The various cloud level services which are included at the top of
infrastructure as follow:
Live service: It allows the uUsers can visit Microsoft Live applications and
apply the data involved across multiple machines concurrently.
.NET service: It is a package that supports application development on local
hosts and execution on cloud machines.
SQL Azure: This function makes it easier for users to visit and use the
relational database associated with the SQL server in the cloud.
ShapePoint service: This provides a scalable and manageable platform for
users to develop their special business applications in upgraded web services.
Dynamic CRM service: This provides software developers a business
platform in managing CRM applications in financing, marketing and sales and
promotions.
2. User Applications: This provides traditional Microsoft software applications such
as Windows Live online, Office Live, Exchange online, SharePoint online and
dynamic CRM online, which can be interacted with all cloud services in Azure
M. Purnachandra Rao, Assoc. Prof. Dept. of IT, KITS. Page 16
platform. The Azure service applications allow users to integrate the cloud
applications with other platforms or third party clouds.
The following figure shows 6 layers range from hardware, network, and collocation to
infrastructure, platform and software applications. The top 3 service layers are SaaS, PaaS
and IaaS. The bottom 3 layers are related to physical requirements. The bottommost layer
provides Hardware as a Service (HaaS). The next layer is Network as a Service (NaaS) which
is used to interconnect all the hardware components. The next layer Location as a Service
(LaaS) which provides collocation service to house, power and secure all the physical
hardware and network resources.
3.5.1.1 Cloud Service tasks and Trends: Most of the cloud services are used for business
applications. For example, CRM is heavily used in business promotion, direct sales and
marketing services. PaaS is provided by Google, Facebook and others. However IaaS is
provided by Amazon, Windows Azure and RackRack among others. Collocation service
require multiple cloud providers to work together to support supply chain manufacturing.
3.5.1.2 Software Stack for Cloud Computing: A software stack is group of programs that
work in order to produce common goal. It may refers to any set of apps that work in a
specific order towards a common goal. The system has to be designed to meet goals like HT,
HA, and fault tolerance. Physical or virtual servers can be used making the platform more
flexible and be able to store and utilize large amount of data.
3.5.1.3 Runtime Support Services: There are some runtime supporting services in the cloud
computing environment. For example cluster monitoring is used to collect the runtime status
of the entire cluster. The runtime support system keeps the cloud cluster working properly
with high efficiency.
Demand-driven method
Event-driven method
Popularity-driven method
3.5.2.5 Popularity-Driven Resource Provisioning: In this method, The Internet searches for
popularity of certain apps and creates extra instances if the popularity has risen.
3.5.2.7 Provisioning of Storage Resources: The data in Cloud Computing is stored in the
clusters of the cloud provider and can be accessed anywhere in the world. Example: email.
For data storage, distributed file system, tree structure file system, and others can be used.
Example: GFS, HDFS, MS-Cosmos. This method provides a convenient coding platform for
the developers.
The managers provide a public API for users to submit and control the VMs
3.5.3.3 VM Manager: It is a link between the gateway and resources. The physical resources
aren’t shared directly, but in a virtualized method. The VMs themselves become the actual
resources. Ex: OpenNebula (an OS). Users submit VMs on physical machines using
hypervisors, which enables the running of several operating systems on the same host
concurrently.
No single cloud infrastructure provider will be able to establish data centres at all
possible locations throughout the world.
As a result, cloud application service(SaaS) providers will have difficulty in meeting Qos
expectations for all their consumers.
Hence they would like to make the use of services of multiple cloud infrastructure
service providers who can provide better support for their specific consumer needs.
This kind of requirement often arises in enterprises with global operations and
applications such as Internet service, media hosting, and Web 2.0 applications.
Lacking of trust between service providers and clients has been a major problem in the field
and much more since the advent of ecommerce. Cloud platforms are a concern for some users
for lack of privacy protection, security assurance, and so on. All these can be solved with a
technical approach.
The security models are usually based on various SLAs between providers and users.
3.6.1.1 Basic Cloud Security: The three basic cloud security enforcements are expected
Security defences are needed to protect all cluster servers and data centres. Here are
some cloud components that demand special security protection, given as
Protection of servers from malicious software attacks such as worms, viruses, and
malwares
Protection of Hypervisors or VM monitors from software based attacks and
vulnerabilities.
Protection of VM and monitors from service disruption and DoS attacks.
Protection of data and information from theft, corruption, and natural disasters
providing authentication and authorised access to critical data and servers
3.6.1.2 Security Challenges in VMs: The VMs can introduce several security challenges
which include network attacks, DoS attacks, spyware, malware, rootkits etch. In cloud
environment, newer attacks may result from hypervisor malware, guest hopping and
hijacking. Some passive attacks my steal sensitive data or passwords and some active attacks
may manipulate kernel which will cause major damage to cloud servers.
3.6.1.5: Privacy and Copyright Protection: There are several security features desired in a
secure cloud, some of them are
Establish trust between users and providers through SLAs and reputations systems
Effective user identity management and data access management
Single sign-on and single sign-off to reduce security enforcement overhead
Audition and copyright compliance through proactive enforcement
Shifting of control of data operations from the client environment to cloud providers.
Protection of sensitive and regulated information in a shared environment.
Data security is the weakest link in all cloud models. So we need new cloud security
standards to apply common API tools to cope with the data lock-in problem and network
attacks or abuses. Security threats may be aimed at VMs. guest OSs, and software running
on top of the cloud. Even IDS can attempt to stop the attacks before they take effects, the
network anomaly detection reveals abnormal traffic patterns such as unauthorised episodes of
TCP connection sequences, against normal traffic etc. So, distributed IDS is needed to
defence various types of intrusions.
3.6.2.1 Distributed Defence against DDoS Flooding Attacks: A DDoS defence system
must be designed to cover multiple network domains in a cloud platform. The DDoS causes
an abnormal surge in the network traffic by a hidden attacker which leads of the crash of the
service/website or disk exhaustion or connection saturation.
3.6.3.1 Data Integrity and Privacy Protection: In cloud users desire a software
environment which is needed to provide application software for MapReduce, BigTable,
EC2, Hadoop and also privacy protection software for using cloud. Such software should
offer the following feature:
Special APIs for authenticating users and sending e-mail using commercial accounts
It allows shared data to be protected against deletion, alteration or copyright violation
Fine-grained access control to protect data integrity and deter hackers or intruders
It establishes VPN channels between resource sites so as to perform secure data
transmissions.
3.6.3.2 Data Coloring and Cloud Watermarking: Data coloring means labelling each data
object by a unique color. In cloud environment data sets and file sharing may effect privacy
and security. To avoid such situations, trusted software that offers rich set of tools to create
cloud application over protected data sets. In cloud two software schemes that are used to
protect the software from getting distributed in cloud environment as
2. Data Coloring: It assigns unique colors to each data object. Data coloring is a security
technique that involves adding a color code to data to indicate its sensitivity level. Theis data
coloring can be used to classify data into different sensitivity levels such as confidential,
internal or public.
However, data coloring and watermarking are not complete solution to data security and
hence they should be used in conjunction with other security techniques, such as data
encryption in cloud environment.
3.6.3.3 Data Lock-in Problems and Solutions: Once the data is moved into the cloud, users
cannot easily extract their data and programs from the cloud servers to run on another
platform. This is known as data lock-in. The solution possible here is to build platform-
independent APIs where migration from one platform to another is easier.
SOA: SOA is defined as the process of exchanging data through different applications. It is a
method that helps in integrating business processes by dividing large applications into smaller
modules known as services.
1. Logical View: SOA defines an abstract, logical view of a program, business processes,
databases etc., as to perform business level operations. It also specifies how message
exchange takes place between provider agents and requester agents.
2. Message Orientation: Internal structure of provider agent and requester agents comprises
of features like process structure, database structure and implementation language. Such
features are extracted away from SOA in simple term while using SOA discipline the user
should not consider about the way the agent implementing service is built. One of the
advantages of this is the legacy system. Thus, by avoiding the knowledge of internal
structure of agent, a user can include any software component/application in accordance with
the formal service definition.
a) Granularity: Service makes use of less number operations along with large and complex
messages.
1. Resource Identification via URLs: The REST web service defines set of resources
for identifying targets which want to interact with their client. ‘Resources’ are the
key abstractions of REST web service. A resource is nothing but a unique name or
named information. Example document and images are termed as resources. Each
resource is associated with an Uniform Resource Identifier (URI). A URI provides
global addressing space for resources which interacts with components and
facilitating service discovery.
2. Uniform Constrained Interface: HTTP standards as well as client/server cacheable
protocols provide interaction with REST full web services. Moreover to manipulate
resources four operations are used. These are,
a) PUT: It allows creation of new resource.
b) GET: It is used for retrieving the current state or resources.
c) POST: It allows transfer of resources to new state.
d) DELETE: It destroys the created resources
3. Self-Descriptive Message: REST message from their representation. Due to this
reason, the message content can be accessed using various formats like plain text
format HTML, MIME, JSON, PDF, JPEG and so on. Moreover the resource
metadata is used for various purposes like cache control, detecting transmission error,
message authentication etc.
4. Stateless Interaction: REST provides stateless interactions. This helps in
Improving visibility
Ensure reliability by recovering from failure rate
Increasing scalability
However such interactions decrease the network performance of the system by including
repetitive data.
a) SOAP (Simple Object Access Protocol): It is defined as a simple XML based protocol
which permits applications to exchange XML based messages over computer networks using
HTTP (Hyper Text Transfer Protocol). Or SOAP is mechanism in which object accessing is
carried out in a simple way thereby allowing applications to call remote methods.
Merits of SOAP:
Demerits of SOAP
Advantages of UDDI:
i) Public
ii) Private
i) Public: Public registry is an open source UDDI registry that can be utilized by everyone to
register or access the business and service information on the web. It is a virtual system built
on multiple nodes called “UDDI Business Registry” (UBR) where every node provides same
information, quality of service through synchronized replication of the data.
ii) Private: Private registry is an exclusive or reserved registry that can be accessed only by
the organization or group who owns it or by people who has the permission from the owner.
It also utilizes the same replicated nodes system as public registry. But, it requires additional
resources to ensure security and integrity of data from unauthorized users.
c) WSDL: WSDL stands for “Web Service Description Languages”. It is an XML based
language that defines the web services. It is a specification defining how to describe and
locate web services in a common XML language. WSDL 2.0 is recent version of
specification. It specifies how the interaction takes place between client and a web service,
how to encode parameters and return values in a message and which protocol to be used for
the data transmission. WSDL document contains the following details such as,
In WSDL, services are defined as collection of network end points or ports. For the purpose
of reuse of definitions, abstract definitions of messages and ports are separated from their
concrete use. Messages are defined as abstract descriptions of data and port types are defined
as abstract collection of operations. The specifications of protocol and data format for
specific port type creates a reusable binding in which protocol and message format are
bounded by operations and messages.
To provide web services over the internet, WSDL can be used along with SOAP and XML
schema. A client program which is connected to the web service can determine the functions
available on the server by reading WSDL. Thus, WSDL describes the entire mechanism
involved in the transfer of data from client to the web service.
M. Purnachandra Rao, Assoc. Prof. Dept. of IT, KITS. Page 25
Enterprise Multitier Architecture:
The traditional enterprise multitier architecture uses two-tier client/server model. This
architecture has been designed in order to encapsulate and integrate distinct functionalities of
enterprise applications. This architecture uses presentation layer, application layer and data
management layer to perform logical processing. However this model deals with the
following drawbacks,
To overcome the above issues, three tier system architecture has been designed. The three
tier architecture is an extension of two tier client/server architecture. The three tier
architecture is shown as
The above architecture separates the application logic from the resource management layer.
The three tier architecture consists of the following three layers,
1. Presentation Layer: Presentation layer is the top most tier of the three tier enterprise
architecture. This layer provides information to the external entities and also allows their
interaction with the system. This interaction can be done by submitting the requested
operation and by generating responses to and from the system and external entities.
Due to excessive use of internet, the three tier architecture is extended as N-tier architecture.
This N-tier architecture provides the following enhancements,
WSI protocol Stack: WSI protocol stack supports various features like
i) Transport protocols
ii) Message/extensions and invocations
iii) Description
iv) Quality of Service(QoS)
v) Process and Composition
i) Transport Protocols: WSI protocol stack uses various transportation protocols like
HTTP, SMTP, FTP, IIOP etc.
ii) Message/Extensions and Invocations: The WSI protocol stack defines a Simple Object
Access Protocol (SOAP). It is a web service that specifies the non-functional requirements
and quality of service in the messages. It is a reliable protocol that defines transaction
services like WS-Addressing, WS-Transaction and WS-Coordination while transmitting
messages.
In SOAP data/messages can be encoded using a special mark-up language i.e XML. The
messages are stored in between two tags i.e start and end tags. Since XML is used for
performing transmission, overhead can occur due to increase in transmission rate. Data
processing in XML comprises of calculations, description of memory and complete size of
data, number of data fields, limited profile devices like PDAs and smart phones.
iii) Description: The WSI protocol defines various message description services like Web
Service Description Language(WSDL), Universal Description Discovery Integration (UDDI),
WS-Resource properties.
iv) Quality of Service (QoS): The SOAP based beb service used on protocol stack which
provides reliable communication using various policies like WS-security, WS-reliable
v) Process and Composition: WSI protocol stack allows composition of software using
reusable and loosely coupled software components. However to provide interaction between
the web service a standard executable language called Business Process Execution Language
(BPEL4) is used. It is an XML based language present at top of web service specification. It
defines and manages the web processes. It helps the organization to automate the business
processes.
Open Grid Service Architecture (OGSA) is a service oriented architecture. It defines set of
common standards for grid based applications. These standards specify how different
components of heterogeneous grid system communicate with each other. The primary aim of
OGSA is to provide a well-defined architecture for QoS features of grid system like resource
management, problem determination etc. in OGSA register, computational tasks and data
resources are nothing but service. These services are considered as the basic blocks of
OGSA-based grid.
ii) Execution Management Services: It deals with various task management issues like
placements, provisioning and life cycle management services.
iii) Data Management Services: It facilitates data management capabilities like transmission
of data (as per the users request), transformation of data into new formats, run queries and
perform updations, maintenance of replicated copies of data. These services deals with issues
like data consistency, integrity and persistency.
iv) Resource Management Services: It manages the grid resources in the following
manner:
It also provides capabilities to monitor resources, deploy and configure the applications so as
to meet the required QoS. The OGSA resource management service contains the information
model and data model of grid resources and services.
vi) Information Services: It provides efficient access to the information present on grid and
its resources. The term information is considered as either dynamic or static. Dynamic
data/events are used for monitoring the status whereas the static data is used in discovery.
vii) Self Management Services: It provides service-level attainment to set of services with
automation. This service decreases the code and also reduces the system management
complexity.
Web Services: The web services defined in this architecture provides support to dynamic
systems that are loosely coupled. There by thus does not satisfy all the needed grid
requirements of distributed system.
Beside this, a network-wide pointer is also used. This pointer points to grid service instance
to make them accessible to remote client applications.
Web Service Resource Framework (WSRF): It is a generic frame work which allows joint
cooperation between grid and web service communities. Beside this, various other
specifications like WS- Addressing and WS-Notification are also included. This framework
allows access to persistent resources. This helps in implementing and managing multiple
services.
Resources contain data terms these data terms are called resource properties. It includes
information about service data value, current service state, meta data, value information
required for managing states etc.
i) Enterprise bus
ii) Publish subscribe model
iii) Queuing and messaging systems
i) Enterprise bus: The “Enterprise Service Bus” (ESB) integrates various components that
allow communication between the service requesting messages in different styles like SOAP,
REST or Java EMI. The messages are send onto bus by injecting a message which contain
sufficient information regarding the services that must be delivered to destination. This is
done to ensure accurate delivery. Consider the below figure,
In the above figure, service is shown as filled ovals. These are called as client interfaces.
The message bus is represented as connecting service as [↔] various software or hardware
can also be used for sending and receiving messages.
A single broker can also be implemented as managers of queues. This is nothing but MQ or
“Message Queue”. The use of MQ in parallel computing that, it associates master with
workers in “farm” model. Here, a “master” defines a work item and place it in queue to
allow multiple workers to access it.
iii) Queuing and Messaging Systems: The various service / standards used in queuing and
messaging systems are as follows,
a) Java Message Service: Java Message Service (JMS) is considered as one of the
useful service in queuing and messaging system. This messaging system describes a
collection of interfaces that allow communication semantics in pub or sub and
queuing systems.
b) Advanced Message Queuing Protocol (AMQP): It allows wire-format
communications.
c) Mule MQ: It is a messaging framework defined in ESB system. This messaging
framework is developed using Java programming language. It is developed to
simplify the integration of various existing systems like JMS, Web Services, SOAP,
JDBC and traditional HTTP. It supports protocols like POP, IMAP, FTP, RMI,
SOAP, SSL and SMTP.
d) ACTIVE MQ: It is open source message broker of Apache.
e) WebSpher MQ: It offers an enterprise bus. It is mainly used by IBM.