(This file in in Version: 1.1 and was last edited by: Marcus Wolchon <Suran@gmx.net>)


	Jaugment II (second and final try)
	
This is a framework mainly for applications that are to
fulfill the special needs of a wearable environment.
Application in this context are assumed to services that
have one or more representations and that, if they are
Managable JINI-services can accept new third-party
representations of themself.

		History

The first version used it's own way of loading and executing
application, but as JINI already provides most of the code
needed here in a much more powerfull implementation the first
code was given up. The old (single) UI became the new reference-
implementation of a UI were you can have multiple UIs at the
same time and UIs can pop up and disapear art any time (think
about taking out a not-always-present display or moving near
a conventional terminal).

		UIs at work
		
The reference-UIs merely use a bean providing nearly all the
work a UI needs, this was done to simplify the creation of new
UIs as multiple of them will be written. At startup a few
services are loaded as configured by the jaugment2.conf -file
and invoked in one of (at the time of writing) 3 ways. This makes
it possible to start up everything (a local JINI-comunity and a few non-JINI-
services (An application does not have to be a JINI-service, yet
it is recommend and easy to do)) by just starting one of the UIs.
It then looks up services acording to a search-profile of services
the UI can represent and invokes them by triing multiple invoker-
classes. UIs are ment to be used concurrently and dynamically apear
and go, so you can e.g. use a TextUI with speech-recog. and
synth. and then take out a PDA and all the applications you use
will be displayed (if possible) on the PDA too.

		applications

An application registres itself with either all lookup-services
found by discovery or with a special local lookup-service it gets
by a special constructor. This helps with small devices not capable
of running multiple JVMs and maybe having no network at all.
In fact if you are using only one UI you do not even have to run
a lookup-service as applications started up from the configuration
are threaded like applications found by lookup. 
The representations of a service are stored as it's attributes
and the JINI-proxy of a service is recommend to be administratable
and allow new attributes to be added. (This is recommend anyway to
be a good JINI-citizen.)

		why JINI

Because with JINI the software of a wearable can be pretty dynamic.
You have heard of the comming and going of UIs, this also aplies
to services. Imagine comming near a radion-lan access-point and a
second later having the aditional abilities to recognize and
translate texts by using a text-recognizer running somewhere on the
local network and a translation-service on the web. Or using a local
route-planner while disconnected and being able to use better maps
and the time-tables of your local public-transport while connected
with no administration (what is a major benefit from using JINI).
And of cause not much aditional code needs to be written except
the new services and UIs. JINI-services can be easily integrated and
even be used by the UIs as represenations as Components as an
attribute or a bean connected to an attribute is the default-way of
storing a JINI-sercices representation.

		Hardwear
		
For the first developement I (Marcus Wolschon <Suran@gmx.net>) am using
a normal Laptop and a headset and (now new) a PDA with a self-written terminal-
program. A head-mounted display is nearly finished and a new data-glove is
too.

		License
Whereever possible LGPL but some sub-projects use code that cannot be used
with that license and thus is to be seen as a different programm using this
infrastructure but being relreased under a different license.


		Code-guide
	code:
The version2-code is to be found under /src.
The old code is under ../old and ../subprojects
 and will eventually vanish as more
and more applications and services are ported to version 2.

For understanding the code "jaugment2.UI.textUI.TextUI" is a good starting-point.

	starting it up:

----------1 UI only:

1)
edit  ../src/Makefile.in to suit your pathes
 (*ix)
or TextUIText/SwingUITest.bat for Windows*
2)
simply run ../bin/TextUITest, the default-config should take care of everything
or ../bin/SwingUITest.sh

----------multile UIs:

1) start JINI: httpd,rmid,lookup (you can use the)
"%JDKDIR%\bin\java" -cp %JINIDIR%\lib\jini-examples.jar -Dcom.sun.jini.example.service.rootDir=d:\Data\projects\lib\jini com.sun.jini.example.service.StartService

2) start it up
../bin/TextUItest
../bin/SwingUITest

	You need: 
@see ../www/index.html	

		Comments
		
For comments please contact Suran@gmx.net.
For announcements for projects/diffs using this code jaugment-announce@jini.org		

		People
		
Marcus Wolschon	- maintainer, wrote version 1 and the first code of version 2
--others to be added soon, mail me if you are missing--
