Intelligent Systems Lab Project: Information Lens
Participants
- Christian Mücke
- David Nagel
- Marian Pohling
- Oliver Schlüter
Supervisors
- Holger Dierker
- Thomas Hermann
Motivation
- In some cases it is interesting to get the history of objects such as uses from group projects and defects
- Additionally, in laboratories it might be important to have a
list of the inventory and to know where certain items are
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- to develop an intuitive and robust system that holds a database in which information related to integrated objects can be stored
- to use QR Codes to identify objects
- to write this documentation
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.username">root</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.hbm2ddl.auto"></property>
<property name="hibernate.connection.username">joe</property>
<property name="hibernate.connection.password">123</property>
<property name="hibernate.hbm2ddl.auto">create</property>
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.