Encapsulando a NavigationPlanTool como Serviços Web Proposta para Monografia Aluno: Mauricio Chui Rodrigues Orientador: Prof. Dr. João Eduardo Ferreira |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Resumo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
O objetivo deste projeto de iniciação científica é disponibilizar em ambiente
Web o conjunto de funcionalidades para definição e controle de processos
(workflows) da ferramenta NavigationPlanTool. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Introdução | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A ferramenta NavigationPlanTool [1] implementa a linguagem de manipulação
de processos da arquitetura RiverFish [2] [3] e pode ser aplicada na
composição de serviços básicos. Esta abordagem é particularmente interessante
em um ambiente Web, no qual os serviços que compõem um processo de
validação ou controle de dados podem ser heterogêneos e autônomos. Implementada em Java, a NavigationPlanTool disponibiliza uma biblioteca de funções que estende a linguagem SQL (Structured Query Language), com adição de operadores da álgebra de processos que auxiliam a criação e manutenção da representação de um processo dentro de um banco de dados relacional. A ferramenta, além da execução de comandos da SQL padrão [10], possibilita a execução de comandos para a definição de fluxos - como os de criação, remoção e alteração de processos e ações - bem como comandos que definem a associação e dissociação de ações a processos. A sintaxe dos comandos que realizam essas operações é a definida pela NPDL (Navigation Plan Definition Language) [1]. A NPDL provê também mecanismos para o controle da instanciação de processos no banco, através de operações como criação/remoção de instâncias e serviços para o monitoramento da execução do plano navegacional. Esses serviços são responsáveis pela manutenção dos logs de execução de planos no banco de dados e recuperação de execuções que tenham sido interrompidas antes de serem finalizadas. Por ter sido desenvolvida na forma de biblioteca de funções, a NavigationPlanTool pode ser facilmente integrada a outras aplicações Java. A representação dos processos por meio de expressões algébricas [4] possibilita a criação das árvores de expressão que são utilizadas pelos algoritmos que determinam a ordem de execução das ações que compõem o processo. Os comandos da NPDL são convertidos pela NavigationPlanTool em comandos SQL padrões [10]. Esses comandos inserem, alteram, removem e listam dados em tabelas especialmente criadas para representar o controle de processos da arquitetura RiverFish em um banco de dados relacional. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Objetivos | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Com J2EE (Java 2 Platform, Enterprise Edition) é possível definir serviços
Web a partir de Beans [9]. Considerando que as ações que compõem os
processos de negócios estão devidamente expostas como serviços Web, este
projeto tem como meta, inicialmente, encapsular as funcionalidades da ferramenta
NavigationPlanTool como serviços em um servidor de aplicação J2EE, como o
JBoss AS (JBoss Application Server) [6, 7]. De modo específico, este projeto
de iniciação científica apresenta os seguintes objetivos: - Criar um serviço que encapsule as definições de processos. Isso será feito por meio de descritores XML (Extensible Markup Language) e classes Java que delegarão as chamadas ao núcleo de execução da NavigationPlanTool. - Criar um serviço que monitore a execução de processos, permitindo instanciar um novo processo utilizando interfaces Web. Esse serviço será inicialmente um serviço Web J2EE. - Estudar a possibilidade de uma implementação como MBeans [5, 8, 9], que permitiria disponibilizar os serviços anteriormente descritos para qualquer serviço Web do servidor de aplicação, com uma transparência análoga aos serviços de persistência e controle de transações. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Descrição do Projeto | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Parte 1: Estudo da álgebra de processos e da linguagem NPDL para definição de
processos. - Parte 2: Adaptação e utilização da ferramenta NavigationPlanTool. - Parte 3: Implementação dos serviços de definição e monitoração de processos em J2EE. - Parte 4: Implementação das interfaces Web dos serviços J2EE. - Parte 5: Testes e finalização da documentação. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cronograma de Atividades | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Atividades Realizadas | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A álgebra de processos e a linguagem NPDL foram estudadas, conforme previsto.
Ainda foram realizados o estudo da tecnologia EJB (Enterprise JavaBeans)
[11] e uma introdução ao JBoss AS, utilizados no projeto. Os serviços de
definição e monitoração de processos foram implementados em J2EE, juntamente com
suas interfaces Web, e basicamente testados por duas aplicações de
demonstração, também desenvolvidas como parte do projeto. A única documentação
existente até o momento é a gerada pela ferramenta Javadoc [12]. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Estrutura da Monografia | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A monografia seguirá o roteiro proposto para sua preparação e será dividida em
duas partes: - Parte técnica: Conterá a introdução ao trabalho, a apresentação dos conceitos e tecnologias utilizadas, a descrição das atividades realizadas, bem como dos resultados e produtos obtidos, além de conclusões sobre o trabalho e referências bibliográficas. - Parte subjetiva: Farei um relato sobre minha experiência com o projeto e listarei as disciplinas cursadas que considero relevantes para sua realização. Para encerrar, escreverei sobre minhas expectativas e planos para o futuro. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Referências Bibliográficas | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. K.R. Braghetto, J.E. Ferreira, C. Pu. Using Control-Flow Patterns for Specifying
Business Processes in Cooperative Environments. In: The 22nd Annual ACM Symposium
on Applied Computing, 2007, Seoul. The 22nd Annual ACM Symposium on Applied Computing,
2007. v. 2. p. 1234-1241. 2. J.E. Ferreira, O. K. Takai, C. Pu. Integration of Business Processes with Autonomous Information Systems: A Case Study in Government Services. In: 7th International IEEE Conference on E-Commerce Technology 2005, Munich, p. 471-478. 3. J.E. Ferreira, O.K. Takai, C. Pu. Integration of Collaborative Information System in Internet Applications using RiverFish Architecture. Accepted for International Conference on Collaborative Computing: Networking, Applications and Worksharing, 2005, San Jose, USA. 4. W.J. Fokkink. Introduction to Process Algebra. Texts in Theoretical Computer Science. Springer-Verlag, Berlin, 2000. 5. S.D. Halloway. Component Development for the Java Platform, Addison-Wesley, 2002. 6. J2EE. http://java.sun.com/javaee/. Acessado em 18 de junho de 2007. 7. JBoss. http://labs.jboss.com/. Acessado em 18 de junho de 2007. 8. J. Lindfors, M. Fleury. JMX: Managing J2EE with Java Management Extensions, SAMS, 2002. 9. F. Marinescu. EJB Design Patterns - Advanced Patterns, Processes and Idioms, Wiley, 2002. 10. R. Ramakrishnan, J. Gehrke. Database Management Systems, Second Edition, McGraw-Hill, 2000. 11. EJB. http://java.sun.com/products/ejb/. Acessado em 18 de junho de 2007. 12. Javadoc. http://java.sun.com/j2se/javadoc/. Acessado em 18 de junho de 2007. |