0% found this document useful (0 votes)
10 views28 pages

Chapter 1

The document provides an overview of Service-Oriented Computing (SOC) and Service-Oriented Architecture (SOA), emphasizing the separation of software engineering from programming and the roles of application builders, service providers, and brokers. It discusses the evolution of distributed computing, the significance of web services, and the challenges faced in distributed environments, including interoperability and maintenance. Additionally, it covers the architecture and communication models of web services, highlighting their potential for cross-platform integration and business collaboration.

Uploaded by

arnieogola
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)
10 views28 pages

Chapter 1

The document provides an overview of Service-Oriented Computing (SOC) and Service-Oriented Architecture (SOA), emphasizing the separation of software engineering from programming and the roles of application builders, service providers, and brokers. It discusses the evolution of distributed computing, the significance of web services, and the challenges faced in distributed environments, including interoperability and maintenance. Additionally, it covers the architecture and communication models of web services, highlighting their potential for cross-platform integration and business collaboration.

Uploaded by

arnieogola
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
You are on page 1/ 28

BCT 2303

SERVCE ORIENTED COMPUTING


introduction
 What are SOA and SOC?
The Service-Oriented Computing (SOC) paradigm
refers to the set of concepts, principles, and
methods that represent computing in Service-
Oriented Architecture (SOA) in which software.
The main idea of SOC/SOA is to explicitly separate
software engineering from programming, to
emphasize on software engineering, and to
deemphasize on programming.
 SOC separates software development into three
independent parties: Application builders,service providers
and service brokers
SOC

• SOC is a term that describes software


systems that combine Service-Oriented
Architecture (SOA) and Business Process
Management (BPM) layers. This course
explores both SOA and BPM,
demonstrating how business and IT
concerns can be aligned. Students will gain
experience with service-oriented
development, process modeling and
execution, and securing services
Who uses SOC/&SOA?
All major computer corporations, including BEA, IBM,
Microsoft, Oracle, HP, SAP, Intel, Cisco, Juniper, SAP, and Sun
Microsystems, have moved towards the SOC paradigm.
Languages, protocols, and standards have been developed to
support and to regulate SOC applications.
all of DoD’s major IT initiatives
in the past four years were
based on the SOC paradigm, including the Army’s FCS, the
Navy’s FORCEnet, the Air Force’s JBI, and the OSD’s NCES and
GIG-ES (Paul, 2005).
ASU SOA Workshop

Banks, Universities, Airlines, retail agencies


Web Services
 Evolution of Distributed Computing:
 In the early years of computing, mainframe-based applications were
considered to be the best-fit solution for executing large-scale data
processing applications. With the advent of personal computers (PCs
the concept of software programs running on standalone machines
became much more popular in terms of the cost of ownership and
the ease of application use
 Lately, network computing gained importance, and enabling remote
procedure calls (RPCs) over a network protocol called Transmission
Control Protocol/Internet Protocol (TCP/IP) turned out to be a widely
accepted way for application software communication.
 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 distributed
computing model that provides an infrastructure enabling invocation
of object functions located anywhere on the network
Importance of Distributed Computing
• Higher performance. Applications can execute in parallel and
distribute the load across multiple servers.
• Collaboration. Multiple applications can be connected through
standard distributed computing mechanisms
• Higher reliability and availability. Applications or servers can be
clustered in multiple machines.
• Scalability. This can be achieved by deploying these reusable
distributed components on powerful servers.
• Extensibility. This can be achieved through dynamic
(re)configuration of applications that are distributed across the
network. Higher productivity and lower development cycle time
• components. Reduced cost. Because this World model provide
satfeuse once developed components that are accessible over
the network, significant cost educations can be achieved.
• Reuse. The distributed components may perform various se vices
that can potentially be used by multiple client applications.
Client-Server Applications
 a two-tier architecture model, the first (upper) tier handles the
presentation and business logic of the user application (client), and
the second/lower tier handles the application organization and its
data storage (server).
 the server in a client/server application model is a database server
that is mainly responsible for the organization and retrieval of data.
The application client in this model handles most of the business
processing and provides the graphical user interface of the
application. It is a very popular design in business applications where
the user
 the client-server model has been widely used in enterprise resource
planning (ERP), billing, and Inventory application systems where a
number of client business applications residing in multiple desktop
systems interact with a central database server.
limitations of the client-server
application model

•Complex business processing at the client side demands


robust client systems.
•Security is more difficult to implement because the
algorithms and logic reside on the client side making it
more vulnerable to hacking.
•Increased network bandwidth is needed to
accommodate many calls to the server, which can
impose scalability restrictions.
•Maintenance and upgrades of client applications are
extremely difficult because each client has to be
maintained separately
•Client-server architecture suits mostly database-oriented
standalone applications and does not target robust
reusable component oriented applications
CORBA
• The Common Object Request Broker Architecture (CORBA) is an industry
wide, open standard initiative, developed by the Object Management Group
(OMG) for enabling distributed computing that supports a wide range of
application environments. OMG is a nonprofit consortium responsible for the
production and maintenance of framework specifications for distributed and
interoperable object-oriented systems.
• differs from the traditional client/server model because it provides an object
oriented solution that does not enforce any proprietary protocols or any
particular programming language, operating system, or hardware platform
• By adopting CORBA, the applications can reside and run on any hardware
platform located anywhere on the network, and can be written in any
language that has mappings to a neutral interface definition called the
Interface Definition Language (IDL).
• CORBA also defines a collection of system-level services for handling low-
level application services like life-cycle, persistence, transaction, naming,
security, and so forth.
Java RMI

• Java RMI was developed by Sun Microsystems as the


standard mechanism to enable distributed Java objects-
based application development using the Java environment.
• . RMI provides a distributed Java application environment by
calling remote Java objects and passing them as arguments
or return values. It uses Java object serialization—a lightweight
object persistence technique that allows the conversion of
objects into streams
• 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
Microsoft DCOM

• The Microsoft Component Object Model (COM) provides


a way for Windows-based software components to
communicate with each other by defining a binary and
network standard in a Windows operating environment.
• Microsoft developed the Distributed Common Object
Model (DCOM) as its answer to the distributed computing
problem in the Microsoft Windows platform
• DCOM enables COM applications to communicate with
each other using an RPC mechanism, which employs a
DCOM protocol on the wire.
• the common limitations of DCOM: ■ Platform lock-in ■
State management ■ Scalability ■ Complex session
management issues.
Message-Oriented Middleware (MOM)
based upon a loosely coupled asynchronous
communication model where the application
client does not need to know its application
recipients or its method arguments.
MOM enables applications to communicate
indirectly using a messaging provider queue.
The application client sends messages to the
message queue (a message holding area), and
the receiving application picks up the message
from the queue
MS provides Point-to-Point and Publish/Subscribe
messaging models with the following features: ■
Complete transactional capabilities ■ Reliable
message delivery ■ Security
Challenges in Distributed Computing

• the common challenges noticed in the CORBA-, RMI-, and


DCOM-based distributed computing solutions:
• ■ Maintenance of various versions of stubs/skeletons in the client
and server environments is extremely complex in a
heterogeneous network environment.
• ■ Quality of Service (QoS) goals like Scalability, Performance, and
Availability in a distributed environment consume a major portion
f the application’s development time.
• ■ Interoperability of applications implementing different protocols
on heterogeneous platforms almost becomes impossible. For
example, a DCOM client communicating to an RMI server or an
RMI client communicating to a DCOM server.
• ■ Most of these protocols are designed to work well within local
networks. They are not very firewall friendly or able to be
accessed over the Internet.
The Role of J2EE and XML in Distributed
Computing
 promote a much more efficient platform for hosting Web-based
applications
 J2EE provides a programming model based upon Web and business
components that are managed by the J2EE application server.
 breakdown of functionalities of its logical tiers:
 Presentation tier - composed of Web components, which handle HTTP
quests/responses, Session management, Device independent content
delivery, and the invocation of business tier components. Application
tier.
 The Application tier (the Business tier) deals with the core business logic
processing, which may typically deal with workflow and automation.
The business components retrieve data from the information systems
with well-defined APIs provided by the application server.
 Integration tier - deals with connecting and communicating to
backend Enterprise Information Systems (EIS), database applications
and legacy applications, or mainframe applications.
Emergence of Web Services
• Today, the adoption of the Internet and enabling Internet-based
applications has created a world of discrete business applications, which
co-exist in the same technology space but without interacting with each
other. The increasing demands of the industry for enabling B2B,
application-to application (A2A), and inter-process application
communication has led to a growing requirement for service-oriented
architectures
• Enabling service- oriented applications facilitates the exposure of
business applications as service components enable business
applications from other organizations to link with these services for
application interaction and data sharing without human intervention
• By adopting Web technologies, the SOA model facilitates the delivery of
services over the Internet by leveraging standard technologies such as
XML.
• This promising new technology sets the strategic vision of the next
generation of virtual business models and the unlimited potential for
organizations doing business collaboration and business process
management over the Internet.
What Are Web Services
• Are based on the concept of service-oriented architecture (SOA). SOA is
the latest evolution of distributed computing, which enables software
components, including application functions, objects, and processes from
different systems, to be exposed as services. According to Gartner
research 10 (June 15, 2001),
• “Web services are loosely coupled software components delivered over
Internet standard technologies
• 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
• Based on XML standards, Web services can be developed as loosely
coupled application components using any programming language, any
protocol, or any platform.
• This facilitates delivering business applications as a service accessible to
anyone, anytime, at any location, and using any platform.
Motivation and Characteristics
 Web services enable businesses to communicate, collaborate,
conduct business transactions using a lightweight infrastructure by
adopting an XML-based data exchange format and industry
standard delivery protocols.
 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 services provide a cross-platform integration of business
applications over the Internet.
 To build Web services, developers can use any common
programming language, such as Java, C, C++, Perl, Python, C#,
and/or Visual Basic, and its existing application components.
 Web services can be used by many types of clients
Cont.
 Web services are not meant for handling presentations like HTML
context—it is developed to generate XML for uniform accessibility
through any software application, any platform, or device.
 Because Web services are based on loosely coupled application
components, each component is exposed as a service with its
unique functionality.
 Web services use industry-standard protocols like HTTP, and they can
be easily accessible through corporate firewalls.
 Web services vary in functionality from a simple request to a complex
business transaction involving multiple resources
 All platforms including J2EE, CORBA, and Microsoft .NET provide
extensive support for creating and deploying eb services.
 Web services are dynamically located and invoked from public and
private registries based on industry standards such as UDDI and
ebXML.
Why Use Web Services
 Web services can be invoked through XML-based RPC
mechanisms across firewalls.
 Web services provide a cross-platform, cross-language
solution based on XML messaging.
 Web services facilitate ease of application integration
using a lightweight infrastructure without affecting
scalability.
 Web services enable interoperability among
heterogeneous applications.
Web Services Architecture and Its
Core Building Blocks
 based on SOA and the Internet protocols.
 To provide a universal interface and a consistent solution model to define the
application as modular components, thus enabling them as exposable services
 ■ To define a framework with a standards-based infrastructure mo el and
protocols to support services-based applications over the Internet
 ■ To address a variety of service delivery scenarios ranging from e-business (B2C),
business-to-business (B2B), peer-to-peer (P2P), and enterprise application
integration (EAI)-based application communication
 ■ To enable distributable modular applications as a centralized and
decentralized application environment that supports boundary-less application
communication for interenterprise and intra-enterprise application connectivity
 ■ To enable the publishing of services to one or more public or private directories,
thus enabling potential users to locate the published services using standard-
based mechanisms that are defined by standards organizations
 ■ To enable the invocation of those services when it is required, subject to
authentication, authorization, and other security measures
Web Services Description
Language ( WSDL)
 is an XML schema based specification for describing Web services as
a collection of operations and data input/output parameters as
messages
 also defines the communication model with a binding mechanism to
attach any transport protocol, data format, or structure to an
abstract message, operation, or endpoint
 It’s a language used to describes a Web service in many ways , an
example can be obtaining a price of a book using a GetBookPrice
operation.
Web Services Communication
Models
 In Web services architecture, depending upon the functional
requirements, it is possible to implement the models with RPC-based
synchronous or messaging-based synchronous/asynchronous
communication models
 1. RPC-Based Communication Model
 defines a request/response-based,synchronous communication.
 When the client sends a request, the client waits until a response is
sent back from the server before continuing any operation. Typical to
implementing CORBA or RMI communication, the RPC-based Web
services are tightly coupled and are implemented with remote
objects to the client application
 Additionally, using RPC based communication, both the service
provider and requester can register and discover services,
respectively
Implementing Web Services
• all the components are bound dynamically only at its runtime using standard
protocols
1. The service provider creates the Web service typically as SOAP based
service interfaces for exposed business applications. The provider then
deploys them in a service container or using a SOAP runtime environment,
and then makes them available for invocation over a network
2. The service provider then registers the WSDL-based service description with a
service broker, which is typically a UDDI registry
3. The UDDI registry then stores the service description as binding templates
and URLs to WSDLs located in the service provider environment.
4. The service requester then locates the required services by querying the
UDDI registry. The service requester obtains the binding information and the
URLs to identify the service provider
5. Using the binding information, the service requester then invokes the
service provider and then retrieves the WSDL Service description for
those registered services
6. Finally, the service requester communicates with the service provider
and exchanges data or messages by invoking the available services
in the service container.
WSDL Limitations
• Declared Faults When the WSDL contains declared faults: •Specify
the /UseSerializerForFaults argument during proxy code generation.
For example: svcutil /UseSerializerForFaults *.wsdl *.xsd. If a port type of
an operation includes Fault child node, the operation must use
Document •style. •The fault part should refer to element but not type.
• Removing OperationFormatStyle.Rpc Attribute The
OperationFormatStyle.Rpc attribute is not supported if the operation
also has the fault contract attribute.
• Identical part Elements The part elements of messages cannot be
same. If the elements are identical, svcutil throws an error
• Mixed Type Messages Mixed type messages are not supported. All
message parts must refer to either element or type.
• From all these there are supported and Not supported, as indicated in
examples.
XML document structures

An XML document object is a structure that contains a


set of nested XML element structures
XML documents are formed as element trees. An XML tree
starts at a root element and branches from the root to child
elements.
It starts from root element to parent/child element book to
attributes to element title/author/year/author.
The document object structure
• At the top level, the XML document object has the
following three entries:(Entry-type-desc)
1. XmlRoot - Element -The root element of the document.
2. XmlComment - String - A string made of the concatenation of all
comments on the document, that is, comments in the document
prologue and epilog. This string does not include comments inside
document elements.
3. XmlDocType - XmlNode - The DocType attribute of the document.
This entry only exists if the document specifies a DocType. This
value is read-only; you cannot set it after the document object
has been created This entry does not appear when the cfdump
tag displays an XML element structure
The element structure
• Each XML element has the following entries(entry-type-
desc):
1. XmlName -String -The name of the element; includes the namespace prefix.
2. XmlNsPrefix- String- The prefix of the namespace.
3. XmlNsURI – String - The URI of the namespace.
4. XmlText or XmlCdata - String –
5. XmlComment -String -A string made of the concatenation of all comments
inside the XML element, but not inside any child elements.
6. XmlAttributes- Structure- All of this element's attributes, as name-value pairs.
7. XmlChildren -Array -All this element's children elements.
8. XmlParent - XmlNode
9. XmlNodes
XML DOM node structure
1. XmlName - String –
2. XmlType - String - The node XML DOM type, such as
Element or Text.
3. XmlValue - String - The node value. This entry is used only
for Attribute, CDATA, Comment, and Text type nodes.

 Note: The tag does not display XmlNode structures. If you try to dump
an Xm Node structure, the cfdump tag displays "Empty Structure."

You might also like