[Date Prev] [Date Next] [Thread Prev] [Thread Next] Indexes: Date | Thread | Author

[XML-SIG] WSDL library ?


> 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.    (01)

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



> > 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)    (03)

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.    (04)

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.    (05)


-- 
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    (06)