Dissertação

Dynamic Invocation EVALUATED

Hoje em dia, há um grande interesse em invocar remotamente a functionalidade disponibilizada por aplicações de software (e.g., editores de texto, ferramentas Computer-Aided Design (CAD), ferramentas Building Information Modeling (BIM), motores de jogos). Para este fim, é necessário aceder remotamente à funcionalidade disponibilizada pelas aplicações de software a partir das suas Application Programming Interfaces (APIs). Desta forma, os plug-ins destas aplicações têm de implementar um mecanismo que possibilite a Remote Procedure Invocation (RPI). No entanto, as abordagens correntes, utilizando Interface Description Languages (IDLs) para estruturar mensagens de pedido e resposta, e a interface remota de um servidor, afetam negativamente a produtividade durante o desenvolvimento dos plug-ins. Isto porque, quando é preciso adicionar novos procedimentos, a especificação desta informação tem de ser feita manualmente em ficheiros IDL. Por isso, nós introduzimos a Dynamic Invocation (DI), um mecanismo que, baseado nas capacidades de linguagens de programação, usa metadados para invocar remotamente os procedimentos implementados num plug-in, melhorando a produtividade. A DI utiliza técnicas de metaprogramação para abstrair detalhes de uma RPI, por exemplo, a definição da estrutura das mensagens, ordem de serialização, e a forma de invocação de um procedimento. Como o esforço para implementar DI depende das capacidades de metaprogramação das linguages, nós vamos apresentar uma implementação de DI em C++, uma linguagem que possui estas capacidades através de métodos complexos. Vamos demonstrar como as características dos C++ templates ajudam a contornar esta dificuldade para obter uma solução que não afete a produtividade de forma tão acentuada como as outras abordagens.
Remote Procedure Invocation, Interface Description Language, Produtividade, Metaprogramação, Dynamic Invocation, Templates

dezembro 2, 2019, 10:30

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

António Paulo Teles de Menezes Correia Leitão

Departamento de Engenharia Informática (DEI)

Professor Auxiliar