This action might not be possible to undo. Are you sure you want to continue?
Definition of Web Services Key concepts Difference from traditional web model
The Web Services Vision
Microsoft .NET vision Web Services
Difference from traditional web model Context
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
.NET realisation See also http://www.w3.org/2002/ws/
Rationalise Microsoft’s development tools Develop once, run anywhere…
…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
y log P hno TCP/I Tec Connectivity Inn FTP, E-m ail ova tion , Gopher
Web P ages
Browse the Web
Program the Web
g. deliv_addr. adding a caller_authorisation parameter to a make_order() operation requires changing many clients. inheritance. systems (1999-) Components.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. payment_details) Document-Orientation and Loose Coupling Document Oriented Pass documents between clients and servers Easier to make changes backwardly compatible — i.. and SOAP.” (based on a definition at http://msdn. explicitly advertise their dependencies Better support for composition by third parties Higher-level platforms Enterprise Java Beans (‘99) CORBA Component Model (‘01) MS . Applications access Web Services via ubiquitous Web protocols and data formats such as HTTP..microsoft.g. Email) Reduces coupling — server doesn’t have to respond immediately: can be taken down for maintenance. looser coupling E. Component-based dist. 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. can wait for validation by human. but adding a new element to a document doesn’t prevent us understanding old documents Communication is synchronous Can communicate asynchronously (e. can easily replace with a new version Loose coupling improves scalability and reliability 2 .com/library/default. unlike objects. XML) Document-oriented Looser coupling.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).NET (01) Marshal Marshal Java C Common representation Web Services (1999-) Use of “ubiquitous standards” (esp.. with no need to worry about how each Web Service is implemented or where it is. Traditional Distributed Computing Platforms Parameters passed are programming language data-types make_order (item.asp?url =/nhp/Default. XML.. encapsulation.e.
) 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. C# code. the traditional Web architecture suffices E.) CGI. Ent. EDI. 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 L B2C Website Credit Info Client Actions Retype Invoice approval Payment Business to Business Challenges. . Enterprise Java classes.) SOAP.g. amazon. 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.com.JavaBeans. SMTP... Online Marketplaces Small Suppliers Email Email B2C vs B2B technologies Area of concern ‘Backend’ logic B2C B2B Web Service engine (holds Java code. 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 3 . Enterprise Java Beans (etc.Traditional Web Architecture Traditional Web architecture Browser.. Servlets. RMI. XML XML N/A Software application Java classes. HTTP.. HTTP. etc. FTP... invoicing.) Java Beans (etc.g. supply-chain management (ordering. . JMS.
and… Other applications need to be able to search for and locate the Web Services they want (assuming prior publication) <?xml version=1.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. 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. or what programming language they are written in Binding and invocation assumes commonly-understood protocols and data formats Security is a key issue 4 . SOAP (simple object access protocol).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. publish and discover WSDL (Web Services Definition Language) and UDDI (Universal Description. FTP (file transfer protocol). SMTP (a simple message passing protocol).. . Discovery and Integration) Schema Use a greater diversity of communications protocols HTTP..
WSDL. Oracle. 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. then “roll back” How Key Web Service Technologies Inter-relate Key technologies are: XML. i2.g. Microsoft. Intel. 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. Must be transactional — i. Ariba. meta-shopping sites Typically use ‘screen scraping’ No transactional element Description stack Discovery stack Web Services Framework How the standards stack up Universal Description. SOAP. 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. Fujitsu and 200 others Wire Description Discovery 5 . if not. SAP. Sun.Key Web Service Concepts Composition Web Services need to be compose-able to build value-added services from primitive generic building blocks e.e. Provisionally hold first items until sure final items can be secured. Intel. Discovery. HP.
NET Platform PCs and Smart Devices User Experiences Visual Studio. 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. Marketplaces.NET Framework Common Language Specification System. 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.NET Microsoft .NET .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 6 .NET Application Services Windows Application Services Web Services Notification Identity Data and System Base Classes ADO.Web Web Services Visual Studio. 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 .How UDDI Works 1.NET Framework System. 2. Software companies. Side by side execution 3.WinForms Controls Drawing Web Forms ASP. search engines.
… RAM. Touch screen. etc.g. 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 .) JIT Compiler MSIL: Microsoft Intermediate Language 7 . colour depth. SOAP) Other Compiler Type Browser Metadata (and code) Profiler Schema Generator Proxy Generator XML encoding (SDL etc..NET Primitive Types All languages adopt framework types So… a string is a string whatever the language Int16 . ROM Floating point File system Threading etc. Flash.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. Keypad.NET Compact Framework Reduced footprint implementation Few assumptions about device Screen size.
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 . XSL.NET Page Controls Controls Controls Disk Evidence Based Security Where did assembly (code. 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 8 .) come from? Site URL Directory Zone (My Computer.ASP. …) Request Language Language Language Compilers Compilers Compilers Response . Internet. Intranet. etc.NET Security Authentication Reliability Deployment BizTalk Server 2000 Business Process Automation Web Services XSD.NET Execution Cycle • Pages are compiled to Intermediate Language code • This code is cached as well as being executed ASP.
This action might not be possible to undo. Are you sure you want to continue?
We've moved you to where you read on your other device.
Get the full title to continue reading from where you left off, or restart the preview.