Forum OpenACS Q&A: Re: Status of SOAP Support

3: Re: Status of SOAP Support (response to 1)
Posted by Nick Carroll on
I'm in the process of working out how to commit the revised soap-gateway package that uses tDOM instead of ns_xml.  It is a straight port of the original soap-gateway package.

I am further developing "service contract to web service" (sc2ws) support.  Which means you are able to deploy a service contract implementation as a web service through a web interface.

The current method of deploying web services requires writing some procs in a library and importing it into soap-gateway.  The sc2ws approach on the other hand means you don't have to write code if you want to interact with a package through web services.  You just click a few check boxes, hit submit and a service contract implementation is then deployed as a web service.

An example of usage would be if you wanted to share your Learning objects in the LORSM package.  sc2ws would allow you to deploy the "export learning objects" service contract implementation as a web service.  This will allow LORSM to share learning objects with third party systems that also supports IMS standards.  Well this is the vision I have for it.

As a result of this I have found that the soap-gateway package doesn't handle multiple return values very well, which is the case for the majority of service contracts.  Also arrays aren't supported very well either.  These are issues that I will be working on.

4: Re: Status of SOAP Support (response to 3)
Posted by Nick Carroll on
A tarball will be made available (temporarily) on my website untill I can commit it to CVS.


5: Re: Status of SOAP Support (response to 4)
Posted by Orzenil Silva Junior on
HI Nick,

Thanks for made soap-gateway available now. I am very curious about implementing services using soap to access existing instructional resources from digital libraries (as you said in your vision statement).

Your tarball installs fine in my dotlrn-2-1a2 (with pgsql 7.3.5 and aolserver4) but I had error when trying to import unpublished services - interop and workspace - under maintenance section ( soap/admin ).

I think they are only typo errors but could prevent us to appreciate the package. Because there is no soap-gateway in bug-tracker could you evaluate this changes i made? Thank you.

--- /tmp/soap-gateway/tcl/soap-server-lib-procs.tcl    Thu Sep 30 00:40:00 2004
+++ soap-gateway/tcl/soap-server-lib-procs.tcl  Thu Oct 14 10:54:33 2004
@@ -615,10 +615,10 @@
        } elseif { $force } {
            # update
-          error "[soap::server::lib::method_update $mid $method $idl $idl_style $proc $note"]
+          error "[soap::server::lib::method_update $mid $method $idl $idl_style $proc $note]"

    # return namespace id
    return $nid
\ No newline at end of file
--- /tmp/soap-gateway/sql/postgresql/soap-gateway-create.sql    Thu Sep 30 00:41:40 2004
+++ soap-gateway/sql/postgresql/soap-gateway-create.sql Thu Oct 14 11:11:45 2004
@@ -322,9 +322,9 @@
        v_method_id = null;

        -- get namespace count for id
-      select into v_method_id method_id
+      select namespace_id into v_method_id
        from sg_namespaces
-      where namespace_id = p_namespace_id and lower(method) = lower(p_method);
+      where namespace_id = p_namespace_id and lower(service) = lower(p_method);

        -- fix up
        if v_method_id is null then

7: Re: Status of SOAP Support (response to 5)
Posted by Nick Carroll on
Thanks for that Orzenil, I will apply those fixes now.  I'm still waiting on a CVS account.  Might have to ask somebody else, as Don must be busy.
8: Re: Status of SOAP Support (response to 7)
Posted by Nick Carroll on
Orzenil, I have already made those fixes in my own cvs repository.  The tarball you downloaded must contain an older version.  I will check out a more recent version and make that tarball available.
Posted by Andrew Piskorski on
There are at least a half dozen different XML-RPC and/or SOAP implementations for AOLserver and/or OpenACS, all in various states of completeness and quality. AFAIK no one has yet reviewed them all and put together a description of what the heck they each do and why you would want to use one or the other.