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