[en] A DYNAMIC INTEGRATION MODEL FOR SOFTWARE COMPONENT SYSTEMS
[pt] EXAMES VIRTUAIS UTILIZANDO UM ALGORITIMO DE RAY CASTING ACELERADO
Description
[pt] Diferentes sistemas de componentes de software, tais como CORBA, COM e JavaBeans, apresentam diferentes modelos de objetos e sistemas de tipos. Essas diferenças dificultam a integração de componentes oriundos de sistemas distintos e, conseqüentemente, são uma barreira para o reuso desses componentes. Neste trabalho, defendemos a tese de que uma linguagem interpretada com um determinado conjunto de mecanismos reflexivos, aliada à compatibilidade estrutural de tipos, oferece um mecanismo de composição adequado tanto para a conexão dinâmica de componentes, quanto para a interoperabilidade entre diferentes sistemas de componentes. Esse mecanismo de composição realiza em tempo de execução as tarefas de conexão, adaptação, implementação e verificação de tipos de componentes, e trata de uma maneira uniforme componentes de diferentes sistemas, permitindo que estes sejam conectados de uma forma transparente. O mecanismo de composição que propomos se baseia em um modelo que privilegia a flexibilidade em tempo de execução. Esse modelo de composição é composto por dois elementos principais. O primeiro elemento é um modelo de objetos que definimos com a finalidade de poder representar componentes dos diferentes sistemas tratados neste trabalho. Assim, esse modelo de objetos faz o papel de um modelo integrador, isto é, um modelo sob o qual objetos de diferentes sistemas podem ser representados e interagir de forma transparente. O segundo elemento de nosso modelo de composição é um padrão de projeto (design pattern) para a implementação de bindings entre linguagens interpretadas e sistemas de componentes. Esse padrão de projeto, chamado Dynamic Language Binding, não utiliza a técnica tradicional de stubs. Ao invés disso, ele utiliza mecanismos de reflexividade e tipagem dinâmica para implementar tanto proxies genéricos, que podem representar qualquer componente de um determinado sistema, quanto adaptadores genéricos, que permitem a implementação de componentes utilizando a própria linguagem de composição. Como instrumento de validação da nossa proposta, descrevemos uma implementação do modelo de composição denominada LuaOrb. LuaOrb utiliza a linguagem interpretada Lua como linguagem de composição dinâmica, e integra os sistemas CORBA, COM e Java.[en] Different component systems, such as CORBA, COM, and Java, have different object models and type systems. Such differences make the interoperability between components of distinct systems more difficult, and thus are an obstacle for component reuse. In this dissertation, we argue that an interpreted language with a specific set of reflexive mechanisms, together with a type system with structural compatibility, offers a composition mechanism suitable for dynamic component connection and for interoperability between different component systems. This composition mechanism performs at runtime the tasks of verifying types, connecting, adapting and implementing components, and handles components of different systems in a uniform way, allowing them to be connected transparently. The proposed composition mechanism is based on a model that favors flexibility at runtime. This composition model is composed of two major elements. The first one is an object model, defined in order to represent components of the different systems addressed in this dissertation. Thus, this object model performs the role of a unifying model, that is, a model in which objects from different systems can interact and be represented transparently. The second element of our composition model is a design pattern to implement bindings between interpreted languages and component systems. This design pattern, named Dynamic Language Binding, does not use the traditional stubs technique. Instead of this, it uses reflection and dynamic typing to implement generic proxies, which can represent any component of a specific system, and generic adapters, which allow component implementations using the composition language itself. In order to validate our proposal, we describe the LuaOrb system, which is an implementation of our composition model. LuaOrb uses the interpreted language Lua as its dynamic composition language, and integrates the systems CORBA, COM and Java.