0% found this document useful (0 votes)
127 views68 pages

Web Services: Implications For Software Engineering

The document discusses the implications of web services for software engineering. It begins by providing an overview of distributed object and service technologies as well as web services. It then discusses how web services affect the application development lifecycle and emerging areas like network-centric computing and enterprise architecture evolution. The document also covers issues related to development processes, business modeling, quality requirements, software architecture/design, testing, and maintenance when using web services for large-scale application development.

Uploaded by

chrchary1086
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT or read online on Scribd
0% found this document useful (0 votes)
127 views68 pages

Web Services: Implications For Software Engineering

The document discusses the implications of web services for software engineering. It begins by providing an overview of distributed object and service technologies as well as web services. It then discusses how web services affect the application development lifecycle and emerging areas like network-centric computing and enterprise architecture evolution. The document also covers issues related to development processes, business modeling, quality requirements, software architecture/design, testing, and maintenance when using web services for large-scale application development.

Uploaded by

chrchary1086
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT or read online on Scribd

Web Services: Implications

for Software Engineering

Kostas Kontogiannis

University of Waterloo

Department of Electrical and


Computer Engineering
Overview
Distributed Object and Service Technologies

Web Services

Web Services and the application development


lifecycle

Emerging areas
Network-Centric Computing

Utilize a LAN or WAN as the communication


vehicle between components of the
applications

Leverage the computing power of more than


one system
Enterprise Architecture Evolution

Monolithic Applications (1-tier)


– Mainframe module
– Business logic and
Representational logic
Program
in the same machine Data

– Data can’t be shared


Enterprise Architecture Evolution
Client/Server Applications (2-tier)
– Server implements File Server Database Server

some business logic


Servers
– Client implements the
presentation
Communication Network
logic and some Protocols

business logic
Client
Workstations
The Problem
Integration of heterogeneous sources:
– operating systems
– programming language
– network protocol
– data representation

Internet Accessibility of
Services
– requires web sites to provide transactional
services, security, messaging, naming services
Enterprise Architecture Evolution

Distributed Application
– Client implements Tier 1
Clients
the represent logic
Tier 2
– Middle tier provides the Business
business services: Services

Naming service, Tier 3


Software
Transaction service Services

– Backend software processes Application Relational


software or object “Seas of Objects”
the middle tier request databases
Distributed Computing

Distributed Objects
– The basic idea is that a binary object standard
allows various objects from various vendors,
running on various platforms, to work together to
create an N-Tier client/server application.

Web Services
– The basic idea is to use Web enabled protocols
and standards to access and integrate remote
applications in a transparent way.
Distributed Objects
Remote components on different computers or
address spaces

Encapsulate the implementation through the


interface

Distributed objects can work independently and


inter-operate via the communication system

Location, language/compiler are transparent to


the end-user
Web Services
Many definitions available:

– A network-based repository of processes or tasks that can


be used by applications to access data or execute
operations across disparate platforms (NCipher).

– An application capable of being defined [WSD], located via


the Internet protocol, and interacting with other software
applications, identified by a Uniform Resource Identity
(Apple).

– A Web service is a software application identified by a URI,


whose interfaces and bindings are capable of being defined,
described, and discovered as XML artifacts. A Web service
supports direct interactions with other software agents using
XML based messages exchanged via internet-based
protocols (W3C)
Web Services
A means of integrating applications
regardless of the computing platforms
and programming languages involved

Provide easier and more cost effective


transactions by reducing the complexities
for connecting disparate applications
Time Line
Web Services

RMI

DCOM
C
O MOM
V
E CORBA
R
A RPC
G
E
Subroutine

1970’s 1980’s 1990’s 2000


Web Services Stack

Layer Technology O
P
Business Objectives Management, Intents, Goals E
N
Service Negotiation Trading Partner Agreement
Q S
Workflow, Discovery, UDDI, ebXML registries, IBM WSFL, MS o T
Registries XLANG S A
Service Description N
WSDL/WSCL D
Language
A
Messaging SOAP/XML Protocol R
D
Transport Protocols HTTP, HTTPS, FTP, SMTP S
Web Services and the Software
Life Cycle
Using Web Services as a large scale system application
development workbench there are interesting issues to be
considered from the Software Engineering perspective. In
particular issues related to:

– Development Process

– Business Modeling and Economics

– Non Functional Requirements (quality)

– Software Architecture and Design

– Implementation and Testing, and finally,

– Maintenance and Evolution


Development Process
We experience a trend that shifts away from the
classic Waterfall and Spiral Models towards
Iterative and Incremental models that are also
suited for Object Oriented and Component
Based systems.

A good example of such a suitable process


model that has gained significant attention is the
Unified Model.
Unified Models
Web Services and Unified Processes
Developing Enterprise Applications using the Web
Services paradigm includes the following steps:

– Identify and analyze business models (Inception)

– Integrate business functions into the Web Services paradigm


(Elaboration-1)
– Architect the system (Elaboration-2)

– Create individual new services or wrap existing ones


(Construction-1)
– Identify middleware frameworks to support distribution
(Construction-2)

– Deploy the created services and place them in an executable,


manageable environment (Transition-1)
– Use and manage the new system (Transition-2)
Web Services, Processes, and
Roles

The RUP roles include the Project Manager, the


Analyst, the Architect, the Modeler, the
Developer, the Tester, and the Deployment and
operational staff.

SOA maps almost identically to this with the


addition of an SOA Modeler role whose job is to
take the conceptual software model and test it
against the SOA model and resources of the IT
infrastructure.
Checkpoint
Software Life-Cycle Process
The implications of Web Services to Software
Development Process can be summarized as putting
emphasis on:

– project management,
– model driven development,
– risk assessment and mediation,
– change control,
– quality engineering, and
– post-project and peer reviews

Emphasis is also placed on global issues related to


enterprise planning, strategic reuse, operations
support.
Business Models
A series of business functions within defined
boundaries (e.g. sales, invoicing, marketing,
etc.). Business processes are denoted by
business models.

In an environment where organizations


constantly exchange information and rely on
each-other services it is important to focus on
models that denote and specify collaborative
models or Business Process Networks.
Web Services and Business
Models

Web services implement activities within a


business process, and business processes in
turn can be externalized as Web services

Web Services flow languages have matured to


a point where a few de-facto standards have
emerged
Business Models
Depict workflows at a conceptual level
Contain tasks, data, decisions
Objective is to annotate, denote, and represent workflows in a form
that can be read and processed by a software program
Need for Web Service Flow
Languages
Handling asynchronous Web service invocations and call backs

Handling requests across many in-flight business processes

Parallel invocation of Web services

Roll-backs for long-running transactions

Composing larger business processes out of smaller business


processes

Reliable message delivery

……..
Private and Public Flows
The activities specified in the public flow are only those
needed to provide users with information on the
execution state.

Private flows specify the full flow of the implementation


of a service and are usually not suitable as a public
description of service behavior.

Public flows have simpler flow of data and control, but


provide full information about the sequencing of service
operations the client process needs to know.
Web Services Flow Languages
Earlier efforts
– XLang,
– BizTalk
– WSFL
– WSCI
– ECA
Emerging Standards
– BPEL4WS
– WS-Transaction
Customization of Business
Models
Simplification: Removing one or more steps from
an unnecessarily complicated process, or reducing
unnecessary variety in the process by replacing
components to produce stepwise improvements.

Integration: Joining two or more previously


unconnected or uncoordinated processes into a
larger coordinated process by inserting additional
components to create new links.

Transformation: Creating a radically new process


by disassembling the components, and putting
them back together in a new way.
Checkpoint
Web Services and Business Models
Clear shift towards executable specifications of business
models

Business models can be services themselves

Several XML-based languages to denote and enact


Business Models (BPEL4WS, WSCI, BPML, ebXML,
XPDL.....)

Currently there are no clear standards for flow languages


Enterprise System Architecture in
the Large
Enterprise Systems relate to a multi-tier
heterogeneous architectural style.
– Multi tier (at the highest level),
– distributed (including broker pattern),
– transactional databases,
– event-based communication,
– implicit invocation,
– object-oriented,
– MVC (e.g., for presentation in the client),
– dataflow for workflow, etc.
Heterogeneous Architectures
– (‘Hierarchical heterogeneous’) A Component in one style
may have an internal style developed in a completely
different style (e.g, pipe component developed in OO style,
implicit invocation module with a layered internal structure,
etc.)

– (‘Locational heterogeneous’) Overall architecture at same


level is a combination of different styles (e.g., repository
(database) and mainprogram-subroutine, etc.). Here
individual components may connect using a mixture of
architectural connectors - message invocation and implicit
invocation.

– (‘Perspective heterogeneous’) Different architecture in


different perspectives (e.g., structure of the logical view,
structure of the physical view, etc.)
Enterprise Services
Web Services Architecture
A Service Provider provides a service interface to a
software component that manages a set of tasks.
A Service Broker acts as a repository for software
interfaces published by service provider.
A Service Requester discovers and invokes software
services.
Web Services Technologies
SOAP
Simple Object Access Protocol
(remote invocation)

WSDL
Web Service Definition
Language (service
characteristics)

UDDI
Universal Description,
Discovery, and Integration
(directory)
Business Service Networks
BSNs are Internet business communities where
companies collaborate through loosely coupled
business services [Tenenbaum]

Service providers publish details about services


they offer, and corporations in the community
can discover and incorporate these services into
their business flows.
Reference Deployment
ASP Domain

Client
: Rule
Engin
e
: Internet

: UDDI :
Registr Service
y Provide
r

: UDDI :
Registr Service
Business Service Networks.
y Provide
r
Service Localization (UDDI)
The Universal Description, Discovery and Integration
(UDDI) is a specification to publish and discover
information about remote services.

Three major parts:

– The business registration module “white pages” denoting the


address, contact, and known identifiers for the service offering;

– “yellow pages” for providing a categorization of the offered


service according to standard taxonomies and;

– “green pages” for denoting technical information about the


offered services.
Service Interface Description
Example
<?xml version="1.0" encoding="UTF-8"?>
<message name="IngetQuoteRequest">
</message>
<message name="OutgetQuoteResponse">
</message>
<portType name="NasdaqQuotes">
<operation name="getQuote">
</operation>
</portType>
<binding name="NasdaqQuotesBinding" type="NasdaqQuotes">
<soap:bindingstyle="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getQuote">
<soap:operation soapAction="urn:NasdaqQuotes"/>
<input>
<soap:bodyencodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:NasdaqQuotes" use="encoded"/>
</input>
<output>
<soap:bodyencodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:NasdaqQuotes" use="encoded"/>
</output>
Service Implementation Description
Example
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="NasdaqQuotes"
targetNamespace="http://urn:NasdaqQuotes_WSDL"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://urn:NasdaqQuotes_WSDL"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<service name="NasdaqQuotes">
<documentation>IBM-WSTK 2.0 generated service definition file
</documentation>
<port binding="NasdaqQuotesBinding" name="NasdaqQuotesPort">
<soap:address location=
"http://localhost:8080/soap/servlet/rpcrouter/"/>
</port>
</service>
<import location="IBM_NasdaqQuotesClient-interface.wsdl"
namespace="http://urn:NasdaqQuotes_WSDL-interface" />
</definitions>
Service Invocation (SOAP)
Simple Object Access Protocol is an XML-based
lightweight protocol for the exchange of information in a
decentralized, distributed environment.

SOAP defines a messaging protocol between requestor


and provider objects.

SOAP forms the basis for distributed object


communication in most vendor implementations of SOA.

Central idea is based on the delivery of SOAP Envelopes.


SOAP Request Example
POST /InStock HTTP/1.1
Host: www.stock.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body
xmlns:m="http://www.stock.org/stock">
<m:GetStockPrice>
<m:StockName>IBM
</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>
Transactional Issues
SOAP Messages
Security
Reliable Messaging
Business Orchestration
Eventing
Transactions

Legacy Systems Enterprise Data


Partner Systems
Checkpoint
Web Services and System Architecture

A clear emphasis towards Heterogeneous, multi-


tier architectures

Major Architectural requirements for Web


Services include [W3C]:
– Interoperability
– Reliability
– Web-friendliness, usability
– Security
– Scalability and Extensibility
Design and Implementation Issues
Transition from a reference architecture to a concrete
architecture and to a specific implementation
technology

Implementing transaction management techniques

Messaging and invocation protocols

Modeling and use of data and metadata

Personalization and adaptation

Efficient use of design patterns


Model Driven Architecture
OMG has proposed a framework for designing,
deploying, and integrating distributed systems and
services.

The basic idea is on the use of a generic reference


architecture and model for distributed services (Platform
Independent Models) that can be transformed to yield
concrete architectures specific to an implementation
platform (Platform Specific Models)
Building an MDA Application

A Detailed Model, Start with a Platform-


Platform- stating Pre- and Post- Independent Model
Independent Conditions in OCL, (PIM) representing
Model and Semantics in
business functionality
Action Language
and behavior,
undistorted by
technology details.
Generating Platform-Specific
Model

Map a PIM to Specific MDA tool applies a


Platform- Middleware standard mapping to
Independent Technologies via OMG generate Platform-
Model Standard Mappings
Specific Model (PSM)
from the PIM. Code is
partially automatic,
CORBA partially hand-written.
Model
Mapping to Multiple Deployment
Technologies

Map a PIM to Many MDA tool applies a


Platform- Middleware standard mapping to
Independent Technologies via OMG generate Platform-
Model Standard Mappings
Specific Model (PSM)
from the PIM. Code is
partially automatic,
CORBA Java/EJB XML/SOAP Other partially hand-written.
Model Model Model Model
Generating Implementations

Map PSM to application MDA Tool generates


Platform- interfaces, code, GUI all or most of the
Independent descriptors, SQL implementation code
Model queries, etc.
for deployment
technology selected
by the developer.
CORBA Java/EJB XML/SOAP Other
Model Model Model Model

CORBA Java/EJB XML/SOAP Other


Integrating Legacy & COTS

Reverse-engineer MDA Tools for reverse


Platform- existing application into engineering automate
Independent a model and redeploy. discovery of models
Model for re-integration on
new platforms.

Legacy COTS Other


App App Model

Other
EJB Architecture
EJB Server
EJB Server

EJB Container EJB Container

Home Interface &


Locate, Create
Home
and Remove Home
Object
Instance of EJB Interface

Home Object Enterprise


JavaBean
EJB
Remote Interface & Client
EJB
Remote
EJBObject Invoke Business
Interface
Object Database

methods of EJB
Enterprise JavaBean Enterprise Services and API
EJB Clients Naming Service(JNDI)
Transaction Service
Security
Messaging
Enterprise JavaBean
Two Types of
Enterprise JavaBean EJB Server

– Entity beans, Entity EJB Container

Home
represent persistent EJB
Home
Interface
Object
Entity
data and methods on Client JavaBean

that data in a domain Remote


Interface
EJB
Object

model EJB
Client
– Session beans, more Session EJB Container
Database

general purpose
Home
Interface Home
Object

server-side beans Session


JavaBean

Remote EJB
EJB Interface Object
Client
Object Wrappers

An Object wrapper is essentially a


software layer between two different
system, for example, between OO and
non-OO, between distributed OO and
non-distributed OO.
Types of Object Wrapper

Types of Object Wrappers


Object Legacy
– Screen Scraper Wrappers Resources

– Function Wrapper OO Screen


Screens
– Data Wrapper Scrapper

Legacy
OO OO Function Code
Code
Clients Wrapper Access

Flat Files

OO Data
Wrapper

RDBMS
Wrappers and Integration Gateways

Integrate and synthesize Integration Gateway

object wrappers with Object


Wrappers
Access
Legacy
Resources
Technologies
various access OO
Screen
Screens
technologies. Wrapper

Legacy
OO Code
OO Function
Code
Clients Wrapper
Access

Flat Files

OO
Data
Wrapper

RDBMS
Checkpoint
Web Services and Design
Well established standards and robust technologies for
encapsulating and wrapping services

Follows closely the distributed systems paradigm (mostly


document computing not RPC)

Variations on the transaction model and messaging


(application layer)

Major breakthrough, Model Driven Architecture

Next step includes generative programming and


automatic code generation
Web Services and Testing
Technology Level Testing
– SOAP messages
– WSDL specifications
– UDDI Specifications

Service Level Testing


– Web Services as components, functional testing

Architecture Level Testing


– Proof-of-concept, transaction management, Quality of Service,
load/stress testing,

Global Level Dynamic Testing


– Composition, orchestration, versioning, monitoring, and
regression testing
Checkpoint
Web Services and Testing
Need for new testing tools

Transaction management is an issue for long


transactions

New challenges for Integration, System, and Regression


testing due to the loosely coupled components involved
and the nature of the transactions

Acceptance testing more diverse

Possibly need to devise strategies for metadata


evaluation as well
Security Issues
Three areas of attention:
– Technology related (secure messaging)
– Business related (policy, risk, trust)
– Coordination related (platform vendors, developers,
network providers, customers)

The broad area of securing Web services:


– Securing integrity and confidentiality of messages
– Ensuring a service acts on requests that comply with
claims required by policies
Maintenance and Evolution
Incremental evolution of components and
services
Design and development collaborative tools
Impact and what-if analysis
Versioning
Enabling reuse
Compliance with emerging standards and
versioning
Maintenance of meta-data
Financial Issues
There five potential revenue models for Service Providers:

– Transactional: refers to the pay-per-click or fee-for-use model.

– Membership/subscription: established user account with specific


terms for usage.

– Lease/license: require large volumes of usage and expect a more


customized agreement.

– Business partnership: refers to the establishment of terms


through out-of-band or prior usage-based system, on the bartering
of services, equity, or even a percentage of gross revenue of the
requestor.

– Registration: applies more readily to a UDDI provision business.


Emerging Areas
Emerging areas in the field of Web Services
include:

– Integration of distributed heterogeneous components


into autonomic systems.

– Service discovery frameworks

– Creation, monitoring and management of


agreements, agreement templates

– Metadata exchange
Autonomic and Adaptive Systems
Autonomic systems are interactive collections of
autonomic-elements. Autonomic elements provide a
service only if it is consistent with their goals (intents)
[Kephart, Chess]

The main characteristics of autonomic systems are:

– Self-configuration

– Self-optimization

– Self-healing

– Self-protection
Coordination and Intents
Basis is the coordination theory by T. Malone (MIT).

Coordination theory is body of principles about how


activities can be coordinated, that is, about how actors
can work together harmoniously [Malone].

Intents are models of the objectives or goals of a service.

The problem is to manage constraints so that intents can


be achieved.
Web Services and Adaptive
Systems
Adaptation that leads to autonomicity can be
best applied at either:
– Service level
– Middleware level

Adaptation can take the forms of


– Control adaptation (workflow adaptation)
– QoS adaptation
– Data and Metadata filtering
Checkpoint
Web Services and Autonomic Computing

Extending Web services with programming tools


and techniques for managing relationships between
autonomic elements

Formalisms for modeling intents

Techniques and frameworks for monitoring


autonomic systems

Selecting and applying behaviors


The Next Steps
Model Driven techniques for system
development
Security protocols (above transport layer)
Testing and evaluation tools
Adding semantic information to services
Metadata and data exchange and mediation
Workflow adaptation and customization
Autonomic systems
Conclusion - Summary
Web services as large software distributed
systems pose new challenges to the
Software Engineering community

Web Services are not the end, but merely


provide the means to move to new
paradigms and explore new technologies
References
http://www.w3.org/2002/ws/
http://www-130.ibm.com/developerworks/webservices/
http://msdn.microsoft.com/webservices/
http://conferences.computer.org/icws/2005/
http://www.oasis-open.org/home/index.php
www.omg.org/mda
http://ccs.mit.edu/ccsmain.html
http://www.research.ibm.com/autonomic/
Web Services: Implications
for Software Engineering

Kostas Kontogiannis

University of Waterloo

Department of Electrical and


Computer Engineering

You might also like