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.
Clarion.ASP / Clarion.PHP
http://www.softvelocity.com
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:
-
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 can be 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.
The main disadvantages of these templates are:
-
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 and CSS 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.
-
Both systems generate Web 1.0 "Page based" applications. They have
not been updated in some time.
We would use these templates in situations where:
-
We are reliant on commercial ISP’s for hosting.
Web Builder
http://www.softvelocity.com
Although it ships in the box in the Enterprise Edition, the Web Builder templates are often overlooked.
The main advantages of these templates 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.)
The main disadvantages are:
-
It requires the proprietary Application Broker. In a
public-web sense this means you will need your own internet server.
However Windows based, virtual servers are freely available at very
low prices from RackSpace, Amazon, OVH and the like.
-
It does not scale up very well. It is best suited to "tens of users"
per server.
-
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.
-
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.
-
It generates Web 1.0 "Page based" applications. It has not been
updated in some time (see H5 below)
We would use the WebBuilder approach when:
-
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
app, or if I was targeting a small-volume public web app.
H5
At the time of writing this H5 was not yet released. However from
information released it can be considered a major upgrade to Web
Builder. It contains similar advantages and disadvantages to Web Builder
in that it is still fast to implement, and dependent on the Application
Broker. However it leverages current web app frameworks and techniques
to bring it up to date.
Clarion Handy Tools
NetTalk
http://www.capesoft.com/accessories/netsp.htm
NetTalk adopts 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.
By not using PHP it is Windows
bound, and as it create proprietary programs (i.e. an Exe) and these will
require a dedicated server (like from Rackspace et al).
Unlike WebBuilder your existing app interface is not utilized. You will need to build the web interface from scratch, one
procedure at a time. There is a considerable learning curve required for
this. Resources like
Training Videos, a
book,
NetTalk Central Web Forums and
the Weekly
NetTalk User Group webinar make things simpler, but there is a
lot to learn and that takes time. Wizards exist to make procedures quickly.
It is a lot faster to create browses and forms in a NetTalk app than it is
in a Windows app.
NetTalk is scalable making it suitable for
thousands of users per server. Unlike the Application Broker based
applications it is also well suited to serving static HTML pages and files.
Thus it is much easier to create a hybrid app/site than it is with the
Application Broker.
Main advantages:
-
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.
-
Scalability - it can easily handle many thousands of users per
server.
-
Code is 100% Clarion. HTML and CSS knowledge is recommended
– especially if you wish to customize the “look” of the site. However
you can get going without HTML or CSS if you need to.
-
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.
Main disadvantages:
-
You’re creating a proprietary program. So expect to use your own
server or a physical or virtual Windows server on the web.
-
Your customers may raise security concerns because you’re not using
“main stream” technology. However NetTalk has regularly undergone
penetration testing and has always passed with good results.
-
Your existing app interface is not utilized. You
will need to build the web interface from scratch, one page at a time.
-
the learning curve to become efficient with NetTalk is substantial.
I would use NetTalk when:
-
A large number of users are expected, and scalability is a factor.
-
We are expecting a large number of installations –
typically done by the end users themselves.
-
We wish to create a remote management, or remote
access to our 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 we are 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 may 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.)
Thin@
ClarioNet
http://www.clarionet.com/
ClarioNet is a way to access and use ANY program, content or service
on a PC via another device. ClarioNET can forward multiple client
connections to multiple remote hosts (servers & connected devices). With
ClarioNET, any administrator controls the applications that Users have
access to and controls all related resource access and redirection from
one place. You simply download ClarioNET onto your server and it works.
Technically,
ClarioNET is an integration of two solutions; an HTML5 Client and a
Server Gateway: The ClarioNET Gateway is a
WebSocket server plus
HTTP server. It uses and allows computer and session management, server
side directories sharing etc.
Main advantages are:
-
IIt leverages an existing program, and so the time
taken from conception to deployment may be very small.
-
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.
Main disadvantages are:
-
More resources per-user consumed than a web app.
-
Best applied to Applications rather than Sites or Site/App hybrids.
-
Priced per user, per month, so can get expensive for large numbers
of casual users.
We would use ClarioNet:
-
Where there are a fixed number of known users.
-
Time to market is critical.
-
No investment
http://www.microsoft.com/windowsserver2003/techinfo/overview/termserv.mspx
http://www.citrix.com/lang/English/home.asp
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:
-
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.)
The main disadvantages are:
-
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.
-
Security: A large degree of trust is necessary because users can
access any part of the machine.
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.
Main advantages:
-
Simple to implement.
Main disadvantages:
-
Client-side program required.