Jacek Migdał
Table of Contents
The number of web application is growing steadily. Although, it is not possible to make everything using web technologies, this approach could simplify usage. There are many open source examples where simple servers could benefit to user. One of existing is CUPS service, where printing management could be done easily by web browser. There is a real need to make some interfaces available through the net.
Web interfaces are necessary in database applications like Kexi. Idea of converting widgets to web format is not new. Our property competitor - MS Access already have this feature, but it is using unstandardized technologies (e.g. ActiveX). In contrast to this solutions (.NET), Kexi Web Forms will be compatible with W3C standards.
The project objectives:
Average user want to take advantage of functionality. Installing and configuring apache is beyond abilities of many office workers. Kexi Web Forms should be set up with few clicks. That is one of reason why mini server is preferred over generating PHP code.
Web Forms should provide identical support for databases and forms. This could be accomplished using library KexiDB and carefully desiging translation between internal xml forms format to XHTML.
There should be a possibility of embedding Kexi Web Forms objects in other pages. It will be provided be generating raw objects by server or by PHP code.
Kexi Web Forms will be mainly provided by a small server. I am planning to reuse existing KPF server code (from kdenetwork) to make this solution integrated with KDE.
The general schema:
(dashed lines points future possibilities)
The project work will include extending KPF to server framework and writing Kexi Web Forms. Dividing this functionality into three parts will avoid problems with packages (strange dependencies).
The project will be implemented in C++ using KDE and Qt library. As much CSS and XHTML data as it is possible should be kept outside from binary code. This would allow to customized appearance.
Creating server framework based on KPF will help others project to make them web-enabled. With plugins KPF will be easily extend able.
Data handling could be problematic. Now it is impossible to get, for example, 5th record from SELECT * FROM people, using existing KexiDB library. So it is necessary to rely on caching.
In this model there will be proxy object for each SQL query. An object will request data from proxy. Proxy will check if it has up to date data. If not proxy will update them. Up to date will be defined by interval value. Interval value could be set by user.
Usability aspects:
Appearance should be similar to the Kexi application. Object browser will look like a tree look in file browsers.
Q: Why the project concentrate on using web server and only point generating PHP code as optional?
A: There are good reasons to use server over PHP code:
The PHP code will not support all types of databases(but it aim to do so). It will be provided mainly for web developers who want use Kexi Web Forms objects on their sites.
Q: I have seen similarly project before. Where is it? Why you do not extend it?
A: A proof of concept server exist. It is Kexi Web server (1). It was written as an example of using KROSS and it lack of major features. It is written in python so it does not integrate with KDE well. Moreover, It works a bit differ then I would like so it is not possible to reuse it.
Q: I have a question...
A: Feel free to ask me using email