520 likes | 666 Views
Studio Web App Technology : HTML interface to Omnis. Dr. Caroline Wilkins www.artificia.co.uk www.RescuePet.org.uk Fred Haislmaier Omnis Development Group, LLC www.odgllc.com. Agenda. Architecture HTML interface theory Deployment System Design: Webclient vs HTML Example systems.
E N D
Studio Web App Technology : HTML interface to Omnis Dr. Caroline Wilkins www.artificia.co.uk www.RescuePet.org.uk Fred Haislmaier Omnis Development Group, LLC www.odgllc.com
Agenda • Architecture • HTML interface theory • Deployment • System Design: Webclient vs HTML • Example systems
Internet Architecture Database Server • Web Server (IIS/Apache) • Web Server plug-in • Omnis Studio Runtime • Omnis Library • Database Client • Browser
Agenda • Architecture • HTML interface theory • Deployment • System Design: Webclient vs HTML • Example systems
Basic HTML form: Data input <html> <head> <title>Log In</title> </head> <body> <p><b>Log In</b></p> <p>Please enter your username and password </p> <form method="get" action="http://localhost/scripts/omnisapi.dll"> <input type="hidden" name="OmnisClass" value="rtLogIn"> <input type="hidden" name="OmnisLibrary" value="RescueDog"> <input type="hidden" name="OmnisServer" value="5912"> User Name <input type="text" name="Username" maxlength="30" size="30"> Password <input type="password" name="Password" maxlength="30" size="30"> <p> <input type="submit" name="Submit" value="Submit"> </form> <A HREF="http://localhost/RescueDog.html"> <IMG SRC="/images/HOME.jpg" BORDER=0 > </body> </html>
HTML form to Webserver Omnisapi.dll Remote Task WebServer
HTML form: Radio buttons, Check Boxes and Drop Lists <HTML> <HEAD> <TITLE>Dog Registration</TITLE> </HEAD> Please enter details of a new dog in need of a home: <form method="get" action="http://localhost/scripts/omnisapi.dll"> <input type="hidden" name="OmnisClass" value="rtDogReg1"> <input type="hidden" name="OmnisLibrary" value="RescueDog"> <input type="hidden" name="OmnisServer" value="5912"> Name <input type="text" name="Name" maxlength="30" size="30"> Gender Dog <input type="radio" name="Gender" value="Dog” CHECKED> Bitch <input type="radio" name="Gender" value="Female"> Neutered? <input type="checkbox" name="Neutered" value="Neutered” CHECKED> Age <input type="text" name="Age" maxlength="30" size="30> Predominant Breed <select name="Breed"> <option SELECTED>Greyhound</option> <option>Lurcher</option> </select>
HTML form: Image Co-ordinates <HTML> <HEAD> <TITLE>Map Co-ordinate Selector</TITLE> </HEAD> <BODY> <form method="get" action="http://localhost/scripts/Omnisapi.dll"> <input type="hidden" name="OmnisClass" value="rtImage"> <input type="hidden" name="OmnisLibrary" value="HTMLDEMO"> <input type="hidden" name="OmnisServer" value="5912"> <INPUT TYPE="image" SRC="http://localhost/images/EuroMap.jpg" NAME="Map"> </FORM> </BODY> </HTML>
Data input: CGI call http://193.114.79.77/scripts/Omnisapi301.dll?OmnisClass=rtDogProfile&OmnisLibrary=RescueDog&OmnisServer=5912&PetId=8 Script Remote Task Parameters Library Server Port
Session environment <form method="GET" action="@[omnisapi]"> <input type="hidden" name="OmnisClass" value="rt2_2"> <input type="hidden" name="OmnisLibrary" value="ZON"> <input type="hidden" name="OmnisServer" value="5912"> <input type="hidden" name="SessionID" value="@[SessionId]"> <input type="hidden" name="LinkPage" value="2_2_1"> <input type="image" border="0" src="images/saldo.gif" name="MemberLink"> </form>
Using HTML interface to log on to webclient: HTML form <FORM method="get" action="http://193.114.79.77/scripts/Omnisapi301.dll"> <INPUT TYPE="hidden" NAME="OmnisClass" VALUE="rtShelterLogin"> <INPUT TYPE="hidden" NAME="OmnisLibrary" VALUE="RescueDog"> <INPUT TYPE="hidden" NAME="OmnisServer" VALUE="5912"> <P>Username <INPUT TYPE="text" NAME="Username"> <P>Password: <INPUT TYPE="text" NAME="Password"> <INPUT TYPE="submit" NAME="Submit" VALUE="Submit"> </FORM>
Using HTML interface to log on to webclient:Webclient page <HTML><HEAD><TITLE>Remote Form Test - rfShelter</TITLE> <BODY bgColor=#ffffff> <OBJECT classid=clsid:13510606-30FA-11D2-B383-444553540000 height=481 width=880> <PARAM NAME="_Version" VALUE="65536"> <PARAM NAME="_ExtentX" VALUE="7161"> <PARAM NAME="_ExtentY" VALUE="7373"> <PARAM NAME="_StockProps" VALUE="0"> <PARAM NAME="OmnisServer" VALUE="5912"> <PARAM NAME="OmnisLibrary" VALUE="RescueDog"> <PARAM NAME="OmnisClass" VALUE="rfShelter"> <PARAM NAME="WebServerURL" VALUE="http://193.114.79.77"> <PARAM NAME="WebServerScript" VALUE="scripts/Omnisapi301.dll"> <PARAM NAME="Param1" VALUE="ShelterId=@1"> </OBJECT> </BODY></HTML>
Using HTML interface to log on to webclient: HTML form rtLogIn SessionId parameter • Validates Login • Creates SessionId and • database record • Creates rf wrapper & • returns direct HTML • containing SessionId rtRemoteForm Validates SessionId (valid/timed out?) If Session not valid, Returns URL for “LoginFailed.htm”
Using HTML interface to log on to webclient: HTML form • Validates Login • Creates SessionId and • database record • Creates rf wrapper & • returns direct HTML • containing SessionId rtLogIn
Using HTML interface to log on to webclient: HTML form • Validates Login • Creates SessionId and • database record • Creates rf wrapper& • returns direct HTML • containing SessionId rtLogIn
Using HTML interface to log on to webclient: HTML form • Validates Login • Creates SessionId and • database record • Creates rf wrapper & • returns direct HTML • containing SessionId rtLogIn
Using HTML interface to log on to webclient: HTML form rtLogIn SessionId parameter rtRemoteForm <HTML><HEAD><TITLE>Remote Form Test - rfShelter</TITLE> <BODY bgColor=#ffffff> <OBJECT classid=clsid:13510606-30FA-11D2-B383-444553540000 height=481 width=880> <PARAM NAME="_Version" VALUE="65536"> <PARAM NAME="_ExtentX" VALUE="7161"> <PARAM NAME="_ExtentY" VALUE="7373"> <PARAM NAME="_StockProps" VALUE="0"> <PARAM NAME="OmnisServer" VALUE="5912"> <PARAM NAME="OmnisLibrary" VALUE="RescueDog"> <PARAM NAME="OmnisClass" VALUE="rfShelter"> <PARAM NAME="WebServerURL" VALUE="http://193.114.79.77"> <PARAM NAME="WebServerScript" VALUE="scripts/Omnisapi.dll"> <PARAM NAME="Param1" VALUE="SessionId=3654869"> </OBJECT> </BODY></HTML>
Using HTML interface to log on to webclient: HTML form rtRemoteForm Validates SessionId (valid/timed out?) If Session not valid, Returns URL for “LoginFailed.htm”
Using HTML interface to log on to webclient: HTML form rtRemoteForm Validates SessionId (valid/timed out?) If Session not valid, Returns URL for “LoginFailed.htm”
Using HTML interface to log on to webclient: HTML form rtLogIn SessionId parameter • Validates Login • Creates SessionId and • database record • Creates rf wrapper & • returns direct HTML • containing SessionId rtRemoteForm Validates SessionId (valid/timed out?) If Session not valid, Returns URL for “LoginFailed.htm”
Summary: HTML interface input/output techniques Dynamic Page Customisation Remote Task Dynamic Page Creation Direct return of HTML content http://193.114.79.77/scripts/Omnisapi301.dll? OmnisClass=rtDogProfile&OmnisLibrary=RescueDog &OmnisServer=5912&PetId=8
Agenda • Architecture • HTML interface theory • Deployment • System Design: Webclient vs HTML • Example systems
Deployment Server deployment • Place html pages into location on webserver e.g. C:/Inetpub/wwwroot/omnis.html • Place html templates into location on webserver e.g. C:/Templates/template1.html • Copy omnisapi.dll or nph-omniscgi.exe into scripts directory of webserver e.g. C:/Inetpub/wwwroot/scripts/omnisapi.dll • Ensure scripts directory has script execution enabled in properties • Set webserver port in Omnis (e.g. 5912) and check the “Omnis Server” parameter in html page is the same • Make sure Studio and library are open
Deployment Server deployment: SSL • html starter page e.g. https://www.mydomain.com/omnis.html • Webserver URL parameter e.g. “https://www.mydomain.com” • Switch secure sockets on and off from within Remote Task using $issecure property of remote task • SSL approximately doubles the client-server communication time
Deployment Client deployment • No plug-in required! • Just a browser....
Agenda • Architecture • HTML interface theory • Deployment • System Design: Webclient vs HTML • Example systems
RescuePet 20-300 Shelters - webclient Public users - HTML & ASP interface 150 unique visitors/day
Examples: BP Netherlands FreeBees Loyalty scheme 120,000 public users - HTML interface 20 management users - webclient 20,000 hits/day
First Remit: International Cash Transfer system 2500 Agents - webclient <20 Administrators - VPN + webclient
When to use HTML interface • Large user groups (200+) • Unknown users • Low I.T literacy users • High network security users Issues to consider • Slower development than webclient • Cheaper than webclient • No plug-in deployment/hostility issues
When to use Webclient • GUI features • Rapid development • Sophisticated application • Client side methods • Externals e.g port control • Management Information Systems • Small known user group Issues to consider • Support calls re. webclient installation • Cost of webclient • Plug-in user hostility
Agenda • Architecture • HTML interface theory • Deployment • System Design: Webclient vs HTML • Example systems
www.odgllc.com www.artificia.co.uk
www.zonnet.nl www.FreeBees.nl FreeBees/Zon project: User perspective ZON ISP
Web Kiosk BP NL FreeBees system FreeBees Webserver FreeBees database Public Users HTML interface HTML interface Webclient Web Enabler Management Users CRM printer Petrol Station
BP Spain BP Portugal BP Gibraltar Examples: BP Iberia system Web Consumer DCOM Database XML Web Consumer DCOM ASP Web Consumer DCOM
Examples: BP Iberia system ASP request and XML response http://193.122.103.252/portuguesetest/BPCard.asp?cardid=303174855&numrecs=10&country=Portugal