Difference between Webspeed / Appserver?

foreach-end

New Member
Can someone give me a short description of what Appserver is used for?

I'm very familiar with Webspeed, and it's functional similarities to ASP/JSP/Coldfusion and all the others.

So, when I need to make a web-enabled application, what does the Progress Appserver do that's different from webspeed?

I know that I could develop GUI apps with client-side code and connect via the -tcp parameter to a remote database. I also know that this can be very slow. Does the Appserver product deal more in the realm of making GUI apps work better across a WAN?
 
The appserver product is to GUI applications what Webspeed is to HTML (effectively)

There are always occasions when a large number of records has to be manipulated to return a limited reult set. Appserver allows this to take place on the server.

It also allows asynchronous requests to take place so that a large batch job can be intitiated by a client, and then the client can get on with other things while the appserver does the actual work.

Hope this helps!
 
OK, here's my attempt at answering your question:

AppServer allows you to create 3-tier (or n-tier) applications where the client does not have (or require) a database connection.

The client runs a Progress procedure on the AppServer and this procedure returns the result to the client by means of parameters (the 'normal' kind and/or static or dynamic temp-tables).

This means that, for instance, when a user wants to browse some customers:
- The user runs a procedure on the client that contains the browse
- The client procedure runs a procedure on the AppServer that performs the actual query. This AppServer procedure stores the results in a (dynamic or static) temp-table (output parameter).
- When the AppServer procedure is finished, the results are returned in the temp-table, after which the client procedure can open a query on this temp-table and show the results in the browse

Of course the above is just the most simple example (it gets more complicated when adding, updating and deleting data).

Main things to remember are:
- The client (which is just some Progress session) does not require a database connection. Therefore the client is completely unaware of any data, validations etc and all communication between client-side and server-side procedures is done by means of (temp-table) parameters
- You will have to think a bit different when programming with/for the AppServer because you have to separate the User Interface from the business logic and make sure the business logic contains no UI interaction - not even a simple message statement
- Your client can run programs on the AppServer, but the AppServer cannot run anything on your client
- Unless you want to start using TCP sockets, there is no other way for the Client and AppServer to communicate than via RUN statements with input/output parameters and initiated from the client
- You can use the Progress WebClient or any other normal Progress client(Runtime, Provision, Character client, WebSpeed etc) when using AppServer.
- WebClient is a free - yes, it really is :) Progress runtime that you can download from the Progress website (or install from your Progress installation CDs). Some people tend to think that WebClient will run in a Web Browser (as the name implies)... but it doesn't. It is a normal GUI Progress client with the following restrictions:
1. You cannot use it to connect databases
2. It is only available for 32 bit MS Windows
3. It does not include any of the normal tools you may have (Editor, Dictionary, AppBuilder etc - logical, it's just a bare bone runtime)

If you are thinking about starting to use AppServer, have a look at the documentation (available in PDF format on the Progress website: http://www.progress.com/v9/documentation/index.htm). Especially "Building Distributed Applications Using the Progress AppServer" is an interesting read.

If you like, you can use the "smart stuff" to program, or if like me you are not into that, you can do without. Alternatively Progress has "Dynamics", which is (supposed to be) a development platform for creating dynamic applications (which uses smart objects).

I hope the above makes some sence and that I have not forgotten to mention anything or given you any false information. I am sure if I have someone out there will slap me on the wrist :awink:
 
Thanks- that helped

I really appreciate the time that went into your descriptions. Thanks!

Progress' Product Information seemed very high-level and propaganda-ish. I just needed to know the technical function of the product.

Thanks again,

-Jerry
 
Back
Top