Relatório de Final de EstágioReport Center e PhrameUIMaurício Linhares de Aragão Junior
Atividades do estágioRedefiniçã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;
Empresa – Phoebus TecnologiaSoluçõ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;
Processo – Pontos positivosProcesso 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;
Processo – Pontos NegativosProcesso 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;
Report CenterGerenciador 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;
Report Center – NecessidadesFacilidade 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;
Report Center – Seleção TecnológicaJavaServer 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;
Report Center – Modelo do DomínioClasses:ReportReportFieldReportFilterUserRightReportServer
Report Center - ArquiteturaObjetos 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;
Report Center - ProblemasAPI 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;
Report Center - FuturoAdiçã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;
Phrame UIFramework 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;
Phrame UI - Seleção de tecnologiasStandard Widget ToolkitThinwireSwingEcho 2 Framework
Phrame UI – Modelagem e arquiteturaBaseado 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;
Phrame UI – FacilidadesImplementaçã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;
Phrame UI - ProblemasOs 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;
Phrame UI – ProblemasRecursos 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;
Phrame UI - FuturoNovas 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;
ConclusãoAprendizado 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;

Apresentação do relatório final de estágio

  • 1.
    Relatório de Finalde EstágioReport Center e PhrameUIMaurício Linhares de Aragão Junior
  • 2.
    Atividades do estágioRedefiniçãodo 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 – PhoebusTecnologiaSoluçõ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 – PontospositivosProcesso 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 – PontosNegativosProcesso 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 CenterGerenciador derelató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 –NecessidadesFacilidade 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ógicaJavaServer 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ínioClasses:ReportReportFieldReportFilterUserRightReportServer
  • 10.
    Report Center -ArquiteturaObjetos 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 -ProblemasAPI 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 -FuturoAdiçã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 UIFramework paraa 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 tecnologiasStandard Widget ToolkitThinwireSwingEcho 2 Framework
  • 15.
    Phrame UI –Modelagem e arquiteturaBaseado 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 –FacilidadesImplementaçã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 -ProblemasOs 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 –ProblemasRecursos 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 -FuturoNovas 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ãoAprendizado de diversastecnologias 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;