PAMWeb is a simple application framework and a set of pluggable modules for quickly constructing web applications. The main goal is to provide a proper infrastructure for the development of independent ready-made application modules as well a comprehensive set of such modules that a programmer can assemble or plug into their application. For example, almost all web sites and applications need some form of user profile management with login/logout/register functionality as well as some form of permissions management where users are allowed access only to certain resources. A web site will often have a FAQ section, a news section, perhaps some only message boards etc. All these pieces of functionality can be abstracted into separate, configurable modules.

Such modules can be presented as portlets in a portal environment, or assembled in a standard web application.

Key Facts

  • The architecture is a classic 3-tier. A shortcoming is that the persistent layer is somewhat sloppy compared to such excellent tools as Hibernate for example. However, it can be replaced as its API is not intrusive.
  • UI layer is using TICL, which allows for very concise and flexible expression on style, layout and behavior.
  • The framework includes a simple meta-model for dynamic typing of objects. Ralph Johnson document a Type Object pattern some time ago. This follow this idea, easily expressible in Java. Dynamic types are like records created at run-time and attached to persistent objects. Each dynamic type is made up from a set of dynamic properties, each typed on its own. A dynamic property has an editor and a viewer associated with it. Etc.
  • The user management module is fairly complete and advanced. It has been used in several commercial projects. It includes a sophisticated permissions management sub-system that has proven practicle and flexible.
  • The forums module is quite flexible as well. Combined with the categorization module, the message/forum abstractions are general enough to solve most content management problems.

Get It

PAMWeb is available only in source form, from the following Subversion URL:

Use your favorite Subversion client to access it. Let us know if you are using it!