Offline iHRIS: Difference between revisions

From IHRIS Wiki
No edit summary
 
mNo edit summary
Line 1: Line 1:
Just some initial notes and an initial direction.
Just some initial notes and an initial direction.


1. Concentrate on data collection.
# Concentrate on data collection.
2. Keep it simple and fail-safe.
# Keep it simple and fail-safe.


David and I agreed that the quickest way to get the fastest results
David and I agreed that the quickest way to get the fastest results
Line 35: Line 35:
''Note'':
''Note'':


* Data integrity checks are performed at every step.  Whenever a sync
* Data integrity checks are performed at every step.  Whenever a sync happens, we need to make sure that the data is correct.
happens, we need to make sure that the data is correct.


* iHRIS can present forms in the user's language as long as the browser
* iHRIS can present forms in the user's language as long as the browser is set to request pages in that language.
is set to request pages in that language.


* All the iHRIS functionality is available in offline mode.  Reports
* All the iHRIS functionality is available in offline mode.  Reports should all be pre-cached when the flash disk is synced.
should all be pre-cached when the flash disk is synced.


* This system provides multiple, distributed backups of the data.  At
* This system provides multiple, distributed backups of the data.  At some later point, the datasets may become too large to deal with this way, but at this point, our datasets would reasonably fit on a flash disk.
some later point, the datasets may become too large to deal with this
way, but at this point, our datasets would reasonably fit on a flash
disk.


* Local users can share data even in a non-networked environment using
* Local users can share data even in a non-networked environment using the flash disk and “Sneaker-Net”.
the flash disk and “Sneaker-Net”.


* Security becomes extremely important.  I need to come up with a good
* Security becomes extremely important.  I need to come up with a good way to protect the data as it travels.  Additionally, we need to make it hard for data to enter the system maliciously without impeding regular use too much.
way to protect the data as it travels.  Additionally, we need
to make it hard for data to enter the system maliciously without
impeding regular use too much.


As I said, that is probably the quickest solution we can present.  Other
As I said, that is probably the quickest solution we can present.  Other
Line 61: Line 51:
pursuing:
pursuing:


* Some sort of wireless PDA application.  Since wireless access is so
* Some sort of wireless PDA application.  Since wireless access is so ubiquitous, it would prove worthwhile to find a way to provide access   to the data this way.
  ubiquitous, it would prove worthwhile to find a way to provide access
  to the data this way.


* Google Gears provides a way to embed an application entirely the
* [http://gears.google.com/ Google Gears] provides a way to embed an application entirely the browser and synchronize it with the server when online access is   available.
  browser and synchronize it with the server when online access is
  available.


  By making the back-end accessible via REST calls (i.e. it serves up
* By making the back-end accessible via [http://en.wikipedia.org/wiki/Representational_State_Transfer REST] calls (i.e. it serves up data structures instead of raw HTML) and the front-end dynamically   generated by Javascript, it would allow use to make the most use of   something like Google Gears.  This allows the end user who sometimes   has access to the Internet to sync up without the use of sending flash disks out.
  data structures instead of raw HTML) and the front-end dynamically
  generated by Javascript, it would allow use to make the most use of
  something like Google Gears.  This allows the end user who sometimes
  has access to the Internet to sync up without the use of sending
  flash disks out.

Revision as of 10:46, 27 September 2007

Just some initial notes and an initial direction.

  1. Concentrate on data collection.
  2. Keep it simple and fail-safe.

David and I agreed that the quickest way to get the fastest results would be to put the iHRIS application on a Flash Disk or USB stick that Windows computers could run. This would include making sure that we found a lightweight web server (probably not Apache). Currently, the database back end is MySQL, but I'm pretty sure that we can replace that with an embedded SQLite Database.

The end-user scenario:

Jim at the central office ships Jane a flash disk. When Jane puts the flash disk into her computer, a local copy of the database is created and a browser appears. Jane logs in and begins using the iHRIS application as if she were online.

Jane can pass the flash disk to her co-workers so that they get copies of the data. If her co-workers want to share data with her, they can sync with the flash disk from within the web application and give it back to her.

Periodically, Jim ships new flash disks to Jane. Included in the instructions are directions to synchronize her local database data to the flash disk.

Jane returns the old flash disk to Jim and he uses a screen in the administrative console to sync the flash disk with the central database. The flash disk can then be returned to Jane or to any other remote user.

Note:

  • Data integrity checks are performed at every step. Whenever a sync happens, we need to make sure that the data is correct.
  • iHRIS can present forms in the user's language as long as the browser is set to request pages in that language.
  • All the iHRIS functionality is available in offline mode. Reports should all be pre-cached when the flash disk is synced.
  • This system provides multiple, distributed backups of the data. At some later point, the datasets may become too large to deal with this way, but at this point, our datasets would reasonably fit on a flash disk.
  • Local users can share data even in a non-networked environment using the flash disk and “Sneaker-Net”.
  • Security becomes extremely important. I need to come up with a good way to protect the data as it travels. Additionally, we need to make it hard for data to enter the system maliciously without impeding regular use too much.

As I said, that is probably the quickest solution we can present. Other ideas that would probably take more time but that we should think about pursuing:

  • Some sort of wireless PDA application. Since wireless access is so ubiquitous, it would prove worthwhile to find a way to provide access to the data this way.
  • Google Gears provides a way to embed an application entirely the browser and synchronize it with the server when online access is available.
  • By making the back-end accessible via REST calls (i.e. it serves up data structures instead of raw HTML) and the front-end dynamically generated by Javascript, it would allow use to make the most use of something like Google Gears. This allows the end user who sometimes has access to the Internet to sync up without the use of sending flash disks out.