Changeset 196
- Timestamp:
- Sat Sep 9 10:30:07 2006
- Files:
-
- website/trunk/server/internals.html (modified) (diff)
- website/trunk/server/install.html (modified) (diff)
- website/trunk/server/index.html (modified) (diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
website/trunk/server/internals.html
r95 r196 56 56 <!-- start main content --> 57 57 <h3>GanttPV Internals</h3> 58 <p>[What would you like to know about how GanttPV Server works? Please send your questions! -- Brian] 59 </p> 58 60 <p> 59 [What would you like to know about how GanttPV Server works? Please send your questions! -- Brian] 61 The GanttPV Update Server consists for four components: 62 <ol> 63 <li>Client Scripts - these are used to add a database to the server, download a copy, and to share changes with the server.</li> 64 <li>Server programs - these accept new databases, accept and distribute updates, format web pages, and keep backup copies of servers.</li> 65 <li>A Web CGI script - this script receives requests from web browsers, displays web pages from the server, and forwards updates to the server</li> 66 <li>Test scripts - that help to verify that the server is working properly</li> 67 </ol> 60 68 </p> 61 69 <h3>Client Script</h3> 62 70 <p> 63 The client script copies the entire contents of the database to the server using the XML RPC feature of Python. 71 Their are three important client scripts.: 72 <ol> 73 <li>The <i>Add Database to Server</i> script packages up the database and sends it to the server. It receives back keys that can be used to download the database or access the database via the web. The client script communicates with the server using the XML RPC feature of Python. The database is converted into XML and coverted back at the server end.</li> 74 <li>The <i>Download Database from Server</i> script a copies the requested database from the server into GanttPV.</li> 75 <li>The <i>Share Changes with Server</i> script receives changes from the server, integrates then into the local copy of the database, identifies all of the local changes, and sends them to the server.</li> 76 </ol> 64 77 </p> 65 78 <h3>Server</h3> 66 79 <p> 67 The first version of the server uses Gadfly, a relational database written in Python. We used it because it is easier to install and set up than other databases. It is the easiest choice for read only database access.80 The server contains the same engine inside as the client version of GanttPV. All databases are kept in memory. Version 0.1 is very aggressive about making backups. Backup copies are stored after every change to a database. 67 80 </p> 68 <p> 69 (I tried to install the Python/MySQL interface, but couldn't get it working. I switched to Gadfly which installed easily.) 81 <p>The server tracks all of the changes that are submitted. Each client remembers the last change it has received. When it shares with the server it provides its last change number. The server forwards all changes it has received since then. 70 82 </p> 71 83 <h3>Report CGI Script</h3> 72 84 <p> 73 The CGI Script requests a ll of the information that might be needed to create the requested report. It the processes the data much like GanttPV does when a .ganttpv file is first loaded in. Finally it displays the requested report using code copied from the export as HTML script.85 The CGI Script requests a web page from the server. The server handles all formatting of web pages. 73 85 </p> 74 86 … … 95 107 </table> 96 108 <div id="footer"> 97 Copyright © 2005 by Brian C. Christensen. (050119)<br>109 Copyright © 2005, 2006 by Brian C. Christensen. (060909)<br> 97 109 Questions or comments? Contact us: <a class="footnote" href="mailto:brian@PureViolet.net">brian@PureViolet.net</a>. 98 110 </div> -
website/trunk/server/install.html
r95 r196 57 57 <h3>GanttPV Server Installation</h3> 58 58 <p> 59 GanttPV Server must be installed on the server first. Only the "Refresh Server" script is loaded onto the client machine.59 GanttPV Server must be installed on the server and client. It also includes an optional web server component to display reports via web browser. 59 59 </p> 60 61 </p> 62 <h3>Requirements for use</h3> 63 <p> 64 The GanttPV server has a small set of requirements for use. 65 </p> 66 <ul> 67 <li>Python 2.3 or latter must be installed on the server. 68 <ul> 69 <li>GanttPV Server will run on any of the many operating systems that are supported by Python.</li> 70 <li>This includes Windows, Macintosh, and Linux, amoung others.</li> 71 <li>Nothing else needs to be installed.</li> 72 </ul> 73 </li> 74 <li>The IP number of the server must be constant. 75 <ul> 76 <li>On many systems the IP address is dynamically assigned and changes values occasionally.</li> 77 <li>When using the GanttPV Server, the server's IP address is remembered in the client's copy of the database and is used when contacting the server.</li> 78 <li>If the number changes, the client will not be able to share data with the server.</li> 79 <li>(This requirement will be removed in the future.)</li> 80 </ul> 81 </li> 82 <li>Clients must use GanttPV v0.7 or later 83 <ul> 84 <li>These versions keep track of changes that need to be shared with the server.</li> 85 </ul> 86 </li> 87 </ul> 88 <p>(The Gadfly database program is no longer required to run the server. It was required for the prior version.)</p> 60 89 61 90 <h3>Components</h3> 91 <p> 92 The GanttPV Server distribution includes four folders (also called directories). 93 </p> 62 94 <ul> 63 <li>GanttPV v0.4.1 or later (these version import the XML RPC routines used by the server).</li> 64 <li>A client script to refresh the database contents.</li> 65 <li>A script to create an empty database on the server.</li> 66 <li>The server script</li> 67 <li>The web CGI script</li> 95 <li>client - Includes scripts to add a new GanttPV database file to the server, download an existing database from the server, and to share changes with the server. This folder is copied into the scripts folder of GanttPV. These files are run from inside GanttPV, through the Script menu. </li> 96 <li>server - Includes the main server script and a script to print out access keys (passwords). This folder is copied onto the server computer. Current and backup copies of all databases on the server are stored in this folder.</li> 97 <li>web - Includes a CGI script that displays web reports and applies changes to the database. This folder is installed in the web server's 'cgi-bin' folder.</li> 98 <li>test - Includes scripts that can be used to verify that the server is working properly. 68 99 </ul> 69 100 70 <h3> Steps on Server</h3>101 <h3>Installation on Server Computer</h3> 70 101 <ol> 71 <li>Select 4-digit server port number. Make sure port number will be accessible through any firewalls.</li> 72 <li>Select location for server data files. Location must be read accessible from Web server.</li> 73 <li>Download and install Gadfly. Gadfly is a database server written in Python. The server program and the database creation program will use Gadfly.</li> 74 <li>Create directory for server data.</li> 75 <li>Run database creation script.</li> 76 <li>Set permissions for Web server to have read access to data.</li> 77 <li>Modify line in server script that specifies the server port number.</li> 78 <li>Run the server script.</li> 79 <li>Install the web CGI script on the web server. Set web server security as necessary to limit who may run the GanttPV CGI web script.</li> 102 <li>Copy the 'server' folder onto the server computer.</li> 103 <li>Choose a unique name for the server, for example: 'Training Dept GanttPV Server'. The name should contain only ascii letters, digits, and spaces. 104 <ul> 105 <li>The server's name is announced via Bonjour (also called Zero Config).</li> 106 <li>The server name is not currently used by clients, but will be in a future release.</lI> 107 <li>If you do not want the server to be announced an the local network, set the server name to an empty string.</li> 108 </ul> 109 </li> 110 <li>Identify the server's IP address. 111 <ul> 112 <li>The way to do this varies by platform.</li> 113 <li>On windows, use the command 'ipconfig' in the command prompt window.</li> 114 <li>On the Mac, use 'ifconfig' in the terminal.</li> 115 </ul></li> 116 <li>Confirm that port number '8001' is available for GanttPV Server, or select an alternate number. 117 <ul> 118 <li>Like all networking software, GanttPV Server uses a port number.</li> 119 <li>The default port number is '8001'. If this number is not available select different 4-digit server port number.</li> 120 </ul> 121 </li> 122 <li>Make sure port number will be accessible through any firewall on the server.</li> 123 <li>Before you run the server script, you must set the name, IP address, and port. 124 <ul> 125 <li>You set them by editing the <i>ganttpv_update_server.py</i> script.</li> 126 <li>Look just after the change log at the beginning of the script.</li> 127 <li>Be sure to edit the script with a plain text editor, like WordPad on Windows or TextEdit on the Mac. On Windows, don't use NotePad; it has problems non-windows end-of-line characters.</li> 128 </ul> 129 </li> 130 <li>If other people have access to the server, you may wish to change the permissions 'current' and 'backup' folders so that only the server's user id will be able to read them. All of the access keys (passwords) for the files are kept in these directories along with the data.</li> 131 <li>Run <i>ganttpv_update_server.py</i> script from the server directory. 132 <ul> 133 <li>You will probably need to type "python ganttpv_update_server.py".</li> 134 <li>You might need to specify the complete path of the python.</li> 135 </ul></li> 80 136 </ol> 137 <p>The server will save uploaded databases into the "current" subdirectory and make backup copies into the "backup" subdirectory. 138 </p> 139 <p>After you start the server, you can use the test script to verify some of the server functions. Edit the IP number and port at the beginning of the script. Then run the test script with python. Most of the tests should pass. A few haven't been updated to handle the most recent changes. 140 </p> 141 <p>After a database has been added to the server, you can use the <i>ganttpv_show_keys.py</i> script to display the 'Edit Key' (password) necessary to download a database. 142 </p> 81 143 82 <h3> Steps on Client</h3>144 <h3>Installation on the Web Server</h3> 82 144 <ol> 83 <li>Make sure the project manger's machine has GanttPV v0.4.1 (or later) installed.</li> 84 <li>Install the "Refresh Server" script into the Scripts folder.</li> 85 <li>Modify the "Refresh Server" script to use the IP address and port number of the GanttPV Server. See the documentation in the script for details on what to change.</li> 86 <li>Open ".ganttpv" data file.</li> 87 <li>Run "Refresh Server" script.</li> 145 <li>Copy 'ganttpv_report.py' into your web server's cgi-bin folder.</li> 146 <li>Make sure the web server has execute access to the "ganttpv_report.py" script.</li> 147 <li>Edit the script to specify the server's IP address and port. 148 <ul> 149 <li>Search for the line that contains: 'server = xmlrpclib.ServerProxy("http://192.168.0.6:8001", allow_none=1)'</li> 150 </ul> 151 </li> 152 <li>You might need to make a change in the web server's configuration to execute python scripts.</li> 153 <li>A test script is included in the distribution. Use it verify that Python scripts will execute.</li> 88 154 </ol> 89 155 90 <h3>Test Web Access</h3> 156 <h3>Installation on Client</h3> 157 <p>The client scripts must be installed in the Scripts directory of each GanttPV client that will use the server.</p> 91 158 <ol> 92 <li>Access GanttPV web script from your browser.</li> 93 <li>Verify that reports will display as web pages.</li> 159 <li>Make sure the project manger's machine has GanttPV v0.7(or later) installed.</li> 160 <li>Copy the 'client' folder into the scripts folder of GanttPV on each client machine.</li> 161 <li>Rename the 'client' folder to 'Server'. (That name better matches the user's view of its role.)</li> 94 162 </ol> 95 163 164 <p>Optionally change the server IP address at the beginning of the <i>Add Database to Server</i> and <i>Download Database from Server</i> scripts. Otherwise a dummy IP address is presented to the user to show the format of the data that should be entered; it would be easier for the users if they could just click 'OK' to accept the real address. 165 </p> 166 167 96 168 <!--end main content --> 97 169 … … 117 189 </table> 118 190 <div id="footer"> 119 Copyright © 2005, 2006 by Brian C. Christensen. (060 307)<br>191 Copyright © 2005, 2006 by Brian C. Christensen. (060909)<br> 119 191 Questions or comments? Contact us: <a class="footnote" href="mailto:brian@PureViolet.net">brian@PureViolet.net</a>. 120 192 </div> -
website/trunk/server/index.html
r95 r196 55 55 <!-- start main content --> 56 56 <h3>GanttPV Server Introduction</h3> 57 <ul> 58 <li>GanttPV Server helps the project manager to communicate the plan to the team and to project stakeholders.</li> 59 <li>It allows several people to make updates to the same GanttPV database file at the same time.</li> 60 <li>It also provides web reporting and updates.</li> 61 </ul> 62 <h3>Status</h3> 57 63 <p> 58 GanttPV provides an interactive environment for developing the project plan. GanttPV Server adds tools to help the project manager to communicate the plan to the team.64 The new GanttPV Update Server release v0.1 is ready for beta testing by interested users. The server, client, and web components have all passed recent testing. All of the basic features appear to be working well. Email us at the address at the bottom of this page if you are interested in getting a copy. 58 64 </p> 59 <h3>Status</h3>60 65 <p> 61 Th e first version of GanttPV Server ready for beta testing by interested users. We have tried to keep this first release as simple as possible while still useful. Only the project manager will be able to update server data, but team members and customers will be able to display data from the server as web pages.66 This version is a complete rewrite of the server. The first version would only display reports on the web. With this new version, multiple people can update the same database at the same time. Team members can view selected reports on the web and provide task completion and other updates. 61 66 </p> 62 67 <p> 63 The first release is based on the version of HTML Export included with GanttPV v0.4 so some of the more recent report features are notsupported.68 The web reports are based on the HTML Export included with GanttPV v0.5 (rather than v0.4 as in the prior server) so more of the recent report features are supported. 63 68 </p> 64 69 <h3>How it works</h3> 70 <ul> 71 <li>The project manager will add a GanttPV database to the server by running a script from the "Scripts" menu of GanttPV.</li> 72 <li>Other team members and other project managers can download a copy of the database.</li> 73 <li>They can all add new tasks or reports and edit data.</li> 74 <li>When they are ready, they can share their changes back through the server to everyone else.</li> 75 </ul> 65 76 <p> 66 The project manager will periodically refresh the data in the server by running a script from the "Scripts" menu. Team members and customers will be able to access reports from the server by using their web browsers. The CGI script will dynamically create web pages that look like the current HTML Export pages. 77 The project manager can designate which reports should be accessable via the web. Team members and customers will be able to access reports from the server by using their web browsers. The server dynamically creates web pages that look like the pages produced by the <i>Export as HTML</i> script. 78 </p> 79 <h3>Setting Up the Server</h3> 80 <p>The <a href="./install.html">Install</a> page contains instructions for setting up the server.</p> 81 <p>Once it is set up, the rest of this page explains how to use it. 82 </p> 83 84 <h3>Using the GanttPV Update Sever</h3> 85 <ol> 86 <li>Open a ".ganttpv" database in the GanttPV program.</li> 87 <li>Run the <i>Add Database to Server</i> script</li> 88 <li>When the dialog box opens up, you will see the default IP address, port number, and server key. Enter the server's IP address and port number. Don't change the server key.</li> 89 <li>When the database has been added to the server, a dialog box will open that includes directions on how to download copies of the database from the server. Copy these instructions and send them to each person who will need to download a copy of the database. Do not give them copies of your GanttPV database file directly. Your copy includes the owner key for the database.</li> 90 <li>Make changes to your copy of the file as you normally would. Run the <i>Share Changes with Server</i> script to exchange updates with the server.</li> 91 <li>IMPORTANT - If two people change the same data on the server (or add a column in the same place) the second person's change will be silently ignored. 92 <ul><li>Obviously both changes can't be correct, so the server assumes that the second person might not have made a change if he/she had known about the first.</li> 93 <li>(More options will be provided in a future release.)</li> 94 <li>Minimize the chance of conflict by sharing with the server before and after making changes.</li> 95 </ul></li> 96 </ol> 97 98 <p>To download onto another computer, use the <i>Download Database from Server</i> script. The script requests three parameters. The first parameter is the servers IP address. The next two parameters are the file number and password (the 'edit key'). This information is conveniently displayed in a dialog box when the database is added to the server. It can also be retrieved by running the <i>ganttpv_show_keys.py</i> script on the server, which displays the file number and edit key for each database in the server. (Be sure to send out the 'edit key', not the 'owner key'.) 67 99 </p> 68 <h3>Desktop vs. Web based Tools</h3> 100 101 <h3>Publishing Reports from the Web Server</h3> 102 <p>Only reports that are designated web displayable can be viewed on the web. Each column of a report can be designated as view only or web editable.</p> 103 <ol> 104 <li>In GanttPV, specify which reports should be web accessible: 105 <ul> 106 <li>Run the script <i>Identify Web Reports</i>.</li> 107 </ul> 108 </li> 109 <li>For each report specify which columns should be web editable: 110 <ul> 111 <li>Open the report</li> 112 <li>Run the script <i>Identify Web Changeable Columns</i>.</li> 113 <li>(Do not include any columns that end with "ID". That is not supported by the version 0.1 server.)</li> 114 </ul> 115 </li> 116 <li>These choices will become effective when the <i>Share Changes with Server</i> script has been run.</li> 117 <li>When the database was added to the server, the script displayed instructions on how to access the web pages. Hopefully those instructions were saved. If so, update them with the web server's URL and distribute them to whomever needs web access to the database.</li> 118 <li>If the instructions have been misplaced, run the 'ganttpv_show_keys' script on the server to display the web view and edit keys. Send the view or edit key to whomever needs access to the web reports.</li> 119 </ol> 120 <p>There are other options that can be set on the server, but they are a bit more complicated to set up. Please inquire in the forum or email us if you are interested.</p> 121 122 <h3>Accessing Reports via Web Browser</h3> 123 <ol> 124 <li>Enter the URL of the web server and the name of the cgi-bin script. 125 <ul> 126 <li>Usually this is something like: http://www.pureviolet.net/cgi-bin/projects/ganttpv_report.py</li> 127 <li>Ask the person who installed the web CGI script for the URL to use.</li> 128 </ul> 129 </li> 130 <li>When the input form appears, enter the web key of the database file.</li> 131 <li>The server will add the corresponding database to your selection list.</li> 132 <li>Click on the link of a database file, and its list of web visible reports will be displayed.</li> 133 </ol> 134 <p>The browser will keep track of the keys as long as the session lasts. Repeat these instructions for each web session. 135 </p> 136 137 <h3>Why Desktop vs. Web based Tools?</h3> 138 <p>Here are some comments from Brian on the strengths of desktop and web applications:</p> 69 139 <p> 70 Recently, "ocolorado" described web based applications as: "clunky and not up to the features that the desktop application present."140 In a forum post, "ocolorado" described web based applications as: "clunky and not up to the features that the desktop application present." 70 140 </p><p> 71 141 I agree with that description of web applications. They tend to be clunky and feature poor. But I think there is a larger gap between the web and desktop applications. … … 87 157 For project management, I'd like to gain the communication advantages of a web application, but I don't want to loose the thinking help I get from desktop applications. 88 158 </p><p> 89 What is your view? 159 What is your view? Contact us in the forum or via email. 89 159 </p> 90 160 <!--end main content --> … … 109 179 </table> 110 180 <div id="footer"> 111 Copyright © 2005 by Brian C. Christensen. (050305)<br>181 Copyright © 2005, 2006 by Brian C. Christensen. (060909)<br> 111 181 Questions or comments? Contact us: <a class="footnote" href="mailto:brian@bureviolet.net">Brian@PureViolet.net</a>. 112 182 </div>
