Passing class-based objects between an Open Client and a App

Posted by rvkanten on 05-Sep-2014 06:55

One of nice features of 11.4 is the passing of class-based objects between an ABL client and AppServer.

Are there plans to implement this feature for the Open Client?

All Replies

Posted by Thomas Mercer-Hursh on 05-Sep-2014 09:08

How does it even make sense with Open Client?   No AVM, nothing to run the code.

Posted by rvkanten on 05-Sep-2014 09:46

No AVM, but .NET CLR for instance. Just as for example ProDataSets are mapped tot ADO.NET DataSets and vice versa, it would be nice to have ABL classes be mapped to .NET classes.

Posted by Thomas Mercer-Hursh on 05-Sep-2014 10:01

Well, frankly, I don't like the idea of passing classes across a boundary like this, even if there is an AVM at both ends.  I would much rather have the source side handle whatever issues it has in the context, e.g., if this is triggered by an error, and then pass a message back that conveys the needed information.  The message can be agnostic about the technology at the other end.

So, if one could do it, I wouldn't, but frankly I think you are dreaming to hope for it.   Data, yes, behavior, no.

Posted by Simon L. Prinsloo on 05-Sep-2014 11:21

How do we get context to the open clients? O, yes. Put primitive data type parameters in the .p.

Now what if the seventeenth service don't care about parameter 4 but need to pass no. 8? Oops. New interface.... New proxies.... New WSDL.....

Now imagine a world where a class containing public properties, i.e. a parameter class, can be passed over the wire.

You have specific needs for a program? No problem, derive a new class or implement the interface in a new class. Base signatures stays unchanged all over.

Good news, in 11.4 you can pass the class!

Bad news, you are now locked into AVM-based clients. You are back in circa 1998 in that respect....

OE 11.4 Serialization is a time machine moving me back almost 20 years!

Posted by Mike Fechner on 05-Sep-2014 11:37

Hi Simon,
 
I’m so glad that you are working with a framework that supports .NET, Java and JavaScript compatible XML and/or JSON serialization of value objects ;-) We’ve actually used all of that already.
 
Have a nice weekend!
 
Mike
 
 
 
Von: Simon L. Prinsloo [mailto:bounce-simonvidisolvecom@community.progress.com]
Gesendet: Freitag, 5. September 2014 18:22
An: TU.OE.Development@community.progress.com
Betreff: RE: [Technical Users - OE Development] Passing class-based objects between an Open Client and a AppServer
 
Reply by Simon L. Prinsloo

How do we get context to the open clients? O, yes. Put primitive data type parameters in the .p.

Now what if the seventeenth service don't care about parameter 4 but need to pass no. 8? Oops. New interface.... New proxies.... New WSDL.....

Now imagine a world where a class containing public properties, i.e. a parameter class, can be passed over the wire.

You have specific needs for a program? No problem, derive a new class or implement the interface in a new class. Base signatures stays unchanged all over.

Good news, in 11.4 you can pass the class!

Bad news, you are now locked into AVM-based clients. You are back in circa 1998 in that respect....

OE 11.4 Serialization is a time machine moving me back almost 20 years!

Stop receiving emails on this subject.

Flag this post as spam/abuse.

Posted by Thomas Mercer-Hursh on 05-Sep-2014 12:04

What I hoped they would give us in 11.4, but didn't make it ... although I think it is likely coming soon ... is controllable serialization of a class to XML or JSON.  Yes, one can do this now with a certain amount of work, but it would be very nice to have it built-in ... serialization and de-serialization.  Then, one can have any technology at the other end and lighterweight packets to send.

Posted by bronco on 08-Sep-2014 00:59

I guess it's time for the ABL to interact with some predefined interfaces. So the ABL defines ISerializable (or similar) and you get the possibility to supply your own implementation. Same for IIterable and FOR EACH, but that's off-topic.

Posted by Mike Fechner on 08-Sep-2014 02:15

I guess it's time for the ABL to interact with some predefined interfaces.

But that would require a wide community consent about how the structure of those interfaces. Otherwise those that already have all that functionality might be biten.

Posted by bronco on 08-Sep-2014 02:37

No, it just requires Progress to come up with the interface and others to either rebuild or stick with their current solution. ISerializable won't be rocket science and the ones who have a solution already will probably be able to wrap it somehow.

edited: typo

Posted by Thomas Mercer-Hursh on 08-Sep-2014 09:40

Perhaps I need to dig out the enhancement requests I put in years ago and get them on the Ideas page.  I think all we need is to be able to serialize an object in the same way that we can serialize a dataset to JSON or XML.  I.e., ways to flag thing to omit from the serialization and to change the serialized name and such.  Then, regardless of the technology at the other end of the wire, one can provide an object with a method that will initialize itself from that output.

Posted by bronco on 09-Sep-2014 02:03

Sure, I wouldn't mind if Progress came up with two implementations of the ISerialize interface: JsonSerializer & XmlSerializer ;-)

This thread is closed