Patterns for Personalized Web Applications

In this paper we present some patterns we mined in Web applications that present some kind of personalized structure or behavior. We first introduce the growing need to include personalization features in Web applications and present a taxonomy for reasoning about design structures for personalization. Finally, we present 4 personalization patterns: Link Personalization, Content Personalization, Structure Personalization and Remote Personalization Introduction and Context Building personalized Web applications, i.e. those applications that are responsive to the individual needs of each user or group of users, is a challenging task. It involves a myriad of different technologies that range from simple database views to software agents and collaborative filtering algorithms. Personalization has become hype in areas such as electronic commerce, and we can find hundreds of applications that claim to be fully customizable to different user profiles or individuals. The number of possible personalization variants seems countless. As with other Web features, a great variety of technologies and systems have been developed and are available in the market [CACM00], but little or no attention has been paid to the process of modeling and designing personalized Web applications. In the past five years we have been mining patterns for different aspects of Web applications such as their navigation topology [Rossi99a, Rossi99b], their interfaces [Rossi00a]. Some patterns are specific to particular application fields like e-commerce [Rossi00b] or to particular aspects like searching [Lyardet99]. In all cases, our Web patterns are more similar to Alexandrian [Alexander77] patterns than to [Gamma95] patterns as they are not described as collaboration among objects but as navigable design structures (as Alexander’s urban structures). The context in which we mined this patterns is the Object-Oriented Hypermedia Design Method (OOHDM) approach [Schwabe98] though they can be obviously used with other methods. In OOHDM a Web application is conceived as a hypermedia view on an object model. This view comprises nodes (the objects that the user will navigate), links that conform the navigation topology, navigation contexts that represent sets to be navigated sequentially and different kinds of indexes. As with object-oriented patterns, hypermedia (and Web) patterns go beyond the naive use of the basic theoretical concepts. These patterns indicate how to build usable hypermedia topologies by creating elaborated structures. The purpose of this paper is to present some recurrent design structures we find while exploring and building personalized applications. Patterns for personalization can be analyzed from different perspectives. For example we can think about object-oriented patterns usually found in these kind of applications. By the way many [Gamma95] patterns are useful in this context; for example using Strategy we can assign different algorithms for finding recommendations to different users in an electronic store. Decorators can be used to assign different access privileges in a Web application, etc (See [Rossi01]. Personalization can be analyzed also from the point of view of how it is perceived by the user (i.e. how the personalized interface looks like) or how personalized features are generated (e.g. chosen by the user or automatically). In this paper we chose to present some patterns that are based on what it is customized more than how it is done. They present a rather coarse granularity so they can eventually be refined in specific applications as it is shown. They show different kind of personalization that one may usually find in successful web applications. Link Personalization