SlideShare a Scribd company logo
The Software Environment
       Writing WS Consumers
        Writing WS Providers




Consuming, Providing & Publishing WS

               Ioannis G. Baltopoulos

            Department of Computer Science
               Imperial College London


  Inverted CERN School of Computing, 2005
             Geneva, Switzerland




        Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment
                 Writing WS Consumers
                  Writing WS Providers




    The Software Environment
1
      The tools
      Apache Axis

    Writing WS Consumers
2
     Using WSDL2Java

    Writing WS Providers
3
     Using Java2WSDL
     UDDI Overview
     Publishing Services on UDDI




                  Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment
                                              The tools
                    Writing WS Consumers
                                              Apache Axis
                     Writing WS Providers


The Software Environment

  For this tutorial we are going to use the following software
  environment.
      Java
      Producers and Consumers will be based on Java version 1.4.2.
      Eclipse
      THE IDE for writing Java code. Version used is 3.1M4
      Ant
      Build tool used for automating the development process.
      Tomcat
      The Web Application container hosting the WS.
      Axis
      An open source WS implementation for Java; currently in
      version 1.2RC2.

                     Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment
                                                     The tools
                           Writing WS Consumers
                                                     Apache Axis
                            Writing WS Providers


Apache Tomcat (5.0.28)
Installation and Notes




   Web Site
   http://jakarta.apache.org/tomcat/

   Step by step installation
          Download the required ļ¬le from
      1

          http://jakarta.apache.org/site/binindex.cgi#tomcat
          Extract the downloaded ļ¬le in a directory of your choice.
      2


          Start the server from tomcat/bin/startup
      3


          Validate installation by going to http://localhost:8080/
      4




                            Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment
                                                     The tools
                           Writing WS Consumers
                                                     Apache Axis
                            Writing WS Providers


Apache Axis
Installation and Notes


   Web Site
   http://ws.apache.org/axis/

   Step by step installation
          Download the required ļ¬le from
      1

          http://ws.apache.org/axis/releases.html
          Extract the downloaded ļ¬le in a directory of your choice.
      2


          Copy the axis/webapps directory to tomcat/webapps.
      3


          Restart the web server.
      4


          Validate installation by going to
      5

          http://localhost:8080/axis/happyaxis.jsp

                            Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment
                                                 The tools
                       Writing WS Consumers
                                                 Apache Axis
                        Writing WS Providers


Apache Axis
The Purpose of the Application


   Deļ¬nition
   Axis is the means by which SOAP messages are taken from the
   transport layer and are handed to the Web Service and the means
   by which any response is formatted in SOAP messages and sent
   back to the requester.

                                                  Structure of a Webapp
     It is in itself a web application.
                                                  ROOT
     Comes with many useful tools
                                                      WEB-INF
          Java2WSDL
                                                         classes
          WSDL2Java
                                                         lib
          Administration Client
                                                         web.xml
          TCP Monitor
          SOAP Monitor                                   server-config.wsdd

                        Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment
                                                The tools
                      Writing WS Consumers
                                                Apache Axis
                       Writing WS Providers


Apache Axis
Architectural Components



        Axis Engine - The main entry point into the SOAP processor
        Handlers - The basic building blocks inside Axis that link
        Axis to existing back-end systems
        Chain - An ordered collection of handlers
        Transports - Mechanisms by which SOAP messages ļ¬‚ow in
        and out of Axis
        Deployment/Conļ¬guration - Means through which Web
        Services are made available through Axis
        Serializers/Deserializers - Code that will convert native
        datatypes into XML and back.


                       Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment
                                          The tools
                Writing WS Consumers
                                          Apache Axis
                 Writing WS Providers


Axis Architectural Diagram




                 Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment
                       Writing WS Consumers      Using WSDL2Java
                        Writing WS Providers


WS Consumers
The process of writing a consumer




         Locate the wsdl ļ¬le for the service youā€™re interested in.
         Use WSDL2Java to generate the stub classes.
         Writing the actual client code.




                        Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment
                      Writing WS Consumers      Using WSDL2Java
                       Writing WS Providers


WSDL2Java
Command line and options

   A tool for generating glue code in writing consumers and providers.
   Command Line
   java org.apache.axis.wsdl.WSDL2Java wsdl-file

Options                                                       NOTE
                     Used to specify the                      The following ļ¬les must
  -o directory
                     output directory                         be on the CLASSPATH.
                                                                       axis.jar
                     Package speciļ¬cation
  -p package
                                                               commons-discovery.jar
                     for the output ļ¬les
                                                                commons-logging.jar
                     Verbose output
  -v
                                                                      jaxrpc.jar
                     Generate test ļ¬les
  -t
                                                                       saaj.jar
                     Generate server side
  -s
                                                                      wsdl4j.jar
                     code
                       Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment
                       Writing WS Consumers      Using WSDL2Java
                        Writing WS Providers


Example Usage
Using a public weather web service



   Capeclear oļ¬€ers a public weather service where given the location
   code of an airport (ā€LHRā€,ā€LGWā€, etc) it returns a complete
   weather report including temperature, humidity, wind direction.
   Example
   WSDL2Java.bat

   http://live.capescience.com/wsdl/GlobalWeather.wsdl
       -o %PROJECT BASE%srcjava
       -p ch.cern.it.csc
       -v



                        Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment
                      Writing WS Consumers      Using WSDL2Java
                       Writing WS Providers


Generated Files
What gets generated from the WSDL ļ¬le


    WSDL clause                         Java class(es) generated
    For each <type>                     A java class.
                                        A holder if this type is used as an in-
                                        out/out parameter
    For each <portType>                 A java interface
    For each <binding>                  A stub class
    For each <service>                  A service interface.
                                        A service implementation (locator)
    For each <binding>                  A skeleton class
                                        An implementation template class
    For all <services>                  One deploy.wsdd ļ¬le
                                        One undeploy.wsdd ļ¬le


                       Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment
                       Writing WS Consumers      Using WSDL2Java
                        Writing WS Providers


Generated Files
Relationship & Location of generated ļ¬les




                        Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment
                        Writing WS Consumers      Using WSDL2Java
                         Writing WS Providers


Client Code Example
Tying all the generated ļ¬les together!


   Example
   import java.rmi.RemoteException;

   public class Client {
      public static void main(String[] args) {
          ServiceLocator locator = new ServiceLocator();
          ServicePort service = locator.getService();
          try {
              Report report = service.getReport(quot;Statusquot;);
          } catch (RemoteException e) {
              e.printStackTrace();
          }
      }
   }
                         Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment    Using Java2WSDL
                       Writing WS Consumers      UDDI Overview
                        Writing WS Providers     Publishing Services on UDDI


Writing Providers
The two approaches




        Instant Deployment
        Very simple way of providing a Web Service
        Customized Deployment
        More elaborate




                        Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment    Using Java2WSDL
                    Writing WS Consumers      UDDI Overview
                     Writing WS Providers     Publishing Services on UDDI


Instant Deployment

  Step by step
        Copy any Java source ļ¬le that implements a web service into
    1

        the axis directory
            no special code is required
            all public, non-static methods are exposed
            if the class is in a package, copy it to the appropriate
            subdirectory
        Change the ļ¬le extension from .java to .jws
    2


        Place all related .class ļ¬les under WEB-INF/classes
    3


        View the WSDL of a JWS web service using the following
    4

        URL in a web browser
        http://host:port/axis/filename.jws?wsdl


                     Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment    Using Java2WSDL
                      Writing WS Consumers      UDDI Overview
                       Writing WS Providers     Publishing Services on UDDI


Example
An example using Instant Deployment



   A very simple banking web service. The bank allows the following
   four operations
        Create an Account
        Get the balance of an Account
        Withdraw a given amount from an Account
        Deposit a given amount to an Account
   To implement it we will use two basic classes
        A class Account
        A BankingService class



                       Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment    Using Java2WSDL
                 Writing WS Consumers      UDDI Overview
                  Writing WS Providers     Publishing Services on UDDI


The Account class

  public class Account {
       private String number;
       private String owner;
       private double balance;
       public void withdraw(double amount) {
            balance -= amount;
       }
       public void deposit(double amount) {
            balance += amount;
       }
       public double getBalance() {
            return balance;
       }
  }

                  Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment    Using Java2WSDL
                 Writing WS Consumers      UDDI Overview
                  Writing WS Providers     Publishing Services on UDDI


The BankingService class

  public class BankingService {
       public void withraw(Account ac, double amount) {
            ac.withdraw(amount);
       }
       public void deposit(Account ac, double amount) {
            ac.deposit(amount);
       }
       public Account createAccount(String owner) {
            return new Account();
       }
       public double getBalance(Account ac) {
            return ac.getBalance();
       }
  }

                  Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment      Using Java2WSDL
                         Writing WS Consumers        UDDI Overview
                          Writing WS Providers       Publishing Services on UDDI


The Result
A trivial banking service




    Step by step
          Weā€™ve written the code.
      1


          Copy the BankingService ļ¬le under axis.
      2


          Change the ļ¬le extension from .java to .jws
      3


          Compile and copy the Account.class ļ¬le under
      4

          WEB-INF/classes
          View the WSDL of the Banking Service using the following
      5

          URL in a web browser
          http://host:8080/axis/BankingService.jws?wsdl



                            Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment    Using Java2WSDL
                        Writing WS Consumers      UDDI Overview
                         Writing WS Providers     Publishing Services on UDDI


Limitations
The limitations of using instant deployment



   The use of instant deployment is only intended for simple web
   services. Here are some reasons why this is so
         You cannot use packages in the pages
         As the code is compiled at run time you can not ļ¬nd out
         about errors until after deployment.
         There is limited control over the serialization/deserialization
         process.
         The actual source code is placed on the web server
         Sometimes the source code is not available



                         Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment    Using Java2WSDL
                       Writing WS Consumers      UDDI Overview
                        Writing WS Providers     Publishing Services on UDDI


Using Custom Deployment
The process of creating a Web Service


   Step by step
          Write a Facade interface the subsystem you want to expose as
      1

          a Web Service.
          Create a WSDL ļ¬le either manually or by using the
      2

          Java2WSDL tool that comes with Axis.
          Create Bindings using the WSDL2Java tool making sure to
      3

          activate the options for emitting server side code as well as
          deployment descriptors.
          Package all the ļ¬les in a .jar ļ¬le
      4


          Copy the ļ¬le to the WEB-INF/lib
      5


          Use the AdminClient tool to deploy the Web Services to Axis.
      6




                        Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment       Using Java2WSDL
                      Writing WS Consumers         UDDI Overview
                       Writing WS Providers        Publishing Services on UDDI


Java2WSDL
Command line and options



   A tool for generating a WSDL ļ¬le from existing Java code
   Command Line
   java org.apache.axis.wsdl.Java2WSDL wsdl-file

   Options
                                                Speciļ¬es the output ļ¬lename
       -o   filename
                                                Speciļ¬es the URI of the service
       -l   uri
                                                Target namespace of the wsdl
       -n   namespace
                                                Generate test ļ¬les
       -p   package namespace
                                                Verbose output
       -v



                       Ioannis G. Baltopoulos      Consuming, Providing & Publishing WS
The Software Environment    Using Java2WSDL
                    Writing WS Consumers      UDDI Overview
                     Writing WS Providers     Publishing Services on UDDI


Generate Server Side Bindings
Using WSDL2Java




   The next step in the process is generating the server side bindings
   and the deployment descriptors (deploy.wsdd, undeploy.wsdd).
       Run the WSDL2Java tool using the -s and -S options (see
       earlier slides for consumer generation).
       Discard the client speciļ¬c ļ¬les
       Package all the .class ļ¬les in a .jar ļ¬le. Use
                      jar cvf filename.jar file(s)
       Copy the generated ļ¬le into the WEB-INF/lib directory.




                     Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment    Using Java2WSDL
                       Writing WS Consumers      UDDI Overview
                        Writing WS Providers     Publishing Services on UDDI


Service Deployment
Using the AdminClient tool and the .wsdd ļ¬les

   Deployment Descriptor Files
         End with .wsdd (usually named deploy.wsdd and
         undeploy.wsdd)
         Speciļ¬es Axis components to be deployed or undeployed
         Speciļ¬es special type mappings between XML and Java

   Command Line
   java org.apache.axis.client.AdminClient filename.wsdd

   Options
                                       Speciļ¬es the host
           -h host
                                       Speciļ¬es the port
           -p port
                                       Sets the path to the Axis Servlet
           -s servletPath
                        Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment    Using Java2WSDL
                       Writing WS Consumers      UDDI Overview
                        Writing WS Providers     Publishing Services on UDDI


Web Services at CERN
How to structure your projects


      The structure of a new Web
      Services project is exactly the                Structure of a Webapp
      same as a Web Application.                     ROOT
      To start, you can copy the axis                    WEB-INF
      web application to your                               classes
      workspace,                                            lib
                                                            web.xml
      remove the axis-speciļ¬c ļ¬les
                                                            server-config.wsdd
     and you have an empty Web
     Services project!
   NOTE: The server-conļ¬g.wsdd ļ¬le was extracted from the
   axis.jar. This is the ļ¬le that needs to be updated with the contents
   of deploy.wsdd.

                        Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment    Using Java2WSDL
                     Writing WS Consumers      UDDI Overview
                      Writing WS Providers     Publishing Services on UDDI


Web Services at CERN
Where and how to deploy them


   Step by step deployment
         Edit the server-config.wsdd ļ¬le and copy the contents of
     1

         the deploy.wsdd ļ¬le that was created by WSDL2Java.
         Edit the web.xml ļ¬le so that it reļ¬‚ects the name of your
     2

         application and the URL you want to use.
         Pack application in a .war ļ¬le using the following command:
     3


                       jar cvf filename.jar file(s)
         Go to the URL:
     4


                         http://lxb0752.cern.ch/jps
         Point ļ¬le ļ¬eld to your .war ļ¬le and youā€™re done!
     5



   For more information about this speciļ¬c service talk to Michal Kwiatek.
                      Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment    Using Java2WSDL
                       Writing WS Consumers      UDDI Overview
                        Writing WS Providers     Publishing Services on UDDI


UDDI Overview
Universal Description, Discovery and Integration (UDDI)


   Deļ¬nition
   UDDI is a speciļ¬cation for creating distributed Web-based
   registries of Web services. It deļ¬nes
         A UDDI registry which stores information on businesses, the
         services oļ¬€ered by these businesses, and technical information
         about these services.
         The data model and programming API that provides a way
         to publish and locate all kinds of services.

   Speciļ¬cally, UDDI is said to support three kinds of registry data
         White Pages (organizing businesses by name)
         Yellow Pages (organizing businesses by category)
         Green Pages (organizing businesses by service)
                        Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment    Using Java2WSDL
                       Writing WS Consumers      UDDI Overview
                        Writing WS Providers     Publishing Services on UDDI


The Colored Papers
White, yellow and green pages


White Pages
                                                 Yellow Pages
They contain information on a
                                                 Yellow pages contain categorized
business itself, including
                                                 information about the services
      A name,                                    provided by a business.
      Contact details                                   Categorization is done by
                                                        assigning one or more
      Location of the business
                                                        taxonomies to the business.
      Unique identiļ¬ers

   Green Pages
   Green pages contain technical information about a service which a
   business oļ¬€ers. You can ļ¬nd information like
         Service location
         the category to which this service belongs
                        Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment    Using Java2WSDL
                         Writing WS Consumers      UDDI Overview
                          Writing WS Providers     Publishing Services on UDDI


UDDI Data structures
Specifying entries in the Registry

    UDDI deļ¬nes ļ¬ve data type structures to specify an entry in the
    registry. Each of these data structures is represented by an XML
    document, containing both technical and descriptive information.
    These are:



       <businessEntity>
       <businessService>
       <bindingTemplate>
       <tModel>
       <publisherAssertion>


                          Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment    Using Java2WSDL
                   Writing WS Consumers      UDDI Overview
                    Writing WS Providers     Publishing Services on UDDI


Data Structure Details I
  <businessEntity>
  The businessEntity structure contains all descriptive information
  about the business and the services it oļ¬€ers. Information includes
  name and description of the business as well as contact
  information, categorization, and relationships to other businesses.
  This structure can be seen as the top-level structure of the service
  in the registry.

  <businessService>
  Each businessEntity structure contains one or more businessService
  structures. A businessService structure describes a categorized set
  of services a business oļ¬€ers. A businessService element is not
  owned by one businessEntity element, but can be shared among
  multiple businesses.
                    Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment    Using Java2WSDL
                   Writing WS Consumers      UDDI Overview
                    Writing WS Providers     Publishing Services on UDDI


Data Structure Details II
  <bindingTemplate>
  The bindingTemplate structure contains a technical description of
  a service. Each bindingTemplate belongs to a single
  businessService element.

  <tModel>
  One of the key elements of UDDI is the tModel. A tModel
  describes the speciļ¬cation, the behavior, the concept, or even the
  shared design to which a service complies. It provides speciļ¬c
  information about how to interact with this service. The content
  of a tModel structure consists of a key, a name, an optional
  description, and a URL element. The URL, in most cases, points
  to a location where you can ļ¬nd more information about this
  particular tModel. Two conventions have been applied for using
  tModels.
                    Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment    Using Java2WSDL
                   Writing WS Consumers      UDDI Overview
                    Writing WS Providers     Publishing Services on UDDI


Data Structure Details III


  <publisherAssertion>
  The publisherAssertion structure contains information about a
  relationship between two parties asserted by one or both. Many
  businesses, such as large corporations or marketplaces, are not
  eļ¬€ectively represented by a single businessEntity. A
  publisherAssertion can be used to denote the relationship between
  the businesses. The content of a publisherAssertion structure
  consists of a key (fromKey) for the ļ¬rst business, a key (toKey) of
  the second business, and a reference (keyedReference) that
  designates the asserted relationship in terms of a keyName,
  keyValue pair within a tModel.



                    Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment    Using Java2WSDL
                      Writing WS Consumers      UDDI Overview
                       Writing WS Providers     Publishing Services on UDDI


Publishing Services on UDDI
The manual way of doing things




   Step by step installation
          Logon to http://www.uddi.org/
      1


          Select a registry from IBM, Microsoft, SAP or NTT
      2


          Obtain login and password
      3


          Follow the step by step instructions on the website
      4




                       Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS
The Software Environment    Using Java2WSDL
                   Writing WS Consumers      UDDI Overview
                    Writing WS Providers     Publishing Services on UDDI


Concluding Remarks


  In this lecture we saw
      the software environment for developing and deploying Web
      Services in Java
      how to write Web Service consumers
      how to write Web Service providers using instant and custom
      deployment deployment.
      what UDDI is and how to manually publish Web Services to
      the Registry.




                    Ioannis G. Baltopoulos   Consuming, Providing & Publishing WS

More Related Content

What's hot

Moving a Windows environment to the cloud - DevOps Galway Meetup
Moving a Windows environment to the cloud - DevOps Galway MeetupMoving a Windows environment to the cloud - DevOps Galway Meetup
Moving a Windows environment to the cloud - DevOps Galway Meetup
Giulio Vian
Ā 
Jaoo Michael Neale 09
Jaoo Michael Neale 09Jaoo Michael Neale 09
Jaoo Michael Neale 09
Michael Neale
Ā 
Deploying a Kubernetes App with Amazon EKS
Deploying a Kubernetes App with Amazon EKSDeploying a Kubernetes App with Amazon EKS
Deploying a Kubernetes App with Amazon EKS
Laura Frank Tacho
Ā 
Developerā€™s intro to the alfresco platform
Developerā€™s intro to the alfresco platformDeveloperā€™s intro to the alfresco platform
Developerā€™s intro to the alfresco platform
Alfresco Software
Ā 
Configuring was webauth
Configuring was webauthConfiguring was webauth
Configuring was webauth
nagesh1003
Ā 
J boss
J bossJ boss
J boss
jrfx448
Ā 
JBoss started guide
JBoss started guideJBoss started guide
JBoss started guide
franarayah
Ā 
Sql server 2012 ha and dr sql saturday boston
Sql server 2012 ha and dr sql saturday bostonSql server 2012 ha and dr sql saturday boston
Sql server 2012 ha and dr sql saturday boston
Joseph D'Antoni
Ā 
Microservices and containers for the unitiated
Microservices and containers for the unitiatedMicroservices and containers for the unitiated
Microservices and containers for the unitiated
Kevin Lee
Ā 
(ATS4-APP03) Top 10 things every Notebook administrator should know
(ATS4-APP03) Top 10 things every Notebook administrator should know(ATS4-APP03) Top 10 things every Notebook administrator should know
(ATS4-APP03) Top 10 things every Notebook administrator should know
BIOVIA
Ā 
PHP Con09: SVN Advanced
PHP Con09: SVN AdvancedPHP Con09: SVN Advanced
PHP Con09: SVN Advanced
Emiliano Gabrielli
Ā 
Sql Server 2012 HA and DR -- SQL Saturday Richmond
Sql Server 2012 HA and DR -- SQL Saturday RichmondSql Server 2012 HA and DR -- SQL Saturday Richmond
Sql Server 2012 HA and DR -- SQL Saturday Richmond
Joseph D'Antoni
Ā 
JRuby on Rails Deployment: What They Didn't Tell You
JRuby on Rails Deployment: What They Didn't Tell YouJRuby on Rails Deployment: What They Didn't Tell You
JRuby on Rails Deployment: What They Didn't Tell You
elliando dias
Ā 
Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)
Arun Gupta
Ā 
Sql server 2012 ha and dr sql saturday tampa
Sql server 2012 ha and dr sql saturday tampaSql server 2012 ha and dr sql saturday tampa
Sql server 2012 ha and dr sql saturday tampa
Joseph D'Antoni
Ā 
IBM Monitoring and Diagnostics Tools - Health Center 3.0.2
IBM Monitoring and Diagnostics Tools - Health Center 3.0.2IBM Monitoring and Diagnostics Tools - Health Center 3.0.2
IBM Monitoring and Diagnostics Tools - Health Center 3.0.2
Chris Bailey
Ā 
Sql server 2012 ha and dr sql saturday dc
Sql server 2012 ha and dr sql saturday dcSql server 2012 ha and dr sql saturday dc
Sql server 2012 ha and dr sql saturday dc
Joseph D'Antoni
Ā 
(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...
(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...
(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...
BIOVIA
Ā 
JBoss Enterprise Application Platform 6 Troubleshooting
JBoss Enterprise Application Platform 6 TroubleshootingJBoss Enterprise Application Platform 6 Troubleshooting
JBoss Enterprise Application Platform 6 Troubleshooting
Alexandre Cavalcanti
Ā 

What's hot (19)

Moving a Windows environment to the cloud - DevOps Galway Meetup
Moving a Windows environment to the cloud - DevOps Galway MeetupMoving a Windows environment to the cloud - DevOps Galway Meetup
Moving a Windows environment to the cloud - DevOps Galway Meetup
Ā 
Jaoo Michael Neale 09
Jaoo Michael Neale 09Jaoo Michael Neale 09
Jaoo Michael Neale 09
Ā 
Deploying a Kubernetes App with Amazon EKS
Deploying a Kubernetes App with Amazon EKSDeploying a Kubernetes App with Amazon EKS
Deploying a Kubernetes App with Amazon EKS
Ā 
Developerā€™s intro to the alfresco platform
Developerā€™s intro to the alfresco platformDeveloperā€™s intro to the alfresco platform
Developerā€™s intro to the alfresco platform
Ā 
Configuring was webauth
Configuring was webauthConfiguring was webauth
Configuring was webauth
Ā 
J boss
J bossJ boss
J boss
Ā 
JBoss started guide
JBoss started guideJBoss started guide
JBoss started guide
Ā 
Sql server 2012 ha and dr sql saturday boston
Sql server 2012 ha and dr sql saturday bostonSql server 2012 ha and dr sql saturday boston
Sql server 2012 ha and dr sql saturday boston
Ā 
Microservices and containers for the unitiated
Microservices and containers for the unitiatedMicroservices and containers for the unitiated
Microservices and containers for the unitiated
Ā 
(ATS4-APP03) Top 10 things every Notebook administrator should know
(ATS4-APP03) Top 10 things every Notebook administrator should know(ATS4-APP03) Top 10 things every Notebook administrator should know
(ATS4-APP03) Top 10 things every Notebook administrator should know
Ā 
PHP Con09: SVN Advanced
PHP Con09: SVN AdvancedPHP Con09: SVN Advanced
PHP Con09: SVN Advanced
Ā 
Sql Server 2012 HA and DR -- SQL Saturday Richmond
Sql Server 2012 HA and DR -- SQL Saturday RichmondSql Server 2012 HA and DR -- SQL Saturday Richmond
Sql Server 2012 HA and DR -- SQL Saturday Richmond
Ā 
JRuby on Rails Deployment: What They Didn't Tell You
JRuby on Rails Deployment: What They Didn't Tell YouJRuby on Rails Deployment: What They Didn't Tell You
JRuby on Rails Deployment: What They Didn't Tell You
Ā 
Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)
Ā 
Sql server 2012 ha and dr sql saturday tampa
Sql server 2012 ha and dr sql saturday tampaSql server 2012 ha and dr sql saturday tampa
Sql server 2012 ha and dr sql saturday tampa
Ā 
IBM Monitoring and Diagnostics Tools - Health Center 3.0.2
IBM Monitoring and Diagnostics Tools - Health Center 3.0.2IBM Monitoring and Diagnostics Tools - Health Center 3.0.2
IBM Monitoring and Diagnostics Tools - Health Center 3.0.2
Ā 
Sql server 2012 ha and dr sql saturday dc
Sql server 2012 ha and dr sql saturday dcSql server 2012 ha and dr sql saturday dc
Sql server 2012 ha and dr sql saturday dc
Ā 
(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...
(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...
(ATS4-APP01) Tips and Tricks for a Successful Installation of Accelrys Electr...
Ā 
JBoss Enterprise Application Platform 6 Troubleshooting
JBoss Enterprise Application Platform 6 TroubleshootingJBoss Enterprise Application Platform 6 Troubleshooting
JBoss Enterprise Application Platform 6 Troubleshooting
Ā 

Similar to Consuming, providing and publishing Web Services

Jasper report dependencies [by sc]
Jasper report dependencies [by sc]Jasper report dependencies [by sc]
Jasper report dependencies [by sc]
santi caltabiano
Ā 
How to generate a rest application - DevFest Vienna 2016
How to generate a rest application - DevFest Vienna 2016How to generate a rest application - DevFest Vienna 2016
How to generate a rest application - DevFest Vienna 2016
johannes_fiala
Ā 
Java Build Tools
Java Build ToolsJava Build Tools
Java Build Tools
Ā­Avishek A
Ā 
Running Microservices on AWS Elastic Beanstalk
Running Microservices on AWS Elastic BeanstalkRunning Microservices on AWS Elastic Beanstalk
Running Microservices on AWS Elastic Beanstalk
Amazon Web Services
Ā 
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Amazon Web Services
Ā 
JAVA CORE
JAVA COREJAVA CORE
JAVA CORE
Ankit Chauhan
Ā 
Jcon 2017 How to use Swagger to develop REST applications
Jcon 2017 How to use Swagger to develop REST applicationsJcon 2017 How to use Swagger to develop REST applications
Jcon 2017 How to use Swagger to develop REST applications
johannes_fiala
Ā 
Chapter 1 introduction to java technology
Chapter 1 introduction to java technologyChapter 1 introduction to java technology
Chapter 1 introduction to java technology
sshhzap
Ā 
Docker
DockerDocker
Docker
Vitaly Tsaplin
Ā 
Jasper report dependencies [santi caltabiano]
Jasper report dependencies [santi caltabiano]Jasper report dependencies [santi caltabiano]
Jasper report dependencies [santi caltabiano]
santi caltabiano
Ā 
Java
JavaJava
Bn1005 demo ppt core java
Bn1005 demo ppt core javaBn1005 demo ppt core java
Bn1005 demo ppt core java
conline training
Ā 
Dr. Rajeshree Khande :Intoduction to java
Dr. Rajeshree Khande :Intoduction to javaDr. Rajeshree Khande :Intoduction to java
Dr. Rajeshree Khande :Intoduction to java
DrRajeshreeKhande
Ā 
Intoduction to java
Intoduction to javaIntoduction to java
Intoduction to java
jalinder123
Ā 
Docker in production
Docker in productionDocker in production
Docker in production
Mateusz Kutyba
Ā 
Rohit yadav cloud stack internals
Rohit yadav   cloud stack internalsRohit yadav   cloud stack internals
Rohit yadav cloud stack internals
ShapeBlue
Ā 
AWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and DockerAWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and Docker
Amazon Web Services
Ā 
Ibm web sphere application server interview questions
Ibm web sphere application server interview questionsIbm web sphere application server interview questions
Ibm web sphere application server interview questions
praveen_guda
Ā 
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...
Amazon Web Services
Ā 
SF DevOps: Introducing Vagrant
SF DevOps: Introducing VagrantSF DevOps: Introducing Vagrant
SF DevOps: Introducing Vagrant
Mitchell Hashimoto
Ā 

Similar to Consuming, providing and publishing Web Services (20)

Jasper report dependencies [by sc]
Jasper report dependencies [by sc]Jasper report dependencies [by sc]
Jasper report dependencies [by sc]
Ā 
How to generate a rest application - DevFest Vienna 2016
How to generate a rest application - DevFest Vienna 2016How to generate a rest application - DevFest Vienna 2016
How to generate a rest application - DevFest Vienna 2016
Ā 
Java Build Tools
Java Build ToolsJava Build Tools
Java Build Tools
Ā 
Running Microservices on AWS Elastic Beanstalk
Running Microservices on AWS Elastic BeanstalkRunning Microservices on AWS Elastic Beanstalk
Running Microservices on AWS Elastic Beanstalk
Ā 
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Ā 
JAVA CORE
JAVA COREJAVA CORE
JAVA CORE
Ā 
Jcon 2017 How to use Swagger to develop REST applications
Jcon 2017 How to use Swagger to develop REST applicationsJcon 2017 How to use Swagger to develop REST applications
Jcon 2017 How to use Swagger to develop REST applications
Ā 
Chapter 1 introduction to java technology
Chapter 1 introduction to java technologyChapter 1 introduction to java technology
Chapter 1 introduction to java technology
Ā 
Docker
DockerDocker
Docker
Ā 
Jasper report dependencies [santi caltabiano]
Jasper report dependencies [santi caltabiano]Jasper report dependencies [santi caltabiano]
Jasper report dependencies [santi caltabiano]
Ā 
Java
JavaJava
Java
Ā 
Bn1005 demo ppt core java
Bn1005 demo ppt core javaBn1005 demo ppt core java
Bn1005 demo ppt core java
Ā 
Dr. Rajeshree Khande :Intoduction to java
Dr. Rajeshree Khande :Intoduction to javaDr. Rajeshree Khande :Intoduction to java
Dr. Rajeshree Khande :Intoduction to java
Ā 
Intoduction to java
Intoduction to javaIntoduction to java
Intoduction to java
Ā 
Docker in production
Docker in productionDocker in production
Docker in production
Ā 
Rohit yadav cloud stack internals
Rohit yadav   cloud stack internalsRohit yadav   cloud stack internals
Rohit yadav cloud stack internals
Ā 
AWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and DockerAWS Elastic Beanstalk - Running Microservices and Docker
AWS Elastic Beanstalk - Running Microservices and Docker
Ā 
Ibm web sphere application server interview questions
Ibm web sphere application server interview questionsIbm web sphere application server interview questions
Ibm web sphere application server interview questions
Ā 
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...
Ā 
SF DevOps: Introducing Vagrant
SF DevOps: Introducing VagrantSF DevOps: Introducing Vagrant
SF DevOps: Introducing Vagrant
Ā 

More from Ioannis Baltopoulos

Advanced Issues and Future Trends
Advanced Issues and Future TrendsAdvanced Issues and Future Trends
Advanced Issues and Future Trends
Ioannis Baltopoulos
Ā 
Introduction to Web Services
Introduction to Web ServicesIntroduction to Web Services
Introduction to Web Services
Ioannis Baltopoulos
Ā 
The 7 Sins of Software Engineers in HEP
The 7 Sins of Software Engineers in HEPThe 7 Sins of Software Engineers in HEP
The 7 Sins of Software Engineers in HEP
Ioannis Baltopoulos
Ā 
Secure Compilation of a Multi-Tier Web Language (TLDI)
Secure Compilation of a Multi-Tier Web Language (TLDI)Secure Compilation of a Multi-Tier Web Language (TLDI)
Secure Compilation of a Multi-Tier Web Language (TLDI)
Ioannis Baltopoulos
Ā 
Secure Compilation of a Multi-Tier Web Language (Semantics Lunch)
Secure Compilation of a Multi-Tier Web Language (Semantics Lunch)Secure Compilation of a Multi-Tier Web Language (Semantics Lunch)
Secure Compilation of a Multi-Tier Web Language (Semantics Lunch)
Ioannis Baltopoulos
Ā 

More from Ioannis Baltopoulos (6)

Advanced Issues and Future Trends
Advanced Issues and Future TrendsAdvanced Issues and Future Trends
Advanced Issues and Future Trends
Ā 
Introduction to Web Services
Introduction to Web ServicesIntroduction to Web Services
Introduction to Web Services
Ā 
The 7 Sins of Software Engineers in HEP
The 7 Sins of Software Engineers in HEPThe 7 Sins of Software Engineers in HEP
The 7 Sins of Software Engineers in HEP
Ā 
Secure Compilation of a Multi-Tier Web Language (TLDI)
Secure Compilation of a Multi-Tier Web Language (TLDI)Secure Compilation of a Multi-Tier Web Language (TLDI)
Secure Compilation of a Multi-Tier Web Language (TLDI)
Ā 
Secure Compilation of a Multi-Tier Web Language (Semantics Lunch)
Secure Compilation of a Multi-Tier Web Language (Semantics Lunch)Secure Compilation of a Multi-Tier Web Language (Semantics Lunch)
Secure Compilation of a Multi-Tier Web Language (Semantics Lunch)
Ā 
Audio Walks
Audio WalksAudio Walks
Audio Walks
Ā 

Recently uploaded

Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
Ā 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
Ā 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
Ā 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
Ā 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
Ā 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
Ā 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
Pravash Chandra Das
Ā 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Jeffrey Haguewood
Ā 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
Ā 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
Ā 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
GDSC PJATK
Ā 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
Ā 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
Ā 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
Ā 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
Ā 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
Ā 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
Ā 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
Ā 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
saastr
Ā 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
Ā 

Recently uploaded (20)

Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Ā 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Ā 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Ā 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Ā 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Ā 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
Ā 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
Ā 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Ā 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
Ā 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Ā 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
Ā 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Ā 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ā 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
Ā 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ā 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Ā 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Ā 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Ā 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Ā 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Ā 

Consuming, providing and publishing Web Services

  • 1. The Software Environment Writing WS Consumers Writing WS Providers Consuming, Providing & Publishing WS Ioannis G. Baltopoulos Department of Computer Science Imperial College London Inverted CERN School of Computing, 2005 Geneva, Switzerland Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 2. The Software Environment Writing WS Consumers Writing WS Providers The Software Environment 1 The tools Apache Axis Writing WS Consumers 2 Using WSDL2Java Writing WS Providers 3 Using Java2WSDL UDDI Overview Publishing Services on UDDI Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 3. The Software Environment The tools Writing WS Consumers Apache Axis Writing WS Providers The Software Environment For this tutorial we are going to use the following software environment. Java Producers and Consumers will be based on Java version 1.4.2. Eclipse THE IDE for writing Java code. Version used is 3.1M4 Ant Build tool used for automating the development process. Tomcat The Web Application container hosting the WS. Axis An open source WS implementation for Java; currently in version 1.2RC2. Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 4. The Software Environment The tools Writing WS Consumers Apache Axis Writing WS Providers Apache Tomcat (5.0.28) Installation and Notes Web Site http://jakarta.apache.org/tomcat/ Step by step installation Download the required ļ¬le from 1 http://jakarta.apache.org/site/binindex.cgi#tomcat Extract the downloaded ļ¬le in a directory of your choice. 2 Start the server from tomcat/bin/startup 3 Validate installation by going to http://localhost:8080/ 4 Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 5. The Software Environment The tools Writing WS Consumers Apache Axis Writing WS Providers Apache Axis Installation and Notes Web Site http://ws.apache.org/axis/ Step by step installation Download the required ļ¬le from 1 http://ws.apache.org/axis/releases.html Extract the downloaded ļ¬le in a directory of your choice. 2 Copy the axis/webapps directory to tomcat/webapps. 3 Restart the web server. 4 Validate installation by going to 5 http://localhost:8080/axis/happyaxis.jsp Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 6. The Software Environment The tools Writing WS Consumers Apache Axis Writing WS Providers Apache Axis The Purpose of the Application Deļ¬nition Axis is the means by which SOAP messages are taken from the transport layer and are handed to the Web Service and the means by which any response is formatted in SOAP messages and sent back to the requester. Structure of a Webapp It is in itself a web application. ROOT Comes with many useful tools WEB-INF Java2WSDL classes WSDL2Java lib Administration Client web.xml TCP Monitor SOAP Monitor server-config.wsdd Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 7. The Software Environment The tools Writing WS Consumers Apache Axis Writing WS Providers Apache Axis Architectural Components Axis Engine - The main entry point into the SOAP processor Handlers - The basic building blocks inside Axis that link Axis to existing back-end systems Chain - An ordered collection of handlers Transports - Mechanisms by which SOAP messages ļ¬‚ow in and out of Axis Deployment/Conļ¬guration - Means through which Web Services are made available through Axis Serializers/Deserializers - Code that will convert native datatypes into XML and back. Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 8. The Software Environment The tools Writing WS Consumers Apache Axis Writing WS Providers Axis Architectural Diagram Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 9. The Software Environment Writing WS Consumers Using WSDL2Java Writing WS Providers WS Consumers The process of writing a consumer Locate the wsdl ļ¬le for the service youā€™re interested in. Use WSDL2Java to generate the stub classes. Writing the actual client code. Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 10. The Software Environment Writing WS Consumers Using WSDL2Java Writing WS Providers WSDL2Java Command line and options A tool for generating glue code in writing consumers and providers. Command Line java org.apache.axis.wsdl.WSDL2Java wsdl-file Options NOTE Used to specify the The following ļ¬les must -o directory output directory be on the CLASSPATH. axis.jar Package speciļ¬cation -p package commons-discovery.jar for the output ļ¬les commons-logging.jar Verbose output -v jaxrpc.jar Generate test ļ¬les -t saaj.jar Generate server side -s wsdl4j.jar code Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 11. The Software Environment Writing WS Consumers Using WSDL2Java Writing WS Providers Example Usage Using a public weather web service Capeclear oļ¬€ers a public weather service where given the location code of an airport (ā€LHRā€,ā€LGWā€, etc) it returns a complete weather report including temperature, humidity, wind direction. Example WSDL2Java.bat http://live.capescience.com/wsdl/GlobalWeather.wsdl -o %PROJECT BASE%srcjava -p ch.cern.it.csc -v Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 12. The Software Environment Writing WS Consumers Using WSDL2Java Writing WS Providers Generated Files What gets generated from the WSDL ļ¬le WSDL clause Java class(es) generated For each <type> A java class. A holder if this type is used as an in- out/out parameter For each <portType> A java interface For each <binding> A stub class For each <service> A service interface. A service implementation (locator) For each <binding> A skeleton class An implementation template class For all <services> One deploy.wsdd ļ¬le One undeploy.wsdd ļ¬le Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 13. The Software Environment Writing WS Consumers Using WSDL2Java Writing WS Providers Generated Files Relationship & Location of generated ļ¬les Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 14. The Software Environment Writing WS Consumers Using WSDL2Java Writing WS Providers Client Code Example Tying all the generated ļ¬les together! Example import java.rmi.RemoteException; public class Client { public static void main(String[] args) { ServiceLocator locator = new ServiceLocator(); ServicePort service = locator.getService(); try { Report report = service.getReport(quot;Statusquot;); } catch (RemoteException e) { e.printStackTrace(); } } } Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 15. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI Writing Providers The two approaches Instant Deployment Very simple way of providing a Web Service Customized Deployment More elaborate Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 16. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI Instant Deployment Step by step Copy any Java source ļ¬le that implements a web service into 1 the axis directory no special code is required all public, non-static methods are exposed if the class is in a package, copy it to the appropriate subdirectory Change the ļ¬le extension from .java to .jws 2 Place all related .class ļ¬les under WEB-INF/classes 3 View the WSDL of a JWS web service using the following 4 URL in a web browser http://host:port/axis/filename.jws?wsdl Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 17. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI Example An example using Instant Deployment A very simple banking web service. The bank allows the following four operations Create an Account Get the balance of an Account Withdraw a given amount from an Account Deposit a given amount to an Account To implement it we will use two basic classes A class Account A BankingService class Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 18. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI The Account class public class Account { private String number; private String owner; private double balance; public void withdraw(double amount) { balance -= amount; } public void deposit(double amount) { balance += amount; } public double getBalance() { return balance; } } Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 19. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI The BankingService class public class BankingService { public void withraw(Account ac, double amount) { ac.withdraw(amount); } public void deposit(Account ac, double amount) { ac.deposit(amount); } public Account createAccount(String owner) { return new Account(); } public double getBalance(Account ac) { return ac.getBalance(); } } Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 20. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI The Result A trivial banking service Step by step Weā€™ve written the code. 1 Copy the BankingService ļ¬le under axis. 2 Change the ļ¬le extension from .java to .jws 3 Compile and copy the Account.class ļ¬le under 4 WEB-INF/classes View the WSDL of the Banking Service using the following 5 URL in a web browser http://host:8080/axis/BankingService.jws?wsdl Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 21. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI Limitations The limitations of using instant deployment The use of instant deployment is only intended for simple web services. Here are some reasons why this is so You cannot use packages in the pages As the code is compiled at run time you can not ļ¬nd out about errors until after deployment. There is limited control over the serialization/deserialization process. The actual source code is placed on the web server Sometimes the source code is not available Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 22. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI Using Custom Deployment The process of creating a Web Service Step by step Write a Facade interface the subsystem you want to expose as 1 a Web Service. Create a WSDL ļ¬le either manually or by using the 2 Java2WSDL tool that comes with Axis. Create Bindings using the WSDL2Java tool making sure to 3 activate the options for emitting server side code as well as deployment descriptors. Package all the ļ¬les in a .jar ļ¬le 4 Copy the ļ¬le to the WEB-INF/lib 5 Use the AdminClient tool to deploy the Web Services to Axis. 6 Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 23. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI Java2WSDL Command line and options A tool for generating a WSDL ļ¬le from existing Java code Command Line java org.apache.axis.wsdl.Java2WSDL wsdl-file Options Speciļ¬es the output ļ¬lename -o filename Speciļ¬es the URI of the service -l uri Target namespace of the wsdl -n namespace Generate test ļ¬les -p package namespace Verbose output -v Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 24. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI Generate Server Side Bindings Using WSDL2Java The next step in the process is generating the server side bindings and the deployment descriptors (deploy.wsdd, undeploy.wsdd). Run the WSDL2Java tool using the -s and -S options (see earlier slides for consumer generation). Discard the client speciļ¬c ļ¬les Package all the .class ļ¬les in a .jar ļ¬le. Use jar cvf filename.jar file(s) Copy the generated ļ¬le into the WEB-INF/lib directory. Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 25. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI Service Deployment Using the AdminClient tool and the .wsdd ļ¬les Deployment Descriptor Files End with .wsdd (usually named deploy.wsdd and undeploy.wsdd) Speciļ¬es Axis components to be deployed or undeployed Speciļ¬es special type mappings between XML and Java Command Line java org.apache.axis.client.AdminClient filename.wsdd Options Speciļ¬es the host -h host Speciļ¬es the port -p port Sets the path to the Axis Servlet -s servletPath Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 26. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI Web Services at CERN How to structure your projects The structure of a new Web Services project is exactly the Structure of a Webapp same as a Web Application. ROOT To start, you can copy the axis WEB-INF web application to your classes workspace, lib web.xml remove the axis-speciļ¬c ļ¬les server-config.wsdd and you have an empty Web Services project! NOTE: The server-conļ¬g.wsdd ļ¬le was extracted from the axis.jar. This is the ļ¬le that needs to be updated with the contents of deploy.wsdd. Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 27. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI Web Services at CERN Where and how to deploy them Step by step deployment Edit the server-config.wsdd ļ¬le and copy the contents of 1 the deploy.wsdd ļ¬le that was created by WSDL2Java. Edit the web.xml ļ¬le so that it reļ¬‚ects the name of your 2 application and the URL you want to use. Pack application in a .war ļ¬le using the following command: 3 jar cvf filename.jar file(s) Go to the URL: 4 http://lxb0752.cern.ch/jps Point ļ¬le ļ¬eld to your .war ļ¬le and youā€™re done! 5 For more information about this speciļ¬c service talk to Michal Kwiatek. Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 28. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI UDDI Overview Universal Description, Discovery and Integration (UDDI) Deļ¬nition UDDI is a speciļ¬cation for creating distributed Web-based registries of Web services. It deļ¬nes A UDDI registry which stores information on businesses, the services oļ¬€ered by these businesses, and technical information about these services. The data model and programming API that provides a way to publish and locate all kinds of services. Speciļ¬cally, UDDI is said to support three kinds of registry data White Pages (organizing businesses by name) Yellow Pages (organizing businesses by category) Green Pages (organizing businesses by service) Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 29. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI The Colored Papers White, yellow and green pages White Pages Yellow Pages They contain information on a Yellow pages contain categorized business itself, including information about the services A name, provided by a business. Contact details Categorization is done by assigning one or more Location of the business taxonomies to the business. Unique identiļ¬ers Green Pages Green pages contain technical information about a service which a business oļ¬€ers. You can ļ¬nd information like Service location the category to which this service belongs Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 30. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI UDDI Data structures Specifying entries in the Registry UDDI deļ¬nes ļ¬ve data type structures to specify an entry in the registry. Each of these data structures is represented by an XML document, containing both technical and descriptive information. These are: <businessEntity> <businessService> <bindingTemplate> <tModel> <publisherAssertion> Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 31. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI Data Structure Details I <businessEntity> The businessEntity structure contains all descriptive information about the business and the services it oļ¬€ers. Information includes name and description of the business as well as contact information, categorization, and relationships to other businesses. This structure can be seen as the top-level structure of the service in the registry. <businessService> Each businessEntity structure contains one or more businessService structures. A businessService structure describes a categorized set of services a business oļ¬€ers. A businessService element is not owned by one businessEntity element, but can be shared among multiple businesses. Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 32. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI Data Structure Details II <bindingTemplate> The bindingTemplate structure contains a technical description of a service. Each bindingTemplate belongs to a single businessService element. <tModel> One of the key elements of UDDI is the tModel. A tModel describes the speciļ¬cation, the behavior, the concept, or even the shared design to which a service complies. It provides speciļ¬c information about how to interact with this service. The content of a tModel structure consists of a key, a name, an optional description, and a URL element. The URL, in most cases, points to a location where you can ļ¬nd more information about this particular tModel. Two conventions have been applied for using tModels. Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 33. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI Data Structure Details III <publisherAssertion> The publisherAssertion structure contains information about a relationship between two parties asserted by one or both. Many businesses, such as large corporations or marketplaces, are not eļ¬€ectively represented by a single businessEntity. A publisherAssertion can be used to denote the relationship between the businesses. The content of a publisherAssertion structure consists of a key (fromKey) for the ļ¬rst business, a key (toKey) of the second business, and a reference (keyedReference) that designates the asserted relationship in terms of a keyName, keyValue pair within a tModel. Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 34. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI Publishing Services on UDDI The manual way of doing things Step by step installation Logon to http://www.uddi.org/ 1 Select a registry from IBM, Microsoft, SAP or NTT 2 Obtain login and password 3 Follow the step by step instructions on the website 4 Ioannis G. Baltopoulos Consuming, Providing & Publishing WS
  • 35. The Software Environment Using Java2WSDL Writing WS Consumers UDDI Overview Writing WS Providers Publishing Services on UDDI Concluding Remarks In this lecture we saw the software environment for developing and deploying Web Services in Java how to write Web Service consumers how to write Web Service providers using instant and custom deployment deployment. what UDDI is and how to manually publish Web Services to the Registry. Ioannis G. Baltopoulos Consuming, Providing & Publishing WS