Demoiselle Framework Palestrante: Flávio Gomes da Silva Lisboa JUN/2009 Sumário Introdução • Desenvolvimento de TI para Governo • Elementos de Decisão • Estratégia para a área de tecnologia • Diretivas da Arquitetura Tecnológica • Preliminares Metodológicas Projeto Demoiselle • Objetivos • Processo • Framework Integrador • Componentes • Ferramentas de Produtividade • Estrutura da Comunidade • Ecossistema Demoiselle • Roadmap 2009 Desenvolvimento de TI para Governo Envolve diversidade... ... de equipes ... de clientes ... de plataformas ... de demandas ... de pessoas ... de recursos Elementos de Decisão Atores institucionais Servidor público (trabalhador do conhecimento), firmas e cidadãos Globalidade, conexão, mobilidade e facilidade de acesso Conhecimento maduro Preferível às soluções ad hoc Integração Eliminação do insulamento dos sistemas Busca e recuperação de informação Preservação de identidade e privacidade Escalabilidade Sustentabilidade Estratégia para a área de tecnologia Evoluir a cultura de desenvolvimento de aplicações Compartilhado, integrado, produtivo e gerenciável − Tecnologias Abertas (Java, PHP, Gnome, padrões, melhores práticas, MVC, etc) Capacidade de manutenção e extensão próprias Definir uma infraestrutura tecnológica de aplicações Distribuída, escalável e habilitada para a WEB Alta disponibilidade, preparada para contingência Baixo custo de propriedade Alinhamento com o movimento de software livre Diretivas da Arquitetura Tecnológica Arquitetura de referência do projeto Demoiselle 1. Computação distribuída 2. Aplicações baseadas em componentes 3. Processos orientados a eventos 4. Acoplamento fraco de funções de negócio 5. Infraestrutura para suporte a decisões 6. Automação de processos 7. Acesso por Internet 8. Software livre Preliminares Metodológicas ● Abordagem integrada ● ● ● ● Disciplinas ● ● ● ● Processos; Tecnologia; e Pessoas Engenharia de software baseada em modelos (OMG) Arquitetura de software Processo de software Projeto Demoiselle Projeto Demoiselle Plataforma de desenvolvimento de software para governo I. Processo de software II. Framework de software (arquitetura e integração) III. Desenvolvimento e acesso a componentes de microarquiteturas de funções "on demand" (APIs e Plug-ins) IV. Ferramentas de produtividade V. Ambiente de integração contínua VI.Desenvolvimento em comunidade Projeto Demoiselle Objetivos: * Redução do custo das aquisições * Aumento da produtividade * Orientação do mercado por indução » - Racionalidade da regulação * Eliminação do insulamento dos sistemas * Integração horizontal de processos * Viabilização da adoção do conceito de macroprocessos Princípios do Processo • • • • • • • • • • Entregas curtas e úteis Cuidado com a arquitetura e adoção de padrões para minimizar riscos. Agilização do ciclo de desenvolvimento Adaptado para emprego do framework de software Melhor administração da complexidade (ciclo iterativo) Redução da burocracia Maior visibilidade do projeto para o cliente Formalização apenas nos pontos essenciais Adequado ao ciclo de projetos baseado em OO/Java Antecipação nos testes (foco na qualidade do produto) Framework Integrador Framework Integrador • Eclipse – IDE desenvolvimento • Jasper e iReport – relatórios • Hibernate – serviço de persistência OO/Relacional • Sun JSF – Tomahawk, RichFaces • Bouncy Castle – criptografia • • AspectJ – plugin Eclipse para Aspectos JBoss – servidor de aplicação JEE • Mule – Enterprise Service Bus • Xstream – manuseio de XML • CGLIB - segurança • • • Maven – documentação automatizada Log4J – geração de logs SQLADA – conector micromainframe Arquitetura do Framework Arquitetura da Aplicação Ferramentas de Produtividade • • AspectJ para o Eclipse Plugins para desenvolvimento inicial rápido, integrantes da IDE Eclipse do Demoiselle Reuso e Geração automática de código Conjunto de componentes com ciclo de vida independente Não geram dependência obrigatória nas aplicações geradas Podem ser construídos colaborativamente Devem ser facilmente acoplados à aplicação Reuso e Geração automática de código A geração de código automática deve ser encarada como um “componente especial” Ela deve ser utilizado durante o desenvolvimento Estrutura da Comunidade Estrutura da Comunidade Ecossistema Demoiselle Ambiente de colaboração http://sourceforge.net/projects/demoiselle/ • Modelo de Governança estabelecido • Controle do desenvolvimento colaborativo • Localizador centralizado de desenvolvedores • Repositório do projeto (documentação, fontes, processos ...) Portal http://www.frameworkdemoiselle.gov.br http://sourceforge.net/projects/demoiselle/ Site do Projeto http://demoiselle.sourceforge.net/ Roadmap Demoiselle 1. Sistema Orientado a Serviços 2. Sistemas Distribuídos 3. Aplicações Web Acessíveis por Dispositivos Móveis 4. Processo Ágil, Reuso e Ferramentas de Produtividade 5. Geração automática de código 6. Utilização de Java 6 7. Engenharia de Domínio 8. Sistema de Permissões e Segurança BEM-VINDOS A COMUNIDADE DEMOISELLE: ●http://www.frameworkdemoiselle.gov.br ●http://sourceforge.net/projects/demoiselle/ ● ● Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: [email protected] ●CONTRIBUAM!! ●