Web Services

farrightΛογισμικό & κατασκευή λογ/κού

15 Αυγ 2012 (πριν από 5 χρόνια και 2 μήνες)

348 εμφανίσεις

MD240

Web Services

“The J2EE versus .NET battle will be the

soap opera of the decade for geeks to watch.”


-

Chad Vawter and Ed Roman, The Middleware Company

Background

Background


Common Business Problem


How to let trading partners interact with our organization


Complicated by multiple customer
-
facing and supplier
-
facing channels


Human customer service


Automated customer service


WWW


Handhelds


WAP


EAI, EDI, ERP systems, CRM systems, supply chain
applications

Background

Hardware

#1

Hardware

#2

Systems

Software #1

Application

Software #1

Distributed Application

Software


EDI


WWW (html/http)


DCOM, CORBA, RMI


Web Services (xml/soap)

Systems

Software #2

Application

Software #2

Ex:

Mainframe

ERP

System

Ex:

Handheld

Browser

message passing

Desired

Interactions w/ Customers

Desired

Interactions w/ Suppliers

Background


Development Dilemma


Old Approach


Develop a custom
-
coded “point solution” application (containing
similar business logic) to link each customer/supplier to each of these
channels


Task multiplied by the number of customers and/or suppliers


250 customers … 250 custom
-
coding projects


New Approach


Develop business logic once, then wrap it with an interface that can
talk to each channel in the appropriate manner


Web Services approach


Eliminates custom recoding of identical business logic for each
use


250 customers … 1 coding project

Background


Limitations of Electronic Data Integration (EDI)


proprietary


expensive … only rich trading partners could afford to
implement it


point
-
to
-
point, customized solutions


dedicated connections between two
applications/organizations

Background


Limitations of N
-
Tier Client/Server (C/S)
-
based e
-
Services


C/S Web applications are
tightly
-
coupled

groups of applications


highly interdependent

applications … if one fails, the system fails


sychronous communication

only


not all clients can talk to any server

… this must be specified up front


to deliver some other company’s services to your customers, that
company’s whole e
-
Service delivery system must be embeddable
within your own web page


Unix
-
based Web sites don’t work seamlessly with Windows
-
based
Web sites


C/S
-
based e
-
Services can only be consumed …


they can’t be utilized by others to develop more complex services


Background


Limitations of Existing Distributed Application
Methods


Examples: DCOM, CORBA, RMI


Work well in homogeneous (i.e., all Windows, all Unix)
environments


Don’t scale well across the WWW


Cannot truly integrate different (heterogeneous) systems


Difficult to deploy and maintain

Web Services

Web Services

Definitions


Web Services are …


A
collection of functions

that are
packaged

as a single
entity and
published

to the network
for use by other
programs
.


Web services are
building blocks

for creating open
distributed systems
, and allow companies and
individuals to quickly and cheaply make their digital
assets available worldwide.


Web services are in reality simply
XML
-
based
interfaces

to business, application, and system services,
and are really
old technologies wearing a new hat
.

Web Services

Advantages


Advantages of Web Services


peer
-
to
-
peer communication between applications


any server process (on one computer) can talk to any other
server process (on another computer)


any client can talk to any server process


loose coupling between applications, instead of the hard
coupling used in prior technology


FLEXIBILITY

Web Services

Advantages


Advantages of Web Services


direct access to services, without having to go through a centralized
web page


customers can more easily access web services


web services are not so tightly tied to computing platform of hardware
and software


web services are modular software “components” … like “objects”


web services have attributes and methods that developers and consumers
can access and use to deliver services


web services that you create can be leased and used by others


web services “components” can be joined together and integrated into
more complex services


savings in development time


savings in development budget

Web Services

Forecasts


Some Forecasts


Application vendors will begin widely supporting web
services by 2003 (Forrester)


Web services will reach maturity by 2005 (Forrester)

Web Services Technology

Basic Concept of e
-
Services

“Request and Respond”

Platform
-
Specific

Software Object

e.g., a web page

e.g., a CGI program

e.g., a Database

Communication

with software

object

(disk access, or

via TCP/IP)

HTML Output

WWW

Server

.jpg/.gif File

Response is in a

generic language (HTML)

that any
WWW browser


can understand

Web Services Technologies


Web Service Process


Develop a software component once for a piece of
business logic


Package the component within web service technology


Technology “exposes” the component’s “services” that it can
provide to customers and/or suppliers


Publicize that the “services” are available


Customers and suppliers use and customize the
published, publicly available web service

Web Services Technologies


XML

-

Extensible Markup Language


SOAP

-

Simple Object Access Protocol


WSDL

-

Web Services Description Language


UDDI

-

Universal Description, Discovery, and
Integration

Web Services Technologies


XML


A common language for
connecting

and
sharing

information

with others


Provides a standard format for data exchange that does
not require your business partners to use a particular
programming language, application, or operating
system to interact with your application


ebXML
:


a suite of XML specifications and related processes
designed to provide an infrastructure for B2B
collaboration and integration

Web Services Technologies


WSDL


Used to
describe the functions

an XML
-
based web
service can perform


A standard format in which a service can publish …


the names of functions


the parameters required in order to use the function


the results returned from the web service

Web Services Technologies


SOAP


The W3C’s XML protocol for exchanging data


Enables systems to communicate

and
make requests

through a common protocol

Web Services Technologies


UDDI


A way to discover services

on the Internet that are
available for you to use


An industry effort to make it easy to locate and
understand other companies’ XML
-
based web services


Like a
yellow
-
pages directory

… for web services


Links


www.uddi.org


uddi.microsoft.com

Web Services Technologies

UDDI Advertises Web Services


UDDI Directory


ABC, Inc. offers the following web services …


Factory simulation


Financial simulation


XYZ Corp. offers the following web services …


Process a credit card transaction


Order a product


Generate account information

Click for WSDL description

Click for WSDL description

Click for WSDL desc.

Click for WSDL description

Click for WSDL desc.

“Hmmm, I think I’ll use this service …”

Basic Concept of Web Services

“Request and Respond”

Platform
-
Specific

Software Object

e.g., a program

e.g., a Java Bean

A
“Wrapper”

around the software object

XML Input

Service #1

Service #2

Communication

with software

object

XML Output

Response is in a

generic language (XML)

that any
application


can understand

Web Service Frameworks

Web Services Frameworks


Sun Java Open Network Environment (ONE)


Java 2 Enterprise Edition (J2EE)


Java 2 Standard Edition (J2SE)


Java 2 Micro Edition (J2ME)


Microsoft .NET

Web Services Frameworks


J2EE/J2SE/J2ME


One programming language … JAVA


Write once, run anywhere


A technology standard that can be implemented as a
product by any company


Many vendors of development tools


Many vendors of application server platforms

ONE LANGUAGE

MANY VENDORS OF TECHNOLOGY

Web Services Frameworks


J2SE v1.4 Components

Web Services Frameworks

Web Services Frameworks

Developing Web Services with J2EE

Client

Tier

Web Service

Containers

Back
-
End

Systems

Business Partner

or other system

Applets,

Applications

Browsers on Desktops,

PDAs, Cells

Servlets

Java Server Pages

Enterprise Java Beans

Connectors

Existing System

Legacy System

ERP System

Business Partner

or other system

Context


Repository



Databases

SOAP, UDDI, WSDL, ebXML

IIOP

HTTP

SQL

Proprietary Protocol

Proprietary Protocol

SOAP, UDDI,

WSDL, ebXML

Web Services Frameworks


.NET


An open language platform for Enterprise and Web
development


Supports many programming languages


More than 20 so far


Many development tools for the many programming
languages


One developer of application server platforms
(Microsoft)

MANY LANGUAGES

ONE VENDOR OF TECHNOLOGY

Web Services Frameworks

The .NET Architecture

Web Services

Frameworks and Libraries:

ASP.NET, ADO.NET, Windows Forms

Interchange Standards:

SOAP, WSDL

Common Development Tools:

VisualStudio.NET

Component Model

Object Model & Common Language Specification

Common Language Runtime

Elements of the .NET Architecture …


Web Services Frameworks

The .NET Program Execution Model

C#

VB.NET

C++

Eiffel

Language Compilers

Microsoft Intermediate
Language (MSIL) Code

plus metadata

Loader

JIT Compiler + Verifier

Managed Code

Execution

At this point, we have an “object code”

that is quite similar to a JAVA bytecode

Native machine

code

Web Services Frameworks

Web Services Frameworks

Developing Web Services with .NET

Client

Tier

Web Service

Containers

Back
-
End

Systems

Business Partner

or other system

Applications

(Windows Forms)

Browsers on Desktops,

PDAs, Cells

ASP.NET

.NET Managed Components

Host Integration Server 2000

Mainframe System

Business Partner

or other system



Passport.NET



SQL Server 2000

SOAP, UDDI, WSDL, ebXML

HTTP

SQL

Proprietary Protocol

SOAP, UDDI,

WSDL, ebXML

SOAP, UDDI, WSDL, ebXML

Web Services Frameworks


.NET demo sites


http://www.gotdotnet.com/


http://www.asp.net/


http://www.coldstorage.com/


http://dotnet.eiffel.com/


http://www.go
-
mono.net/


A port of .NET to the Linux environment


http://www.dotnetexperts.com/


J2EE vs. .NET

J2EE vs. .NET

Feature

Type of Technology

# of Middleware Vendors

Interpreter

Dynamic Web Pages

Middle
-
Tier Components

Database Access

SOAP, WSDL, UDDI

Implicit Middleware

Development Process

Development Participants

Programming Languages

Sun J2EE

Industry Standard

30+

Java Runtime Environment

Java Server Pages

Enterprise Java Beans

JDBC, SQL/J

Yes

Yes

Java Community Process

Sun, IBM, Oracle, + others

One (Java)

Microsoft .NET

Microsoft Product

Microsoft

Common Language Runtime

Active Server Pgs (ASP.NET)

.NET Managed Components

ADO.NET

Yes

Yes

Microsoft

Microsoft

Many

J2EE vs. .NET


Selling Points


Time
-
to
-
Market Features
???


Single Vendor Solution
J2EE


Support for Existing Systems
J2EE


Market Perception
.NET


Maturity of Platform
J2EE


Language Support
???


Migration from Previous Platform
J2EE


Portability
J2EE


Web Services Support
J2EE


Tools
.NET


System Cost
???


Scalability
J2EE

Current
Winner

Source:

The Middleware

Company, 2001

Business Implications

Business Implications


“Software as Services”


Groups of web services can be combined together
into an Application Service Provider


Web services will need to be used for


Service delivery


OSS
-

billing, accounting, etc.

Business Implications

Application

Service

Application

Service

Application

Service

Application

Service

Application Services




Service Grid









Standards and Protocols




Shared utilities

Security, auditing

assessment of 3rd

party performance,

billing, payment

Service management utilities

Provisioning, monitoring, ensuring quality of service,
synchronization, conflict resolution

Resource knowledge management utilities

Directories, brokers, registries, repositories,

data transformation

Transport management utilities

Message queueing, filtering, metering, monitoring, routing

Software Standards

XML + WSDL + UDDI

Communication Protocols

SOAP

HTTP

TCP/IP

Web

Services

Source:

Harvard Business

Review
, Oct. 2001

Web Service Tools and Vendors

Web Service Tools


Application Server Features


Configuration tools


Monitoring tools


Management tools


Administration tools

Web Service Tools


Development Tool Features


Support for web service protocols (XML, SOAP)


Support for whole development cycle


Visual (GUI) design environment


Rapid Application Development (RAD) tools


Round Trip Engineering capability


Integration with requirements of web service
application server(s)

Web Service Tools

Major Vendors


J2EE


Application Servers


Sun/Netscape(AOL)


iPlanet Application Server


Oracle


Oracle 9i Application Server


IBM


WebSphere Application Server
($8,000
-
$12,000/CPU)


BEA Systems


WebLogic Application Server
($3,000
-
$17,000/CPU)


IONA


IONA Application Server


Lutris


Enhydra Application Server


JBOSS Application Server


Development Tools


TogetherSoft


Together Control Center


Rational


Rational Rose


Borland


JBuilder


WebGain


Visual Café


Sun


Forte


NetBeans.org


NetBeans


IBM


IBM Visual Age


Web Service Tools

Major Vendors


.NET


Application Servers


Microsoft .NET Application Servers


Development Tools


Microsoft


VisualStudio.NET
(Just Released 2/15/2002)


ActiveState


Python.NET, Perl.NET


Lots of other languages will be integrated into the .NET
framework by smaller companies (e.g., Eiffel.NET,
COBOL.NET)

Web Services

Deployment Strategy

Web Services Deployment Strategy

Recommended Strategy


Start experimenting/developing now


Develop an internal web service platform


a protected space within which to practice developing web services


share functionality across enterprise


work out the bugs before deploying to customers


Deploy web services for supplier
-
facing processes


Less risky if this goes down


Work out more bugs


Deploy web services for customer
-
facing processes



Once organization is totally sure of how to deploy to meet
customer expectations

Web Services Deployment Strategy

Management Issues


Management Issues


Security of web services from competitors


Availability for customers


Acceptable performance levels


Reliability


Fault
-
tolerant


Costs


Training developers to develop web services


Investment in new web service development tools


Upgrades to web service application servers

Limitations of Web Services
Technology

Limitations of Web Services


May not work well in extremely high transaction
(back office) environments


XML files are flexible for representing data and web
services, but flexibility has a price … file transfer size


Still mainly supports sychronous communication


SOLUTION:
Message Queueing Services


Asynchronous messaging


Systems can interact without being tightly coupled


Uses: Enterprise Application Integration (EAI), B2B,
distributed computing

Message Queueing Services


Java Message Services (JMS)


IBM: MQSeries


Progress: SonicMQ


Fiorano: FioranoMQ


Sun: Java Message Queue


BEA: WebLogic Server


Exolab: OpenJMS (openjms.exolab.org)


Microsoft Message Queuing (MSMQ)

Conclusions

Conclusions


Web services are on their way


Targeted at reducing development costs, simplifying
development, improving electronic service delivery


Major decisions …


J2EE vs. .NET


how to integrate them


when they will work, and when they won’t work well


Opportunities for managers who understand how to …


transform existing software components into web services


make money off of web services


improve organizational performance using web services