8.1 The CAPS™ General GUI Client
Most needs for direct GUI interaction with CAPS™-based
applications are met by one "General GUI Client" program,
customized through the presentation data it obtains from
the BL. The General GUI Client is coded in Python and
uses the popular Qt cross-platform GUI library. This
client can run on all platforms supporting these two
highly portable technologies, including Windows, Linux
and Solaris.
As the primary User Interface to all CAPS™-based
applications, the General GUI Client offers a rich slate
of functionality. Such functionality includes the ability
to customize presentation choices for a specific user,
for a certain set of workstations, or for a whole site
(i.e., all CAPS™ usage in an installation). Other examples
of advanced General GUI Client functionality include
macros, local printing, and real-time operation.
Not yet supported in the General GUI Client, but slated
for future implementation, is the capability for
"detached" operation.
Detached operation will let machines with only occasional
network access, such as laptop computers, keep running
CAPS™-based applications locally during times without
network access. Data edits and creations performed during
such time periods will be "batched" locally, and sent to
the back-end as a "burst" when connection is
re-established. Layers 2 and 3 (the BL and BLMs) will
ensure that such asynchronous updates do not violate the
"ACID" properties, by pointing out any conflicts that
need to be resolved before updates can take place.'
8.2 The CAPS™ Web-server front-end
The CAPS™ General Webserver is another CAPS™ front-end. It
runs on top of the popular, cross-platform Apache Web
Server (and potentially on other brands of Web Servers),
using the "Webware for Python" toolkit. The General
Webserver is customized with presentation data similar
to that meant for the General GUI Client. The end-user
can interact with the General Webserver by using any
standard Web browser as the User Interface, since the
General Webserver generates standard HTML for output and
processes standard HTML Forms for input.
Such a web server is a very practical way to allow
generalized remote access to some of the information
held in the database of a CAPS™-based application. This
remote access can optionally include some ability to
update the database, both by creating new objects and
by editing existing ones.
However, the end-user functionality that can be made
available through the Web is only a subset of that which
CAPS™' General GUI Client can supply. In particular, since
no widespread "server-side push" technology has yet taken
hold, at this time the General-Webserver does not support
real-time updates of the information end users are shown.
Since the General Webserver is meant to run on the
"server side" of CAPS™, it will not directly support
detached operation and batched creations and edits
with burst updates, either.
8.3 Other CAPS™ front-ends
Not all user interactions with the CAPS™ back-end are
optimally handled in the highly interactive ways typical
of GUIs and web access. The BL directly supports the
receiving and sending of e-mail (with the standard SMTP
protocol). This support can potentially turn any "mail
user agent" (MUA) into a (limited and purely textual)
"front-end" to some CAPS™-based applications. Similar
"pseudo front-ends" can be designed, along the same
guidelines, for other purely textual information
interchange protocols, such as the Netnews Transfer
Protcol (NNTP). Even deeper integration with arbitrary
MUAs is planned for the future through the use of the
IMAP protocol: by operating as a dedicated IMAP server,
the BL or a specialized front-end can allow more advanced
use through mail user-agent programs.
For programmatic updates and reports, CAPS™ supplies
"scripting front-ends". Such front-ends enable simple
Python scripts to run queries, requests, and updates.
Through this scripting interface, and Python's vast power
and extensibility, specialized front-end scripts can
easily be coded. Such front-end scripts may include the
ability to produce and consume XML files, or other
specialized formats such as PDF. Non-interactive
"clients" can run as daemons (services, in Windows)
and are able to mediate between CAPS™ databases and
other database formats (such as LDAP). All such
non-interactive front-ends rely on just the same
fundamental architecture as the scripting front-ends.
A specific "reporting front-end framework", able to
perform data mining and produce easily customized,
elegantly formatted summary reports, is planned. However,
implementation of this reporting front-end has not yet
begun. A key enabling technology for this forthcoming
front-end framework is the ability to "snapshot" the
database as it existed at any time instant, or specific
set of instants, in the past. Such "snap-shots" will
allow lengthy analysis (for data mining and/or auditing
purposes), independent of the continuing editing and
updating activity on the "live" database. The ability to
snapshot at more than one instant allows specialized
front-ends to study, summarize and report on developments
in the database between any two given points in time.
|