(abbreviation for Home
Audio Video
Interoperability)
A (the?) standard for interconnecting
consumer electronics (CE) equipment in the home in an IHDN.
Developed by eight major CE companies (Grundig, Hitachi, Matsushita,
Philips, Sharp, Sony, Thomson, Toshiba) to prevent Microsoft from
extending its monopoly to the living room (what Microsoft now tries
with UPnP anyway).
HAVi specifies a common fully-distributed middleware platform for a
peer-to-peer environment, a common network (IEEE
1394), standard commands to control CE devices and a way for devices
to provide configuration information, drivers and applications to the system. Using the standard, any compatible CE device can control another
independent from vendor, so e.g. a Philips TV can command a Sony DVD to start streaming the content of the DVD, a Technics Surround Sound system to
play the audio and a Thomson VCR to stop and rewind, all done by e.g.
the Home Cinema Application. Also, the fully-distributed architecture
does not require one to buy an (expensive) central node to start.
(More praise can be found on their website, which is - not
surprisingly - http:\\www.havi.org)
First HAVi devices will probably not
appear before 2001.
HAVi has concentrated on CE interoperability and can therefore provide CE-specific device APIs
and middleware services while other initiatives (e.g. UPnP, Jini) don't (yet). It currently lacks means for doing home control and
computer periphery integration (to e.g. print the web page currently
viewed). It is hampered by being based currently only on IEEE 1394, which better fits the job than IP-based solutions but is less common.
Some technical details (simplified!):
HAVi's middleware provides
several services:
Messaging System: Eases the
sending of commands and information across the underlying network.
Registry: Stores
information on all available devices and all running software in the
system.
Event Manager: Distributes
system or application-generated events to subscribers.
Stream Manager: Builds up,
maintains and closes down media streams between devices.
Resource Manager: Allocates
devices on the request of user/applications. Allows preemption
(with or without previous negotiation) and scheduled actions (i.e.
commands to be executed in the future).
DCM Manager: Loads device
drivers (called DCM: Device Control Module) at start-up or after
plug-in from the devices. DCMs then provide the standardised API to
control the device but may themselves communicate to their
respective devices proprietarily.
HAVi partitions the devices
possibly connected to the system into four classes:
FAV (Full A/V node): These
provide all the middleware services, contain a Java Virtual Machine (JVM)
to execute devices drivers and applications, and normally will have
a means to display graphics and video. Most probably TVs and set-top
boxes will be FAVs.
IAV (Intermediate A/V
node): IAV are similar to FAVs but lack the JVM and therefore can't
generally load device drivers or applications from devices (might do
via proprietary means, e.g. from a CD, though). Also IAVs might have
no display under their control.
BAV (Basic A/V node): BAVs
don't run HAVi middleware services but only provide a downloadable
device driver as DCM and some self-describing data (SDD). You need
at least one FAV which can load the DCM or one IAV with an
appropriate DCM already installed to use a BAV. Typical candidates
for BAVs are VCRs, digital cameras, mp3 players, ... .
LAV (Legacy A/V node): A
device, which does not know about HAVi at all (but provides a 1394
plug). Since an LAV device does not provide its own device driver it
can only be used if an FAV or IAV in the system knows its type and
has a DCM already available. An LAV without a 1394 can also work if
care has been taken in an IAV/FAV to which it proprietarily connects
(though it will not appear as an own LAV node but only as subpart of
the IAV/FAV). Examples are current day CE equipment.
Much more information (including the
spec and FAQs) can be found on http://www.havi.org .