|NetTalk WebServer - Selecting a Tool for Building Web Interfaces|
Updated 11 November 2009
|Contents - Selection a Tool for Building Web Interfaces|
|Selecting a Tool for Building Web Interfaces|
|Web Browser Options|
|NetTalk 4/ Clarion Handy Tools|
|Windows Terminal Server/Citrix|
|IP Driver/SQL backend|
There is a danger when detailing a specific technique in inadvertently suggesting that this is the only technique, or even the best technique, in order to fulfill a specific task. Before you begin using NetTalk to build a web server you need to be sure that this is the right tool for the job you have to do. In the right circumstances the NetTalk WebServer will make you productive. In other circumstances it will hinder you.
Thus before we begin discussing the NetTalk web server it is worth taking a moment to discuss alternative approaches, and when those approaches would be most suitable.
Browser options are most useful where there are a large number, of “unknown” users, which may be running on a variety of operating systems. They don’t require any special client-side software, and allow clients to access the site via Windows, Mac, Linux or any other platform that has a web browser. Access via PDA or cell-phone is also possible.
The Clarion ASP and PHP templates are similar enough to each other that I can cover them together. These products allow you to generate ASP or PHP code (respectively), which can be used by a commercial web server (IIS, Apache etc). Using a set of templates, and by using information in the dictionary, they are more productive than coding ASP or PHP by hand.
The main advantages of these templates are:
The main disadvantages of these templates are:
- They generate the web site using very main-stream languages (namely ASP and PHP). You will find hosting ASP or PHP sites, at commercial providers, easy to do – and ISP’s will gladly assist you in setting them up. If you are targeting a very high volume web site, a single one-off site, and if you do not have your own “internet server” then these templates should be strongly considered.
- They use very well established technology as their “base”. For example IIS or Apache.
- Of all the solutions listed here, the PHP templates are the only ones that can be run from a Linux server. All the other options require Windows on the server.
I would use these templates in situations where:
- They generate “programs” written in native ASP or PHP code. This implies that you either need to know, or learn, one of these languages in order to make best use of the templates. Note that you do not have to know these languages to get stuff done, just as you don’t need to know the Clarion language to write Clarion apps, but it does help enormously, and realistically you will need to at least be able to read the code in order to code sophisticated apps. A basic knowledge of HTML is almost certainly required, especially as you will use this to control the overall “look” of the site.
- Both template sets use ADO as their data source, and hence limit the data files you can use in your app. This may, or may not, be a problem depending on what backend you are currently using.
- Deploying at your ISP means the database must reside at your ISP. If you are dealing with a situation where this database becomes a “copy” of another database (which might be on your LAN) then you have to deal with synchronization issues.
- Because they rely on “other” software, installation and configuration can be an issue. If you intend for users to deploy the system themselves, or with minimal assistance, then the deployment overhead may be significant.
- I am reliant on commercial ISP’s for hosting.
Although it ships in the box in the Enterprise Edition, the Web Builder templates are often overlooked.
The main advantages of these templates are:
The main disadvantages are:
- They take an existing application, and webify it. Thus, if you have an existing app, the time required from start to finish could be extremely short. In many cases no more than a few minutes.
- The code underneath the app is written in Clarion. Thus no extra language skills (other then HTML) are required.
- It delivers the same interface via your web site as via your Windows 32 bit program. People familiar with your Windows app will be comfortable straight away with the interface.
- As it is a Clarion program, it can use any data source available to any clarion program, including TPS, SQL, ODBC etc.
- The client-side interface is a Browser. (Compared for example, to the IP driver or ClarioNet where the client side is a Clarion program.)
I would use the WebBuilder approach when:
- It requires the proprietary Application Broker (50 user version included in Clarion, larger use version available separately). In a public-web sense this means you will need your own internet server (either hosted yourself, or co-hosted at an ISP). For most sites hosting it yourself on DSL or ADSL is certainly an option.
- It delivers the same interface via your web site as via your Windows 32 bit program. It’s quite possible that this will be overkill for what you are trying to achieve. Also the “feel” of the site will not be web-specific, it’ll “feel” like a windows app trying to run in a browser.
- The Application Broker has a (possibly unjust) reputation for being unreliable. I say “possibly unjust” because I believe the Clarion 6 version is a lot more stable than its predecessors. I have not personally used it myself in a commercial setting, so I cannot comment on that front.
- Web Builder requires a stateful connection between the client and the server. This makes it somewhat intolerant of broken connections. I’ll discuss the concept of Stateful, and Stateless, approaches in the next chapter.
- A customer wished to experiment with web access to the program, but without spending a lot of money .
- A small number of users wished to access my program remotely, with the same feature set offered by the Windows 32 bit application and,
- If I was targeting an intranet, rather than public web site, or if I was targeting a small-volume public web site.
These two 3rd party add-ons approach the problem from a similar point of view. They are similar enough to discuss together.
They both adopt the position that a Clarion program itself can be a web server. There is no need for a supporting product, thus no IIS, Apache or Application Broker. This makes deployment a lot easier. However, by not using PHP they are Windows bound, and worse, they create proprietary programs (i.e. an Exe) and these are not likely to be run by an ISP on a shared machine. Thus if you are creating a public web server you will require your own server.
Unlike WebBuilder your existing app interface is not utilized. You will need to build the web interface from scratch, one page at a time. However this also allows you to build the interface specifically targeted at the Browser audience. In my experience this is a different set of users to the ones running the Win 32 bit app, and thus has different requirements, and expectations to the existing Windows users. Most of all though your web interface will look like a web interface.
- Deployment. Since the program is the server it’s as easy as running the install program. Everything can be contained inside your Clarion Exe. It can run on the user’s work-station, or on a server. If you like you can embed literally everything inside your exe.
- Support is easier because there are no external dependencies to worry about.
- Code is 100% Clarion. HTML knowledge is recommended – especially if you wish to customize the “look” of the site. However you can get going without HTML if you need to.
- You can use regular web-site page designers (for example Dreamweaver, or Frontpage) to design your pages.
- Leveraging the supplied NetTalk templates makes you a lot more productive than coding by hand. There are templates for Menus, Browses, Forms and so on.
- NetTalk uses a stateless approach on the server, which translates into far fewer resources being required by the server, even if multiple people are using the site simultaneously.
I would use NetTalk when:
- You’re creating a proprietary program. So expect to use your own server, either co-located at an ISP or served from your own office.
- Your customers may raise security concerns because you’re not using “main stream” technology. However it could be argued that esoteric software is ultimately less susceptible to penetration.
- Your existing app interface is not utilized. You will need to build the web interface from scratch, one page at a time.
Incidentally both add-ons offer a lot more than just web serving.
- I am expecting a large number of installations – typically done by the end users themselves.
- I wish to create a remote management, or remote access to my app without any extra overhead. For example if you are creating a Service then a web interface is encouraged. NetTalk allows you to build the interface directly into your program with very little fuss.
- Where I am unable, or unwilling, to support IIS, or where dependence on IIS would make an additional burden for the support staff.
Since we’ve covered the options for Browser Access, it’s only fair to cover some other non-browser options as well. The main difference with these options is that you need to deploy some client software. Thus they are not suitable for public web sites, and may be overkill for smaller programs (interfaces to services etc.)
ClarioNet is a lot like Web Builder, except that the client runs a generic Clarion Terminal program instead of a browser. Like Web Builder it uses the Application Broker at the server end, but because the client program is a Windows 32 bit app, the interface is a lot more like the real Windows 32 bit application.
Main advantages are:
Main disadvantages are:
- It leverages an existing program, and so the time taken from conception to deployment may be very small.
- It uses a generic client-side app, which only has to be deployed once. After that application updates are done on the Server only.
- It presents an almost-identical interface to the user as the one they experience when running the “real” windows 32 bit app.
- The program is 100% Clarion. Nothing else is required, not even HTML.
I would use ClarioNet:
- Like the web builder it depends on the application broker. (See the Web Builder section above for more details.)
- It reduces the interface from MDI to SDI and does not support COM controls, or NetTalk.
- Where I had a fixed number of known users. I would prefer apps where the length of time each user remains connected is limited. I would need to inspect the program to determine the impact of missing MDI and COM functionality.
Terminal Server and Citrix deserve a mention, if only because it is so similar to ClarioNet. Where ClarioNet replicates the Application interface at the client, Terminal Server or Citrix replicates the whole Windows desktop at the client.
Main advantages are:
The main disadvantages are:
- It simply doesn’t get any easier from a programmers point of view. If your program runs in Windows it runs in Terminal Server. Your client can implement this approach and there are almost certainly no changes necessary to your program. (Other than the fact that you may have limited the number of copies that can be started on a single machine.)
- Cost. Each client requires a license from Microsoft or Citrix.
- Each session takes up considerable resources on the server, for the whole duration of the session. Sufficient RAM for all the users is absolutely essential.
Accessing the database remotely is an option. Using either IP Driver, or SQL technology, it is possible for your Clarion app to access data stored on another machine, with only an IP connection.
- Simple to implement.
- Client-side program required.
I’ll also mention Replicate here (a CapeSoft 3rd party accessory). Replicate is unique in that it allows multiple users to access the data, from remote locations, but without being connected. In other words if the ability to continue working offline is paramount then this is probably the best option.