COBOL programming tools from NORCOM

     Products     Prices and Purchasing     Support     News     Partnerships     Home   Contact Us   Downloads



GUI ScreenIO Client/Server Layer


The GUI ScreenIO Client/Server Layer allows you to run your GUI ScreenIO applications, over any TCP/IP network (including the Internet). 


Its really an Application Server, which allows you to host a GUI ScreenIO application on any windows computer and access it securely from anywhere on the internet.

Software As A Service is easily implemented with trivial setup and low maintenance.  You can even launch your application from your web page.


This allows a single installation of your application and its' associated data files to serve multiple sites.  It allows you to license your applications on a subscription basis, as a service, without ever having to install them at the customer's site.  It ends on-site maintenance headaches, complex installations, and software piracy.  Forget about data file merging of transactions from several branch offices.


Virtually every GUI ScreenIO application is capable of being run on the Client/Server layer.  You don't need to write a  special network version.

Your applications look and behave exactly as if they were running locally.  In fact, your application is completely unaware that it's running remotely ; the GUI ScreenIO Client/Server Layer handles all of the details, requiring no changes to your applications.*

(Well, Ok, your application can determine if it is running under the client server layer if this is necessary).

A Single user Test version of The GUI ScreenIO Client/Server Layer is distributed with GUI ScreenIO.  Sites may deploy applications to distributed audiences by purchasing a license to the Server.

Benefits of the GUI ScreenIO Client/Server

Application Deployment

Applications can be deployed more easily when large amounts of software and huge databases reside only on a single server.  This, in many cases, can eliminate complex database synchronization between sites.  The only thing you need to install on user's machines is our freely downloadable Client, no matter how many applications you deploy.

Costs can often be reduced if expensive database engines are used as they only need be installed on the server.  Backup of data can now be centrally managed.  The Server is very economical to license, and annual license fees are minimal.

Software version management

The GUI ScreenIO Client/Server Layer make it far easier to manage your software applications.  Because the software is only installed in one place - on the server - software upgrades are simply a matter of copying the new software to the server.

Access Control

You can control access to your software and data, too.  It's possible to restrict access to specific clients or even to specific IP addresses or subnets. You can set up  Individual User Ids and Passwords and Applications, or a single menu for all users.  Its your choice.  You can even control the number of times a user can access the software, and thereby license the use of the software on a subscription basis.  You can offer trial or evaluation systems hosted from your site to demo software to potential users.


Client/server computing is also very efficient, since only the panel data is sent across the network.  All of the data files remain on the server, and all of the actual processing occurs on the server.  The clients only handle the user interface.   Even a modest machine can serve dozens of applications simultaneously to numerous users scattered all over the city, the country, or the world.


The Server can be ANY windows platform. (Windows 2000 or XP preferred for performance reasons).  There is no complex Web server (such as Microsoft IIS or Apache) involved.  You don't need a networking rocket scientist to set it up.  You can have a web deployment up and running in as little as 5 minutes.


All servers include our Secure Server option, where all communications between the client and server use RC2 block encryption to virtually eliminate the risk of eavesdropping on your data stream.  There's no need to use finicky VPNs, private networks, leased lines, or third party encryption layers such as SSL (Secure Socket Layer). Your data is protected right out of the box. 

Each client connecting to a server negotiates a unique encryption key, preventing snooping.  Each job re-negotiates this encryption key so that the encrypted data is ever-changing.

RC2 encryption is approved for export by the US government.

Users can be assigned unique User-ID and passwords, and custom tailored menus can be offered for each user.  In more generic situations, you can use a common menu without the need to customize it for each user. This may eliminate the need for a separate security component within your application. 

In still more lax conditions, you can just give your users the "Default Password" which provides a standardized menu for all users (the "Default Menu"). 

Finally, you could choose to set the Default Password to spaces and handle security (if necessary) within your application.

The security model is Flexible, and Robust. 

Remote Server Monitoring

You don't even have to get up from your desk to Monitor the server.  We provide a Server Monitor that can be run on any workstation to check on server availability and workload. 

How does the GUI ScreenIO Client/Server Layer work?

Client/server applications run on the server, but interact with users (clients) across a network.  The client and server may be next to one another on a local area network, or thousands of miles away over the Internet. 

When your application (running on the server) calls GUI ScreenIO to display a panel, the GUI ScreenIO server layer sends the panel data across the network to the client, where it is displayed.  The client handles all of the interaction with the user; moving from field-to-field, mouse movements, scrolling lists, and so on. 

The server is free to process other applications while it waits for a response from the client.  (This means a moderate powered server machine can service many clients.)

When the user does something that will require the application to do some work, such as pressing a button or selecting a menu item,  the client sends the panel's data back to the server.  The GUI ScreenIO server layer passes the panel data to the application, the application processes the data, and then, most likely, displays another panel - and the cycle continues. 

This cycle is repeated until the client is finished with the application.

This is dramatically different than Microsoft's Terminal Services, or PC-Anywhere, or VNC.  With these products, simply moving the mouse at the client floods the network with a massive packet stream, swamping your bandwidth.  Most users simply can not afford the bandwidth necessary to run Terminal Services for more than a very few clients.  

Further, with these other packages, your remote clients can do just about anything they could do if they were sitting at the server's keyboard.  Including rebooting the server, or accessing things you would rather not give them access to.

These problems disappear with GUI ScreenIO Client Server layer.  Clients can only access the list of applications on their individual menu or the Default Menu (if any).   Network transmissions to and from the server happen only when an Event is triggered (Function key, Menu item, Button click, etc).  And this traffic is very small and highly optimized.

We also provide a user configurable Job Termination mechanism which prevents idle users from tying up your server.  This Job Timeout feature allows you to prevent users from tying up server seats and handles communication failures by shutting down the associated jobs in a graceful and controlled way.  Read our White Paper on job termination.

Related topics:

* Restrictions:

  • Applications intended for Client Server deployment should use Our Supplied APIs instead of those supplied by your compiler manufacturer to accomplish tasks such as launching other programs, searching for files, selecting printers, etc.  

    Our APIs are client-server aware.  Your compiler manufacturers APIs are not.  If you use a compiler supplied "File Open" dialog, it will only run on the server.  That's not useful when the client is in another city, state, or country.  Our APIs will open the "File Open" dialog on the Client machine.

    These APIs also work correctly in Single Machine deployments so only one version of your software is needed.
  • Your application can not include non GUI ScreenIO portions, or mixed language programming if these elements must interact with the screen.  For instance, a Visual Basic subroutine called from your GUI ScreenIO system knows nothing about the client server layer, and would pop up on the server, which is less than useful.
  • Your application must be one EXE (although it can be a huge EXE), and it can include Multiple Working Sets for many windows open at once. It can not call separate run units (other EXE's).  If you would rather not compile into a single EXE, you can either compile subroutines as DLLs and call them from your main program. 
  • If you need to launch a web browser or some other software that the remote clients would already have, you can use our APIs to call these programs.  You could for instance, copy a spreadsheet to the client with our COPYFILE api, invoke Microsoft Excel to allow the user to manipulate the spread sheet via our WinExec or ShellExec APIs, and then use our CopyFileToServer API to return the spread sheet to the server.  And it would STILL work correctly even in a stand alone environment, where the Client Server layer was not used!

Other Considerations:

  1. For deployment across the internet, your network firewall will need one port open from the internet to your Server machine.  This port is arbitrary, you can use any port number, we recommend port 1875 for no compelling reason.
  2. Your remote users need to know the IP or machine name of the server. You can either arrange for a static IP, or use a Dynamic DNS name for your Server.  There are free services which will supply Dynamic DNS names and free software to update this dynamic DNS name when your IP changes. See's Dynamic DNS Service.
  3. Sensitive data applications should use our Licensed Client,or our Secure Server Option vs our Free Client for additional security features.  Our Licensed clients provide unique serial numbers so that other free clients can be excluded from connecting to the server.  Free clients do not.  
  4. All of our Server license feature our Secure Server encryption which will provide Totally Encrypted Data Streams even when the free clients are used.
  5. Programs which update the screen rapidly (such as while counting records) or which make excessive and gratuitous use of Hot-Fields to micro-manage the user interface will run slower because of the need for frequent data transmissions to and from the server.
  6. Our testing indicates that sub second response time (often less than a quarter-second) is easily achievable from any place on Earth as long as there is a broadband internet connection at each end.  Even Dialup connections are acceptably quick. "Your Mileage May Vary" according to your bandwidth.
  7. Servers need memory, but not powerful processors. Some platforms such as Windows XP or Windows 2000 or Windows & or Windows 8, or Windows Server can manage several Gigabytes of memory, whereas Windows 95/98/Me do not necessarily have the capability to use large memory.  That old clunk in the corner may make a perfect server for 5, 10, or 25 concurrent users.  Maybe you will need to throw another stick of memory in it.  Its still cheaper than a new machine.  We have customers with 250 concurrent users hosted on servers with 2 gig of memory, 10 to 25 in a one gigabyte machine.  It all depends on how much memory your application needs.
  8. Need bigger? We support Server Farms, groups of load balanced servers capable supporting in excess of 5000 seats.
  9. You will, of course, need a multi-user file system for your application, or a database or some other way to control file contention.

Want a Demo?

Download our free client, and send email to asking for access to our test server.  











2000-2019 Norcom, all rights reserved 

Contact Norcom