Part 1: Cloud & REST | Part 2: HTML5 WebSockets | Part 3: Physical Mashups
In a recent post, we were explaining how in a project common to MIT and ETH Zurich, we simplified deployments of IoT applications based on the EPC Global standards.
We operated this simplification by applying four of the Web of Things patterns: Cloud Computing, RESTful Interface, Real-Time Web and Physical Mashups.
In the first related post we described how we used Cloud Computing and RESTful Interfaces. It is now time to talk a little bit more about one of the other pattern: the Real-Time Web.
Real-Time Web: HTML 5 WebSockets to Enable Near Real-Time Applications
Early on, experts of the RFID domain asked us to enable mobile or Web clients access to the raw data directly pushed by RFID readers. The challenge here is that the Web was designed mainly as a client-pull architecture, where clients can explicitly request (pull) data and receive it as a response (we have a paper about the matter, here!). This makes uses-cases where near real-time communication is required rather challenging. As an example, a typical use-case is one in which we would like to push events that are being recorded by an RFID reader directly to a mobile browser application for monitoring purpose.
Here, the “Real-time Web”, one of the most recent blueprints of the Web, can be leveraged. The Real Time Web encompasses several new techniques that can be used to push events directly to browsers. We focus on two of these here. The first one, called Comet (also called HTTP streaming or long-polling) is based on the concept of long-lasting HTTP connections and keep-alive messages. While this is supported by most browsers and HTTP libraries, it works by using an existing loop-hole. More recently, Websockets (part of the HTML5 drafts) were proposed. Websockets propose duplex communication with a single TCP/IP connection directly accessible from any compliant browser through a simple Javascript API. The increasing support for HTML5 in Web and Mobile Web browsers makes it a very good candidate for pushing data on the Web.
For the EPC Network, we created tPusher, a service that combines a RESTful API with a Web-socket and Comet server. Using
a RESTful API, clients can subscribe to RFID event notifications for a particular reader by using a URL such as:
http://.../t-pusher/reader/READER_ID
This initiates a Websocket connection with the server on which RFID events recorded by READER_ID will be pushed.
Our implementation is based on the great Atmosphere framework. Atomosphere is a Java abstraction framework for enabling push support on most Java Web servers. One of the advantages of this approach is to be able to deploy tPusher on recent Web Servers such as Grizzly, which are highly optimized to push events on the Web because of their usage of non-blocking threads for each client. In order to support browsers or other clients that do not support HTML5 Websockets yet, we use a client-side abstraction Javascript library called Atmosphere JQuery Plugin which falls back to a Comet connection in case Websockets are not supported by the client.
To better understand the impact of tPusher in the context of RFID apps let us talk about our demonstration: When setting up RFID readers or maintaining existing deployments it is valuable to have a direct feedback of the tags observed by a particular reader in order to monitor the manufacturing process or to debug the readers. In the current implementations of the EPC software stack this would require to use and configure a (expert) monitoring tool such as the Fosstrak LLRP Commander on a desktop computer. Thanks to the RESTful interface to the Real-Time Web capability of tPusher, the tags observed by any reader can now be directly pushed to any browser or HTTP library.
We developed as Mobile Web page that can display them in a user-friendly manner. The page uses HTML5, Javascript with the Atmosphere JQuery Plugin. All code required for such a page to subscribe to events pushed by readers through tPusher and display them fits within 5 lines of Javascript. The code is shown below:
// called whenever an event is pushed :
function callback(response )
{alert(response.responseBody + response.transport) ;}
// subscription to the events of reader "exit1 "
$.atmosphere.subscribe (
"http://EPC_CLOUD_APPLIANCE/t-pusher/reader/exit1" ,
callback , $.atmosphere.request =
{transport : "websocket" }) ;
Add some bits of Sencha Touch HTML and CSS and you get a nice, user friendly mobile Web application within a few hours of work. The app does not require any installation (just access a URL!) and works accross mobile Web browsers (e.g., iPhone Webkit, Android Webkit / Firefox mobile, etc.)
.
In a next post we will talk about the last pattern: Physical Mashups.
For those who can’t wait, you can already sneak into the presentation of the full project below.
generic allergy pills allergy pills for adults do you need a prescription
strong dangerous sleeping pills phenergan 25mg generic
buy generic prednisone 20mg prednisone 40mg without prescription
prescription heartburn medication names order allopurinol online
isotretinoin brand brand accutane 10mg buy accutane 20mg without prescription
strongest over the counter sleep aid modafinil drug
order amoxil 1000mg generic amoxil 1000mg generic order amoxil 250mg online cheap
buy azithromycin sale order generic zithromax 250mg buy zithromax 250mg sale
buy neurontin pill gabapentin online buy
oral azithromycin buy azipro 250mg pills azithromycin 250mg over the counter
order lasix generic how to get lasix without a prescription
buy omnacortil tablets order generic omnacortil 40mg buy prednisolone 10mg generic
prednisone 10mg oral prednisone online
amoxicillin 250mg pill amoxil price cheap amoxicillin generic
acticlate online order doxycycline 200mg price
buy albuterol online cheap purchase ventolin inhalator online cheap order albuterol inhalator without prescription
augmentin brand augmentin canada
synthroid 150mcg us levothyroxine canada synthroid online
buy levitra 10mg generic order levitra for sale
buy clomiphene buy serophene pill clomid 100mg cheap
Puede utilizar un software de gestión para padres para guiar y supervisar el comportamiento de los niños en Internet. Con la ayuda de los siguientes 10 software de administración de padres más inteligentes, puede rastrear el historial de llamadas de su hijo, el historial de navegación, el acceso a contenido peligroso, las aplicaciones que instalan, etc.
buy cheap generic zanaflex order tizanidine online tizanidine sale
order rybelsus 14mg without prescription order rybelsus pill semaglutide 14mg canada
Very good post.Really looking forward to read more. Great.
My website: русский порно массаж
buy deltasone 20mg sale purchase prednisone pill prednisone 20mg pill
rybelsus 14 mg us rybelsus 14 mg cheap order rybelsus
isotretinoin 20mg for sale order accutane 40mg generic accutane 20mg cheap
Very good post.Really looking forward to read more. Great.
My website: видео изнасилование
albuterol inhalator cheap oral albuterol buy generic albuterol
amoxil 1000mg over the counter amoxil 250mg without prescription buy amoxil 500mg for sale
brand augmentin 1000mg amoxiclav canada buy clavulanate without prescription
cheap zithromax azithromycin us azithromycin 500mg uk
levoxyl price synthroid where to buy cheap generic levothroid
where to buy omnacortil without a prescription buy cheap prednisolone buy prednisolone 10mg generic
cost serophene buy clomiphene without prescription cost clomiphene 50mg
gabapentin 800mg cheap gabapentin 100mg tablet buy gabapentin 800mg online cheap
La mejor aplicación de control parental para proteger a sus hijos – monitoriza en secreto GPS, SMS, llamadas, WhatsApp, Facebook, ubicación. Puede monitorear de forma remota las actividades del teléfono móvil después de descargar e instalar apk en el teléfono de destino. https://www.mycellspy.com/es/
order lasix lasix 100mg drug furosemide 40mg for sale
sildenafil online order buy viagra online pfizer viagra
purchase acticlate online cheap buy doxycycline without prescription buy generic doxycycline online
buy cheap rybelsus order rybelsus 14mg without prescription rybelsus for sale
free spins no deposit casino gambling casinos free roulette games
buy generic levitra order generic levitra 10mg vardenafil usa
pregabalin for sale online generic pregabalin 150mg order pregabalin sale
order plaquenil generic generic hydroxychloroquine 200mg buy hydroxychloroquine 400mg without prescription
order zithromax
aristocort over the counter purchase aristocort order triamcinolone 10mg pill
guaranteed cialis overnight delivery usa cialis pill order tadalafil 40mg generic
cost clarinex 5mg desloratadine pills clarinex 5mg generic
purchase cenforce generic cenforce 100mg cheap cost cenforce 100mg
order generic claritin 10mg where can i buy loratadine order claritin
aralen 250mg cost chloroquine 250mg brand chloroquine online order
priligy 60mg usa buy priligy no prescription cytotec pills
how long for metformin to work
order glucophage 1000mg generic buy metformin 500mg pills metformin over the counter
order glucophage 1000mg pills glucophage where to buy order glycomet 500mg
order orlistat pills diltiazem 180mg tablet order diltiazem 180mg generic
zoloft and sleep
lisinopril 40 mg.side effects
atorvastatin 40mg us purchase atorvastatin sale lipitor for sale
flagyl reactions
norvasc 5mg pills norvasc 10mg over the counter amlodipine order
zovirax us zyloprim brand order allopurinol pills
how quickly does furosemide work
glucophage mite
max dose gabapentin
lisinopril 5mg oral lisinopril where to buy buy lisinopril 2.5mg online
buy rosuvastatin 10mg generic crestor order buy zetia without a prescription
zithromax z pak side effects
will amoxicillin treat a sinus infection
brand prilosec 10mg omeprazole 10mg over the counter prilosec 20mg over the counter
buy generic domperidone online tetracycline medication buy tetracycline 500mg online cheap
cephalexin 500mg capsule used for stds
buy generic metoprolol 50mg lopressor 100mg drug lopressor 100mg uk
what is escitalopram used for
cyclobenzaprine drug buy lioresal no prescription ozobax order
how to take ciprofloxacin 500mg
cephalexin 500mg for sinus infection
buy toradol without prescription colcrys uk cost colcrys 0.5mg
buy atenolol 100mg sale purchase atenolol atenolol for sale
buy methylprednisolone 8mg methylprednisolone pills depo-medrol buy
inderal 10mg pills inderal 20mg uk plavix price
writing essays for money paper writing websites pay for term paper
can amoxicillin treat trichomoniasis
can i drink on bactrim
methotrexate 2.5mg canada warfarin over the counter coumadin order
a nurse is preparing to administer cephalexin 0.25
meloxicam 7.5mg canada meloxicam tablet celecoxib sale
reglan 10mg oral metoclopramide 10mg tablet hyzaar online
do bactrim side effects go away
buy generic tamsulosin online buy flomax 0.2mg generic celebrex 100mg without prescription
sertraline vs escitalopram
neurontin uses for mental health
esomeprazole drug buy generic esomeprazole for sale topiramate 100mg generic
zofran 4mg for sale aldactone 25mg cheap spironolactone for sale
sumatriptan 50mg ca imitrex order online buy levaquin 250mg online cheap
cheap zocor 10mg valtrex for sale online order valtrex pill
how to get avodart without a prescription buy ranitidine 150mg pills zantac tablet
losartan 25 mg tablet cozaar
how long does depakote take to work
starting dose ddavp
play aviator: https://aviatorghana.pro/ aviator game bet
cassino pin up https://pinupcassino.pro/ pin up aviator
pin up bet https://pinupcassino.pro/ aviator oficial pin up
pin-up casino login https://pinupcassino.pro/ pin up cassino online
pin up bet https://pinupcassino.pro/ pin up bet
cassino pin up https://pinupcassino.pro/ pin up
pin up casino https://pinupcassino.pro/ pin-up cassino
finasteride 1mg us propecia sale order diflucan online
buy ampicillin for sale how to get amoxicillin without a prescription amoxil usa
side effects citalopram
buy cipro 1000mg online – keflex 125mg canada amoxiclav for sale online
buy ciprofloxacin generic – buy bactrim 960mg buy clavulanate without prescription
cost of cozaar medication
depakote side effects
meloxicam and citalopram
buy cheap ciprofloxacin – doryx tablet erythromycin usa
metronidazole 200mg without prescription – buy amoxicillin online cheap azithromycin 250mg cost
augmentin heartburn
does diclofenac cause weight gain
ivermectin 6mg over counter – sumycin 500mg cheap sumycin price
diltiazem trade name
valacyclovir 1000mg tablet – order starlix zovirax over the counter
ezetimibe myositis
flomax generic date
flexeril alternatives
ampicillin brand order vibra-tabs order amoxicillin sale
order metronidazole 400mg sale – buy cefaclor cheap zithromax 500mg canada
contrave kuwait
can you stop taking amitriptyline
is aripiprazole the same as abilify
order lasix pills – lasix oral buy capoten 25 mg without prescription
does baby aspirin lower blood pressure
allopurinol vs.uloric
glucophage 1000mg us – bactrim 480mg uk order lincocin 500 mg without prescription
bupropion dose range
baclofen is used for
zidovudine over the counter – buy avapro for sale allopurinol us
augmentin for kidney infection
clozaril pill – amaryl 4mg ca order famotidine generic
how fast does buspirone take to work
ashwagandha reddit