User Tools

Site Tools


at:urbiflock

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
at:urbiflock [2008/09/05 11:52] cfschollat:urbiflock [2010/08/04 17:34] – * elisag
Line 3: Line 3:
 ==== What is Urbiflock? ==== ==== What is Urbiflock? ====
  
-Urbiflock is a Facebook-like application framework written in AmbientTalk. The framework takes care of managing a user'buddy lists, called "flocks"Flocks define "proximate" groups of buddies, where "proximate" can mean physically proximate or abstractly proximate (e.g. in terms of being friends of someone). The framework is currently still under developmentwhich is why this page only lists development information thus far.+UrbiFlock is a framework sculpted for the development of //pervasive social network applications//: an emerging type of applications that enable spontaneous interactions of people by means of handheld devices (such as their cell phones). These applications exploit the colocation of a number of mobile devices in the proximity to enable social interaction //on the move//.  
 + 
 +Urbiflock is a Facebook-like application framework for mobile devices. As in Facebook, users that join Urbiflock can meet other users and interact with them. For example users may broadcast announcements to each other, they can browse one another’s profile, launch interactive polls, etc. The framework takes care of managing a usersocial networks, called flocksA flock represents a loosely-defined group of users. A flock can be compared to a Facebook group (for example, a group of your old classmates), but it additionally allows for the definition of groups of proximate flockrs (for example, a group of all of your friends that are currently nearby). 
 + 
 +Users can also build applications and plug them into the Urbiflock framework. Several core applications are currently available in the Urbiflock frameworksuch as flock creators and profile viewers. The framework also counts with two user applications //I rate you (IR8U)// that allows users to ask proximate users to rate them on a certain subject, and //Guanotes// that allows user to send message to each other 
  
 ==== Terminology ==== ==== Terminology ====
  
-  * Flock: a group of proximate users +  * Flockr: a user of the Urbiflock framework 
-  * Flockr: a user of the urbiflock framework+  * Flock: a group of users
   * To flock: to become part of a group   * To flock: to become part of a group
  
-==== Modules ==== +==== Demo ==== 
-  * [[uf:profiles|Profiles]]: manage user's profile and cache profiles of other flockrs + 
-  * [[uf:flockr|Flockr]]: a representation of the user +<html> 
-  * [[uf:proximities|Proximities]]: "functionsthat determine whether or not a user is proximate+<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/-M06e7tS998&amp;hl=en_US&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/-M06e7tS998&amp;hl=en_US&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object> 
-    * isNearby: physical proximity +</html> 
-    * isFriend: static encoding of friendship relationships + 
-    * doesProfileMatch: tests an attribute of a user's profileform ATTR OP VAL, where ATTR is e.gagenamegender, hobbies, ..+==== Target Platforms ==== 
-    * combinators: and, or, not +The Urbiflock framework has been written in the AmbientTalk language. As suchno configuration is required to be able to quickly script new applications on it once AmbientTalk is running on the target platform 
-  * [[uf:flock|Flock]]: group of 'proximate' users + 
-  * [[uf:applications|Applications]]: manage applications +AmbientTalk runs on a regular J2SE Java Virtual  
-  * [[uf:application|Application]]: define the API of an "application object"+Machine supporting version 1.3 or higherJava 2 micro edition (J2ME) platformunder the connected device configuration (CDC)and Android Platform version 1.6 or higher.  
 + 
 +We have implemented AWT UI interface for Urbiflock's deployment on HTC touch cruise phones running J2ME. In order to configure your HTC Touch device for our framework you can follow the instruction [[private:AmopHTC|here]]. 
 + 
 +We are currently working on an Android UI interface for Urbiflock' deployment on a number of Android phones ( HTC Hero, Legend and Desire, and Sony Xperia X10 series).  
 + 
 +==== Urbiflock architecture ====
  
-A flock is defined as a list of references to 'proximate' Flockrs. The definition of 'proximate' is defined by Proximities, which may define proximity in terms of physical distance or in more abstract terms. 
  
-Predefined Flocks+The architecture of the Urbiflock framework shown below is divided in three layersapplications, Urbiflock core, and Urbiflock infrastructure.  
-  * friend flockrsisFriend +{{ :uf:urbiflock_architecture.png?375x400 |:uf:urbiflock_architecture.png}}
-  * nearby flockrsisNearby +
-  * nearby friend flockrsisFriend & isNearby+
  
-WhiteBoard Drawings:  +The application layer includes several core applications which are currently available in the framework such as flock and profile editors, and several users applications such as //I rate you// (IR8U), and //Guanotes//. The Urbiflock's core is composed of three main facilities specially designed to enable social interactivity and deal with the highly dynamic environment to which mobile devices exposes themflockr, user profile and the TOTAM framework for flock communications.  
-  * [[uf:Design|Design]]+The infrastructure layer consists of three low-level abstractions on which the framework core is baseda RETE engine which orchestrates the flock composition, and the service discovery and communication APIs to discover and communicate with nearby applications, respectively. 
  
-==== Architecture ==== +In the rest of this subsection we list the relevant parts of the Urbiflock framework.
-An ad hoc RETE-networkEvents are triggered by: +
-  * discovery: ''joined(uid,flockr)'' / ''left(uid,flockr)'' +
-  * profile changes: ''changed(uid,flockr,updatedProfile)'' +
-  * friend changes: ''friendAdded(uid,flockr)'' / ''friendRemoved(uid,flockr)''+
  
-These events are received by the local flockr user object and propagated to all local proximitiesProximities translate these events into addUser / removeUser events to be processed by flocksTo process these eventsflocks register themselves on their dependent proximity.+  * [[uf:flockr|Flockr]]: A flockr represents a user in the framework 
 +  * [[uf:profiles|User Profile]]: Profiles in Urbiflock represent the user identity (e.g. namegender, hobbies, etc.).
  
-As first implementation of the RETE-network, maybe we can start from the oo matching that Tom implemented, so that proximity functions are templatesFor example+  * [[uf:flock|Flock]]: loosely defined group of users. It is an alternative representation of user groups specially designed to enable the dynamic interaction of social networks in pervasive social applications. A flock is defined in terms of a characteristic function. 
 +  * [[uf:proximities|Characteristic Functions]]: "functions" that determine whether or not a user belongs to a Flock. 
 +  * [[uf:totam|TOTAM]]: tuple-based middleware for flock communication. 
 +  * [[uf:application|Applications]]: define the API of an "application object" to be plugged in the framework. What follows is the list of applications in Urbiflock. 
 +    * [[uf:viewer|Flock Viewer]]: a viewer and editor to view existing flocks and to create new flocks. 
 +    * [[uf:app_viewer|Application Viewer]]: a viewer and editor to view existing applications and install/delete them. 
 +    * [[uf:profile_viewer|Profile Viewer]]: a viewer and editor to view existing flockr profiles and to update your profile. 
 +    * [[uf:iflocku|IFlockU]]: a friend suggestor based on profile similarity and time spent in proximity. 
 +    * [[uf:guanotes|Guanotes]]: a messenger application that sends post-its to flocks. 
 +    * [[uf:ir8u|IR8U]]: an application that allows users to ask proximate users to rate them on a certain subject.
  
-<code> 
-def flockrTemplate := template: { 
-  def name := *; // wildcard, can be anything 
-  def age := constraint: { _ < 25 }; // must be younger than 25 
-  def address := template: { 
-    def street := *; //any street,but street name must be filled 
-    def city := "Brussel"; // city must equal this string 
-  }; 
-  def greet(); // person must have a greet method 
-} taggedAs: [ Flockr ]; // object must be tagged as a Flockr 
-</code> 
  
-==== Applications ==== +==== Development ====
-  * [[uf:viewer|Flock Viewer]]: a viewer and editor to view existing flocks and to create new flocks. +
-  * [[uf:app_viewer|Application Viewer]]: a viewer and editor to view existing applications and install/delete them. +
-  * [[uf:profile_viewer|Profile Viewer]]: a viewer and editor to view existing flockr profiles and to update your profile. +
-  * [[uf:iflocku|IFlockU]]: a friend suggestor based on profile similarity and time spent in proximity. +
-  * [[uf:guanotes|Guanotes]]: a messenger application that sends post-its to flocks.+
  
-==== To think about ==== +  * [[uf:todolist|Bugs and TODO List]] 
-  * [[uf:persistence|Persistence]]: saving/loading framework and application data and prefs. +  * [[uf:Design|Whiteboard Design]] 
-  * [[uf:privacy|Privacy]]: restrict access of applications to a user's flocks+  * [[:uf:urbiflock_design.pdf| Design Diagram]] 
 +  * To think about: 
 +    * [[uf:persistence|Persistence]]: saving/loading framework and application data and prefs. 
 +    * [[uf:privacy|Privacy]]: restrict access of applications to a user's flocks
at/urbiflock.txt · Last modified: 2015/02/04 19:06 by elisag