How does NetLink technology work?

Optional Technical Background

The following section is intended to give you an understanding of the technical issues involved in NetLink:

The Internet was designed to provide easy access to information that needed to be shared by many people. You can envision the Internet World Wide Web as a giant network of computers that are connected via certain standards. Key standards and concepts include:

An "intranet" is simply a local network that uses Internet technology without making all information available to the World Wide Web. There are technical security differences, but essentially the technology is the same. NetLink is designed to work with both the Internet and intranets.

Here’s how a request for info is processed on the World Wide Web:

The user on the client computer establishes a TCP/IP connection with a server. This is typically via a modem hookup to a local Internet Service Provider. (For an intranet this may be a local TCP/IP network connection.)

The user tells the browser software to send a request to the server. This is typically done by entering a URL (such as "www.southware.com") or by clicking on a hypertext link that references a URL.

The browser software sends the URL as an HTTP request to the server.

The server receives the HTTP request and starts a transaction to process the request.

a. If the URL is requesting a static page the server retrieves the file from the appropriate location (possibly from another server).

b. To produce a dynamic page the URL typically refers to a CGI program that will create the response for the server.

5. The server sends the response (typically an HTML file) back to the client browser.

6. The server terminates the transaction.



Reasons to Use this Technology

Some of the strengths of Internet technology include:

-Popularity and availability - Millions of people have access to an Internet-capable computer.

-Easy maintenance - There is no need to maintain software on client-side machines if you are utilizing browsers and HTML pages.

-Accepted standards - Communications issues are standardized and simplified.

-Efficient use of computing resources - A server computer can serve more users since resources aren’t tied up for the life of an application logon session, just for the duration of a request transaction.

Issues to Address in Using this Technology

There are challenges to overcome when using this technology:

-Uncertain or "fuzzy" communication and connections - The client computer and the computer with the data aren’t directly connected, only indirectly connected. This means you can't be sure if a user received your info or if they are done or if they are even connected anymore.

-Performance - Internet connections are typically slower than a normal network. It’s also common to experience periodic difficulty in connecting.

-Reliability - With this technology you're relying on multitudes of layers of software between layers of machines. "Reboot" is a typical solution for a breakdown. These blow-ups and breakdowns are tolerable for browsing applications, but not for mission critical processing.

-Security - Much progress has been made on security issues, but using the Internet exposes you to greater risks than you have in a local network.

Common Gateway Interface

The Common Gateway Interface (CGI) is an interface standard that allows Internet servers to utilize other applications to process requests. Essentially, it is a method of using Internet standards to receive a standard request, process it using a non-standard application program, and return it as a standard response. This is the common way to create dynamic pages.

To utilize CGI on your server you must:
  • have a CGI application on your server (such as NetLink) - this is a program that is designed to communicate with your server via CGI standards
  • configure your server to recognize a request that must be processed by the CGI program (for NetLink you typically execute a script or batch file that runs the NLNETUPD program with an Acucorp runtime)
  • provide links or other ways for users to send requests to your server for the CGI program to process (for NetLink, a link to a URL that runs a script file which executes NLNETUPD.OBJ and passes related data)


For simple CGI requests such as hypertext links the HTTP request uses the GET method of communication. The URL contains the name of the CGI program followed by a question mark and then the data for the request. For example, the URL


is passing the information that the Request ID to be processed by NLNETUPD.BAT is "MAIN".

For more complex CGI requests such as submitted forms the HTTP request uses the POST method of communication. The URL contains the name of the CGI program, and the HTTP request provides a POST string which contains the data for the request. The CGI program must extract the data from the POST string.

SouthWare NetLink is a CGI application that produces dynamically generated pages from the information available in the SouthWare Excellence Series. Your server passes the request to NetLink, NetLink creates a response, and your server sends the response back to the requestor.

How SouthWare NetLink Works

These are the basic components of NetLink that allow it to process a request:

The NLNETUPD.OBJ script program - this is the program that is called for each NetLink request - it is processed by your server as a CGI script

HTML templates - these are pages with HTML syntax that provide the format of the pages that will be presented back to the requestor - the templates contain variables that will be replaced with data when a request is processed

ReportMate™ formats with pre-defined run parameters - these are used to extract data from SouthWare files to incorporate into the templates as fields, tables, or reports


-You want to present a page with the details of a customer sales order. You create a ReportMate format that extracts the fields you want by using the syntax "variable_name=data" where variable_name is a name you have used in your template.

-You want to present a table of product categories and allow the user to click on one of them to access a list of stock items. You create a ReportMate format that lists all product categories and include the special HTML syntax to create a hypertext link. You also separate the fields with special characters that ReportMate turns into the HTML syntax for table formatting.

-You want to present a report to the user. Create a ReportMate format with the layout of the report - you can choose to present it as pre-formatted text (fixed-width font) or as a table.

ImportMate II™ formats - these are used to import data into SouthWare files from a submitted form (e.g. to create a service order request, change an address, submit an order, etc.)

Request Type records - each incoming URL must specify a Request type - this type defines the template to use, the ReportMate format(s) to run (if applicable), security, import options (if applicable), and other features

Requestor Logon IDs - a Requestor Login allows you to control who may access which request types and information

Session records - a session record is created on the server when a requestor logs in - the session number is then passed from request to request so that the requestor does not need to log in for each request

Here’s how a request gets processed in NetLink:

Related Questions/Answers

If each request is independent, how do you know who’s making the request to verify that they can access that information?

This is one of the most difficult tasks with Internet technology. Since you are not logged on to a continuing connection you must either require users to tell you who they are with each request or simulate a continuing login session. NetLink simulates a login session by assigning a unique session number each time a requestor logs in. The standard NetLink requests are designed to transfer the current session number from request to request so that NetLink can use the session number to know who the requestor is.

Why couldn’t you just make the normal SouthWare order entry program work in NetLink?

An interactive process like SouthWare’s order entry is too complex for Internet technology. Size of program and access to data are just two of the problems. For example, imagine going through SouthWare’s order entry and needing to generate (and wait for!) a new Internet request each time the screen changes (at each field). You can simulate data entry in an Internet form, but each time you need to validate or lookup data you would have to call back to the server for a different page as well as keep track of everything you have already done. The best you could do with Internet technology would still fall far short of the interactive program you can have in a non-Internet connection.

Given the limitations, how did you do an order entry system in NetLink?

We essentially created an Internet-oriented set of form pages to serve as a subset of the order entry capabilities. This data can then be imported into SouthWare’s order files to create true orders.

The hardest part of an order entry process is keeping track of what has already been done as you move from page to page. You could try to pass everything through the POST string each time, but this would be extremely tedious and would not allow you to have unlimited line items. Instead we utilized a special feature of NetLink that allows the NLNETUPD program to call other programs for supplemental processing:

-At the point you finish entering/changing the form for order header info the next request calls a program that saves the header information into a file.

-At the point you finish entering/changing the form for a line item the next request calls the program to save the line item information to a file.

-At the point you submit the order the next request calls the program to write the information from the saved files to an importable file.

This allows a more sophisticated process than would be possible with just Internet forms and HTML.