Menu
Home Solutions Services Partners Developers Company News and Events Menu

CAPS
CAPSupphandling
CAPScase
Real-Time Monitoring
More information
CAPS™
Business Overview
Architecture Overview
White Papers

8. CAPS™ Layer 4: the front-end (AKA "clients")

Programs in Layer 4 of CAPS™ interact with the Business Logic (and, indirectly, with the BLMs running in the BL). Such front-end programs also interact with users, directly or through yet other "layers" located even further downstream. For example, typical examples of Layer 4 programs would be Web servers, which could feed "level 5" Web browsers which present data to users. Layer 4 Web servers could also supply Web services (for example through the XML-RPC protocol) which in turn are consumed by further middleware-layer programs yet.



Front Ends
Figure 5: Front Ends

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.




© 2002-2007 Open End AB