Activities

No upcoming events

Intelligent Systems Lab Project: Information Lens

Participants

Supervisors

Motivation

In order to deal with these issues we invented Information Lens!

Application Scenario

Imagine Ralf has joined a brand new ISY project. To develop an Android app for a webservice he wants to know where some of the HTC Desire mobile phones are. So he remembers "Information Lens" which has been installed in the ISY Lab since summer term 2011. He opens the InvenStar Manager, that is a Java based GUI to get an overview about the stored objects in the database. After searching for "HTC Desire" he finds one that has not been reserved yet. Now he is the proud "owner" of this Android phone.

When Ralf has finished his work he wants to give back his phone. But some furniture had been repositioned so the default position of the HTC has to be changed. For this task he sets the new position in the InvenStar app which is installed on every new Android phone in the ISY Lab.

Among all users they can use the InvenStar app to display information of objects which have been added to the database, e.g. the description (i.e. technical data or important facts), related notes from other users with the possibility of adding attachments (photos), defects, reservations of groups or users, and the default as well as the current location.

Objectives

The project goals are

Description

Information Lens consists of several components:
Name Description Used technologies
Frontend
InvenStar The Android app that is a client for the InvenStar Webservice Android
InvenStarManager The Java-based GUI which is a client for the InvenStar Webservice. It provides more features than the Android app. Java, Swing
InvenStarXCF The ActiveMemory server that can be called from synergy projects. It provides methods to get information of objects from the database. Java, XCF
Backend
InvenStarDA The REST webservice which serves the requests for the clients (data accessor). Java, JAX-WS
InvenStarDW The data wrapper which communicates with the database. Java, C3P0, Hibernate, MySQL
InvenStarSerializer Some implementations of classes that are used in several components (e.g. object serialization). Java, Hibernate, Simple

The backend layer can be accessed from the frontend components via XML. For this purpose, a webservice implementation called WebServiceImpl has been developed.

Installation

Dependencies are: To start the backend, the database has to be installed. Let's assume we have a MySQL server running at "moep". The database "il" can be accessed from user "joe" with "123" as password. Change the file hibernate.cfg.xml from:
<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1/isy</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.hbm2ddl.auto"></property>
to:
<property name="hibernate.connection.url">jdbc:mysql://moep/il</property>
<property name="hibernate.connection.username">joe</property>
<property name="hibernate.connection.password">123</property>
<property name="hibernate.hbm2ddl.auto">create</property>
Now recompile the InvenStarDW and InvenStarDA. After deploying the InvenStarDA with glassfish, call a method like "http://moep/InvenStarDA/de.unibi.informationlens.rest/WebService/getAll/ILObject/&userid=0". Now, some tables should have been written into the database. To assure that the tables won't be overwritten if a redeploy occures, set the value of the property "hibernate.hbm2ddl.auto" back to the empty string ("") and recompile InvenStarDW and InvenStarDA.

Results

The video shows the basic functionality of the handheld client, i.e. the Android app "InvenStar". In the end an outlook related to Bluetooth communication is presented. This can be used in the future to commit the pre-defined localization of objects by Bluetooth beacons.

Discussion and Conclusion

The usage of QR codes allows for a stable identification of objects which is why this type of code is preferred to other types (e.g. bar codes).

The communication between frontend and backend using XML works well and is very flexible. Unfortunately there are certain libraries included for this purpose (e.g. Hibernate, Simple, etc.) which delays the development of the Android application rigorously since the compile time is increased tremendously. Therefore the usage and choice of libraries has to be revised. The Hibernate library has been identified as critical regarding this issue.

Outlook

A suitable extension to the InvenStar application is the consideration of Bluetooth information regarding the position of scanned items.