Web Development |
This chapter describes:
Web Application Components |
A complete Panther web application has these components:
These components, created during installation and with the web setup manager, are distributed among different directories. This section describes these components and their location.
Each Panther web application needs a copy of, or link to, the distributed requester executable in the HTTP server's program directory. Using the web setup manager to create your web application automatically copies the requester executable for your application.
There are three different versions of the requester program:
Requester Program
Common names for the program directory on the HTTP server are cgi-bin or scripts.
Notes:
For the Apache HTTP server, use the directory specified for Standard CGI in the Apache Administration dialog. Typically, this is cgi-bin or scripts, not cgi-win.
The application name, which is used in the file name for the initialization file as well as the requester executable, must be unique and follow the naming conventions for the operating system.
The permissions on the requester program must allow the program to be executed by the HTTP server.
Alternatively, the Panther web application can run as a Java servlet. For more information, refer to Appendix D, "Using Java Servlets."
Each Panther web application must have an initialization file whose file name matches the name of the requester executable in the format application-name.ini. The name of the distributed initialization file is proweb.ini and the name of the requester executable is proweb[.exe]. Using the web setup manager to create your web application will automatically create the initialization file for your application.
The location of the initialization file is different for Windows and UNIX:
For more information about initialization file settings, refer to Chapter 12, "Web Initialization Options." For instructions on using the web setup manager, refer to Appendix B, "Web Setup Manager."
The application directory contains the files and libraries for Panther screens and reports. All references to Panther files should be relative to this directory. This directory can also contain JPL modules, graphics files, and other files referenced by screens and reports. If these files are not in this directory, they must be in a directory specified by the Panther environment variable The Panther opens files named in URLs relative to this directory and uses this directory as the basis for any relative path name references in Panther. For security purposes, Panther strips the parent directories from the path name. This means that CGI variables, such as In order to preserve application values during a series of browser requests, Panther caches data whenever it transmits a screen that can be posted back to the web application server. Generally, the data is stored in a cache file on the web application server. The On UNIX, the directory permissions must allow the HTTP server to read, write, and execute this directory.
Warning:
When you create this directory, make sure that the period character (.) does not appear anywhere in the path name. (This restriction is imposed by the Grafsman software that manages Panther graphs.)
The application must know the location of The initialization file can contain application-specific settings for any of the environment variables named in Errors occurring on the web application server are written to the log file set by the
Note:
Application errors are displayed in the browser and are not logged to the error file.
Using client and server logs does affect performance. You may choose to run client and server logs to test your web application, but not use them during deployment.
In three-tier applications, the time entered in the error logs is based on the server clock and will not correspond to the ULOG entries which are based on UTC (Coordinated Universal Time).
In a Panther web application, errors can be logged to the web application server by calling sm_web_log_error in an error handler. The error messages are appended to the file named in the The following error handler displays a message to the user and logs a separate message to the web error file:
Application Directory
SMPATH
.
AppDirectory
variable in the initialization file specifies the location of the application directory on your HTTP server. On startup, the jserver changes its working directory to the application directory.
PATH_TRANSLATED
, do not contain the absolute path specified in this variable.
Cache Directory
CacheDirectory
variable determines the cache directory location; other variables determine how the cache files are removed.
Configuration Directory
smvars.bin
in the config
directory of the web application server distribution. Generally, the web application server determines the location of this file by looking at the setting for SMBASE, one of the application variables. If the directory specified in SMBASE
contains the config
subdirectory, this is the only specification needed. Otherwise, the SMVARS, environment variable must specify the location of smvars.bin
.
smvars.bin
. The setting in the initialization file takes precedence.
Log Files
ErrorFile
variable in the initialization file. Additional client and server information is written to the files specified by the ClientLog
and ServerLog
variables. In order to better track your web application server usage, you can specify that the ClientLog
and ServerLog
variables write information to the same file. Client logs contain information about the requester process. Server logs list configuration information and jserver usage.
Logging Application Errors
ErrorFile
variable. Since the error message is not displayed to the user, you must make a separate call to sm_message_box, sm_femsg, or their JPL msg equivalents for any user messages.
proc error_def
msg emsg "Error: File not found"
call sm_web_log_error ("Unable to find file.")
return
Setting Up the Web Application Server |
The Panther web application server must be installed on a machine that is running an HTTP server. After installing the software, the web application server must be configured.
As discussed in previous sections, the Panther web application server has three components, requester, dispatcher, and jserver, and there are three different versions of the requester program for the various protocols.
Since CGI uses a separate process for each request if the requests happen concurrently, the performance is slower for the CGI version of an application. Using the HTTP server's APIs, like ISAPI or NSAPI, will improve performance.
The requester executables distributed with the web application server are located at:
$SMBASE/util/proweb*
Copy the appropriate version to the HTTP server's program directory. Common names for the program directory are cgi-bin or scripts.
To use the CGI (Common Gateway Interface) version of the requester executable, copy proweb[.exe] to the program directory.
To use the ISAPI (Microsoft's Internet Information Server API) version of the requester executable, copy proweb.isa to the program directory.
To use the NSAPI (Netscape's Web Server API) version of the requester executable, you must configure the NSAPI server and copy proweb.nsa to the program directory. For more information, refer to Appendix C, "Setting Up an NSAPI Web Server."
Alternatively, the Panther web application can run as a Java servlet. For more information, refer to Appendix D, "Using Java Servlets."
In a three-tier processing model, the web application server acts as a client of the application server. The web application server can connect to the enterprise application either as a local or remote client:
In JetNet and Oracle Tuxedo applications, you cannot open a remote library on startup using For two-tier UNIX web applications, verify that:
Configuring Library Access
Using Remote Libraries
SMFLIBS=
server_id
!lib_name
. If a client library cannot be placed on a shared file system, connect to the middleware on application startup using client_init
and execute the Panther library function sm_l_open to open a remote library.
Configuring Database Access
For two-tier Windows web applications, verify that:
DBMS DECLARE CONNECTION
statement is configured for database access.
Verify that the service has database access by:
Some database engines have special installation instructions. For example, Informix requires that you run HTTP servers on Windows can start a web application as a Windows service. For more information, refer to "Starting as a Service."
setnet32
to add the service user and then run the demo login program to check that the user was added correctly.
Configuring a Windows Server
Creating a New Web Application |
To create a new web application:
The Web setup manager utility creates the files necessary for a new web application and allows you to modify the settings of existing web applications.
Start your Web browser and enter the following URL:
The Web setup manager consists of a series of screens; enter the information needed on each screen. You will need:
Using the Web Setup Manager
To run the Web setup manager:
http://
serverName
/programDirectory
/websetup
If the Web Setup Manager utility is unable to write the files to the correct directories, generally due to incorrect file permissions, it prompts for a temporary location, by default For step-by-step instructions in using the web setup manager, refer to Appendix B, "Web Setup Manager." For more information on web initialization options, refer to Chapter 12, "Web Initialization Options."
You can start your web application (when it is not a service) with the monitor utility using the syntax:
and stop the web application using the syntax:
On Windows, it is recommended that the Panther web application be installed as a service. Use the monitor command in conjunction with the Once an application is installed as a service, It is also recommended that the services needed by the Panther web application start in a specific order:
/tmp
. At the end, the utility prompts you to move the files to their correct locations using provided script, application-name.cfg.
Starting Your Panther Web Application
Using monitor
monitor -start
appname
[appname
...]monitor -stop
appname
[appname
...] Starting as a Service
-install
option. The full syntax for that option is:
monitor -install
application-name
[-display display-name
]
[-{automatic|manual|disabled}]
[-user {\\domain
\user
|.\user
}]
[-password password
]
[[-depend service-name
]...]monitor -start
and monitor -stop
must not be used to start and stop the web application. net start
and net stop
can be used for manual control, or use the Services section of the Control Panel.
The type of requester program determines the syntax of the URL needed to access your application. The general syntax is:
In the following URLs, the application name is inventory and the screen is main.scr.
To use the CGI executable to access the application:
Accessing Your Panther Web Application
http://
serverName
/programDirectory
/applicationName
/screenName
http://myhost.com/cgi-bin/inventory.exe/main.scr
To use the ISAPI executable to access the application, copy proweb.isa to inventory.isa, start the application, and access the screen using the following URL:
To use the NSAPI executable to access the application, copy proweb.nsa to inventory.nsa, start the application using monitor or net start, and access the screen using the following URL:
Your HTTP server may support another syntax; refer to the HTTP server documentation.
If the web application is installed as a Java servlet, access the screen using the following URL:
For more information on using Java servlets, refer to Appendix D, "Using Java Servlets."
http://myhost.com/cgi-bin/inventory.isa/main.scr
http://myhost.com/panther/inventory.nsa/main.scr
http://myhost.com/proweb/inventory/main.scr
Setting Web Browser Options |
Caching should be enabled in the browser program. In Microsoft Internet Explorer, select ToolsInternet Options in the Browsing History Settings dialog, choose one of the Automatically or the Every time I visit the web page options.
Firewalls |
A firewall is the system that administers the access policy between two networks. The firewall determines which data is allowed network access and which data is blocked. A firewall lets users on your internal network access the global Internet, and prevents Internet users from accessing your internal network.
Panther is designed to work within whatever firewalls that are on your network. The security issues for Panther are the same issues encountered for all CGI programs. To be sure that your application operates within your company's firewall policy, check with your network or system administrator.
Your HTTP server vendor is the best source of information about how to set up the HTTP server to operate within a firewall and what security precautions are advised for CGI programs.
A Panther web application requires the CGI directory to contain the application's requester program. The remaining files in your application have configuration variables whose specifications are in the application's initialization file.
For example, the AppDirectory variable specifies the location of screens, reports, JPL modules, and graphics files. When Panther embeds the URL for the screen, it uses the relative path name based on the AppDirectory
variable, not the absolute path name.