0% found this document useful (0 votes)
12 views16 pages

AWS Unit 2

The document discusses Service-Oriented Architecture (SOA) and its components, emphasizing the benefits of reusability, efficient maintenance, and adaptability in software development. It also covers web services, RESTful APIs, and the Publish-Subscribe model, highlighting their roles in enabling interoperability and asynchronous communication in distributed systems. Additionally, it introduces Systems of Systems (SoS) and their types, illustrating how independent systems collaborate to achieve common goals.

Uploaded by

Leela Rallapudi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views16 pages

AWS Unit 2

The document discusses Service-Oriented Architecture (SOA) and its components, emphasizing the benefits of reusability, efficient maintenance, and adaptability in software development. It also covers web services, RESTful APIs, and the Publish-Subscribe model, highlighting their roles in enabling interoperability and asynchronous communication in distributed systems. Additionally, it introduces Systems of Systems (SoS) and their types, illustrating how independent systems collaborate to achieve common goals.

Uploaded by

Leela Rallapudi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

AWS for Cloud Computing

Unit II
Cloud Enabling Technologies
Service Oriented Architecture (SOA)
What is a Service?
A service is a computing resource, such as software, storage, or networking, that's
delivered over the internet. These services are hosted by third-party providers and
can be accessed by users through the internet.
Service-oriented architecture (SOA) is a method of software development that uses
software components called “ Services” to create business applications. Each
service provides a business capability, and services can also communicate with each
other across platforms and languages. Developers use SOA to reuse services in
different systems or combine several independent services to perform complex tasks.
For example, multiple business processes in an organization require the user
authentication/ login functionality. Instead of rewriting the authentication code for
all business processes, you can create a single authentication service and reuse it for
all applications. Similarly, almost all systems across a healthcare organization, such
as patient management systems and electronic health record (EHR) systems, need to
register patients. These systems can call a single, common service to perform the
patient registration task.

Benefits of service-oriented architecture


Service-oriented architecture (SOA) has several benefits over the traditional
monolithic architectures in which all processes run as a single unit. Some major
benefits of SOA include the following:
• Faster time to market
Developers reuse services across different business processes to save time and costs.
They can assemble applications much faster with SOA than by writing code from
scratch.
1
• Efficient maintenance
It’s easier to create, update, and debug small services than large code blocks in
monolithic applications. Modifying any service in SOA does not impact the overall
functionality of the business process.
• Greater adaptability
SOA is more adaptable to advances in changing technology. You can change your
applications efficiently and cost effectively. For example, healthcare organizations
can use the functionality of older electronic health record systems in newer cloud-
based applications.
Basic principles of service-oriented architecture (SOA)
There are no well-defined standard guidelines for implementing service-oriented
architecture (SOA). However, some basic principles are common across all SOA
implementations.
1. Interoperability
Each service in SOA includes description documents that specify the
functionality of the service and the related terms and conditions. Any client
system can use a service, independent of the different platforms or
programming languages. For instance, business processes can use services
written in both C# and Python.
2. Loose coupling
Services in SOA should be loosely coupled, having as little connection as
possible on external resources such as data models or information systems.
3. Abstraction
Clients or service users in SOA need not know the service's code logic or
implementation details. To them, services should appear like a black box.
Clients get the required information about what the service does and how to
use it through service contracts and other service description documents.
4. Granularity
Services in SOA should have an defined size and scope, ideally combining
one discrete business function per service. Developers can then use multiple
services to create a new single service for performing complex operations.
Components in service-oriented architecture (SOA)
There are 7 main components in service-oriented architecture (SOA).
1. Service
Services are the basic building blocks of SOA. They can be privately available
only to internal users of an organization or public accessible over the internet
to all.

2
2. Service implementation
The service implementation is the code that builds the logic for performing
the specific service function, such as user authentication or bill calculation.
3. Service contract
The service contract defines the nature of the service and its associated terms
and conditions, such as the prerequisites for using the service, service cost,
and quality of service provided.
4. Service interface
In SOA, other services or systems communicate with a service through its
service interface. The interface defines how you can use the service to perform
activities or exchange data. For example, even users with little or no
understanding of the underlying code logic can use a service through its
interface.
5. Service provider
The service provider creates, maintains, and provides one or more services
that others can use. Organizations can create their own services or purchase
them from third-party service vendors.
6. Service consumer
The service consumer requests the service provider to run a specific service.
It can be an entire system, application, or other service. The service contract
specifies the rules that the service provider and consumer must follow when
interacting with each other. Service providers and consumers can belong to
different departments, organizations, and even industries.
7. Service registry
A service registry, or service repository, is a network-accessible directory of
all available services. It stores service description documents from service
providers. Service consumers can easily discover the services they need by
using the service registry / repository.

SOA is related to early efforts on the architecture style of large-scale distributed


systems, particularly Representational State Transfer (REST).

Web Services
A web service is a set of open protocols and standards that allow data to be
exchanged between different applications or systems. Web services can be used by
software programs written in a variety of programming languages and running on
a variety of platforms to exchange data via computer networks such as the Internet
in a similar way to inter-process communication on a single computer.

3
Any software, application, or cloud technology that uses standardized web
protocols (HTTP or HTTPS) to connect, interoperate, and exchange data messages
commonly XML (Extensible Markup Language) across the internet is considered
a web service.
The diagram depicts a very simplified version of how a web service would
function. The client would use requests to send a sequence of web service calls to
a server that would host the actual web service.

1. First, they allow for interoperability across different platforms and


programming languages.
2. Second, they are based on well-known and vendor-independent standards
such as HTTP, SOAP, XML, and WSDL.
3. Third, they provide an intuitive and simple way to connect heterogeneous
software systems, enabling the quick environment.
4. Finally, they provide the features required by enterprise business applications
to be used in an industrial environment.
Components of Web Service
XML and HTTP is the most fundamental web services platform. The following
components are used by all typical web services:
SOAP (Simple Object Access Protocol)
SOAP stands for “Simple Object Access Protocol.” It is a transport-independent
messaging protocol. SOAP is built on sending XML data in the form of SOAP
Messages. A document known as an XML document is attached to each message.
Only the structure of the XML document, not the content, follows a pattern. The

4
best thing about Web services and SOAP is that everything is sent through HTTP,
the standard web protocol.

Fig: A simple web service interaction among provider, user, and the UDDI registry.
UDDI (Universal Description, Discovery, and Integration)
UDDI is a standard for specifying, publishing and discovering a service provider’s
online services. UDDI provides a repository where WSDL files can be hosted so
that a client application can discover a WSDL file to learn about the various actions
that a web service offers. As a result, the client application will have full access to
the UDDI, which serves as a database for all WSDL files.
The UDDI registry will hold the required information for the online service, just
like a telephone directory has the name, address, and phone number of a certain
individual. So that a client application may figure out where it is.
WSDL (Web Services Description Language)
If a web service can’t be found, it can’t be used. The client invoking the web service
should be aware of the location of the web service. Second, the client application
must understand what the web service does in order to invoke the correct web
service. The WSDL, or Web services description language, is used to accomplish
this. The WSDL file is another XML-based file that explains what the web service
does to the client application. The client application will be able to understand
where the web service is located and how to use it by using the WSDL document.

5
REST (Representational State Transfer)
REST stands for Representational State Transfer . REST is a software
architectural style that defines the set of rules to be used for creating web services.
Web services that follow the REST architectural style are known as RESTful web
services. It allows requesting systems to access and manipulate web resources by
using a uniform and predefined set of rules. Interaction in REST-based systems
happens through the Internet’s Hypertext Transfer Protocol (HTTP).
A Restful system consists of a:
• A client who requests for the resources.
• server who has the resources.
It is important to create REST API according to industry standards which results
in ease of development and increase client adoption.
Architectural Constraints of RESTful API
There are six architectural constraints that makes any web service are listed below:
• Uniform Interface
• Stateless
• Cacheable
• Client-Server
• Layered System
• Code on Demand
The only optional constraint of REST architecture is code on demand. If a service
violates any other constraint, it cannot strictly be referred to as RESTful.
Uniform Interface
It is a key constraint that differentiates between a REST API and a Non-REST API.
It suggests that there should be a uniform way of interacting with a given server
irrespective of device or type of application (website, mobile app).
There are four guidelines principles of a Uniform Interface are:
• Resource-Based: Individual resources are identified in requests. For
example: API/users.
• Manipulation of Resources Through Representations: The client has
a representation of the resource and it contains enough information to
modify or delete the resource on the server, provided it has permission to
do so. Example: Usually user gets a user ID when the user requests a list
of users and then uses that ID to delete or modify that particular user.
• Self-descriptive Messages: Each message includes enough information
to describe how to process the message so that the server can easily
analyze the request.

6
• Hypermedia as the Engine of Application State (HATEOAS): It need
to include links for each response so that client can discover other
resources easily.
Stateless
It means that the necessary state to handle the request is contained within the
request itself and server would not store anything related to the session.
Cacheable
Every response should include whether the response is cacheable or not and for
how much duration responses can be cached at the client side.
Client-Server
REST application should have a client-server architecture. A Client is someone
who is requesting resources and are not concerned with data storage, which remains
internal to each server, and server is someone who holds the resources and are not
concerned with the user interface or user state. Client doesn’t need to know
anything about business logic and server doesn’t need to know anything about
frontend UI.
Layered system
An application architecture needs to be composed of multiple layers. Each layer
doesn’t know anything about any layer other than that of immediate layer and there
can be lot of intermediate servers between client and the end server. Intermediary
servers may improve system availability by enabling load-balancing and by
providing shared caches.
Code on demand
It is an completely optional feature. According to this, servers can also provide
executable code to the client.

Systems Of Systems (SOS)


❖ SOS is a Two or more systems that are separately defined but operate
together to perform a common goal.
❖ A 'Systems of Systems' (SoS) refers to the integration of multiple
independent and operable constituent systems that are networked/ worked
together for a certain period of time to achieve a higher goal.
❖ It can be categorized as directed, collaborative, virtual, or acknowledged,
depending on the management and collaboration structure.
❖ They often operate independently but interact in different ways.
❖ Example:
An airplane, which is a large and complex system, is a specific example of
SOS. Many different systems and devices all have to work together to

7
operate different parts os the palne but can only work when all the essential
systems work together.

There are several types of systems of systems (SoS) based on their characteristics
and how they operate. Here are some common types:

1. Directed SoS: These are centrally managed and designed with specific
objectives in mind. The constituent systems are subordinate to the central
authority, which provides overall control and coordination. Examples include
national defense systems and large-scale infrastructure projects.
2. Acknowledged SoS: In this type, the constituent systems retain their
independence but recognize that they are part of a larger SoS. There is some
central management, but it primarily focuses on coordination and integration
rather than direct control. Examples include emergency response systems and
collaborative scientific research networks.
3. Collaborative SoS: These systems operate through voluntary cooperation
among constituent systems, with no central authority. The systems collaborate
to achieve common goals, often through agreements or mutual benefits.
Examples include international trade networks and environmental monitoring
systems.
4. Virtual SoS: In a virtual system of systems, the systems involved are not
necessarily physically connected or integrated but appear as a cohesive whole
through software or communication. The interaction and coordination occur
through virtual networks or platforms. The behavior of the SoS is an emergent
property resulting from these interactions. Examples include the internet and
social media networks.

Each type of SoS presents unique challenges and opportunities in terms of


coordination, management, and achieving desired outcomes.

Publish Subscribe Model


The publish-subscribe model, also known as pub-sub, is a messaging pattern that
allows for the asynchronous exchange of messages between entities in a distributed
system. It connects the producers (publishers) with messages from the consumers
(subscribers) by using an intermediary component known as a message broker. In
this model, publishers do not know who the subscribers are, and subscribers do not
need to know about the publishers. This model is commonly used in various
applications, including event-driven systems, real-time data streaming, and
distributed systems.

8
Here’s a breakdown of the key components and functioning of the Publish-
Subscribe Model:
Key Components:
1. Publisher:
o The publisher is responsible for producing and publishing messages
or events. It sends messages to a topic or channel but does not need to
know which subscribers are receiving the message.
2. Subscriber:
o The subscriber is an entity that expresses interest in specific
messages or events. It subscribes to a particular topic or channel and
receives messages whenever they are published on that topic.
3. Broker (Message Broker):
o The broker (or message broker) is the intermediary component that
facilitates communication between publishers and subscribers. It
manages topics, channels, and message queues. The broker routes
messages from publishers to the appropriate subscribers based on their
subscriptions.
4. Topic/Channel:
o The topic (also called a channel) is a named subject or category to
which messages are sent. Subscribers express interest in one or more
topics, and publishers send messages to these topics.
How the Publish-Subscribe Model Works:
1. Publisher sends messages:
9
o The publisher sends messages to a specific topic, which is handled by
the message broker. The message is typically an event, data, or an
update relevant to a specific topic.
2. Subscriber subscribes to topics:
o The subscriber subscribes to one or more topics of interest. By
subscribing, the subscriber tells the broker that they want to receive
messages on those topics.
3. Broker routes messages:
o When the publisher sends a message to a topic, the broker checks for
all active subscribers of that topic. The broker then forwards the
message to each subscriber that has expressed interest in that topic.
4. Subscriber receives messages:
o Each subscriber that is subscribed to the topic receives a copy of the
published message. The subscriber processes or handles the message
based on the context of their system.
Example Scenario:
Imagine a news website that has different categories such as sports, politics,
entertainment, and technology. Here’s how the Pub-Sub model would work in this
case:
• The news website (publisher) writes and publishes articles (messages) under
different categories (topics).
• Users (subscribers) subscribe to specific categories they are interested in,
such as "Sports" or "Technology."
• When a new article is published, the website (publisher) doesn't need to
know who the users (subscribers) are or how many there are. It simply sends
the article to the respective topic (e.g., "Technology").
• The broker ensures that only the subscribers who have shown interest in
"Technology" will receive the article.

Basics Of Virtualization
Virtualization is a process that allows for more efficient use of physical computer
hardware and is the foundation of cloud computing.

Virtualization uses software (hypervisor) to create an abstraction layer over


computer hardware, enabling the division of a single computer's hardware
components such as processors, memory and storage into multiple virtual machines
(VMs). Each VM runs its own operating system (OS) and behaves like an
independent computer, even though it is running on just a portion of the actual
underlying computer hardware.

10
Key Concepts of Virtualization:

1. Virtual Machine (VM):


o A virtual machine is a software combination of a physical computer. It
runs its own operating system (OS) and applications, independent of
the host machine's operating system. Multiple VMs can run on a single
physical machine, each isolated/ work independent from one another.
2. Hypervisor:
o A hypervisor is the software layer that enables virtualization. It sits
between the physical hardware and the virtual machines. The
hypervisor manages the creation, execution, and monitoring of VMs.
o There are two types of hypervisors:
▪ Type 1 (Bare-metal): Runs directly on the physical hardware
(e.g., VMware ESXi, Microsoft Hyper-V, Xen).
▪ Type 2 (Hosted): Runs on top of a host operating system
(e.g., VirtualBox, VMware Workstation, Parallels).

3. Host Machine:
o The physical machine that provides the underlying hardware resources
(CPU, RAM, storage, network interfaces) to the virtual machines.
4. Guest Operating System:
o The operating system installed and running inside a virtual machine.
Each guest OS is isolated from others, even though they may share the
same physical host machine.

11
Types of Virtualizations
Virtualization is a technology that creates virtual versions of physical resources like
servers, storage devices, and networks. There are several types of virtualization, each
serving different purposes. Here are some common types:
1. Hardware virtualization: When the virtual machine software or virtual
machine manager (VMM) is directly installed on the hardware system is
known as hardware virtualization. The main job of hypervisor is to control
and monitoring the processor, memory and other hardware resources. After
virtualization of hardware system we can install different operating system on
it and run different applications on those OS.
2. Software virtualization: Software virtualization creates a computer system
complete with hardware that allows one or more guest operating systems to
run on a physical host machine. For example, Android OS can run on a host
machine that is natively using a Microsoft Windows OS, utilizing the same
hardware as the host machine does. Additionally, applications can be
virtualized and delivered from a server to an end user’s device, such as a
laptop or smartphone. This allows employees to access centrally hosted
applications when working remotely.
3. Storage virtualization: Storage can be virtualized by consolidating multiple
physical storage devices to appear as a single storage device. Benefits include
increased performance and speed, load balancing and reduced costs. Storage
virtualization also helps with disaster recovery planning, as virtual storage
data can be duplicated and quickly transferred to another location, reducing
downtime.
4. Network virtualization: Multiple sub-networks can be created on the same
physical network by combining equipment into a single, software-based
virtual network resource. Network virtualization also divides available
bandwidth into multiple, independent channels, each of which can be assigned
to servers and devices in real time.
5. Desktop virtualization: This common type of virtualization separates the
desktop environment from the physical device and stores a desktop on a
remote server, allowing users to access their desktops from anywhere on any
device. In addition to easy accessibility, benefits of virtual desktops include
better data security, cost savings on software licenses and updates, and ease
of management.

12
13
14
Virtualization Structure/ Tools and Mechanism
In general, there are three typical classes of VM architecture. Before virtualization,
the operating system manages the hardware. After virtualization, a virtualization
layer is inserted between the hardware and the operating system. In such a case, the
virtualization layer is responsible for converting portions of the real hardware into
virtual hardware. Therefore, different operating systems such can run on the same
physical machine, simultaneously. Depending on the position of the virtualization
layer, there are several classes of VM architectures, namely
the hypervisor architecture, para- virtualization and full virtualization.
1. Hypervisor and Xen Architecture
The hypervisor supports hardware-level virtualization on bare metal devices like
CPU, memory, disk and network interfaces. The hypervisor software sits directly
between the physical hardware and its OS. This virtualization layer is referred to as
either the VMM or the hypervisor. The hypervisor provides hyper calls for the guest
OSes and applications.
The Xen Architecture
Xen is an open-source hypervisor program developed by Cambridge University. Xen
is a micro-kernel hypervisor, which separates the policy from the mechanism. The
Xen hypervisor implements all the mechanisms, leaving the policy to be handled by
Domain 0, as shown in Figure. Xen does not include any device drivers natively. It
just provides a mechanism by which a guest OS can have direct access to the physical
devices.

2. Para Virtualization
Paravirtualization is the category of CPU virtualization which uses hypercalls for
operations to handle instructions at compile time. In paravirtualization, guest OS is
not completely isolated but it is partially isolated by the virtual machine from the

15
virtualization layer and hardware. VMware and Xen are some examples of
paravirtualization.

3. Full Virtualization
Full Virtualization was introduced by IBM in 1966. It is the first software solution
for server virtualization and uses binary translation and direct approach techniques.
In full virtualization, the virtual machine completely isolates the guest OS from the
virtualization layer and hardware. Microsoft and Parallels systems are examples of
full virtualization.

16

You might also like