I have written about creating WebServices in ABAP several times in the past.
However creating great WebServices doesn’t do you any good if no one can find them. That’s why today I would like to talk about how you can easily publish these WebServices to an external UDDI server using some of the nice new functionality in WebAS 640.
Now I should say upfront that WebAS 640 J2EE has a built in UDDI server. I’m not really going to talk about that one, because it is so integrated and easy to use. SAP has already done a good job of documenting its use in their online help. At my company our Global IT environment encompasses more than just SAP applications. We have developers working in other programming languages (mostly Visual Studio.Net) than just ABAP. For that reason, my company decided a while back to use the Microsoft UDDI server as our Global repository. So that is the example that I will shared with you today. I will share the steps that I used to setup the connection between our WebAS 640 system and the Microsoft UDDI Server running on Windows 2003. I will then show how easy it is to publish into this remote server.
External UDDI System Configuration
Let’s start out by logging onto the Microsoft UDDI server. By logging in we will verify that we have the correct address. We will also verify our role, which should be at least a Publisher for the later steps to work properly.
Before we leave the External UDDI system, we will want to setup a Business Entity (or as it is called in the Microsoft Tools and Documentation – a Provider). I went to my Publish Menu Option. I then went to the Providers Tab of the My UDDI entry and choose Add Provider.
Adding the provider really only involves giving it a name. I choose to name mine as KEG.SAP (KEG is my Business Unit Identifier). You should notice that your Provider has a Unique Key generated for it. It listed on the Details tab under Provider Key: In the example I have you see my key is 17bc7d27-c005-44b6-96d7-5d6eb89b2bdf. Write this down or remember where it was. We will need this key later when we do our setup in SAP.
If you leave the publish mode and go to Search from the menu, you should now be able to find your Provider. If everything looks good from the Search, we know that we are ready to start our configuration in SAP.
We are going to start our configuration inside SAP by going to SM59 to setup two RFC Destinations. Every UDDI server will need two RFC destinations of type HTTP Connections to Ext. Server (Type G). One connection is used for Inquiry and the other is used for Publishing. On the first screen we will enter the Target Connection settings. For Inquire with the Microsoft UDDI our Path will be /uddi/inquire.asmx. For Publishing it will be /uddi/publish.asmx.
So that I can test my connections before I move on, I am going to go ahead and insert my User credentials in the Logon/Security tab.
When you do a test connection you should receive a screen that looks like the following. Pay special attention to the ~status_code value to make sure you are making a good connection.
Next up we will tell SAP about our UDDI Server. We configure a registration for a UDDI server via Transaction SUDDIREG. This is actually just generated table maintenance for Transparent Table UDDICL_REG. In here we will Create a name and description for our UDDI Server. Next we will supply a version. If you are using the integrated UDDI in Microsoft Server 2003, this version should be 2.0. Next up we will supply the names of the two RFC destinations we just created – One of Inquire and one of Publish. Next we can supply the User Credentials that will have access to publish in the external UDDI server. Now remember that key that I asked you to remember earlier. The unique key for the Provider that we generated in the external UDDI system is what we supply for the Default Bus. Entity.
We should be all ready to try our first publish now. We will start off by publishing just a Web Service Definition. The Web Service Definition is not to be confused with the Web Service itself. The Web Service Definition in SAP will only create the tModel in the UDDI Server. To do this we can pull the Web Service Definition up in SE80. In the Editor we have the third tab called UDDI. For here we can view the UDDI servers we are published in. We can also publish to a new server, or edit the information we have already published. When we request an action, we will need to select the UDDI registry that we just configured. The default User Name and password should pull in from the configuration.
From here we can even update the details of our Published Web Service Definition. If we choose to display or edit the published information, SAP will launch a BSP application that interacts directly with the remote UDDI server. This is nice if you have to work with multiple external UDDI servers, but don’t want to learn all of their user interfaces. As you can see from this screen shot however, most of the user interface is still only in German (even though I am logged onto the system in English – Screen shoot from WebAS 640 SP9).
Now that we have published our First tModel, let’s jump over to the Microsoft UDDI Server and have a look at it. I will just do a simple wild card search for all tModels. The Web Service Definition we just published should now show up here.
Publishing the Web Service Definition is really only half of the task. Now we have to publish the Service itself. To do this we can go to transaction WSADMIN. From here we should see all of our released Web Services. If you need to release a Web Service, go to transaction WSCONFIG.
If we go into the details on a Web Service from this screen, we can see UDDI Publications at the bottom of the screen. We can hit the pencil to Publish the service itself.
We can now return to our External UDDI server once again. This time we will search via our Provider. We should now be able to see in the explorer window the hierarchy of our Service and its associated tModel.
I realize that the examples that I have given here today are very specific to the environment that I was working in (Microsoft UDDI 2003). However I hope that even if you don’t work in this environment, that you have been able to see what is possible with the SAP Web Service technology.