﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="scheduler.xsl" type="text/xsl"?>

<!--$Id: http.xml 3623 2005-04-20 06:53:16Z jz $-->

<description 
    title    = "HTTP Server and Web Services"
    base_dir = ""
    author   = "$Author: ap $"
    date     = "$Date: 2007-09-30 18:47:01 +0200 (So, 30 Sep 2007) $"
>

		<scheduler_keyword keyword="HTTP Server"/>
		<scheduler_keyword keyword="HTML"/>



		<h2>Web Services</h2>
<!--<h2>Web Services</h2>-->
	<p>
	    The Job Scheduler can encapsulate the execution of jobs and job chains as web services.
	    To do this, the Job Scheduler responds to SOAP queries received by way of its own built-in HTTP server.
	<!--Der Job Scheduler kann die Ausführung von Jobs und Job-Ketten als Web Services kapseln.
	    Dazu nimmt der Job Scheduler über den eingebauten HTTP-Server SOAP Anfragen entgegen.-->
	</p>
	<p>
	    Web services are installed using the <scheduler_element name="web_service"/> element.
	<!--Mit <scheduler_element name="web_service"/> können Web Services eingerichtet werden.-->
	</p>
	<p>
	    The use of the Job Scheduler as a web service, together with example configurations 
	    is described in the »Web Service Tutorial«.
	<!--Verwendung und Beispiele zur Konfiguration sind in der Dokumentation  »Web Service Tutorial« beschrieben.-->
	</p>
		
		
		
		<scheduler_keyword keyword="Browser Operation"/>
		<scheduler_keyword keyword="Web Interface"/>
		<a name="browser_access"/>
		<h2>Operation with a Browser</h2>
<!--<h2>Bedienung über einen Browser</h2>-->
		
		<p>
	    The Job Scheduler can be operated using its own built-in HTML interface and its own HTTP-Server
	    in conjunction with a standard browser (Microsoft Internet Explorer and Firefox).
	    This interface is accessed using the address <code>http://localhost:4444</code>,
	    where <code>localhost</code> can also be another computer name
	    and <code>4444</code> the TCP port number configured for the Job Scheduler.
	<!--Der Job Scheduler verfügt über einen HTTP Server und stellt HTML-Seiten zu seiner Bedienung bereit.
	    Sie können den Job Scheduler über einen Browser (Microsoft Internet Explorer und Firefox)
	    steuern. Geben Sie z.B. die Adresse <code>http://localhost:4444</code> ein.
	    <code>localhost</code> kann auch ein anderer Rechnername sein,
	    und <code>4444</code> ist die konfigurierte TCP-Portnummer des Job Schedulers.-->
		</p>
		<p>
	    See <scheduler_element name="config" attribute="tcp_port"/>.<br/>
	    See <scheduler_ini_entry file="factory.ini" section="spooler" entry="html_dir"/>.<br/>
	<!--Siehe <scheduler_element name="config" attribute="tcp_port"/>.<br/>
	    Siehe <scheduler_ini_entry file="factory.ini" section="spooler" entry="html_dir"/>.<br/>-->
		</p>
		<p>
			The user interface is described in the 
			"<a href="#user_interface">Built-In User Interface</a>" 
	<!--"<a href="user_interface">Built-In User Interface</a>" ?? LINK TO BE DEBUGGED - COMPARE WITH LINK IN LINE 191 -->
			section of this chapter (below).
		</p>
		
		
		
		<h2>Security</h2>
<!--<h2>Zugriffsschutz</h2>-->
		
		<p>
	    The Job Scheduler only allows TCP and HTTP connections to computers 
	    which have been given appropriate permissions with the 
	    <scheduler_element name="allowed_host"/> parameter.
	<!--Der Job Scheduler lässt nur TCP- und HTTP-Verbindung zu von Rechnern,
	    die mit <scheduler_element name="allowed_host"/> die Erlaubnis bekommen haben.-->
		</p>
		<p>
	    In addition, HTTP authentication can arranged using the <scheduler_element name="http.authentication"/> element.
	<!--Darüber hinaus kann HTTP-Authentifizierung mit dem Element <scheduler_element name="http.authentication"/>
	    vereinbart werden.-->
		</p>
		
		
		
		<scheduler_keyword keyword="Protocol"/>
<!--<scheduler_keyword keyword="Protokoll"/>-->
	
		<h2>Show Protocols in a Browser</h2>
<!--<h2>Protokolle mit einem Browser zeigen</h2>-->
		
		<p>
	    A protocol can be viewed whilst it is being written by the Job Scheduler.
	    The current status is always shown.
	    The following URLs are used:
	<!--Während der Job Scheduler ein Protokoll schreibt, können Sie es sich anzeigen lassen.
	    Sie sehen stets den neuesten Stand.-->
		</p>
		
		<p>
	    The functions necessary for this are provided by the Job Scheduler's HTML interface.
	    The Job Scheduler uses the following URLs for protocols:
	<!--Die HTML-Oberfläche des Job Schedulers bietet hierfür die entsprechenden Operationen an.
	    Der Job Scheduler verwendet folgende URLs für Protokolle:-->
		</p>
			
		<p>
			<table cellspacing="0" cellpadding="0">
				<col valign="baseline"/>
				<col valign="baseline" style="padding-left: 2ex"/>
				<tr>
					<td>
	                main protocol
	            <!--Hauptprotokoll-->
	            </td>
					<td>
						<code>http://<i>localhost:4444</i>/show_log?</code>
					</td>
				</tr>
				<tr>
					<td>
	                job protocol
	            <!--Jobprotokoll-->
	            </td>
					<td>
						<code>http://<i>localhost:4444</i>/show_log?job=<i>jobname</i></code>
					</td>
				</tr>
				<tr>
					<td>
	                task protocol
	            <!--Taskprotokoll-->
	        </td>
					<td>
						<code>http://<i>localhost:4444</i>/show_log?task=<i>task_id</i></code>
					</td>
				</tr>
				<tr>
					<td>
	                order protocol
	            <!--Auftragsprotokoll-->
	            </td>
					<td>
						<code>
							http://<i>localhost:4444</i>/show_log?job_chain=<i>jobchain</i>&amp;order=<i>order_id</i>
					<!--http://<i>localhost:4444</i>/show_log?job_chain=<i>Job Kette</i>&amp;order=<i>order_id</i>-->
						</code>
					</td>
				</tr>
			</table>
		</p>
		<p>
			where <i>localhost</i> is <code>localhost</code> or 127.0.0.1 or the hostname of the server on which the Job Scheduler is running.
	<!--<i>localhost</i> ist <code>localhost</code> oder 127.0.0.1 oder der Name des Rechners, auf dem der Job Scheduler läuft.-->
		</p>
		
		
		
		<h2>Job Descriptions</h2>
<!--<h2>Job-Beschreibung</h2>-->
		<p>
		  The job description from <scheduler_element name="description"/> can be called up using the following URL:
	<!--Die Job-Beschreibung aus <scheduler_element name="description"/> kann mit diesem URL abgerufen werden:-->
		</p>
		<p>
		  <code>http://<i>localhost:4444</i>/job_description?job=<i>job</i></code>
		</p>
		<p>
		  Note that it is assumed here that the description is coded in HTML.
	<!--Die Beschreibung wird in HTML codiert erwartet.-->
		</p>
		<p>
		  
		</p>
		
		
		
		<scheduler_keyword keyword="Web Interface"/>
		<scheduler_keyword keyword="User Interface"/>
		<scheduler_keyword keyword="GUI"/>
		<a name="user_interface"/>
<!--<a href="user_interface"/> LINK TO BE DEBUGGED -->
		<h2>Built-In Graphical User Interface</h2>
		
		<p>
			The Job Scheduler can be operated using its own, built-in, web-based graphical user interface (GUI).
			Instructions for accessing this interface were provided in the 
			"<a href="http.xml">Operation&#160;with&#160;a&#160;Browser</a>" 
			section of this chapter (above).
		</p>
		
		<p>
			This interface is automatically installed and updated with the Job Scheduler installation package.
		</p>
		
		<p>
			The Job Scheduler GUI is configured in the <code>custom.js</code> datei, 
			which is to be found in the <code>Job Scheduler installation directory\config\html</code> directory
		</p>
		
		<p>
			This interface is intended for the <em>operation</em> of the Job Scheduler
			- i.e. starting, monitoring and stopping the Job Scheduler itself, jobs &amp; job chains, orders, and 
			  any locks and Job Schedulers operating in a cluster.
			<br/>
			This interface should not be confused with the <a href="scheduler_editor.xml">Job Scheduler Editor</a>,
			which is a GUI used to <em>configure</em> the Job Scheduler itself, jobs &amp; job chains, orders using XML.
			(Note that the Job Scheduler Editor can be called up from the Job Scheduler GUI. This is described below.)
			<br/>
			The Job Scheduler GUI should also not be confused with the Managed Jobs Administration interface, 
			which is a part of the Job Scheduler <em>Managed Jobs</em> package.
			The Managed Jobs Administration interface is a GUI for the creation and monitoring jobs, job chains &amp; orders and 
			comes with a user administration. 
			Further information about the Managed Jobs Administration interface can be found in the »Managed Jobs Documentation«.
		</p>
		
		<p>
			When first opened, the Job Scheduler GUI appears as shown in the screenshot below and
			comprises three areas:
		</p>
		
		<ul>
			<li>
				An upper menu bar, where the general configuration of the interface (language &amp; update) is carried out; 
				any monitoring functions the Job Scheduler is to carry out is shown and
				the configuration of the Job Scheduler itself in the
				<a href="konfiguration.xml">XML configuration file</a> is shown.
				<br/>
				Note that here the XML configuration file is shown "read-only" - 
				to change the configuration, the <a href="scheduler_editor.xml">Job Scheduler Editor</a> 
				or an alternative XML editor should be used which has access to the Job Scheduler installation directory.
			</li>
			<li>
				A central menu and status bar, providing access to the most important Job Scheduler menus and 
				status information about the operation of the Job Scheduler.
				<br/>
				The "Update periodically" checkbox and the "Update" button are used to update the information shown 
				in the web interface either at regular intervals (when the checkbox is selected) or manually, 
				as required (using the button).
				The interval with which the regular updates of the interface are carried out is set 
				using the Settings dialog, which is accessed via the "Extras" button.
			</li>
			<li>
				A working area initially showing a list of the jobs configured for the Job Scheduler,
				which can be used to provide information about other aspects of the Job Scheduler operation 
				such as the job chains, process classes and locks by selecting the appropriately named menu tabs.
				Note that, should, for example, no locks be configured then the "Locks" menu tab will not be shown.
			</li>
		</ul>
		
		<img class="screen_shot" src="images/job_scheduler_http_gui_reduced.jpg"/>
		
		<p>
			The main menu for the operation of the Job Scheduler is shown in the next screenshot:
		</p>
		
		<img class="screen_shot" src="images/job_scheduler_http_menu_reduced.jpg"/>
		
		<p>
			Detailed information about the state of one of the jobs listed in the main working area of the interface 
			can be obtained by clicking on the name of the job.
			This causes the right hand part of this area to divide and 
			additional areas  showing status information about the job, about the task and about the taks queue to be displayed 
			as can be seen in the screen shot below:
		</p>
		
		<img class="screen_shot" src="images/job_scheduler_http_joblist_details_reduced.jpg"/>
		
		<p>
			The job status area also contains a menu providing the main commands necessary for controlling the job
			as shown in the next screen shot:
		</p>
		
		<img class="screen_shot" src="images/job_scheduler_http_job_menu_reduced.jpg"/>
		
		<p>
			The "Show description" item in the menu opens a new browser window containing the job description.
			Job descriptions such as the one shown below can be written with the Job Editor.
			This editor combines documentation of the job, its configuration and a generate function, 
			where the job can be newly generated after changes to its configuration have been made.
			It is so integrated in the Job Scheduler installation that the Job Scheduler automatically 
			takes account of changes in a job configuration without having to be restarted.
		</p>
		
		<p>
			The documentation for the Job Editor can be read in the 
			<link href="http://www.sos-berlin.com/doc/de/scheduler_editor/sos_help.htm">Job Documentation Editor</link>
			tutorial.
		</p>
		
		<img class="screen_shot" src="images/job_scheduler_http_job_description_reduced.jpg"/>
		
		<p>
			Information about tasks carrying out a job is shown in the task area of the interface as 
			shown in the next screen shot:
		</p>
		
		<img class="screen_shot" src="images/job_scheduler_http_task_reduced.jpg"/>
		
		<p>
			A task menu is provided as shown in the following screen shot:
		</p>
		
		<img class="screen_shot" src="images/job_scheduler_http_task_menu_reduced.jpg"/>
		
		<p>
			Information about any errors occuring in the execution of a job is shown in the interface job area:
		</p>
		
		<img class="screen_shot" src="images/job_scheduler_http_task_error_reduced.jpg"/>
		
		<p>
			If the Job Scheduler is part of a Job Scheduler cluster, providing backup, monitoriung and fail-over features, 
			a corresponding "Cluster" menu tab will be shown in the main working area of the interface.
			As can be seen in the next screen shot, a button is provided to a menu for configuring cluster related aspects of the 
			Job Scheduler operation:
		</p>
		
		<img class="screen_shot" src="images/job_scheduler_http_backup_reduced.jpg"/>
		
		<p>
			The principles for using the Job Scheduler GUI and 
			which have been described in conjunction with the features shown in the preceeding screen shots
			are followed for the aspects of the interface which have not been shown in the screen shots.
			This means, for example, that use of the job chain part of the interface should follow intuitively.
		</p>
		
		<p>
			Detailed information about the configuration and operation of the Job Scheduler can be found 
			in the following sections of this documentation:
		</p>
		
		<ul>
			<li>
				The <a href="konfiguration.xml">XML Configuration</a> of the Job Scheduler.
			</li>
			<li>
				<a href="job.xml">Jobs and Job Chains</a>.
			</li>
			<li>
				<a href="order.xml">Orders</a>.
			</li>
			<li>
				<a href="protokolle.xml">Log files and errors</a>.
			</li>
			<li>
				<a href="messages/index.xml">Error messages</a>.
			</li>
		</ul>
		
</description>

