Module 3

Download as pdf or txt
Download as pdf or txt
You are on page 1of 28

Services and Service Oriented Architectures

Message-Oriented Middleware
Portals and Science Gateways
Services and Service Oriented Architectures
• 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 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.
A Sample Service Architecture

https://www.infoworld.com/article/2071889/what-is-service-oriented-architecture.html
Components in service-oriented architecture
• There are four main components in service-oriented architecture
(SOA).
• Service
• Service Provider
• Service Consumer
• Service Registry
Service
Services are the basic building blocks of SOA. They can be private—available
only to internal users of an organization—or public—accessible over the
internet to all. Individually, each service has three main features.
• 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.
• 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.
• Service interface: In SOA, other services or systems communicate with a
service through its service interface. The interface defines how you can
invoke the service to perform activities or exchange data. It reduces
dependencies between services and the service requester. For example,
even users with little or no understanding of the underlying code logic can
use a service through its interface.
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.

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.

Service registry
• A service registry, or service repository, is a network-accessible directory of
available services. It stores service description documents from service providers.
The description documents contain information about the service and how to
communicate with it. Service consumers can easily discover the services they
need by using the service registry.
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 and
performing integrations from scratch.
• 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 technology. You can modernize 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
• There are no well-defined standard guidelines for implementing service-oriented architecture
(SOA). However, some basic principles are common across all SOA implementations.
• 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 run a service, regardless
of the underlying platform or programming language. For instance, business processes can use
services written in both C# and Python. Since there are no direct interactions, changes in one
service do not affect other components using the service.
• Loose coupling: Services in SOA should be loosely coupled, having as little dependency as possible
on external resources such as data models or information systems. They should also be stateless
without retaining any information from past sessions or transactions. This way, if you modify a
service, it won’t significantly impact the client applications and other services using the service.
• 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.
• Granularity: Services in SOA should have an appropriate size and scope, ideally packing one discrete
business function per service. Developers can then use multiple services to create a composite
service for performing complex operations.
How does service-oriented architecture
work?
• In service-oriented architecture (SOA), services function independently and provide functionality
or data exchanges to their consumers.
• The consumer requests information and sends input data to the service. The service processes
the data, performs the task, and sends back a response.
• For example, if an application uses an authorization service, it gives the service the username and
password. The service verifies the username and password and returns an appropriate response.
Communication protocols
• Services communicate using established rules that determine data transmission over a network.
These rules are called communication protocols.
• Some standard protocols to implement SOA include the following:
• Simple Object Access Protocol (SOAP)
• RESTful HTTP
• Apache Thrift
• Apache ActiveMQ
• Java Message Service (JMS)
• More than one protocol can be used in SOA implementation.
Limitations in implementing SOA
Limited scalability
• System scalability is significantly impacted when services share many resources
and need to coordinate to perform their functionality.
Increasing interdependencies
• SOA systems can become more complex over time and develop several
interdependencies between services. They can be hard to modify or debug if
several services are calling each other in a loop. Shared resources, such as
centralized databases, can also slow down the system.
Single point of failure
• For SOA implementations with an ESB, the ESB creates a single point of failure. It
is a centralized service, which goes against the idea of decentralization that SOA
advocates. Clients and services cannot communicate with each other at all if the
ESB goes down.

https://aws.amazon.com/what-is/service-oriented-architecture/
https://www.geeksforgeeks.org/service-oriented-architecture/
Message-Oriented Middleware (MOM)
• An infrastructure that allows communication and exchanges the data
(messages).
• It involves the passing of data between applications using a
communication channel that carries self-contained units of
information (messages).
• In a MOM-based communication environment, messages are sent
and received asynchronously.
• MOM provides asynchronous communication, and it just sends the
message and performs its asynchronous operations.
• It consists of inter-application communication software that relies on
asynchronous message passing which would oppose request-
response architecture.
• So asynchronous system consists of a message queue that provides a
temporary stage so that the destination program becomes busy or
might not be connected.
• Message Queue helps in storing the message on a MOM platform.
• MOM clients can send and receive the message through the queue.
• Queues act as a central component for implementing asynchronous
interaction within MOM.
• Middleware is software that acts as a link between two or more
objects
• Middleware simplifies complex distributed applications
• It consists of web servers, application servers, and more, it is integral
to modern information technology based on XML, SOAP, service-
oriented architecture.
Block Representation of Middleware
Structure and working of the Message Queue
in MOM
• MOM enables communication between distributed components.
Middleware makes programming easier in a distributed environment. It
acts like an Operating System (OS) for distributed computing architecture
and provides transparency for the applications.
• A message-oriented middleware acts as a middleware for different
applications for example:
• MOM Deployment

• The above diagram is a message-oriented middleware-based


distributed system deployment that offers a service-based approach
to inter-process communication. The messaging of MOM is the
same as the postal service.
Roles of message-oriented middleware
1. The message distribution is enabled over complex IT systems.
2. It serves as a connector for two different applications or platforms.
3. MOM helps in implementing the delivery of messages across different IT
organizations.
4. It will create a distributed product that is compatible with the various OS.
5. MOM allows various software components can talk to each other.
6. It is a type of middleware that consists of several lines that are
connected to different applications.
7. It connects different technologies involving message origination and
delivery destination.
8. It links front and back-end systems.
Example:
• MQTT(Message Queuing for Telemetry Transport): Most MQ
systems and protocols are aimed at backed and enterprise
applications and these types of technologies are not suited for
constrained devices like sensor nodes. Such devices are
typically constrained in terms of memory, bandwidth, and
power.
• MQTT is a message-oriented protocol aimed at applications
like wireless sensor networks, M2M(mobile 2 mobile) and
ultimately the internet of things(a large number of nodes and
applications loosely through a messaging system).
• Advantages
1.Loose coupling
2.Scalability
3.Fast
4.Reliability
5.Availability
• Disadvantage
1.Requires extra component in the architecture
2.Poor programming abstraction
3.One-to-one communication for queue abstraction
4.Not implemented for some platform
Portal - Features
• Each information source gets its dedicated area on the page for displaying information – a portlet
• Variants of portals
• Mash up (web application hybrid)
• Intranet “dash boards” (for executives and managers)

• The extent to which content displayed in a uniform way depend on


• Intended user
• Purpose
• Diversity of the content
• Portal may use a search engine API to permit users to search intranet content
• Services offered
• E-mail
• News
• Stock quotes
• Information from databases
• Entertainment content
Portals and Science Gateways
• One specially designed web page at a website which brings
information together from the diverse sources in a uniform way.
• One specially designed portal represents a website that provides a
single point of access to applications and information.
• A portal is a unified gateway to several dynamic information sources.
Early Public Web Portals
• AOL
• Excite
• Netvibes
• iGoogle
• MSN
• Naver
• Lycos
• Indiatimes
• Rediff
• Sify
• Yahoo!
Classification
• Horizontal Portal: Platform to several companies in the same
economic sector or to same type of manufacturers or distributers.
• Vertical Portal (Vortal): Specialized entry point to specific market or
industry niche, subject area or interest
• Vertical Information Portals (VIPs) provide – news, editorial content,
digital publications, e-commerce capabilities
• Dynamic multimedia applications – social networking, video posting,
blogging
Types
• Personal Portals
• Government Web Portals
• Cultural Portals
• Corporate Web Portals
• Stock Portals
• Search Portals
• Tender Portals
• Hosted Web Portals
• Domain-specific Portals
Refer https://www.slideshare.net/akshaykumarr/portals-40020257 for details
Science Gateways
• A science portal or science gateway is a community-developed set of tools,
applications, and data that are integrated through a web-based portal or a
suite of applications.
• They provide scientists with access to many of the tools used in cutting-
edge research – telescopes, seismic shake tables, supercomputers, sky
surveys, undersea sensors, and more.
• Such gateways connect often diverse resources and make them easily
accessible in ways that save researchers and institutions both time and
money.
• A single portal or gateway can give thousands of users access to current,
optimized versions of analysis codes at any time.
• Codes with a large user base can be used by thousands of scientists
through a single installation, rather than through hundreds of local
installations.
• Researchers can focus on their scientific goals without having to know
how supercomputers and other data cyberinfrastructures work.
• Gateways also help foster collaborations and the exchange of ideas
among researchers.
• Science portals and gateways have shown tremendous growth in
terms of the number of users, the number of processing hours used
on HPC resources by the broader user community, and in the number
of published research papers enabled.
• Gateways can also be readily used for teaching classes, workshops,
and tutorials without having to set up codes on HPC resources, or
create new accounts for students/attendees.
Science Gateways
• Portals to scientific applications for scientific end users, hiding the infrastructure
complexity in the background
• Usually focus on a certain scientific domain, application area, geographic region, user
group, organization or similar
• Front-ends might be web-based, client software, mobile apps, APIs, CLIs, etc.
• Back-ends are typically distributed computing infrastructures (DCIs) such as clusters,
supercomputers, grids or clouds, but can also include sensors, etc.
• Additional functionalities such as data handling, workbenches, workflows, parameter
sweeps, visualization, graphs, user management, community interaction, social media,
publications, reporting, etc.
• Often have domain-specific functionalities such as naming, annotation and display of
items, metadata, item connections, access to content databases, etc.
• Example scientific domains include molecular science, proteomics, medical imaging,
astrophysics, seismology, rendering, etc.
• Example providers include academic institutes, scientific communities, research projects,
NGIs, companies, etc.

You might also like