webservices, application servers and further concepts

26
VIII.1 WebServices, Application Servers and further concepts

Upload: quasar

Post on 14-Jan-2016

35 views

Category:

Documents


0 download

DESCRIPTION

WebServices, Application Servers and further concepts. SOAP (Simple Object Access Protocol). Protocol for remote object calls Developed by Microsoft, IBM, Lotus and other partners; Standardization through IETF (Internet Engineering Task Force) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: WebServices, Application Servers and further concepts

VIII.1

WebServices, Application Servers and further concepts

Page 2: WebServices, Application Servers and further concepts

VIII.2

SOAP (Simple Object Access Protocol)

• Protocol for remote object calls

• Developed by Microsoft, IBM, Lotus and other partners; Standardization through IETF (Internet Engineering Task Force)

• Encoding of calls and parameters via XML (eXtensible Markup Language)

• Realization with HTTP, therefore transferable via Firewalls; especially useful for Internet (in Intranet there is no Firewall-Problem !)

• new security mechanisms are also usable, based on XML (XML Encryption; XML Signature)

Page 3: WebServices, Application Servers and further concepts

VIII.3

SOAP

• independence of special programming languages, however usable with mappings of Java, C++ etc.

• Because of embedding in HTTP, SOAP is less efficient than direct communication with RMI / IIOP / .NET

• no reference parameters, no automatic garbage collection (goal: limitation to a minimal functionality)

• Usable for synchronous calls to objects, but also asynchronous interactions are supported (e.g. Message Passing)

Page 4: WebServices, Application Servers and further concepts

VIII.4POST /BankServer HTTP/Host: www.bank.comContent-Type: text/xmlContent-Length: nnnnSOAPMethodNeme: Some-Namespace-URI#getBalance

<SOAP: Envelope xmlns: SOAP=“urn:schemas-xmlsoap-org:soap“><SOAP: Header>

<t: Transaction xmlns: t=“some-URI“ SOAP: mustUnderstand=“1“>328</t: Transaction>

</SOAP:Header><SOAP: Body>

<m: getBalance “xmlns: m=“Some-Namespace-URI“><AccountIdentification>

<AccountNumber>3044005</AccountNumber><pin>****</pin><name>John Smith</name>

</AccountIdentification></m: getBalance>

</SOAP: Body></SOAP: Envelope>

SOAP: example (method call)

Page 5: WebServices, Application Servers and further concepts

VIII.5

SOAP: example (answer of server)

HTTP 200 okConnection: closeContent-Type: text/xmlContent-Length: nnnn

<SOAP: Envelope xmlns: SOAP= “urn: schemas-xmlsoap-org: soap“><SOAP: Body>

<m:getBalance xmlns: m= “Some-Namespace-URI/ “><return> -1350.50 </return>

</m: getBalance> </SOAP: Body>

</SOAP: Envelope>

Page 6: WebServices, Application Servers and further concepts

VIII.6

SOAP: encoding structure

• embedding in HTTP POST Requests and accompanying responses

• Envelope: definition of logical names and possible specification of own encoding rules for parameter types

• Header: transfer of implicit control parameters (remark: „transaction“ in this context means only request/response-interaction)

• Body: real encoding of call and parameters

Page 7: WebServices, Application Servers and further concepts

VIII.7

SOAP: data type definition (example)

<element name= “AccountIdentification“>

<complexType>

<element name= “accountNumber“ type=“xsd:int“/>

<element name= “pin“ type=“xsd:int“/>

<element name= “name“ type=“xsd:string“/>

</complexType>

</element>

• also all other essential data types specifiable (e.g. (variable) arrays, enumerations etc.)

• Possibility of representation of data types of common programming languages

Page 8: WebServices, Application Servers and further concepts

VIII.8

WebServices

• manufacturer-independent initiative for Web-based services

• base: standardized protocols (e.g. SOAP / XML) and middleware-platforms (Application Server)

• definition: „encapsulated, loosely coupled functions, which are accessible over standard protocols“

• Interface description using WSDL (WebServices Description Language)

• binding of services over UDDI (Universal Description, Discovery and Integration); comparable with Directory Service;http://www.uddi.org

Page 9: WebServices, Application Servers and further concepts

VIII.9

WebServices

• security architecture WS (WebServices)-Security: in addition to SOAP for digital signatures (PKI – Public Key Infrastructure) and encoding

• also extension of firewalls for functions of checking authentication and authorization of SOAP-communication via „http“ („Port 80“)

• altogether: framework for description of network-wide services , which is specialized by manufacturers by system solutions, among others IBM, Microsoft, Sun, BEA Systems etc.

• standardization through W3C andWeb Services Interoperability Organization

Page 10: WebServices, Application Servers and further concepts

VIII.10

WebServices

UDDI Registry

Web Services Client

Web Services Container / Runtime

BusinessApplication

(e.g. on the base of EJB,

further distributed internally)

WSDL

SOAP

DiscoveryDescription

Firewall

Page 11: WebServices, Application Servers and further concepts

VIII.11

WSDL (WebServices Description Language)

example (shortened):<binding name=“BankServer“ type=“tns:BankServerPortType“>

<soap:binding style = “rpc“ transport = “http://... “/>

<operation name = “getBalance“>

<soap:operation soapAction = “urn:xmethodsBankServer“/>

<input> ... </input>

<output> ... </output>

</operation>

</binding>

Call modes: oneway ; request-response (Client/Server)

notification ; solicit-response (Server/Client)

Page 12: WebServices, Application Servers and further concepts

VIII.12

WebServices: possible use phases

1. Closed application fields : e.g. automation of office processes incl. legacy-integration

2. “Selective Outsourcing”: access to services of external partners

with close contractual relationship

1. “Dynamic Business-Web”: Interaction of many loosely coupled systems; e.g. between manufacturers and suppliers

2. “Agile company”: comprehensive integration, also with customer - and partner enterprises

Page 13: WebServices, Application Servers and further concepts

VIII.13

WebServices: Summary

• comfortable, web-based call mechanism

• also applicable via firewalls using SOAP / HTTP

• possibility of automatic generation of interface descriptions from design representations through tools

• but: no replacement of EJB or .NET, but access technology from client to server, especially over Internet

Page 14: WebServices, Application Servers and further concepts

VIII.14

Message Oriented Middleware

• Products : IBM MQ Series, BEA MessageQ, Tibco etc.

• Base: Messages, Queues with Queue Manager

• Dynamic coupling between application and local Queues based on logon / logout

• Use of Queues for sending or receiving; also mixed use is possible

• Coupling of distributed Queue Managers via Message Channels

• C++-and Java-Support (conformant to JMS)

• use of XML (eXtensible Markup Language) for description of transferred contents

• support of essential OS-platforms

Page 15: WebServices, Application Servers and further concepts

VIII.15

Example scenario

PC A

Queue Manager

Queue Manager

Appli-cation

1 MQPUT

MQGET

PC B

Queue Manager

Queue Manager

appli-cation

2MQGET

MQPUT

MessageChannel

decoupling of applications through Queue Manager:

Message forwarding is possible even if application isn’t running

Page 16: WebServices, Application Servers and further concepts

VIII.16

N:M - communication

A

B

C

D

EQueue, with

optional support of message priorities

Access to Servervia multiple Clients

Load balancing (selective delivery) orParallel processing (replicated delivery)

Page 17: WebServices, Application Servers and further concepts

VIII.17Message Queuing: Assessment

Advantages+ simple manageability+ robust message delivery + flexible application fields (for instance load balancing,

parallelization, batch-transmission of branch data etc.)+ relevant for easy coupling of programs, for instance via Internet,

or for Mobile ComputingDisadvantages- limited communication semantics- interaction model is different than with procedures/method

invocations- limited accessibility of higher services- only several proprietary solutions up to now, only step-by-step

standardization

Page 18: WebServices, Application Servers and further concepts

VIII.18

Application Servers

• interface-server between Web/Java-Client and services of enterprise data processing („middle-tier“)

• Tasks:– data- and call adaptation

– legacy-integration; transactions

– access control

– load sharing

Page 19: WebServices, Application Servers and further concepts

VIII.19Architecture

HTML-Client

Java-Client

Transaction-Monitors

Businesssoftware

Mainframe-applications

Data bases

oute

r F

irew

all

Inne

r F

irew

all

Web-Server

HTML-Dokumente

HTML-DokumenteHTML-

Dokumente

HTML-DokumenteHTML-

Documents

HTML-Documents

HTML-Dokumente

HTML-DokumenteHTML-

Dokumente

HTML-Dokumente

CGI-Scripts

(optional)

CGI-Scripts

(optional)

Application-Server

proprietaryProtocols

proprietaryProtocols

proprietaryProtocols

HTTP

Stateless-connection

Stateful-connection

Java RMI, Internet Inter-ORB Protocol, SOAP

HTTP

Page 20: WebServices, Application Servers and further concepts

VIII.20Development cycle

UML (Unified Modeling Language)

CORBA / EJB / .NET

CORBA, EJB Container,

.NET

Generation Instantiation

layout / modeling componentdevelopment

Installation /Deployment

runtime/ component use

requests

user

Page 21: WebServices, Application Servers and further concepts

VIII.21

Modeling and Generation

UML

CORBA / EJB / .NET

layout / modeling

componentdevelopment

<?xml version="... "?<component name="Bank"><interface name="Bank">

Component description

XML (eXtensible Markup Language) as intermediate representation:• Standardization, Portability• Formalization (DTD - Document Type Definition or XML schema)• tool support

Generation

Page 22: WebServices, Application Servers and further concepts

VIII.22Interface description in XML („XMI“)

<interface name="Bank"><superclass> General </superclass><operation name="TransferRequest">

<visibility> public </visibility><returnType> long </returnType><oneway> false </oneway>

</operation><attribute name="Description">

<type> string </type><visibility> public </visibility><isReadonly> true </isReadonly>

</attribute></interface>

Page 23: WebServices, Application Servers and further concepts

VIII.23Application Servers

Essential functionality:• Development and distribution of Java applications (“Three-Tier”)• scalability (>100 Server, >10000 Clients): Multithreading, connection

reuse etc.• Component model (Enterprise JavaBeans, .NET etc.)• Support of transactions• Access to distributed data bases (Oracle, MS SQL Server, Sybase, DB2)• security (Authentication, access control)• Support of actual Java APIs (JDBC, JNDI, JMS etc.)• Replication and load sharing • Integration of development environment (e.g. IBM Websphere Studio,

Borland JBuilder, BEA Weblogic Workshop, MS Visual J++ / J#, C#, Rational Rose, Arcstyler etc.)

• Support of WWW-services (e.g. installation of HTML, Servlets etc.)

Page 24: WebServices, Application Servers and further concepts

VIII.24Enterprise Application Integration (EAI)

Goal:• Integration of different applications (Backend)• examples:

- Enterprise Resource Planning (ERP)- Customer Relationship Management (CRM)- Supply Chain Management (SCM)

Technological Base:• Middleware and Application Servers

(e.g. of IBM, BEA, Forte etc.)• Additional product specific adapters

Integration approaches:• Data integration• Interface based integration (API-Integration)• Workflow- / Process-oriented integration (complex processes with more

than 5 applications)

Page 25: WebServices, Application Servers and further concepts

VIII.25Enterprise Application Integration

Products:

- BEA Systems eLink - adapter for SAP R/3 Integration

- Delta Software Technology, Vienna: SCORE/ Integration Suite

- WRQ VeraStream EAI Suite: SAP R/3 Integration

- Sybase Integration Services:SAP, Peoplesoft, Oracle (ERP)Siebel, Vantive (CRM)

Page 26: WebServices, Application Servers and further concepts

VIII.26

Application Servers: Product examples

• BEA Weblogic• IBM Websphere• Borland Application Server• IONA Orbix• Oracle Application Server / .Now• Sybase Enterprise Application Server• Sun: Open Net Environment (One) / iPlanet• Software AG EntireX• Microsoft .NETOpen Source, among others:• Enhydra• Jonas• Jboss• Zope etc.