Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Web Services ASP.NET Web Services Goals of ASP.NET Web services: To enable cross-platform, crossbusiness computing Great for “service” based operations that have few methods: Google searches, Amazon integration, etc. ASP.NET Web services are “method-oriented”, not objectoriented Everything is passed by value: no references to server objects ASP.NET Web Services Usually uses SOAP over HTTP POST – platform independent messages Hosted in IIS Can use built-in authentication and encryption via IIS Technically stateless, but can use regular ASP.NET Session variables Very easy to use, with good support in Visual Studio.NET Doesn’t support: Events / callbacks Object references Standards-Based SOAP (Simple Object Access Protocol) WSDL (Web Service Description Language) Document describing the message exchange contract DISCO (Discovery) XML-based protocol for messaging Simple protocol for publishing available services UDDI (Universal Description Discovery and Integration) Yellow pages directory for services SOAP Simple Object Access Protocol XML based protocol to exchange structured and typed information Remote Procedure Calls (RPC) Serialization Rules (XSD) Extensible WSDL Web Service Definition Language An XML-based grammar for describing the capabilities of Web Services Extensible Jointly developed by Microsoft and IBM Similar in concept to IDL, but it’s not IDL To parse WSDL you need XML parser UDDI Universal Description, Discovery and Integration A project to speed interoperability and adoption for web services Standards-based specifications for service description and discovery Shared operation of a business registry on the web Partnership among industry and business leaders Open process with clear roadmap to a standards body Overview of XML Web Service Architectures UDDI (XML Web Service Broker) Internet Bind XML Web Service Consumer XML Web Service Provider Web Services As an Implementation of a Service-Oriented Architecture UDDI IIS .NET Web Service SOAP Any Client Web Services (In Practice) Find a Service http://www.uddi.org UDDI Link to DISCO or WSDL document Discovery Web Service Consumer http://yourservice.com HTML or XML with link to WSDL How do we talk? (WSDL) http://yourservice.com/?WSDL XML with service descriptions Let me talk to you (SOAP) http://yourservice.com/svc1 XML/SOAP BODY Design-Time or Dynamic Runtime Web Service XML Web Services Mapping The .NET Framework provides a bi-directional mapping Application Concepts Web Framework Data XML Objects Schema XSD Classes Services WSDL Methods Invocation SOAP Calls Simple Example <%@ WebService Language="C#" Class="HelloWorld" %> using System; using System.Web.Services; public class HelloWorld : WebService { [WebMethod] public String SayHelloWorld() { return "Hello World"; } } SOAP Simple Object Access Protocol XML-based standard that defines how method calls can be made over HTTP, and how the server’s response should be formatted You need to know it because in certain circumstances where you might want to use SOAP to exchange special “meta” information along with each method call SOAP Elements Envelope (mandatory) Top element of the XML document representing the message Header (optional) Determines how a recipient of a SOAP message should process the message Adds features to the SOAP message such as authentication, transaction management, message routes, etc… Body (mandatory) Exchanges information intended for the recipient of the message. Typical use is for RPC calls and error reporting. POST /HelloWorld/Hello.asmx HTTP/1.1 Host: localhost Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://tempuri.org/Add" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope …> <soap:Header> <AuthHeader xmlns="http://tempuri.org/"> <Username>avi</Username> <Password>xM76w@</Password> </AuthHeader> </soap:Header> <soap:Body> <Add xmlns="http://tempuri.org/"> <a>23</a> <b>44</b> </Add> </soap:Body> </soap:Envelope> SOAP Fault Used to carry error and/or status information within a SOAP message Appears within the SOAP body Defines the following: faultcode (mandatory) Faultstring (mandatory) faultactor (optional) Detail SOAP Fault Example <SOAP:Fault> <faultcode>SOAP:Server</faultcode> <faultstring>Internal Application Error</faultstring> <detail xmlns:f=“http://www.a.com/CalculatorFault”> <f:errorCode>794634</f:errorCode> <f:errorMsg>Divide by zero</f:errorMsg> </detail> </SOAP:Fault> Soap Extensions Creating Create a class derived from SoapExtension Create a class derived from SoapExtensionAttribute Overload the constructor if necessary Define any custom properties Overload the ‘ExtensionType’ property to return the type of your derived SoapExtension class Apply the attribute to a web method or web service class Soap Extensions Uses Used for More Advanced Functionality Intercept Calls to a Web Service Intercept Calls to a Web Method Pre and Post Processing Tracing Encryption Compression