Next: Communication Adapters
Up: CANS Components
Previous: Type-based Composition
The second core CANS component are services. Unlike drivers
that represent rigidly constrained, mobile, soft-state adaptation
functionality, services can export data using any standard internet
protocol (e.g., TCP or HTTP), encapsulate more heavyweight functions,
process concurrent requests, and maintain persistent state. The
different interface requirements of drivers and services stem from the
observation that most current services distributed in the internet are
legacy in nature: their source code is general unavailable, and
rewriting or modifying them is impractical. The price paid for not
adhering to a standard interface is that unlike driver migration, CANS
does not explicitly support service migration; a service individually
determines how it manages its own state transfer. This design choice
reflects the view that services are migrated infrequently and doing so
requires protocols that are difficult to abstract cleanly.
CANS provides applications with a general platform to create, compose,
and control services across the network. A service is required to
register itself identifying the data types it supports, optionally
providing a delegate object that can control the service and act
on its behalf in interactions with the rest of CANS. The delegate
object implements a standard interface consisting of activating and
suspending the service, and receiving CANS events. Service
composition is similar to driver composition, using types supplied at
registration time.
Next: Communication Adapters
Up: CANS Components
Previous: Type-based Composition
Weisong Shi
2001-01-08