Padrões Tecnológicos - Portal de Compras

Propaganda
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.
Download