O desenvolvimento de aplicações de RV, na plataforma proposta, é realizado por meio do instanciamento de objetos que compõem o modelo de representação de aplicações. Nessa seção é apresentado um conjunto de ações possíveis para a produção de uma aplicação RV, considerando que as aplicações podem ser produzidas por novos elementos ou pelo reuso de elementos existentes.
A Figura 42 ilustra o processo de produção de aplicações por meio de um diagrama de atividades da UML. O processo de produção de aplicação inicia pelo reconhecimento dos requisitos da aplicação que devem ser satisfeitos. A partir dos requisitos, a primeira ação é buscar um mundo virtual existente no repositório da plataforma que satisfaça os requisitos totalmente ou parcialmente. Caso seja localizado um mundo virtual que satisfaça plenamente os requisitos da aplicação os próximos passos são: definir comportamentos da aplicação, definir parâmetros de execução e persistir a aplicação no repositório. Caso seja localizado um mundo virtual que satisfaça parcialmente os requisitos da aplicação, o fluxo segue um caminho que permitirá a edição das cenas e objetos virtuais que compõem o mundo virtual. Caso não seja localizado um mundo virtual que satisfaça os requisitos da aplicação, o fluxo segue um caminho que permite que seja criado um novo mundo virtual. A mesma sequência lógica é usada para os fluxos que permitem a edição ou criação de cenas e objetos virtuais.
O processo de produção estabelece uma sequência de ações para a produção de aplicações considerando o ciclo completo de elementos que compõem uma aplicação RV na plataforma proposta. Contudo, a produção de objetos virtuais, cenas e mundos virtuais pode ser realizada de maneira independente. Dessa forma é possível a especialização da tarefa de produção, como por exemplo, um produtor especializado em produzir objetos virtuais, outro especializado em produzir cenas a partir dos objetos virtuais e outro especializado em produzir mundos virtuais a partir das cenas existentes no repositório.
99
5.4 Considerações Finais do Capítulo
O capítulo apresentou o modelo de representação de aplicações RV proposto, seus objetivos e as descrições de seus principais elementos. A proposta atual do RM-VRServices não possui o objetivo de esgotar todos os conceitos envolvidos no desenvolvimento de aplicações RV, mas sim, apresentar um conjunto de conceitos que permitam os experimentos de produção e execução de aplicações em um ambiente on-line, acessível por meio de serviços.
O próximo capítulo apresenta a arquitetura da plataforma VRServices, cujo objetivo é apoiar a produção e execução de aplicações RV por meio da representação com o RM-VRServices. Os resultados das provas de conceito, realizadas com protótipos parciais da plataforma e do modelo de representação, são apresentados no Capítulo 7.
6
MODELO ARQUITETURAL DA PLATAFORMA
O modelo RM-VRServices, conforme apresentado no Capítulo 5, tem como objetivos: 1) permitir a especificação de aplicações RV por meio de instâncias de conceitos de mundos virtuais, 2) permitir o reuso de partes de representação na produção de novas aplicações e 3) viabilizar a edição, compartilhamento e execução das especificações de aplicações RV em um ambiente on-line. Para isso, é necessária uma plataforma de software que apoie essas funcionalidades, por meio de um canal de comunicação interoperável, sem restrições tecnológicas.
Os dois primeiros objetivos são alcançados por meio do uso do modelo RM-VRServices para especificar partes de aplicações RV, que combinadas, constituem as aplicações completas. O terceiro objetivo é obtido com uma plataforma de software orientada a serviços (PAPAZOGLOU et al., 2007), (PAPAZOGLOU et al., 2008) e (ERL, 2009), que permite expor as funcionalidades da plataforma por meio de serviços remotos. A associação de serviços com as instâncias de conceitos do modelo RM-VRServices, produz um barramento de serviços capaz de proporcionar a produção, compartilhamento e execução de aplicações RV em um ambiente on-line.
Os serviços da plataforma VRServices foram divididos em dois grupos, um grupo de serviços relacionados às atividades de produção de aplicações RV e outro grupo relacionado às atividades de execução das aplicações RV.
A Figura 43-a ilustra a plataforma VRServices (lado servidor) constituída pelos serviços que expõem as funcionalidades de produção de aplicações. Também ilustra os potenciais clientes dos serviços de produção da plataforma, que podem ser aplicações destinadas aos usuários produtores de aplicações. Os clientes de produção da plataforma podem oferecer diferentes interfaces aos usuários produtores de aplicação, com diferentes formas de abstração e representação dos elementos que são criados, editados e salvos nos repositórios da plataforma. As tecnologias de desenvolvimento orientado a serviços também oferecem a interoperabilidade de plataforma computacional e linguagens de implementação (PAPAZOGLOU; HEUVEL, 2007). O fluxo de dados que ocorre entre os clientes de produção e a plataforma VRServices é constituído por instâncias de elementos do modelo RM-VRServices,
nos dois sentidos da comunicação.
Figura 43: Visão lógica dos clientes da plataforma
Fonte: Autor (2014)
A Figura 43-b ilustra a plataforma (lado servidor) e os serviços que expõem as funcionalidades relacionadas à execução das aplicações. Apresenta também os possíveis clientes dos serviços de execução, que são as aplicações consumidoras destes serviços, destinadas aos usuários finais da plataforma. Cada cliente de execução pode ser executado em diferentes plataformas computacionais, implementado com diferentes linguagens de programação e oferecer diferentes formas de interação. O fluxo de dados que ocorre entre os clientes de execução e a plataforma VRServices pode ter duas naturezas: 1) no sentido cliente de execução para a plataforma, o fluxo será de dados que representam as entradas de dados, enviados por meio de mensagens de serviços à plataforma, e 2) no sentido plataforma para o cliente de execução, o fluxo será de dados que representam a saída de informações provenientes da execução da aplicação na plataforma, enviados por meio de streams de dados ao cliente de execução.
6.1 Descrição Funcional da Plataforma VRServices
Nessa seção é apresentada a descrição funcional da plataforma VRServices. Para isso, serão usados diagramas de casos de uso que ilustram as funções da plataforma. O diagrama de caso de uso ilustrado na Figura 44 apresenta a visão de contexto da plataforma, destacando quatro funções: Produzir Aplicações RV, Executar Aplicações RV, Gerenciar Recursos e Gerenciar Usuários e Direitos de Acesso.Figura 44:Diagrama de contexto da plataforma VRServices
Fonte: Autor (2014)
A função Produzir Aplicações RV reúne as subfuncionalidades que permitem a produção, armazenamento e recuperação de aplicações de RV, constituídas por instâncias do modelo RM-VRServices.
A função Executar Aplicações RV reúne as subfuncionalidades que permitem a execução de aplicações de RV, produzidas e armazenadas nos repositórios da plataforma VRServices. Essa função deve gerenciar as entradas de dados, fluxos de saída, recursos usados na execução e os eventos que ocorrem durante a execução.
A função Gerenciar Usuários e Direitos de Acesso são as funcionalidades relacionadas com a manutenção de dados de usuários, perfis de usuários e credenciais, que estabelecem as funcionalidades que cada usuário tem autorização para realizar na plataforma.
A função Gerenciar Recursos reúne funcionalidades relacionadas com a manutenção de recursos. Os recursos são usados na produção e execução das aplicações produzidas na plataforma, tais como: imagens, sons, texturas, modelos
de objetos 3D.
Figura 45:Diagrama de contexto da plataforma VRServices
Fonte: Autor (2014)
O diagrama de caso de uso ilustrado na Figura 45, destaca os atores que interagem com a plataforma. Em função de a plataforma ser caracterizada como um barramento de serviços, seus atores diretos não são os usuários finais, que produzem ou executam aplicações RV, e sim, aplicações que consomem seus serviços. São três atores diretos da plataforma VRServices:
• AplicaçãoClienteProdução - representa as aplicações que consomem os serviços de produção da plataforma e oferecem interfaces de alto nível para usuários produtores de aplicações. Aplicações clientes de produção podem ser desenvolvidas de maneira independente do restante da plataforma, em qualquer linguagem de programação e plataforma de operação.
• AplicaçãoClienteExecucão - representa as aplicações que consomem os serviços de execução da plataforma, por meio de interfaces de alto nível para usuários finais;
• AplicaçãoClienteAdministração - representa as aplicações que consomem serviços de administração da plataforma, tais como: manutenção de perfis de usuários, manutenção de usuários, credenciais e recursos.
A partir das aplicações clientes, existe um segundo grupo de atores, que interagem com as interfaces das aplicações que consomem os serviços da plataforma. A seguir, são apresentados os atores que têm relação indireta com a plataforma. Esses atores estão fora do escopo funcional da plataforma. São eles:
• UsuárioFinal - representa os usuários que interagem com as aplicações cliente de execução, cujo interesse é executar as aplicações disponíveis no repositório da plataforma;
• ProdutorAplicação - é uma especialização do ator UsuárioFinal e representa uma categoria de usuários finais que interagem com as aplicações clientes de produção. Seu papel é usar as aplicações clientes de produção para produção e armazenamento de elementos de aplicações RV, representados por conceitos do RM-VRServices. O ator ProdutorAplicação também pode interagir com as aplicações cliente de administração da plataforma, principalmente para inserir e editar recursos da plataforma; • Administrador - são os usuários das aplicações cliente que executam
tarefas de manutenção de usuários e perfis de usuários, configurações da plataforma e manutenção de repositórios de recursos.
Considerando o contexto de atores estabelecido, o público alvo principal da plataforma são os desenvolvedores de programas de computadores que estão interessados em consumir os serviços de produção e execução da plataforma VRServices, quer seja, consumo pontual de algum serviço, ou no desenvolvimento de aplicações clientes de administração, clientes de produção ou clientes de execução.
A partir da definição do escopo funcional e das quatro funções apresentadas nessa seção, foram produzidos diagramas de casos de uso que representam a decomposição funcional, refinando os casos de uso em funções de menor granularidade.