Need help to understand Open client architecture

Posted by Admin on 14-Aug-2007 21:02

First of all , let me explain what we are planning to do.

Our company is planning to to use ASP.Net to create a web application to access Progress DB , we are using OE 10.0b .

I have read the manual named : "Open Client Introduction" to understand the approach of using .Net Open Client.

After reading , I still not really understand the Open Client architecture and the intranet/Internet restriction.

According to the manual, there are approaches

a)Web service client

b).Net or Java Open Client

Question

=========

1)If we are going to use ASP.Net , which one should we use ?

2)Is .Net Open Client refer to Desktop Application only ,or include Web application?

3)Why the .Net /Java Open Client only can connect through intranet and not Internet connection ?

4)Can I use the Open Client on the webserver to connect to Appserver and expose the UI to client through ASP.Net ?

Any help is welcomed , thanks.

CG

All Replies

Posted by Admin on 15-Aug-2007 04:38

Our company is planning to to use ASP.Net to create a

web application to access Progress DB , we are using

OE 10.0b .

Have you considered using WebSpeed instead? This is a far more easier programming model in respect to 4GL access. It uses CGI to handle HTML-requests, so it can be used with IIS (internet information server).

According to the manual, there are approaches

a)Web service client

Sure, you can build web services that expose 4GL behavior. Your ASP.NET page will consume these web services in that case. When you start from scratch, you should think twice if you want to use this approach, since, due to the additional remoting layer, it's a relatively slow approach:

- HTTP-request will be handled by ASP.NET in IIS

- your ASP.NET page makes a Progress 4GL web service call

- some 4GL-code executes in the web service

- the ASP.NET page handler unmarshals the web service result

- ASP.NET-page renders HTML

b).Net or Java Open Client

In this case the approach is kind of similar to the web service approach, but now you can communicate "directly" with the .Net open client, which takes care of the marshalling:

- HTTP-request will be handled by ASP.NET in IIS

- your ASP.NET page makes a .Net open client call

- the .Net open client calls an AppServer service

- some 4GL-code executes in the AppServer

- the .Net open client unmarshals the AppServer result

- ASP.NET-page gets a .Net object as reply and renders HTML

As you see, the .Net open client is a facade on top of AppServer logic. This means that it also requires a remote call, in this case to an AppServer.

Now WebSpeed can be configured to handle the HTTP-request, execute 4GL logic locally in the web server and finally render the HTML. This eliminates the remoting layer between HTTP-request and 4GL. On the other hand: this implementation uses CGI... WebSpeed can also call AppServer services, so business logic can be moved to another server if necessary

So for the right choise, you should decide what's important for you. Best performance, easiest implementation from 4GL perspective probably means running everything in WebSpeed. Best isolation: use .Net open client with ASP.NET or WebSpeed with AppServer. Best external interoperability: implement web services (if you want your 4GL business logic to be consumes by 3rd parties).

Question

=========

1)If we are going to use ASP.Net , which one should

we use ?

2)Is .Net Open Client refer to Desktop Application

only ,or include Web application?

.Net open client is merely a bridge between .Net and the 4GL AppServer, taking care of marshalling data. So if your client is .Net, you should use .Net open client (which implicates an AppServer).

3)Why the .Net /Java Open Client only can connect

through intranet and not Internet connection ?

This has to do with the TCP-ports required by the connection. In a secured environment you close most TCP-ports. AppServer communication requires a wide range of dynamically allocated ports. You can also configure the AppServer to use secure communication, so you can talk over HTTPS. This way you only have to open the SSL-port.

Note that when you're using a VPN over the internet connection, you don't have these kind of restrictions.

4)Can I use the Open Client on the webserver to

connect to Appserver and expose the UI to client

through ASP.Net ?

Yes. Since the web server is already behind a firewall, it can call the AppServer.

This thread is closed