Current Trends in Network-Based Application Developments

clappingknaveΛογισμικό & κατασκευή λογ/κού

14 Δεκ 2013 (πριν από 3 χρόνια και 3 μήνες)

72 εμφανίσεις

Current Trends in Network
-
Based Application
Developments

Bill Chu

Department of Software and
Information Systems

UNC 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 server

Web application


server

Browser

Data base

Business

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

Service

Broker

Service

Provider 1

Service

Provider 2

Subscribe: service
description

Subscribe: service
description

© Bei
-
Tseng Chu Oct 2002

Brokering Architecture

Client

Service

Broker

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

Service

Broker

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 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

FTP

JMS

Others

SOAP

Envelope

SOAP

Server

Server

Application

© 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