Article Preview
Buy Now
FEATURE
To Proxy or Not To Proxy... That is the Confusing Question
Deploying multiple standalone Web Apps
Issue: 15.3 (May/June 2017)
Author: Mark Strickland
Author Bio: Mark Strickland has been a fan of many dialects of BASIC since it was on the Radio Shack TRS-80 and Digital Equipment PDP-11 mini computers. More recently, he has worked in a University Medical School setting using his MacGyver-like Information Technology and Ethical Hacker skills to solve problems, almost always with Xojo. In his small software company (SimplyBASICsoftware.com), he has been using Xojo to build things like a Web-based home health care package that keeps caregivers on task with text messaging. Usually his MacGyver skills don't make things blow up, but occasionally users might disagree.
Article Description: ion>No description availa
Article Length (in bytes): 14,558
Starting Page Number: be
Article Number: 15303
Resource File(s):
project15303.zip Updated: 2017-04-30 19:21:50
Related Web Link(s):
http://127.0.0.1
ode>http
Excerpt of article text...
I have a Xojo Web App that is a multiple-choice testing engine. It was originally deployed as a CGI app. It uses lots of checkboxes for answers to a question and it is written in a general way so the user-interface adapts to the number of questions and the number of answers for each question.
The questions are loaded from a database table onto the page for each new question. The main web page contains one question at a time that can have up to 12 checkboxes. In every case, only one check is allowed, and if you turn on one checkbox it turns off all of the other checkboxes.
At this point some of you are saying I should have used Radio Buttons, since more of the work would have been done in the browser when clicking a selection and turning off others. Well, I assume that is true anyway. The biggest challenge may have been the formatting. The number of words in the test answers varies from one line to up to 4 lines, and with checkboxes I can control the spacing of each individual check box rather than letting it go to the default in the radio button group. I think radio button groups would not have been as cosmetically pleasing as individual checkboxes. But that is not the point of this story.
Almost all of my Web Apps, up until now, have been deployed as CGI apps on Windows with the Abyss Webserver. This made a fairly easy to deploy and maintain combination. Abyss makes certificate management very simple when compared to my experience with Apache. For the most part, I have not had too many performance problems, but most of the Web Apps probably have less than 10 concurrent users.
As I built this test engine, I thought it was a pretty elegant solution to the problem. Everything went okay until we started our first production run when 20 people showed up to take the test at the same time. After about six people logged in and started testing, the Web App became unresponsive even on a high speed LAN connection. It is not the back-end work that is slow. It appears that "tons" of traffic is interchanged with the browser to handle the checkboxes dynamically.
That testing session was a disaster, but another was coming up in a few weeks. I knew that standalone Web Apps in Xojo were more load-tolerant, but I could not figure out why the practical limit was maybe four concurrent users with CGI nor could I find a solution. A bit of quick testing showed that a standalone version of the exact same code could handle many more concurrent users. At that point, I put up a standalone version on a non-standard port and all went well for the next couple of testing sessions.
...End of Excerpt. Please purchase the magazine to read the full article.