Ajax - application in the browser
There is a new trend on the Internet: The browser content
finally becomes truly interactive - on a field level and with
the feel of desktop applications. This approach is called
Ajax and it delivers true application feel and behaviour to
the Internet browser.
This page explains what Ajax is and how it works.
Elecat employs Ajax just like
EleAIS and Eleserver. Read here about the great impact of
Ajax on the visitors of your website.
Abstract for the non-technical
decision maker
Ajax is a new design approach for web applications
and neither a product nor a programming language. Ajax
enables applications inside the Internet browser by
bringing true desktop behaviour into the web browser
including immediate responses to user actions or entries.
Existing web server software cannot be converted to
support Ajax. Ajax server software must be constructed
from scratch. Most currently used (old) programming
languages and tools are not well suitable for Ajax.
This makes the developing Ajax server software substantially
more expensive than conventional web software. Therefore,
using standard products supporting Ajax like Elecat
and EleFamily is certainly the better and more cost-effective
solution.
The essential advantages of Ajax over conventional
web server design:
- Ajax makes applications in the browser truly interactive
on a field level, very similar to desktop software.
- The Ajax application responds immediately to any
user action in the browser where needed.
- An Ajax application behaves and feels like a desktop
software in the browser and the "batch feeling"
is gone.
- Updating single items (fields) in the browser results
in much better user guidance and higher user productivity.
- With Ajax, the server can 'push' data into the
browser, which is impossible for a conventional web
server.
- Overall, Ajax enables delivering much more sophisticated
and user-friendly applications into the web browser.
|
Beware: Most of the following text is for
the rather technically minded reader!
What is Ajax
Ajax is a new design approach for web applications. Ajax
is not a new product or programming
language. Ajax is a new form of constructing websites with
truly interactive and immediate behaviour that substantially
improves the user’s web application experience in delivering
the functionality as well as the look-and-feel of desktop
application software to Internet browsers.
"AJAX" stands for Asynchronous JavaScript and XML.
Ajax uses these proven techniques in most Internet browsers,
including the very popular and superior Mozilla Firefox and
Microsoft's old dog IE.
Theoretically, Ajax can be implemented in any of the conventional
programming languages although some are better suitable than
others, of course. For example, implementing Ajax in the most
wide-spread web server languages PHP or ASP (IBM) is much
more cumbersome and expensive than in truly object-oriented
environments. (Let's not discuss PHP5 here!)
In any case, Ajax needs a completely new design and "thinking"
of the web server software. Some easy conversion of existing
applications is generally impossible. This is also why Ajax
doesn't come for free - except in new web applications like
Elecat, EleAIS or the other web server enabled software products
of EleFamily.
How does it work now - without AJAX?
A classic web application model (without Ajax) always follows
these steps:
1. Some user operations in the browser send some data input
to the web server by transferring the entire
form or frame.
2. The server does some batch
processing typically of several fields
and input values sent inside
the transmitted form.
3. And the server then returns the resulting HTML page
to the browser client (or frame at minimum).
Today, browsers and web servers use
old-fashioned batch communication
In this classical approach used by over 99% of today's websites,
the interaction between browser and server is always based
on transferring entire web pages or whole frames at minimum.
This is stone-age technology from the 70ies that was outdated
by the mid 80ies. But due to today's web servers this old-fashioned
technique is still the standard practice on today's Internet.
Classic web applications therefore have at least these great
disadvantages:
- They are always refreshing the whole browser page or
at least entire frames in response to some user actions.
- There is no immediate and field-related processing, checking
or response from the server, because always the entire form
or frame is transferred to the server, sent back and refreshed
in the browser.
- Much of the traffic is redundant, because this approach
always need to transfer whole forms or frames.
- The communication between web browser and web server
is a batch transfer of several or many values similar to
the old mainframe approach that was the rule in the 70ies
and early 80ies when dumb terminals were is use and all
actions and even the simplest checking of user entries were
performed by the server in a batch procedure.
What does AJAX improve and how?
Ajax delivers the much better approach
With Ajax, single web form elements, buttons or fields are
processed and updated individually and
immediately, so that there is no full-page or frame
transfer anymore. Data transfer
to and from the server is on field level
and therefore in much smaller chunks of data and with an immediate
response for the user.
The many benefits of Ajax
The Ajax approach provides many benefits apart from a much
better user experience:
- The server-side application can now be designed to compute
answers as singleton data and not as full pages to be redisplayed.
This allows for a much more granulated and and much better
and cleaner software design.
- Ajax makes applications in the browser truly interactive
on a field level very similar to desktop software.
- The application in the browser responds immediately to
any user action where needed.
- An application in the browser behaves and feels like
a desktop software and the "batch feeling" is
gone.
- Updating individual items (fields) in the browser results
in much better user guidance and higher user productivity.
- With Ajax, the server can 'push' data into the browser,
which is impossible for a conventional web server.
- Ajax decreases the traffic between server and browser.
- Ajax divides this traffic into smaller chunks of data.
- Overall, Ajax enables delivering much more sophisticated
and user-friendly applications into the Internet browser.
More sophisticated server programming
required
The bad news is: One cannot just convert an existing web
server application to deliver Ajax, because Ajax requires
a fundamentally different concept and design approach (very
similar to desktop software). Therefore, one must redesign
and rewrite any conventional server application from scratch
to deliver Ajax functionality and in most cases one will better
use some different and more sophisticated programming language
and tools than those used for the old batch-type websites.
(Of course, some vendors of Ajax tools claim just the
opposite but this is the usual marketing blah-blah and simply
not true!)
Ajax server software is much more
expensive to develop
Because of these reasons, web server development in Ajax
is more expensive than conventional web server software and
this is another reason why it makes more sense to use standard
software products like Elecat, EleAIS or the other web server
enabled products of EleFamily. Another reason is, by the way,
that many of the younger and/or low-qualified developers of
today's websites will have a hard time or even fail, because
Ajay is very demanding for the novice or layman programmer.
Therefore, you better have some real pros to write Ajax web
server software who know much more than some HTML and PHP.
GMail (Google mail) is in Ajax
Ajax is not exotic, it's use is only still rather rare today.
Probably the most prominent example for the use of Ajax is
Google mail.
Ajax in EleAIS, Elecat and EleFamily
In our case: full re-use of our EleFamily
desktop software library
Our design approach and our tools for implementing Ajax inside
Eleserver, our web server engine, are based on the ingenious
advantage of being able to fully re-use
our very comprehensive object-oriented EleFamily class (code)
library and most of the logic from which the EleFamily
desktop software is constructed. This is enabled by our development
tools and our general design approach. The architect of EleFamily
has over 30 years of experiance and has used object-oriented
design since 1987!
Therefore, almost all of our web server engine Eleserver
is constructed from existing EleFamily components and it is,
of course, all in purest object-oriented design.
All it needs for Eleserver to turn our desktop application
software to delivering Ajax functionality to the Internet
browser are some relatively small changes to the user interface
processing. About 90-95% of the existing logic is re-used.
Perfectly suitable for hyprid applications
This is also why Eleserver and EleFamily are perfectly suitable
for hybrid applications:
- For the "power user" on the desktop and in the
office inside a LAN (local area network)
- In the Internet browser for the occasional, or remote, or
traveling user.
Some more details - only for the more
technically minded reader
EleFamily and also Eleserver were developed and written in
the mother of all object-oriented languages and that is Smalltalk,
the most mature, most sophisticated, most complex and also
most productive software development environment today. A
special class library also written in Smalltalk delivers the
user interface functionality needed to construct and support
Ajax.
We had intentionally constructed the user interface of EleFamily
(desktop) entirely in data from the very beginning. It was
therefore quite easy and very quick to re-use these data definitions
of the UI for generating the UI in HTML in Ajax style.
Only the way how the actual user interface is constructed
from this data differs between Eleserver (browser and Ajax)
and EleFamily (desktop) and so does, of course, the transportation
media for the UI consisting of HTML and JavaScript.
Full re-use of all of the application
and business logic - only one source for desktop and web server
All of the application logic, the business rules, the data
model definitions and even the UI definitions (in data) are
fully re-used by both "appearances" of our software
and are therefore identical on the desktop and inside the
Internet browser. Additionally, the multi-level class (code)
inheritance mechanisms of EleFamily are also re-used inside
Eleserver.
Inside our software we just turn one switch and the desktop
software acts as a web server or vice-versa, because they
are really the one and the same class library with just a
few subclasses that handle the different behaviour as a web
server.
|