To be able to define models and directly derive fully working applications
This is an unlikely possibility, and one that has been a distant objective of this project.
This has now been realised. The Alchemist (self-generated) web application
can be used to describe new models, experiment with models incrementally, and then
generate java source code, compile and deploy the new web applciation.
The possibility now exists for designers to sit down with customers, to interactively
determine application requirements and within an hour or two to show them a working
application.
Along the way a number of other problems have had to be solved. They have remained solved
and for those interested in these solutions the technology is demonstrably effective.
|
To be able to reallocate file-based storage
The IStore package provides a straightforward interface to access and
re-allocated file-based storage. This allows programmers access to file store very
similar to memory allocation and re-allocation.
To be able to synchronize runtime objects with external, file-based
data representation.
The Generic Persistent Object Model provides a transparent persistent
representation. Furthermore, the object model patterns directly supported are themselves
hugely simplifying.
To productively implement object designs
An object model may be described in an xml file that can be processed
by the Alchemist system generator. This will generate a complete object
model using the Generic Persistent Object Model.
To productively implement a web-based application
The Alchemist generator can produce a customizable web application,
providing a war file for installation in a Tomcat server.
To be able to specify and implement validation rules
The concept of type refinemement as an approach to constraints
and validation is introduced and supported by the Alchemist. The
generated web applications generate javascript based validation
that validates on character input, not simply on "submit".
Supported type refinements include regular expressions
as well as numeric range and various date constraints.
To be able to query an object model using the understood associations
The new GPath query language uses an XPath-like syntax
to directly navigate the model.
To be able to integrate query results with the standard programming model
The result returned by a GPath query is a Striterator that
can be further refined using java programming and then can be refined using further
queries. This level of query integration is quite novel.
|
To be able to access "historical" data
The WORM (Write Once Read Many) store can be utilized by GPO
to implement high level transaction isolation, but it can also provide very efficient
access to snapshots of previously committed state. This approach allows direct
navigation of the state of the datastore at a specific time, without the need to
associate time information directly with any data.
To be able to use "spreadsheet-like" formulas in defining a model
The Generic Persistent Object model supports a rich dependency structure
that has been extended to provide support for "data-flow" based formula calculations.
This scalable solution provides functionality surpassing database approaches such
as "triggers" and "computed values".
The unification of procedural/object-oriented programming, database and spreadsheets
provides a genuine new approach and is extremely powerful.
To be able to declaratively compose interfaces
The new InterActor package provides a "structural" approach to interface
composition and "update". Built using Java2D a transformation model is supported
that makes features such as "zoom-in/zoom-out" straightforward to implement.
To be able to easily define java-based presentations and animations
An IAMovie class provides a "flash-like" composition model.
To process complex xml files
MiniDOM provides an alternative to SAX processing whilst retaining
the scalable, event-based approach. With MiniDOM complete elements are passed to
any registered handlers.
To access large read-only xml files quickly
QUDOM is a W3C DOM API that provides a low-overhead alternative to Xerces using as little
as one seventh the java memory, whilst parsing the file in under half the time.
To access huge xml files
PDOM is a W3C DOM API that builds on the Generic Persistent Object Model to
provide an efficient persistent system. PDOM can manage multiple documents as well as
huge individual documents. The java memory requirements remain broadly constant no matter how
large the data.
|