Most architectures for home audio-visual systems are based on a local model, where all generators (e.g. TV tuner card) and consumers (e.g soundcard) are all on the same machine. One of the few exceptions is ... who describe a distributed architecture built in C++
This paper describes a service architecture using Java as programming language and Jini for the base distribution layer. While similar in many respects to the ... system, it benefits greatly from a more appropriate choice of language and distribution layer. We also extend the architecture by "stress testing" in a novel way: a current iPod can store 10,000 MP3 files and play any one of them; we investigate the issues in making 10,000 such files available as distributed services. We look at the memory and bandwidth issues involved and how these can be minimised
In a normal service architecture, creating 10,000 services will create at least 10,000 objects. In Jini 2.0 using Jeri, this number will be substantially larger: the programmer will need to create an exporter for each service, and generate a proxy for each service. Behind the scenes, many more objects may be created.
We tested the memory requirements for such a large number of objects by writing a server which just created an object 10,000 times, created an exporter and proxy and exported the proxy. The results are shown in table XXX. Using a "larger" object, we got table XXX.
We did these tests with normal services, and then with Activatable services.
Using activatable services requires use of an activation server such as
rmi
. Using activation means that the memory load is placed into
the activation server, which caches services on disk and reactivates them at
need. The figures involving service memory use, activation server memory use
and activation server disk use are given in table XXX
Robin: depending on results, you may be able to say: no problems, or we need to put in place a new memory management scheme
Managing 10,000 services will put memory and processing load on the lookup service. These are given in table XXX.
Each service will have an associated lease. Jini normally gives about 5 minutes per lease before it needs to be renewed. 10,000 leases will need renewal at the rate of about 30 leases per second. The network traffic will be ... and the processor usage will be ... (There should be figures for lease renewal for DHCP for comparison - someone must have studied DHCP o'heads for large networks).
Not a part of the memory load, but how do you organise 10,000 MP3 files so that users can find the track they want? Apple clearly know how to do it for files. How could this translate into service organisation? Robin: is there room in the FITR budget for an iPod?