New challenging deployment scenarios are accommodating portable devices with
limited and heterogeneous capabilities that roam among wireless access localities
during service provisioning. That calls for novel middlewares not only to support
different forms of mobility and connectivity in wired-wireless integrated networks,
but also to provide runtime service personalization based on client characteristics,
preferences, and location. The paper adopts mobile proxies that work at the
wired-wireless network edges, close to their limited wireless clients, to support
their personalized access to continuous services such as audio/video streaming.
In particular, the paper focuses on how to predict client handover between IEEE
802.11 cells in a portable way, only by exploiting RSSI monitoring data and with
no need of external global positioning systems. Handover prediction permits i)
to migrate mobile proxies in advance to the wireless cells where mobile clients
are going to reconnect, and ii) to dynamically and proactively adapt the size of
proxy- and client-side buffers to avoid streaming interruptions with minimum
usage of proxy and client memory. Experimental results show that our prediction-based
adaptive buffering significantly reduces the proxy and client buffer size required
to maintain streaming continuity and imposes a very limited overhead.
A detailed description of each buffering-layer, proxy and client, is available
through links on the left ("Proxy side buffering" and "Client side buffering").

Figure 1. Smart Buffer middleware general architecture.
To better understand the general architecture figure 1 recapitulates the
middleware general architecture, showing each its component. Orange element
depicts a generic server, blue elements the proxy and green elements the
wireless client. Circle elements are active (processes, threads) and rectangle
elements are passive (e.g. buffers). Doted rows represents the data flow, e.g.
a Video-on-Demand stream. Handover Predictor element resides on the client,
collects RSSI sample from Physical Device, performs predictions and, finally,
notifies predicted location to Proxy and Client Buffer Manager. Client Buffer
Manager just changes buffer size and Proxy Buffer Manager changes buffer size
and triggers proxy migrations.