1. Relatório de Final de Estágio Report Center e PhrameUI Maurício Linhares de Aragão Junior
2. Atividades do estágio Redefinição do padrão para os projetos Java, seguindo o padrão do Maven 2; Redefinição da arquitetura e implementação do Report Center; Definição da arquitetura e implementação inicial do framework Phrame UI;
3. Empresa – Phoebus Tecnologia Soluções bancárias de alta confiabilidade; Recarga de telefones móveis, correspondentes bancários, soluções de captura baseadas em POS; Aplicações servidoras de integração baseadas em mensagens, gateways e concentradores;
4. Processo – Pontos positivos Processo fortemente baseado no RUP e com diversos modelos de artefatos definidos; Há uma cultura de reavaliação dos projetos após o seu término; O processo inclui atividades bem definidas para o controle de versão e gerência de ciclo de vida;
5. Processo – Pontos Negativos Processo ainda em fase de definição, poucas práticas e muitos artefatos; Algumas das fases importantes, como a de testes (unitários, funcionais, não funcionais e de aceitação) ainda não foram definidas de forma clara; O repasse de informações ainda é feito com base em documentos do Office mantidos no controle de versão, não há um lugar comum para a documentação;
6. Report Center Gerenciador de relatórios na web; Escrito em Java, utilizando a tecnologia JavaServer Faces para a camada de visualização e Hibernate para o acesso a banco de dados; Testado e implantado em bases SQL Server e Oracle; Compatível com os navegadores mais comuns do mercado (Firefox, Internet Explorer 6-7, Opera e Mozilla); Atualmente na versão 2.2.2.4;
7. Report Center – Necessidades Facilidade de manutenção e atualização da ferramenta; Acesso aos relatórios de qualquer máquina utilizando um dos navegadores suportados; Integrar e utilizar a solução de relatórios atual baseada no CrystalReports;
8. Report Center – Seleção Tecnológica JavaServer Faces – Camada de visualização e controle; Spring Framework – Camada de serviços, suporte arquitetural e configuração de objetos; Hibernate – Camada de Persistência;
9. Report Center – Modelo do Domínio Classes: Report ReportField ReportFilter User Right ReportServer
10. Report Center - Arquitetura Objetos JSF, os ManagedBeans, são configurados através do Spring; Acessam classes do modelo do domínio (citadas anteriormente); Classes do domínio implementam a lógica de acessar o servidor externo (Report Server), geram o relatório e o devolvem para a visualização;
11. Report Center - Problemas API de leitura de XML baseada no modelo DOM, JDOM; Bibliotecas de acesso a relatórios do CrystalReports em Java; Geração dos relatórios baseadas em um banco de dados específico;
12. Report Center - Futuro Adição de novas “engines” de relatórios (JasperReports, BIRT); Adição de funcionalidades de “Business Intelligence”, baseadas na análise das informações contidas nos bancos; Simplificação da criação de novos relatórios e melhoria na usabilidade dos filtros atuais através do uso de AJAX;
13. Phrame UI Framework para a abstração de contrução de aplicações desktop e web; Remove a necessidade de se escrever código específico para uma plataforma; A aplicação se comporta da mesma forma nos dois ambientes e executa com uma única base de código;
14. Phrame UI - Seleção de tecnologias Standard Widget Toolkit Thinwire Swing Echo 2 Framework
15. Phrame UI – Modelagem e arquitetura Baseado no conceito de fábricas abstratas para a criação de uma família de objetos; As implementações foram homogeneizadas com a utilização de objetos “adapter”; Gerenciadores de layout foram alterados para funcionar sob a API padrão e não nas suas APIs específicas;
16. Phrame UI – Facilidades Implementação simples, os componentes tem contratos (interfaces) extremamente enxutas; Comportamentos diferentes entre as duas plataformas foram homogeneizados; Interação do usuário com a aplicação acontece da mesma forma nas duas versões;
17. Phrame UI - Problemas Os ambientes são naturalmente distintos e algumas das abstrações comuns de páginas web não existem (como links); É difícil garantir a escalabilidade da aplicação na versão web, pois ela consome muitos recursos do servidor; Algumas funcionalidades avançadas, como desenho, foram removidas da biblioteca, já que na versão web elas não poderiam ser utilizadas;
18. Phrame UI – Problemas Recursos que são normalmente reutilizados em aplicações web (como conexões com o banco de dados) não podem ser implementados da mesma forma, por causa da aplicação desktop; Alta latência e utilização da rede pela aplicação web que precisa se comunicar com o servidor sempre que alguma coisa acontece;
19. Phrame UI - Futuro Novas implementações, baseadas em novas bibliotecas; Automatização da criação de interfaces gráficas, através de ferramentas de criação visual (RAD) de formulários; Facilidades para acessar, filtrar e alterar as informações contidas em bancos de dados e outras fontes de dados;
20. Conclusão Aprendizado de diversas tecnologias Java; Experiência em projetos reais e que geraram artefatos que já estão na fase de transição; Interação com usuários e clientes das aplicações; Aplicação dos conceitos de arquitetura de sistemas, padrões de projeto e gestão do ciclo de vida de um software;