David Ness
Mind / Matter

Categorizing Web Services

By David Ness
Wednesday, November 20, 2002

I find myself increasingly confused by the bewildering number of pieces of software / systems that are used for delivery of services. The following represents the current state of collected knowledge about these things, presented here in the hope that it will gradually be corrected. Note that this information is sketchy at best, and probably downright wrong in some cases.

I have categorized the items present in these charts, but would be interested in suggestions about a better category structure as well. My thanks to the helpful readers who have helped me correct some mistakes and add further entries.

Services

Blog / Site Managers
Item Purpose Function
Antville Antville uses Helma/HOP to deliver Blog Services. You write stories, Antville presents them in a sequential blog.
CityDesk CityDesk is Joel Spolsky's web page publisher.

You write HTML, this delivers it to your site which then serves it .

Frontier Frontier is one of David Winer's web page publishers. This is the expensive version, presumably designed for large sites with multiple users.

You write HTML,  this delivers it to your  site which then serves it .

Interaction Interaction ??

??

Radio Userland Radio Userland is another of David Winer's web page publishers. Apparently it is like Frontier but is oriented to the single user, smaller site problem.

You write HTML, this delivers it to Userland (or your own  site) which then serves it .

Vanilla Vanilla is Chris Lanreiter's ( Rebol based) site scripting language. It generates a conventional `Daily Blog' but emphasises Wiki-like cross-referencing via snips . You can run a Blog service on your machine ( Apache , Rebol , Vanilla ).

Base Languages for Applications
Item Purpose Function
C# C# is the Microsoft solution to the problem of low level coding for .Net . C# is a modern, object-oriented language allowing low-level access to resources.
Java Java
Perl Perl is a full-scale computer language that happens to function quite well as a Web-site services provider. Multi-purpose programming language. Can deliver applications if Server supports it. Is probably the most or 2nd most widely used.
Python Python is a full-scale computer language that happens to function quite well as a Web-site services provider. Multi-purpose programming language. Can deliver applications if Server supports it. Is probably the most or 2nd most widely used.
Rebol Rebol is a full-scale computer language that happens to function quite well as a Web-site services provider. Rebol provides the basic underlying services for Vanilla and other systems. Multi-purpose programming language. Can deliver applications if Server supports it.
Ruby Ruby is a full-scale computer language that happens to function quite well as a Web-site services provider. It seems to be closely related to Phython but has strong OOP capabilities Multi-purpose programming language. Can deliver applications if Server supports it.

Mid-Level Languages for Applications
Item Purpose Function
Helma/HOP Helma / HOP ( H elma O bject P ublisher) is a Object Publisher that uses MySQL to deliver `objects' to programs written to handling web publishing problems.
PHP PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML . It thus can deliver `dynamic' HTML pages. Works with MySQL or other SQL s Delivers DHTML pages which can be constructed out of MySQL stored data. Therefore, it implements a scripting language that looks a lot like perl (or Python ).
Spyce Spyce is a scripting language that delivers a dynamic Python scripting capability inside HTML pages. See SourceForge for more detail. Implements DHTML capability in a straightforward way.
Zope Zope is an object-oriented web application server that is managed through a web interface. This interface allows you to add and manipulate Zope objects. Zope 's managment interface is extensive. However, its ability to help in the task of editing templates is quite limited.

So Far Uncategorized
Item Purpose Function
Ant I think Ant implements a cross-platform MAKE like facility for Apache .
Apache Apache is the definitive open source Web-Server.

Castor

A persistence framework by Exolab
Commons (Jakarta) Collections, utilities
Cocoon

Apache Cocoon is an XML publishing framework that  uses XML and XSLT technologies for server applications. Cocoon offers an environment based on the separation of concerns between content, logic and style. A centralized configuration system and caching support XML server applications.

Cocoon interacts with data sources, including: filesystems, RDBMS, LDAP, native XML databases, and network-based data sources. It adapts content delivery to the capabilities of different devices like HTML, WML, PDF, SVG, RTF. Cocoon currently runs as a Servlet or from a powerful commandline interface.

Commanche I think Commanche is a graphical front-end for Apache .
HSQL Small but powerful Java database by Thomes Meuller
Iowa Iowa is a set of classes in the Ruby programming language designed to facilitate the development of applications with html interfaces. All Iowa code is written in Ruby , a dynamic interpreted language.
Jakarta Jakarta appears to be an unbrella for a number of sub-projects. Among them are Tomcat , Velocity and Turbine .  (Not Relevant)
Lucene (Jakarta) Lucene is a high-performance, full-featured text search engine written entirely in Java . It is a technology suitable for nearly any application that requires full-text search, especially cross-platform.
Mason Mason (http://www.masonhq.com/) is a powerful Perl-based web site development and delivery engine. With Mason you can embed Perl code in your HTML and construct pages from shared, reusable components.
.NET

Microsoft .NET  is a set of software technologies for connecting information, people, systems, and devices. It enables integration through the use of XML Web services via the Internet.

Netbeans Integrated Dev. Environment
Roller Roller  fits into the relatively new category of software called webloggers : applications that make it easy to maintain a weblog.
Struts (Jakarta) Struts provides its own Controller component and integrates with other technologies to provide the Model and the View . For the Model , Struts can interact with any standard data access technology, including Enterprise Java Beans, JDBC, and JNDI. For the View , Struts works well with JavaServer Pages, Velocity Templates, XSLT, and other presentation systems .
Tomcat (Jakarta) Tomcat is the servlet container that is used in the official Reference Implementation for the Java Servlet and JavaServer Pages technologies. The Java Servlet and JavaServer Pages specifications are developed by Sun under the Java Community Process.
Turbine Turbine is a servlet based framework that allows experienced Java developers to quickly build secure web applications. Parts of Turbine can also be used independently of the web portion of Turbine as well.
Velocity (Jakarta) The Velocity Template Engine renders data from within applications and servlets. Primarily used to develop dynamic, servlet-based Websites. Velocity 's separates template and Java code for Model 2-style Model-View-Controller (MVC) Web development. A general template engine, Velocity suits many other purposes, such as code generation, XML generation and transformation, and textual stream processing. 
XDoclet Code generator by Dreambean
Xerces XML parser

David Ness' summary of work can be found at http://mywebpages.comcast.net/dness

This represents our current understanding. It should be taken with a grain of salt, and is not definitive.

Home