[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