Wizard API updated!
Tim Boudreau has released a new version of the Swing Wizard library (version 0.997) that fixes the WizardException bug reported in JavaWorld's recent Open Source Java Project profile. The article's examples have been reworked to test out the new, improved WizardException. Thanks, Tim, for this helpful fix!
Open Source Java Projects: The Wizard API

Newsletter sign-up

Sign up for our technology specific newsletters.

Enterprise Java
View all newsletters

Email Address:

Tapestry: A centralized user management system

Simplify application development with a ready-to-use centralized user management system

You are a developer embarking on an ambitious project to create the grandest and most powerful visionary system in the world. After designing the most amazing architecture and laying out the most meticulous plans, you start to assemble the necessary components to begin the project. But which module do you deal with first?

Discounting utilities and similar applications, most systems need to identify their users. Without this ability, a system would be incapable of ensuring its own security. Further, it would not be able to provide appropriate access levels, personalized services and functions, or usage tracking. User identification proves critical, especially in enterprise systems, systems built for businesses, and generally any system that needs to have accountability for its users. Unfortunately, it is also the most often overlooked feature during systems development.

This article describes Tapestry, a centralized user management system that allows developers to reuse the same set of users for every application system they build. Tapestry is a work in progress. For more information, visit the Tapestry Website.

After reading this article, you will be able to:

  • Understand why it is easier and more productive to employ a centralized user management system compared to other schemes
  • Understand what Tapestry provides for you as a developer
  • Learn more about Tapestry's design and architecture


User management

When creating application systems, whether client-server or Web-based, the first module to be developed usually concerns user management. Some application systems hook themselves with the operating system or database management system to provide this function. Others develop their own user management and tracking capabilities. Indeed, no single converging standard exists for user management because most are proprietary and not usable beyond similar platforms or systems.

User management's ubiquity underlies its importance: every system needs to create and manage users, to control access, and to configure who can use or administer it. The user management module represents one of the most necessary modules of any application because an application's whole premise centers on its value to users.

Naturally any module with such critical and essential functions needs to be robust and fail-safe. An application system without a running user management module is for all practical purposes crippled.

Considering its importance, it is quite surprising to realize that most, if not all, applications create their own user management system, often from scratch. From the arguments given above it would be logical to assume that reuse of a common user management module (see Figure 1), either built new or as a centralized user management platform, would be a better choice for development in a new system. Besides reducing development time, the developers of the new system would have the advantage of a tried and tested user management module to rely upon.

Figure 1. Centralized user management



The advantages of a centralized user management system include:

  • Development time is reduced because there's no need to reinvent the wheel.
  • A ready-for-deployment user management system allows developers to concentrate on the business application.
  • In an enterprise environment consisting of many systems, each system does not need to manage its own set of users; a separate system is dedicated to managing all its users, which allows for separation of tasks.
  • A single sign-on system in which all applications that use the separate user management component would have one single login and password. User management and security authentication would be cleanly and modularly decoupled from the application itself.


However, separation of user management from the application logic proves more difficult than it looks. The initial euphoria stemming from the benefits will soon bring doubts as to how realistically it can be achieved.

Development approaches

So how can we create a centralized user management system that circumvents the issues highlighted above? There are three approaches:

  • Ground-up approach
  • Framework approach
  • Central server approach


The ground-up approach

With the first approach, we build the user management from the ground up by embedding it within each system. Ground up represents the most common method, with each application system possessing its own user management. One drawback: the different application systems cannot communicate user information with each other, resulting in isolated islands of automation. Application systems work perfectly well with their respective user management modules because they are tailored specifically to them. However, integration is a major issue, which frequently plagues most enterprises.

The framework approach

The second approach uses frameworks, an abstract collection of software objects dedicated to solving a class of problems through a flexible and extensible architecture. It is prefabricated software that can be reused, extended, or customized for specific computing requirements. Frameworks have no real infrastructure, so building new systems can be as flexible as necessary. However, the framework approach takes some upfront work. After all, nothing concrete has been built yet, although a significant amount of infrastructure has been laid. In the end, overall development time is reduced and, because the framework standardizes access to the user data, there is a certain level of uniformity. Frameworks are usually tried and tested as well.

However, frameworks are white-box tools and the reuse favors extensibility, not direct usage. As such, you will still need to build a user management system, although it will move along faster. You'll still need to understand its internal structures, and the learning curve can be steep.

The central server approach

The third approach employs a central server, actually the single-server, multiple-client approach widely used for client-server systems. In this case, a central user management server controls all user information, with client systems requesting the information from the user management server. The advantages: the application system is decoupled from the user management module, and user management is controlled at a single point of access. Moreover, it is much easier to develop with a central server approach since the developer does not need to create the user management module at all.

1 | 2 | 3 | 4 | 5 | 6 | 7 |  Next >
Resources