110 likes | 123 Views
Explore the evolution of computing from single-user to ubiquitous systems, delving into lean, thin software for handheld devices. Delve into lean software principles with UNIX philosophy, adapting to user and device context. Discover the potential of componentized software and fast execution in small devices. Uncover Hong Kong University projects focusing on code and content adaptation technology.
E N D
fcmlau@csis.hku.hk Content and Code Adaptation for Small-Device Computing Francis C.M. Lau Department of Computer Science & Information Systems The University of Hong Kong PDCAT 2003 • Chengdu, China
Popular Computing • 70’s: one computer, many users • 80’s: one computer, one user • 90’s: many (connected) computers, many users – distributed computing • 21st Century: many computers, one user • … many computers, connected and disconnected, one user, many users … – ubiquitous computing
My Future Handheld • All in one: phone, PDA, wallet, game console, remote terminal, ad-hoc networking … • That means a lot of software – big and fat!? • But what I really want is lean and thin and mean • Lean – simple software which does only what I want • Thin – that’s all the space in my pocket • Mean – affordable
Lean and Thin Computing • The (thin) client-server paradigm, works but in limited ways • Too thin: a browser-only device, a remote terminal … • Future devices are more powerful than just that
Rich Computing • The Internet as the big “hard disk” • Not just contents, but software come and go on demand • Pay-per-use subscription model • Browser plug-in’s and Java applets – not lean enough, and some require just too much resources • Software in terms of “functionalities”
Remember UNIX? • Small is beautiful • Make each program do one thing well • Choose portability over efficiency • Store data in flat ASCII files • Avoid captive user interfaces • Make every program a filter • …
UNIX Philosophy Applied • Small software components implementing single functionalities • Bigger functions runtime-composable from small components • Download on demand, and disposable • Standard formats and interfaces (eg. XML) • Shared GUI
Awareness and Adaptation • An intelligent supporting architecture • Aware of the come and go of mobile users • Choices of functions, depending on situation: the location, the device, the user, … • Fast reacting nearby proxy • Proxies united, within certain locality
The “Edge” is Getting Thicker • Person – device – middleware (proxies) – Internet • The abstract cloud moves with the client – personalized “cuddleware”, nomadic computing Internet proxies united metropolis client
Componentized Software • Executable code as puzzle pieces • Fast start, like contents • Software download pipelining – first-come-first-execute, the most needed functionalities first
Two HKU Projects • The Sparkle Project – “code adaptation” • PDF document content adaptation system – “content adaptation”