Best way for an application to interact with Progress database?

lukas88

New Member
Would I be right in thinking that an ODBC connector is the best (only?) way for a ASP.NET page to interact with a progress database (OpenEdge 10).

Alternatively would it be better to expose the database through web-service functions written in Progress.

Basically this ASP app just needs to read and write to progress tables.

How would you go about it?
 

GregTomkins

Active Member
One other realistic way would be thru Open Client DLL/Java proxies. A less realistic way would be through sockets/pipes, etc.

It really depends on your situation, but for example, if the ASP were some smallish one-off kind of thing, I think ODBC would be OK. If you foresee lots of different heterogenous users, then WS may be the way to go. Personally I like the proxy way the best because it hides all the implementation details of the database, without all the complexity and overhead of WS. But mostly that it just my experience, I have not done anything meaningful with WS.
 

RealHeavyDude

Well-Known Member
As of OE10 Progress supports the Open Client technology to for three types of clients to connect to the AppServer: Web Services (via the Web Services Adapter), Java (direct connection to the AppServer) and .NET (direct connection to the AppServer).

In any case I would prefer the AppServer over a direct connection to the database via JDBC for various reasons:

  • The OpenEdge database is not an SQL database in the first place. While there is a SQL92 engine available it is, IMHO of course, by far not comparable with what other native SQL databases offer.
  • The application does have business logic implemented in the ABL which you will completely bypass when updating the database via JDBC - so you need to redundantly implement the business logic in Java too.
  • Any modern application design should make use of a data access layer anyway (this might be a separate discussion of its own).


I am leading a project which does exactly that: It is being developed in Java and accesses the OpenEdge AppServer via the Java Open Client. If you ask me, this combination really rocks - performance is superb! We did some tests in the beginning with JDBC, but not for long though ...

Heavy Regards, RealHeavyDude.
 

GregTomkins

Active Member
Just to clarify, when RHD says 'direct connection to the AppServer' vs. me talking about proxies, I believe we mean the same thing. It depends how you define 'direct connection', but the key point is, you are accessing 4GL business logic running on an AppServer, not accessing DB tables directly as you would with ODBC.
 

RealHeavyDude

Well-Known Member
You are right basically we mean the same. Don't know the Open Client for .NET much but in for Java one you don't even need a proxy. But that is not what I meant. By direct I meant accessing the database directly via ODBC/JDBC and thus bypassing the business logic that exist in the ABL.

Heavy Regards, RealHeavyDude.
 
Top