Sie sind auf Seite 1von 9

Application Frameworks http://linuxfinances.info/info/framewrk.

html

Christopher B. Browne's Home Page


cbbrowne@gmail.com
Christopher Browne's Web Pages
Prev Next

Application Frameworks
Christopher Browne

Table of Contents
1. Introduction
2. Wild-Eyed Ideas
3. Query and Reporting Tools
4. "Middleware" - Interfaces to Databases
5. Transaction Processing Monitors

1. Introduction
The deployment of applications on free operating systems like Linux that use databases, "forms," and generate reports, can
be eased by the availability of application frameworks to support their development.

In the ancient past, COBOL was a standard that effectively defined an operational environment. (Albeit one that lacked lots of
things we might like to have today...)

More recently, Ashton Tate's dBase defined the "business application" platform for CP/M and then for MS-DOS. It supplied
database infrastructure as well as ways of defining "forms" or "screens" for data entry as well as reports.

IBM and other database vendors defined SQL, the "Structured Query Language." The definition did not provide a definition for
the overall processing environmnent, with the result that SQL always gets deployed as a component of an overall system,
and not as something that provides a complete system in and of itself.

An unfortunate result (in my opinion) of this is that many of the database vendors have thus built "application environments"
that tightly integrate to their database systems, thus locking users into using their tools. Once you have written an application
to use Oracle SQL*Forms , redeploying it on another database system is virtually impossible even if both databases
"conform to SQL standards."

Today, the "Win32 world" has various "application platforms" notably including Borland Delphi, Sybase PowerBuilder ,
Microsoft Visual BASIC , and Microsoft Access .

And, getting to the point, Linux needs to have some such sort of "application platform" to support the construction of business
applications. The business sector has an unbelievable number of "bespoke" applications deployed using these sorts of tools;
Linux could become indispensible to the "small business" or departmental communities if it offered tools for building these
sorts of applications. There are a number of tools and approaches out there; I would argue that none are entirely satisfactory.

1.1. Web-Based Frameworks


An approach that the growth of the World Wide Web has popularized is that of creating client/server applications that use a
web browser as the front end, and then a Web (HTTP) server as the "application server," presenting applications via HTML
forms that communicate using CGI gateways or some functional equivalent.

More sophisticated approaches on the client side use more deeply embedded web browser functionality such as
JavaScript/ECMAScript or Java, albeit with a certain loss of portability and stability.

It is straightforward for the web server software to then request data from other systems, whether via relational databases or
otherwise.

Many of these sorts of tools are freely available for Linux:

1 of 9 05/03/2010 06:33 PM
Application Frameworks http://linuxfinances.info/info/framewrk.html

Philip and Alex's Guide to Web Publishing

RADpage - Create DB-driven Web Pages (Nonfree)

Midgard Project - Web-Based Application Framework

Z Object Publishing Environment

What is Zope?

The short answer is, Zope is a free, open source web application platform used for building high-performance, dynamic
web sites.

Could you give a longer answer than that?

Sure can. The Zope architecture competes in the web application server market against products such as Cold Fusion,
Silverstream, Netscape Application Server, and the like. These products are aimed at systems programmers and
relational databases. Zope, however, contains a powerful and simple scripting object model and high-performance,
integrated object database. Thus the term "platform."

Zope is divided into a number of systems, each described below. First, the Z Publisher provides object publishing that
integrates with common web servers using a number of protocols, such as Zope's Persistent CGI. The Z Framework
contains the foundation for the environment and builtin objects such as folders, documents, and images. The Z
Template system provides dynamic page generation. The Z Object Database gives an advanced storage system that
integrates tightly with Zope's web object model. Finally, Z SQL Methods and Z Database Adapters provide object-
relational integration of data in popular SQL servers.

Uses the Zope Public License, patterned after Apache's license, Zope is a Python-based system.

The Zope Book

openWDDX.org: Web Distributed Data Exchange

MOT- Programming-free DB/Web framework for Apache / PHP / MySQL™

Cuttlefish, a "pushcache" server based on Squid, which supports the traditional functionality of cacheing (as with
Squid), adding the ability for a web application to push data out towards users rather than merely providing the
traditional "web" thing of browsers pulling data on demand.

Produced by Pushcache.com

Unfortunately, this approach means that you must either on the one hand limit yourself to the rather basic functionality
provided by HTML Forms, or depend deeply on the functionality of the web browser, which is risky in the wake of both the
diverse (and somewhat incompatible) feature sets provided by the "leading" browsers from MSFT and NCC.

The "shifting sands" of the Browser Wars leads me to suggest that the world is not quite ready yet to depend on the web
browser as a platform that is both rich in functionality as well as stable for applications.

A further problem is that this approach provides such a wide diversity of choices that it is difficult to come up with any
consistency in design or architecture.

The one major "upside" to this approach is that there is a fairly rich set of Free Software options. Freedom permits ubiquity,
which is a good thing.

Teaching by Philip Greenspun; likely to be integrated into the ArsDigita University curriculum

One Evening Web Course

One-day Web Course

One Day Web Tools Course

Including coverage of Oracle, Solaris, AOL Server...

One Term Web Course

2 of 9 05/03/2010 06:33 PM
Application Frameworks http://linuxfinances.info/info/framewrk.html

Web "Boot Camp"

web|sh

webshell is a web application framework based on TCL, integrating with Apache .

Generative Web Language

This project implements an approach to building Web applications using a tree of dynamic Common Lisp objects to
represent the tree of pages in a Web application. The macro Defpage is introduced. Runs atop ICAD/IDL or GDL and
cl-http or iserve.

Medusa

A high-performance, extensible Internet server framework for building long-running, high-performance network servers
in Python . It takes a unique approach to scalability by running a limited number of threads and by employing
asynchronous event handling to multiplex the processing of a large number of connections. It is used as the "web
server" in the Zope application framework.

Curl

Curl is a multi-paradigm content integration language reminiscent of Lisp.

HTML-Template

Scheme to separate web apps into HTML and application, allowing one group of non-programmers to write web pages,
and another group write software.

ArsDigita Systems Journal: Scalability, Three-Tiered Architectures, and Application Servers

REST - REpresentational State Transfer

This phrase was coined to describe the Web's architectural style; the basic idea is that the web "got right" the notion of
having a small number of "verbs," GET, PUT, POST, and DELETE, which are then applied to a potentially infinite set of
"nouns" that are URIs, as this allows a huge number of otherwise uncoordinated actors to interoperate.

It doesn't matter if the server is using Apache , Boa , IIS, or Zope ; it doesn't matter if the client is using Mozilla ,
Mosaic, lynx , or even a Perl HTTP::Negotiate class; they can all (at least if the application designer isn't
gratuitously stupid) retrieve contents as well as status information.

XML.com: Second Generation Web Services

XML.com: REST and the Real World

IBM: Linux and WebSphere CD

Python Web Frameworks Overview

SkunkWEB

an extensible, scalable and easy to use application server written in Python .

Quixote

Quixote is yet another framework for developing Web applications in Python. The accent is on supporting applications
concentrating on complex programming rather than complex templating. Thus, if you'd like to consider your web site a
program, and web pages to be subroutines, Quixote might be suitable.

Mozilla offers an interesting application development framework, combining XML (in a form called XUL) with
ECMAScript .

OEone The Joy of XUL

An Introductory Tour of Mozilla's XUL

3 of 9 05/03/2010 06:33 PM
Application Frameworks http://linuxfinances.info/info/framewrk.html

mozdev.org - books

ActiveState - Corporate - News - Komodo IDE ~ the Killer Mozilla Application

Mozilla DB Support

There are plans to allow Mozilla to link to relational databases...

ware solutions inc.

They sell systems based on a Linux/Apache/MySQL™ framework...

Achievo ATK

Achievo ATK is an object oriented Web-application Framework, written in PHP .

Ruby on Rails

1.2. Database Frameworks


There have been several generations of database technology that have been associated with the building of business
applications:

COBOL was a classic "platform" for applications. It's old, it's pretty ugly, but there's more COBOL code out there than
can be readily imagined.

And the scope covered by the typical COBOL environment is such that while COBOL may be a "very bad business
programming language," it is not unfair to say that the others are much worse.

xBase

Developed initially for CP/M, the Vulcan system proved to be a longstanding workhorse for small business systems,
with a lively set of "clones" that are still in use today.

Relational 4GLs

Unlike COBOL, where much of the environment could be standardized, while most SQL systems claim compliance to
ANSI SQL standards, that standardization tends to only influence a small portion of the overall system.

As a result, associated with the growth of relational databases (SQL) has been the growth of "application
environments" to go along with them. Oracle has sold PL/SQL to deploy business applications for many years now;
Informix has provided New Era ; most database vendors have provided some sort of application environment along
with their databases.

These extended environments unfortunately lock you into proprietary upgrade paths controlled by vendor of the
database you bought.

Database "query tools" and "form builders"

People look up to Microsoft's Access as an "application environment" that integrates database management tools,
database query and reporting tools, and database "form" tools. It may be criticized for a lack of stability, but represents
a not unreasonable modern equivalent in the GUI world to xBase.

Cognos sells Impromptu as a tool directed at sophisticated reporting and querying of databases.

Sybase sells PowerBuilder as a somewhat more "industrial strength" alternative to Access , and Imprise has similar
intentions for Delphi.

Some of these products are commercially available for Linux; there are no free alternatives at this time that are
sufficiently wide sweeping in their functionality to be suited for building entire systems.

Messaging/Groupware tools like Lotus Notes

xBase Database Schemes

4 of 9 05/03/2010 06:33 PM
Application Frameworks http://linuxfinances.info/info/framewrk.html

Gedafe

Gedafe (Generic Database Front-End) is an application independent end-user web front-end for databases.
Application independant means, that the front-end doesn't have any information about the structure and contents of the
database.

Database Access Project for OpenOffice.org

Gnuccess

GNUccess aims to provide the Open Source Community with the alternative for using proprietary tools like for example
MSAccess or PowerBuilder. It will allow to create, manage and run database applications.

Gedafe

A web front end to allow developing applications in Perl atop PostgreSQL with minimal intervening layers.

FreeGee

An application framework based on Python , PostgreSQL , wxWindows , GnuPG, OmniORB , and Apache .

DWI -- Data With Interaction

DWI is a fairly simple environment for quickly creating data-driven applications, that is, graphical applications that
manipulate and show info from a database. This environment differs from others in that it is focused on native GTK/
Gnome support through the Glade GUI designer, and thus allows you to build user interfaces as elegant as you can
make them in Glade.

Gemello

Forms front end for applications using Gnome , PostgreSQL , Python .

Andromeda Framework

This uses a CSS-like language to describe the database; you then get to extend this to describe user interface, forms,
and reports.

1.3. XML Frameworks


A number of application frameworks have grown up surrounding the storage/transfer of data in XML form.

Papers about XML and XML Database Systems

XML and Databases

Resulting from this are a number of XML Database systems.

A number of application frameworks have grown up that involve the manipulation of XML documents, whether pulling them
from an XML Database , or from disk files.

Apache AxKit

AxKit is an XML application server for Apache . It works by checking requests to Apache to see if they are for XML
documents. If so, AxKit takes over the processing; if not, it lets Apache continue with its processing.

AxKit processing is done by one or more Perl modules. These can do anything from simply applying an XSL stylesheet
to retrieving data from a database. The modules can be chained together in UNIX pipe-like fashion using one of three
models. First, the XML document can be passed from one module to the next as a DOM tree. Second, it can be
passed as a text string representing the document. Third, the modules can be set up like SAX filters, with each module
acting as a SAX application for the previous module and a SAX parser for the subsequent module.

Primarily uses Perl.

Apache Cocoon

5 of 9 05/03/2010 06:33 PM
Application Frameworks http://linuxfinances.info/info/framewrk.html

JOnAS: Java Open Application Server

Which conglomerates the efforts of Enhydra, France Telecom's Jonathan CORBA ORB, and Evidian (formerly
Bullsoft) Bull EJB, as well as the Java -based DBMS, InstantDB.

Enhydra

A Java and XML Application Server.

A version is available under an "open source" license, although there are reports that "open source" licensing has been
discontinued for the "enterprise" version.

Caucho Resin : XML Application Server

1.4. "Productivity Application" Frameworks


A number of vendors have built "office suites" and provide extension/integration languages in order to allow customizing the
"suite." The following are Windows options:

Microsoft Office

Lotus SmartSuite

There are also some not dissimilar selections for Linux applications:

Angoss SmartWare

NeXS (Spreadsheet)

XeSS (Spreadsheet)

Hewlett Packard Eloquence

A multiplatform deployment of an application framework (probably originally deployed on the HP MPE platform) that
combines:

Integrated CUA-like IDE, graphically-based on MS-Windows, text-based on Linux and HP/UX.

Providing the HP Eloquence programming language that is based on HP Business Basic.

ODBC-accessible database management system.

The Personal Edition is freely available for noncommercial use, allowing up to two concurrent users and a DB of up to
50MB in size.

The product appears to be targeted particularly at German use; conferences and support offerings seem primarily to be
available there.

OMNIS Studio RAD Tool

A component-based system that includes its own object-oriented development language, and an runtime interpreter to
run such code, which integrates with several relational databases (Oracle, Sybase, Informix, DB/2, MySQL™) ,
provides a web-based user interface.

MetaCard Corporation

Produce a system for developing applications using an environment very similar to Apple's "HyperCard" system.

Applixware SHELF

Applix SHELF is an embeddable, full-featured programming language for use with the Applixware office suite. With
SHELF added to Applixware's Extension Language Facility (ELF), application developers will be able to increase
customization and extensibility of their applications by embedding Applixware language in their products.

6 of 9 05/03/2010 06:33 PM
Application Frameworks http://linuxfinances.info/info/framewrk.html

Applix SHELF was released under the GNU Library Public License (LPGL).

Significant properties of the system include

The ELF interpreter emulates a multiregister CPU, performing arithmetic using a stack.

Applications may be implemented using multiple "tasks;" since Applix SHELF runs as a single process, this
means that these "tasks" are what people would commonly term as "user threads."

Memory is allocated on a per-task basis, and there are synchronization primitives so that tasks can be made
pre-emptive by marking thread-safe code.

Methods are resolved at runtime, which means that code may be changed at runtime.

Applix/ELF widgets are layered directly atop Xlib rather than using some other system like Motif (which they had
originally considered) or more recent ones like Qt or GTK.

SHELF sources at SourceForge

VirtuaLaw - An Open Source Legal Case Management System

This system is presently based on Microsoft Access with Visual BASIC as the programming tool; the author intends to
migrate this to run on Linux atop MySQL™, programming mainly using scripting languages like Perl or Python.

As with options related to database integration, these systems are, by and large, not free software, which means that they
cannot be universally deployed with Linux systems. If you pick Metacard as your framework, you have to buy all licenses
from Metacard, and thereby become dependent on their continuing support and good graces.

Some vendors have been known to change directions, wherein lies the potential for grave danger; examples include:

Apple used to sell a personal digital assistant called the Newton. Various vendors had reasonably lively businesses
going selling software and hardware for the Newton platform.

The market opportunity targeted by Newton was not aligned with our new business strategy.

Oops.

Apple, who had billed the "Yellow Box" application framework as something that would allow portability of applications to
MacOS, Rhapsody, and Win32.

Oops. It's not available on Win32 anymore.

Adobe used to license Display Postscript (DPS) as a highly functional crossplatform display system. NeXT had used it
as the display substrate for NeXTStep.

Oops. It's no longer available, which is part of what has given Apple grief in trying to deploy Rhapsody.

The Form Package for SIAG allows building form dialogs in Scheme .

One advantage to using free software is never having to worry about this sort of "Oops."

1.5. Frameworks Atop Messaging Infrastructures


Lotus popularized the notion of building applications atop Notes.

This approach may not be ideally suited to financial applications, where balancing of transactions is critical, but is certainly a
viable approach for building custom systems where work flows involve documents.

Lotus Notes

Citadel/UX

Citadel/UX is a groupware system based on the BBS system Citadel.

7 of 9 05/03/2010 06:33 PM
Application Frameworks http://linuxfinances.info/info/framewrk.html

Casbah

Casbah is a system that intends to provide tools reminiscent of Frontier, with components useful for constructing
distributed applications. It is a "free" project, deploying code using the GPL and LGPL.

HP E-speak

An "Open Source" commerce application platform from HP, running on Java .

This appears to be a Java -based CORBA -like environment... It includes:

A "Core," providing messaging, mediation, security, naming, and service monitoring.

Sounds rather like an ORB, no?

E-Speak Services, that include:

The Advertising Service

Rather like Naming/Trading Services, but which can integrate with LDAP

The Distributed Event Service

Rather like the Event and Notification Services

Logging Service

Policy Service

Process Manager

Tunnel Service

Rather like CORBA Bridges

1.6. Other Tools


Here are some tools that don't seem to fit in elsewhere terribly well...

Data Demand

They are planning to build an ODBC infrastructure for Linux, as well as some sort of Win32 emulation infrastructure for
X, to be available under the GPL.

Seeing as how others are already working on free ODBC drivers, and WINE has received several years worth of
development effort, it is not clear what non-redundant things they have to offer...

Network Application Frameworks

Overview book that discusses the various alphabet soups of

TCP/IP, IP routing, OSPF, BGP4, IGRP/EIGRP, IPv6, and IPv4.

Security: Kerberos, public key cryptography, X.509 certificates and certificate authorities, SSL, IPSEC, and
SASL.

Objects: CORBA, Microsoft COM/DCOM, and Microsoft Transaction Server (MTS)

Directory Services: Windows NT 4, NT 5 Active Directory, NDS, LDAP, and X.500

Microsoft's key technologies and architectures, including WOSA, SPI, WinSock, ADO, UDA, ODBC, MAPI, and
mainframe integration

Novell NetWare protocols, networking techniques, SAP and the bindery, NDS, TCP/IP integration, and
interoperability for versions 3.x through 5.

8 of 9 05/03/2010 06:33 PM
Application Frameworks http://linuxfinances.info/info/framewrk.html

IBM technologies, including SNA, SDLC, CICS, Token Ring legacy integration, and IBM mainframe integration
with Web technologies and TCP/IP

Open Group DCE and RPC

Cursel - an interpreter for building "character user interfaces."

POSSL - Panther Open Source Software for Linux

A framework for building client/server apps using Java and JavaBeans.

Mono

Monois intended to be a free software implementation of the .NET Development Framework, including a compiler for
the C-Sharp language, as well as implementations (to work with Gnome ) of the crucial APIs.

ProvideX

An application deployment system that runs on Windows and Linux. The base language looks like something of a cross
between BASIC (for syntax) and COBOL (for the network data model).

Prev Home Next


Some critical CTS stuff Up Wild-Eyed Ideas

System Integration Nokia 5800 Apps Store Easy Web Services


Integrated embedded products and Download Nokia Apps For Free! Enhance your iSeries apps with
sub-systems -- in any volume. Just Register At The Ovi Store Now. Web Services, SOA & Composite
www.elma.com/us store.ovi.com apps.
www.looksoftware.com

If this was useful, let others know by an Affero rating

Contact me at cbbrowne@gmail.com

9 of 9 05/03/2010 06:33 PM

Das könnte Ihnen auch gefallen