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
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 March 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 March 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 March 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 March 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 March 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 March 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 March 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 March 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 March 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 March 2002
A generalized SOAP
architecture
HTTP
SMTP
FTP
SOAP
Envelope
SOAP
Server
JMS
Others
© Bei-Tseng Chu March 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 March 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 March 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 March 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 March 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 March 2002