Clint Heyer pro­jects

Å Pub­lish/​Sub­scribe Frame­work

Ex­pres­sive event pat­terns, light­weight API and de­ploy­ment.
ABB Nor­way, Post­doc, 2008.

The Å frame­work is in many ways the spir­i­tual suc­ces­sor to the Am­bi­ent In­ter­ac­tion Frame­work, as both aim to make de­vel­op­ing ubiq­ui­tous com­put­ing ap­pli­ca­tions eas­ier by sim­pli­fy­ing de­ploy­ment and de­vel­op­ment. How­ever, Å is much more am­bi­tious: an en­tire de­sign and im­ple­men­ta­tion of a pub­lish/​sub­scribe sys­tem and client APIs, rather than mak­ing use of an ex­ist­ing pub­lish/​sub­scribe sys­tem.

A par­tic­u­larly novel as­pect of the frame­work is that it uses Mi­crosoft’s Dy­namic Lan­guage Run­time (DLR), al­low­ing for ex­pres­sive, pow­er­ful event pat­terns. In ad­di­tion, the frame­work is de­signed for con­tem­po­rary com­put­ing, sup­port­ing a HTTP REST in­ter­face as well as a high-per­for­mance bi­nary trans­port.

The ab­stract from the pa­per de­scrib­ing the sys­tem:

This pa­per de­scribes the de­sign and im­ple­men­ta­tion of a novel de­cen­tral­ized pub­lish/​sub­scribe frame­work. The pri­mary goal of the de­sign was for a high level of end-de­vel­oper and user ac­ces­si­bil­ity and sim­plic­ity. Fur­ther­more, it was de­sired to have strong sup­port for oc­ca­sion­ally-con­nected clients and sup­port for mo­bile and web-based sys­tems. Con­tent-based event pat­terns can be de­fined us­ing scripts, with many com­mon script lan­guages sup­ported. Script-based, state­ful event pat­terns per­mit rich ex­pres­sive­ness, sim­plify client de­vel­op­ment and re­duce net­work us­age. The frame­work also of­fers event per­sis­tence, caching and pub­lisher quench­ing. We also de­scribe a num­ber of ap­pli­ca­tions al­ready built on the frame­work, for ex­am­ple pub­lish­ers to sup­port lo­ca­tion and pres­ence aware­ness and am­bi­ent vi­su­al­iza­tions of fi­nan­cial data.

Am­bi­ent In­ter­ac­tion Frame­work (DSTC, 2000)

The Am­bi­ent In­ter­ac­tion Frame­work (AIF) was de­signed and de­vel­oped while at Dis­trib­uted Sys­tems Tech­nol­ogy Cen­ter (DSTC) as an in­tern in the Am­bi­ence group. The goal of the pro­ject was to cre­ate an open, ex­ten­si­ble frame­work for the de­vel­op­ment of an am­bi­ent com­put­ing test­bed.

AIF is con­cerned with con­nect­ing in­puts to out­puts, and man­ag­ing their com­mu­ni­ca­tion and be­hav­iour. AIF sup­ports a va­ri­ety of sen­sors and ac­tu­a­tors and new types of hard­ware and soft­ware can be added to the frame­work with­out re­quir­ing mod­i­fi­ca­tion of other com­po­nents. This blind ex­ten­si­bil­ity is made pos­si­ble through the use of largely lo­ca­tion/​lan­guage/​plat­form-in­de­pen­dant mes­sag­ing mid­dle­ware - Elvin.

An in­put com­po­nent for read­ing light lev­els could be writ­ten in Python on a PC and could be read with Java on a Palm Pi­lot for ex­am­ple. AIF can be used to pro­vide a ar­chi­tec­ture for ubiq­ui­tous com­put­ing sce­nar­ios, and has been used in teach­ing at the Uni­ver­sity of Queens­land.

Read More