VIII.1 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)
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)
VIII.4 POST /BankServer HTTP/ Host: Content-Type: text/xml Content-Length: nnnn SOAPMethodNeme: Some-Namespace-URI#getBalance **** John Smith SOAP: example (method call)
VIII.5 SOAP: example (answer of server) HTTP 200 ok Connection: close Content-Type: text/xml Content-Length: nnnn
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
VIII.7 SOAP: data type definition (example) also all other essential data types specifiable (e.g. (variable) arrays, enumerations etc.) Possibility of representation of data types of common programming languages
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;
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 and Web Services Interoperability Organization
VIII.10 WebServices UDDI Registry Web Services Client Web Services Container / Runtime Business Application (e.g. on the base of EJB, further distributed internally) WSDL SOAP Discovery Description Firewall
VIII.11 WSDL (WebServices Description Language) example (shortened):... Call modes: oneway ; request-response (Client/Server) notification ; solicit-response (Server/Client)
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
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
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
VIII.15 Example scenario PC A Queue Manager Queue Manager Appli- cation 1 MQPUT MQGET PC B Queue Manager Queue Manager appli- cation 2 MQGET MQPUT Message Channel decoupling of applications through Queue Manager: Message forwarding is possible even if application isn’t running
VIII.16 N:M - communication A B C D E Queue, with optional support of message priorities Access to Server via multiple Clients Load balancing (selective delivery) or Parallel processing (replicated delivery)
VIII.17 Message 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 Computing Disadvantages - 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
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
VIII.19 Architecture HTML- Client Java- Client Transaction- Monitors Business software Mainframe- applications Data bases outer Firewall Inner Firewall Web-Server HTML- Dokumente HTML- Documents HTML- Dokumente CGI- Scripts (optional) CGI- Scripts (optional) Application- Server proprietary Protocols HTTP Stateless-connection Stateful-connection Java RMI, Internet Inter-ORB Protocol, SOAP HTTP
VIII.20 Development cycle UML (Unified Modeling Language) CORBA / EJB /.NET CORBA, EJB Container,.NET Generation Instantiation layout / modeling component development Installation / Deployment runtime/ component use requests user
VIII.21 Modeling and Generation UML CORBA / EJB /.NET layout / modeling component development <?xml version="... "? Component description XML (eXtensible Markup Language) as intermediate representation: Standardization, Portability Formalization (DTD - Document Type Definition or XML schema) tool support Generation
VIII.22 Interface description in XML („XMI“) General public long false string public true
VIII.23 Application 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.)
VIII.24 Enterprise 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)
VIII.25 Enterprise 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)
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.NET Open Source, among others: Enhydra Jonas Jboss Zope etc.