Alexandre Eiki Onishi Supervisor(IME): Prof. Siang Wun Song - ppt carregar
Alexandre Eiki Onishi Supervisor(IME): Prof. Siang Wun Song
PublicouRaul Abreu Alterado mais de 4 anos atrás
Apresentação em tema: "Alexandre Eiki Onishi Supervisor(IME): Prof. Siang Wun Song"— Transcrição da apresentação:
1 Técnicas de Reuso de Software aplicados na elaboração de Arquiteturas Corporativas
Alexandre Eiki Onishi Supervisor(IME): Prof. Siang Wun Song Supervisor(OPUS): Wen Hung Khang Tipo de Trabalho: Estágio Supervisionado
2 Objetivos Estruturar um conhecimento em Reuso de Software enfatizando técnicas de reuso, a fim de que fornecesse o conhecimento necessário para melhorar o processo de desenvolvimento de um software de automação bancária implementado em Java e em futuras aplicações da empresa.
3 Conteúdo Introdução Reuso de Software Frameworks
Arquitetura Orientada a Serviços (SOA) Resultados Obtidos Sistema Opus ibank
4 Introdução - Demanda por software aumentou muito nas últimas décadas - Necessidade de se manter competitivo no mercado obriga as empresas a serem cada vez mais ágeis - Fazer software é difícil, lento e caro Como aumentar a produtividade no desenvolvimento de software? Trabalhe mais rápido automação, ferramentas, ambientes Melhore processos Reuse soluções previamente desenvolvidas, desenvolva para o reuso. Será que devemos começar o desenvolvimento tudo do zero de novo sempre ?
5 Reuso de Software Reuso de Software
Reuso de Software é o processo de incorporar no desenvolvimento de um novo produto: - Código fonte - Plano de testes - Especificações, análise, modelos arquiteturais - Enfim qualquer produto gerado durante desenvolvimentos anteriores
6 Reuso de software Benefícios da reutilização:
Aumento da produção com redução do esforço de desenvolvimento Redução dos custos e prazo de entrega Aumento da qualidade do produto Padronização da arquitetura Dificuldades : Identificação de um componente reutilizável Indiferença com relação a reutilizar seja pela falta de apoio por parte da gestão, dúvida com relação a reutilização, entre outros
7 Reuso de Software Desafio é como reutilizar: - Como fazer isso?
- Que técnicas de reuso usar?
8 Reuso de Software Atualmente
Técnicas para reuso Atualmente a idéia de reuso se cristalizou com: - Patterns Padrões de projeto, arquiteturais, integração, teste, ..... - Frameworks Frameworks web, mapeamento objeto relacional, injeção de dependências, testes, serviços remotos, ..... - Componentes ESBC, DBC, processos de desenvolvimento de componentes (RUP, CATALASYS, UML COMPONENTS), Tecnologia de componentes EJB, CORBA,
9 Frameworks Framework é uma técnica de reuso orientado a objeto que compreende reuso de análise, arquitetura, código, modelo de interação entre objetos e até testes. Muito reuso ! Um framework é uma aplicação quase completa, mas com ganchos para que sejam especializados mais tarde em uma aplicação específica. Ou seja provê uma infra-estrutura genérica para construção de aplicações dentro de uma família de problemas semelhantes, de forma que esta infra-estrutura genérica deve ser adaptada para geração de uma aplicação específica. O principal problema com frameworks é a sua complexidade e o tempo que se leva para aprender a utiliza-los.
10 Frameworks Web Frameworks que implementam o MVC e que oferecem recursos para a construção de interfaces HTML/HTTP Alguns frameworks web: JavaServer Faces, Cocoon, Struts, Webwork, Tapestry Características do Java Server Faces: - Framework de componentes que engloba componentes de interface de usuário, validação e conversão de dados. - Implementa MVC
11 Frameworks ORM Tratam da persistência de dados em banco
Mapeiam classes em tabelas do banco de dados Garantem portabilidade do código entre bancos Frameworks ORM de mapeamento completo gratuitos: Hibernate, Apache OJB, iBATIS, JDO Características do Hibernate: - Mapeamento de objetos em tabelas através de arquivos XML - API capaz de realizar inserções, remoções, atualizações e consultas - Linguagem de seleção orientada a objetos (Hibernate Query Language) Hibernate BD Usuario.java Id Nome Descricao Usuario.xml Id_user Nome descricao Mapeamento ORM
12 Frameworks para Injeção de Dependência
Promovem o acoplamento fraco entre componentes através de injeção de dependência - Frameworks para Dependency Injection / Lightweight containeres: Excalibur, Hivemind, NanoContainer, PicoContainer, Spring Características do Spring: Gerenciamento de transações, segurança Programação distribuída, Programação orientada a aspectos <<Interface>> Mensagem Forum <<Interface>> Mensagem Forum <<setMensagem>> MensagemImpl <<create>> Montador MensagemImpl <<create>> Figura 1-Relações sem Injeção de dependência Figura 2-Relações com Injeção de dependência
13 Arquiteturas Orientadas a Serviços (SOA)
Lógica de negócios disponibilizada como uma coleção de serviços O desenvolvimento novas aplicações se resumiria em selecionar os serviços disponíveis e encaixa-los numa determinada seqüência de execução, de acordo com as regras de negócio a serem atendidas. Um serviço é a menor unidade de uma aplicação SOA. Representa a realização de uma tarefa dentro de um processo de negócio. Ex: verificar saldo, registrar pedido, obter cotação, entre outras. Todas as funções em SOA são agregadas como serviços reutilizáveis; Web Services é a tecnologia atual mais difundida que dá suporte a implementação deste tipo de arquitetura.
14 Arquiteturas Orientadas a Serviços (SOA)
Uma das áreas onde arquitetura orientada a serviços mais vem sendo empregada é a integração de aplicações corporativas (EAI – Enterprise Application Integration). Figura 3 – Arquitetura de acesso a sistemas legados
15 Resultados Obtidos: Sistema Opus ibank
- O sistema opus ibank é um software de automação bancária que visa o gerenciamento operacional entre todos os terminais da agência e além do gerenciamento de todas as informações operacionais de um banco, como transação bancária, cadastro de funcionários e gerenciamento de equipamentos da rede. - Tecnologias utilizadas: Frameworks Hibernate, Java Server Faces e Spring API Java reflection APIs de criptografia Serviços remotos: EJB, Web Services Log4J apache Commons Chain e Commons BeanUtils Programação orientada a aspectos com Aspect J
16 Resultados Obtidos: Sistema Opus ibank
Banco de Dados Camada Recursos Segurança Módulo Cadastro Módulo Monitoração Módulo Controle Versão Servidor Ldap Módulo Estatística Módulo Transacional Módulo Auditoria Módulo Gerenciamento Módulo Distribuição Versão CANAIS DE ATENDIMENTO (APPLICATION FRONTENDS) MIDDLEWARE JAVA CAMADA DE RECURSOS Figura 4 – Visão Macro de Processos Sistemas Legados
17 Resultados Obtidos: Sistema Opus ibank
Clientes Camada apresentação Data Access Objects DAO BD Hibernate Mapeamento O-R Sistemas Legados Usa Camada de recursos Façade VO IFaçade Proxy (Spring) Beans Serviço Remoto Transação JSF JSP Componentes Front Controller Backing Bean Service Locator Localiza Obtém Referencia Local ou Remota Business Delegate Value Object como valor de retorno. Chamada Delega Proxy Remoto (Spring) Intercepting Filter Filter Web Service Internet Web Browser Aplicação Terminal Apresentação + Negócios Camada Negócios + Integração Firewall Log Retorno Figura 5 – Arquitetura técnica do Servidor ibank