250 likes | 421 Views
Current Trends in Network-Based Application Developments. Bill Chu Department of Software and Information Systems UNC Charlotte. Web Service. Likely the next architecture for internet based business computing
E N D
Current Trends in Network-Based Application Developments Bill Chu Department of Software and Information Systems UNC Charlotte
Web Service • Likely the next architecture for internet based business computing • A web service communicates over a network to supply a specific set of operations (methods) that other applications can invokes © Bei-Tseng Chu Oct 2002
Web service and screen scrapping • Many early web services implementations are deployed to replace “screen scrapping” • Rather than pulling data off web sites with the implicit understanding of the data format, which is subject to change, web services can obtain data in XML and application standards © Bei-Tseng Chu Oct 2002
Architectural difference • Current Web applications (including servlets) are based on a client-server architecture • When a servlet talks to another servlets, one is taking on the role of a client • Web services are equal, or peer to peer • Three-tier model with key differences • Loosely coupled • Based on ubiquitous architecture • The promise of open standards © Bei-Tseng Chu Oct 2002
Web server Web application server Business object Business object Data base Business object Business object Business object Business object Multi-tire architecture Browser Web services © Bei-Tseng Chu Oct 2002
Web service examples • www.xmethods.net, www.salcentral.com • Ziplocator service • Dollar Rental Car • Zagat Survey (restaurant and hotel info) • Credit authorization • Human Resource outsource service © Bei-Tseng Chu Oct 2002
Brokering Architecture Subscribe: service description Service Broker Service Provider 1 Client Subscribe: service description Service Provider 2 © Bei-Tseng Chu Oct 2002
Brokering Architecture Subscribe: service description Service Broker Service Provider 1 Recommend: service description Service Provider 2 Client Subscribe: service description Service Provider 2 © Bei-Tseng Chu Oct 2002
Brokering Architecture Service Broker Service Provider 1 Request Client Service Provider 2 Response © Bei-Tseng Chu Oct 2002
XML-RPC: forerunner to SOAP • XML formatted message • Using HTTP Post to transmit the message • Enable any web service with CGI interface to accept the message • Universal acceptance, even through firewalls! • Many implementations: www.xmlrpc.com © Bei-Tseng Chu Oct 2002
An example XML-RPC Request POST /RPC2 HTTP/1.0 User-Agent: Frontier/5.1.2 (WinNT) Host: someserver.com Content-Type: text/xml Content-length: 181 <?xml version=“1.0”?> <methodCall> <methodName> lookup.getStateFromAreaCode </methodName> <params> <param> <value> <int> 512 </int> </value> </param> </params> </methodCall> © Bei-Tseng Chu Oct 2002
An example of Response to the Request HTTP/1.1 200 OK Connection: close Content-length: 158 Content-Type: text/html Date: Fri, 17 Jan 2001 11:50:13 GMT Server: UserLand Frontier/5.1.2-WinNT <?xml version=“1.0”?> <methodResponse> <params> <param> <values> <string>Texas</string></value> </param> </params> </methodResponse>s © Bei-Tseng Chu Oct 2002
SOAP (Simple Object Access Protocol) • SOAP defines XML based format for sending messages • Envelope • Data encoding • RPC convention • Unlike XML-RPC, SOAP tries to be neutral to transportation protocol • HTTP • SMTP • Java Message Service • .Net also uses SOAP as the RPC mechanism © Bei-Tseng Chu Oct 2002
A generalized SOAP architecture HTTP SMTP SOAP Envelope SOAP Server Server Application FTP JMS Others © Bei-Tseng Chu Oct 2002
Deployment Descriptor (APPACHE) <isd:service xmlns:isd=“http://xml.apache.org/xml-soap/deployment” id=“urn:Publications”> <isd:provider type=“java” scope=“Application” methods=‘getPubCount getModDate getByCode”> <isd:java class=“com.lanw.soapsrvr.PubsServer” static=“false”/> </isd:provider> <isd: faultListener> org.apache.soap.server.DOMFaultListener </isd:faultListener> </isd:service> © Bei-Tseng Chu Oct 2002
Java methods for the server package com.lanw.soapsrvr; Import java.util.*; Import org.w3c.dom.Element; Public class PubsServer { //…. Public Element getByCode( String code) throws SOAPException { //…. } /…. } © Bei-Tseng Chu Oct 2002
Client using the service //…. URL url = new URL(“http”, “www.soap.uncc.edu”, 8080, “soap/servlet/rpcrouter”); Call call = new Call(); call.setMethodName(“getByCode”); Vector params = new Vector(); Params.addElement(new Parameter(“param”,String.class,”1234”, Constants.NS_URI_SOAP_ENC)); call. setParams(params); Try { resp=call.invoke(url, “ “); } catch (SOAPException e) { //… } © Bei-Tseng Chu Oct 2002
Universal Description, Discovery, and Integration (UDDI) • Directory for web services • XML formatted information for • Contact points “white page” • Industry classification “yellow pages” • Web service discovery “green page”, technical information • UDDI registry © Bei-Tseng Chu Oct 2002
Web Service Description Language (WSDL) • Defines a web/network service • End point • Accepts messages • Key elements of a web service • Documentation – English description • Types – data type (e.g. structure) • Message – message format • PortType – Java class and their operations • Binding – protocols for message or portType • Service – Specifies web addresses • WSDL description may be automatically generated based on Java class definitions © Bei-Tseng Chu Oct 2002
Microsoft .Net • A framework for network-based application development • Provides a middleware for web-services to communicate with each other • Specifically designed to address the following problems • Lack of consistent access • Proprietary data formats • Isolation of information © Bei-Tseng Chu Oct 2002
.Net components • Cross language interoperability • Allows components written in different programming languages to work with each other • Use • Inheritance • Self-describing components • Common Type System • Application domain • Unit of processing and security policy enforcement • .NET My Service • Streamline the use of authentication information © Bei-Tseng Chu Oct 2002
Example of cross language interoperability: • Box Class in C# Public class Box{ Public Double Length, Width, Height; Public Box () { Length=0; Width=0; Height=0; print();} public void print() { System.Console.WriteLine(“Length=“+Length.ToString()+”Width=“Width.ToString() +”Height=“Height.ToString());} } • VB.NET Simple Inheritance Public Class Car : Inherits Box Private iAxils as Integer Property Axils as Integer Get Axils=iAxils End Get Set iAxils = Value End Set End Property End Class © Bei-Tseng Chu Oct 2002
.net: Microsoft Intermediate Language (MSIL) • All .net applications are compiled into this language • Preserves metadata about the components • Verified for type safety • JIT compiled into native assembly language for execution © Bei-Tseng Chu Oct 2002
ASP.NET • Solve the following problems of classic ASP • Interpreted ASP/VB scripts • Lack of maintainability as all components are contained in one file • State Management • Use of COM objects/lack of interoperability © Bei-Tseng Chu Oct 2002
.NET My Service • User store identity information in the Passport. • Web services can cooperate and share information under the control of information owner • Routing: specify the routing path of a SOAP message and also what part of the message is intended for which receiver • Referral: how a SOAP intermediary can modify the routing • Security: SOAP does not address message security. • Credentials: authenticate the origin of the message • Integrity: verification of message integrity (digital signature) • Confidentiality: encryption of SOAP messages • Microsoft Passport • Provide a single Internet identity accepted by many sites • User authentication by sites can be handled indirectly through MS Passport server system • A single passport ID and password can get one into multiple sites © Bei-Tseng Chu Oct 2002