Governo do Estado de Minas Gerais Secretaria de Estado de Planejamento e Gestão Subsecretaria de Gestão Superintendência Central de Governança Eletrônica Padrões Tecnológicos Linguagens de Programação, Banco de Dados, Frameworks e Portais Belo Horizonte Dezembro 2010 Renata Maria Paes de Vilhena Secretária de Estado de Planejamento e Gestão Frederico César Silva Melo Subsecretário de Gestão Rodrigo Diniz Lara Diretor da Superintendência Central de Governança Eletrônica Fabrício Salum Diretor da Diretoria Central de Gestão da Informação Elaboração: Frederico Maximiano Especialista em Políticas Públicas e Gestão Governamental SUMÁRIO 1. Introdução........................................................................................................................5 2. Alinhamento Estratégico ..................................................................................................6 3. Inovação ...........................................................................................................................8 4. Levantamento da Situação Atual....................................................................................15 4.1. 4.1.1. Oracle .................................................................................................................... 15 4.1.2. SQL Server ............................................................................................................. 16 4.1.3. MySQL.................................................................................................................... 16 4.1.4. Participação no mercado – 2008........................................................................... 16 4.2. 5. 6. Bancos de Dados........................................................................................................ 15 Linguagens de Programação...................................................................................... 18 4.2.1. Java ........................................................................................................................ 19 4.2.2. PHP ........................................................................................................................ 20 4.3. Frameworks de Desenvolvimento ............................................................................. 22 4.4. Sistema de Gerenciamento de Conteúdo (CMS) ....................................................... 24 4.5. Padrões utilizados na PRODEMGE ............................................................................. 26 4.6. Padrões utilizados na SEF .......................................................................................... 27 Outros Padrões a Serem Seguidos ..................................................................................28 5.1. Guia de Desenvolvimento Seguro.............................................................................. 28 5.2. e-PING........................................................................................................................ 28 5.3. Framework Demoiselle .............................................................................................. 29 Conclusão .......................................................................................................................30 ÍNDICE DE ILUSTRAÇÕES Figura 1 – Arquitetura Futura GRP Minas ..................................................................................... 9 Gráfico 1 – Instalação de Banco de Dados e Plano de Implantação ........................................... 17 Gráfico 2 – Bancos de Dados utilizados no Governo de Minas................................................... 18 Gráfico 3 – Linguagens de Programação utilizadas no Governo de Minas ................................. 20 Gráfico 5 – Linguagens de Programação mais Populares, segundo o TIOBE .............................. 21 Gráfico 4 – Fornecedores de sistemas de informação para Governo de Minas ......................... 22 Figura 2 – Exemplo de Framework de Desenvolvimento............................................................ 23 Figura 3 – Modelo Arquitetural do Demoiselle........................................................................... 29 1. Introdução O projeto Plataforma de Sistemas tem como objetivo organizar o desenvolvimento e manutenção dos sistemas informatizados dos órgãos e entidades do Governo do Estado de Minas Gerais. Para isso, foram levantados os padrões já utilizados nas maiores áreas de tecnologia da informação do Governo: Companhia de Tecnologia da Informação do Estado de Minas Gerais – PRODEMGE – e Secretaria de Estado da Fazenda de Minas GERAIS – SEF. Dessa forma, e buscando o alinhamento com os padrões de mercado e, principalmente, buscando a racionalização de gastos e esforços com aquisições, capacitações, manutenções de diversas soluções pelos órgãos estaduais, oferece-se um guia de padrões a serem seguidos, que proporcionará, dentre outras vantagens: a integração entre eles, a construção de várias aplicações demandando menos esforços, por meio da reutilização de soluções compartilhadas e a segurança dos sistemas baseados nas melhores práticas de desenvolvimento. 2. Alinhamento Estratégico O Projeto Estruturador Governo Eletrônico visa “aprofundar as relações entre o governo e a sociedade, com ênfase: na abertura de novos espaços de interlocução e participação; na prestação de serviços de melhor qualidade e de amplo acesso ao cidadão e empresas; na maior eficiência dos processos administrativos das instituições públicas; e na maior transparência às decisões, projetos, receitas e gastos das instituições públicas.” (PPAG/MG 2008-2011), sendo estes dois últimos diretamente os direcionadores do projeto de padrões tecnológicos. Para isso, alinha-se ao Plano Mineiro de Desenvolvimento Integrado (PMDI), considerando alguns de seus objetivos e resultados finalísticos. Em resumo, o Projeto persegue maior transparência e controle social por meio da ampliação do uso do governo eletrônico. Este projeto se alinha a essas diretrizes na medida em que auxilia no desenvolvimento e manutenção de sistemas de informação com a adoção de tecnologias consolidadas e robustas, bem como orientando os órgãos sobre a aplicabilidade das soluções existentes dependendo das características de cada projeto, proporcionando uma maior efetividade nos gastos com TI, racionalização dos recursos ou ampliando as possibilidades de oferta de serviços públicos por meio das Tecnologias de Informação e Comunicação. Além disso, em dezembro de 2008, foi publicado o decreto nº. 44.998, que institui a Política de Tecnologia da Informação e Comunicação no Governo do Estado de Minas Gerais. Essa Política é o instrumento normativo que permite a perseguição dos objetivos do PMDI relacionados ao Governo Eletrônico. É constituída de “objetivos, princípios e diretrizes para alinhar as ações e a utilização dos recursos de Tecnologia da Informação e Comunicação no âmbito da Administração Pública Estadual à estratégia do Governo” (art.1º, Decreto 44.998/2008). Além das metas já mencionadas, a Política explicita, em seu artigo 2º, inciso II, a questão norteadora deste projeto: “promover a eficácia e a eficiência da Gestão Pública do Estado”. Em seu artigo 5º o Decreto enumera ainda algumas “diretrizes gerais” que auxiliam a compreensão dos fundamentos deste projeto: III - a racionalização na utilização de recursos de TIC; IV - a integração e a interoperabilidade de seus serviços, processos e aplicações; V - a consistência e a confiabilidade dos seus dados e informações; VI - a padronização técnica de seus serviços, processos, aplicações e dados; Diretrizes específicas também são dadas, no artigo 6º, e estão em conformidade com a instituição dos padrões: I - Prospecção, Padrões e Plataformas Tecnológicas: a. O Estado prospectará tecnologias e padrões de TIC para a prestação de serviços públicos; b. O Estado adotará padrões técnicos de TIC e plataformas tecnológicas de hardware e software e assegurará a observância dos mesmos para a prestação de serviços públicos; III - Aplicações e Arquitetura de TIC: a. O Estado padronizará e garantirá a integridade de seus dados, componentes, classes, objetos e promoverá a interoperabilidade das aplicações, utilizando para tal, modelos de arquitetura de TIC; b. O Estado desenvolverá e implementará um modelo integrado de processos e dados para suporte às ações governamentais comuns a todos os seus órgãos e entidades; c. O Estado desenvolverá e adotará um modelo de referência para a aquisição de aplicações de TIC; d. O desenvolvimento e a manutenção de aplicações finalísticas serão realizados de forma descentralizada, sob responsabilidade dos órgãos e entidades; e. O planejamento e o controle das aplicações corporativas serão realizados de maneira centralizada; Finalmente, justifica-se a atuação da SEPLAG neste projeto, considerando que é sua competência, segundo artigo 13º: III – propor medidas que visem à racionalização do uso da tecnologia da informação no âmbito do poder executivo da Administração Pública Estadual, por meio do compartilhamento de recursos e informações; IV - propor medidas para a melhoria do desempenho das unidades de tecnologia da informação; 3. Inovação Deve-se ressaltar o caráter de ineditismo do projeto, pois são poucos os entes federados que o fazem, pelas mais diversas razões. Em pesquisa em todos os sites de TI dos Governos Estaduais, não se encontrou projeto semelhante a este, exceto no Governo Federal e no Governo do Paraná. No primeiro, tem-se a iniciativa de se estabelecer cartilhas e normas para o uso de determinados padrões, destacando-se o de interoperabilidade (e-Ping). No segundo, foi criada uma plataforma de desenvolvimento (Pinhão) com base na linguagem java. Nos demais estados, os padrões estabelecidos restringem-se a especificações de equipamentos e identidade visual. Abaixo, segue a lista dos sites consultados e o resultado dessa pesquisa: Governo Sítio Padrões Federal www.governoeletronico.gov.br e-PING Acre www.gestão.ac.gov.br e-PING Alagoas www.itec.al.gov.br Não Encontrado Amapá www.prodap.ap.gov.br Site fora do ar (03/11/10) Amazonas www.prodam.com.br Não Encontrado Bahia www.prodeb.gov.br Não Encontrado Ceará www.etice.ce.gov.br Não Encontrado Espírito Santo www.prodest.es.gov.br Não Encontrado Goiás www.sefaz.go.gov.br Não Encontrado Maranhão www.seati.ma.gov.br Não Encontrado Mato Grosso www.cepromat.mt.gov.br Não Encontrado Mato Grosso do Sul www.sgi.ms.gov.br Não Encontrado Minas Gerais www.prodemge.gov.br Não Encontrado Pará www.prodepa.gov.br Não Encontrado Paraíba www.codata.pb.gov.br Não Encontrado Paraná www.celepar.pr.gov.br Plataforma Pinhão Pernambuco www.ati.pe.gov.br Padrão de Metodologia de Implantação de Sistemas Piauí www.ati.pi.gov.br Não Encontrado Rio de Janeiro www.proderj.rj.gov.br Não Encontrado Rio Grande do Norte www.cotic.rn.gov.br Site fora do ar (03/11/10) Rio Grande do Sul www.procergs.com.br Não Encontrado Roraima www.cti.rr.gov.br Não Encontrado Santa Catarina www.ciasc.gov.br Não Encontrado São Paulo www.prodesp.sp.gov.br Não Encontrado Sergipe www.emgetis.se.gov.br Não Encontrado Tocantins www.si.to.gov.br Não Encontrado Por outro lado, o projeto se mostra importante na medida em que comporá ou auxiliará outras iniciativas. Por essa perspectiva, destacam-se os pontos comuns com um possível GRP – Government Resource Planning – em sua segunda fase, de estudo de viabilidade técnica e econômica, além do mapeamento dos processos administrativos, cujo Termo de Referência para implantação (Fase III) já está sendo elaborado. Um ERP (ou GRP, no caso de governo) consiste, resumidamente, em um sistema de informação que integra todos os dados e processos das áreas meio ou administrativas de uma organização. Sua implantação, contudo, não se dá em curto prazo. É essencial que os sistemas que compõem os sistemas (conjunto de processos) a serem unificados interajam entre si, por meio de interfaces padrões, de modo a facilitar a substituição gradativa desses sistemas pelos módulos do GRP. Além disso, o futuro sistema integrado de gestão deverá ser capaz de estabelecer troca de dados com outros sistemas (finalísticos, por exemplo). Isso será tão mais fácil quanto mais aderente a padrões abertos for sua tecnologia de integração com os sistemas externos. Abaixo, tem-se uma visão da arquitetura do GRP, em que se torna mais clara a necessidade de estabelecimento de padrões explicada anteriormente. Figura 1 – Arquitetura Futura GRP Minas Componente 1 – Processos Corporativos • • • 2 – Integração e Serviços • • • • • • • • 3 – Portais • • • Elaborações A arquitetura futura contempla uma visão consolidada dos processos corporativos, segmentando as funções através de componentes de negócio com escopo e fronteiras padronizadas e bem definidas, baseadas no modelo futuro de processos, proporcionando a uniformidade, automação, integração e reuso, resultando num ganho de eficiência operacional e capacidade de tomada de decisão. A solução sistêmica deve utilizar um banco de dados único e operar numa plataforma comum capaz de interagir com um conjunto integrado de aplicações acessórias, consolidando todas as operações de negócio em um mesmo ambiente computacional. Esta solução viabiliza uma compreensão do ecossistema do Estado fornecendo informações precisas, de forma rápida e intuitiva, criando o ambiente base para execução dos processos corporativos. O barramento de integração é a tecnologia chave para o modelo futuro do GRP Minas, sendo responsável por prover a harmonização da comunicação entre aplicações, dados e serviços. O barramento será responsável por centralizar toda a troca de mensagens entre os diversos sistemas do Estado e o ambiente GRP Minas. A harmonização e integração das aplicações que suportam os processos corporativos são alcançadas através do desacoplamento, encapsulamento e exposição de funções de negócio como interfaces baseadas em serviço. Esta abordagem modularizada, baseada no conceito de baixo acoplamento, permite promover mudanças no ambiente com um menor impacto. Esta camada responde a eventos gerados na arquitetura (chamada a um serviço, término de operações) e é capaz de: ► Roteamento, mudança de estado, tradução, incremento/manipulação de conteúdo (mediação). ► Garantia de entrega, entrega segura, entrega transacional, entrega gerenciável (transporte). ► Detecção, disparo e distribuição de eventos (eventos). Atua como um intermediário entre os elementos da arquitetura, reduzindo significativamente o grau de acoplamento entre eles. Foi idealizada na arquitetura do GRP Minas a federação do barramento de integração, considerando: ► Um barramento específico para suportar a troca de mensagem direta com serviços e funcionalidades relacionadas aos processos corporativos; ► Um barramento corporativo integrando às demais aplicações do Estado (finalísticas, departamentais e legados, etc.). O objetivo da utilização de federação de barramentos é o ganho de performance, fortalecer o baixo acoplamento de camadas e a eventual utilização de conectores nativos. O repositório de serviços disponibiliza funcionalidades de busca e "descobrimento" de descritores de serviços publicados, de forma que consumidores procurem pelos serviços desejados em momento de execução, permitindo o reuso e reduzindo o grau de acoplamento da arquitetura. Possibilita ainda o versionamento e o gerenciamento do ciclo de vida dos serviços publicados e a categorização dos descritores para facilitar a busca. A arquitetura futura busca a simplificação e unificação do acesso aos serviços corporativos pelos Beneficiados, através da disponibilização de Portais. O Portal é uma tecnologia com capacidade de integrar diversas aplicações através do conceito de portlet, além de servir como hub de acesso à conteúdo corporativo para usuários internos e externos. O escopo do Portal considera: ► Personalização; 4 – Gateways e Protocolos • • • • 5 – Gestão de Informações • • • 6 – Inteligência de Negócio • • • 7 – Gestão de Regras de Negócio • • • • ► Motor de busca; ► Suporte para redes sociais; ► Suporte para biblioteca de documentos; ► Workflow de publicação de conteúdo; ► Portlets pré-configurados e recursos de construção de portlets; ► Recursos de colaboração. A arquitetura futura inclui um Gateway de serviço, no conceito de centralização de comunicação. O Gateway oferece acesso aos serviços do Estado para os aplicativos de canal. Ele é o intermediário dos serviços, que liga os aplicativos aos provedores de serviço, que oferecerão acesso às funções corporativas. O Gateway é um componente de integração capaz de suportar diferentes protocolos de comunicação, possibilitando que toda a troca de mensagens eletrônicas entre o Estado e os Beneficiados seja concentrada num único canal de acesso. Alguns protocolos que deverão ser suportados pelo Gateway: ► WebServices, SPB, ISO8583 e EDI. A visão futura da arquitetura foi desenhada considerando que as informações devem ser compartilhadas, centralizadas, gerenciadas e acessíveis. A gestão da informação provê uma camada de abstração entre as aplicações e as fontes de informação, criando uma visão de modelo unificado de dados e conteúdo. Para operacionalizar a gestão da informação, diversos componentes tecnológicos são necessários para compor a solução: ► Domínio de dados: onde são representados os dados físicos da empresa; ► Serviços Comuns: define as plataformas de comunicação que permitem a troca de dados entre as diferentes aplicações; ► Serviços de Informação: oferece serviços para integrar informações apropriadas em tempo e formato adequados, garantir a consistência e integridade dos dados e construir uma visão unificada dos dados que permita que sejam consumidos de forma racional pelo negócio. A arquitetura futura foi desenhada de forma a possibilitar a ampla utilização das informações como instrumento de tomada de decisão. A inteligência de negócio abrange a capacidade de realizar análises complexas e mineração de informações para suportar a gestão de negócios em todos os níveis (estratégico, tático e operacional). Fazem parte da solução de inteligência de negócio: ► Recursos para desenvolvimento e apresentação de relatórios analíticos; ► Recursos para exploração dimensional de informações; ► Recursos de dashboards para informações gerenciais e operacionais; ► Recursos de scorecard; ► Recursos de mineração de dados e análise preditiva. Foi considerada na visão futura a possibilidade de externalização das regras de negócio das aplicações, abstraindo a complexidade do código fonte, provendo maior flexibilidade para mudanças. A tecnologia de gestão de regras de negócio é utilizada para definir, implementar, executar, monitorar e manter uma variedade de regras de negócio complexas que são usadas por aplicações de uma empresa. Esta tecnologia gerencia o ciclo de vida de regras de negócio e permite que a lógica de negócios seja externalizada do código da aplicação principal e seus processos, permitindo assim que tanto os especialistas de negócios e desenvolvedores possam definir e gerenciar a lógica de negócios. A utilização desta tecnologia é aplicável principalmente nos casos de 8 – BPM e Gestão de Conteúdo • • • • 9 – Gestão de Identidade e Acesso • • 10 – Infraestrutura • • • implantação de soluções “in-house”, serviços de negócio e customizações de pacotes de mercado. Compõem a arquitetura futura, tecnologias que suportam a automação dos processos corporativos (BPM), integradas a recursos de gestão de conteúdo (ECM). Os recursos de ECM e BPM costumam afetar três dimensões de negócio: ► Processos de negócio com foco em pessoas, decisões e fluxos de trabalho; ► Processos de negócio com intensa movimentação de documentos; ► Processos de negócio com fluxos de intensa necessidade de integração com aplicações e sistemas. No escopo tecnológico do BPM, foi considerado: ► Engine de Workflow: recurso para publicação, execução e controle de estado de processos/ serviços de negócio. ► BAM: recurso para monitorar on-line a execução de processos de negócio, através da coleta e tratamento de eventos sistêmicos. ECM é a solução de software para gerar, indexar, controlar, armazenar, compartilhar e recuperar informações existentes em documentos. A utilização destes recursos é indicada para casos de necessidade de automação de funções de negócio externas ao GRP e a gestão de conteúdo. Está previsto a capacidade de gestão centralizada de identidade e acesso de usuários aos diversos componentes da arquitetura futura. Fazem parte do escopo: ► Identidade: Recursos para criação e manutenção do perfil de identidade dos servidores e demais Beneficiados. ► Autorizações: Recursos para gestão dos níveis de autorização para acesso aos recursos de rede, aplicativos, sistemas, informações e instalações, e certificação de profissionais em relação às políticas de segurança da informação. ► Acessos: Recursos para autenticação e conexão de usuários à serviços baseados em sistemas de informação, conforme privilégios de autorização definidos. A camada de infra-estrutura na arquitetura futura representa a visão física e lógica dos elementos/ recursos e serviços de infra-estrutura tecnológica necessários para suportar o ambiente futuro do GRP. A arquitetura futura de suporte ao GRP demanda obrigatoriamente uma atualização/ transformação das ferramentas e serviços de operação da infra-estrutura atuais, incluindo a automação, monitoração e gestão de um amplo conjunto de componentes, incluindo: ► Segurança, conectividade, HW, SW básico; ► Ferramentas de monitoração, automação e correlação de eventos; ► Serviços de infra-estrutura, incluindo: gestão de mudança e configuração, problemas e incidentes, banco de dados, ativos, etc.; ► Ferramentas de desenvolvimento, incluindo: gestão de requisitos, controle de versão, biblioteca de código, modelagem e desenvolvimento, testes, etc.; A utilização de “Cloud Computing” deve ser avaliada, inicialmente para ambiente não produtivo, como forma de melhor aproveitamento de recursos e redução de custos. Na tabela acima, em que se encontram detalhados os componentes da arquitetura do GRP, destacou-se as funcionalidades que dependem de padrões tecnológicos. Os itens estão em consonância com as características dos padrões adotados no Governo de MG, o que se tornará mais claro na seção seguinte. Tendo em vista ainda a arquitetura do GRP, foram especificados requisitos não funcionais do sistema a fim de garantir a plena integração dos seus módulos e destes com sistemas externos. A seguir, seguem os requisitos mais significativos para este projeto, já alinhados aos modelos mais utilizados no estado, detalhados nas próximas seções: Ser executável, no mínimo, em SO Linux Red Hat Enterprise V.5 ou superior e Microsoft Windows Server 2003 ou superior. Suportar, no mínimo, os gerenciadores de banco de dados relacional: SQL Server 2005 ou superior, Oracle 10g ou superior e DB2 versão 8 ou superior. Permitir Integração de dados via Bancos de Dados Relacionais As customizações da solução devem ser realizadas por meio de linguagem nativa da solução ou Java EE Possuir ambiente de desenvolvimento e servidor de aplicações padrão JEE, que permita desenvolver e complementar novas funcionalidades, com completo ferramental de desenvolvimento como: controle de modelo de dados, dicionário de dados, metodologia de controle de projetos de desenvolvimento e controle de versões. Por outro lado, o GRP deve servir como um direcionador de outros padrões a serem utilizados, considerando, sobretudo, sua futura abrangência, caso implementado. De qualquer forma, o trabalho realizado para se determinar, dentre outros, os requisitos não funcionais, realizados pela equipe de consultoria da IBM, juntamente à SEPLAG, SEF e PRODEMGE, considerou os padrões de mercado para soluções ERP e as tecnologias que mais se adaptariam às utilizadas no estado. Portanto, justifica-se o uso dos materiais desenvolvidos para o GRP neste projeto. São alguns padrões que devem ser seguidos: Atender ao paradigma de Arquitetura Orientada a Serviços (Permitindo o compartilhamento de Funcionalidades para sistemas e Aplicativos Externos) Contemplar extração de dados tanto com recursos/ferramentas EAI como ETL na mesma solução Incluir ferramentas de Workflow, de forma a permitir automatizar processos que envolvam tomadas de decisão ou aprovação de documentos. Estas ferramentas deverão ser integradas aos recursos de e-mail disponíveis no ESTADO, bem como suportar ferramentas de automação de escritório como MS Exchange. Oferecer interfaces Application Programming Interfaces (APIs) para que as aplicações (sistemas externos) possam ser integradas à SOLUÇÃO, tendo acesso às funcionalidades por ela oferecidas. As APIs da Solução devem estar disponíveis nas seguintes tecnologias: API JavaEE ou API por web services. Permitir consulta e exportação de dados (em formato CSV) por usuários autorizados a informações contidas nas trilhas de auditoria Permitir exportar uma visão de relatório/consulta para diferentes formatos durante análise (Excel, HTML, txt, pdf) Permitir integração com serviços de agenda e correio eletrônico compatíveis com IMAP, SMTP, POP3 para envio e recebimento de e-mails. Permitir Integração de dados via Serviços / Interfaces (FTP) Permitir validação de usuários integrada ao Microsoft Active Directory Possibilitar a exportação de relatórios e consultas em formato .csv ou .xls Possuir conformidade com padrão X.509 para utilização de assinaturas digitais. Possuir suporte a servidores com arquitetura padrão x86 de, no mínimo, núcleo quádruplo (quad core). Ser desenvolvido e codificado para ambiente operacional de 64 bits. Ser executável, no mínimo, em processadores de arquitetura CISC. Suportar Certificados Digitais ICP-Brasil para autenticação de usuários Suportar conexões seguras a partir de Secure Sockets Layer Protocol Suportar Integração com IBM MQ Series, SAG EntireX Broker, Oracle SOA Suite e Informática Power Center Suportar WS-Security. Suportar, de forma nativa, o protocolo de transferência de arquivos FTP e as linguagens de marcação XML e XSLT. Suportar, de forma nativa, os padrões abertos de conectividade: HTTP, HTTPS e WebServices (WSDL, SOAP, UDDI). Todas as funcionalidades que envolvam interação do sistema com o usuário final devem estar disponíveis em interface gráfica em ambiente web, compatível com os browsers Internet Explorer (versão 8 e superiores) e Mozilla Firefox (versão 3 e superiores). Utilizar serviços de diretório baseados em padrões de mercado LDAP v3, modelo X.500, com conexão segura. 4. Levantamento da Situação Atual O levantamento feito pelo último diagnóstico do Plano Diretor de Governo Eletrônico, realizado em 2008 com todos os órgãos, demonstrou um elevado grau de alinhamento entre os órgãos e destes com os padrões sugeridos por este projeto. Isso legitima a indicação dos padrões, e sugere um esforço pequeno para serem aceitos plenamente. 4.1. Bancos de Dados Bancos de Dados – BD – são instrumentos de armazenamento e organização de dados, enquanto o software específico, disponibilizado ao usuário final, é responsável pela coleta, tratamento e processamento desses dados. Abaixo, descrevem-se os três Bancos de Dados mais comumente utilizados e escolhidos como padrões para o Governo de Minas e, em seguida, apresenta-se dados que corroboram a afirmação de que são os três mais significativos. É válido ressaltar que todos BD elencados aqui são do tipo relacionais, ou seja, compostos por tabelas e relacionamento entre as tabelas. Essa estrutura torna mais simples a integração de dados entre BD. 4.1.1. Oracle O Oracle surgiu no fim da década de 70, por uma iniciativa pioneira, introduzindo o conceito de banco de dados relacional. É o principal banco de dados atualmente, respondendo por 48% do mercado de sistemas de gerenciamento de banco de dados relacionais, mesmo sofrendo pequena queda de crescimento no último ano (GRAHAN, Coleen. SOOD, Bhavish. SOMMER, Dan. HORIUCHI, Hideaki. Market Share: RDBMS Software by Operating System, Worldwide, 2009. 2010 – dados do Gartner fornecidos no site da Oracle). Seu uso é particularmente significativo em grandes empresas, o que pode ser entendido considerando três fatores: hardware, pessoas e segurança. O Oracle é conhecido por oferecer boa proteção aos dados, o que pode justificar seu uso em empresas maiores, onde dados são mais sensíveis, mesmo demandando maior capacitação e configuração de hardware. 4.1.2. SQL Server Criado em 1988, supõe-se que o banco de dados SQL Server seja o principal concorrente do Oracle. Essa hipótese é bem aceitável, considerando as comparações disponibilizadas pela Microsoft em seu site, que focam principalmente no Oracle. Por ser um produto Microsoft, considera-se uma vantagem a integração nativa com as demais soluções da empresa, largamente utilizados nas empresas, o que pode justificar seu suposto crescimento e participação. 4.1.3. MySQL O MySQL, lançado em meados da década de 1990, é um software livre para desenvolvimento. Isso, alinhado com sua grande capacidade de integração com o PHP podem explicar seu rápido crescimento – 25% entre 2005 e 2006, segundo a Evans Data Corporation (dado extraído do site do BD: http://www.mysql.com/why-mysql/marketshare/) – e suas perspectivas de expansão, conforme o gráfico 1, sobre participação no mercado. Dentre os bancos de dados open source, como o Postgree e Firebird, o Mysql tem se destacado, principalmente para uso na web. De acordo com um artigo de Julho de 2008, da Forrester (http://www.forrester.com), no mercado de Bancos de Dados open source, o MySQL teve a maior adoção e crescimento (justificando o slogan do sistema “The world's most popular open source database”), sendo ainda o BD mais lembrado pelos consumidores e tendo o maior número de consumidores pagantes por suporte ao produto (estimado em 16.000) – dados retirados do site do BD. 4.1.4. Participação no mercado – 2008 O gráfico abaixo, elaborado pelo Gartner e retirado do site do MySQL, ilustra o que foi dito anteriormente e corrobora os dados apresentados. O Oracle figura como o sistema de gerenciamento de banco de dados relacional mais utilizado no mundo. Contudo, sua perspectiva de crescimento não se mostra tão grande, o que endossa os dados da mesma instituição sobre sua participação no mercado em 2009, bem como sua efetiva queda de crescimento. Neste quesito, o MySQL – dentre as soluções analisadas – se destaca. O SQL Server da Microsoft ocupa a segunda posição dentre os sistemas mais usados, o que apoia a hipótese supramencionada, elaborada a partir de visitas ao site da Microsoft (benchmarking focando em Oracle). E em terceiro lugar, está o MySQL. Gráfico 1 – Instalação de Banco de Dados e Plano de Implantação No Plano Diretor de Governo Eletrônico de 2008 pode-se verificar a tendência de padronização já adotada pelos órgãos e entidades do Estado de Minas Gerais. O gráfico 2 mostra que 63% dos Bancos de Dados – BD – utilizados são Oracle, SQL Server ou MySQL, que são os padrões sugeridos pela PRODEMGE1. O Oracle, adotado como padrão pela SEF é o banco de dados que se destaca comparativamente (26%) e é responsável, em geral, por suportar sistemas corporativos de grande porte e alto volume de transações on-line. Cabe, ainda, analisar a participação significativa do BD Access. Esse sistema de gerenciamento de banco de dados da Microsoft surgiu nos anos 90 e é voltado para uso em desktops e não em servidores. Essa é a principal diferença dele em relação os demais BDs como o Oracle, SQL Server e MySQL. Embora seja suficiente para várias aplicações e permita o compartilhamento de dados por meio de uma intranet, por exemplo, não é destinado a soluções de maior porte. Exemplificando a simplicidade do BD, o sistema não possui gatilhos de bancos de dados e 1 A PRODEMGE está em processo de adoção do PostGRESQL para demandas intermediárias entre o Oracle e o mySQL, ou seja, onde as funcionalidades do mySQL não são suficientes, mas, em contrapartida, as funcionalidades do Oracle são subutilizadas em virtude da sua magnitude. Além disso, devido à compra da Sun e do mySQL pela Oracle, estrategicamente é interessante avaliar outro BD livre, caso o mySQL mude sua política de licenciamento. procedimentos armazenados (store procedures). Contudo, ele pode e tem sido muito usado em pequenas e médias empresas para armazenamento de dados em pequenas quantidades. Gráfico 2 – Bancos de Dados utilizados no Governo de Minas 4.2. Linguagens de Programação Linguagens de programação são métodos padronizados para expressar instruções para um computador. É o instrumento fundamental para desenvolvimento de softwares. Abaixo, descrevem-se as duas linguagens mais utilizadas pelo Governo de Minas e, em seguida, apresentam dados que legitimam essa escolha. É válido ressaltar que as linguagens elencadas aqui dão suporte ao paradigma de desenvolvimento orientado a objetos, ou seja, permitem encapsular unidades de software (objetos) para serem reutilizadas ou, ainda, permitir desenvolvimento paralelo de diversas partes de um programa. Além disso, são linguagens tipicamente interpretadas – simplificadamente, isso significa que a execução dos programas não é feita diretamente pelo sistema operacional ou processador, o que garante menor consumo de memória e maior agilidade na realização de alterações em códigos. 4.2.1. Java Java é uma linguagem criada no início da década de 90 pela Sun Microsystems (recentemente adquirida pela Oracle). Teve um rápido crescimento desde seu surgimento, atingindo 6.5 milhões de desenvolvedores no mundo atualmente, segundo dados da empresa. O sucesso se deve a seu uso na Internet, possuindo ambiente de execução (930 milhões de downloads por ano) nos principais navegadores, mainframes, sistemas operacionais, celulares (3 bilhões de telefones celulares rodam Java) e outros dispositivos móveis. Destacam-se as seguintes características da linguagem: • Portabilidade – independência de plataforma - "escreva uma vez, execute em qualquer lugar" ("write once, run anywhere"); • Recursos de Rede – Possui extensa biblioteca de rotinas que facilitam a cooperação com protocolos TCP/IP, como HTTP e FTP; • Segurança – Pode executar programas via rede com restrições de execução; • Sintaxe similar a C/C++; • Facilidades de Internacionalização – Suporta nativamente caracteres Unicode; • É distribuída com um vasto conjunto de bibliotecas (ou APIs); • Possui facilidades para criação de programas distribuídos e multitarefa (múltiplas linhas de execução num mesmo programa); • Desalocação de memória automática por processo de coletor de lixo (garbage collector); • Carga Dinâmica de Código - Programas em Java são formados por uma coleção de classes armazenadas independentemente e que podem ser carregadas no momento de utilização. Dentre as principais vantagens de sua utilização estão: • Todo o núcleo da linguagem e muitos de seus frameworks e ferramentas são baseados em software livre e aberto • Sua robustez é inquestionável • Atualmente é a linguagem mais utilizada e difundida no mundo • Possui grande base de recursos humanos capacitados e a cada ano é a que mais capacita profissionais • A evolução da linguagem é feita por grandes empresas, atualmente sob responsabilidade da Oracle e também por uma imensa e atuante comunidade mundial. 4.2.2. PHP PHP é uma linguagem criada em meados da década de 90. A linguagem se popularizou por sua grande modularização (rotinas feitas separadamente interligadas por uma interface comum). Além disso, destacam-se as seguintes características: • Velocidade e robustez • Portabilidade - independência de plataforma - escreva uma vez, rode em qualquer lugar; • Tipagem fraca (dinâmica) • Sintaxe similar a C/C++ e o Perl • Recursos de Rede – suporta os protocolos IMAP, SNMP, NNTP, POP3, HTTP, LDAP Novamente, pelo Plano Diretor de Governo Eletrônico de 2008 se pôde verificar a tendência de padronização já adotada pelos órgãos e entidades do Estado de Minas Gerais. O gráfico 3 mostra que 26% dos sistemas são desenvolvidos em Java e 16% em PHP. Gráfico 3 – Linguagens de Programação utilizadas no Governo de Minas Embora muitos dos sistemas não prevejam integração (e talvez isso seja a justificativa dos 42% em “outras linguagens”), outros têm dados externos como premissa. Além disso, mudanças ocorrem com frequência e sistemas que foram inicialmente construídos para funcionarem isoladamente podem demandar (ou serem demandados) de outros. Pelo levantamento da situação atual, percebe-se que isso seria viável na maior parte dos casos, ou requereria um trabalho dentro de um escopo já definido, abrangendo apenas soluções conhecidas. Isto é, 54% (61% se considerarmos C# como .NET) dos sistemas são desenvolvidos em alguma linguagem definida pela PRODEMGE e 31% são desenvolvidos nas linguagens sugeridas pela SEF. Além disso, a ilustração sugere o alinhamento com os padrões de mercado, quando comparado com o gráfico 5, a seguir, que evidencia a proporção de cada linguagem em termos de número de especialistas, cursos e termos usados em sites de busca (dados de Novembro de 2010 da organização TIOBE: http://www.tiobe.com). O resultado confirma que Java é a linguagem mais popular, PHP ocupa a quarta posição do ranking e assumi-la como padrão é, portanto, justificável. O gráfico ainda demonstra pequena participação da linguagem Delphi, em proporção semelhante à adotada no Governo. A diferença mais significativa está na adoção da linguagem C, C++ e C#. As duas primeiras datam da década de 1970 e 80, respectivamente, o que pode justificar sua permanência desde então. A última é o símbolo da plataforma .NET, que foi tratada como linguagem no gráfico anterior e também é um padrão aceito pela PRODEMGE. Gráfico 5 – Linguagens de Programação mais Populares, segundo o TIOBE O alcance da situação descrita pode ser atribuído a iniciativas anteriores visando à padronização de sistemas. Como esperado, tais ações partiram dos maiores responsáveis pela Tecnologia da Informação no Governo de Minas Gerais – PRODEMGE e Secretaria de Fazenda. Além disso, a situação ilustrada a seguir garante que pelo menos 33% dos sistemas seguirão aos padrões da PRODEMGE. Gráfico 4 – Fornecedores de sistemas de informação para Governo de Minas É necessário inserir a linguagem .NET para os casos em que aplicações são desenvolvidas sobre ferramentas da Microsoft como Exchange, Office, Sharepoint, Project. Além disso, essa linguagem é a mais adotada no mundo mobile e, portanto, sugere-se sua indicação para esse ambiente. 4.3. Frameworks de Desenvolvimento Framework de Desenvolvimento pode ser entendido como uma solução inicial dentro de um domínio de solução ou problema. Essa solução inicial envolve certos blocos construtivos que ajudam na solução, como componentes de acesso a dados, configuração, logging, monitoração, etc. O ponto chave desse cenário é a coordenação dos vários elementos dentro do mesmo domínio, fornecendo um ambiente para a construção de aplicações. O framework oferece assim uma solução inicial para novas aplicações. Assim, podemos ilustrar um framework de desenvolvimento através da figura abaixo, onde cada aplicação é imersa dentro do ambiente fornecido pelo framework: Figura 2 – Exemplo de Framework de Desenvolvimento Espera-se que a utilização de frameworks produza um nível bem elevado de produtividade, já que eles possuem muitas facilidades embutidas e às vezes fazem grande parte do trabalho que seria repetitivo para os programadores. Hoje em dia temos uma variedade deles no mercado, para a maioria das linguagens de programação largamente utilizadas, como PHP, Java e Python, e também para linguagens de script como Javascript. Alguns deles são muito ligados com a linguagem para a qual foi criada como Rails, tanto que muitas pessoas ouvem falar da linguagem Ruby como Ruby on Rails, e a maioria dos que começam a trabalhar com Ruby já aprendem com o framework. Ao projetar um sistema utilizando framework, tem-se projetos melhores, isso porque economiza-se tempo na programação básica e trivial, já que os frameworks fazem o 'serviço sujo' de programação, ou seja, as coisas básicas que se repetem não precisam ser feitas mais pelo programador e sim automaticamente pelo framework. Com esse tempo a mais, o foco pode passar para a criação de módulos complexos, e com isso aumentar o nível do projeto para além do esperado no planejamento do prazo. Como o intuito desse trabalho é suscitar a discussão a respeito de padrões, algumas questões devem ser levantadas: • Qual é a maturidade do framework em produção na instituição, se já existir algum? • O que se espera realmente com a construção do novo framework? Melhor desempenho? Maior produtividade? Melhor testabilidade? Padronização? • Qual é a maturidade da equipe usuária do framework? • Qual é a maturidade do processo de desenvolvimento de software e ALM – Application Lifecycle Management da empresa? • Qual é a arquitetura de referência escolhida, para o framework e para as aplicações alvo? • Quais são as recomendações de desenvolvimento, patterns e templates artefatos do framework? A discussão também deverá levar em consideração os benefícios que, de forma geral, são apontados, tais como: • Maior produtividade; • Maior qualidade do software gerado; • Redução de escopo; • Redução do prazo de entrega; • Redução da quantidade de linhas de código; • Padronização e manutenção facilitada; • Aplicação de padrões adotados; • Reuso de arquitetura, patterns e código; • Utilização de soluções prontas e testadas. 4.4. Sistema de Gerenciamento de Conteúdo (CMS) Um Sistema de Gestão de Conteúdo - SGC (em inglês Content Management Systems - CMS) é um sistema gestor de websites, portais e intranets que integra ferramentas necessárias para criar, gerir (editar e inserir) conteúdos em tempo real, sem a necessidade de programação de código, cujo objetivo é estruturar e facilitar a criação, administração, distribuição, publicação e disponibilidade da informação. Sua maior característica é a grande quantidade de funções presentes. Podemos dizer que um CMS é um framework, “um esqueleto” de website pré-programado, com recursos básicos, de manutenção e administração já prontamente disponíveis. É um sistema que permite a criação, armazenamento e administração de conteúdos de forma dinâmica, através de uma interface de utilizador via Internet. Um CMS permite que a instituição tenha total autonomia sobre o conteúdo e evolução da sua presença na internet e dispense a assistência de terceiros ou empresas especializadas para manutenções de rotina. Nem mesmo é preciso um funcionário dedicado (webmaster), pois cada membro da equipe poderá gerir o seu próprio conteúdo, diminuindo os custos com recursos humanos. A habilidade necessária para trabalhar com um sistema de gestão de conteúdo não vai muito além dos conhecimentos necessários para um editor de texto. A aparência de um website criado com um CMS é customizável, através da utilização de templates que podem ser facilmente substituídos. Em suma, o grande diferencial de um CMS é permitir que o conteúdo de um website possa ser modificado de forma rápida e segura de qualquer computador conectado à Internet. Um sistema de gestão de conteúdo reduz custos e ajuda a suplantar barreiras potenciais à comunicação web reduzindo o custo da criação, contribuição e manutenção de conteúdo. Existe uma gama de vantagens que um sistema de gerenciamento de conteúdo oferece, entre elas: • Estruturação do processo de autoria, no qual toda a sua equipe poderá contribuir, cada um na sua área de atuação e conhecimento; • Diminuição do tempo necessário para a criação de novas páginas e atualizações das já publicadas; • Harmonia estética com o resto do site e demais conteúdos; • Melhor estruturação da navegação, mantendo a coerência com projeto inicial de arquitetura da informação; • Maior flexibilidade, para acrescentar ou editar conteúdos de forma descentralizada e em qualquer lugar, dia ou noite, dentro ou não do escritório; • Permissão granular de acesso às informações publicadas; • Maior segurança; • Gerenciamento de versão dos conteúdos; • Escalabilidade; • Diminuição dos custos de manutenção. Sistemas avançados de CMS possuem muitos recursos adicionais, como workflow (fluxo de tarefas), que permite que conteúdos sejam adicionados ao sistema, porém ainda não disponíveis aos usuários finais, até a aprovação final de um editor–chefe. Conteúdos também podem ter data e hora de início e fim de publicação. Em termos simples, um CMS permite que a empresa tenha total autonomia sobre o conteúdo e evolução da sua presença na internet e dispense a assistência de terceiros ou empresas especializadas para manutenções de rotina. A habilidade necessária para trabalhar com um sistema de gerenciamento de conteúdo não vai muito além dos conhecimentos necessários para editar um texto no Word. A boa notícia é que desde que foram criados, no final dos anos 90, os sistemas de gerenciamento de conteúdo vêm progressivamente diminuindo de preço e ampliando seus recursos. Hoje existem alternativas comerciais, e de código aberto, de excelente qualidade, e uma diversidade de soluções que permitem encontrar a solução certa para cada projeto. 4.5. Padrões utilizados na PRODEMGE A Companhia de Tecnologia da Informação do Estado de Minas Gerais - PRODEMGE, por sua natureza, precisa lidar com diversas tecnologias. Ainda assim, ela procura se restringir a determinados padrões para evitar investimentos dispersos em diversas tecnologias. São eles: o Linux / Red Hat 3/4/5 Ambiente Operacional o Windows 2000/2003/2008 o PHP (4/5) o Java (5/6) Linguagens o HTML o ASP o .NET o Oracle (9i/10g) Banco de Dados o MYSQL (4/5) o SQL Server 2000/2005 o Apache (1/2) o Tomcat (5/6) Servidores de Aplicação Web o JBoss 4 o OAS 10g o IIS 6/7 Sistema de Gerenciamento de Conteúdo (CMS) o JOOMLA o JCompany (Java) Integrated Development Environment – IDE o Visual Studio (.Net) o PHP o Principais Frameworks Java (Struts, Hibernate, JSF, Seam, JUnit, Spring, EJB) o PHP (Cake PHP) Linguagens Mainframe o Natural o Adabas Banco de Dados Mainframe o DB2 4.6. Padrões utilizados na SEF A Secretaria de Estado de Fazenda possui equipe e experiência em desenvolvimento de sistemas. Por isso, também estabeleceu seus padrões, compatíveis com os citados no tópico anterior. São eles: Ambiente Operacional o Unix Solaris o Java Linguagens o Delphi¹ Banco de Dados o Oracle Sistema de Gerenciamento de Conteúdo (CMS) o OpenCMS o Struts o Spring o JPA Frameworks o EJB3 o Hibernate o JBoss Seam o UniFW ¹ Nota: A linguagem Delphi é apenas permitida para desenvolvimentos departamentais. 5. Outros Padrões a Serem Seguidos 5.1. Guia de Desenvolvimento Seguro O Guia de Desenvolvimento Seguro foi escrito pela empresa de consultoria Ernest&Young, conforme requisitado pela Secretaria de Estado de Planejamento e Gestão – SEPLAG. Conforme explicitado na introdução do Manual, “seu principal objetivo é compor uma referência única para os requerimentos de segurança e validação dos sistemas desenvolvidos e adquiridos para órgãos e entidades públicas de Minas Gerais.” O extenso documento foi dividido em dois volumes: • Volume 1: Requerimentos de segurança para desenvolvimento e validação; • Volume 2: Diretivas para codificação segura e interoperabilidade de sistemas. É importante destacar que o Manual levou em consideração as linguagens de desenvolvimento mais comumente utilizadas atualmente e suportadas pela PRODEMGE, conforme tabelas anteriores – os exemplos dados se basearam na linguagem Java. Não restam dúvidas, portanto, que o Manual é um importante instrumento para consolidar os padrões de desenvolvimento do Governo. 5.2. e-PING O e-PING é um trabalho desenvolvido no Governo Federal que estabelece “premissas, políticas e especificações técnicas que regulamentam a utilização da Tecnologia de Informação e Comunicação (TIC) na interoperabilidade de Serviços de Governo Eletrônico”. Embora o documento não seja de utilização obrigatória para governos estaduais, seu uso é recomendável. Afinal, não é absurdo supor que sistemas de diferentes esferas governamentais tenham alguma relação. Como exemplo, podemos citar os diversos requisitos de GRP que prevêem integração com sistemas do Governo Federal e o sistema de planejamento do estado, recebido dessa esfera e que, por isso, não possui integração adequada com outros aplicativos. 5.3. Framework Demoiselle O Serviço Federal de Processamento de Dados – SERPRO vem trabalhando em um framework muito interessante que é um conjunto de seis projetos, sendo cinco de software e um processo de desenvolvimento (http://www.frameworkdemoiselle.gov.br). Este framework é uma integração de várias tecnologias de software e uma arquitetura de referência que provê independência por meio de padronização: • As camadas são independentes, porque referências a objetos são obtidas indiretamente por meio de programação orientada a aspectos (AOP); • A aplicação é independente da interface (JSF); • A aplicação é independente de banco de dados (JPA); • Os serviços consumidos por todas as camadas estão disponíveis por meio de contextos. Figura 3 – Modelo Arquitetural do Demoiselle A solução propõe um framework extensível, baseado em especificações e não em implementações específicas, que trabalha como uma infraestrutura mínima de uma aplicação. Em vez de ter todas as funcionalidades, ele se restringe ao que é totalmente genérico. Para atacar problemas específicos, podem ser adicionados componentes opcionais. Dessa forma, sugere-se avaliar a sua adoção e possível contribuição com a evolução do framework com os demais estados e municípios que já o adotam e contribuem. 6. Conclusão O Governo do Estado de Minas Gerais tem se posicionado de forma inovadora e responsável com relação às Tecnologias de Informação e Comunicação. O Estado tem procurado prover serviços e informações de qualidade ao cidadão e melhorar a gestão pública utilizando-se, dentre outras tecnologias, diversos tipos de sistemas de informação. Tal iniciativa, contudo, não é feita sem as devidas preocupações: elas se alinham intencionalmente cada vez mais aos padrões de mercado, tendo em vista a continuidade dos negócios suportados pelos referidos sistemas e as futuras possibilidades de integração. Este projeto visa explicitar as iniciativas já existentes e fornecer subsídios para que novos sistemas sejam desenvolvidos ou adquiridos em conformidade com as melhores práticas adotadas no Governo.