Current Trends in Network- Based Application Developments Bill Chu Department of Software and...
-
Upload
eustacia-perry -
Category
Documents
-
view
215 -
download
1
Transcript of Current Trends in Network- Based Application Developments Bill Chu Department of Software and...
Current Trends in Network-Based Application Developments
Bill ChuDepartment of Software and
Information SystemsUNC Charlotte
© Bei-Tseng Chu Oct 2002
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
Multi-tire architecture
Web serverWeb application
serverBrowser
Data baseBusiness
object
Business
object
Business
object
Business
object
Business
object
Business
object
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
Client
ServiceBroker Service
Provider 1
Service Provider 2
Subscribe: service description
Subscribe: service description
© Bei-Tseng Chu Oct 2002
Brokering Architecture
Client
ServiceBroker Service
Provider 1
Service Provider 2
Subscribe: service description
Subscribe: service description
Recommend: service description
Service Provider 2
© Bei-Tseng Chu Oct 2002
Brokering Architecture
Client
ServiceBroker Service
Provider 1
Service Provider 2
Request
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 RequestPOST /RPC2 HTTP/1.0User-Agent: Frontier/5.1.2 (WinNT)Host: someserver.comContent-Type: text/xmlContent-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 RequestHTTP/1.1 200 OKConnection: closeContent-length: 158Content-Type: text/htmlDate: Fri, 17 Jan 2001 11:50:13 GMTServer: 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
FTP
JMS
Others
SOAPEnvelope
SOAPServer
ServerApplication
© 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 serverpackage 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 InheritancePublic Class Car : Inherits Box
Private iAxils as IntegerProperty Axils as Integer
Get Axils=iAxils End GetSet iAxils = Value End Set
End PropertyEnd 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