Dataphor.org

About Dataphor

Modified: 2014/06/11 15:29 by dcook - Categorized as: About
Edit

Dataphor.org

This website is hosted by Alphora who distributes and supports Dataphor commercially. For questions or issues regarding this website please contact Database Consulting Group.

Edit

Dataphor Summary

Dataphor Overall Architecture

Dataphor Overall Architecture


Edit

Uses for Dataphor

  • Building software applications quickly
  • Data integration/migration tasks
  • Teaching/learning about relational theory

Edit

Features at a glance

  • Centralized and extensible data dictionary
  • Dynamic user interface derivation
  • Declarative environment for business rules
  • Multiple clients from a single description
  • Rich data manipulation algebra

Edit

Technology at a glance

  • Database Management System (DBMS) written in C# for the version 2.0 .NET Framework
  • Compiler and runtime for D4 language
  • Integrated Development Environment (IDE) for:
    • Editing and executing D4
    • Browsing the data dictionary catalog
    • Analyzing execution plans
    • Visually building forms, or customizing derived forms
  • Windows Forms based thin client
  • ASP.NET based web server thin "client"
  • Libraries to access SQL Server, Oracle, DB2, and a few other data sources
  • Libraries for standard programming tasks as well as web related tasks.

Edit

Current Status

  • Current development version is 2.2. For a listing of new features see What's new in 2.2
  • Current stable version is 2.1, which has been in a "production beta" for several years now. This is mostly because the developers have not had the time to give thorough enough testing, documentation, and polishing to call it "released". As always, use in production at your own risk.
  • Dataphor was started just before 2000 as a commercial project, but as of March 2008 Dataphor is released as open source under a BSD style license.
  • Dataphor has been used to build several production commercial applications

Edit

Overview:

Edit

Goals

Dataphor™ is a database application development platform that automates many of the tasks involved in the creation and maintenance of database applications. The Dataphor Server provides a logical abstraction of database management systems, while Dataphor Frontend provides a logical abstraction of user interface definitions. Alphora Dataphor allows developers to focus on the creation of the core data model and underlying process logic. Based on the given data model, Dataphor dynamically derives user interfaces and enforces business rules. This data-centric approach, which is enabled by Dataphor’s query processor and data dictionary, enables developers to: 1) focus on what it is they are modeling rather than the implementation details; 2) shield themselves from the limitations and diversity of existing data sources; and 3) produce more flexible applications in less time.

Edit

Layers

The Dataphor approach consists of describing applications in three main layers: Physical, Logical, and Presentation. The Physical Layer is responsible for managing the persistent data. The Presentation Layer is responsible for managing the interaction with user. The Logical Layer is responsible for providing the actual description of the application. The Logical layer is described in terms of constructs within a virtual database server. To the extent possible, Dataphor tries to automate the implementation of the Physical and Presentation layers by inferring information from the Logical.

Edit

Dataphor Server

The Dataphor Server, formerly referred to as the Data Access Engine (DAE), provides a unified way of working with data. The guiding principle is to allow the application developer to focus on the core logic of the application by enabling a highly declarative description of the application's essence. The application developer utilizes the Dataphor Server like a DBMS. The server in turn utilizes any of the extensible set of data sources to be used as an underlying storage device. Thus, as a bi-product of its design, the Dataphor Server acts as a data integration solution. Here are some of the unique aspects of the Dataphor Server:
  • User interface "hints" integrated with the data model
  • 1st class user-defined types and operators
  • Relationally complete access to potentially any data source
  • Declarative integrity support (business rule enforcement)
  • Extensible data dictionary minimizes schema duplication
  • Updateable views (queries)
  • Leverages the performance of existing database management systems

The Dataphor Server also provides “special” features in its external level interface that make it possible for the Frontend components to heavily automate user interface creation.

Edit

The Dataphor Frontend

The Dataphor Frontend is a group of technologies focused on providing a user experience for database applications. Rather than generating code for common data manipulation scenarios, user interfaces are dynamically derived from information provided by the D4 compiler based on the data dictionary. User interfaces are presented using a thin client metaphor. User interfaces for performing http://en.wikipedia.org/wiki/Create%2C_read%2C_update_and_delete CRUD are dynamically derived from the database definition, for base table as well as complex expressions. Dynamic forms can also be used as a basis for form inheritance, thus allowing customized forms while minimizing the impact of change.

  • Dynamic derivation of complete user interfaces from the data dictionary based on any perspective (expression).
  • No need to provide update logic (Dataphor Server has updatable expressions/views)
  • Multiple clients from a single user interface definition
  • Inheritance-based customization facilitates control while minimizing the impact of schema change
  • Windows® client builds rich forms using dynamic UI descriptions
  • Web client enables access to Dataphor applications from a browser

Edit

Dataphor from a Research Perspective

Dataphor is interesting from a computer science research perspective in that it contains several unique problem domains, including:
  • View/expression updateability - understanding, improving, operator inversion
  • Relational algebra based language more readily encourages re-thinking of "primitive" relational operators
  • Physical data independence - how to better separate the logical from the physical layer
  • Semantic mapping between languages - Dataphor's storage integration architecture provides dynamic partial - to complete mapping of semantics between D4 and various dialects of SQL.

Edit

Future Research

As might be expected, designing and implementing Dataphor has raised more questions than it has answered. Dataphor's architects believe, though, that they are the types of questions that the industry should be pursuing. Dataphor's architects have to various degrees, been exploring at least the following:
  • Object/relational rapprochement
  • Missing information (a badly beaten, but hardly dead horse)
  • Physical data independence through inversion of expressions
  • Multi-dimensional indexing techniques
  • Logical query optimization in the absence of nulls (Dataphor can detect when they might exist)
  • Query optimization through sargability inference
  • Workflow as a feature of imperative language
  • Schema and dependency versioning
  • Re-evaluation of relational primitives surrounding aggregation and ordering
  • Parameterized views
  • Furthering dynamic user interface paradigms

Edit

See Also

ScrewTurn Wiki version 2.0.36. Some of the icons created by FamFamFam.