V.2 La solution pure de Milling Yellow
V.2.3 La construction d’un rhéogramme local
Este trabalho de dissertação tem como objetivo principal a criação de uma camada que permita fazer a ligação entre a Web e a aplicação desktop (ERP da PrimaveraBSS). O ERP já possui a sua própria arquitetura. De modo a conseguir adicionar uma nova componente a essa arquitetura, é necessário compreender o trabalho que já está feito e só depois fazer uma proposta para a sua adaptação (capítulo 4).
Dentro dessa camada encontra-se um serviço Web (descrito no capítulo 5). Este tem como objetivo receber pedidos de clientes com credenciais do ERP, e responder aos seus pedidos, fazendo uso da camada de serviços de negócio do ERP, para assim respeitar as regras de negócio existentes na aplicação desktop. Foi definido no início do projeto de desenvolvimento que este serviço deveria ter algumas características, nomeadamente:
• Existência de um sistema de autenticação e autorização, baseado em tokens;
• Permitir que os pedidos não tenham estado (stateless), ou seja, cada pedido deverá conter toda a informação necessária para que o servidor consiga desempenhar a sua função, sem precisar de guardar dados acerca do utilizador;
• Não estar dependente de ficheiros físicos nem registos do Windows (Windows registry); • Ser capaz de responder a pedidos concorrentes com um elevado nível de desempenho. Até ao momento, foram registadas cerca de 4.6 milhões de linhas de código existentes na solução do ERP. A sua dimensão e o facto de estar constantemente sujeito a mudanças, implica um custo altíssimo no que toca ao desenvolvimento e à manutenção do serviço Web. Para responder a este problema, foi criada uma ferramenta de suporte que tem como objetivo ler e interpretar o código do ERP automaticamente e gerar a maior parte do serviço Web (descrita no capítulo 6). Esta ferramenta foi elaborada de modo a existir a possibilidade de gerar o código completamente automaticamente através de bots, que correm a aplicação e substituem os ficheiros do serviço Web, pelos ficheiros gerados com a nova versão.
Com o propósito de organizar e gerir o desenvolvimento do serviço Web, foi adotada a abordagem metodológica Scrum solo. Esta framework ágil foi escolhida sabendo que o desenvolvimento na PrimaveraBSS é também feito com base numa framework ágil, o Scrum. No entanto, Scrum foi desenvolvido para equipas de dois ou mais elementos em mente, algo que não se verifica no presente contexto. Esta limitação levou à descoberta do Scrum solo, que de certo modo simplifica a metodologia
50 Scrum de maneira a que apenas um único developer consiga gerir o seu projeto. A descrição teórica desta metodologia foi feita no 3º capítulo, e a sua utilização foi descrita nos 7º e 8º capítulos.
Finalmente, após o desenvolvimento do serviço Web, foi feita uma validação do trabalho desenvolvido (descrita no capítulo 8). Neste caso foram feitos testes de carga e quatro aplicações que consomem o serviço. A primeira aplicação fez parte do projeto vencedor da edição de 2018 do evento TecTalks, que consiste num sistema de reconhecimento automático de documentos de faturas, que integra diretamente a informação no ERP através do serviço Web. Foi também desenvolvido um website com a framework Asp.Net Core, com o intuito de criar documentos de compra. Outro exemplo foi a criação de uma aplicação mobile, fazendo uso de PowerApps e Microsoft Flow, que permite ao utilizador autorizar documentos de venda. Por fim, foi desenvolvido um add-in para o Microsoft Outlook que permite visualizar os pagamentos pendentes, sem sair do contexto do cliente de email.
51
Referências bibliográficas
Chiu, D. K., Cheung, S., Hung, P. C., Chiu, S. Y., & Chung, A. K. (2005). Developing e-Negotiation support with a meta-modeling approach in a Web services environment.
Dustdar, S., & Schreiner, W. (2005). A survey on web services composition. Ferris, C., & Farrel, J. (2003). What are web services? ACM.
Fielding, R. T. (2000). Architectural Styles and the Design of Network-based Software Architectures. Fonseca, J. W. (2016). A informatização na coleta de dados para controle de doenças epidemiológicas:
um estudo de caso com a Dengue.
Ge, Z., & Wang, X. (2010). A framework for automatic generation of composite web service user interface. Kunming, China: IEEE.
Goncalves, A. (2009). "SOAP Web Services." Beginning Java™ EE 6 Platform with GlassFish™ 3: From Novice to Professional.
Hanson, M. D. (2000). The Client/Server Architecture.
He, J., & Yen, I.-L. (2007). Adaptive User Interface Generation for Web Services. Hong Kong, China: IEEE. Kleim, E. C. (2016). Um estudo do Scrum em um projeto com uma equipe pequena.
Mitra, N., & Lafon, Y. (2007). SOAP Version 1.2 Part 0: Primer.
Moro, T. D., Dorneles, C., & Rebonatto, M. (2009). Web services WS-* versus Web Services REST. Muehlen, M. z., Nickerson, J. V., & Swenson, K. D. (2005). Developing web services choreography
standards—the case of REST vs. SOAP.
Nunes, L. M. (2016). Sistemas de gerenciamento de heurística de usabilidade.
Pagotto, T., Fabri, J. A., Lerario, A., & Gonçalves, J. A. (2016). Scrum solo: Software process for individual development. Las Palmas, Spain: IEEE.
Pagotto, T., Fabrti, J. A., Lerario, A., & Gonçalves, J. A. (2016). Scrum solo: Software process for individual development. Las Palmas, Spain: IEEE.
Paolucci, M., Kawamura, T., Payne, T. R., & Sycara, K. (2002). Semantic matching of web services capabilities.
52 Potti, P. K., Ahuja, S., Umapathy, K., & Prodanoff, Z. (2012). Comparing Performance of Web Service . Ribeiro, M. F., & Francisco, R. E. (2016). Web Services REST - conceitos, análise e implementação. Rodriguez, A. (2008). Restful web services: The basics.
Roy, J., & Ramanujan, A. (2001). Understanding Web Services. Schwaber, K. (1997). SCRUM Development Process.
Seely, S., & Sharkey, K. (2001). SOAP: Cross Platform Web Service Development Using XML. Prentice Hall PTR.
Serrano, N., Hernantes, J., & Gallardo, G. (2014). Service-Oriented Architecture and Legacy Systems . Soares, M. d. (2007). Metodologias ágeis extreme programming e scrum para o desenvolvimento de
software.
Suda, B. (2003). SOAP Web Services.
Sutherland, J., Viktorov, A., Blount, J., & Puntikov, N. (2007). Distributed Scrum: Agile Project Management with Outsourced Development.
Tang, Q. C., & Cheng, H. K. (2005). Optimal location and pricing of Web services intermediary.
Tihomirovs, J., & Grabis, J. (2016). Comparison of SOAP and REST based Web services using software evaluation metrics.
Wagh, K., & Thool, R. (2012). A Comparative Study of SOAP Vs REST Web Services Provisioning Techniques for mobile Host.
Zhao, J. L., & Cheng, H. K. (2005). Web services and process management: a union of convenience or a new area of research?
53