If you’re an OpenEdge developer or just getting started with OpenEdge (formerly ABL) browser-based applications, understanding webspeed and its application is essential.
We will figure out webspeed by addressing two important questions:
- How browser based applications communicate in a modern client-server model using WebSpeed ?
- How WebSpeed Applications can be implemented in real world ?
Lets try seeking answer to both of the above questions but first some fundamentals.
Definition – A web speed methodology or approach aims to help enterprises and developers develop (and deploy) modern browser-based applications.
We got this right. A WebSpeed application enables enterprises and developers to create web apps in compliance with modern principles of app development, including load balancing, security, faster request processing, and separation of UI with AppServer.
There are, however, a few core components that make up Webspeed as a development/deployment framework. Before we jump off the bandwagon, we must understand them.
- WebBrowser – Seriously ? Please Use Google for unlimited theory on this . 🙂
- WebServer – Software installed on local/remote systems that holds the responsibility of hosting your webpage either locally or remotely . It listens to your browser request (in the form of an URL) and accordingly it serves you with the requested content (response) . Popular Example of WebServer are Microsoft IIS, Apache .
- Messenger- Its a process that runs on your WebServer such as a CGI Program . Using Messenger, client’s request/response information is exchanged between your WebServer and Application. Note: Messenger is the most crucial component of WebSpeed request/response flow .
- WebSpeedTransactionServer – It is the component that actually is responsible for running your executable source code routines (.r files) . Primarily there are further two sub components of Transaction server – Broker and Agents .
- Broker- It is the process that allows Messenger to exchange services with Application server by suing Agents . Yes , Broker also acts as a pool of Agents , which make sure that it provides available Agents to Messenger for serving the client request.
- Agents – Subprocess of Broker for running your executable source code (.r files) . Agents should be in state of running mode to process the incoming client request .
- NameServer – It maintains a list of Available Brokers for your webclient to connect . Messenger interacts with Name server and seek any available broker . Most Importantly Nameserver allows your application to handle Load Balancing as it maintains the state of Broker (available free agents ) thus switching the request to freely available Agents .
Great So far we have covered fundamentals . They are much easier to understand once we actually see how they behave/ interact while we implement the real WebApp.
A Simplified Diagram to demonstrate above components .

Note :
- Interaction between Agent and Database would be a two-way communication .
- Name Server is eliminated above (hence not shown in figure) , it is possible for a messenger to connect with broker directly (but the messenger could connect with one broker alone if we do so)
- NameServer is highly useful when Load Balancing is the important criteria , as it then allows messenger to connect with the broker which is available for serving the request.
- .r Files (compiled version ) are called WebObject in webspeed terms . Agents execute our WebObjects and perform read/write with database.
Can an Agent anytime slow down your app performance?
Answer- Yes , its possible if you Lock your Agent to a specified webclient for a certain time period or in other words Agents serve as Locked Agents . Theoretically , such a state is called state-persistent Transaction .
Now to get the answer to question How webspeed Apps’ can be implemented in real world ? Please read here – Explained – Create A Simple WebApp using WebSpeed .
Hopefully you have gained a greater understanding of WebSpeed after reading this post, and I hope you have enjoyed it as well.
You are welcome to share this with others in your community, and also feel free to add your valuable comments here.
Lets build a community .
Thankyou


