Rich Internet Applications and PL/SQL

From: MBPP <mpacheco_at_directnet.com.br>
Date: 26 Jan 2005 03:54:16 -0800
Message-ID: <1106740456.962267.114250_at_z14g2000cwz.googlegroups.com>



I am developing a database framework, specifically designed to run on Oracle databases, to render rich client applications similar to what the HTP/HTF packages offer. In this case I render Java Swing interfaces based on stored procedures and packages. What I want with this is to have a Rich Internet Application (RIA) totally centralized on the database. Maybe something similar to HTMLDB but not using HTML interfaces. I am also thinking the possibility to create migration routines to convert our Oracle Forms modules to stored procedures using this framework. The only requirement to run this framework is to have a database and Apache with MOD_PLSQL. The main objectives I want to achieve are:
  • To render "rich client" interfaces.
  • To be able to dynamically create objects.
  • Low network usage, small messages.
  • Fast user interaction.
  • Small memory footprint on the client side.
  • Must use HTTP/HTTPS.
  • Run inside any standard Browser or standalone.
  • Stateless execution based on client events.
  • Events can be conditionally triggered to avoid round trips.
  • Oracle 8.1.7+ compatibility.
  • MDI/SDI capability.

I already have a prototype working. The renderer Applet is just 12Kb and all objects are created dynamically using "Reflection". The framework has an option to establish conditions for events using regular expressions to avoid unnecessary round trips. Performance so far is good even in slow networks. Of course I still have room for improvement in this area. The protocol was implemented in a way that it can be optimized by removing redundant messages. I also implemented a simple dictionary compression algorithm which further reduces the message size. We can also use HTTP compression in Apache with MOD_GZIP which has a very good compression factor. The renderer Applet runs with Java Web Start either so the user has the option to completely ignore the Browser. The framework will be composed of layers, from communication to application. In the highest layer I will offer functionalities available in 4GL languages like "maintain_table(x)" to automatically render a maintenance form of the passed table (very simple example). Even in this layer the developer will also be able to customize all aspects of the form like colors, fonts, layout managers, panels, etc. I am doing this in principle as a learning, private project. I am still thinking about best ways to organize the APIs, performance, security, etc. I was wondering if there is anyone interested in helping me, take a look in what I have done so far, opinions (good or bad), etc. If so I can also send or post the Java and PL/SQL source codes, images and other documents I have. Thanks in advance for any comment.

Maurício. Received on Wed Jan 26 2005 - 12:54:16 CET

Original text of this message