Configure IIS for Web Services Call in.

Author: i.sharp@pcisystems.co.uk (Iain Sharp)

We'd like to configure our IIS server to allow web services call in for automated update of the application at customer site.

The examples are all for configuring Apache Tomcat. I'm unsure how to configure wsdl in IIS.
Does anyone have any experience of this?

Iain

16 Comments

  1. Iain,

    What probelms do you encounter?

    Basically, when the redirector from IIS to tomcat is configured, then webservices can also be found.

    You might test this with:

    1. put the wsdl file into tomcats WEB-INF/wsdl, eg mysoapservice.wsdl
    2. browse to http://localhost:80/uniface/services/mysoapservice?wsdl
    3. check the binding at the end of the file

    Maybe additional some configuration to the redirector is needed. This can be done in uriworkermap.properties, e.g.:

    default.worker=defworker

    # Mount the dynamic context (only servlet part)
    /uniface/testwrd/*=$(default.worker)
    /uniface/services/*=$(default.worker)
    /uniface/wrd/*=$(default.worker)
     

    Sjaak


    Author: sjaak (sjaak.van.schie@uniface.com)
  2. Mostly my problems are that we have no idea how to set up and configure tomcat, nor the redirector.

    From your answer I presume we have to be running tomcat, and point the IIS at it somehow?

    We have basically got an out of the box installation of windows 2003 SBS, with JTi installed. We have no network admin as such, and there does not appear to be a step by step guide on how to get the ting up and running from the files provided by Compuware.


    Author: Iain Sharp (i.sharp@pcisystems.co.uk)
  3. Iain,

     

    So you have the IIS and uniface urouter seperated. Then you need to setup Tomcat and the redirector yourself.

    Setting up the redirector is basically described in the documentation "Configure IIS to use Tomcat".

    You can for example:

    1. create a directory C:\inetpub\jakarta
    2. copy redirector DLL into it (from the Uniface installation)
    3. create isapi_redirect.properties (settings for redirector)
    4. create workers.properties (define workers for dispathing to Tomcat)
    5. create uriworkmap.properties (map URLs to a worker)
    6. create IIS virtual directory and configure this (check documentation)
    7. install tomcat version 5.5.x from tomcat.apache.org, or copy this from Uniface installation
    8. or let this run on the computer where the urouter is running

    Example of isapi_redirect.properties:

    #
    # Configuration file for Jakarta Isapi Redirector 1.0
    # Check the JK 1.2 Documentation of Tomcat 5.5 for more information
    #

    ps=\

    # Log level (debug, info, warn, error or trace)
    #log_level=info
    log_level=error
    #log_level=debug
    #log_level=trace

    # Full path to the log file for the ISAPI Redirector
    log_file=C:\inetpub\jakarta\isapi_redirect.log

    # The path to the ISAPI Redirector Extension, relative to the website
    # This must be in a virtual directory with execute privileges
    extension_uri=/jakarta/isapi_redirect.dll

    # Full path to the workers.properties file
    worker_file=C:\inetpub\jakarta\workers.properties
     
    # Full path to the uriworkermap.properties file
    worker_mount_file=C:\inetpub\jakarta\uriworkermap.properties
     

     

    Example of workers.properties:

    #
    # Simple workers configuration file
    # Check the JK 1.2 Documentation of Tomcat 5.5 for more information
    #

    ps=\

    # List all workers
    worker.list=defworker

    # Redefining the worker named defworker of type ajp13
    worker.defworker.port=8009
    worker.defworker.host=server1
    #worker.defworker.type=ajp13
    worker.defworker.lbfactor=1
    # Specify the size of the open connection cache.
    #worker.defworker.cachesize

    # Specifies the load balance factor when used with a load balancing worker.
    worker.loadbalancer.type=lb
    worker.loadbalancer.balanced_workers=defworker

     

     

    example of uriworkermap.properties:

    #
    # Simple uri worker map configuration file
    # Check the JK 1.2 Documentation of Tomcat 5.5 for more information
    #

    tomcat1.worker=defworker

    # Mount only dynamic content (only servlet part)
    # Then virtual directory must point to static content
    #/uniface/testwrd/*=$(tomcat1.worker)
    #/uniface/services/*=$(tomcat1.worker)
    #/uniface/wrd/*=$(tomcat1.worker)

    # Mount all content (static + dynamic)
    /uniface/*=$(tomcat1.worker)
     

    Regards,
    Sjaak


    Author: sjaak (sjaak.van.schie@uniface.com)
  4. Iain,

    We are probably not in sync. I was taking about SOAP call-in via IIS to Uniface. The documentation and samples is geared to that.
    We don't have documentation on enabling SOAP. This is more aspx stuff than Uniface. Microsoft Visual Studio can be used for that.

    Sjaak


    Author: sjaak (sjaak.van.schie@uniface.com)
  5. This is where I'm unsure. I'd basically like to use web services, (WSDL) to call our machine here from the customers' machines to check if there's an update for the software and download it... So both ends are Uniface. It seem to be really easy except for the initial step of getting all the various server apps to tal;k to each other on our production server.


    Author: Iain Sharp (i.sharp@pcisystems.co.uk)
  6. SOAP is an procedural call over HTTP.

    So your e.g. operation check_version has as input <cust_name> <cust_passwd> <used_version>
    and the output is <newest_version> <errorstring>

    and then operation download_version has as input <cust_name> <cust_passwd> <version>
    and the output is <zipped_binary> <errorstring>

    After calling check_version you can call download_version.

    The setup is indeed a bit complex when it's not on a machine where Uniface is installed. When you backend was installed from the CD the ther Tomcat and urouter is installed.
    Only IIS needs to be manual configured so that the redirector is used. Support can supply additional info for this. The documentation is a bit outdated.

    It's handy to first have it running in your local enviromnent and that configure IIS andso. You also can install uniface on this 2003 computer and delete everthing but tomcat directory (and the java).
    Then you can modify the setup.
    The installer does not install Tomcat as a service.

    Good luck


    Author: sjaak (sjaak.van.schie@uniface.com)
  7. Hi there,
    formerly we used IIS with the ISAPI to do all the Uniface stuff. But this is not needed. Try to get familiar with the Tomcat because it does all the work for Uniface. And then there is only one Webserver to take care of.

    I switched to pure Tomcat at CU2008 after my config had gone unreadable ;) ... Maybe this will be a challenge to switch to Tomcat but you will have to get familiar with atleast one product- ... so why dont just skip IIS ?

    Good Luck to you

    -GHAN-


    Author: -GHAN- (hansen@ahp-gmbh.de)
  8. Do you really mean that you need Tomcat installed, handling an Uniface web-service via IIS??

     Regards RogerW.


    Author: rogerw (roger.wallin@abilita.fi)
  9. no, actually you only need the Tomcat. The IIS is simply obsolete ;) Actually I don't know the reason why anyone configured an ISAPI to get all this running instead of writing a good documentation on how to configure the Tomcat. So to answer it in short words:

    Tomcat will handle SOAP (it's only a http-request), Uniface and all normal WEB requests. IIS will, if configured, only handle ALL requests to Tomcat and waste ressources.

    Cheers,

    -GHAN-


    Author: -GHAN- (hansen@ahp-gmbh.de)
  10. I mostly don't know what I need.
    We run exchange & JTi from this server already. The urouter is running on this server, and I want to be able to call a service on this urouter as a web service from a remote machine.

    We currently have IIS installed and configured to run the JTi installation, so I probably don't want to mass with that. The consensus appears to be that I need Tomcat running as well as a sort of secondary web server to handle the SOAP request.

    I was mostly wondering if IIS would handle the redirect to urouter directly, or if I'd have to configure Tomcat as well. (Seems I will).

    Which then leaves me confused as to exactly which buttons I press to get Tomcat to start on server boot etc. etc. (The sample instructions seem to give me a Tomcat process running in a shell on the desktop and if I kill the shell, the Tomcat goes down.)

    And then further, how to get IIS to route the relevant SOAP calls to Tomcat to route to urouter. (Which I think is answered upthread, but can't tell because I don't know how to do the first bit.....)


    Author: Iain Sharp (i.sharp@pcisystems.co.uk)
  11. OK, now it's a bit more clear to me.

    Tomcat, or any other Java based web server, is used to route the WEB HTTP or SOAP request to the urouter. This is done by the Uniface WRD or SRD.

    You can have IIS and Tomcat running seperately or integrate them using the isapi redirector. Tomcat and this integration is installed when you install the web part of Uniface. You probably have that. However Tomcat is not installed as a service. You can do this yourself by running the 'service.bat' script in the tomcat\bin directory. You might need to set the JAVA_HOME correctly. Uniface installation uses a sligthly modified startup.bat file to set environment variables, so similar changes are needed to the service.bat file.

    The redirector is not needed. You can seperate the two, so put the static WSDL files in an IIS virtual directory and let them bind to the location of the Uniface SOAP service in tomcat.
    You only need to open the tomcat http port in the firewall.
    This is the most easy solution, then you are able to put the customer updates on a different computer later on. Any tweaking can be done in the tomcat\conf\server.xml file.


    Author: sjaak (sjaak.van.schie@uniface.com)
  12. I think the missing piece to this puzzle is that IIS does not run a java servlet engine.  Tomcat has a simple HTTP front end that can act as a web server in place of IIS, but what Uniface really needs from Tomcat is the Java Servlet engine.  Both the WRD and SRD (latter required for SOAP call-in) are Java servlets that initiate the connection to Urouter, no matter where Urouter runs.  Have a look at :

    <uniface installation>\apache-tomcat-5.5.15\webapps\uniface\WEB-INF\web.xml  and you will see the instructions to Tomcat on where to find the WRD and SRD as well as instructions to WRD and SRD on how to find a URouter.

    So if you find you want IIS to support JTi (and ASP), use the suggested ISAPI redirector to Tomcat, and you can then access Web Services call-in to Uniface services.

    Cheers,

    Eddy.


    Author: Eddy Knochs (eknochs@ozemail.com.au)
  13. Yepp, thats right! IIS can't do the JAVA.

    In order to get Tomcat to handle the static assets (like jpgs, css, js and whatever is needed in a html file) put it to the <INSTALLDIR>\webapps\ov\web directory.

    Furthermore change the default port for Tomcat from whatever(should normally listen on port 8080) to port 80 in <INSTALLDIR>\conf\server.xml. And thats it!

    The JTi server should imho use Tomcat aswell since it is Java ... ;) But, I'm not an expert on JTi ... Ask me about WHY USP and NOT DSP and I'm your man!

    Cheers,

    -GHAN-

     

    PS: @ EDDY : Why do you use ASP?! I don't want you to convert to something else ... just curious about it ;))


    Author: -GHAN- (hansen@ahp-gmbh.de)
  14. Hi,

    The choice of programming languages, operating systems etc. is usually not a choice made by the programmer but a strategic decision made on quite a different level. My first impression is that it will be more difficult to sell web-programs, web-services etc. to our customers (VAR) if they already have IIS installed and you have to tell them that also Apache Tomcat has to be installed. But perhaps that's just a normal way to make a servlet engine available for IIS. 

    Regards RogerW.


    Author: rogerw (roger.wallin@abilita.fi)
  15. @Roger

    You are right and its all a matter of choice. Microsoft and Java is not a very happy marriage, especially after the diforce of MS-Java. In the past JRun was a very nice and easy product to use.

    However having the WRD as a Servlet allows it to be run on a large number of web-servers. JBoss, WebSphere, BEA, it's all very easy to install. We cannot always foresee the future.

    Customers, like you, are welcome to make a wish and explain the 'burden' that this configuration and installation is causing you.


    Author: sjaak (sjaak.van.schie@uniface.com)
  16. ... ah .. I see ;)

    Personally we used IIS aswell as I mentioned in the beginning. But nobody really needs it (here). So i focus upon Tomcat and its capabilities. Of course we had some script things running, like PHP and so on. But by now we just use Uniface as the plattform doing what needs to be done. All this feels very "cool" at the moment- it runs slick and is under full control.

    And of course it makes me a happy man who hasn't  to  take care of all the vulnerabilities that comes along with PHP (It really scares my pants off, while inspected the tried hacks on our web site which runs under PHP ... at the moment). So ... hello USP ... bye bye PHP ;)

    Nice weekend to you guys and thx for the chat.

    -GHAN-


    Author: -GHAN- (hansen@ahp-gmbh.de)