We propose a new approach to programming web applications that increases the web's computational power, the web's flexibility, and web programmer productivity. Whereas web servers have traditionally been responsible for producing all content, intermediaries now provide new places for producing and manipulating web data. We define intermediaries as computational elements that lie along the path of a web transaction. In this paper, we describe the fundamental ideas behind intermediaries and provide a collection of example applications. We also describe WBI, an implemented architecture for building intermediaries that we have used to construct many applications, including personal histories, password management, image distillation, collaborative filtering, targeted advertising, and web advising.
Rob Barrett, Paul P. Maglio