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.
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.
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:
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.
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.
Including coverage of Oracle, Solaris, AOL Server...
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.
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 is a multi-paradigm content integration language reminiscent of Lisp.
Scheme to separate web apps into HTML and application, allowing one group of non-programmers to write web pages, and another group write software.
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.
an extensible, scalable and easy to use application server written in Python .
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.
They sell systems based on a Linux/Apache/MySQL™ framework...
Achievo ATK is an object oriented Web-application Framework, written in PHP .
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.
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.
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
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.
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.
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.
This uses a CSS-like language to describe the database; you then get to extend this to describe user interface, forms, and reports.
A number of application frameworks have grown up surrounding the storage/transfer of data in XML form.
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.
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.
A version is available under an "open source" license, although there are reports that "open source" licensing has been discontinued for the "enterprise" version.
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:
There are also some not dissimilar selections for Linux applications:
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.
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.
Produce a system for developing applications using an environment very similar to Apple's "HyperCard" system.
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.
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.
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.
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.
Oops. It's no longer available, which is part of what has given Apple grief in trying to deploy Rhapsody.
One advantage to using free software is never having to worry about this sort of "Oops."
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.
Citadel/UX is a groupware system based on the BBS system Citadel.
An "Open Source" commerce application platform from HP, running on Java .
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
Rather like CORBA Bridges
Here are some tools that don't seem to fit in elsewhere terribly well...
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...
Overview book that discusses the various alphabet soups of
TCP/IP, IP routing, OSPF, BGP4, IGRP/EIGRP, IPv6, and IPv4.
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.
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."
A framework for building client/server apps using Java and JavaBeans.
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.
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).
If this was useful, let others know by an Affero rating