Interfacing the Apache Web Server to APLX
|
|
|
- Lester Burke
- 9 years ago
- Views:
Transcription
1 Application Note APLX-LMW-0403: Interfacing the Apache Web Server to APLX Introduction This document describes how you can use APLX in conjunction with Apache, the widelyused web-server software developed by the Apache Group ( It allows your APLX applications to serve data requests to web pages accessed using any standard browser (such as Microsoft Internet Explorer or Apple Safari). If your system is permanently connected to the Internet, this makes it possible to host fully-functional web sites which obtain all or part of their content from an application written in APL. In the system described in this note, you do not have to be concerned at all with the details of internet protocols; Apache handles all of the interaction with the client web browser, and typically it also serves up any static web pages which do not require an interface to APL. When the remote client requests a page (or submits a form) which requires data from the APL application, Apache will pass the request to your APLX application, and wait for the response. Your APLX application returns the data, and Apache then transmits the HTML page to the browser. What is Apache? Apache is an open-source web-server package which was developed by the Apache Group. It is an entirely volunteer effort, completely funded by its members, not by commercial sales. As a result, Apache is available free of charge. Apache is available for a very wide range of systems, including Linux, AIX, Windows and MacOS X. Although Apache costs nothing to use, that does not in any way imply that it is an inferior product. On the contrary, a very large proportion of web-sites including many high-volume commercial sites are based on it. Many commercial Internet Service Providers use Apache to host web pages for their clients. As at February 2000, over six million sites were based on Apache; it accounts for well over half of all sites on the World Wide Web. Advantages of using Apache It is possible to write your own home-brew web server in APL, directly receiving HTTP requests over a TCP/IP network, and returning the results directly over the network. Although this approach can be made to work, it involves a non-trivial development effort. In
2 any case, it is better to take advantage of the Apache software to handle as much of the work as possible, for the following reasons: Apache is very reliable. It is well-tested, and is used by many millions of web-sites around the world. This is very important given that web sites may be accessed 24 hours a day, 365 days a year, from all around the world. It is multi-threaded, and provides a high-performance solution which can handle many simultaneous requests very efficiently. It is very easy to set up and use, and very easy to interface to APL. It provides many extra features such as error logging, and access logging (to keep track of who visits your site and the pages they access). Because of Apache s popularity, there are many packages available to help you interpret the web logs. Apache also handles more advanced features such as server-side includes, cookies, secure connections, content negotiation, redirection, and access control. Even if you do not need these features at present, you may want to use some of them in the future. Apache has been thoroughly checked for security holes, and has been designed to be robust in the face of denial-of-service attacks and other malicious attempts to disrupt your web site. It is also robust against accidental runaway conditions which could prevent your web-site working properly. It would be very hard to replicate this robustness in your own APL web server. In summary, using Apache rather than serving up pages directly from APL provides a much better solution, with much less effort, at zero cost. Not a difficult decision! Step 1: Configure Apache and setup some static web pages If you want to try this approach of combining Apache and APL to serve up web pages, the very first thing to do is to start Apache running, and get it to serve up some static HTML pages. In this note, we will focus on interfacing Apache to APLX under Linux. However, the techniques presented can also be used for other operating systems; this is described briefly at the end of this document. Apache is included on most Linux distributions, and may well be configured and already running on your Linux system. To find out if it is already running, type ps -ea at the Linux command prompt, and see if any of the tasks are running the httpd program. Otherwise you will have to configure it by hand. Consult the Apache documentation or any introductory book on Linux for more information on this first step. HTML pages are just text files, placed in the html or docs directory of the Apache installation. (On our test installation, the directory is /home/httpd/html/, but your system may be configured differently). Apache come with its own test page index.html,
3 so if you have got it set up correctly on a machine on your network, you can just point your browser at it using the URL where XXX is either the name or IP address of the server running Apache. If all is well, your browser will display the Apache test page index.html. To access the page from an arbitrary machine on the internet, you would of course have to use the full internet IP address or a fully-qualified domain name like where the domain name had been registered as pointing to your system - check with your ISP for more information. In our examples, we ll assume the Linux server running Apache has the hostname penguin, so the Apache test page is on our intranet at: Once you have the Apache test page working, you can create your own HTML pages, either by writing HTML directly in a text editor, or preferably by using a web-page editor such as the excellent (and free) 1st Page from Evrsoft Pty Ltd ( If you create a page called mypage.html, and place it in the Apache HTML pages directory, you can access it from your browser using an URL in the form If you place it in a sub-directory aboutme of the Apache HTML directory, the URL would be something like (remember to use the correct host name rather than penguin if you try these!) Step 2: Serving up dynamic content from a program or script Once you are comfortable with using Apache with static HTML pages, the next stage is to understand how Apache calls another program to pick up dynamic pages, which it then serves up to the remote browser. The answer is very simple. There should be a directory called cgi-bin in your Apache directory tree. (On our system it is /home/httpd/cgi-bin/ ). Any program placed in that directory is assumed by Apache to be the name of a script or program which provides dynamic content. The program or script can be written in almost any language (often Perl is used, but many others are possible). All it has to do is write the HTML for the page to standard output. When the page is requested, Apache will invoke the program and pick up its output via a pipe. It will then serve the output to the remote browser. The first line of the output has to identify the content type. For HTML pages, this is of the form: Content-type: text/html followed by a blank line. The HTML itself then follows. Before we start thinking about interfacing to APL, we can test this interface by writing a little shell script which simply displays the local time. We can write the script as follows:
4 #!/bin/bash # Little test shell script for Apache # Output HTTP header and opening HTML tags. echo "Content-type: text/html" echo "" echo "<html>" echo "<head>" # Output title of page echo "<title>my first dynamic page</title>" echo "</head>" echo "<body>" # Output a heading. echo "<h1>time of day</h1>" # Output the body text echo "<p>the local time at Global HQ is " date echo "</p>" # Finish off page echo "</body>" echo "</html>" If we save this script as testpage.sh in the cgi-bin directory (remembering to make it executable by anyone using chmod a+x testpage.sh), we can test it in isolation by just running it at the Linux command prompt: $ cd /home/httpd/cgi-bin $./testpage.sh Content-type: text/html <html> <head> <title>my first dynamic page</title> </head> <body> <h1>time of day</h1> <p>the local time at Global HQ is Tue Jun 8 16:37:05 BST 2004 </p> </body> </html> It seems to do what we expected. Now let s see if Apache can run it and serve up the HTML to Internet Explorer. Any URL which refers to the cgi-bin directory will be treated as a request to run a program in the cgi-bin directory, so in this case we want the URL to be Internet Explorer displays the dynamic page based on the HTML which our little script outputs:
5 It really is that simple! Note that Apache doesn t care what language the program is written in. It simply invokes the program or script, and picks up the text from standard output. Step 3: Picking up parameters passed by Apache In a realistic example, the dynamic content would usually depend on the exact query which the user submitted. You might also want to check other information about the request, such as the hostname of the machine making the request. Apache passes this information in a series of environment variables. There are quite a few of these, amongst which are the following: $REQUEST_METHOD The method with which the request was made. This will be one of "GET", "HEAD", "POST", etc $QUERY_STRING The query part of the request, with spaces converted to %20 (see below). $REMOTE_HOST The name of the remote host making the request, if known. $REMOTE_ADDR The IP address of the remote host making the request.
6 $CONTENT_TYPE For queries which have attached information, such as HTTP POST and PUT, this is the content type of the data. $CONTENT_LENGTH The length of the content as given by the client. In a shell script, all this data is of course available very simply as shell variables. In other languages, you need to check how to access environment variables from within the program. To keep things simple, we ll continue our examples by typing the query directly in the URL line; the query part of the URL is anything after a question mark (you are probably familiar with this from the URL which appears in your browser location field when you use Google). Spaces get converted to %20. For example, if the URL requested by the user was: is the time?" then $QUERY_STRING will be: "What%20is%20the%20time?" (In a real application, you would typically use an HTML form to allow the user to request data; the HTTP request type would then be a POST.) Step 4: Passing the data to APL and getting back the response Now all we need to do is to figure out how to pass the query (which Apache gives us in $QUERY_STRING) to our APL application, and how to get APL to give us back the result when it is ready. One obvious way of doing this is to invoke APL directly, either via a shell script, or replacing the whole shell script. For example, APLX for Linux Server Edition can get input from standard in, and send output to standard out. It could thus be used directly by Apache. However, we don t really recommend this method, because starting up a whole new APL session on every request is too inefficient. It is better to have an APL server application sitting ready, waiting for a request to turn up. We just need to find a way to wake it up when we get a request, pass it some data, and get back the result. It can then get blocked so it doesn t use any CPU resource whilst it waits for the next request. You can achieve this in a number of ways. We ll use a mechanism called named pipes. These look and behave much like ordinary files, but are in fact First In, First Out buffers which allow one process to write data which a second process reads. They are thus ideal for our purpose, and they are also quite efficient in Linux.
7 You create a named pipe using the mkfifo program at the Linux command line. We ll create one in the /tmp directory, and make it accessible to anyone: $ mkfifo /tmp/mypipe $ chmod 666 /tmp/mypipe If you want to see how named pipes work, you ll need to open a second Linux command window. In one of the windows, read from the pipe: $ cat /tmp/mypipe The process will sit there blocked, waiting for some data to come down the pipe. In the other window, send it some data: $ echo hello > /tmp/mypipe The first process should now spring back into life and display hello. We can now make a shell script callaplx.sh which uses this mechanism to pass the Apache request to APL. We ll use a single pipe for queuing all requests, and a new pipe each time for APL to return the data to us. (Remember that there may be lots of requests arriving simultaneously; Apache will invoke our script in a new process for each one). To prove the concept, we ll just pass the query part of the request to APL. Our shell script will add the header and HTML wrapper. Here s the complete, commented shell script: #!/bin/bash # callaplx.sh: Shell script so that Apache can invoke APLX # Choose a name for the pipe via which APLX can return the result to us. # We can use the process ID to make this unique for each invocation: resultpipe=/tmp/resultpipe$ppid # Create the pipe, and give it public access: mkfifo $resultpipe chmod a+w $resultpipe # Write the query to the single named pipe we use for all input # to the APLX server application, # preceded by the pipe name so APLX knows where to return the result: echo "$resultpipe $QUERY_STRING" > /tmp/mypipe # Read from the result pipe, blocking until APLX has something to # return to us: result=$(cat $resultpipe) # Kill the result pipe now that we've got the result: rm $resultpipe # Output HTTP header and opening HTML tags: echo "Content-type: text/html" echo "" echo "<html>" echo "<head>"
8 # Output title of page echo "<title>aplx-apache Interface Demo</title>" echo "</head>" echo "<body>" # Output a heading. echo "<h1>result of calling APLX</h1>" # Output the query as sent by the browser echo "<p>query was: $QUERY_STRING</p>" # Output the text APL returned to us echo "<p>aplx returned: $result</p>" # Finish off page echo "</body>" echo "</html>" This uses mkfifo to create a new, unique named pipe through which the reply can be received. It uses the existing /tmp/mypipe as a queue to send the request (preceded by the name of the pipe where we want the result) to the APL application. It reads from the new pipe (and blocks until it is available), picks up the returned text, and outputs it in a predefined HTML wrapper. It also deletes the temporary pipe it has created. On the APL side, we need to sit waiting for some data. The easiest way of doing this is to use ŒHOST, as follows: ProcessWebRequests;REQUEST;REPLY;DELIM;PIPE;ŒIO [1] Wait for a request to come down the pipe, evaluate it using ŒEA. [2] The result is returned to the calling script via the return pipe [3] The request is in the form RETURNPIPE Request [4] ŒIO 1 [5] :Repeat [6] REQUEST ŒHOST 'cat /tmp/mypipe' [7] :If 0 ½REQUEST [8] Convert the %20 back to space, and extract the return pipe name [9] Also convert $ to Œ [10] REQUEST ŒSS REQUEST '%20' ' ' [11] :If REQUEST 'bye' ª :Return ª :EndIf [12] DELIM REQUEST¼' ' [13] PIPE (DELIM-1) REQUEST ª REQUEST DELIM REQUEST [14] REQUEST ŒSS REQUEST '$' 'Œ' [15] 'Got request to evaluate ',REQUEST [16] REPLY ("'Oops, cannot hack ',REQUEST") ŒEA REQUEST [17] ŒHOST 'echo "',(¹ REPLY),'" > ',PIPE [18] :EndIf [19] :EndRepeat This program will loop round waiting for a request. When it gets one, it evaluates it using ŒEA (having substituted Œ for $), and it returns the result via the pipe which the script created. It also writes the request to the session window as a debugging aid (line 15). If it receives the request bye, it exits (so you can terminate it by typing echo bye > /tmp/mypipe at the Linux prompt).
9 Let s try it. Start APLX on the Linux system, and run the above function. From the web browser, we ll pass a query which comprises a simple APL expression. In the browser, we type in the URL as: (The part up to the question mark is the location and name of the script; the part after the question mark is the query). Before transmitting this, Internet Explorer will convert spaces to %20. The effect is as follows: The query looks unreadable because of the substitution of %20 for space, but APL correctly evaluated it as: +/ Step 5: The Real World Of course, the above example is not very realistic. You re unlikely to want to pass arbitrary APL expressions via the browser (and in any case there is a problem of the special APL characters). But you should now be able to see how this mechanism can be used to pass parameters from your web pages to APL, and get back the result. Here are some pointers to making this mechanism more robust and more general. In our example, APL just returns a simple one-line string via the pipe. You might want it to return a whole web page, or at least a substantial part of the web page. The method shown (using echo to pass the text) is not suitable for long, multi-line text; instead, you could use the native file functions to create a temporary file containing the text, and just cat it to standard output in the script. In this mode, the return pipe would be used only as a synchronization method and to pass the name of the temporary file which APL should use.
10 Given the need for high reliability and 24-hour operation, you ll obviously need to add a lot of error checking and recovery code. It is a good idea to use several APL tasks. This has the advantage that if one takes a long time to complete a query, another query can be serviced at the same time. For example, your script could use the last digit of the process ID ($PPID) to select one of ten pipes to write to, and you could have ten APLX tasks handling requests. In a real-world example, you d also want some recovery mechanism so that if any of the APL tasks crashes or blocks for any reason, other APL tasks can continue to be used or the problem task can be automatically restarted. In addition, you don t have to use the shell script and ŒHOST combination to implement the techniques in this paper. In fact a more robust implementation might be to use Perl or C to write the program which Apache invokes, and perhaps a custom-written Auxiliary Processor on the APL side. That would allow for better error checking, timeouts, and recovery. But the overall software architecture would remain much as described above. Other Platforms This note primarily focuses on the interfacing APLX to Apache under Linux. However, similar techniques can be used on other platforms supported by APLX, as follows: MacOS X Apache is distributed by Apple and is fully supported under MacOS X. The code samples in this note should work as shown, provided you have an up-to-date version of BSDSupport.bundle (downloadable from the MicroAPL website). You can create named pipes using the mkfifo program by bringing up a Unix-style console window using the Terminal program. AIX The examples shown above should work in exactly the same way as under Linux, with one minor change. Because the Bash shell is not normally implemented under AIX, you need to change the first line of each of the shell scripts to read: instead of: #!/bin/ksh #!/bin/bash
11 Windows: Interfacing Apache to APLX under Windows NT/2000/XP can be done using the same principles as described above, but the details are somewhat different. Named Pipes are available, but you can t create and use them using simple console commands as you can in Unix-style systems. Instead, you have make Windows API calls such as CreateNamedPipe, which you can do using ŒNA. In addition, you do not have the full power of the Unix-style shell scripting language under Windows. Whilst a full discussion of using Named Pipes in Windows is outside the scope of this note, here are some pointers to get you started. Full information can be found in the Windows technical documentation. Named Pipes are created using the CreateNamedPipe API call. This is very like creating a file; it takes the name of the pipe, together with information like the read/write mode and buffer sizes, and returns a handle to it. The name should be in the form \\.\pipe\xxx, where XXX is the name you choose. Unlike in Linux and MacOS, the pipe is not persistent; it is deleted when all processes have closed the pipe. The server task (in our case, the APL application) executes the Windows system call ConnectNamedPipe, which by default blocks until a client task (in our case, the program which Apache will invoke) connects to the pipe by trying to open it. Unfortunately, if the client task tries to open the pipe when the server task is not ready, it gets an error rather than waiting for it to be ready. Once the connection is established, the client can write to the pipe using normal file operations, and the server (APL) can read from the pipe in the same way. The server calls DisconnectNamedPipe to close the connection, and can then call CreateNamedPipe again to wait for a new command. Finally, the server closes the pipe using CloseHandle, and it is deleted. APLX can interface to the pipe using ŒNA to make the Windows calls. Without going into the details, here are some definitions we can use to define the necessary functions in APLX: ŒNA 'U4 kernel32 CreateNamedPipeA <C[*] U4 U4 U4 U4 U4 U4 U4' ŒNA 'U4 kernel32 ConnectNamedPipe U4 U4' ŒNA 'U4 kernel32 ReadFile U4 >C[512] I4 >I4 U4' ŒNA 'U4 kernel32 DisconnectNamedPipe U4' ŒNA 'U4 kernel32 CloseHandle U4' On the Apache side, for the purposes of demonstration we can use a batch file. Because Windows batch files are very limited, this is not a production-quality solution, but it illustrates the technique. We ll use a temporary file to get the result back from APL to the caller. The APL server must be started first, because it creates the named pipe. It then waits for a client to send it a command. It writes the reply to a temporary file, and when this is created the caller writes it to standard output. This is the APLX side of the transaction:
12 ProcessWebRequestsWin;REQUEST;REPLY;DELIM;PIPE;TIE;ERR;X;ŒIO [1] Wait for a request to come down the pipe, evaluate it using ŒEA. [2] The result is returned to the calling script (and hence Apache) [3] via a temporary file [4] PIPE CreateNamedPipeA '\\.\pipe\cmdpipe' [5] :If PIPE= 1 ª ŒES 'Could not create the named pipe' ª :EndIf [6] ŒIO 1 [7] :Repeat [8] Block, waiting for client to connect to the pipe with a request [9] ERR ConnectNamedPipe PIPE,0 [10] [11] Read the request from the pipe. Returns (ERRFLAG) (DATA) (LENGTH) [12] X ReadFile PIPE '' [13] ERR DisconnectNamedPipe PIPE [14] :If 0=1œX ª ŒES 'Pipe read error' ª ERR CloseHandle PIPE ª :EndIf [15] REQUEST ((3œX) 2œX)~ŒR,ŒL,'"' [16] :If (3 REQUEST) 'bye' ª ERR CloseHandle PIPE ª :Return ª :EndIf [17] [18] Convert the strange %20 back to space and $ to Œ [19] REQUEST ŒSS(REQUEST;('%20';'$');(' ';'Œ')) [20] [21] For debugging, display request to session window [22] 'Got request to evaluate ',REQUEST [23] ŒCC ŒR,ŒL Force immediate flush, so it displays in sync [24] [25] REPLY ¹ ("'Oops, cannot hack ',REQUEST")ŒEA REQUEST [26] [27] Write reply as a temporary file, then rename it [28] TIE 'c:\temp\xx.tmp' ŒNCREATE 0 ª REPLY ŒNWRITE TIE ª ŒNUNTIE TIE [29] 'c:\temp\aplreply.txt' ŒNRENAME 'c:\temp\xx.tmp' [30] :EndRepeat [31] ERR CloseHandle PIPE The batch file looks like off REM Windows batch file for sending requests to APLX via a named pipe REM Write the query to the single named pipe we use for all input REM to the APLX server application del c:\temp\aplreply.txt 2>NUL: echo "%QUERY_STRING%" > \\.\pipe\cmdpipe REM Wait for APL to write out a temporary file containing the reply :waitloop if not exist c:\temp\aplreply.txt goto :waitloop REM Output HTTP header and opening HTML tags. echo Content-type: text/html echo. echo ^<html^> echo ^<head^> REM Output title of page echo ^<title^>aplx-apache Interface Demo^</title^> echo ^</head^> echo ^<body^>
13 REM Output a heading. echo ^<h1^>result of calling APLX^</h1^> REM Output the body text echo ^<p^>query was: %QUERY_STRING%^</p^> REM Output the text APL returns to us echo ^<p^>aplx returned: type c:\temp\aplreply.txt echo ^</p^> REM Finish off page echo ^</body^> echo ^</html^> To provide a robust solution, this would need to be enhanced in a number of ways. The most important is to take account of multiple requests coming in simultaneously; if the APL application was already busy when a task tries to write to the pipe, an error would be generated which is not trapped in this simple example. Also you would want to use a different temporary file name for each request, so that there is no danger of a reply to request A being sent to client B! As under Linux, you would probably want to use multiple APLX tasks in order to be able to deal with multiple requests simultaneously. Implementing such features requires a more powerful programming environment than Windows batch files; it can be done much more easily in C or Perl. This makes it possible to use the synchronization features of named pipes to block tasks with timeouts, providing an efficient but robust interface which can recover when things go wrong. Copyright 2004 MicroAPL Ltd. MicroAPL and APLX are trademarks of MicroAPL Ltd. Microsoft and Windows are registered trademarks of Microsoft Corporation. Linux is a registered trademark of Linus Torvalds. MacOS X is a registered trademark or Apple Computer. AIX is a registered trademark of IBM. The information contained in this paper is provided strictly as is, without any warranty or guarantee of any kind.
Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence
Web Development Owen Sacco ICS2205/ICS2230 Web Intelligence 2. Web Servers Introduction Web content lives on Web servers Web servers speak the platform independent HyperText Transfer Protocol (HTTP) (so
Remote Console Installation & Setup Guide. November 2009
Remote Console Installation & Setup Guide November 2009 Legal Information All rights reserved. No part of this document shall be reproduced or transmitted by any means or otherwise, without written permission
Security Correlation Server Quick Installation Guide
orrelogtm Security Correlation Server Quick Installation Guide This guide provides brief information on how to install the CorreLog Server system on a Microsoft Windows platform. This information can also
Hadoop Basics with InfoSphere BigInsights
An IBM Proof of Technology Hadoop Basics with InfoSphere BigInsights Part: 1 Exploring Hadoop Distributed File System An IBM Proof of Technology Catalog Number Copyright IBM Corporation, 2013 US Government
Internet Technologies. World Wide Web (WWW) Proxy Server Network Address Translator (NAT)
Internet Technologies World Wide Web (WWW) Proxy Server Network Address Translator (NAT) What is WWW? System of interlinked Hypertext documents Text, Images, Videos, and other multimedia documents navigate
Instructor: Betty O Neil
Introduction to Web Application Development, for CS437/637 Instructor: Betty O Neil 1 Introduction: Internet vs. World Wide Web Internet is an interconnected network of thousands of networks and millions
Getting Started With Your Virtual Dedicated Server. Getting Started Guide
Getting Started Guide Getting Started With Your Virtual Dedicated Server Setting up and hosting a domain on your Linux Virtual Dedicated Server using cpanel. Getting Started with Your Virtual Dedicated
EPiServer Operator's Guide
EPiServer Operator's Guide Abstract This document is mainly intended for administrators and developers that operate EPiServer or want to learn more about EPiServer's operating environment. The document
Forms, CGI Objectives. HTML forms. Form example. Form example...
The basics of HTML forms How form content is submitted GET, POST Elements that you can have in forms Responding to forms Common Gateway Interface (CGI) Later: Servlets Generation of dynamic Web content
Installation and Deployment
Installation and Deployment Help Documentation This document was auto-created from web content and is subject to change at any time. Copyright (c) 2016 SmarterTools Inc. Installation and Deployment SmarterStats
COMP 112 Assignment 1: HTTP Servers
COMP 112 Assignment 1: HTTP Servers Lead TA: Jim Mao Based on an assignment from Alva Couch Tufts University Due 11:59 PM September 24, 2015 Introduction In this assignment, you will write a web server
Installing AWStats on IIS 6.0 (Including IIS 5.1) - Revision 3.0
AWStats is such a great statistical tracking program to use, but there seems to be a lack of easy-tofollow documentation available for installing AWStats on IIS. This document covers the basic setup process
Getting Started With Your Virtual Dedicated Server. Getting Started Guide
Getting Started Guide Getting Started With Your Virtual Dedicated Server Setting up and hosting a domain on your Linux Virtual Dedicated Server using Plesk 8.0. Getting Started with Your Virtual Dedicated
2 Downloading Access Manager 3.1 SP4 IR1
Novell Access Manager 3.1 SP4 IR1 Readme May 2012 Novell This Readme describes the Novell Access Manager 3.1 SP4 IR1 release. Section 1, Documentation, on page 1 Section 2, Downloading Access Manager 3.1
Hypercosm. Studio. www.hypercosm.com
Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks
Security Correlation Server Quick Installation Guide
orrelog Security Correlation Server Quick Installation Guide This guide provides brief information on how to install the CorreLog Server system on a Microsoft Windows platform. This information can also
SchoolBooking SSO Integration Guide
SchoolBooking SSO Integration Guide Before you start This guide has been written to help you configure SchoolBooking to operate with SSO (Single Sign on) Please treat this document as a reference guide,
Parallels Plesk Panel 11 for your Linux server
Getting Started Guide Parallels Plesk Panel 11 for your Linux server Getting Started Guide Page 1 Getting Started Guide: Parallels Plesk Panel 11, Linux Server Version 1.1 (11.1.2012) Copyright 2012. All
10. Java Servelet. Introduction
Chapter 10 Java Servlets 227 10. Java Servelet Introduction Java TM Servlet provides Web developers with a simple, consistent mechanism for extending the functionality of a Web server and for accessing
Network Technologies
Network Technologies Glenn Strong Department of Computer Science School of Computer Science and Statistics Trinity College, Dublin January 28, 2014 What Happens When Browser Contacts Server I Top view:
Perl/CGI. CS 299 Web Programming and Design
Perl/CGI CGI Common: Gateway: Programming in Perl Interface: interacts with many different OSs CGI: server programsprovides uses a well-defined users with a method way to to gain interact access with to
Release Notes RSA Authentication Agent 7.1.3 for Web for IIS 7.0, 7.5, and 8.0 Web Server
Release Notes RSA Authentication Agent 7.1.3 for Web for IIS 7.0, 7.5, and 8.0 Web Server April, 2014 Introduction This document describes what is new and what has changed in RSA Authentication Agent 7.1.3
1. When will an IP process drop a datagram? 2. When will an IP process fragment a datagram? 3. When will a TCP process drop a segment?
Questions 1. When will an IP process drop a datagram? 2. When will an IP process fragment a datagram? 3. When will a TCP process drop a segment? 4. When will a TCP process resend a segment? CP476 Internet
IBM WEBSPHERE LOAD BALANCING SUPPORT FOR EMC DOCUMENTUM WDK/WEBTOP IN A CLUSTERED ENVIRONMENT
White Paper IBM WEBSPHERE LOAD BALANCING SUPPORT FOR EMC DOCUMENTUM WDK/WEBTOP IN A CLUSTERED ENVIRONMENT Abstract This guide outlines the ideal way to successfully install and configure an IBM WebSphere
Moxa Device Manager 2.0 User s Guide
First Edition, March 2009 www.moxa.com/product 2009 Moxa Inc. All rights reserved. Reproduction without permission is prohibited. Moxa Device Manager 2.0 User Guide The software described in this manual
INSTALLING KAAZING WEBSOCKET GATEWAY - HTML5 EDITION ON AN AMAZON EC2 CLOUD SERVER
INSTALLING KAAZING WEBSOCKET GATEWAY - HTML5 EDITION ON AN AMAZON EC2 CLOUD SERVER A TECHNICAL WHITEPAPER Copyright 2012 Kaazing Corporation. All rights reserved. kaazing.com Executive Overview This document
Server & Workstation Installation of Client Profiles for Windows
C ase Manag e m e n t by C l i e n t P rofiles Server & Workstation Installation of Client Profiles for Windows T E C H N O L O G Y F O R T H E B U S I N E S S O F L A W General Notes to Prepare for Installing
File Transfer Examples. Running commands on other computers and transferring files between computers
Running commands on other computers and transferring files between computers 1 1 Remote Login Login to remote computer and run programs on that computer Once logged in to remote computer, everything you
Getting Started Guide. Getting Started With Your Dedicated Server. Setting up and hosting a domain on your Linux Dedicated Server using Plesk 8.0.
Getting Started Guide Getting Started With Your Dedicated Server Setting up and hosting a domain on your Linux Dedicated Server using Plesk 8.0. Getting Started with Your Dedicated Server Plesk 8.0 Version
CTIS 256 Web Technologies II. Week # 1 Serkan GENÇ
CTIS 256 Web Technologies II Week # 1 Serkan GENÇ Introduction Aim: to be able to develop web-based applications using PHP (programming language) and mysql(dbms). Internet is a huge network structure connecting
Exercises: FreeBSD: Apache and SSL: pre SANOG VI Workshop
14/01/05 file:/data/hervey/docs/pre-sanog/web/ha/security/apache-ssl-exercises.html #1 Exercises Exercises: FreeBSD: Apache and SSL: pre SANOG VI Workshop 1. Install Apache with SSL support 2. Configure
Introduction to Operating Systems
Introduction to Operating Systems It is important that you familiarize yourself with Windows and Linux in preparation for this course. The exercises in this book assume a basic knowledge of both of these
APACHE WEB SERVER. Andri Mirzal, PhD N28-439-03
APACHE WEB SERVER Andri Mirzal, PhD N28-439-03 Introduction The Apache is an open source web server software program notable for playing a key role in the initial growth of the World Wide Web Typically
SETTING UP ACTIVE DIRECTORY (AD) ON WINDOWS 2008 FOR DOCUMENTUM @ EROOM
SETTING UP ACTIVE DIRECTORY (AD) ON WINDOWS 2008 FOR DOCUMENTUM @ EROOM Abstract This paper explains how to setup Active directory service on windows server 2008.This guide also explains about how to install
DEERFIELD.COM. DNS2Go Update API. DNS2Go Update API
DEERFIELD.COM DNS2Go Update API DNS2Go Update API DEERFIELD.COM PRODUCT DOCUMENTATION DNS2Go Update API Deerfield.com 4241 Old U.S. 27 South Gaylord, MI 49686 Phone 989.732.8856 Email [email protected]
A Comparative Study on Vega-HTTP & Popular Open-source Web-servers
A Comparative Study on Vega-HTTP & Popular Open-source Web-servers Happiest People. Happiest Customers Contents Abstract... 3 Introduction... 3 Performance Comparison... 4 Architecture... 5 Diagram...
How To Create An Easybelle History Database On A Microsoft Powerbook 2.5.2 (Windows)
Introduction EASYLABEL 6 has several new features for saving the history of label formats. This history can include information about when label formats were edited and printed. In order to save this history,
Exercises: FreeBSD: Apache and SSL: SANOG VI IP Services Workshop
Exercises Exercises: FreeBSD: Apache and SSL: SANOG VI IP Services Workshop July 18, 2005 1. 2. 3. 4. 5. Install Apache with SSL support Configure Apache to start at boot Verify that http and https (Apache)
PHP Integration Kit. Version 2.5.1. User Guide
PHP Integration Kit Version 2.5.1 User Guide 2012 Ping Identity Corporation. All rights reserved. PingFederate PHP Integration Kit User Guide Version 2.5.1 December, 2012 Ping Identity Corporation 1001
Fermilab Central Web Service Site Owner User Manual. DocDB: CS-doc-5372
Fermilab Central Web Service Site Owner User Manual DocDB: CS-doc-5372 1 Table of Contents DocDB: CS-doc-5372... 1 1. Role Definitions... 3 2. Site Owner Responsibilities... 3 3. Tier1 websites and Tier2
Moxa Device Manager 2.3 User s Manual
User s Manual Third Edition, March 2011 www.moxa.com/product 2011 Moxa Inc. All rights reserved. User s Manual The software described in this manual is furnished under a license agreement and may be used
Getting Started with AWS. Hosting a Static Website
Getting Started with AWS Hosting a Static Website Getting Started with AWS: Hosting a Static Website Copyright 2016 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon's trademarks
Integration with Active Directory
VMWARE TECHNICAL NOTE VMware ACE Integration with Active Directory This document explains how to set up Active Directory to use with VMware ACE. This document contains the following topics: About Active
DiskPulse DISK CHANGE MONITOR
DiskPulse DISK CHANGE MONITOR User Manual Version 7.9 Oct 2015 www.diskpulse.com [email protected] 1 1 DiskPulse Overview...3 2 DiskPulse Product Versions...5 3 Using Desktop Product Version...6 3.1 Product
7 Why Use Perl for CGI?
7 Why Use Perl for CGI? Perl is the de facto standard for CGI programming for a number of reasons, but perhaps the most important are: Socket Support: Perl makes it easy to create programs that interface
Enhanced Connector Applications SupportPac VP01 for IBM WebSphere Business Events 3.0.0
Enhanced Connector Applications SupportPac VP01 for IBM WebSphere Business Events 3.0.0 Third edition (May 2012). Copyright International Business Machines Corporation 2012. US Government Users Restricted
Ahsay Replication Server v5.5. Administrator s Guide. Ahsay TM Online Backup - Development Department
Ahsay Replication Server v5.5 Administrator s Guide Ahsay TM Online Backup - Development Department October 9, 2009 Copyright Notice Ahsay Systems Corporation Limited 2008. All rights reserved. Author:
INASP: Effective Network Management Workshops
INASP: Effective Network Management Workshops Linux Familiarization and Commands (Exercises) Based on the materials developed by NSRC for AfNOG 2013, and reused with thanks. Adapted for the INASP Network
IBM Campaign Version-independent Integration with IBM Engage Version 1 Release 3 April 8, 2016. Integration Guide IBM
IBM Campaign Version-independent Integration with IBM Engage Version 1 Release 3 April 8, 2016 Integration Guide IBM Note Before using this information and the product it supports, read the information
CPE111 COMPUTER EXPLORATION
CPE111 COMPUTER EXPLORATION BUILDING A WEB SERVER ASSIGNMENT You will create your own web application on your local web server in your newly installed Ubuntu Desktop on Oracle VM VirtualBox. This is a
THE CHALLENGE OF ADMINISTERING WEBSITES OR APPLICATIONS THAT REQUIRE 24/7 ACCESSIBILITY
THE CHALLENGE OF ADMINISTERING WEBSITES OR APPLICATIONS THAT REQUIRE 24/7 ACCESSIBILITY As the constantly growing demands of businesses and organizations operating in a global economy cause an increased
Extending Remote Desktop for Large Installations. Distributed Package Installs
Extending Remote Desktop for Large Installations This article describes four ways Remote Desktop can be extended for large installations. The four ways are: Distributed Package Installs, List Sharing,
Enabling Kerberos SSO in IBM Cognos Express on Windows Server 2008
Enabling Kerberos SSO in IBM Cognos Express on Windows Server 2008 Nature of Document: Guideline Product(s): IBM Cognos Express Area of Interest: Infrastructure 2 Copyright and Trademarks Licensed Materials
PHP Authentication Schemes
7 PHP Authentication Schemes IN THIS CHAPTER Overview Generating Passwords Authenticating User Against Text Files Authenticating Users by IP Address Authenticating Users Using HTTP Authentication Authenticating
CA Performance Center
CA Performance Center Single Sign-On User Guide 2.4 This Documentation, which includes embedded help systems and electronically distributed materials, (hereinafter referred to as the Documentation ) is
VMware vcenter Log Insight Getting Started Guide
VMware vcenter Log Insight Getting Started Guide vcenter Log Insight 1.5 This document supports the version of each product listed and supports all subsequent versions until the document is replaced by
Using the Push Notifications Extension Part 1: Certificates and Setup
// tutorial Using the Push Notifications Extension Part 1: Certificates and Setup Version 1.0 This tutorial is the second part of our tutorials covering setting up and running the Push Notifications Native
Apache Server Implementation Guide
Apache Server Implementation Guide 340 March Road Suite 600 Kanata, Ontario, Canada K2K 2E4 Tel: +1-613-599-2441 Fax: +1-613-599-2442 International Voice: +1-613-599-2441 North America Toll Free: 1-800-307-7042
IBM Campaign and IBM Silverpop Engage Version 1 Release 2 August 31, 2015. Integration Guide IBM
IBM Campaign and IBM Silverpop Engage Version 1 Release 2 August 31, 2015 Integration Guide IBM Note Before using this information and the product it supports, read the information in Notices on page 93.
Using Logon Agent for Transparent User Identification
Using Logon Agent for Transparent User Identification Websense Logon Agent (also called Authentication Server) identifies users in real time, as they log on to domains. Logon Agent works with the Websense
Installing and Configuring Adobe LiveCycle 9.5 Connector for Microsoft SharePoint
What s new Installing and Configuring Adobe LiveCycle 9.5 Connector for Microsoft SharePoint Contents Introduction What s new on page 1 Introduction on page 1 Installation Overview on page 2 System requirements
Using SVN to Manage Source RTL
Using SVN to Manage Source RTL CS250 Tutorial 1 (Version 083010a) August 30, 2010 Yunsup Lee In this tutorial you will gain experience using the Subversion (SVN) to manage your source RTL and code. You
The Einstein Depot server
The Einstein Depot server Have you ever needed a way to transfer large files to colleagues? Or allow a colleague to send large files to you? Do you need to transfer files that are too big to be sent as
Using EMC Unisphere in a Web Browsing Environment: Browser and Security Settings to Improve the Experience
Using EMC Unisphere in a Web Browsing Environment: Browser and Security Settings to Improve the Experience Applied Technology Abstract The Web-based approach to system management taken by EMC Unisphere
A Java proxy for MS SQL Server Reporting Services
1 of 5 1/10/2005 9:37 PM Advertisement: Support JavaWorld, click here! January 2005 HOME FEATURED TUTORIALS COLUMNS NEWS & REVIEWS FORUM JW RESOURCES ABOUT JW A Java proxy for MS SQL Server Reporting Services
Parallels. for your Linux or Windows Server. Small Business Panel. Getting Started Guide. Parallels Small Business Panel // Linux & Windows Server
Getting Started Guide Parallels Small Business Panel for your Linux or Windows Server Getting Started Guide Page 1 Getting Started Guide: Parallels Small Business Panel, Linux & Windows Server Version
Cloud Server powered by Mac OS X. Getting Started Guide. Cloud Server. powered by Mac OS X. AKJZNAzsqknsxxkjnsjx Getting Started Guide Page 1
Getting Started Guide Cloud Server powered by Mac OS X Getting Started Guide Page 1 Getting Started Guide: Cloud Server powered by Mac OS X Version 1.0 (02.16.10) Copyright 2010 GoDaddy.com Software, Inc.
Acronis Backup & Recovery 11.5 Quick Start Guide
Acronis Backup & Recovery 11.5 Quick Start Guide Applies to the following editions: Advanced Server for Windows Virtual Edition Advanced Server SBS Edition Advanced Workstation Server for Linux Server
Jetico Central Manager. Administrator Guide
Jetico Central Manager Administrator Guide Introduction Deployment, updating and control of client software can be a time consuming and expensive task for companies and organizations because of the number
EXTENDED FILE SYSTEM FOR F-SERIES PLC
EXTENDED FILE SYSTEM FOR F-SERIES PLC Before you begin, please download a sample I-TRiLOGI program that will be referred to throughout this manual from our website: http://www.tri-plc.com/trilogi/extendedfilesystem.zip
MIGS Payment Client Installation Guide. EGate User Manual
MIGS Payment Client Installation Guide EGate User Manual April 2004 Copyright The information contained in this manual is proprietary and confidential to MasterCard International Incorporated (MasterCard)
Web Services for Management Perl Library VMware ESX Server 3.5, VMware ESX Server 3i version 3.5, and VMware VirtualCenter 2.5
Technical Note Web Services for Management Perl Library VMware ESX Server 3.5, VMware ESX Server 3i version 3.5, and VMware VirtualCenter 2.5 In the VMware Infrastructure (VI) Perl Toolkit 1.5, VMware
2X Cloud Portal v10.5
2X Cloud Portal v10.5 URL: www.2x.com E-mail: [email protected] Information in this document is subject to change without notice. Companies, names, and data used in examples herein are fictitious unless otherwise
Using SVN to Manage Source RTL
Using SVN to Manage Source RTL CS250 Tutorial 1 (Version 092509a) September 25, 2009 Yunsup Lee In this tutorial you will gain experience using the Subversion (SVN) to manage your source RTL and code.
CASHNet Secure File Transfer Instructions
CASHNet Secure File Transfer Instructions Copyright 2009, 2010 Higher One Payments, Inc. CASHNet, CASHNet Business Office, CASHNet Commerce Center, CASHNet SMARTPAY and all related logos and designs are
Decision Support System to MODEM communications
Decision Support System to MODEM communications Guy Van Sanden [email protected] Decision Support System to MODEM communications by Guy Van Sanden This document describes how to set up the dss2modem communications
4.0 SP1 (4.0.1.0) November 2014 702P03296. Xerox FreeFlow Core Installation Guide: Windows Server 2008 R2
4.0 SP1 (4.0.1.0) November 2014 702P03296 Installation Guide: Windows Server 2008 R2 2014 Xerox Corporation. All rights reserved. Xerox, Xerox and Design, FreeFlow, and VIPP are trademarks of Xerox Corporation
IBM Software Hadoop Fundamentals
Hadoop Fundamentals Unit 2: Hadoop Architecture Copyright IBM Corporation, 2014 US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
Using Subversion in Computer Science
School of Computer Science 1 Using Subversion in Computer Science Last modified July 28, 2006 Starting from semester two, the School is adopting the increasingly popular SVN system for management of student
Database manager does something that sounds trivial. It makes it easy to setup a new database for searching with Mascot. It also makes it easy to
1 Database manager does something that sounds trivial. It makes it easy to setup a new database for searching with Mascot. It also makes it easy to automate regular updates of these databases. 2 However,
Greenstone Documentation
Greenstone Documentation Web library and Remote Collection Building with GLI Client Web Library. This enables any computer with an existing webserver to serve pre-built Greenstone collections. As with
Simple. Control Panel. for your Linux Server. Getting Started Guide. Simple Control Panel // Linux Server
Getting Started Guide Simple Control Panel for your Linux Server Getting Started Guide Page 1 Getting Started Guide: Simple Control Panel, Linux Server Version 2.1 (02.01.10) Copyright 2010. All rights
enicq 5 System Administrator s Guide
Vermont Oxford Network enicq 5 Documentation enicq 5 System Administrator s Guide Release 2.0 Published November 2014 2014 Vermont Oxford Network. All Rights Reserved. enicq 5 System Administrator s Guide
Application Servers - BEA WebLogic. Installing the Application Server
Proven Practice Application Servers - BEA WebLogic. Installing the Application Server Product(s): IBM Cognos 8.4, BEA WebLogic Server Area of Interest: Infrastructure DOC ID: AS01 Version 8.4.0.0 Application
Windows PCs & Servers are often the life-blood of your IT investment. Monitoring them is key, especially in today s 24 hour world!
+ Welcome to The Sentry-go Monitoring System v6 Monitoring made quick & easy! Be Proactive, Not Reactive! 3Ds (UK) Limited http://www.sentry-go.com Welcome to Sentry-go Sentry-go is a quick & easy to use
Cache Configuration Reference
Sitecore CMS 6.2 Cache Configuration Reference Rev: 2009-11-20 Sitecore CMS 6.2 Cache Configuration Reference Tips and Techniques for Administrators and Developers Table of Contents Chapter 1 Introduction...
5 Easy Steps to Implementing Application Load Balancing for Non-Stop Availability and Higher Performance
5 Easy Steps to Implementing Application Load Balancing for Non-Stop Availability and Higher Performance DEPLOYMENT GUIDE Prepared by: Jim Puchbauer Coyote Point Systems Inc. The idea of load balancing
Cabot Consulting Oracle Solutions. The Benefits of this Approach. Infrastructure Requirements
Scheduling Workbooks through the Application Concurrent Manager By Rod West, Cabot Oracle Application users will be very familiar with the Applications concurrent manager and how to use it to schedule
IBM Security QRadar Vulnerability Manager Version 7.2.1. User Guide
IBM Security QRadar Vulnerability Manager Version 7.2.1 User Guide Note Before using this information and the product that it supports, read the information in Notices on page 61. Copyright IBM Corporation
By the Citrix Publications Department. Citrix Systems, Inc.
Licensing: Setting Up the License Server on a Microsoft Cluster By the Citrix Publications Department Citrix Systems, Inc. Notice The information in this publication is subject to change without notice.
http://alice.teaparty.wonderland.com:23054/dormouse/bio.htm
Client/Server paradigm As we know, the World Wide Web is accessed thru the use of a Web Browser, more technically known as a Web Client. 1 A Web Client makes requests of a Web Server 2, which is software
Webapps Vulnerability Report
Tuesday, May 1, 2012 Webapps Vulnerability Report Introduction This report provides detailed information of every vulnerability that was found and successfully exploited by CORE Impact Professional during
Internet Information TE Services 5.0. Training Division, NIC New Delhi
Internet Information TE Services 5.0 Training Division, NIC New Delhi Understanding the Web Technology IIS 5.0 Architecture IIS 5.0 Installation IIS 5.0 Administration IIS 5.0 Security Understanding The
Web Server Manual. Mike Burns ([email protected]) Greg Pettyjohn ([email protected]) Jay McCarthy ([email protected]) November 20, 2006
Web Server Manual Mike Burns ([email protected]) Greg Pettyjohn ([email protected]) Jay McCarthy ([email protected]) November 20, 2006 Copyright notice Copyright c 1996-2006 PLT Permission is
