A data processing system includes a network containing of a set of connected
devices,
where individual ones of the connected devices include a data processor that executes
a program for connecting to and disconnecting from the network and for maintaining
a first list descriptive of other connected devices and a second list descriptive
of at least some user-defined services published by individual ones of publisher
connected devices that form a first sub-set of the connected devices. Individual
ones of the publisher connected devices maintain a third list descriptive of an
individual one or individual ones of registered service subscriber connected devices
that form a second sub-set of connected devices. The publisher connected devices
provide a service output to registered service subscriber connected devices upon
an occurrence of at least one predetermined triggering event, which may be a push
trigger, a pull trigger, or a combination of push and pull triggers. A given one
of the connected devices may be a member of only the first sub-set of connected
devices, or may be a member of only the second sub-set of connected devices, or
may be a member of both the first sub-set of connected devices and the second sub-set
of connected devices. The set of connected devices are logically organized into
a plurality of clusters each having a top level connected device (TLCD), where
the plurality of TLCDs are coupled together in a ring for propagating system administration
information between the plurality of clusters. Services remain operative even after
the connected device on which they initially reside becomes inoperative. This is
accomplished by migrating the publication function to at least one other connected
device when a current publisher's connected device becomes inoperative for any
reason. A backup of last resort is referred to as a persistent connected device.