The Ninja architecture for robust Internet-scale systems and services Steven D. Gribble * , Matt Welsh, Rob von Behren, Eric A. Brewer, David Culler, N. Borisov, S. Czerwinski, R. Gummadi, J. Hill, A. Joseph, R.H. Katz, Z.M. Mao, S. Ross, B. Zhao Computer Science Division, University of California, Berkeley, CA 94720-1776, USA Abstract The Ninja project seeks to enable the broad innovation of robust, scalable, distributed Internet services, and to permit the emerging class of extremely heterogeneous devices to seamlessly access these services. Our architecture consists of four basic elements: bases, which are powerful workstation cluster environments with a software platform that simpli®es scalable service construction; units, which are the devices by which users access the services; active proxies, which are transformational elements that are used for unit- or service-speci®c adaptation; and paths, which are an abstraction through which units, services, and active proxies are composed. Ó 2001 Elsevier Science B.V. All rights reserved. Keywords: Distributed systems; Scalable services; Pervasive computing; Thin clients; Ninja architecture 1. Introduction The emerging Internet landscape is populated by rich services of immense scale that are oered to a diverse spectrum of clients. This presents exciting opportunities for innovation in the kinds of ser- vices that can be created, but also presents tre- mendous design and engineering challenges. The traditional suite of information stores, commerce sites, network services, and search engines are be- ing combined in novel ways to provide new ser- vices that aggregate and transform many sources of information. In addition, services are presenting themselves in a multitude of forms to match the particular capabilities of PCs, PDAs, Webphones, and other devices; this adaptation to diversity raises new notions of service composition and content transformation. Moreover, these new ser- vices may be utilized by millions of users. In this opportunity for innovation and vast delivery lies a deep engineering challenge: a suc- cessful service may need to scale to huge levels of load over a short period and it must be continu- ously available. The Ninja project seeks to address these two goals ± enabling broad innovation of service design and easily constructing scalable, robust services ± through a distributed service ar- chitecture that deals with huge throughput de- mands and availability requirements in a generic fashion, while facilitating service composition. Computer Networks 35 (2001) 473±497 www.elsevier.com/locate/comnet * Corresponding author. Present address: Department of Computer Science and Engineering, University of Washington, 114 Sieg Hall, Seattle, WA 98195-2350, USA. Tel.: +1-206-685- 1958. E-mail address: gribble@cs.washington.edu (S.D. Gribble). 1389-1286/01/$ - see front matter Ó 2001 Elsevier Science B.V. All rights reserved. PII: S 1 3 8 9 - 1 2 8 6 ( 0 0 ) 0 0 1 7 9 - 1