[XML-SIG] WSDL library ?

Uche Ogbuji uche.ogbuji@fourthought.com
Thu, 14 Feb 2002 17:34:58 -0700


> Rich Salz <rsalz@zolera.com> writes:
> 
> > The ability to transmit pointer-using data types (e.g, a balanced tree
> > in C/C++), to make changes on the server, and to send the new tree
> > back such that the client can reconstruct -- that can be important and
> > useful. Sure, Corba proves that you can solve real-world problems
> > without it
> 
> Since CORBA 2.3 (July 1999), this kind of interaction is supported.

Well enough, but I still think it's a feature I would never think of using.



> > As for pointers, etc., I'd like to see the IIOP serialization of a
> > doubly-linked list.
> 
> // IDL
> module PointerDemo{
>   valuetype linked_list{
>     public string data;
>     linked_list prev, next;
>   };
>   interface ListReceiver{
>     void put_list(in linked_list list);
>   };
> };
> 
> # Python client side
> from PointerDemo import linked_list
> receiver = obtain_reference_to_receiver() #somehow
> head = linked_list("Hello",None,None)
> head.next = linked_list("World",None,None)
> head.next.next = linked_list("!",None,None)
> # backlinks
> head.next.prev = head
> head.next.next.prev = head.next
> # invoke operation
> receiver.put_list(head)

Wow.  I wasn't joking when I said "array".  If I had a development problem 
where I had data structured as a doubly linked list on the server, which I 
decided to send to a client, I'd use an array.  A doubly linked list is 
nothing more than a vector implementation optimized for certain operations.  
Seems this detail has no business poking its nose into data marshalling.

I would be horrified if a marshaller took a complex data structure of mine, 
chased down all pointers it contained and proceeded to marshal the end-points, 
merrily inventing it's own little analogue of my heap in the message payload.  
Sounds like a recipe for nasty surprises, not least in the area of performance.


-- 
Uche Ogbuji                               Principal Consultant
uche.ogbuji@fourthought.com               +1 303 583 9900 x 101
Fourthought, Inc.                         http://Fourthought.com 
4735 East Walnut St, Boulder, CO 80301-2537, USA
XML strategy, XML tools (http://4Suite.org), knowledge management