Gordon S. Blair

Learn More
Component-based software structuring principles are now commonplace at the application level; but componentization is far less established when it comes to building low-level systems software. Although there have been pioneering efforts in applying componentization to systems-building, these efforts have tended to target specific application domains (e.g.,(More)
Middleware has emerged as an important architectural component in modern distributed systems. However, it is now recognised that established middleware platforms such as CORBA and DCOM are not flexible enough to meet the needs of the emerging distributed applications, featuring for example access to multimedia services and also support for mobile users.(More)
Middleware has emerged as an important architectural component in modern distributed systems. Most recently, industry has witnessed the emergence of component-based middleware platforms, such as Enterprise JavaBeans and the CORBA Component Model, aimed at supporting third party development, configuration and subsequent deployment of software. The goal of(More)
Mobile client applications must discover and interoperate with application services available to them at their present location. However, these services will be developed upon a range of middleware types (e.g. RMI and publish-subscribe) and advertised using different service discovery protocols (e.g. UPnP and SLP) unknown to the application developer.(More)
There is a growing interest in the area of self-healing systems. Self-healing does however impose considerable demands on system infrastructures---especially in terms of openness and support for reconfigurability. This paper proposes that the self-awareness inherent in reflective technologies lends itself well to the construction of self-healing systems. In(More)
OpenCOM v2 is our experimental language-independent component-based systems-building technology. OpenCOM offers more than merely a component-based programming model. First, it is a runtime component model and supports dynamic runtime reconfiguration of systems (i.e. one can load, unload, bind, and rebind components at runtime). Second, it explicitly(More)
It is now well established that middleware platforms must accommodate an increasingly diverse range of requirements arising from the needs of both applications and underlying systems. Moreover, it is clear that to achieve this accommodation, platforms must be capable of both deployment-time configurability and run-time reconfigurability. This paper(More)
Novel ubiquitous computing applications such as intelligent vehicles, smart buildings, and traffic management require special properties that traditional computing applications do not support, such as context-awareness, massive decentralisation, autonomous behaviour, adaptivity, proactivity, and innate collaboration. This paper presents a new computational(More)
To operate in dynamic and potentially unknown environments a mobile client must first discover the local services that match its requirements, and then interact with these services to obtain the application functionality. However, high levels of heterogeneity characterize mobile environments; that is, contrasting discovery protocols including SLP, UPnP and(More)