• Nenhum resultado encontrado

Plataformas móvel, web e interoperabilidade

3.1 Resultados

3.1.2 Plataformas móvel, web e interoperabilidade

O gerenciamento dos dados dos aplicativos móveis é uma necessidade muito co- mum. Para isso, são necessárias abordagens que ofereçam suporte para sistemas web e a comunicação entre dispositivos móveis e servidores web. Sistemas web tem a função de gerenciar e unificar os dados dos aplicativos móveis para deixá-los mais dinâmicos e colaborativos, funções como autenticação e envio de mensagens entre usuários, controle de estoque, gerenciamento de ranking pelos aplicativos e qualquer outra função que exija a troca de dados entre os aplicativos é normalmente gerenciada por sistemas web.

A troca de dados entre as plataformas ou a interoperabilidade garante a comu- nicação entre os aplicativos, visando manter a integridade e a sincronização dos dados independente do dispositivo utilizado. Para isso é necessário uma estrutura de comuni- cação que pode ser automatizada através do DSDM. Nessa linha, algumas abordagens tratam exclusivamente a comunicação e geram códigos a partir da análise da arquitetura do sistema. Grace, Pickering, Surridge (2016) apresentam um método, baseado nos con- ceitos de engenharia dirigida por modelos, que reduz o esforço na geração de serviços que garantem a interoperabilidade de sistemas complexos. Este método utiliza a combinação entre os modelos que especifica a arquitetura e o comportamento do software para realizar a geração correta de interoperabilidade entre aplicações através da composição de Web

Service. Os autores utilizam uma máquina de estado finito (Finite State Machines) e a

técnica de modelagem FSM para gerenciar a comunicação entre os aplicativos em cada plataforma, os quais são representados pelos estados e as transições são alterações nos mesmos, requisitando comunicação entre os dispositivos. A abordagem disponibiliza uma ferramenta onde é possível realizar a modelagem da máquina de estado de forma visual. A modelagem por sua vez é convertida em XML e traduzida em serviços de comunicação REST/Json ou REST/XML.

CANAPPI utiliza uma DSL declarativa para geração de interfaces de comuni- cação para Web Service (JONES; JIA, 2014). Essas interfaces auxiliam a comunicação entre aplicativos nas nuvens e dispositivos móveis, porém o CANAPPI foi descontinuado. WS SOFTWARE FACTORY14 (SILVA, 2015) é uma abordagem comercial baseada em DSDM que provê recursos para auxiliar no desenvolvimento de serviços para interopera- bilidade usando padrões de design conhecidos da engenharia de software. Esses recursos são disponibilizados através de modelos visuais ou orientações textuais que auxiliam na geração de códigos integrados ao ambiente de desenvolvimento Visual Studio. Embora utilize uma linguagem que aumente o nível de abstração, essa DSL é uma ferramenta acoplada a um ambiente de desenvolvimento específico, não permitindo a independência de plataforma. Essas abordagens são importantes pois apresentam aumento na produtivi- dade e manutenção dos serviços de comunicação e tratam a questão da heterogeneidade de

ambientes de execução de software. Porém as abordagens não tratam as outras questões multiplataforma, servindo como uma ferramenta de gerenciamento da comunicação.

Abordagens que consideram plataformas móveis e web possuem um nível de com- plexidade superior aos apresentados na seção anterior, como é o caso do Model-Driven

APPLAUSE15(DAGEFÖRDE et al.,2016). APPLAUSE é um framework que provê uma

DSL declarativa escrita em XText com templates para geração de código em XTend, usa- das para especificar aplicativos para várias plataformas nativas, entre eles: iOS, Android,

windows phone 7 e Google App Engine. Porém o foco da modelagem envolve detalhes téc-

nicos do domínio ao invés de elementos conceituais, mantendo um baixo nível de abstração e comprometendo a produtividade, além da abordagem não considerar a comunicação de dados entre o servidor web e os dispositivos móveis. O Model-Driven APPLAUSE não apresenta continuidade na pesquisa.

O APPIAN16é um framework comercial que apoia o desenvolvimento de aplicati- vos móveis e a interoperabilidade de dados entre os aplicativos. Este framework permite ao desenvolvedor modelar a interface da aplicação arrastando e soltando elementos vi- suais, mantendo um desenho único para todas as plataformas. As regras de negócio e comportamento do aplicativo são definidas em alto nível de abstração através de editores customizados pela ferramenta e os códigos nativos são gerados para as seguintes platafor- mas: Android, iOS e BlackBerry. A comunicação de dados entre as plataformas móveis e os serviços web também são consideradas através da geração de código REST. A ferra- menta foca na geração de executáveis da aplicação para cada plataforma, de forma que não é possível estender o código fonte gerado, limitando o desenvolvedor com as funções previstas pela ferramenta, além de não considerar a geração dos serviços web, somente a estrutura de comunicação.

Outra ferramenta comercial que considera plataformas móveis e interoperabilidade é o MENDIX17, se diferenciando do APPIAN por gerar código também para sistemas web.

MENDIX é uma plataforma de desenvolvimento comercial baseado em DSDM que usa o PhoneGap como base para geração de aplicativos híbridos para as principais plataformas do mercado. Esse framework permite a modelagem visual dos conceitos do domínio em alto nível de abstração e gera código legível baseado em tecnologias web compatível com o PhoneGap, onde é possível adicionar novas funcionalidades. O MENDIX trata não só a comunicação de dados entre as plataformas através de Web Services, mas também o sistema web responsável em gerenciar os dados dos aplicativos dos usuários, fornecendo um ambiente mais completo de desenvolvimento do que os apresentados. Embora o MENDIX resolva bem a parte de unificação do desenvolvimento móvel em um único ambiente, ele não considera a geração de aplicativos nativos nem o desenvolvimento de sistemas

15 github.com/applause/applause 16 www.appian.com/

para desktop, além de manter o desenvolvedor preso às funcionalidades previstas pela plataforma, por se tratar de um padrão caixa preta.

No trabalho de Inayatullah et al. (2019), é proposto um framework baseado em MDA (Model-Driven Architecture), que disponibiliza uma modelagem em UML para ex- pressar os conceitos de um domínio. O framework utiliza Acceleo para gerar códigos para dispositivos móveis e aplicações web com operações CRUD (Create, Read, Update and

Delete). A ferramenta gera Angular e ReactJS18 para web, Ionic19 e ReactNative20 para

dispositivos móveis e REStful Service21 em Asp.Net para a comunicação entre eles. Dois estudos de caso foram conduzidos para validar o framework, gerando o esqueleto de um CRUD para multiplataforma, a partir de modelos em alto nível. Mostrando que o método simplifica a criação de operações CRUD, para as plataformas móveis e web. Porém, além de gerar aplicativos híbridos, questões como extensão e gerenciamento de funções entre as plataformas não são abordadas no trabalho.

WEBRATIO22 (ACERBIS et al., 2015) é uma plataforma comercial de desenvol- vimento orientada a modelo baseadas no IFML e com um alto nível de abstração, usado para o desenvolvimento de aplicativos híbridos para várias plataformas conforme especi- ficação do Cordova. Utilizando técnicas DSDM, o WEBRATIO permite a modelagem da aparência e comportamento dos aplicativos móveis e a criação de Web Services e serviços web em um único ambiente. O código fonte gerado pela ferramenta pode ser estendido pelo desenvolvedor através da linguagem JavaScript (JS), onde é possível gerar códigos para as principais plataformas através da API Cordova. Originalmente, o WEBRATIO tinha foco apenas no desenvolvimento de aplicações web, passando a atender também dispositivos móveis. O WEBRATIO possui três ambientes integrados que são usados para o desen- volvimento completo do software. O primeiro é o ambiente de modelagem, que fornece suporte às especificações de diagramas IFML para descrição visual e diagramas de classe UML para o projeto da lógica do sistema. Em seguida há o ambiente de desenvolvimento, que fornece apoio a implementação de componentes personalizados, a fim de realizar ex- tensões personalizadas da modelagem baseada em necessidades específicas de plataformas ou funções nativas. Por fim, o ambiente para projetar a interface, onde é possível projetar os desenhos das telas em alto nível, suportados pelo HTML5, JS e estilos baseado em CSS. Com base nas informações fornecidas através dos ambientes, a ferramenta WEBRA- TIO realiza a validação do modelo, geração do código completo, gerenciamento do ciclo de vida e permite o trabalho em grupo. O WEBRATIO possui o diferencial de suportar funções offline, e permite a geração de código para a sincronização de dados entre os dispositivos móveis e o servidor web. Essa ferramenta apresenta grande produtividade no

18 https://pt-br.reactjs.org/docs/getting-started.html 19 https://ionicframework.com/

20 https://reactnative.dev/docs/getting-started 21 https://restfulapi.net/

desenvolvimento, porém tem os ônus relativos ao desenvolvimento híbrido. O ambiente visual de modelagem é uma caixa preta, de modo que torna não aplicável alguns benefícios do DSDM, assim como: capacidade de expansão, independência da evolução tecnológica e independência de plataforma de desenvolvimento.

É notório que os trabalhos, principalmente acadêmicos, que consideram um nú- mero maior de plataformas, são cada vez menos volumosos devido à sua complexidade. Nessa linha, pode-se dizer que o trabalho de Miravet et al. (2014) é uma das aborda- gens acadêmicas mais completas pelo fato de considerar o desenvolvimento nativo para duas plataformas móveis (Android e windows phone), sistema web (Servelets Java ME) para o gerenciamento dos dados das aplicações e a comunicação entre eles através do SOAP23 (Simple Object Access Protocol). Miravet et al. (2014) propõem DIMAG (device-

independent mobile application generation) um framework para especificar aplicações mó-

veis, onde o lado do cliente (aplicativos) e servidor (sistema web) são modeladas de forma independente. Isto é, todo o código para sincronização e transições de dados entre aplica- ções web e móveis, construção de regras de negócio do aplicativo e sistema web, controle de versões do aplicativo, comportamento do software, aparência e definição da interface entre outros detalhes são modelados em XML. A interface é modelada através de uma máquina de estado descrita em XML. A partir da modelagem em XML o framework DI- MAG gera um Abstract syntax tree (AST) que é utilizado pelo gerador DIMAG para gerar código para as principais plataformas. Os elementos XML disponíveis para realizar a mo- delagem são prioritariamente fixos (desc: controle de versão, flow: ciclo do aplicativo, ui: documentos de interface, entre outros) e o gerador de código é customizado de acordo com esses elementos, o que mantém a modelagem engessada para novas funcionalidades. Isto é, a extensão do framework é muito custosa, inviabilizando a adaptação para o atendimento de novos recursos ou novas tecnologias.