Welcome to SparseWare, home to Sage™
Sage is a Real-time Application Rendering Engine (RARE) that downloads/loads application logic (scripts, class files, binaries), wiring instructions (integration, configuration, rendering), generates and then executes the application described by those instructions, all in real-time.Currently, applications are deployed either as Web applications, rendered and executed within the context of a Web browser, or, as pre-built executables deployed to the desktop via a network, or removable media.
Distributing pre-built executables offers the most power and flexibility when deploying rich desktop applications. It allows for total control of the all-inclusive components. However, once deployed they offer limited or no flexibility. The plethora of available RAD tools makes integrating disparate visual and logic components to generate and deploy simple to moderately complex applications very easy.
Distributing applications as a set of Web pages, scripts, and browser plug-ins provides tremendous flexibility at the point of execution, as the application can be customized on a per-invocation basis. However the Web browser is "the application" and thus hosted applications are limited by the constraints of the browser, and the browser vendor's bug fixing and new version release cycle.
It is therefore the object of Sage to:
- Provide a runtime environment that provides the capabilities of a Web browser as a component of the application instead of being the main application
- Provide a rich component library that supports the multitude of user interface metaphors and interactions (tables, lists, document editing, drag and drop, printing, etc) popular in desktop applications
- Provide a rich yet simple data model that allows list-type components be easily populated and configured, filtered, and searched
- Provide a scripting engine that can execute downloaded scripts and event handlers and allows scripts written in different scripting languages to execute and operate as part of a single application
- Provide runtime component and Web services integration capabilities. Configuration files will describe the additional components, their supported actions/interactions, and the location of any code necessary to utilize these components or Web services.
- Allow all of the pre-built components, interactions, and resources of the runtime to be augmented or replaced in real-time, such that the running application can be completely configured and reconfigured based on any criteria the application provider chooses (e.g. user preferences, IP address, country, language, etc.)
- Provide proxy web services for native components such that session cookies and other HTTP state/security information are centrally managed and available to all components needing web access.