CURSO DE GRADUAÇÃO BACHARELADO EM SISTEMAS DE INFORMAÇÃO DIOGO AZEVEDO GOUVEIA O USO DE TI COMO SUPORTE AO GERENCIAMENTO DE PROCESSOS DE NEGÓCIOS: ESTUDO DE CASO COMPARATIVO ENTRE DUAS METODOLOGIAS DISTINTAS CAMPOS DOS GOYTACAZES – RJ 2016 DIOGO AZEVEDO GOUVEIA O USO DE TI COMO SUPORTE AO GERENCIAMENTO DE PROCESSOS DE NEGÓCIOS: ESTUDO DE CASO COMPARATIVO ENTRE DUAS METODOLOGIAS DISTINTAS Trabalho de Conclusão de Curso apresentado à Coordenação de Informática do Instituto Federal Fluminense, como parte das exigências para obtenção de título de Bacharel em Sistemas de Informação. Orientador: Prof. M.Sc. Eduardo Francisco da Silva Freire CAMPOS DOS GOYTACAZES – RJ 2016 RESUMO Os processos são parte fundamental e integrante de todas as organizações, como no caso deste trabalho onde a organização é uma Instituição Federal de Ensino, onde existem processos burocráticos que necessitam muito tempo para serem realizados, sem nenhuma preocupação como possíveis melhorias e automatização de tarefas, surgiu a ideia de mapear o processo de transferência de turno do técnico a fim de propor melhorias e automatizações. Ao mesmo tempo que foi mapeado e melhorado o processo de transferência de turno, através da criação de um web service em programação convencional Ruby on Rails e utilizando uma ferramenta Business Process Management Suite – BPMS, para gerenciar todo o fluxo do processo. Também foi possível realizar uma comparação entre as metodologias que são evidentemente muito distintas, comparação essa que demonstrou as qualidades e facilidades de cada ferramenta, ao mesmo tempo que demonstrou que o uso das duas pode ser em conjunto, onde uma complementa a outra, não causando um alto acoplamento. Palavras-chave: melhorias, BPMS, acoplamento. ABSTRACT The processes are fundamental and integral part of all organizations, as in the case of this work where the organization is a Federal Teaching Institution, where there are bureaucratic processes that require a long time to make, without any concern as possible improvements and automation tasks, the idea to map the coach turn transfer process in order to propose improvements and automation. While it has been mapped and improved turn-transfer process, by creating a web service in conventional programming Ruby on Rails and using a Business Process Management Suite tool - BPMS to manage the entire process flow. It was also possible to make a comparison between the methodologies are clearly very different comparison such that demonstrated the qualities and each tool facilities, while demonstrated that the use of the two may be taken together, where one complements the other, causing no a high coupling. Key-words: improvements, BPMS, coupling. LISTA DE FIGURAS Figura 1: Diagrama de fluxo de trabalho do projeto...................................................16 Figura 2: Ciclo de vida BPM típico para processos com comportamento previsível.23 Figura 3: Gráfico de tendência...................................................................................26 Figura 4: Gŕafico de caminhos frequentes no fluxo do processo..............................27 Figura 5: Gráfico de fluxo gerado pelo Bizagi............................................................28 Figura 6: Pool de um projeto Bizagi...........................................................................29 Figura 7: Lane de um projeto Bizagi..........................................................................29 Figura 8: Circulo inicial e conectores de um projeto Bizagi.......................................30 Figura 9: Retângulo de tarefa de um projeto Bizagi..................................................30 Figura 10: Exemplo de modelagem BPM no Bizagi..................................................31 Figura 11: Importação de arquivo xml ou json para conexão REST no Bizagi.........32 Figura 12: Diagrama da análise AS-IS de transferência de turno do curso técnico. .37 Figura 13: Diagrama da análise TO-BE de transferência de turno do curso técnico 39 Figura 14: Uml da aplicação de tranferência de turno...............................................40 Figura 15: Classes mapeadas pelo web service.......................................................41 Figura 16: Index com dados alterados no Microsoft Sql Server................................43 Figura 17: Tela de verificação de pendências na biblioteca......................................44 Figura 18: Tela de acesso, após o login.....................................................................44 Figura 19: Tela de verificação de pendências na biblioteca......................................45 Figura 21: Tela para visualização de turno disponível...............................................46 Figura 20: Tela de confirmação de pedido de transferência realizado......................46 Figura 22: Tela para visualização de todos os pedidos de transferência..................47 Figura 23: Tela para visualização dos dados de um pedido......................................47 Figura 24: Tela para confirmação da transferência....................................................48 Figura 25: Tela de confirmação de transferência realizada.......................................49 Figura 26: Exemplo de resposta xml utilizada no projeto..........................................50 Figura 27: Tela de inserção do número de matrícula do aluno..................................51 Figura 28: Dados de um pedido de traferência pela ferramenta BPMS....................52 Figura 29: Resposta visual ao realizar um pedido de transferência..........................52 Figura 30: Área do coordenador, visualização de pedidos de alunos.......................53 Figura 31: Visualização do caminho do processo......................................................54 Figura 32: Arquivo curso.rb........................................................................................67 Figura 33: Arquivo disciplina_transferencia.rb...........................................................67 Figura 34: Arquivo matricula_pauta.rb.......................................................................68 Figura 35: Arquivo matricula_pauta_transferencia.rb................................................68 Figura 36: Arquivo pauta.rb........................................................................................68 Figura 37: Arquivo pessoa.rb.....................................................................................69 Figura 38: Arquivo turma.rb........................................................................................69 Figura 39: Arquivo turno.rb.........................................................................................69 Figura 40: Arquivo pessoa.rb.....................................................................................70 Figura 41: Arquivo autentication_biblioteca.rb...........................................................70 Figura 42: Arquivo biblioteca.rb..................................................................................70 Figura 43: Arquivo autentication_transfer.rb..............................................................71 Figura 44: Arquivo transfer.rb.....................................................................................71 Figura 45: Arquivo database.yml, responsável pela conexão ao banco de dados.. .72 Figura 46: Configurações da aplicação Ruby on Rails..............................................72 Figura 47: Configurações da aplicação Ruby on Rails..............................................73 Figura 48: Update dos dados no Microsoft Sql Server realizado..............................74 Figura 49: Index com dados alterados no Microsoft Sql Server................................74 Figura 50: Arquivo Autentication_sql_server.rb..........................................................75 Figura 51: Arquivo aluno.rb........................................................................................75 Figura 52: Arquivo matricula.rb..................................................................................76 LISTA DE SIGLAS API - Application Programming Interface BPM - Business Process Management BPMN - Business Process Modeling Notation BPMS - Process Management Suite BPEL - Process Execution Language ERP - Enterprise Resource Planning HTTP - Hypertext Transfer Protocol ORM - Object-relational mapping RA - Registro Acadêmico REST - Representational State Transfer SOA - Service-Oriented Architecture SOAP - Simple Object Access Protocol TCC - Trabalho De Conclusão De Curso TDS - Tabular Data Stream TIC - Tecnologias de Informação e Comunicação UML - Unified Modeling Language UTC - Coordinated Universal Time WWW - World Wide Web SUMÁRIO 1 INTRODUÇÃO................................................................................................................... 13 1.1 JUSTIFICATIVA............................................................................................................... 14 1.2 METODOLOGIA.............................................................................................................. 15 1.3 OBJETIVOS.................................................................................................................... 17 1.4 OBJETIVOS ESPECÍFICOS:..........................................................................................18 2 GESTÃO POR PROCESSOS............................................................................................20 3 TECNOLOGIAS EMPREGADAS......................................................................................25 3.1 FERRAMENTAS DE GESTÃO DE PROCESSO.............................................................25 3.2 RUBY.............................................................................................................................. 32 3.3 RAILS.............................................................................................................................. 32 3.4 GEMS............................................................................................................................. 33 3.4.1 GEMS PARA CONEXÃO MICROSOFT SQL SERVER A UM S.O UNIX.....................34 4 ESTUDO DE CASOS.........................................................................................................36 5 ANÁLISE DE RESULTADOS.............................................................................................55 6 CONCLUSÃO.................................................................................................................... 59 7 REFERÊNCIAS................................................................................................................. 62 8 APÊNDICE......................................................................................................................... 64 13 1 INTRODUÇÃO Toda organização, com ou sem fins lucrativos possui processos que são vitais para seu pleno funcionamento, processos esses que são diários e possuem como objetivo final um cliente sendo atendido por um determinado processo. Assim sendo uma Instituição Federal de ensino uma organização provedora de muitos processos, geralmente processos que tem como o cliente final um aluno, tende-se a buscar uma melhoria de processos para um melhor atendimento a esse cliente, de forma rápida e segura sendo possível ter total controle a todo o fluxo do processo e aos envolvidos nele. E como a quantidade de clientes em potencial em uma Instituição Federal de ensino é geralmente em grande escala, em grande escala geralmente os processos sofrem gargalos, pode haver perda de dados em alguma etapa do processo. O fluxo também pode ser de difícil entendimento para os envolvidos. Dessa forma em muitas situações as perdas não são possíveis de ser rastreadas a fim de resgatar esses dados ou verificar o responsável pela perda, não existindo também uma fácil visualização do funcionamento do processo, para que todos os envolvidos entendam plenamente os seus papéis no processo. Isso ocorre quando não existe um melhoramento contínuo e análise como prevista pelo Business Process Management – BPM, representada por uma análise AS-IS “Como é” e uma análise TO-BE “Como deve ser”. Dessa maneira os processos muitas vezes podem ser extremamente burocráticos e causar uma grande perda de tempo e dados como evidenciado anteriormente, esses processos podem ser vistos pela ótica do Business Process Management – BPM, visando uma melhoria contínua. Portanto, uma ferramenta Business Process Management Suite – BPMS permite o mapeamento organizacional de processos em qualquer setor de uma empresa, na busca da integração funcional e proporcionando maior agilidade nas atividades envolvidas por pessoas, tarefas, máquinas e aplicações de software, para que se consiga os objetivos do negócio. E dessa forma usando modelagem de processos como o Business Process Modeling and Notation - BPMN, analistas de negócio podem criar uma 14 documentação dos modelos criados e assim possibilitar o melhor entendimento dos processos da empresa em diferentes níveis, tornando de fácil compreensão todo o processo para todos os envolvidos nele e propiciando assim uma melhoria contínua que pode ser observada por todos os membros do processo. Com isso, os processos de uma organização devem passar pela análise ASIS e TO-BE e logo em seguida serem postos em execução, através de uma ferramenta Business Process Management Suite - BPMS para que possa ser controlado, monitorado, medido e melhorado, identificando novos pontos de melhoria e retornando ao início do ciclo (ABPMP, 2013). 1.1 JUSTIFICATIVA Para justificar a elaboração desse projeto, deve ser evidenciado que a ideia surgiu da intenção em medir o desempenho do desenvolvimento de um sistema para testar duas metodologias de desenvolvimento, uma com técnicas de programação convencional e outra usando os conceitos do BPM, com o uso de uma ferramenta BPMS. Também se deve essa medição, ao que foi verificado nos processos diários de transferências de turnos de alunos do técnico, em uma Instituição Federal de Ensino. Então este trabalho visa realizar uma comparação entre uma ferramenta de BPMS e programação de forma tradicional, tentando evidenciar a necessidade do uso de ferramentas voltadas exclusivamente para implementação e controle de processos de negócios em conjunto com web services desenvolvidos utilizando linguagem de programação open source, de forma que a implementação utilizando o BPMS seja vista como rápida e confiável para fluxos de processos de negócios, que é uma demanda sempre alta para organizações com ou sem fins lucrativos, e que precisam automatizar e, ou melhorar seus processos de negócios, essa comparação visa ser feita entre um web service desenvolvido nesse trabalho, na linguagem de programação Ruby com seu framework Rails, que em português seria como caixa de ferramentas para a linguagem, e a ferramenta de gestão de processos Bizagi. E com um desenho das melhorias nos processos, poderão ser desenvolvidos equipamentos tecnológicos necessários à execução automatizada dos processos, 15 uma vez que desenvolvidos os equipamentos tecnológicos, também conhecidos como serviços web, os web services em inglês, os processos serão configurados na ferramenta Business Process Management Suite – BPMS, a fim de ser utilizada para controlar e monitorar os processos, com essa ferramenta. E os envolvidos nos processos que são os stakhoders poderão interagir a fim de entregar o resultado esperado pelos clientes do processo, neste caso, os estudantes. 1.2 METODOLOGIA Como este projeto visa realizar comparações entre técnicas recentes conhecidas por Business Process Management – BPM, ou seja, Gerenciamento de Processos de Negócios, que buscam aliar conhecimento dos trabalhos realizados pelas pessoas, colaboradoras dos processos e do fluxo interno desses processos, e também com intuito de verificar pontos de melhoria e automatização das etapas onde as tecnologias possam agilizá-los, comparando com técnicas de programação tradicionais conhecidas, como o Ruby on Rails. Então para isso, a metodologia para realização do trabalho científico, pelas características dos objetivos e do objeto de estudo, será uma pesquisa exploratória e um estudo de caso comparativo. Dessa forma para realizar a pesquisa exploratória serão necessários equipamentos de tecnologia da informação e comunicação, assim como o domínio de conhecimentos em desenvolvimento de software, linguagem de programação orientada a objetos, que nesse trabalho será aplicada através da linguagem Ruby utilizando seu framework Rails, que facilita a criação de aplicações direcionadas a conteúdo web com o uso de web services. Então o fluxo na Figura 1, descreve a metodologia do processo de criação deste trabalho, o gráfico demonstra as atividades realizadas, passando por todas as etapas durante a concepção do trabalho, como a instalação das ferramentas computacionais necessárias para o desenvolvimento do projeto. Assim sendo, na primeira etapa com instalação e configuração de servidor, configuração da rede a ser usada, instalação e configuração da ferramenta BPMS, 16 bancos de dados, instalação e configuração de framework e interpretador da linguagem a ser usada nesse projeto, neste caso Ruby com seu framework Rails. No que se trata, na segunda etapa a elaboração de um diagrama AS-IS para mapear o processo como está sendo executado no momento o “COMO É”, antes de passar pelo ciclo de melhorias BPM, seguido da elaboração de um diagrama TO-BE, que demonstra como um processo deveria ficar “COMO DEVE SER”, também em notação BPM. Então, após elaborado o diagrama TO-BE, foram seguidos dois fluxos de desenvolvimento, um com a elaboração de um web service em Ruby on Rails que fornece os serviços que são consumidos pela ferramenta Business Process Management Suite – BPMS, ferramenta que implementa todo o fluxo de controle do processo. Assim como, após o desenvolvimento nas etapas anteriores, em seguida, respectivamente foram realizados os testes, e logo após os dois testes serem realizados, foi possível realizar a análise de resultados colocando o projeto em funcionamento. Figura 1: Diagrama de fluxo de trabalho do projeto. Fonte: elaboração própria 17 1.3 OBJETIVOS Para que os objetivos sejam alcançados, serão necessários equipamentos de tecnologia da informação, servidores de internet e seus componentes, modelagem de processos de negócio usando notação BPMN – Business Process Management and Notation. Assim, para conseguir o objetivo de avaliar a eficácia do estudo, será realizado um estudo de caso aplicado a uma organização real que esteja utilizando os conceitos de gestão por processos e que necessita automatizar tarefas mapeadas e desenhadas em ferramenta Business Process Management Suite BPMS. Então o mapeamento será feito nos principais processos de pedidos e requisições de alunos ao setor de Registro Acadêmico, tais como: transferências, trancamentos de matrículas, boletins, segundas vias de documentos, certidões, etc, mapeamento esse que possibilitará o alcance do objetivo de comparação das metodologias. Ao fim será possível medir e comparar o conhecimento obtido e necessário para desenvolvimento usando as duas tecnologias distintas, medir e comparar todas as tarefas necessárias para o desenvolvimento usando cada tecnologia. E também verificar os recursos e facilidades proporcionados por cada uma das duas tecnologias, podendo verificar assim se o uso das duas tecnologias em conjunto traz benefícios para o gerenciamento, controle e melhoria contínua de processos ou se o uso em separado mostra-se mais promissor. Para isso visa a criação de um web service, sendo assim, um provedor de serviços pela internet em linguagem open source, Ruby on Rails e o desenvolvimento de uma aplicação Bussiness Process Management Suite para consumir os serviços oferecidos pelo web service, e para que haja um baixo acoplamento entre as tecnologias, podendo ser usada qualquer ferramenta Business Process Management Suite, além da que será utilizada nesse trabalho. Também para alcançar o objetivo final, optou-se pelo desenvolvimento das atividades do processo em si, em um web service, que será desenvolvido utilizando 18 a linguagem Ruby on Rails por ser uma linguagem open source, e assim a aplicação desenvolvida em BPMS que, apenas consumirá os serviços e assim poderá realizar, gerenciar e controlar o processo de transferência de turno do ensino técnico e poder existir a comparação entre as duas tecnologias. Desta maneira, para a comparação será desenvolvido um protótipo de Portal do Estudante na internet utilizando conceitos de gerenciamento de processos de negócios BPM com um desenvolvimento tradicional, tanto um quanto o outro utilizando o desenvolvimento de sistemas a partir de servidores web, ou web services, e mapeando os processos relativos aos serviços prestados pelo setor de Registro Acadêmico – RA, e assim poder verificar os resultados dessa comparação e possibilitando a implantação de uma ferramenta de documentação, controle e monitoramento de processos de negócios. Dessa forma, também para alcançar o objetivo final de comparar as duas metodologias distintas, será feito uma comparação das documentações dos dois métodos, o de desenvolvimento tradicional em relação ao método baseado em suporte ao processo por meio de integração com a ferramenta de execução de processos, fazendo com que a análise possa trazer os dados necessários para uma melhor implantação de um fluxo de processos, que possa suprir da melhor forma possível as necessidades de um cliente final, possibilitando também, através dos conceitos de gerenciamento de processos, aplicar o conceito de melhoria contínua, que proporciona o gerenciamento de processos do BPM. 1.4 OBJETIVOS ESPECÍFICOS: São objetivos específicos deste trabalho: • Comparar duas metodologias totalmente distintas. • Verificar se as dua metodologias podem funcionar em conjunto, para um melhor gerenciamento do processo. • Desenvolvimento de sistemas através de web services. • Gerenciar as atividades realizadas pelo web service, através de uma ferramenta de gerenciamento de processo BPMS. • Aplicar os conceitos de melhoria contínua. 19 • Desenvolver ferramentas utilitárias em código aberto e disponibilizá-la para toda a comunidade através do Portal do Software Livre. • Ao final poder comparar as tecnologias separadamente e em conjunto, para verificar se o funcionamento em conjunto, ou em separado se mostra a melhor opção para a gerência de processos. 20 2 GESTÃO POR PROCESSOS Dentro do atual contexto brasileiro, há uma série de fatores que têm influenciado as organizações com ou sem fins lucrativos a utilizarem ferramentas que possam ajudar na melhoria da prestação dos serviços, neste sentido serão abordados temas teóricos para embasar o estudo ora apresentado. Dessa maneira, segundo Freire et al. (2015) é possível entender, que para cada mudança, levando em conta o dinamismo da gestão por negócio, muitos esforços se mostram necessários na hora de adaptar os sistemas computacionais desenvolvidos com conceitos de programação tradicional, esses esforços se traduzem em um planejamento e execução de um projeto de mudanças, que demandará analises parciais de sistemas, com alterações no código dos softwares, também serão necessários testes, checagens e formas de garantir a qualidade. Então demonstrando que todo o processo de manutenção ou adaptação de software demanda muitos recursos humanos, materiais e principalmente tempo. Para isso em seu trabalho, é buscado um debate em que os conceitos de desenvolvimento de software usando os conceitos de BPM se mostra necessário, visto o dinamismo dos processos de negócio. Onde os conceitos de BPM propõe a formalização de uma metodologia de desenvolvimento baseada no conceito de baixa acoplagem e no uso de ferramentas Business Process Management Suite – BPMS. Portanto, para Oliveira (2010), um processo é realizado através de atividades determinadas por uma sequência na qual se pode obter um resultado, que pode ser um bem ou um serviço. Também pode ser visto como o desempenho de uma atividade ou um conjunto delas onde exista uma entrada, uma transformação e uma saída, e com isso, tem como objetivo alcançar metas. Assim o processo de negócio de uma empresa passou a ser uma unidade na qual os processos e recursos que o compõem são organizados para este fim. Ainda no que reflete Oliveira (2010), os processos são importantes, porque é através deles que as empresas exercem suas funções, pois todo e qualquer trabalho importante realizado nas empresas, faz parte de algum processo. Business Process Management - BPM configura-se em um método de gestão para gerenciar processos empresariais, onde conta com o auxílio de ferramentas tecnológicas Oliveira (2010). 21 Assim sendo, o Processo pode ser conceituado de formas variadas por muitos estudiosos, entretanto, sua essência é a mesma. O foco desse conceito está associado a entradas inputs, saídas outputs e à agregação de valor a essa saída, que poderá ser um produto ou um serviço. De acordo com Valeriano (2001), todas as atividades técnicas, gerenciais e administrativas podem ser estudadas sob a forma de processo. Gonçalves (2000, p.7) conceitua processo como “qualquer atividade ou conjunto de atividades que toma um input, adiciona valor a ele e fornece um output a um cliente específico”. Oliveira (2006, p. 8) também faz por acrescentar, ao conceituar processo, que estes têm como “finalidade de atender e, de, preferência superar as necessidades e expectativas dos clientes externos e internos da empresa”. E também, de acordo com a ótica de Cruz (2008) sobre o BPMS existem várias e diferentes abordagens sobre este tema, assim como diversas classificações para as tecnologias que compõem o conjunto suíte. Todos os especialistas em BPMS falam dele como um conjunto de tecnologias cuja a finalidade é a de facilitar a construção de sistemas que integrem completamente o ambiente de negócio de qualquer organização. É por isso que a arquitetura de Caixa de ferramentas o framework BPMS foi construída com tecnologias emprestadas de outros ambientes. Esta estrutura, conhecida como BPMS Suíte, é mais uma tentativa de explicar porque BPMS pode fazer mais do que qualquer software de Fluxo de Trabalho um workflow existente até então. Desta forma novos desafios passaram a exigir abordagens que superassem a orientação dos modelos gerenciais anteriores e que compreendessem e explicassem o comportamento das variáveis organizacionais (VALLE e OLIVEIRA, 2009). O conceito de Gestão por Processos, chamado de BPM busca observar o funcionamento da empresa de maneira horizontal em contraponto à tradicional Gestão por Funções, ou seja, ela deve ser vista não apenas como na forma de um organograma, onde as ações e decisões são tomadas verticalmente, de maneira estritamente departamental, mas sim entendendo que seus processos, em sua maioria, envolvem diversas áreas e funções paralelas e para que os mesmos gerem melhores resultados, necessitam comunicar-se entre si, de maneira independente de hierarquias tradicionais. 22 Então para ver a organização a partir de seus processos significa focar mais na ação (a atividade de trabalho) do que na estrutura (as funções, os departamentos). Para Souza, Dávila e Donadel (2009), a visualização horizontal da organização focada no cliente, proporciona uma maneira mais efetiva de se enxergar a cadeia de valor, facilitando o processo de decisão entre, por exemplo, terceirizar ou não um processo. Dessa maneira, para Cruz (2010), deve-se ter em mente que um fator determinante para o sucesso da implantação da Gestão por Processos é o envolvimento da alta direção da companhia no sentido de ser o grande incentivador, patrocinando o projeto tanto no que diz respeito ao investimento em recursos necessários, tais como softwares e infraestrutura, quanto na contratação, qualificação e treinamento dos profissionais envolvidos no projeto. Também é esperado da alta direção a participação na definição das metas e objetivos e sua atuação em apresentações, ouvindo as pessoas, impondo regras e restrições, avaliando resultados e cobrando soluções. E também, Valle e Oliveira (2009) afirmam que antes de focar no processo individualmente, a Gestão por Processos consiste de um ciclo de vida no qual a organização é estudada desde a classificação e priorização dos principais processos, que são aqueles que mais impactam o negócio, passando pelo mapeamento dos mesmos. Só então, de acordo com Cruz (2010) são iniciadas as fases de análise inicial das necessidades ou do problema, partindo em seguida para a documentação, desenho e análise do processo atual e na sequência para a análise, redesenho ou modelagem do novo processo onde também são definidas as métricas e indicadores necessários para se controlar o novo processo e, finalmente, a implantação do novo processo, com as melhorias identificadas para que então o processo passe a funcionar na prática e então ser monitorado e avaliado com o objetivo de identificar possíveis problemas e dificuldades e tratá-los com a implementação de ações corretivas de acordo com os objetivos de melhoria contínua. 23 Figura 2: Ciclo de vida BPM típico para processos com comportamento previsível. Autoria: CBOK, 2013 Com isso, o Business Process Management – BPM Gerenciamento de processos de negócios é uma abordagem disciplinada para identificar, desenhar, executar, documentar, medir, monitorar, controlar e melhorar processos de negócios automatizados ou não para alcançar os resultados pretendidos consistentes e alinhados com as metas estratégicas de uma organização, (ABPMP, 2013), demonstrado na Figura 2. Dessa forma, por ABPMP (2013) Processos de negócio devem ser gerenciados em um ciclo contínuo para que possa manter sua integridade e permitir a transformação. Business Process Management - BPM implica em um comprometimento permanente e contínuo da organização para o gerenciamento de seus processos. Isso inclui um conjunto de atividades, tais como modelagem, análise, desenho, medição de desempenho e transformação de processos. Tem que existir uma continuidade, um ciclo com feedback, uma resposta sem fim para assegurar que os processos de negócio sempre estejam alinhados com a estratégia organizacional e ao foco do cliente. Assim sendo, o planejamento é o ciclo de feedback que assegura a manutenção do processo em meio à mudança no ambiente, permitindo a melhoria contínua ao longo do tempo. 24 Análise de processos envolve a compreensão de processos de negócio, incluindo sua eficiência e eficácia para atendimento dos objetivos para os quais foram desenhados. Então o desenho de processos é a concepção de novos processos de negócio e a especificação de como esses funcionarão, serão medidos, controlados e gerenciados. Desta forma a Implementação trata os esforços de transição de um novo processo de negócio “TO-BE” para operar em produção. Neste sentido o Monitoramento e Controle é o gerenciamento de desempenho de processos, é o monitoramento formal e planejado da execução de processos e o acompanhamento do desempenho com o objetivo de apurar a eficiência e eficácia dos processos. Assim como o Refinamento é uma simulação, presente quando introduzimos dados reais – e não apenas previsões – em nosso modelo. O conceito de baixo acoplamento presente no conceito de BPM é uma característica que mostra a necessidade das organizações de se tronarem mais flexíveis, de acordo com os fenômenos externos que influenciam as atividades internas e se mostram de suma importância na gestão empresarial (WEICK e SUTCLIFFE, 2001). Assim sendo, com o baixo acoplamento, é possível existir independência entre tecnologias distintas, que podem coexistir de forma a melhorar um processo, tornando seu produto final mais seguro e confiável atrelado a uma manutenção que pode ser aplicada de forma simples, não havendo a necessidade de novas análises, vastas codificações que demandam muito esforço e tempo. Podendo ser alterada cada tecnologia no momento que for necessário. 25 3 3.1 TECNOLOGIAS EMPREGADAS Ferramentas de gestão de processo As ferramentas de processo também conhecidas por Business Process Management Suites ou Systems - BPMS são conjuntos de sistemas que automatizam a gestão de processos de negócio, tais como modelagem, execução, controle e monitoramento. Tipicamente, inclui o mapeamento dos processos de negócio ponta a ponta, desenho dos fluxos e formulários eletrônicos, definição de workflow, regras de negócio, integradores, monitoramento em tempo real das atividades e alertas. Dessa forma é uma poderosa ferramenta de gestão, para garantir que os processos estão sendo efetivamente executados como modelados, contribuindo para os objetivos da organização. E também existem várias ferramentas para modelagem Business Process Management - BPM, dentre elas, as mais conhecidas são Bizagi, Bonitasoft e Intalio, dentre essas a escolhida para esse projeto foi a ferramenta Bizagi por sua facilidade de uso, simplicidade e por ser a mais completa dentre as três ferramentas anteriormente citadas, como pode ser comprovada pela análise feita no trabalho final Trennepohl (2014). Dessa forma, o trabalho de Trennepohl (2014) evidencia a preferência pelo uso da ferramenta Bizagi fazendo uma análise individual das três ferramentas anteriormente citadas, com critérios de aceitação. Portanto, uma das funcionalidades que pode ser destacada no Bizagi é de gerar automaticamente em todo projeto Bizagi, todo o gerenciamento do fluxo do processo, gerando também todos os gráficos necessários para análises gerais de todo o fluxo. Desta maneira a ferramenta Business Process Management Suite Bizagi torna a forma de elaboração e concepção de um processo bem simples, pois já traz toda interface gráfica pronta, sendo preciso apenas arrastar e soltar todos os elementos que o desenvolvedor julgue necessário estar em uma determinada tela. 26 Então assim, estão prontos também em um projeto Bizagi toda a implementação de um fluxo de processo, toda implementação de criação de usuários e logins para os mesmos, somado a seus papéis bem definidos, toda a implementação de persistência em banco de dados, não sendo necessário que o desenvolvedor tenha grandes conhecimentos sobre criação de bancos de dados, tabelas e persistência, pois isso encontra-se pronto em qualquer projeto Bizagi, bastando apenas que o desenvolvedor defina na própria ferramenta os nomes de tabelas e campos que serão criados, no estilo arrastar e soltar, sendo necessário o mínimo de programação para a concepção de um processo com início, meio e fim. Para tal, uma aplicação Bizagi traz consigo também totalmente pronta, sem que seja necessário nenhuma programação, uma sessão de relatórios com estatísticas e gráficos detalhados que podem ser vistos em um exemplo na figura 3. Figura 3: Gráfico de tendência Fonte: elaboração própria E assim sendo, a Figura 3, traz um gráfico de análise de tendência de ativações de processos em um intervalo de tempo, junto com outro gráfico de atividade de processo, possibilitando o controle da quantidade de processos iniciados, encerrados ou abortados em um intervalo de tempo, mais à direita também é possível visualizar uma tabela com o resumo das atividades de processo 27 que pode ser salva no formato xls, nativamente fornecido pela ferramenta BPMS, nesse caso o Bizagi. Dessa maneira, a sessão de relatórios da ferramenta não se resume apenas aos gráficos mostrados na figura 3, existe toda uma gama de relatórios gerados automaticamente pela ferramenta, relatórios que possibilitam um controle total do fluxo do processo do início ao fim, onde pode ser visualizado em tempo real, o estado do processo, para ilustrar pode-se visualizar isso em mais um exemplo de gráfico gerado automaticamente pela ferramenta BPMS na figura 4. Figura 4: Gŕafico de caminhos frequentes no fluxo do processo. Fonte: elaboração própria Portanto, neste gráfico na Figura 4, gerado pela ferramenta BPMS, é possível visualizar os caminhos frequentemente percorridos pelo fluxo do processo em uso, trazendo um melhor controle do processo como um todo. Para um melhor controle e analise do processo, a ferramenta BMPS usada nesse projeto traz muitos outros gráficos gerados e implementados automaticamente, de forma a deixar o desenvolvedor preocupado apenas com as características do processo em si, tirando o foco da programação, tornando assim o uso da ferramenta de fácil utilização para um usuário leigo em programação, criação de banco de dados e desenvolvimento de interfaces gráficas. 28 Figura 5: Gráfico de fluxo gerado pelo Bizagi Fonte: elaboração própria O Bizagi1 é um modelador gráfico de processos muito utilizado no mercado, onde o processo de negócio pode ser modelado e especificado utilizando uma notação específica da metodologia, a notação BPMN. Assim sendo, o modelador da notação BPM embutido contém vários elementos necessários para a criação de um projeto BPM, os principais elementos podem ser vistos nas imagens abaixo da Figura 6 até a Figura 9. Também serão demonstradas algumas das principais fases utilizadas para a criação de um projeto Bizagi, começando pela modelagem BPM mostrada na Figura 10 e a importação de arquivo xml ou json para conexão Representational State Transfer - REST, Figura 11. Então a Pool na Figura 6 é utilizada para representar uma atividade, é na pool que ficarão todos os elementos da notação como tarefas, conectores, círculos de representação inicial e final e outros, um conjunto de artefatos da notação que inseridos na pool da Figura 6 representam um processo, que pode ser completo ou parcial, alguns dos elementos serão explicados a seguir. 1 Portal Bizagi. Disponível em: <http://www.bizagi.com/>. Acesso em 20 de janeiro de 2015. 29 Figura 6: Pool de um projeto Bizagi. Fonte: elaboração própria Desta forma, a Lane na Figura 7 utilizada para organizar e categorizar os papéis e responsáveis dentro de um pool/Atividade. É permitido somente um nome de responsável por lane e pode-se inserir mais de um lane indicando o responsável. Figura 7: Lane de um projeto Bizagi. Fonte: elaboração própria 30 Assim sendo, o circulo inicial e conectores respectivamente utilizados para simbolizar o início de um projeto Bizagi e conectores utilizados para mostrar a ordem e sequência em que as atividades serão executadas, os conectores fazem a ligação entre os elementos da notação em um fluxo BPM, como é demonstrado na imagem a seguir, em que uma tarefa representada por um retângulo é conectada ao círculo, que representa o início de um fluxo. Cada fluxo tem só uma origem e um só destino. Figura 8: Circulo inicial e conectores de um projeto Bizagi Fonte: elaboração própria Assim, essas tarefas são sempre representadas por um retângulo, como pode ser visualizado na imagem abaixo, são usadas para demonstrar uma ação da atividade. Sempre utilizar o verbo infinitivo para descrever o nome da ação. Figura 9: Retângulo de tarefa de um projeto Bizagi. Fonte: elaboração própria 31 Com a representação de um exemplo de modelagem BPM no Bizagi, utilizando os elementos de notação anteriormente citados. Na Figura 10, mostra-se um TO-BE de um processo completo, demonstrando como um processo deve ser depois de passar pelo ciclo de melhorias do Business Process Management – BPM em um AS-IS que mapeia como o fluxo está sendo executado, no TO-BE é possível observar como um processo deve ser, depois de automatizado. Figura 10: Exemplo de modelagem BPM no Bizagi Fonte: elaboração própria Nesse sentido, a conexão REST no Bizagi é feita de forma gráfica, para isso é preciso que seja importado para a aplicação um arquivo no formato xml ou json para conectar os atributos de um serviço na web, um web service aos atributos da aplicação a tela gráfica de importação do arquivo para a ligação REST, que são mostradas na Figura 9 para demonstração. 32 Figura 11: Importação de arquivo xml ou json para conexão REST no Bizagi Fonte: elaboração própria 3.2 Ruby2 É uma linguagem de programação de fácil entendimento com uma sintaxe enxuta, adota-se na linguagem o termo sugar sintaxe para representar uma sintaxe mais limpa, próxima a textual que se assemelha a um texto corrido. Linguagem que usa um interpretador para rodar suas aplicações, a linguagem facilita a produtividade a reutilização de código. 3.3 Rails3 É um framework para a linguagem Ruby, direcionado ao desenvolvimento de aplicações web. Propicia a produtividade sustentável e prevê uma diversão enquanto se programa segundo o site oficial Rails. 2 Portal Ruby. Disponível em:<https://www.ruby-lang.org/pt/>. Acesso em 04 de abril de 2015. Portal Rails. Disponível em: <http://rubyonrails.org/>. Acesso em 03 de abril de 2015. 3 33 Então, o framework favorece a convenção ao invés da configuração, permitindo a criação de códigos de forma elegante, limpa e com grande produtividade. E também é possível desenvolver aplicações web com as conhecidas telas de cadastro, croods simples, em questão de minutos, o desenvolvedor não precisa se preocupar com as configurações e pode se dedicar, quase que exclusivamente com o desenvolvimento em si, gerando assim alta produtividade como simplicidade e rapidez. 3.4 Gems São pacotes de código em Ruby que podem ser instalados para estender ou adicionar funcionalidades em sua aplicação. O arquivo Gemfile é onde especifica-se as gems que pretende-se usar, permite especificar suas versões. Dessa forma, o arquivo Gemfile.lock é, onde o Bundler guarda as versões exatas que foram instaladas. Dessa forma, quando um projeto ou biblioteca é instalado em outra máquina, utilizar o comando “bundle install”, o Bundler ira checar o arquivo Gemfile.lock e instalar exatamente as mesmas versões, pois instalar versões diferentes em máquinas diferentes pode causar erros no projeto. Dessa forma, Gems são semelhantes a plugins, mas possuem diferenças, por exemplo Gems são códigos Ruby que são instalados em uma máquina e ficam disponíveis para todas as suas aplicações Ruby, como “rails” e “rake”, plugins também são códigos Ruby, mas são instalados apenas na aplicação em que estão inclusas. Então a Gem pg é a interface Ruby para conexão PostgreSQL RDBMS 4. Ele funciona com PostgreSQL5 8.4 ou mais, também é possível obter todas as informações relacionadas a instalação e configuração da Gem no link. Dessa forma a Gem devise é outra principal gem utilizada na aplicação, foi a gem '‘devise’' utilizada para autenticação de usuários de forma simples de se incorporar à aplicação. Instalação e configuração da gem '‘devise 6’' no link encontrado no rodapé. 4 PostgresSQL. Disponível em: <http://www.postgresql.org/>. Acesso em 21 de janeiro de 2015. GitHub inc. Disponível em: <https://github.com/ged/ruby-pg>. Acesso em 13 de abril de 2015. 6 GitHub inc. Disponível em: <https://github.com/plataformatec/devise>. Acesso em 27 de julho de 2015. 5 34 3.4.1 GEMS PARA CONEXÃO MICROSOFT SQL SERVER A UM S.O UNIX FreeTDS7 é um conjunto de bibliotecas para sistemas operacionais que utilizam Unix como base, a biblioteca do FreeTds depois de instalada, permite que os programas possam se comunicar de forma nativa com Microsoft SQL Server, e bancos de dados Sybase. E de forma técnica, o conjunto de bibliotecas do FreeTDS, é uma versão open source do Tabular Data Stream – TDS, que é um protocolo usado pelo banco de dados Microsoft SQL Server, Sybase. Portanto o FreeTDS também suporta protocolos dos mais variados e três Application Programming Interface APIs para o acesso a ele. E também trabalha com outros softwares, como Perl e PHP, e fornecendo acesso por essas linguagens de programação. Dessa maneira, a Gem tyny_tds8 segundo o site da mesma ela é uma forma moderna, simples e rápida biblioteca do FreeTDS, direcionada para a linguagem de programação Ruby fazendo o uso do DB-Library, que é uma interface em nível de chamada que também possibilita que aplicativos em linguagem C possam realizar o acesso ao Microsoft® SQL Server. Assim sendo, o DB-Library foi a interface de acesso original que permitiu o acesso das aplicações ao Microsoft® SQL Server, ela continua sendo muito específica para esse banco de dados. Junto a gem tyny_tds é destinada a possibilitar a conexão, consultas e iterações em bancos de dados Microsoft SQL Server pela linguagem Ruby. E tem como benefícios conversões automáticas para tipos primitivos do Ruby, aliados a alta velocidade. Realiza a conversão de todos os tipos de dados SQL Server para objetos Ruby de forma nativa. Assim sendo, segundo o site da gem tyny_tds, ela é a única biblioteca Ruby cliente que permite codificação cliente, de forma padronizada para UTF-8, quando se conecta ao Microsoft® SQL Server. Também realiza a codificação de todos os 7 Portal FreeTDS. Disponível em: <http://www.freetds.org/>. Acesso em 05 de abril de 2015. GitHub inc. Disponível em: <https://github.com/rails-sqlserver/tiny_tds>. Acesso em 13 de abril de 2015. 8 35 dados binários e strings de forma correta. E tem como foco se tornar o modo de conexão de baixo nível para Microsoft SQL Server adapter for ActiveRecord. Assim a gem activerecord-sqlserver-adapter 9 é a gem possibilita o mapeamento pelo Object Relational Mapping ORM do Rails, é um adaptador de servidor SQL para ActiveRecord usando SQL Server. 9 GitHub inc. Disponível em: Acesso em 15 de abril de 2015. <https://github.com/rails-sqlserver/activerecord-sqlserver-adapter>. 36 4 ESTUDO DE CASOS No capítulo de estudo de casos é demonstrado todo o processo de levantamento de requisitos através da elaboração de documentação uml, mapeando as necessidades tecnológicas, também através de testes realizados com as tecnologias usadas para que houvesse a certeza de que seria possível prosseguir com o trabalho. Desta forma a documentação UML foi usada para mapear as classes utilizadas pela aplicação e também as classes do banco de dados preexistente que viria ser usado nesse trabalho. Assim no capítulo de estudo de casos também é demonstrado todos os resultados obtidos durante demonstrações de telas o processo de desenvolvimento, através de que demonstram o funcionamento do web service desenvolvido Ruby on Rails efetuando as tarefas do processo de transferência de turno do técnico, juntamente, as demonstrações de telas da ferramenta BPMS, que consome os serviços do web service e possibilita o gerenciamento de todo o processo e também possibilitando a visualização de possíveis melhorias adotadas pela metodologia BPM utilizada nesse trabalho. A fim de demonstrar o desenvolvimento de um web service, a comparação e junção de duas tecnologias distintas. Dessa forma os web services, são aplicações que via internet ou intranet, funcionam como aplicações servidoras disponibilizando serviços para máquinas clientes, comunicando-se por protocolos padrões da internet, como o Representational State Transfer REST, que é uma abstração da arquitetura World Wide Web o popular www e também através do protocolo Simple Object Access Protocol SOAP, utilizado para fazer a troca de informações estruturadas de forma descentralizada. Esses serviços podem ser acessados em forma de Application Programming Interface API, e podem ser disponibilizados em vários formatos, como os mais conhecidos estão os formatos xml e json, através desses formatos, é possível que uma máquina cliente consuma os serviços de um web service, realizando a tarefa no servidor através de uma aplicação cliente. 37 Dessa maneira, o AS-IS é a documentação elaborada através de um levantamento da situação do processo, representada em fluxo de diagrama da situação atual do processo. Neste momento, também levantam-se os problemas ou fragilidades, bem como as oportunidades de melhoria do processo. Funciona para entender os objetivos do processo, no levantamento dos problemas, é possível verificar a burocracia do processo, falta de planejamento, verificar atividades que não agregam valor, prazos de execução do processo, riscos, ameaças externas, custos do processo e muitos outros problemas existentes no processo. Desta forma a modelagem AS-IS do processo de transferência de turno do curso técnico é realizado atualmente, demonstrando também que o cliente do processo de negócio, nesse caso o aluno, precisa realizar a maioria das atividades fisicamente, e atividades essas, sem nenhum controle de fluxo, não existe uma estimativa do tempo em que determinada atividade será realizada tão pouco existe a certeza de que será realizada, a demonstração é feita utilizando a ferramenta Bizagi Modeler nas Figuras 12 e 13. Figura 12: Diagrama da análise AS-IS de transferência de turno do curso técnico Fonte: elaboração própria Também assim, a modelagem TO-BE representada na Figura 13, demonstra como o processo de transferência de turno deverá ficar após automatização, também demonstrando que as atividades dos clientes, que são alunos, são 38 reduzidas e somente são realizadas as atividades que são obrigatoriamente presencial pelo mesmo, deixando a maioria das atividades a cargo do sistema, com o TO-BE é possível, já nesta fase perceber as possíveis melhorias a serem aplicadas ao processo, em relação ao diagrama AS-IS que demonstra as atividades de forma burocráticas sendo em sua maioria, executadas de forma presencial, demandando muito esforço e trabalho, principalmente pelo cliente final o aluno, como pode ser observado, a maioria das tarefas foram automatizadas, a fim de trazer agilidade ao processo, e tornando-o menos burocrático. Assim, nas atividades automatizadas onde, tanto na raia de aluno quanto na de coordenador eram feitas de forma presencial como demonstrado na Figura 12, já na Figura 13 onde se demonstra o TO-BE, essas tarefas que possuem um ícone de engrenagem, são as automatizadas, totalmente realizadas por um web service através da ferramenta de gerência de processos. Assim como, a primeira atividade automatizada denominada Verifica Existência executa no web service uma atividade que verifica no banco de dados, se a matrícula inserida no formulário anterior, realmente é uma matrícula existente no banco de dados, em seguida a atividade Verifica Pendência, faz a verificação de uma possível pendência no banco de dados da biblioteca, caso exista, impossibilita o pedido de transferência, sendo direcionado para a tarefa com o nome de Possui pendência e em seguida finalizando o fluxo. Se não houver pendência, o fluxo segue e passa por uma atividade automatizada que recupera o nome do aluno solicitante do pedido de transferência, através do número de matrícula digitado no primeiro passo. Assim seguindo o fluxo de aluno existente e sem pendência na biblioteca, a próxima atividade automatizada no TO-BE, a atividade com o nome Busca dados, recupera do banco de dados Academico os dados da turma e turnos que o aluno solicitante está. E em prosseguimento ao fluxo, os dados recuperados na atividade anterior são mostrados ao aluno e em seguida de forma automatizada em outra tarefa denominada como Pedido realizado, pega os dados da turma e turno onde o aluno se encontra, junto com os dados da opção de turno e turma disponíveis para este aluno e monta um pedido de transferência que será confirmado pelo aluno na 39 próxima atividade em um formulário chamado de confirmação de pedido. Após confirmar o pedido, a ferramenta BPMS automaticamente passa para a próxima atividade que executa através do web service uma persistência de dados, gerando o pedido de transferência, indo em seguida para uma atividade de responsabilidade do coordenador que através de um Aceite como denomina a próxima atividade que em um formulário recebe o aceite de uma enturmação que será realizada na última tarefa automatizada, ou negada indo direto para a tarefa de Enturmação indeferida e em seguida encerrando o processo. Sendo assim, aceita a enturmação o fluxo se encaminha para a atividade Enturma que através do web service, faz a transferência do pedido realizado pelo aluno, com um feedback de que a enturmação foi efetivada na tarefa enturmação deferida, em seguida finalizando o processo com uma transferência realizada com sucesso. Figura 13: Diagrama da análise TO-BE de transferência de turno do curso técnico Fonte: elaboração própria Também na figura 14 é mostrada uma representação em Unified Modeling Language - UML da aplicação com todas as suas classes, a classe Find é responsável pela busca e validação dos dados do aluno, com o pedido efetuado e finalizando o fluxo na parte do aluno, automaticamente o status do pedido muda 40 para um novo pedido, ficando o fluxo de um novo pedido sendo manipulado pela classe Transfer. Dessa forma, se o pedido for indeferido por um coordenador, os dados do pedido automaticamente serão manipulados pela classe Refused_Transfer. Quando o pedido é deferido, os dados do pedido de transferência são manipulados pela classe Performed_Transfer, assim, essas classes são responsáveis por realizar todas as atividades do processo de transferência de turno do técnico, desde o pedido, até a enturmação. Figura 14: Uml da aplicação de tranferência de turno. Fonte: elaboração própria Também, na Figura 15, uma representação em UML de todas as classes de modelo do banco de dados legado que está sendo mapeado pela aplicação de transferência, as tabelas são preexistentes e povoadas por dados do banco de dados Academico. 41 Nenhuma dessas tabelas foi gerada pela aplicação, estão sendo apenas mapeadas e utilizadas pela aplicação de transferência de turma de forma a possibilitar todas as operações em bancos de dados, tais como recuperação, alteração, inserção e deleção de dados. Figura 15: Classes mapeadas pelo web service Fonte: elaboração própria Para isso, as classes representadas na Figura 15 são apenas classes em nível de modelo, utilizadas apenas para a conexão com o banco de dados externo e legado, banco de dados Academico, classes usadas apenas para buscar os dados, já que a aplicação faz uso de dois bancos preexistentes. De forma que a classe Pessoa é responsável pela conexão com a tabela Pessoas no banco de dados Academico. Com o mapeamento dessa classe é possível que a aplicação através do Object relational mapping - ORM do Rails possa mapear todas as colunas contidas na tabela automaticamente, sendo preciso ser configurado manualmente na classe apenas a chave primária da tabela em questão. 42 Assim sendo, a classe Aluno é responsável pela conexão com a tabela Alunos no banco de dados Academico. A classe Aluno é usada pela aplicação para mapear a tabela Alunos contendo alguns métodos em sql para a busca dos dados utilizados internamente pela aplicação, com o auxílio do ORM do Rails, é preciso configurar manualmente apenas a chave primaria da tabela em questão e a chave estrangeira da tabela de relacionamento. Tanto quanto, a classe Matrícula é responsável pela conexão com a tabela Matriculas que contém os dados referentes a matrícula de um aluno, e são utilizados pela aplicação. Assim sendo, aplicação mapeia em nível de modelo implementando alguns métodos que utilizam sql para buscar dados da matrícula de um aluno com o auxílio do ORM do Rails da mesma forma que foi explicada anteriormente. E dessa forma, a classe Turma é responsável pelo mapeamento da classe Turmas no banco de dados Academico, utilizando alguns métodos em SQL para buscar os dados refentes a um aluno pertencente a uma determinada turma, e que fez uma solicitação de transferência de turno. Esses dados referentes a turma em que o aluno solicitante está no momento, e a turma para que o aluno deseja a transferência, dados esses que são recuperados na tabela Turmas, através da classe Turma, que faz seu mapeamento na aplicação para gerar um novo pedido de transferência, essas são as 4 principais classes responsáveis pela transferência de turno. No tocante, a classe biblioteca mapeada pela aplicação de transferência de turno, se conecta a tabela nada_consta do banco de dados preexistente da “Biblioteca”, banco esse fictício, pois não foi liberado acesso ao banco de dados da biblioteca do Instituto Federal Fluminense, para tal foi preciso ser criada uma abstração do banco real para simular o uso do banco da biblioteca da instituição, essa classe apenas faz o mapeamento para conexão a tabela nada_consta, sem a necessidade de conhecimento de toda tabela, ela conhece apenas o id da tabela, deixando o resto para a responsabilidade do ORM do Rails que através do id mapeia toda a tabela do banco pré existente. 43 Dessa forma, para a realização do projeto foram utilizadas bases de dados reais do Sistema Academico que utiliza o Microsoft Sql Server. Para tal, testes de conexão entre uma aplicação simplista em Ruby on Rails que nativamente não se conecta a uma base de dados Microsoft Sql Server. Portanto, rodando em um Sistema Operacional Linux foram realizados testes, esses envolvendo configurações realizadas no Sistema Operacional tanto no Linux rodando a aplicação em Ruby on Rails quanto no Sistema Operacional Windows 7 utilizado como Servidor, como Base de dados Microsoft Sql Server e internamente na aplicação. Também pode ser visualizado na Figura 16 um teste de conexão ao banco de dados Academico onde todas as operações de crood estão funcionando. Figura 16: Index com dados alterados no Microsoft Sql Server. Fonte: elaboração própria Assim sendo, a aplicação para transferência de turno de cursos técnicos foi desenvolvida primeiramente em Ruby on Rails, as telas de front-end a seguir mostram a interface gráfica visualizada pelos usuários consumindo os serviços do web service, em html, que posteriormente fornecerá, após adaptações serviços no formato xml para acesso e consumo externo por uma ferramenta Business Process Management Suite. 44 E dessa maneira, a primeira tela da aplicação Figura 17, mostra a tela de login gerada pela gem '‘devise’' que possibilita a criação de um novo usuário, login na aplicação, recuperação de senha e pedido de confirmação de e-mail. Figura 17: Tela de verificação de pendências na biblioteca. Fonte: elaboração própria Assim também, na tela a seguir, representada pela Figura 18, após o login de usuário é permitido o acesso para usuários do tipo aluno e coordenador, com acesso exclusivo para cada tipo de usuário, não possibilitando o acesso de um aluno ao conteúdo restrito ao coordenador. Figura 18: Tela de acesso, após o login Fonte: elaboração própria 45 Como sendo, a tela ilustrada pela Figura 19, mostra a tela inicial, para um usuário do tipo aluno que deseja solicitar uma transferência de turno para um curso técnico. Para que o processo de solicitação seja iniciado, é preciso que o aluno não possua pendências na biblioteca. Então essa tela é para verificação de pendências na biblioteca, bastando digitar seu número de matrícula contido em sua carteirinha, se o aluno possuir alguma pendência, lhe será informado na mesma tela, que não pode continuar com o processo de solicitação de transferência. Assim sendo, se não houver nenhuma pendência após inserido o número de matrícula, o processo automaticamente direciona o usuário para a próxima tela seguindo o fluxo do processo de transferência. Figura 19: Tela de verificação de pendências na biblioteca. Fonte: elaboração própria E então, demonstrando na Figura 20, é possível visualizar o turno em que está atualmente e o turno disponível para transferência, após a visualização do turno disponível, se o usuário quiser prosseguir com o processo de transferência, basta clicar em próximo para continuar o fluxo e gerar automaticamente o pedido de transferência. 46 Figura 20: Tela para visualização de turno disponível. Fonte: elaboração própria Então assim, na Figura 21, é demonstrado que a solicitação de transferência foi realizada com sucesso, essa tela funciona apenas com auxílio visual para informar o término do fluxo do processo na parte do aluno. Figura 21: Tela de confirmação de pedido de transferência realizado. Fonte: elaboração própria Portanto nessa tela de visualização exclusiva para um usuário do tipo coordenador, representada pela Figura 22, onde somente um usuário desse tipo 47 pode visualizar essas informações, não sendo possível que um usuário do tipo aluno possa visualizar este conteúdo. Nessa tela é possível visualizar todos os pedidos de transferência realizados por alunos e acessar o pedido no link “mostra pedido” que redirecionará para visualização do pedido com todos os dados complementares. Na tela a seguinte, esse redirecionamento o levará para a visão view mostrar show. Figura 22: Tela para visualização de todos os pedidos de transferência. Fonte: elaboração própria Assim também, na ilustração representada pela Figura 23 são apresentados os dados de um pedido de transferência, visualizados apenas por um usuário do tipo coordenador, para realizar a transferência requerida pelo aluno deve-se seguir o fluxo do processo clicando no link próximo, sendo redirecionado automaticamente para a tela seguinte, continuando o fluxo do processo. Figura 23: Tela para visualização dos dados de um pedido. Fonte: elaboração própria Dessa forma, Como mostrado na Figura 23 e dando seguimento ao estudo de caso, são visualizados os dados da transferência com o turno atual do aluno e para 48 qual turno será transferido na Figura 24. Para que seja deferida ou indeferida a transferência é preciso que exista uma justificativa do coordenador, se não houver não é possível deferir ou indeferir a transferência. Após inserir a justificativa e clicar em Ok, automaticamente a transferência será realizada no banco de dados Academico. E será redirecionado para uma tela de confirmação da transferência. Figura 24: Tela para confirmação da transferência. Fonte: elaboração própria Também, como pode ser visto na Figura 25, é possível visualizar a confirmação de transferência e visualizando para onde será realizada a transferência, essa tela é o final do fluxo de transferência de turno de um aluno que solicitou transferência. O fluxo será reiniciado no momento em que houver uma nova solicitação de transferência de turma realizada por um aluno, com isso podemos verificar que o fluxo de transferência de turno está completo, sendo necessário posteriormente a adaptação para que o web service forneça todos esses serviços em formato xml para que seja consumido por uma aplicação externa que faça o controle do processo de transferência em todo seu fluxo. 49 Figura 25: Tela de confirmação de transferência realizada. Fonte: elaboração própria Dessa forma, o web service que foi desenvolvido neste projeto, foi implementado em linguagem de programação Ruby com a utilização de seu framework Rails. Linguagem e framework que posteriormente teve seu código adaptado para fornecer serviços no formato xml, como era previsto durante o desenvolvimento do processo de transferência de turno, quando a aplicação apenas acessava os serviços nativamente no formato html. Linguagem e framework são de fácil compreensão e seguem os paradigmas de MVC, também facilita o uso de métodos ágeis durante o desenvolvimento, possibilidade de reutilização de códigos prontos que podem ser incorporados ao seu projeto Rails de forma simples através da utilização de gems. Assim sendo, com a finalização do web service, fornecendo todos os serviços necessários, no formato xml, como pode ser visto na Figura 26, foi iniciada a elaboração e implementação dos processos na ferramenta BPMS Bizagi, de forma rápida e simples foram criadas as telas relacionadas a serviços que trazem informações ao usuário, a conexão dos serviços foi feita via Representational State Transfer – REST que de forma simples possibilitou a conexão ao web service que disponibiliza os serviços necessários para a realização do pedido de transferência de turno de um aluno, de um curso técnico, junto com os serviços necessários para 50 transferência no banco de dados Academico, realizado por um coordenador autorizado. Figura 26: Exemplo de resposta xml utilizada no projeto. Fonte: elaboração própria De forma que, prosseguindo com o estudo de casos, depois da implementação do web service com o processo em funcionamento, foi preciso verificar o funcionamento do web service rodando a partir da ferramenta BPMS. Para tal, testes foram realizados, com dados reais do banco de dados Academico. Usando um número de matrícula real contida no banco, foi possível então, realizar o fluxo do processo de transferência pela ferramenta BPMS que além de realizar o processo, deve gerenciá-lo e fornecer, uma melhor visualização do processo para todos os envolvidos. Também trazendo uma visualização de melhorias contínuas previstas pelo BPM. Desta maneira, nas Figuras que vão de 27 a 31, será demonstrado parte do fluxo do processo realizado pela ferramenta BPMS consumindo os serviços do web service e assim gerenciando-o. 51 Como na figura 19 que o processo de transferência de turno feito pelo web service, e visualizado em html, sem o uso de uma ferramenta de controle de processo, onde as tarefas são apenas executados, mas sem controle algum do processo. Na Figura 27 é demonstrado a mesma tela da Figura 17, mas sendo utilizada pela ferramenta de gerenciamento de processos, onde é possível ter controle do fluxo, oque não existia anteriormente. Controle esse que será demonstrado na Figura 31. Figura 27: Tela de inserção do número de matrícula do aluno. Fonte: elaboração própria De tal forma que, na Figura 20, onde temos os dados de um turno disponível para transferência, na Figura 28 temos os mesmos dados de uma forma mais enxuta, como apenas sendo visualizado pelo aluno, os dados necessários para sua transferência. Então nesse passo do processo, se o aluno quiser realizar o pedido de transferência, basta ele clicar em próximo para que seu pedido de transferência seja gerado pelo serviço do web service, que está sendo consumido pela ferramenta que, ao mesmo tempo que realiza o fluxo do processo, também gerencia todo ele, gerência essa que é representada visualmente na Figura 31. 52 Figura 28: Dados de um pedido de traferência pela ferramenta BPMS. Fonte: elaboração própria Como sendo, nessa tela representada pela Figura 29, pode-se verificar a resposta que é emitida ao aluno solicitante de uma transferência, quando ele opta por continuar o fluxo do processo, agora gerenciado pela ferramenta BPMS, controlando todo o processo. Assim quando, o aluno nessa tela clicar em próximo, ele terá finalizado a sua parte do processo. A ferramenta dará seguimento com o restante do processo, encaminhando a tarefa para um próximo usuário cadastrado no sistema, como coordenador. E desta forma, a tarefa gerenciada pela ferramenta é movida automaticamente para o usuário que seja do tipo coordenador, que esteja sem tarefas ou como o menor número de tarefas pendentes. Figura 29: Resposta visual ao realizar um pedido de transferência. Fonte: elaboração própria 53 Portanto, a área gerada pela ferramenta BPMS, que gerencia todo o processo, se conectando e consumindo os serviços do web service. Esta Figura 30 mostra a área exclusiva para o usuário do tipo coordenador, que é o único que pode realizar o aceite de um pedido de transferência ou negá-lo dentro do processo. E desta maneira, a própria ferramenta, direciona automaticamente o pedido realizado por um aluno para um usuário do tipo coordenador. Também assim, nessa tela também é possível visualizar um status da tarefa representado por um círculo na cor verde, indicando que a tarefa está dentro do prazo para ser executada, esse status pode variar entre a cor amarela e vermelha. Que respectivamente representam que a tarefa está com o tempo para realização próximo de se esgotar e tempo esgotado, tempo esse que pode ser previamente configurado na ferramenta, a fim de limitar o tempo que uma tarefa deve ser executada. Figura 30: Área do coordenador, visualização de pedidos de alunos Fonte: elaboração própria Desta forma, a ferramenta para facilitar o acompanhamento do fluxo do processo gerenciado por ela, permite que de forma simples seja visualizado o caminho percorrido pelo processo e onde o processo se encontra parado, visualizado na Figura 31. Através dessa visualização gerada automaticamente pela ferramenta é possível além de visualizar onde a tarefa se encontra parada, como também na responsabilidade de qual usuário essa tarefa se encontra e a quanto tempo. Com isso é possível gerenciar todo o processo, tanto as tarefas automatizadas quanto as tarefas que devem ser executadas por pessoas, limitando tempo, área de atuação e responsabilidade, garantindo a integridade do processo 54 que pode ser de fácil visualização, proporcionando um maior entendimento do processo, por todos os integrantes do mesmo. Figura 31: Visualização do caminho do processo. Fonte: elaboração própria 55 5 ANÁLISE DE RESULTADOS Comparando as duas tecnologias utilizadas, iniciando pela mais convencional usada nesse projeto a linguagem de programação Ruby, junto com seu framework Rails, foi possível perceber que para esse tipo de desenvolvimento por mais que a linguagem e a metodologia do framework visem agilidade e facilidade na programação, nota-se que é preciso conhecimentos prévios e domínio da linguagem, de configurações do framework Rails, junto com conhecimentos de web services e banco de dados. Assim nota-se que um leigo sem os conhecimentos prévios, teria dificuldades em conceber uma aplicação igual a desenvolvida neste projeto, utilizando a programação convencional aplicada nesse projeto. Dessa forma, a análise de resultados de todas as atividades realizadas durante o desenvolvimento do projeto, vem para demonstrar as qualidades, junto com o conhecimento adquirido para cada atividade realizada, em cada metodologia de desenvolvimento. Para tal a aprendizagem da linguagem de programação Ruby on Rails, demandou-se um tempo maior que no aprendizado da utilização BPMS, vale ressaltar que o desenvolvedor não tinha familiaridade com nenhuma das duas tecnologias no início do trabalho. O conhecimento foi adquirido ao longo do desenvolvimento no trabalho. E assim sendo, na linguagem Ruby foi necessário o aprofundamento na sintaxe e na configuração do framework Rails, respectivamente com estudos mais detalhados para cada uma deles, seguindo para a próxima atividade do trabalho em Ruby on Rais, mostrou-se necessário a pesquisa das gems que seriam utilizadas no projeto. Até que todas as gems fossem definidas, não seria possível avançar para a terceira atividade. Com o Mapeamento de banco de dados que por sua vez foi a atividade onde foram mapeadas todas as tabelas a serem utilizadas no projeto, nessa atividade é que foram avaliadas quais tabelas do banco de dados Academico seriam mapeadas e utilizadas no projeto. Continuando para a quarta atividade foram definidos e criados os bancos de dados e tabelas para uso do web service, bancos e tabelas 56 que armazenam os dados obtidos no banco de dados Academico, mapeado na atividade anterior. Assim, nessa quinta atividade resume-se ao desenvolvimento da aplicação em Ruby on Rails, ou, seja no desenvolvimento do web service que fornece serviços no formato xml e as telas de front-end da aplicação. Seguindo com a próxima atividade, a sexta atividade e última foi feita a adequação das respostas no formato xml para que fossem acessíveis a que uma aplicação externa consumisse os serviços desse web service. E então, na atividade de aprendizagem da ferramenta foi preciso um rápido conhecimento da utilização, instalação e configuração da ferramenta, que se mostrou simples, feito isso, seguiu-se para a segunda atividade. Na atividade de criação de um diagrama AS-IS que mostra como o processo de transferência de turno do técnico é executado no memento, ou seja antes de passar por um ciclo de melhorias como o previsto pelo Business Process Management – BPM. De forma que após mapeado todo o fluxo de processo através do AS-IS na terceira atividade, é necessário passar o diagrama pelo ciclo de melhorias BPM. E no diagrama TO-BE é possível visualizar como o processo após passar pelo ciclo de melhorias deve ficar com as automatizações implementadas. De forma que, em uma seguinte atividade se dá o desenvolvimento de todo o processo após feito o diagrama TO-BE, a partir desse diagrama que prevê as melhorias e automatizações do processo, podemos configurar todas as tarefas do processo para que consumam os serviços externos no formato xml gerado pelo web service, que foi desenvolvido anteriormente em Ruby on Rails, na quinta atividade realizada a conexão dos serviços no formato xml vindos do web service, a cada tarefa da ferramenta Business Process Management Suite - BPMS, na sétima atividade, não foi preciso desenvolver o módulo de login de usuário, pois o mesmo já se encontra pronto em todo projeto Bizagi da ferramenta BPMS. Portanto, o esforço necessário para o desenvolvimento da aplicação em Ruby on Rails como web service, tanto quanto o esforço desempenhado para o desenvolvimento do fluxo do processo na ferramenta BPMS, sendo essa o Bizagi. 57 E durante a primeira etapa de análise do processo de transferência de turno do técnico foi necessário criar uma análise AS-IS utilizando a ferramenta Bizagi para mapear o processo como executado no momento. De forma simples o Bizagi fornece todos os elementos necessários para a criação AS-IS, e em seguida da mesma forma a elaboração de um TO-BE com as possíveis melhorias e automatizações do processo também feito pela ferramenta Bizagi. Dessa maneira, em seguida a aprendizagem e domínio da linguagem Ruby utilizando seu framework Rails foi necessário um conhecimento mais aprofundado sendo gasto muitas horas para o domínio necessário e desenvolvimento do web service, contudo após o conhecimento obtido mostrou-se fácil aplicá-los ao desenvolvimento, em contrapartida a instalação, configuração e utilização da ferramenta Bizagi, mostrou-se muito simples, tendo poucas horas gastas nesse processo. Assim sendo, durante todo processo de desenvolvimento do web service, foram encontradas algumas dificuldades que custaram o uso de algumas horas a mais como o caso envolvendo o mapeamento do banco de dados Academico onde não havia um conhecimento da organização e relacionamento das tabelas, sendo necessário verificar o padrão de relacionamento e padrão de nomes de chaves estrangeiras e primarias, para um mapeamento de todas as tabelas que acessariam o banco de dados. Outra dificuldade encontrada foi a utilização de múltiplos bancos de dados simultaneamente, pois o web service é conectado a três bancos de dados que trocam dados entre si. E desta forma, ao mesmo tempo não foi possível ter acesso ao banco de dados da biblioteca onde o web service deveria verificar alguns dados necessários a transferência de turno do técnico, para isso, então foi criada uma abstração do banco de dados da biblioteca simulando alguns dados para validar a abertura de um pedido de transferência, após o mapeamento, algumas adaptações foram necessárias para o funcionamento da aplicação em Ruby on Rails como web service adaptações que se mostraram simples através de métodos fornecidos pelo framework Rails, que fornecem serviços em html, xml ou qualquer outro formato que seja necessário utilizar. 58 E também, após o desenvolvimento do web service fornecendo todos os serviços necessários a conexão da aplicação BPMS foram encontrados alguns problemas iniciais que previam o uso do formato json para fornecer os serviços, não sendo possível a conexão através desse formato e tendo total sucesso ao utilizar o formato xml para a conexão aos serviços do web service à ferramenta BPMS. 59 6 CONCLUSÃO Nas organizações atualmente são buscadas, constantemente soluções de software que consigam auxiliá-las, permitindo que exista um diferencial competitivo ainda maior com o atendimento ao cliente. E tendo em vista, esse novo cenário acabou tornando a tecnologia cada vez mais responsável pelo sucesso das organizações e é nesse contexto que o BPM aparece como uma das melhores formas de promover essa interação. Nesse contexto essas soluções de software também podem ser aplicadas a organizações sem fins lucrativos, como uma Instituição Federal de ensino, para que existam melhorias em seus processos. Assim, na atualidade existem variedades de ferramentas que favorecem o controle e o desenvolvimento das organizações. O grande desafio, é possibilitar que os profissionais de TI consigam se aproximar da visão de negócio da empresa e integrem a tecnologia com o ambiente de processos de negócio, sem contar ainda, com a dificuldade em escolher a ferramenta certa para cada organização. De forma que o BPM, por sua vez, tem como um de seus principais objetivos a otimização dos processos de negócio. Para isto, o BPM fornece tecnologias, métodos e ferramentas que são utilizados em conjunto pela área de TI e de negócios, aumentando a satisfação do cliente, a qualidade do produto e melhorando as operações de forma rápida e contínua. Portanto em uma primeira análise, após o estudo de caso foi possível concluir que não a impedimento para a escolha do Ruby on Rails, para o desenvolvimento do web service do projeto pois, através dos testes foi evidenciado que não importa qual o banco de dados ou em qual servidor esse banco de dados está rodando, seja um banco de dados Microsoft SQL Server instalado em um sistema operacional Windows ou um banco de dados instalado em um servidor com sistema operacional linux. 60 E sendo assim, possível fazer a conexão e mapeamento de tabelas utilizando o Ruby on Rails através de suas gems a qualquer banco de dados em qualquer sistema operacional. Da mesma forma, em uma análise mais profunda deste trabalho é possível verificar que o uso da ferramenta Bizagi para gerenciamento, controle e melhoria do processo mostra-se totalmente eficiente. Com sua facilidade de uso e desenvolvimento, não sendo necessário que um desenvolvedor utilizando essa ferramenta tenha grandes conhecimentos em alguma linguagem de programação ou gerenciamento e criação de bancos de dados para desenvolver toda a notação Business Process Management, e um gerenciador completo para um processo totalmente funcional, contudo por existirem várias ferramentas suites do BPM, nesse trabalho foi desenvolvido em linguagem open source um web service que realiza todas as tarefas do processo de transferência de turno do técnico e disponibiliza seus serviços em formato xml para ser utilizado em conjunto como a ferramenta BPMS. E como demonstrado nesse trabalho que a ferramenta Bizagi traz consigo inúmeras facilidades e recursos totalmente prontos, por exemplo toda a parte de gerenciamento, controle e monitoramento de processos, aliadas a facilidade de manutenção, onde é possível, se necessário, alterar o processo em tempo real, reutilizando qualquer atividade do processo, ou simplesmente mover a atividade para a etapa do processo que for necessária. Podendo também de forma simples alterar a ligação de uma tarefa para outra, assim alterando de forma simples o fluxo do processo, sem que tenha a necessidade de desenvolver um novo fluxo ou uma nova atividade. Nesse sentido, se em algum momento o desenvolvedor precisar mudar de tecnologia nesse caso o Bizagi, essa mudança será de forma descomplicada, pois os serviços em si são realizados pelo web service que tem seus serviços acessados e consumidos pela ferramenta em questão o Bizagi via REST gerenciando todo o processo. Dessa forma, como proposto inicialmente nesse trabalho, buscando verificar o uso de uma ferramenta BPMS em comparação com uma ferramenta feita em programação nos moldes convencionais, para que fosse possível fazer uma 61 comparação entre as duas metodologias em se tratando de desenvolvimento, conhecimento necessário no trabalho, foi possível evidenciar que o uso de uma ferramenta BPMS mostra-se muito útil para gerenciar, controlar e verificar melhorias para o processo, também por sua facilidade de manutenção. E também durante o processo de desenvolvimento foi possível verificar os prós e contras de cada metodologia distinta e perceber que usando as duas em conjunto pode-se obter um ótimo resultado para o uso em processos sendo possível ter um baixo acoplamento entre os serviços do web service desenvolvido em Ruby on Rails, uma linguagem e framework open source, e a ferramenta Bizagi que faz todo o gerenciamento do fluxo de processo de forma completa e segura. E também nesse sentido, o baixo acoplamento entre as duas tecnologias possibilita utilizar tanto a ferramenta Bizagi que se mostrou extremamente fácil de desenvolver e utilizar, por trazer consigo uma gama de ferramentas prontas para análise e gerenciamento de todo o fluxo do processo, quanto qualquer outra ferramenta BPMS se necessário. Também permite a troca da tecnologia do web service, por qualquer outra que seja necessária. 62 7 REFERÊNCIAS ABPMP. BPM CBOK: Guia para o Gerenciamento de Processos de Negócio - Corpo Comum de Conhecimento. Versão 3.0: ABPMP, 2013. CAPOTE, Gart. Guia Para Formação de Analistas de Processos. Rio de Janeiro: Ed. Bookess, 2011. SMITH, H. e FINGAR, P. Business Process Management: the third wave. Tampa, Fl, USA: Meghan-Kiffer Press, 2007. VALERIANO, Dalton L. Gerenciamento Estratégico e Administração por Projetos. Makron Books, São Paulo-SP. 2001. 295p. GONÇALVES, José Ernesto Lima. As empresas são grandes coleções de processo. CRUZ, Tadeu. BPM & BPMS - Business Process Management & Business Process Management Systems.1. ed. : Brasport, 2008. 292 p. il. CRUZ, Tadeu BPM & BPMS - Business Process Management & Business Process Management Systems. Rio de Janeiro 2009 2ª edição. CRUZ, Tadeu BPM & BPMS: Business Process Management & Business Process Management Systems – 2.ed. – Rio de Janeiro: Brasport, 2010, 272 p. ERL, T.; Carlyle, B.; Pautasso, C; Balasubramanian, R. (2012) “SOA with REST: principles, patterns & constraints for building enterprise solutions with REST”. Prentice Hall. KARANDE, A.; Karande, M. e Meshram, B.B. (2011) “Choreography and orchestration using business process execution language for soa with web services”. IJCSI International Journal of Computer Science Issues, Vol. 8, Issue 2, Mar. Análise comparativa das principais ferramentas gratuitas de business process management (BPM), Curso de ciência da computação, p.51. 63 VALLE, R.; OLIVEIRA, S. Análise e Modelagem de Processos de Negócio – Foco na notação BPMN São Paulo: Atlas, 2009. OLIVEIRA, R - Gestão de Processos – BPM. Mar. 2010. Disponível em: http://www.ev.org.br. Acesso em: 20. Março. 2011. WEICK K. E. e Sutcliffe K. M. (2001) “Managing the unexpected: assuring high performance in an age of complexity”. San Francisco, CA: Jossey-Bass FREIRE et al. Proposta de Modelo de Processo de Desenvolvimento de Software Orientado ao Gerenciamento de Processo de Negócio. Disponível em: <http://essentiaeditora.iff.edu.br/index.php/citi/article/view/6351/4062>. Acesso em: 20 de Abril de 2015. Análise comparativa das principais ferramentas gratuitas de business process management (BPM), Curso de ciência da computação, p.51. TRENNEPOHL 2014, Biblioteca Digital da UNIJUÍ. Disponivel em: <http://bibliodigital.unijui.edu.br:8080/xmlui/handle/123456789/2719>. Acesso em 19 de fevereiro de 2016. 64 8 APÊNDICE CONFIGURAR RAILS NO LINUX PARA ACESSAR SQLSEVER NO SERVIDOR WINDOWS CONFIGURAR NO SERVIDOR WINDOWS 1. Usar acesso de usuário e senha no Microsoft SQL Server, não usar autenticação do WINDOWS. NO SQL SERVER CONFIGURATION MANAGER 2. Configurar porta 1433 3. Configurar TCP IP igual ao da máquina 4. Em ferramentas administrativas->Administrador de fonte de dados ODBC-> 5. Fonte de dados do sistema-> configurar nome do banco 'Academico', servidor' nes-servidor', usuário e senha. CONFIGURAÇÃO LINUX E APLICAÇÃO INSTALAR FREETDS 1. Baixar do site http://www.freetds.org/ a versão 0.91 em Stable Release 2. cd ~/Downloads/ 3. tar xvfz freetds-stable.tgz 4. cd freetds-0.91 5. ./configure 6. make 7. sudo make install Obs.: Instalar Rails na versão 4.1.0 só funciona corretamente nessa versão por enquanto. CONFIGURAR O SEGUINTE ARQUIVO Obs.: Adicione a seguinte configuração ao final do arquivo freetds.conf. onde host é o IP do servidor que deseja acessar, com a porta configurada em 1433 e o tds version copie e cole do jeito que está mesmo. 65 1. $ sudo gedit /usr/local/etc/freetds.conf [nes-servidor] host = 192.168.0.101 port = 1433 tds version = 7.1 INSTALAR RAILS 1. $ gem install rails --version=4.1.0 --no-ri –no-rdoc Obs.: Instalar na versão 4.1.0 a gem 'activerecord-sqlserver-adapter' só funciona corretamente nessa versão por enquanto. se houver outra versão instalada no seu ambiente de desenvolvimento pode instalar junto, mas na hora de criar a apicação tem que criar setando a versão, da seguinte forma: 2. Setar versão: $ rails _4.1.0_ "nome_da_aplicação" sem as aspas. NA APLICAÇÃO 1. Gems necessárias para a conexão: 2. gem 'tiny_tds' 3. gem 'activerecord-sqlserver-adapter' Obs.: Prefiro deixá-las no arquivo Gemfile da aplicação. 4. configurar database.yml Obs.: Deve alterar de acordo com suas configurações os seguintes itens "host" (com o IP do seu servidor), "dsn" (com o nome do seu servidor) e por fim "username" e "password" (com os respectivos nome de usuário e senha do servidor ). development: adapter: sqlserver host: 192.168.0.101 port: 1433 database: Academico username: "USUÁRIO" password: "SENHA" 66 5. No model criado pela aplicação é preciso setar o nome da tabela e a chave primaria para o acesso. Em /app/models nesse caso arquivo aluno.rb Obs.: Neste caso foi criado um simples crud para teste no Servidor com os seguintes campos: COD_ALUNO, MAE_FALECIDA, RENDA_FAMILIAR, TIPO_ESCOLA_ORIGEM. exemplo: na tabela ALUNOS no BD Academico. class Aluno < ActiveRecord::Base self.table_name = "ALUNOS" self.primary_key = "COD_ALUNO" end CONFIGURAR A APLICAÇÃO PARA RODAR NO WINDOWS 1. Ir ao link www.rubyinstaller.org/ e baixar RubyInstaller 2.0.0-p648, 2.1.8 and 2.2.4 released instalar como qualquer outro executável Windows, mantendo as opções padrões. 2. Baixe a biblioteca de acesso e transações SQL, chamada SQLite. Para tanto, faça o download tanto do arquivo sqlite-3_6_4.zipquanto do sqlitedll3_6_4.zip, descompacte e copie os arquivos sqlite3.def,sqlite3.exe, sqlite3.dllpara o C:\WINDOWS\SYSTEM32. 3. Desinstalar o bundler, pois gera um checksum error. Executar no cmd do Windows gem unistall bundler 4. gem install bundler -v 1.9 5. Reiterar gem 'therubyracer' da Gemfile, pois não é preciso no Windows e gera erro quando se tenta rodar a aplicação 6. Adicionar ao arquivo Gemfile a gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw]. 7. Adicionar ao arquivo Gemfile a gem 'coffee-script-source', '1.8.0' 67 8. Ir ao link www.rubyinstaller.org/downloads/ e baixar a versão 2.0X64 do DEVELOPMENT KIT. 9. bundler install. CLASSES DE MAPEAMENTO Arquivo com classe de modelo responsável por mapear a tabela 'cursos' no banco de dados Academico, através do adaptador 'sqlserver' para utilização na aplicação. Figura 32: Arquivo curso.rb Fonte: elaboração própria Arquivo com classe de modelo responsável por mapear a tabela 'disciplinas_transferencias' no banco de dados Academico, através do adaptador 'sqlserver' para utilização na aplicação. Figura 33: Arquivo disciplina_transferencia.rb Fonte: elaboração própria Arquivo com classe de modelo responsável por mapear a tabela 'matriculas_pautas' no banco de dados Academico, através do adaptador 'sqlserver' para utilização na aplicação. 68 Figura 34: Arquivo matricula_pauta.rb. Fonte: elaboração própria Arquivo com classe de modelo responsável por mapear a tabela 'matriculas_pautas_transferencias' no banco de dados Academico, através do adaptador 'sqlserver' para utilização na aplicação. Figura 35: Arquivo matricula_pauta_transferencia.rb. Fonte: elaboração própria Arquivo com classe de modelo responsável por mapear a tabela 'pautas' no banco de dados Academico, através do adaptador 'sqlserver' para utilização na aplicação. Figura 36: Arquivo pauta.rb Fonte: elaboração própria Arquivo com classe de modelo responsável por mapear a tabela 'pessoas' no banco de dados Academico, através do adaptador 'sqlserver' para utilização na aplicação. 69 Figura 37: Arquivo pessoa.rb Fonte: elaboração própria Arquivo com classe de modelo responsável por mapear a tabela 'turmas' no banco de dados Academico, através do adaptador 'sqlserver' para utilização na aplicação. Figura 38: Arquivo turma.rb Fonte: elaboração própria Arquivo com classe de modelo responsável por mapear a tabela 'turnos' no banco de dados Academico, através do adaptador 'sqlserver' para utilização na aplicação. Figura 39: Arquivo turno.rb Fonte: elaboração própria Arquivo com classe de modelo responsável por mapear a tabela 'pessoas' no banco de dados Academico, através do adaptador 'sqlserver' para utilização na aplicação. 70 Figura 40: Arquivo pessoa.rb Fonte: elaboração própria Para o banco de dados Biblioteca, que por falta de acesso a uma cópia do mesmo que não foi disponibilizada para testes, também foi preciso criar um arquivo de conexão para aceitar uma segunda conexão simultânea, arquivos de conexão e de classe de modelo podem ser vistos nas seguintes figuras 41 e 44. Figura 41: Arquivo autentication_biblioteca.rb Fonte: elaboração própria Arquivo da classe modelo, responsável por mapear a tabela nada_consta, uma reprodução feita supondo o funcionamento do banco de dados da biblioteca, essa suposição precisou ser feita, pois não foi disponibilizada uma cópia desse banco de dados, nem acesso. Figura 42: Arquivo biblioteca.rb Fonte: elaboração própria Arquivo de conexão responsável por realizar a conexão com o banco de dados que armazena os pedidos de transferência, essa classe é usada apenas como um conector que possibilita a conexão simultânea do banco de dados utilizado 71 na aplicação com outros bancos atualizados ao mesmo tempo, ele mantêm a conexão com o banco de dados aplicação ao mesmo tempo que acessa outros bancos de dados. Figura 43: Arquivo autentication_transfer.rb Fonte: elaboração própria Arquivo de classe de modelo responsável por mapear a tabela “searches” no banco de dados “Transferencia”, onde ficam armazenadas todos os pedidos de transferência. Figura 44: Arquivo transfer.rb Fonte: elaboração própria No arquivo database.yml abaixo, são configurados os bancos de dados que a aplicação poderá acessar, no mesmo são mostradas todas as conexões com os bancos de dados. Todas as conexões fazem uso de adaptadores para os bancos citados acima, todos em forma de gems, que podem ser vistas em tecnologias utilizadas. 72 Figura 45: Arquivo database.yml, responsável pela conexão ao banco de dados. Fonte: elaboração própria Os resultados foram obtidos com êxito, foi possível realizar a conexão via aplicação Ruby on Rails a uma cópia da base de dados Academico, resultados demonstrados logo abaixo nas figuras 46 a 49 Figura 46: Configurações da aplicação Ruby on Rails Fonte: elaboração própria 73 Como demonstrado na figura 47 uma continuação da tela inicial com as configurações da aplicação Ruby on Rails, configurações padrão para o início e subsequentes testes que foram realizados na aplicação. Figura 47: Configurações da aplicação Ruby on Rails Fonte: elaboração própria A figura 48 demonstra um teste de conexão ao banco de dados Microsoft SQLSERVER que não funciona de forma nativa no rails em um sistema operacional Linux, não basta a utilização de uma gem, também são necessárias algumas configurações adicionais que são demonstradas no apêndice em configurar rails no linux para acessar SQLSEVER no servidor WINDOWS. Este teste se deu através do update de dados diretamente no banco de dados Microsoft SQL Server, que obteve sucesso como pode ser visualizado na figura 43, mostrando o update com sucesso de alguns dados referentes a tabela alunos no banco de dados Academico. Outros testes foram realizados e o update obteve sucesso em todas as vezes de forma estável após a instalação da gem necessária e configurações adicionais a aplicação foi capaz de mapear qualquer tabela do banco de dados Academico, tornando possível além do update, qualquer outra operação no banco de dados. 74 Figura 48: Update dos dados no Microsoft Sql Server realizado. Fonte: elaboração própria Pode ser visualizado na figura 49, através da view index, os dados alterados pelo update(atualizar) realizado na figura 49, através desse teste podemos também acessar na view index os links para visualização completa dos dados através da visão(view) mostrar(show), editar os dados através da view(visão) edit(editar) e excluir os dados através da visão(view) excluir(destroy). Com isso pode-se perceber que a conexão ao banco de dados Microsoft SQL Server está totalmente funcional. Figura 49: Index com dados alterados no Microsoft Sql Server. Fonte: elaboração própria 75 A aplicação utiliza múltiplos bancos de dados em simultâneo, um Microsoft SQL Server, SQLITE e um POSTGRESQL. Em se tratando do banco de dados Academico, esse banco não foi gerado pela aplicação se trata de um banco já existente, já com dados inseridos e utilizados pela aplicação, todas as tabelas já existentes no banco de dados Academico e que são utilizadas pela aplicação, precisaram ser mapeadas no model ou modelo da aplicação, também foi preciso criar um arquivo de conexão para cada banco de dados em que a aplicação se conecta. Arquivo esse mostrado abaixo somado a as classes de modelo para acada tabela mapeada que podem ser visualizados da figura 50 a 52. Mais configurações no apêndice. Figura 50: Arquivo Autentication_sql_server.rb Fonte: elaboração própria Arquivo com classe de modelo responsável por mapear a tabela 'alunos' no banco de dados 'Academico, através do adaptador 'sqlserver' para utilização na aplicação. Figura 51: Arquivo aluno.rb Fonte: elaboração própria 76 Arquivo de modelo que demonstra a classe responsável por mapear a tabela 'matriculas' no banco de dados Academico, através do adaptador 'sqlserver' para utilização na aplicação. Figura 52: Arquivo matricula.rb Fonte: elaboração própria Arquivo que ilustra a classe de modelo responsável por mapear a tabela 'turmas' no banco de dados Academico, através do adaptador 'sqlserver' para utilização na aplicação, é preciso também explicitar no arquivo o relacionamento existente entre as tabelas no banco de dados que será conectado, isso é necessário para o mapeamento completo do Object relational mapping – ORM do Rails.