1 / 20

WEB 服务初级编程

WEB 服务初级编程. 祝伟华 网络新型服务技术中心. 内容. 分布式计算 互联网分布式计算标准 定义 发布 使用 其它特性. 分布式计算. Procedure Call Remote Procedure Call (RPC) Tuxedo CORBA RMI/IIOP/EJB 基于浏览器客户端分布式计算 Rich Client JAVA APPLET JAVASCRIPT/AJAX COM/COM+/DNA Web Service/SOAP/SOA. Internet. 互联网分步式计算. Devices, Browsers.

rogersi
Download Presentation

WEB 服务初级编程

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. WEB服务初级编程 祝伟华 网络新型服务技术中心

  2. 内容 • 分布式计算 • 互联网分布式计算标准 • 定义 • 发布 • 使用 • 其它特性

  3. 分布式计算 • Procedure Call • Remote Procedure Call (RPC) • Tuxedo • CORBA • RMI/IIOP/EJB • 基于浏览器客户端分布式计算 • Rich Client • JAVA APPLET • JAVASCRIPT/AJAX • COM/COM+/DNA • Web Service/SOAP/SOA

  4. Internet 互联网分步式计算 Devices,Browsers Vertical andportal service Access Application Call Services Application App-specificWeb Service Building blockWeb Service OS andlocal services Web ServicesContract

  5. 基于互联网分布式计算标准 • HTTP • XML • SOAP (Simple Object Access Protocol) • Web Service Description Language (WSDL) • DISCO • UDDI (Universal Discovery, Description, and Integration )

  6. Request disco Discovery Return disco (XML) Request WSDL Description Return WSDL (XML) Request .asmx Protocol Return response (XML) WEB服务架构 Web Service Web Service Client

  7. 定义 • WebService Directive (页面定义) • Settings for ASP.NET compilers <%@ WebService Language=value Class=value %> • WebMethod Attribute (后台代码定义) • Code Declaration Syntax • Outline • Inline (in C#) <%@ WebService Class=“MyClass.MyWebService“ %> <%@ WebService Language=“C#“ Class=“MathService“ %>using System.Web.Services;public class MathService : WebService { [ WebMethod ]...

  8. 定义 <%@ WebService Language=“C#“ Class=“MathService“ %>using System;using System.Web.Services;public class MathService{ [WebMethod] public int Subtract(int a, int b) { return a - b; } public int Subtract_vs(int a, int b) { return b - a; }}

  9. 发布 • Expose Web Service and Web Service methods • Create a Web Service proxy and an assembly • Generate proxy with WebServiceUtil tool • Create an assembly • Enables developers to program against Web Services • Publish WSDL contract and HTML description • Web Service clients • Can be Web applications or browsers • 思考: 代理类, SOAP协议间数据如何传递和转换?

  10. 发现 • .disco file • XML-based file • containing links to resources for retrieving WSDL • Stored in the server‘s root directory • Access via URL and dynamic discovery document • Start discovering with the WebServiceUtil tool • Automatically created by Visual Studio.NET • Global directory of Web Services through UDDI • Universal Discovery, Description, and Integration (http://www.uddi.org)

  11. 使用 Web ServiceDeveloper Web ApplicationDeveloper Web Server 1 Service App asmx .aspx Web Server 2 Service App Proxy Web Form

  12. 使用 • Create client proxy class • Input: • WSDL contract • Proxy language and protocol • Output: • Single source file in specified language, containing: • Proxy class • Code for network invocation and marshalling • Command-line example: • webserviceutil /c:proxy /l:C# /namespace:MathServiceSpace MathService.sdl

  13. 使用 • Request without method name and parameters • HTML description of Web Service • Service capabilities, methods, protocols • Web Service can return WSDL • HTTP-GET, HTTP-POST, and HTTP-SOAP • Request with parameter “?SDL” • Formal WSDL description of Web Service • XML-based grammar • Can be used as input for WebServiceUtil.exe

  14. 使用 (通过HTTP协议) • Web Services are URL addressable • HTTP request • Protocols • HTTP-GET • Method name and arguments in URL • HTTP-POST • Method name and arguments in POST body • HTTP-SOAP • XML grammar for • Addressing the Web Service • Returning results

  15. 使用 (HTTP/GET/POST) • http://server/appl/service.asmx/method?param=value • Standard HTTP-GET • Method name = PATHINFO • Method arguments = URL query string • Query string key = parameter name • Multiple parameters • Only primitive .NET runtime data types • Result is an XML document • Any .NET data type • HTTP-POST • Similar to GET, but with arguments in the form body

  16. 使用 (HTTP/SOAP调用) • XML grammar for • Web Service method, method parameters, results • Supports all standard .NET data types and value classes • Additionally: classes, structs, datasets • Class and struct marshalling • Serialization in XML format

  17. WSDL • XML grammar, defining: • Services and ports that communicate via messages • Binding • Specify a protocol or a data format for a message or a port • Extensions for SOAP 1.1, HTTP GET/POST, and MIME • Public description of a Web Service and its content • WSDLcontract • Core Elements of WSDL • service, port, and portType • operations and messages

  18. WSDL <definitions name=“serviceName“> <import namespace=“http://namespacePath“ location=“http://path/fileName.wsdl“> <portType name=“portNameType“> <operation name=“opName“> <input message=“msgNameInput“ /> <output message=“msgNameOutput“ /> </operation> </portType> <binding> <soap:operation soapAction=“http://...“ /> </binding> <service name=“serviceName“> <port name=“portName“ binding=“bindingName“> <soap:address location="http://..." /> </port> </service></definitions>

  19. 高级特性 • 状态管理 • 安全性 • 事务处理

  20. SOA • Service Oriented Architecture • EAI (Enterprise Application Integration)

More Related