Thursday, September 28, 2006

Using the ISB UDDI #2

pencil icon, that"s clickable to start editing the post

The UDDI Programmers API (version 2) defines the canonical webservice to read (inquire) and create, update and delete (publish), having the complete CRUD. In an earlier entry i created a service binding so that Axis2 WSDL2Code. Having done that I'm ready to query the ISB UDDI.

In fact ready might be to strong a word since the data model (called datastructure) used in UDDI and the programmers API ain't that straight forward. It took me some time tot grasp the concept of TModel.

My personal conclusion is that the the TModel in itself is simple, but the usage of it to describe services turns out complex - often seen that when (some genius) designs something that is truely generic it becomes complex to use since it's 1.5 lightyear away from the domain (super abstract). The TModel has a very simple syntax, but the semantics is very complex ex. to describe that a service complies to the WS-I basic profile you can reference a certain TModel. A reference to this TModel says (claims) that the service adheres to all the rules of the Basic Profile 1.0.

A simple request to find all TModels in the UDDI:
    1 <?xml version="1.0"?>
    2 <find_tModel generic="2.0" xmlns="urn:uddi-org:api_v2">
    3   <name>%</name>
    4 </find_tModel>
gives the following response (today):
    1 <?xml version="1.0"?>
    2 <tModelList generic="2.0"
    3             operator="Infostructurebase"
    4             truncated="false"
    5             xmlns="urn:uddi-org:api_v2"
    6             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    7             xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    8   <tModelInfos>
    9     <tModelInfo tModelKey="uuid:58d13127-4fa3-4ea6-be64-00cbf28d2adb">
   10       <name>&lt;New tModel Name></name>
   11     </tModelInfo>
   12     <tModelInfo tModelKey="uuid:fec43882-3f7a-4839-8f75-e8df39ad7a1a">
   13       <name>&lt;New tModel Name></name>
   14     </tModelInfo>
   15     <tModelInfo tModelKey="uuid:7349f186-7b61-445e-a08c-7a2f6fec4f88">
   16       <name>&lt;New tModel Name></name>
   17     </tModelInfo>
   18     <tModelInfo tModelKey="uuid:0b30faa4-e11f-4f8e-af5a-9397de522b78">
   19       <name>&lt;New tModel Name></name>
   20     </tModelInfo>
   21     <tModelInfo tModelKey="uuid:def573e7-b934-429e-9738-0ee00033d8ac">
   22       <name>&lt;New tModel Name></name>
   23     </tModelInfo>
   24     <tModelInfo tModelKey="uuid:058a7d8a-1aaf-44af-9266-d84c51fb57e5">
   25       <name>&lt;New tModel Name></name>
   26     </tModelInfo>
   27     <tModelInfo tModelKey="uuid:1b59a7ac-b033-47d2-8545-eb5e80aac28a">
   28       <name>&lt;New tModel Name></name>
   29     </tModelInfo>
   30     <tModelInfo tModelKey="uuid:ff773864-974a-4f3e-9651-c0b1a0b35a45">
   31       <name>&lt;New tModel Name></name>
   32     </tModelInfo>
   33     <tModelInfo tModelKey="uuid:d17aa135-135c-419e-beb7-96dec9ef06e4">
   34       <name>&lt;New tModel Name></name>
   35     </tModelInfo>
   36     <tModelInfo tModelKey="uuid:420e5da9-0c88-4346-9fcc-5e8dccf34f20">
   37       <name>AN08002</name>
   38     </tModelInfo>
   39     <tModelInfo tModelKey="uuid:a74c1065-c400-4c8a-b5fd-490c314cf102">
   40       <name>Authentication requirement taxonomy</name>
   41     </tModelInfo>
   42     <tModelInfo tModelKey="uuid:21611e2d-b22b-4ceb-b51b-cf596ccd8111">
   43       <name>AuthorityCode_xmltools</name>
   44     </tModelInfo>
   45     <tModelInfo tModelKey="uuid:3195e510-9c07-4e14-a45c-f6cf62b8ae6a">
   46       <name>delete serv2</name>
   47     </tModelInfo>
   48     <tModelInfo tModelKey="uuid:443d6410-9cf4-4f00-9efa-66718968a4c3">
   49       <name>'delete serv2' custom attributes</name>
   50     </tModelInfo>
   51     <tModelInfo tModelKey="uuid:7d1fdbf4-8ac3-4fd6-8b6c-ddab280a2554">
   52       <name>DocumentManager</name>
   53     </tModelInfo>
   54     <tModelInfo tModelKey="uuid:805939a7-5bd3-45b7-ae89-46972be7cca0">
   55       <name>EmploymentPrCprService</name>
   56     </tModelInfo>
   57     <tModelInfo tModelKey="uuid:a8a22fcf-c208-496f-ad7b-1c6e9b781a78">
   58       <name>EmploymentService</name>
   59     </tModelInfo>
   60     <tModelInfo tModelKey="uuid:d7d84c6e-72ba-48d5-aa0c-b794364c4b9e">
   61       <name>FindAddressService</name>
   62     </tModelInfo>
   63     <tModelInfo tModelKey="uuid:abc3e307-b0b7-48cd-bb5c-93d7be0aa213">
   64       <name>FordT-model</name>
   65     </tModelInfo>
   66     <tModelInfo tModelKey="uuid:e9b6efca-19b1-4ebb-a302-dda52bc955f4">
   67       <name>GetAddressService</name>
   68     </tModelInfo>
   69     <tModelInfo tModelKey="uuid:c37ca4b1-748e-47c4-8639-ea8322fb4c98">
   70       <name>group_5_jan_tmodel</name>
   71     </tModelInfo>
   72     <tModelInfo tModelKey="uuid:0091884e-3ab5-481f-bc3e-e8a7607ad1cb">
   73       <name>http://oio.dk/profiles/OWSA/modelT/1.0/UDDI/Identifiers/cvrNumber/</name>
   74     </tModelInfo>
   75     <tModelInfo tModelKey="uuid:5194201c-fc02-4d2e-8224-910939ac384d">
   76       <name>http://oio.dk/profiles/OWSA/modelT/1.0/UDDI/Identifiers/endpointContactEmail/</name>
   77     </tModelInfo>
   78     <tModelInfo tModelKey="uuid:9c119cc4-cca5-4d98-bee2-5fe3999506e9">
   79       <name>http://oio.dk/profiles/OWSA/modelT/1.0/UDDI/Identifiers/serviceVersion/</name>
   80     </tModelInfo>
   81     <tModelInfo tModelKey="uuid:8cc1e1c1-d0f4-4bbe-90e0-90cd1976d944">
   82       <name>http://oio.dk/profiles/OWSA/modelT/1.0/UDDI/Identifiers/termsOfUse/</name>
   83     </tModelInfo>
   84     <tModelInfo tModelKey="uuid:a8fb0bc7-af13-4e32-b78b-76f5d13120ed">
   85       <name>http://oio.dk/profiles/OWSA/modelT/1.0/UDDI/Identifiers/tModelReference/</name>
   86     </tModelInfo>
   87     <tModelInfo tModelKey="uuid:429d9818-70fa-42bb-ac0f-3be9a30164a0">
   88       <name>InsurancePensionPrCprService</name>
   89     </tModelInfo>
   90     <tModelInfo tModelKey="uuid:d337938a-5ec0-4dff-9484-c808f07751cc">
   91       <name>KMD_PO</name>
   92     </tModelInfo>
   93     <tModelInfo tModelKey="uuid:edfd7dae-49d7-48a4-9e17-18dd639c2e6a">
   94       <name>LLMT-tmodel</name>
   95     </tModelInfo>
   96     <tModelInfo tModelKey="uuid:bfb9d165-bd9f-4b9e-80f6-098a3d12b28e">
   97       <name>MapPoint Geographic Context Hierarchy</name>
   98     </tModelInfo>
   99     <tModelInfo tModelKey="uuid:ce653789-f6d4-41b7-b7f4-31501831897d">
  100       <name>microsoft-com:add-web-reference</name>
  101     </tModelInfo>
  102     <tModelInfo tModelKey="uuid:e4a56494-4946-4805-aca5-546b8d08eefd">
  103       <name>microsoft-com:authentication-anonymous</name>
  104     </tModelInfo>
  105     <tModelInfo tModelKey="uuid:f358808c-e939-4813-a407-8873bfdc3d57">
  106       <name>microsoft-com:authentication-uddi</name>
  107     </tModelInfo>
  108     <tModelInfo tModelKey="uuid:0c61e2c3-73c5-4743-8163-6647af5b4b9e">
  109       <name>microsoft-com:authentication-windows</name>
  110     </tModelInfo>
  111     <tModelInfo tModelKey="uuid:be37f93e-87b4-4982-bf6d-992a8e44edab">
  112       <name>microsoft-com:categorizations-browsable</name>
  113     </tModelInfo>
  114     <tModelInfo tModelKey="uuid:b3c0835e-7206-41e0-9311-c8ad8fb19f73">
  115       <name>microsoft-com:uddi-api-extensions_v2</name>
  116     </tModelInfo>
  117     <tModelInfo tModelKey="uuid:4c1f2e1f-4b7c-44eb-9b87-6e7d80f82b3e">
  118       <name>microsoft-com:visualstudio-net</name>
  119     </tModelInfo>
  120     <tModelInfo tModelKey="uuid:95205365-902e-43e5-97c9-358018a6e3a4">
  121       <name>MVJGis</name>
  122     </tModelInfo>
  123     <tModelInfo tModelKey="uuid:32d84c20-9fc4-429e-94bb-5ded204dda1b">
  124       <name>NACE</name>
  125     </tModelInfo>
  126     <tModelInfo tModelKey="uuid:88639d77-8158-4454-907f-cda68bdb98e5">
  127       <name>ObjectStateManager</name>
  128     </tModelInfo>
  129     <tModelInfo tModelKey="uuid:f699264c-384d-47a2-bb46-c6a476242e55">
  130       <name>OIO subject scheme</name>
  131     </tModelInfo>
  132     <tModelInfo tModelKey="uuid:77b32e16-35ee-40d7-b5b5-54fd69ae5ae1">
  133       <name>ParseAddressService</name>
  134     </tModelInfo>
  135     <tModelInfo tModelKey="uuid:97b5f657-63b5-4b98-bb60-85b0686603f8">
  136       <name>PaymentVacationDetailPrCprService</name>
  137     </tModelInfo>
  138     <tModelInfo tModelKey="uuid:22967ba5-ff4d-43f2-8553-498e31f2ec42">
  139       <name>PaymentVacationInsurancePensionPrCprService</name>
  140     </tModelInfo>
  141     <tModelInfo tModelKey="uuid:bbcd88f4-4aed-43f9-95bf-7f3e98c30008">
  142       <name>PaymentVacationInsurancePensionPrTypeService</name>
  143     </tModelInfo>
  144     <tModelInfo tModelKey="uuid:27b337ec-9df5-4851-887f-5665215dcf19">
  145       <name>PaymentVacationPensionDetailService</name>
  146     </tModelInfo>
  147     <tModelInfo tModelKey="uuid:8ce8045a-c6f4-4f13-a460-30288e461b87">
  148       <name>PaymentVacationPensionPrBaseMonthPrCprService</name>
  149     </tModelInfo>
  150     <tModelInfo tModelKey="uuid:8fb960e5-1f1a-451a-b975-f195cfa439a0">
  151       <name>PaymentVacationPensionPrBaseMonthService</name>
  152     </tModelInfo>
  153     <tModelInfo tModelKey="uuid:0325a926-1f82-445d-85ef-98b0002a2dce">
  154       <name>PaymentVacationPensionSumService</name>
  155     </tModelInfo>
  156     <tModelInfo tModelKey="uuid:8fe4f639-3c77-4e35-964f-d6622c3b1541">
  157       <name>PressRoom Technical Description</name>
  158     </tModelInfo>
  159     <tModelInfo tModelKey="uuid:753bbb55-44d9-489a-81c9-db02078f4e15">
  160       <name>Profile conformance taxonomy</name>
  161     </tModelInfo>
  162     <tModelInfo tModelKey="uuid:7f4c20b3-863d-4d38-aeb1-a1ed1d43a762">
  163       <name>Registration conformance taxonomy</name>
  164     </tModelInfo>
  165     <tModelInfo tModelKey="uuid:d15238c5-bc96-4f97-b54c-7790cb737ac8">
  166       <name>Sample Geographic Categorization Scheme</name>
  167     </tModelInfo>
  168     <tModelInfo tModelKey="uuid:36ccdb5a-972e-458e-abcc-87445f93d012">
  169       <name>SIPStatus</name>
  170     </tModelInfo>
  171     <tModelInfo tModelKey="uuid:5f6a466b-1eb2-439b-b702-30215d95e772">
  172       <name>SubscriptionService</name>
  173     </tModelInfo>
  174     <tModelInfo tModelKey="uuid:743c2a42-bf81-4d3f-b5a8-bb7f0a55b569">
  175       <name>TeamPresentation</name>
  176     </tModelInfo>
  177     <tModelInfo tModelKey="uuid:c3acb530-5f9b-4174-b49a-f8efa0649cda">
  178       <name>TextBeskrivelse</name>
  179     </tModelInfo>
  180     <tModelInfo tModelKey="uuid:51fc11ce-199b-448c-8157-38949ad51c36">
  181       <name>TJSMK_Model</name>
  182     </tModelInfo>
  183     <tModelInfo tModelKey="uuid:2d1a9b4e-3113-4e91-8e72-a3e40a963865">
  184       <name>TransformAddressService</name>
  185     </tModelInfo>
  186     <tModelInfo tModelKey="uuid:1a2b00be-6e2c-42f5-875b-56f32686e0e7">
  187       <name>uddi-org:fax</name>
  188     </tModelInfo>
  189     <tModelInfo tModelKey="uuid:5fcf5cd0-629a-4c50-8b16-f94e9cf2a674">
  190       <name>uddi-org:ftp</name>
  191     </tModelInfo>
  192     <tModelInfo tModelKey="uuid:a035a07c-f362-44dd-8f95-e2b134bf43b4">
  193       <name>uddi-org:general_keywords</name>
  194     </tModelInfo>
  195     <tModelInfo tModelKey="uuid:4cec1cef-1f68-4b23-8cb7-8baa763aeb89">
  196       <name>uddi-org:homepage</name>
  197     </tModelInfo>
  198     <tModelInfo tModelKey="uuid:68de9e80-ad09-469d-8a37-088422bfbc36">
  199       <name>uddi-org:http</name>
  200     </tModelInfo>
  201     <tModelInfo tModelKey="uuid:4cd7e4bc-648b-426d-9936-443eaac8ae23">
  202       <name>uddi-org:inquiry</name>
  203     </tModelInfo>
  204     <tModelInfo tModelKey="uuid:ac104dcc-d623-452f-88a7-f8acd94d9b2b">
  205       <name>uddi-org:inquiry_v2</name>
  206     </tModelInfo>
  207     <tModelInfo tModelKey="uuid:e59ae320-77a5-11d5-b898-0004ac49cc1e">
  208       <name>uddi-org:isReplacedBy</name>
  209     </tModelInfo>
  210     <tModelInfo tModelKey="uuid:327a56f0-3299-4461-bc23-5cd513e95c55">
  211       <name>uddi-org:operators</name>
  212     </tModelInfo>
  213     <tModelInfo tModelKey="uuid:4064c064-6d14-4f35-8953-9652106476a9">
  214       <name>uddi-org:owningBusiness</name>
  215     </tModelInfo>
  216     <tModelInfo tModelKey="uuid:64c756d1-3374-4e00-ae83-ee12e38fae63">
  217       <name>uddi-org:publication</name>
  218     </tModelInfo>
  219     <tModelInfo tModelKey="uuid:a2f36b65-2d66-4088-abc7-914d0e05eb9e">
  220       <name>uddi-org:publication_v2</name>
  221     </tModelInfo>
  222     <tModelInfo tModelKey="uuid:807a2c6a-ee22-470d-adc7-e0424a337c03">
  223       <name>uddi-org:relationships</name>
  224     </tModelInfo>
  225     <tModelInfo tModelKey="uuid:93335d49-3efb-48a0-acea-ea102b60ddc6">
  226       <name>uddi-org:smtp</name>
  227     </tModelInfo>
  228     <tModelInfo tModelKey="uuid:3fb66fb7-5fc3-462f-a351-c140d9bd8304">
  229       <name>uddi-org:taxonomy</name>
  230     </tModelInfo>
  231     <tModelInfo tModelKey="uuid:1e3e9cbc-f8ce-41ab-8f99-88326bad324a">
  232       <name>uddi-org:taxonomy_v2</name>
  233     </tModelInfo>
  234     <tModelInfo tModelKey="uuid:38e12427-5536-4260-a6f9-b5b530e63a07">
  235       <name>uddi-org:telephone</name>
  236     </tModelInfo>
  237     <tModelInfo tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4">
  238       <name>uddi-org:types</name>
  239     </tModelInfo>
  240     <tModelInfo tModelKey="uuid:3e3c99ea-a432-4249-8c3f-dedc28494c34">
  241       <name>Upload</name>
  242     </tModelInfo>
  243     <tModelInfo tModelKey="uuid:7d4f9e9b-4683-4c3f-9589-f70d384084c8">
  244       <name>ValidateAddressService</name>
  245     </tModelInfo>
  246     <tModelInfo tModelKey="uuid:70b58468-c68e-4787-80d2-158479322741">
  247       <name>vertical_model</name>
  248     </tModelInfo>
  249   </tModelInfos>
  250 </tModelList>

Read more

Friday, September 22, 2006

Migrating drupal site from mysql5 to a mysql4.1-server

pencil icon, that"s clickable to start editing the post

Strange - I thought all my encoding problems went away with utf-8, but I've just spend 2 hours figuring out how to migrate a dupal-4.7 site using mysql5 to a hosting site with mysql4.1. I ended up exporting (mysqldump) the database as latin1 (--default-character-set=latin1) and importing it as such, and that solved the problem - weird.

Among other un-nice and un-expected problems was that a mysql user needs to be granted permissions to '(UN)LOCK TABLE', which isn't enabled at the hosting firm, and finally a table had to change the primære key to auto_incrementI'm sure that there's more to do - haven't looked at the pages with attachments yet - but now it looks like it works :-)

Read more

Wednesday, September 20, 2006

Using the ISB UDDI #1

pencil icon, that"s clickable to start editing the post

The Infostructurebase (http://isb.oio.dk) has it's own UDDI (http://isb.oio.dk/uddi/). It's the Microsoft implementation of version 2 of the Oasis standard for Universal Description, Discovery and Integration.

Getting started with the webservice api to the ISB UDDI, can be a hurdle even if you have some knowledge of UDDI, finding the endpoints, WSDL and consuming them in your webservice client framework is not out of the box - not me for me at least using Axis2. The original userguide SOAP User guide_2.0_.pdf is somewhat outdated.

I've created my own WSDL that defines the missing service in the standards WSDLs, and I think it's compliant with the basic profile (1.1) from the ws-i. I've keept them together since it's more simple, but I still have to run WSDL2Java twice (for each /wsdl:definitions/wsdl:service/@name) for a reason that's not clear to me, but a s I understand it has to do with axis2 targeting WSDL2 (which I have not looked into yet). I've tried to have both port's in just one service, but didn't make it easier, since there was only generated code for one port.

    1 <?xml version="1.0" encoding="utf-8"?>
    2 <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    3   xmlns:tns="http://rep.oio.dk/sweetxml.org/xml/wsdl/isb/uddi/20060601/"
    4   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    5   xmlns:uddi-inquiry="urn:uddi-org:inquiry_v2"
    6   xmlns:uddi-publication="urn:uddi-org:publication_v2"
    7   targetNamespace="http://rep.oio.dk/sweetxml.org/xml/wsdl/isb/uddi/20060601/"
    8   name="ISB-UDDI">
    9 
   10   <wsdl:import namespace="urn:uddi-org:inquiry_v2"
   11     location="http://uddi.org/wsdl/inquire_v2.wsdl" />
   12   <wsdl:import namespace="urn:uddi-org:publication_v2"
   13     location="http://uddi.org/wsdl/publish_v2.wsdl" />
   14 
   15   <wsdl:service name="InquireService">
   16     <wsdl:port name="InquirePort"
   17       binding="uddi-inquiry:InquireSoap">
   18       <soap:address
   19         location="http://isb.oio.dk/uddi/inquire.asmx" />
   20     </wsdl:port>
   21   </wsdl:service>
   22 
   23   <wsdl:service name="PublishService">
   24     <wsdl:port name="PublishPort"
   25       binding="uddi-publication:PublishSoap">
   26       <soap:address
   27         location="http://isb.oio.dk/uddi/publish.asmx" />
   28     </wsdl:port>
   29   </wsdl:service>
   30 
   31 </wsdl:definitions>

Read more