OWT
The Open
Web
Toolkit
Table of Contents
OWT stands for Open Web Toolkit. It is a collection of building blocks
to build powerful server-side web applications. These building blocks
may come from various sources, but the core of OWT is maintained by me,
and is freely available in source code form for most platforms.
At the core of OWT is its unique way of manipulating the HTML document that
will be returned by your application as a response to the client request.
Instead of generating an HTML output using programming language statements
as the traditional approach suggests, OWT provides an API that dynamically
updates an existing HTML document. Special tags are embedded in the HTML
source, and OWT converts these tags into a hierarchy of objects in memory.
Then you call these objects' methods to update the HTML source, and OWT
regenerates the modified HTML document for you.
In addition to the core HTML manipulation API, here is a list of existing
and potential OWT tools:
- Output tools:
- Maps and Charts
- GIF/JPEG output
- Database access tools:
- XBase (.DBF), ODBC, Oracle, etc.
- OGDI, ArcView Shapes, GDAL, etc.
- Gateways to external tools:
In brief, anything that can be useful for a server-side web application can
be built as a OWT tool!
The current version of OWT is written in C++ and is intended to be used for
CGI applications. However, the HTML manipulation concepts used by OWT
are compatible with the Java Servlet technology, and it is in my plans to
eventually port OWT to work with Java Servlets.
First of all: because I feel there is a need for it!
The main reason that led to the creation of OWT was that I needed a good base
for the web application development projects in which I was involved.
Furthermore, I thought that there could be some benefits in making OWT
openly accessible:
- Other application developers can only benefit from using the HTML
manipulation concepts that are at the base of OWT in their server-side
applications instead of using the traditional approach of generating
the HTML output using programming language statements.
- As a developer, I hate having to redevelop the same thing several times
for different customers. Going with an Open toolkit encourages reuse
of existing stuff. This means that I can spend my time (and my
customer's money) developing new stuff instead, which is much more
interesting, and leads to much better products in the long run.
- Another developer thought: I hate it when the quality of an application
I am trying to build is affected by limitations or bugs in a
proprietary system!!!
Having full access to the source code gives you the
full power to fix the bugs or push the limits yourself.
- Organizations will save on application development cost since they
can build on top of the existing (and freely available) OWT base.
Hopefully these organizations, and/or their developers will use (at
least part of) these savings to develop new features and will share
them with other OWT users.
- OWT can evolve much faster if I'm not the only developer using it
and working on it. Users of OWT will get free access to new features
(and bug fixes) as more and more developers improve existing OWT
tools and contribute their own new tools.
The best scenario would be that I buy lottery tickets, and hope to win
enough to make a living while developing OWT and giving it away for free.
Unfortunately this approach does not seem to work very well.
:-(
So I had to come up with a Plan B, just in case...
- The plan is that I would use OWT as the base for most of my web
application development projects. And when a customer requires
a feature that is not part of OWT yet, then I would develop that
feature as part of this customer's project. Hopefully, most customers
will see the benefits of OWT and will accept that this new or
improved feature becomes a freely available OWT tool.
- The base for the HTML manipulation API is already built. It is quite
simple for now, but it will keep evolving to satisfy the needs of
my current and future web application development contracts.
- OWT will make use existing libraries when possible. For instance,
there are already good and freely available libraries to work with
JPEGs, GIFs, DBFs, etc.
- For more specialized needs, then we'll have two choices: either develop
a custom solution, or build an OWT Gateway to an external system.
Example: For a WebMapping app., I want to look at the possibility to
build a gateway that would allow the use of ESRI's MapObjects with
OWT instead of building a mapping engine from scratch.
- Finally, I hope that at some point there will be other web application
developers that will start using OWT and will contribute their own
tools or their improvements to existing tools.
Sorry, there is no public release of OWT available yet. It is currently
being used in a couple of web application development projects, but it still
lacks a couple of things, like good supporting documentation to be ready for
a public release. I also have to sort out the licensing terms for the
source code before I publicly release it.
Depending on the amount of interest and potential contributors, the first
public release may be available in a couple of weeks, or only in several
months...
Please Email me (danmo@videotron.ca)
if you feel that OWT could be useful for you. I would also like to offer my
services as a contract developer to
organizations that have web application development projects. :-)
Home Page |
Software Development Page
Last Update: November 20, 1998
Daniel Morissette,
danmo@videotron.ca