Interoperability issue

Anemia

New Member
Hi,
I am using Progress ABL 2-3 years on my work to develop standard desktop apps. Also I use .NET in free time to develop desktop app (forms). Now I would like to connect some of these apps. Basically on this level I need to interchange data between them. I don't try to solve some problem with semantics (semantic gap etc...)

I use Progress 10.2 A version and I have opportunity to use Sonic. Can I use Sonic in this situation ? What is need to do with apps (expose them like Web Service or something) ? What is all I need in this architecture beside Sonic and Web Services ???

tnx.
 

RealHeavyDude

Well-Known Member
Please don't ask me for details as it is years since I've done something with Sonic ...

Nevertheless some things that might be informative for you:
  1. Since OpenEdge 10.2+ you can directly use .NET classes from within the ABL. If you have .NET classes that provide data you should be able to use them from with the ABL right away.
  2. Come OpenEdge 10.0 Progress introduced the open client technology to allow selected 3rd party technologies to access the OpenEdge AppServer. There is one for .NET, one for Java and one for WebServices. You generate a proxy ( .NET assembly, Java classes or a Web Service definition ) that you can then use in the 3rd party technology to call any procedure that runs on the OpenEdge AppServer. For .NET the Progress ProDataSet maps pretty straight forward to an ADO .NET dataset ( for Java it would be the Java Service Data Object for example ).
  3. Via Sonic:
    1. .NET client talking to Sonic: You need to provide the ABL logic on the AppServer and plug it into your Sonic ESB
    2. ABL client talking to Sonic: The development environment cotains samples ( need to be installed separately ) from which you can see how this could work. I have no idea how you would plug any .NET backend service into your Sonic ESB.
  4. Furthermore:
    1. Old school ODBC - your .NET could access the Progress RDMS directly via ODBC. But that I would not recommend.
    2. Progress DataServer - which would work as a proxy so that you could access an SQL database directly from within the ABL. Don't know which RDMBS you are using therefore there is a chance you are using one which is not supported by the DataServer.
  5. Last but not least - you could always exchange data via files ( for examplex XML documents ).
Exchange data is a very generic term. You should be a little more specific to get a better recommendation. Sonic is an Enterprise Messaging System which does not seem to be the best choice just to exchange data. But for you it might be a perfect uses case.

Heavy Regards, RealHeavyDude.
 

mollyfud

Member
G'day Mate.

While I would advise to use other methods as they are better for integrating (.Net OpenClient if the App is .Net based or REST/Soap webservices also are good) if Sonic is the way you have available, there is a .Net Sonic client (I believe). Should note that Progress diversified (aka sold) the Sonic product line to Aurea so you would need to talk to them about getting the client but they seem to still have references to the .Net client on their site: http://www.aurea.com/servlet/servlet.FileDownload?file=01540000000kZqr&oid=00D00000000hayE

Again, a lot of the other suggestions are better suggestions (especially the ABL Gui for .Net which would let you integrate your .Net knowledge to integrate .Net Libraries into an OpenEdge application).

Oh, and on the ABL side, I believe the Sonic Client was built in and you could call out to SonicMQ from the ABL client by 10.2A and infact you can get details for the ABL side of things here:
10.2A OpenEdge Development: Messaging and ESB

Hope this helps.
Molly
 
Top