In a distributed reflective framework, issues of correctness and composition can be quite subtle and complex. Interactions within and across reflective levels must be considered, the semantics of shared, distributed resources must be clearly spelled out, and new notions of correctness of the overall system need to be developed that account for the dynamic, distributed, and reflective setting. TLAM is a two-level model of distributed computation based on the actor model of object-based distributed computation that supports dynamic customizability and separation of concerns in designing and reasoning about components of Open Distributed Systems. The TLAM uses reification (base object state as data at the meta object level) and reflection (modification of base object state by meta objects) with support for implicit invocation of meta objects in response to changes of base level state. This provides for debugging, monitoring, and other hooks. In this paper we briefly review the TLAM concepts and summarize the application of the TLAM framework to fairly elaborate middleware services. The main contribution of this paper is a simple example worked out in some detail to illustrate techniques for using the TLAM to model middleware services as reflective / meta-level services and to illustrate our multiple viewpoint methodology for specifying and reasoning about such services.
Keywords: open distributed system, reflection, middleware, meta-architecture, specification, multiple viewpoints, verification