Está en la página 1de 8

Overview

Definition of Web Services Key concepts Difference from traditional web model

The Web Services Vision

Context
Service-oriented architecture
Distributed computing

Overview
Microsoft .NET vision Web Services
Difference from traditional web model Context
Service-oriented architecture
Distributed computing

Microsoft .NET: The Vision


Make distributed applications as easy to develop as desktop applications
Client-Server systems Web based applications Mobile applications

Adopt many research ideas from last few years


Commercial realisation

.NET realisation See also http://www.w3.org/2002/ws/

Rationalise Microsofts development tools Develop once, run anywhere

Microsoft .NET
and, after the marketing people got there Re-launch business servers
Add .NET based functionality Old names poorly understood by system administrators

The Evolving Internet


XML
y log P hno TCP/I Tec Connectivity Inn FTP, E-m ail ova tion , Gopher

HTML
Presentation Programmability

Web P ages

Web

Browse the Web

Serv ices

Program the Web

A Working Definition of Web Services


A Web Service is a unit of application logic that provides data and services to other applications (including other Web Services). Applications access Web Services via ubiquitous Web protocols and data formats such as HTTP, XML, and SOAP, with no need to worry about how each Web Service is implemented or where it is.
(based on a definition at http://msdn.microsoft.com/library/default.asp?url =/nhp/Default.asp?contentid=28000442)

Distributed Computing Context


Distributed computing platforms are not new! Remote procedure call (1987-1990)
Sun RPC (87) DCE (90)

Call procedure on remote computer (almost) as if a local procedure

Distributed object computing (1990-)

Added object-orientation (remote objects with interfaces, encapsulation, inheritance, pass-by-reference)


OMG CORBA (91) MS DCOM (96) Java RMI (97)

Marshalling
Platforms and languages hold data differently
No common type system Distributed systems must map data

Distributed Computing Context Contd.


Component-based dist. systems (1999-)
Components, unlike objects, explicitly advertise their dependencies Better support for composition by third parties Higher-level platforms
Enterprise Java Beans (99) CORBA Component Model (01) MS .NET (01)

Marshal

Marshal

Java

Common representation

Web Services (1999-)

Use of ubiquitous standards (esp. XML) Document-oriented Looser coupling...

Traditional Distributed Computing Platforms


Parameters passed are programming language data-types
make_order (item, deliv_addr, payment_details)

Document-Orientation and Loose Coupling


Document Oriented
Pass documents between clients and servers Easier to make changes backwardly compatible i.e., looser coupling E.g., adding a caller_authorisation parameter to a make_order() operation requires changing many clients; but adding a new element to a document doesnt prevent us understanding old documents

Communication is synchronous

Can communicate asynchronously (e.g. Email)


Reduces coupling server doesnt have to respond immediately: can be taken down for maintenance, can wait for validation by human, can easily replace with a new version

Loose coupling improves scalability and reliability

Traditional Web Architecture


Traditional Web architecture
Browser, HTTP, web server Includes a human in the loop Works for B2C

Web Services in a Business Context


Business-to-consumer (B2C) Business-to-business (B2B)
Cf. amazon.com; the traditional Web architecture suffices

E.g. supply-chain management (ordering, invoicing, ...) Vision of dynamic discovery/ binding of business services Document-orientation/ loose coupling are key Security and trust are also crucial

Enterprise application integration (EAI)

Wrap legacy applications as Web Services so they can be composed with other Web Services and made available remotely Potentially reduces the cost of IT integration (e.g. when combining systems following a business merger)

Traditional Architecture in Use


Screen Scrape

Typical Interaction
Business orchestration
Store

Partner
FAX
M Eail

Partner

User

PO Invoice Approver Approver

Finance Supplier Reviewer Shipper

Roles

Purchase request PO request approval PO approval Purchase order Purchase order acknowledgement Configuration Review Purchase confirmation and ETA Invoice request approval Invoice Shipping order

M HT

B2C Website

Credit Info

Client

Actions

Retype

Invoice approval

Payment

Business to Business Challenges...


Online Marketplaces
Small Suppliers
Email Email

B2C vs B2B technologies


Area of concern
Backend logic

B2C

B2B
Web Service engine (holds Java code, C# code, Ent.JavaBeans, etc.) SOAP, HTTP, SMTP, FTP, EDI, JMS, RMI, ... XML XML N/A Software application

Java classes, Enterprise Java classes, Enterprise Java Beans (etc.) Java Beans (etc.) CGI, Servlets, JSPs

Supply Chains
Head Office
EDI

Custom server-side logic

Communications protocol

HTTP HTTP PUT/POST HTML HTML + scripts Human with a browser

Stores

Data input Data output User interface

Large Suppliers

Customers

Client

Web Services Architecture


Both servers and clients are programs Servers typically do things rather than merely serve data XML rather than HTML used to describe data

Web Services Architecture


Move away from search engines to describe, publish and discover
WSDL (Web Services Definition Language) and UDDI (Universal Description, Discovery and Integration)

Schema Use a greater diversity of communications protocols


HTTP, FTP (file transfer protocol), SMTP (a simple message passing protocol), SOAP (simple object access protocol), ...

describes tags <address> <name>Old Police Station</name> <number>8</number> <street>Letsby Avenue</street> <town>Yelling</town> <county>Huntingdon</county> </address>

The Big Picture: a Service-Oriented Architecture


Service Registry

Key Web Service Concepts


Description
Web Services need to be described in programming language-neutral terms to the outside world

(Discover &) compose

(Compose &) publish ECMA Script

(describe)
Service Requester Service Provider

?
Java

COBOL

bind and invoke

Key Web Service Concepts


Publication and Discovery
Descriptions need to be made available for other applications to find; and Other applications need to be able to search for and locate the Web Services they want (assuming prior publication)
<?xml version=1.0 encoding=ISO-8859-1?> <methodCall> <methodName>Add</methodName> <params> <int/> <int/> </params> </methodCall>

Key Web Service Concepts


Binding and Invocation
Applications need to be able to connect (bind ) to and invoke Web Services no matter where they are, or what programming language they are written in Binding and invocation assumes commonly-understood protocols and data formats Security is a key issue

Key Web Service Concepts


Composition
Web Services need to be compose-able to build value-added services from primitive generic building blocks
e.g. build an eCommerce service from a credit card authentication service and a database of products

Composition example
A book trip Web Service
book flight Web Service book hotel Web Service book taxi Web Service

Book Flight Book Hotel Book Taxis

Client

Book Trip

Composition Example Contd.


Must be transactional i.e.
Provisionally hold first items until sure final items can be secured; if not, then roll back

How Key Web Service Technologies Inter-relate


Key technologies are: XML, SOAP, WSDL, UDDI
plus various security technologies

Organised as three complementary stacks Wire stack


a suite of communications protocols that move data over the network (the wire) a suite of standards that describe services (and their composition) a suite of standards that deal with publishing/ discovering services

Cf. meta-shopping sites


Typically use screen scraping No transactional element

Description stack Discovery stack

Web Services Framework


How the standards stack up

Universal Description, Discovery, and Integration

UDDI

Reliability Security
Attachments

Public Specifications for Web Services Process Orchestration (XLANG) Service Description (WSDL) XML Schemas Directory (UDDI)
Schemas for service description Schemas for business description Based on XML and SOAP

Routing

Shared Implementation of a Business Registry Disco Strong Industry Support

SOAP (XML Protocols) XML

Web Service that is a meta-data directory of Web Services

IBM, Microsoft, Ariba, Sun, Oracle, HP, Intel, SAP, i2, Intel, Fujitsu and 200 others

Wire

Description

Discovery

How UDDI Works


1.
Software companies, standards bodies, and developers populate the registry with descriptions (specifications) of types of services

Microsoft .NET Framework


Inbuilt object-based type system Multi-language
Language neutral platform Cross language inheritance

4. 2.

Marketplaces, search engines, and business applications query the registry to discover services at other companies and to facilitate integration

UDDI Registry
Implementers populate the registry with descriptions of their businesses and the services they expose
Implementations Service Types

Zero impact install


5.

Side by side execution

3.

UDDI Registry assigns a programmatically unique identifier to each service and registration Large businesses apply the same architecture and technologies internally

Multiple versions of components can co-exist


Even in same application

The .NET Platform


PCs and Smart Devices User Experiences
Visual Studio.NET

Microsoft .NET Framework


Common Language Specification System.Web Web Services
Visual Studio.NET .NET Framework

System.WinForms Controls Drawing

Web Forms

ASP.NET Application Services

Windows Application Services

Web Services
Notification Identity

Data and System Base Classes ADO.NET IO XML Net SQL Security Threading Service Process

Application Center 2000

BizTalk Server 2000

Commerce Server 2000

ISA Server 2000 Mobile Information 2001 Server Host Integration Server 2000

SQL Server 2000

Exchange 2000

Infrastructure

Common Language Runtime Security Engine IL to Native Compiler Thread Support Type System Exception Handler Garbage Collector

Enterprise Servers

Common Language Runtime


Provides common type system
Consumer languages Extender languages

Currently Supported Languages


Perl Python COBOL Java Jscript Eiffel Haskell Pascal ML APL C C++ Visual Basic C# SmallTalk Oberon Scheme Mercury Oz Objective Caml

Robust and secure execution environment


Verifies type safety Code access security Exception handling

Provides access to host resources

.NET Primitive Types


All languages adopt framework types
So a string is a string whatever the language Int16

.NET Compact Framework


Reduced footprint implementation Few assumptions about device
Screen size, colour depth, etc. Touch screen, Keypad, RAM, Flash, ROM Floating point File system Threading etc.

Unified type system


Everything is an object SByte Boolean Byte Char String

UInt16 Int32 UInt32 Int64 UInt64 Single Double Decimal

Multi-Device Support
<mobile:Form id="Form1" runat="server"> <mobile:Calendar runat="server" id="calThis" OnSelectionChanged="ShowDate" /> </mobile:Form>

Metadata
All .NET objects carry metadata
Object name Method names and parameters Variables names and types

Enables reflection see last mobile example


Object construction Method invocation Access to public data in object

Metadata: Creation And Use


Source Code Compiler Debugger Reflection Designers

Just In Time Compilation


Source Code Libraries Metadata Native Code Compiler MSIL Code Metadata
Code Cache

Serialization
(e.g. SOAP)

Other Compiler Type Browser

Metadata
(and code)

Profiler

Schema Generator

Proxy Generator XML encoding


(SDL etc.)

JIT Compiler
MSIL: Microsoft Intermediate Language

ASP.NET Execution Cycle


Pages are compiled to Intermediate Language code This code is cached as well as being executed
ASP.NET Page Controls Controls Controls Disk

Evidence Based Security


Where did assembly (code, etc.) come from?
Site URL Directory Zone (My Computer, Intranet, Internet, )

Request

Language Language Language Compilers Compilers Compilers Response .NET CLR Runtime MSIL Compiled Code

What is the name of the assembly? Who signed and published assembly?
Public Key based digital signatures

Data Storage with .NET


Security Authentication Reliability Deployment

BizTalk Server 2000


Business Process Automation

Web Services
XSD, XSL, XPATH

Scalability

Web Forms

Service Logic

BizTalk
Enterprise Server Application 2000 Integration (EAI) Business To Business (B2B)

ADO+

XmlDataDocument Not just email!

SQL

Exchange

BizTalk Orchestration Designer


XLANG Design Surface

Work Surface

XLANG

Enables the Creation of Executable Business Processes Three Views


Process flow: An activity diagram Binding: process flow diagram annotated with components Dataflow

También podría gustarte