Upload
patricia-walker
View
216
Download
2
Embed Size (px)
Citation preview
Why ?
the WWW is the most wide-spread data-medium nowadays
software to access the web is freely available, very powerful and user-friendly no software distribution problem no training needed
‘everybody does it’
How ? 2 different ways :
‘static’ publication : create HTML-PFT (e.g. WinISIS PFT-wizard) print your database using that PFT to a file put that file on a WWW-server … That’s it !
‘dynamic’ publication : real-time access to data in database and ‘on-the-fly’ generation of database-pages
Static : exercise with WinISIS
Open your database with WinISIS Use ‘Print Format Assistant’ to create PFT with
HTML-codes (add ‘<HR>’ at end) Print your whole database using this PFT
FILE/Current Browse Set Output to ASCII-file (Windows-ANSI) Use other options (e.g. sort) at choice
Open result file with your browser : that’s it !
Static publishing
Easy, simple solution, but : Problems :
whole database or each record in a web-page ? updating of the data ? do you want all your records to be indexed by the WWW-
search engines ? do you want searching your database only possible as a
general WWW-search ? providing only one print-format ? …
Dynamic Publishing
each web-page dealing with your database is produced by a script which involves accessing the database, retrieving the data and formatting them into HTML-output
sophisticated approach advantages : up-to-date, more flexible
The principles of dynamic database-publishing on the web
the user enters search specifications into a ‘form’ in a webpage
the variables in the form are transmitted as a string to the server
the (web-)server passes through to ISIS-server ISIS-server acts according to specifications and
delivers HTML-formatted data Webserver returns the HTML as a ‘normal’ page to
browser of the ‘client’
The ‘client-server’ architecture
The client is the end-user’s PC running a WWW-browser (IE, Netscape, Opera, Mozilla/Firefox…)
The server is a computer running a WWW-server (Apache, IIS, Xitami…)
client and server interact using the CGI-protocol or ‘server-side scripts’ (ASP, PHP)
The CGI-protocol
CGI = Common Gateway Interface a mechanism is agreed to put variables as
‘name/value-pairs’ into a string sent to the server which puts them into the ‘environment memory space’ for other applications to retrieve them
a mechanism allows to run an executable software on the server, e.g. wwwisis.exe or openisis.exe
this CGI-compatible software can read the variables from that memory and act upon them
e.g. : WWWISIS
produced by BIREME, based on their CISIS-tools (MX for Master/Xrf and MZ for IF manipulations)
can read CGI-variables and puts them into a ‘virtual ISIS-record’ where they become fields and subfields with tags
these fields can be used to process data, e.g. the ‘Boolean search command’ : “BOOL=“
can format ISIS-data into HTML and send them back to the requesting WWW-server (who forwards to end-user)
WWWISIS : some history
1st (and 2nd) generation needed ‘CGI-scripts’ to translate CGI-variables into WWWISIS-commands
v. 3 introduced ‘virtual record’ which reads directly from CGI-environment
v.4 and 5 : ‘WXIS’ uses own script language : ‘ISIS-scripting’ -> more powerful, controllable
More general PHP-scripting is not possible
Implementation possibilities
With wwwisis (Bireme) as the webdatabase-server : GenISIS : full application generator available WWWIRIS : JavaScript used to build HTML
With isis3w (FAO/Poland) webdatabase-server : WEBLIS with HTP-templates and ISISDLL
With PHP/OpenISIS : PHP used to build the web-pages and CGI-commands, IGLOO
Application building : GENISIS
GenISIS : French product, now provided by UNESCO
2 versions : WWW and CD publishing CD-publishing with stand-alone viewer but same
application-interface WWW-publishing needs web-server and browser,
installation best with Apache running Actual version : v3 (French, also English but
documentation lagging bit behind)
GenISIS : implementation procedure
Installation form install-file for Web or CD Application building with ‘GenISISWEB’ (or GenISISCD, but in
French) executables Three elements in ‘creation’ :
Query form (fields, indexes and page lay-out) List-format (internal default available !) Detailed format (internal default available !)
‘Exporting’ or saving application to finalise Testing on ‘localhost’ or ‘127.0.0.1’, with numbered folders in
‘wwwroot\wwwisis’-folder for each application E.g. http://127.0.0.1/wwwisis/appli.htm for list of your applications
Make sure Apache is running (\Program Files\Apache Group\Apache\apache.exe -> black window minised)
WWWIRIS : interface for WWWISIS
web-version of IRIS-interface for ISIS/DOS main features :
multi-lingual multi-database 3 interfaces (form, Q&E, command) multi-stage presentation : shortlist->details Z39.50 -like ‘interaction’ simulated can also allow data-entry (create, edit, delete) - password
protected and logged
WWWIRIS
the WWWIRIS main form : HTML written by JAVASCRIPT to generate
forms (language-, database-, format-, interface-and batch-selection and search statement)
two frames : left=static (‘remembers’ interaction variables), right=dynamic data display
this is the only ‘normal’ static HTML-file on the server
HTML forms
Interactive input on webpages, e.g. to define a search statement, with ‘action’ (e.g. <form name="paraForm" method="post" action="wwwi32.exe/[ctttype=text/html]/[in=wis.in]/">)
Input types : <INPUT TYPE="text" SIZE=66 VALUE="" NAME="qString“> <input type=button value=“GO!”> <INPUT TYPE=TEXTBOX NAME=“abstract” SIZE="78" ROWS="2"
WRAP="ON" > <TEXTAREA NAME=“ABSTRACT” ROWS=22 WRAP=ON COLS=64> <INPUT TYPE=“hidden” NAME=“USERID”> <SELECT multiple name="descriptors">'
'<option>listitem1</option>' '<option>listitem2</option>‘</SELECT>
WWWIRIS (2)
all form-variables are sent to ‘WWWISIS-scripts’ (*.wis) which list the command-line variables on which WWWISIS operates into external (small) files, e.g. ‘WIS.WIS’ :
'db='v4000/, 'cipar='v4000'.cpr'/, 'uctab=ansi.tab'/, 'gizmo='v4001/, if v3003='index' then @indx.wis else if v3003='editrec' then @edit.wis else if v3003='newrec' then @newrec.wis else if v3003='deleterec' then @delete.wis else if v3003='record' then @record.wis else @list.wis fi,fi,fi,fi,fi
Why JAVASCRIPT ?
normal HTML is still ‘static’, e.g. to write a menu on databases : <select> <option>db1</option>
<option>db2</option></select>
in JS : db1, db2..dbi are stored in array-variables and these can be written as : for (i=0; i<dbs.length; i++) {
dbOG=dbOG+'<option'+ ' value='+dbs[i][0]+'>'+dbs[i][6]+'</option>';}
WWWIRIS : implementation
Adapt ‘wirvars.js’ with text-editor Messages for each language Database-parameters for all db’s/languages in arrays, see
wwwiris.doc Adapt ‘wirmenu.htm’ with text-editor
Cgi-path in ‘action=‘ parameter A HREF’s and logo
Create ldbnsh.pft (see given model) Create ldbnfu.pft (e.g. using WinISIS assistant)
WIRVARS.JS
This file lists all database-specific variables into JavaScript-arrays, e.g.dbs[0][0]=new Array();
dbs[0][0][0]='ARTIC'; dbs[0[[0][6]='ARTICLES'; dbs[0][0][1]=new Array(); dbs[0][0][2]=new Array(); dbs[0][0][1][0]='TW=';dbs[0][2][0]='Title words'; dbs[0][0][1][2]='AU=';dbs[0][2][1]='Authors'; dbs[0][0][1][2]='TI=';dbs[0][2][2]='Title'; dbs[0][0][1][3]='DE=';dbs[0][2][3]='Descriptors'; WWWIRIS.HTM reads this file as first part of it
WWWIRIS.HTM
WWWIRIS is the starting page, containing the main search form (form, Q&E or command) and all the JS-functions for the interface, e.g. editRec puts ‘edit-modus’ and queryString into left frame-vars :
function editRec(n) { with (window.menu.document.paraForm) { elements[3].value='editrec'; elements[5].value=queryString(); elements[6].value=n; target='cont'; submit(); }}
HTML-forms in JavaScript
example : the ‘command’-interface writes a ‘textarea’ input object :
if (curIT=="Command") {
writeln("<p><textarea name='qString' rows=5 cols=60 wrap=virtual onChange='top.advSearch=value'>");
writeln(advSearch+"</textarea><BR>"); writeln('<p><input type=button value="SEARCH"
onClick="top.runQuery();"><br><hr>');writeln(dbs[curDB][10]);}
The WWWIRIS-program logics (1)
the user selects language, database, interface, display format and batch-no.
according to interface selected, the user specifies the search command, possibly consulting search-dictionary
the ‘form’ interface allows multiple Boolean search commands to be combined
WWWIRIS program logics (2)
after the search command has been ‘sent’, the interface decides whether a dictionary-window, a shortlist-window, a full record-window or an editing window is requested
all variables are either sent as ‘normal’ (i.e. shown on the left frame lMENU.HTM) or as ‘hidden’ :
<form name="paraForm" method="post"action="/../wwwi32.exe/[ctttype=text/html]/[in=wis.in]/"><input type=hidden name='n^t4000'><input type=hidden name='lang^t5000' value='e'><input type=hidden name='b^t3005' value=''><input type=hidden name='mfn^t3006' value=''></form>
WWWIRIS program logics (3)
dedicated scripts for dictionary, shortlist, record-display and editing exist : resp. indx.wis list.wis record.wis edit.wis and upd.wis
all defining their own ‘variables’, e.g. PFT
WWWIRIS program logics (4)
the dynamic pages are generated by ISIS-PFT’s using : HTML-tags HTML-forms hyperlinks (A HREF=http://|mailto:// etc.) pictures <IMG>, background <BGCOLOR> etc. other calls, e.g. to PHP/MySQL :
'<form method="POST" action="/SAPPHP/newrequest.php" TARGET="_top">',
'<input type="hidden" name="sapid" value="',v1^a,v1^b'">',/ '<input type="hidden" name="title" value="'v200'">',/ '</form>'
WWWIRIS logics (5)
data entry : ISIS MFN’s are displayed with all fields in text-input elements of a form, e.g. :'<B>TITLE ARTICLE</B> [200]<P>Enter full title of the article<BR>'/'<INPUT TYPE=text NAME=TITLE^t6200 size=85 value="'V200'"><P>'/'<P>‘ note : quotes ‘_’ because they are actually PFT-literals !
vars are sent to WWWISIS with ‘new’, ‘proc’ and ‘update’ commands‘, e.g. ‘proc=‘ parameter :
proc= ‘D022D310','A022#'date'#','A062#'v6062'#',|A310#|v6310|#|,