Current Trends in Network-Based Application Developments
Download
Report
Transcript Current Trends in Network-Based Application Developments
Current Trends in NetworkBased 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
Multi-tire architecture
Web server
Web application
server
Browser
Business
Data base
object
Business
Business
Business
object
object
Web services
object
Business
Business
object
object
© 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
Service
Broker
Client
Subscribe: service
description
Subscribe: service
description
© Bei-Tseng Chu Oct 2002
Service
Provider 1
Service
Provider 2
Brokering Architecture
Recommend: service
description
Service
Broker
Subscribe: service
description
Service
Provider 1
Service Provider 2
Client
Subscribe: service
description
© Bei-Tseng Chu Oct 2002
Service
Provider 2
Brokering Architecture
Service
Broker
Service
Provider 1
Request
Client
Response
© Bei-Tseng Chu Oct 2002
Service
Provider 2
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
Unlike XML-RPC, SOAP tries to be neutral to
transportation protocol
Envelope
Data encoding
RPC convention
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
SOAP
Envelope
SOAP
Server
JMS
Others
© Bei-Tseng Chu Oct 2002
Server
Application
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
Key elements of a web service
End point
Accepts messages
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
Self-describing components
Common Type System
Application domain
Use
Inheritance
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