News & Visitors


Group Chat Prototype Collaborative Social Group Interaction System

As stated previously, in order to determine the feasibility of building software based on the group model presented in this paper a prototype group collaboration system featuring chat and file exchange was built. The software services and applications that the prototype comprises of are described below:

  1. Situation-Aware Ephemeral Group(SAEG) Service - Forms device groups by processing Group Session Profiles (GSPs) in order to network devices together peer-to-peer into a non-deterministic process group under a common group identifier. Messages are then sent through the SAEG using the group identifier and received by each device in the group, several groups can be supported at once.
  2. User Profile Distribution(UPD) Service - A peer-to-peer service that distributes the User Group Profile (UGP) for a device to other devices running the service. A use of this service is announcing the presence of an individual.
  3. Group Manager Application - An application used to author GSPs, store them, and let the user decide what devices to distribute the GSP to. Devices with the same GSP become members of a device group.
  4. Group Chat Application - Supports group collaboration through text messaging, and file exchange. Chat Groups are formed based on GSPs and are analogous to a chat channel in an application such as IRC.
In order to support the activity of communication using an ephemeral group chat application, we looked at how existing applications supported the activity of online chatting. Due to the maturity of existing instant messenger and chat clients well established patterns exist that users expect when communicating using text messages. This provided the basic requirements for what social contexts would be placed into the UGP for the subject. The ephemeral Group Chat is intended to be used anytime/anywhere over ad-hoc networks, as such the GSP will contain social contexts related to the schedule of a community. As a baseline the UGP and GSP were designed to consist of the following:
  • UGP - Contains the following basic information used to identify the subject to other users: (username, first name, last name, email address). ex: ("jsmith", "Joe", "Smith", "jsmith@bogusemail")
  • GSP - Contains the contexts needed to define the basic time and location requirements that a community will use to work on an object such as a class: (group name, location, start time, end time). ex: ("testgroup", "ASU campus", "01:00:00", "20:00:00")

 

Downloading and Installing the Prototype

This code has been tested using only the following platform:

All software was designed and built to deploy on the Dell Axim x5 PDA running Microsoft Pocket PC Version 4.2. The specific hardware specifications of the PDAs used are listed below:

  1. Processor Type: Intel XScale
  2. Processor Speed: 400MHZ
  3. RAM Size: 64 MB
  4. ROM Size: 48 MB
  5. ROM Version: A05
  6. Wireless Card: Dell TrueMobile 1180
All software development was performed using the Embedded Visual C++ 4.0 IDE.

Code and executables downloaded from this page are for use as is and are not currently supported.

You can download the prototype code to build with EVC. Or if you wish to use the platform as detailed above you can download the executables.

GCPrototypeCode.zip Contents

This section contains a description of the projects that are contained within the code zip file in two directories: SystemApps and UserApps. The directory named SystemApps contains the following applications:

  1. RCSM Object Request Broker (R-ORB) - The R-ORB is responsible for context acquisition and acts as a context-sensitive object broker. For more information see: http://dpse.asu.edu/rcsm/RCSM-software.html
  2. R-ORB CFG - A utility application that creates a configuration file needed to execute the R-ORB.
  3. R-ORB Shutdown - A utility that shuts down the R-ORB once it is executing.
  4. R-ORB_loc_change_sim - A version of the R-ORB that simulates a location change occurring 2 minutes after it is executed. The starting location will be read from the R-ORB config file. After 2 minutes the location will switch to "BAC101".
  5. Situation Aware Ephemeral Group (SAEG) Manager - A service used to form device groups by creating non-deterministic process groups. Device groups are formed based on contexts found in a GSP. The SAEG returns a unique identifier for the GSP and allows applications to send messages to all devices in the group using the group identifier. More details about the service were published here.
  6. User Profile Distribution (UPD) - Used to distribute and receive UGPs between devices running the UPD. Announces the arrival of a user in an area, and allows applications to query the set of nearby users.
  7. UPD Shutdown - Used to turn off the UPD on a device.

Within the UserApps directory you will find:

  1. CreateUP - A utility for editing the UGP on a device.
  2. GroupManager - An application for managing the creation, storage, and distribution of GSPs. The application is more fully documented in chapter 4 section 2.3 of this thesis.
  3. GroupTextChat - The collaborative group software used to exchange text messages and files between group members. More documentation about the GroupTextChat application is found in chapter 4 section 2.6 of this thesis.
  4. RCSM - The RCSM application acts as a means to bootstrap system software needed to use the Group Manager and Group Chat applications. It launches a process to start the R-ORB, SAEG, and UPD. Both the Group Chat and Group Manager will test to see if the R-ORB is running, and if need be call the RCSM app before displaying the GUI.

GCPrototypeExecs.zip Contents

For those wishing to use the same platform as mentioned here, it may be easier to copy the binary executables onto the devices. The GCPrototypeExec.zip contains two main directories: SystemApps, and UserApps. Once unpacked in the SystemApps directory you will find:

  1. /RORB_loc_change/rorb.exe - A version of the R-ORB that simulates a location change occurring 2 minutes after it is executed. The starting location will be read from the R-ORB config file. After 2 minutes the location will switch to "BAC101".
  2. config_rorb.exe - A utility application that creates a configuration file needed to execute the R-ORB.
  3. rorb.exe - The RCSM Object Request Broker (R-ORB) is responsible for context acquisition and acts as a context-sensitive object broker. For more information see: http://dpse.asu.edu/rcsm/RCSM-software.html
  4. rorb_shutdown.exe - A utility that shuts down the R-ORB once it is executing.
  5. saeg.exe - The Situation Aware Ephemeral Group (SAEG) service used to form device groups by creating asynchronous process groups. Device groups are formed based on contexts found in a GSP. The SAEG returns a unique identifier for the GSP and allows applications to send messages to all devices in the group using the group identifier. More details about the service were published here.
  6. UPD_shutdown.exe - Used to turn off the UPD on a device.
  7. UserProfileDistribution.exe - Used to distribute and receive UGPs between devices running the UPD. Announces the arrival of a user in an area, and allows applications to query the set of nearby users.

Within the UserApps directory you will find:

  1. CreateUP - A utility for editing the UGP on a device.
  2. GroupManager - An application for managing the creation, storage, and distribution of GSPs. The application is more fully documented in chapter 4 section 2.3 of this thesis.
  3. GroupTextChat - The collaborative group software used to exchange text messages and files between group members. More documentation about the GroupTextChat application is found in chapter 4 section 2.6 of this thesis.
  4. {RCSM - The RCSM application acts as a means to bootstrap system software needed to use the Group Manager and Group Chat applications. It launches a process to start the R-ORB, SAEG, and UPD. Both the Group Chat and Group Manager will test to see if the R-ORB is running, and if need be call the RCSM app before displaying the GUI.

Before Prototype Installation

Previous to prototype installation the following steps must be taken using the Pocket PC:

  1. Navigate to the "My Device" directory - Navigate to the root directory of the device using the "File Explorer" program.
  2. Create the RCSM directory - Create a directory named "RCSM".
  3. Create the App and Data directory - Navigate to the newly created "RCSM" directory and create two sub-directories; one named "App", and another named "Data"

At this point refer to the appropriate guide given below. If you are using EVC to install the prototype refer to the next section. For directions on prototype installation by copying the executables to a PDA click here. Directions for starting the Group Manager and Group Chat are found here.

Installing the Prototype Using EVC

Installation using EVC is very straight-forward. Depending on the platform you are building for, you may be required to download packages from Microsoft support online.

  1. Sync the PDA - Sync the PDA up with the laptop by placing the PDA in it's cradle and running activesync.
  2. Open Projects - Open up the projects in the zip file. Every project must be built and installed in order for the Group Chat prototype to work. Opening and installing them one at a time is probably preferable based on the number of projects. You should build only one version of the R-ORB, depending on if you want a location change simulated or not.
  3. Configure the Project - The project should have the current build configuration set to release for the device you intend to use. For the platform described here the active configuration was: WCE Configuration = "POCKET PC 2003", Active Configuration = "Win32 (WCE ARMV4) Release", Default Device = "Pocket PC 2003 Device".
  4. Build the Project - Provided you have created the proper directory structures the project will build. Projects unzipped in the UserApp directory will have the executable placed in the /RCSM directory. Projects unzipped from the SystemApps directory are placed in the /RCSM/App directory.

Installing the Prototype by Copying Executables

If you are using the platform described here you can install the Group Chat prototype by copying the executables onto the PDA. This requires two steps; Copy every executable that was unzipped in the UserApps directory into the /RCSM directory on the PDA. Copy executables from the SystemApps directory into the /RCSM/App directory on the PDA. You will need to copy only one version of the R-ORB, depending on if you want to simulate a location change.

Executing the Prototype

The following steps must be taken in order to use the group chat prototype to chat and share files: Configure the R-ORB. Create a UGP. Create a GSP. Distribute the GSP. Start the Group Text Chat application.

  1. Configuring the R-ORB - To configure the R-ORB you must run the config_rorb application found in the /RCSM/App directory. If you do not wish to use a location when experimenting with the Group Chat choose the "Basic" option and select "Apply". If you wish to use a location when experimenting with the Group Chat, fill in the location you wish to use in the text box labeled "Loc". Select the "Context Server (Loc Only)" option, and select "Apply". A config file for the R-ORB will be created in the /RCSM/Data/ directory.
  2. Creating a UGP - The next step is to create a UGP. To do this execute the CreateUP application that is found in the /RCSM directory of the PDA. Fill in the username, first and last names, email, and ID then select "Save". A UGP for use by the UPD will be created and stored in the /RCSM/Data/ directory.
  3. Now that a UGP has been created you can run the Group Manager to create a GSP. The directions for creating and distributing a GSP are given next:

  4. Creating a Group Session Using the GM - Creating group sessions is done using the GM.
    1. When creating a group session the user will first be asked to configure a group name, and a location used to activate the group. By default the current location is selected and displayed. The user can choose to change the location to a new one which they know the identifier for, or select an "Anywhere" location.
    2. The next step involves configuring a start and end time for the group interaction represented by the GSP. When the user first views the interface the current time is used to specify the start time, and the end time is configured to be an hour later. The user can then set the start and end times to indicate the situation they wish, or specify an "Anytime" context. Upon completion on specifying the time the GSP is sent to the SAEG and used to place the group in the started, or active state.
  5. Distributing and Receiving a Group
    1. In order to distribute a profile after creation the user must select the profile and then select the "Send Group" option which is under the "Send" menu. Next the end-user is allowed to select one or many nearby users in order to send a GSP to. A GSP for a group is then sent over the network to the GM that is running on the remote-user's PDA.
    2. Receiving a group is very straight-forward. when another user desires to send a group across the network to you a message will appear asking if you would like to review the profile. If the end-user possibly wishes to join the group they can review the GSP for the group and accept or cancel adding their device to the group. When accepting a GSP the device is not automatically put into the group, instead the user must start the group if they really want to join it.

Starting the Chat

Now that you have created and distributed a GSP you should be ready to use the Group Chat application to chat and exchange files. Remember that your chat group will only appear in the Group Chat provided that the context for starting the group interaction from your GSP is true. An example of an active Group Chat is shown in the image below.

Screen-shot of the prototype GroupChat application.

You can easily determine if a GSP is active by checking the GSP in the Group Manager. As seen in image of the Group Manager below a green light will appear next to the GSP if it is active. Yellow indicates that the GSP is started but, the context is not yet correct for the GSP to activate. A red light indicates that a GSP is stopped and it will never activate (Start and Stop are in the "Groups" menu). If you are currently chatting with a group and the context indicates that the chat interaction is over you will see a message as shown in the below image.

Screen-shot of the prototype Group Manager application. Lights next to a GSP indicate the state of a group interaction.

A message is displayed when a group chat session exits telling you which context changed.

Publications Related to the Prototype

  1. Bin Wang, John Bodily, and Sandeep K. S. Gupta, Persistent Social Groups in Ubiquitous Computing Environments Using Context-Aware Ephemeral Group Service, . [PDF]

 

Questions

Please send queries to: John.Bodily@cox.net
 



Home | Projects | People | Publications | Courses | Calendar | Resources | News & Visitors | Contact