Paradox Community
Search:

 Welcome |  What is Paradox |  Paradox Folk |  Paradox Solutions |
 Interactive Paradox |  Paradox Programming |  Internet/Intranet Development |
 Support Options |  Classified Ads |  Wish List |  Submissions 


Paradox OCX Internet/Intranet Articles  |  Non-OCX Internet/Intranet Articles  


Paradox Web Server
Q & A
© 2001 Tony McGuire

Q & A
[ Q & A #1]
I got the following as suggestions/questions. I will try to answer as best I can:

Q. Describe what the environment is that your system works in.
A. I have a single copy of Paradox with OCXs (currently 3, was 4) running on a Windows NT 4.0 system. We host the server ourselves with a T1 connection (I work for a _very_ progressive company). The server is a 550Mhz system, 256 MB RAM, and RAID 5 SCSI disks. (To support the outside companies we will be hosting, we just purchased 2 700Mhz dual CPU systems specifically to place their data/sites on; the new machines may support more users in the long run, but Paradox doesn't answer requests noticeably faster [how fast can you get?]). I have made this work on a Windows '98 machine with 128MB RAM.

Q. What I mean is, where is the PDOX table?
A. The Paradox tables reside on the same machine, in a directory "above" where the form with the OCX is executed from. As long as Paradox can "see" the table, this location can be anywhere. Obviously, the system is faster if Paradox is on the same disk as the Paradox tables. More, you could use an SQL system, and have Paradox hitting a separate box with Oracle, MySQL or any other that Paradox can talk to running on the separate box. On the wild side, you could have a wide area network where Paradox was on a server in Sacramento searching against a Paradox table on a server in Boston.

Q. Are we talking about using Apache or PWS?
A. No, no Apache or Personal Web Server required. Since the OCX _is_ a Web Server, nothing else is needed. Paradox in essence _becomes_ a Web Server by virtue of running the OCX in a Paradox form. This is one reason why you could run a site from a machine with only Windows '95 or Windows '98 installed. To speed things up, and enhance overall performance, I now have the OCX only taking POST requests and passing them to Paradox. Requests for HTML files on disk, as well as for images, are now being handled by IIS. This is only because IIS is free with NT server. All of these requests were initially being handled by the OCX. I broke the actions apart as a sort of "poor man's load balancing". And it works beautifully.

Q. Can this be done with an ISP?
A. Yes. It could be. Unfortunately Paradox has a fairly large overhead, so few ISPs would let you run a full copy of Paradox on one of their boxes. And, since they would have little-to-no say in what you did, you could potentially bring their whole system down. Not a situation many ISPs would put themselves in. However, if you have an ISDN, frame, cablemodem, T1 or above, and have a static IP (which is really all you need; this could work if you use a modem but get a static IP when logging in) you can host your own site without asking anyone anything. Have a domain name pointed to the box with the static IP, load a copy of Paradox, create your site and you are hosting your own site.

Sound simple? In the overall scheme of things it is. Once I finally understood what the examples were trying to tell me, I did what I have just described. I pointed my browser to my machine's IP address and there was the site in the examples. I went to another machine and pointed its browser to my machine's IP and it showed the example site as well. From there, I started playing with the tables and libraries in the examples and watched what happened when I pointed my browser there.

Of course the whole situation is now far more complicated. But not as different as stepping up from what I am now working on to a site the size and complexity of a Yahoo or e-Bay. If I needed to support sites of this size & complexity, I would probably move to a different tool than Paradox. But if Paradox will do the job I need, why spend the time & money learning something that isn't really needed?

In addition to the above, there was a comment: "The downside is that one has to develop a whole new application." This is in many ways true. The interface is definitely different. You have to re-create the look & feel of your app using the language of the Internet - HTML. That's why I use HotMetal when getting started on a site or function within a site. I create everthing in a GUI environment, then copy the resulting code into Paradox. Handcoding HTML isn't the most fun I've ever had, so I cheat whenever possible.

The underlying application code, which in many cases was taken care of by Paradox automatically, must be written to control the flow of data in both directions (request & response), at a much more basic level than is required on the desktop. Field validation must be taken care of by offering selections _you_ define, or through some process that guarantees the data is valid for the data type you are working with (Lord knows you can't count on absolute accuracy in data entry from the world at large; heck, I have even made a couple of mistakes). But the language you use to do this is already a part of your vocabulary (OPAL). And HTML is really a pretty easy language to grasp. Or at least the most common elements you will likely be using.

"The upside is that it works" Yep. And it works incredibly well, with blistering speed. Our company has been radically changed because we now have access to information anytime and anywhere we can get to a browser. Not just at work - at home, at our clients' homes, and we can even search for properties from a _CELL PHONE_ . One agent sold over $300,000 worth of property in a week because he had the ability to search for property from his clients' cars as they were driving around. And PARADOX is the reason this was able to happen. The cell phones talk directly to Paradox (via the OCX), and Paradox (via the OCX) sends the results directly back to the cell phone. How many sites have you heard of that actually make THAT happen. Ours has been running for a couple of months. Without Paradox, I doubt I would have been able to figure this out and make it work. We are now using Paradox (the same copy) to support outside companies. They have access to their local MLS properties, either by browser or CELL PHONE.

These are valid "objections" (although I think they were brought out to make the whole picture clear to everyone, rather than as objections). If we don't know the whole story, it makes it much harder to make good decisions. I AM VERY GRATEFUL that the above were brought up. No doubt if someone was willing to ask these questions, there are more than a handful who want to know the answers. No one will ever convince me that Paradox is not THE BEST way to get started when the information to be placed on the Internet comes from a desktop Paradox system. It WILL NOT support you if you are on the level of an E-Bay or Yahoo. NOTHING will support you better if you are a small to medium company with information you want to make available to the world (or just your own employees).


[Adjunct to Q & A #1]
One thing I forgot to add on to the add-in. This entire process, running on a fairly fast server, takes less than 1 second. It can definitely take longer, depending on the complexity of the "search". (And seem longer, based on the User's Internet connection.) Using our sites as an example, retrieving 15-20 records, or more, (from an 8,000+ record table) with an area/price search (a single setrange() after the library code first checks the requests for field validity) is a "press enter" and "see the results on screen" type response. This is when I am doing the search from my desktop (both ends are a T1). From a 28K modem, this take 3-4 seconds. In both cases, Paradox retrieved the data set in less than 1 second. The difference is how long it takes based on the _user's_ connection to the Internet. In either case, the time difference is handled by the OCX. Paradox has moved on to taking and filling other requests. If Paradox takes a while to process and return a page, the OCX "holds" any requests that come in until Paradox is free to handle them. The OCX is multi-threaded, where Paradox is single-threaded.


[Q & A #2]
Q. How does an ISP play into this?
A. Doesn't, in most cases. Few ISPs will want to install Paradox on one of their servers. A "colocate" might work; there you supply the machine & software, but take advantage of the ISP's connectivity.

Q. Is Paradox and BDE installed on my server or ISP server?
A. If you have a server, you can become your own ISP. No need to pay someone else at that point (other than for connectivity and someone to keep it all running).

Q. Same server as my web pages?
A. Normally, this would be the case. Your (or ISP's) server would have the whole tamale on the one machine. As your needs change, you can add a server, bring the whole thing in-house and increase connectivity, or several other scenarios. You would likely update the data residing on an ISP's server using FTP. If you host your own, the data could be updated from an desktop machine with a copy of Paradox installed (at this point, the situation would be like a client/server situation; one of the clients accessing the information would be the web server.)

Q. Can you explain how all this might work if a company is using a third party ISP?
A. If you can get the ISP to put Paradox on one of their servers, it could be run off of their server. This isn't likely. You could also purchase a server, and locate it at the ISP (colocate). In this way you don't have to pay for a higher speed connection (although T-1 prices have decreased dramatically), you use the ISP's connection. The second scenario is far more likely an option; aren't very many ISPs who would work with you on the first option. Colocate costs are pretty high; the numbers I have been quoted are anywhere from $250/month to $450/month. We get our T-1 for ~$650/month. The bandwidth is shared by the websites and our entire administrative staff (about 20 people right now).

Maybe some more general facts about how different connections to the web matter. The real difference you run into with types of connections (T1+, frame, ISDN, cable modem, DSL etc.) is speed; in some areas reliability may also be an issue. We started out running the whole thing on a server connected to the Internet on a 256k ISDN connection. And the connection was also shared by 11 people in the office. It still ran blazingly fast, with some slowdowns during the peak periods. Cable modem is a higher speed down ("to you") than up ("from you"), as is DSL. Which means that, since the web server is receiving on the down side and sending to the up side, it would be receiving requests on the higher speed and sending responses on the slower speed - not a good scenario in my opinion. Frame, I believe, is available in speeds up to 384k (maybe 512?), which would suit many sites. ISDN, I think, is only up to 256k. If you go this route, make sure your ISDN connection is "always on", or your site will experience long delays at times (some are a "wake up on initial request" connection). For a smallish site, ISDN would probably work fairly decently. Frame would probably be a better option, though - I think a router can be purchased that would support frame now, and also handle a T-1 if you found you needed it later. Host your own. Get started with ISDN or Frame, and move up to T-1, T-3 or Fiber Optic as necessary. All it takes is an "always on" connection, and to have the domain name you will be using pointed to the (static or permanent) IP of the computer where your site is located. Your ISP can do this on their equipment (DNS server, which also tells the rest of the Internet where your site is located). They shouldn't even charge you anything extra. Take the hardware stuff above with a grain of salt. I am a programmer, and leave the "hard" stuff to those who can handle it. What I have learned has been kind of by osmosis, listening to others discuss how they would handle what I was asking for.


[Adjunct to Q & A #2]
Q. Is Paradox and BDE installed on my server or ISP server?
A. If you have a server, you can become your own ISP. No need to pay someone else at that point (other than for connectivity and someone to keep it all running).

One item I didn't address. The copy of Paradox that runs a web site is a standard copy of Paradox, installed just as you would for your desktop, on the machine that will host the web site. I do boost the BDE memory items and file handles, but that's it. Otherwise, it is just a standard Paradox install. I have even gotten this to run on Paradox Runtime, although registering the OCX with Runtime was a bugaboo. Don't remember how I got this to work, but I did. So you could provide this to your clients to run their own, as well. (As far as I am aware, the OCX is "redistributable".)


Discussion of this article


 Feedback |  Paradox Day |  Who Uses Paradox |  I Use Paradox |  Downloads 


 The information provided on this Web site is not in any way sponsored or endorsed by Corel Corporation.
 Paradox is a registered trademark of Corel Corporation.


 Modified: 15 May 2003
 Terms of Use / Legal Disclaimer


 Copyright © 2001- 2003 Paradox Community. All rights reserved. 
 Company and product names are trademarks or registered trademarks of their respective companies. 
 Authors hold the copyrights to their own works. Please contact the author of any article for details.