Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Presentation: SOAP in a distributed object framework, Application Servers & AXIS SOAP Outline • SOAP and Web Services in relation to Distributed Objects • The AXIS Project – Open Source Java SOAP Server – – – – Introduction to the Apache Tomcat Application Server Introduction to the AXIS Project How to code a very simple example How to install Slide 2 af 20 Ingeniørhøjskolen i Århus SOAP & Web Services in relation to Distributed Objects SOAP and Distributed Objects • SOAP in it self has nothing to do with objects • There probably is SOAP API’s for C and COBOL – actually this also holds true for CORBA – king of OO-middleware • The trick is the supporting API’s converting objects to WSDL and SOAP for serialization across the network • Using the Proxy Pattern for decoupling • We shall be looking at Microsofts .NET Web service technology (using Microsoft Visual Studio .NET) at a later point, while we now will focus on the open source community, targeting specifically Java with the AXIS toolkit Slide 4 af 20 Ingeniørhøjskolen i Århus Frameworks for Web Services & The AXIS Project – Open Source Java SOAP Server How to make a Web service with SOAP • You need an application or API capable of supporting: – – – – – Communication over the Internet (HTTP) Security (SSL) XML Parsing capabilities Tools for WSDL handling / stub generation and more • Two examples of this: – Apache Tomcat Application Server with AXIS – Microsoft Internet Information Server with .NET • We will use them both – though starting with the Apache Tomcat Application Server and the AXIS project – this will be introduced here – Other Web service frameworks: • AXIS for C++ • Sun’s Java Web Services Developer Pack (http://java.sun.com/webservices/index.jsp) Slide 6 af 20 Ingeniørhøjskolen i Århus Apache Tomcat Application Server • Apache Project is an open source initiative – widely supported by Sun & IBM (but not Microsoft) – Including a huge amount of free coding effort from both • It consist of a long range of projects including: – Apache Web Server • • • • The most used web server in the world (and its free!) The most secure, with SSL cap., and NT, Linux & UNIX support Huge amount of ”plug-in” modules One of these being the Apache Tomcat AS – Apache Tomcat Application Server • Capable of running JAVA applications • JSP/Servlets (J2EE reference implementation) • And projects embedded into this – – The AXIS Project • The former Apache SOAP Server • Runs embedded in Tomcat Slide 7 af 20 Ingeniørhøjskolen i Århus Apache Tomcat AS • Works on: – Windows, UNIX, LINUX, Mac – Can be compiled to any platform (with some work) • Can be found at: – http://jakarta.apache.org/tomcat/index.html • Server listening for events: – HTTP on port 8080 (optional) – Executes Servlets/JSP and JAVA applications – AXIS is an embedded project within the Tomcat environment Common code base! SOAP Client Java, C++, C#, Delphi, VB Application SOAP over HTTP Web Server Apache / MS IIS Slide 8 af 20 AS/SOAP Server (Tomcat with AXIS) JSP/ Servlet Object Web Service Object Ingeniørhøjskolen i Århus AXIS Project • Provides us with a suitable framework • Runs embedded in Apache Tomcat – just download – http://xml.apache.org/axis/ • But can run on ANY J2EE compliant Application Server – BEA Weblogic, IBM WebSphere, Sun Java System Application Server • Supports full WSDL • Supports SOAP communication via: – HTTP, SMTP, FTP and open for extension • Build in security, log, error and fault handling (some are still “under construction”) • Tools for WSDL Stub & Skeleton creation: – WSDL2Java & – Java2WSDL • Flexible deployment system Slide 9 af 20 Ingeniørhøjskolen i Århus Developing applications with AXIS How to get started • As opposed to Java RMI and CORBA, we do not necessarily have to start with the interface • All we need is a Java class or interface, and the toolkit will generate the WSDL interface for us • We call this the JWS (Java Web Service) Instant Deployment scenario • This approach has some limitations however, as we shall look into at a later point, but for now lets try this out Slide 11 af 20 Ingeniørhøjskolen i Århus JWS Deploying the Calculator class Lets assume we have an existing class we want deployed as a Web service: All deployment that needs to be done is to rename the java source file, and copy it to the axis webapps root Slide 12 af 20 Ingeniørhøjskolen i Århus And that’s it! Potential clients my read the WSDL which is auto-generated by axis And so – we have a Web service listening Slide 13 af 20 Ingeniørhøjskolen i Århus Building the dynamic client First we must define the end-point Do we have all the Arguments from the user? Did the user choose To subtract or add? Slide 14 af 20 Ingeniørhøjskolen i Århus Building the dynamic client II Convert to integer Create a service and a call Set the end-point & the operation name Add the arguments & set the return type invoke the web service Output the return value Slide 15 af 20 Ingeniørhøjskolen i Århus Running the client Running this: Should result in this: Slide 16 af 20 Ingeniørhøjskolen i Århus That was easy! • Yes – but not beautiful • Won’t this become very complex with non trivial Web services? – Problem when parameters are non-atomic types – Handling of references? • Where has the Access Transparency gone? • What about Location Transparency? Slide 17 af 20 Ingeniørhøjskolen i Århus Lessons to be learned • We have actually made our own “client proxy stub” • Can you make your own “client proxy stub” – so that the client application becomes “access transparent”? • In fact, we shall look closer at the toolkits abilities next time and the more advanced features • Also, the JWS Instant Deployment is only for simple class structures, it will not be as easy otherwise Slide 18 af 20 Ingeniørhøjskolen i Århus The AXIS Project – How to Install How to Install • We do not need the Apache Web Server – As Tomcat has its own HTTP capabilities • Start with Apache Tomcat Application Server – http://jakarta.apache.org/tomcat/index.html • Test installation is OK • Then Install the AXIS Project – http://xml.apache.org/axis/ • I have prepared a brief installation help document to be found at the course web site Slide 20 af 20 Ingeniørhøjskolen i Århus