Unit-1 Wssoa
Unit-1 Wssoa
Distributing Computing:
Distributing Computing is a type of computing in which different
components and objects comprising an application can be located on
different computers connected to a network. Figure 1.1 shows a distributed
computing model that provides an infrastructure enabling invocations of
object functions located anywhere on the network. The objects are
transparent to the application and provide processing power as if they were
local to the application calling them.
Object
TCP/IP
User
TCP/IP
Applicati Internet Object
on
TCP/IP
Object
Client-Server Applications
Dynamic invocation interface. CORBA clients can both use static and
dynamic methods invocations. They either statically define their
method invocations through stubs at compile time, or have the
opportunity to discover objects’ methods at runtime.
Limitations:
some key factors, which affected the success of CORBA evident while
implementing CORBA-based distributed applications, are as follows:
Java RMI uses Java Remote Method Protocol (JRMP) as the inter-
process communication protocol, enabling Java objects living in different
Java Virtual Machines (VMs) to transparently invoke one another’s
methods. Because these VMs can be running on different computers
anywhere on the network, RMI enables object-oriented distributed
computing. RMI also uses a reference-counting garbage collection
mechanism that keeps track of external live object references to remote
objects (live connections) using the virtual machine.
Figure 1.4 depicts the architectural model of a Java RMI-based applica-
tion solution.
JRMP
RMI client. The RMI client, which can be a Java applet or a stand-
alone application, performs the remote method invocations on a
server object. It can pass arguments that are primitive data types or
serializable objects.
RMI stub. The RMI stub is the client proxy generated by the rmi
compiler (rmic provided along with Java developer kit—JDK) that
encapsulates the network information of the server and performs
the delegation of the method invocation to the server. The stub also
marshals the method arguments and un marshals the return values
from the method execution.
RMI skeleton. The RMI skeleton, which also is generated using the RMI
compiler (rmic) receives the invocation requests from the stub and
processes the arguments (unmarshalling) and delegates them to the RMI
server. Upon successful method execution, it marshals the return values
and then passes them back to the RMI stub via the RMI infrastructure.
RMI server. The server is the Java remote object that implements the
exposed interfaces and executes the client requests. It receives incom-
ing remote method invocations from the respective skeleton, which
passes the parameters after unmarshalling. Upon successful method
execution, return values are sent back to the skeleton, which passes
them back to the client via the RMI infrastructure.
limitations:
■■ RMI is limited only to the Java platform. It does not provide lan-
guage independence in its distributed model as targeted by CORBA.
Microsoft DCOM
MOM
Application A Infrastructure Application B
Adapter API Adapter API
Persistence
■■ Security
Integration tier. The Integration tier deals with connecting and com-
municating to back-end Enterprise Information Systems (EIS), data-
base applications and legacy applications, or mainframe applications.
■■ Most of these protocols are designed to work well within local net-
works. They are not very firewall friendly or able to be accessed
over the Internet.
Service-Oriented Architecture:
Service-Oriented Architecture (SOA) is an architectural approach in which
applications make use of services available in the network. In this architecture, services are provided
to form applications, through a communication call over the internet.
SOA allows users to combine a large number of facilities from existing services to form
applications.
SOA encompasses a set of design principles that structure system development and provide
means for integrating components into a coherent and decentralized system.
SOA based computing packages functionalities into a set of interoperable services, which can
be integrated into different software systems belonging to separate business domains.
There are two major roles within Service-oriented Architecture:
Service provider: The service provider is the maintainer of the service and the organization that
makes available one or more services for others to use. To advertise services, the provider can publish
them in a registry, together with a service contract that specifies the nature of the service, how to use
it, the requirements for the service, and the fees charged.
Service consumer: The service consumer can locate the service metadata in the registry and develop
the required client components to bind and use the service.
Services might aggregate information and data retrieved from other services or create workflows of
services to satisfy the request of a given service consumer. This practice is known as service
orchestration Another important interaction pattern is service choreography, which is the coordinated
interaction of services without a single point of control.
Components of SOA:
Guiding Principles of SOA:
Standardized service contract: Specified through one or more service description documents.
Loose coupling: Services are designed as self-contained components, maintain relationships that
minimize dependencies on other services.
Abstraction: A service is completely defined by service contracts and description documents. They
hide their logic, which is encapsulated within their implementation.
Reusability: Designed as components, services can be reused more effectively, thus reducing
development time and the associated costs.
Autonomy: Services have control over the logic they encapsulate and, from a service consumer point
of view, there is no need to know about their implementation.
Discoverability: Services are defined by description documents that constitute supplemental
metadata through which they can be effectively discovered. Service discovery provides an effective
means for utilizing third-party resources.
Composability: Using services as building blocks, sophisticated and complex operations can be
implemented. Service orchestration and choreography provide a solid support for composing services
and achieving business goals.
Advantages of SOA:
Service reusability: In SOA, applications are made from existing services.Thus, services can be
reused to make many applications.
Easy maintenance: As services are independent of each other they can be updated and modified
easily without affecting other services.
Platform independant: SOA allows making a complex application by combining services picked
from different sources, independent of the platform.
Availability: SOA facilities are easily available to anyone on request.
Reliability: SOA applications are more reliable because it is easy to debug small services rather than
huge codes
Scalability: Services can run on different servers within an environment, this increases scalability
Disadvantages of SOA:
High overhead: A validation of input parameters of services is done whenever services interact this
decreases performance as it increases load and response time.
High investment: A huge initial investment is required for SOA.
Complex service management: When services interact they exchange messages to tasks. the number
of messages may go in millions. It becomes a cumbersome task to handle a large number of
messages.
Practical applications of SOA: SOA is used in many ways around us whether it is mentioned or not.
SOA infrastructure is used by many armies and air force to deploy situational awareness systems.
SOA is used to improve the healthcare delivery.
Nowadays many apps are games and they use inbuilt functions to run. For example, an app might
need GPS so it uses inbuilt GPS functions of the device. This is SOA in mobile solutions.
SOA helps maintain museums a virtualized storage pool for their information and content.
Web Services:
Web services are self-describing and modular business applications that
expose the business logic as services over the Internet through
programmable interfaces and using Internet protocols for the purpose of
providing ways to find, subscribe, and invoke those services.
Airline Reservation System
Wireless Device
Invoke Services
Hotel Reservation System
PDA Service Requestor
Travel Reservation Services Provider
Organizat
ion Credit Card
Payment
System
Figure 2.1 An example scenario of
Web services.
The following is a typical scenario:
1. The Travel service provider deploys its Web services by exposing the
business applications obtained from different travel businesses like
airlines, car-rental, hotel accommodation, credit card payment, and
so forth.
■■ Web services are based on XML messaging, which means that the
data exchanged between the Web service provider and the user are
defined in XML.
Web applications enable interaction between an end user and a Web site,
while Web services are service-oriented and enable application- to-
application communication over the Internet and easy accessibility to
heterogeneous applications and devices. The following are the major
technical reasons for choosing Web services over Web applications:
Invoke Service
Figure 2.3 Web services operational model, showing roles and relationships.
ebXML
Security. Web services are exposed to the public using http-based pro-
tocols. As Web services is publicly available, it must be implemented
using authentication and authorization mechanisms and using SSL-
enabling encryption of the messages for securing the usage. Adopt-
ing open security standards like SAML, XML Encryption, XML
Signature, or XACML may be a solution.