Desafios práticos do Plone
Interligação ao Oracle
[email protected]
[email protected]
COMEÇANDO PELO FIM... OS
AGRADECIMENTOS
COMUNIDADE
PARTICIPANTES DO
EVENTO
ORGANIZADORES
DO EVENTO
CLIENTES
PARCEIROS
TÉCNICOS
QUEM SOMOS?
HISTÓRICO
• 1998 - Fundação
• Consultoria para
novas tecnologias
• 2001 – PPM e EPM
• 2003 – Portais e BI
• 2005 – ALM
• Case nacional de
FSW
• 2009 – EAD
• 2011 – CPLS
• 2012 – Segurança
biométrica e
telemetria veicular
ESTRUTURA e
CERTIFICAÇÕES
• Centro de
treinamento
• Nuvem privada
• Dezenas de técnicos
especializados
• Mais de 70
certificações e
especializações
técnicas
• ITIL
• PMP
• Especialistas e
Mestres
• A+
• Microsoft
• CA
TECNOLOGIAS E
PARCEIROS
• Parceiros
• Urban Turtle
• CrossMatch
• Microsoft
• Tecnologias e
Produtos
• Plone
• CA Clarity
• Project
• TFS
• Moodle
• PHP
• Java
• .NET
SERVIÇOS
• Integração
• Consultoria
• EPM e PPM
• Portais
• BI
• ALM
• Suporte
• Remoto e
presencial
• EAD
• Elaboração e
transcrição de
treinamentos
• Treinamentos
• In Company
• Sob medida
• Alocação de
especialistas
ACESSANDO DADOS A PARTIR DE UM
PORTAL
NATIVO OU PRÉ-CONFIGURADO
OUTROS MÉTODOS
ACESSO À BASE DE DADOS
• Acesso via ZOPE
– Nativo para: ZODB
• Plugins “nativos”: Gadfly
• Plugins “livres”: PostGree, SQLlite, MySQL...
• Bases proprietárias: Não tem conexão “out-ofthe-box”.
PROBLEMAS PARA CONECTAR COM BD
PROPRIETÁRIO
• Poucos conectores Livres e Gratuitos
• Qualidade e Confiabilidade = $$$$
• ZMySQLDA – MySQL Database Adapter for Zope
• Psycopg2 – PostgreSQL database adapter for the
Python
• RelStorage – Solução que integra Mysql,
PostgreSQL (via psycopg2), MySQL (via MySQLdb) e
Oracle 10g, 11g (via cx_Oracle)
OPÇÕES PARA CONEXÃO COM BASES
PROPRIETÁRIAS
• eGenix mxODBC Zope DA - ODBC Database
Adapter for Zope and Plone
– Preço unitário a partir de R$ 277.35, caindo de
acordo com a quantidade de usuários
• Pagar pela conexão aumenta o TCO – Total
Cost Ownership de uma solução, podendo
inviabilizar a tecnologia.
CASO DE USO DE UMA CONEXÃO DE
UM PORTAL PLONE COM ORACLE
CENÁRIO
• PLONE 4.2
• Banco de Dados: Oracle 11g
– Bases: 10
– Sistemas: 54
– Tabelas: 260
+ 2.000 acessos simultâneos
CLIENTE
• STM - Superior Tribunal Militar
– É o órgão da Justiça Militar do Brasil, composto por 15 Ministros.
•
O Que faz?
– É o órgão especializado a aplicação da lei a militares federais Marinha, Exército e Aeronáutica, julgando apenas e tão somente os
crimes militares definidos em lei.
•
Implantação do Plone
– Em 2009 foi implantado o Plone para dinamizar e facilitar a gerência de
conteúdo do STM
CONTEXTO DO PLONE NO STM
Planejamento Estratégico
http://www.planejamentoestrategico.stm.jus.br
•
O Planejamento Estratégico foi a
consolidação do Plone dentro do STM.
•
A estrutura da informação, facilidade para
o acompanhamento de processos e
evoluções no âmbito dos servidores e da
organização pode-se perceber o potencial
que a ferramenta poderia trazer também
para o portal e a intranet do STM.
•
Destacou-se através da facilidade no
gerenciamento das informações. Durante
o planejamento estratégico ficou mais fácil
encontrar notícias constantemente
atualizadas, assim como imagens de todos
os eventos das auditorias militares de todo
o Brasil, assim como acesso a áudio e
vídeo.
REORGANIZANDO A CASA
COMITÊ GESTOR
•
Foi criado graças ao Plone um comitê gestor, retirando a
responsabilidade da equipe de informática sobre a gerência de
conteúdo, onde os usuários da área de comunicação foram
treinados e passaram a alimentar a ferramenta desafogando a
equipe de informática.
RE-ORGANIZAÇÃO DOS PORTAIS
•
Após o planejamento, foi iniciado a reformulação dos portais
juntamente com o comitê gestor do STM, o projeto esta
caminhando para a segunda fase, onde todos os iframes estão
sendo substituídos por page templates (integrado a base
Oracle).
INTEGRAÇÃO AO ORACLE
• Uma das maiores surpresas das equipes técnicas foi constatar a
rápida integração do Plone ao Banco de Dados Oracle.
– Há uma percepção de isolamento entre ferramentas livres e
proprietárias.
– Esta integração trouxe facilmente novos adeptos ao Plone, ao portal e
ao projeto.
– Os projetos que trabalham com apenas uma tecnologia, sem
integrações, estão limitados em sua abrangência.
– Integrar ou não crescer!
•
Um Pouco Sobre o processo de Integração ao Oracle
• Para a integração com o Oracle utilizamos :
Products.SQLAlchemy
cx_Oracle
PONTOS CHAVE PARA O SUCESSO DO
PROJETO
• Alinhamento técnico
• Capacitação e nivelamento do time envolvido
• Uso de melhores práticas para configuração
do ambiente
• Correta análise de requisitos
PROCEDIMENTO
INSTALANDO O CLIENT DO ORACLE NO LINUX
1. Download - instantClient para Linux
Para realizar o download no site da oracle
é necessário efetuar um cadastro gratuito.
http://www.oracle.com/technetwork/database
/features/instant-client/index- 097480.html
DOWNLOAD
PACOTES
2. Os pacotes necessários para instalação do InstanteClient são:
• Instant Client Package - Basic: All files required to run OCI, OCCI,
and JDBC-OCI applications
• Instant Client Package - JDBC Supplement: Additional support for
XA, Internationalization, and RowSet operations under JDBC
• Instant Client Package - SQL*Plus: Additional libraries and
executable for running SQL*Plus with Instant Client
• Instant Client Package - SDK: Additional header files and an
example makefile for developing Oracle applications with Instant
Client
• Instant Client Package - ODBC: Additional libraries for enabling
ODBC applications
3. Crie o diretório /opt/oracle
ARQUIVOS
4. Após o Download dos arquivos, descompacte-os no diretório
/opt/oracle
•
unzip
–
–
–
–
–
instantclient-basic-linux.x64-11.2.0.3.0.zip
instantclient-odbc-linux.x64-11.2.0.3.0.zip
unzip instantclient-jdbc-linux.x64-11.2.0.3.0.zip
unzip instantclient-sdk-linux.x64-11.2.0.3.0.zip
unzip instantclient-sqlplus-linux.x64-11.2.0.3.0.zip
5. Após a descompactação será necessário criar um link simbólico
da lib principal, isto fará posteriormente com que o python compile
o plugin de conxão ao Oracle.
• ln -s libclntsh.so.11.1 libclntsh.so
VARIÁVEIS DE AMBIENTE
6. Será necessário exportar algumas variáveis de
ambiente
• export
– ORACLE_HOME=/opt/oracle/instantclient_11_2
– TNS_ADMIN=$ORACLE_HOME/network/admin
– NLS_LANG="American_America.UTF8“
– LD_LIBRARY_PATH==/opt/oracle/instantclient_11_2:$
PATH:
$ORACLE_HOME:$ORACLE_HOME/lib
– PATH=$ORACLE_HOME/bin:$PATH:$LD_LIBRARY_PAT
H
TNSNAMES.ORA
7. Crie o arquivo TNSNAMES.ORA - responsável
pelas configurações de conexão ao Oracle no
diretório:
/opt/oracle/instantclient_11_2/admin
TNSNAMES.ORA (conteúdo)
DESENV.SEUSITE.COM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = desenv.seusite.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = svc01)
)
)
PROD.SEUSITE.COM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = prod.seusite.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = svc02)
)
)
TESTANDO
8. Teste a conexão ao oracle utilizando o componente sqlplus:
•
$ ./sqlplus [email protected]
9.Se tudo ocorrer bem ao executar uma query de teste
teremos o seguinte
•
SQL> desc posts
Name
Null?
Type
ID
NOT NULL
NUMBER(38)
TITLE
VARCHAR2(50)
BODY
VARCHAR2(4000)
CREATED
DATE
MODIFIED
DATE
INSTALANDO O PLUGIN
1. Entre no diretório onde esta instalado o Plone
cd /dir-da-instancia/zeoserver
2. Altere o arquivo buildout.cfg adicionando o plugin a
diretiva Eggs:
eggs =
...
Products.SQLAlchemyDA
3. Execute o buildout
./bin/buildout -v
*************** PICKED VERSIONS ****************
[versions]
Products.SQLAlchemyDA = 0.5.1
SQLAlchemy = 0.7.7
zope.sqlalchemy = 0.7.1
z3c.sqlalchemy = 1.4.0
cx_Oracle = 5.1.1
*************** /PICKED VERSIONS ***************
4. O buildout irá retornar as versões dos componentes
instalados, no final do arquivo buildout.cfg adicione as
linhas de retorno na diretiva [version] com as respectivas
versões como no exemplo abaixo:
[versions]
...
Products.SQLAlchemyDA = 0.5.1
SQLAlchemy = 0.7.7
zope.sqlalchemy = 0.7.1
z3c.sqlalchemy = 1.4.0
cx_Oracle = 5.1.1
CONTORNOS COMUNS
5. Caso ocorra erro ao baixar os pacotes via buildout,
tente setar as variáveis do proxy de rede caso exista
export http_proxy=proxy.seusite.com
export http_proxy=proxy.seusite.com
6. Caso ocorra o erro no buildout com o cx_oracle, vá
no diretorio do python
•
e instala-lo via easy_install.
•
cd /usr/local/Plone/Python2.6/bin
• easy_install –U cx-oracle
CONTORNOS COMUNS
7. Caso continue dando erro tente fazer o download
direto do pacote http://
•
pypi.python.org/simple/cx_Oracle/ descompacte
na pasta do python entre na pasta onde consta o
arquivo setup.py e rode o comando.
../python setup.py install
8. Se tudo ocorrer bem ao subir a instância do plone
como no exemplo abaixo.
Reinicie a instância.
ZMI
1. Entre no Plone Site vá ao menu superior direito e
adicione SQLAlchemyDA
CONFIGURAÇÃO DA CONEXÃO
2. Adicione as configurações de conexão
TESTE DA CONEXÃO
3. Faça o teste de consulta na base de dados
OUTROS DESAFIOS PARA O SUCESSO
DAS SOLUÇÕES COM PLONE
PLONE – DOIS MUNDOS
Benefit Rating: Moderate
Market Penetration: 5% to 20% of target audience
Maturity: Adolescent
Sample Vendors: Alfresco; Bricolage; Drupal; eZ
Systems; KnowledgeTree; Magnolia; Nuxeo;
OpenCms; Plone Foundation; Squiz; Typo3;
Xaray
Karen M. Shegda; Mick MacComascaigh
PLONE E OUTROS CMSs
IDEALWARE: comparing_open_source_cms
EQUIPES
• Forte dependência de mão-de-obra
especializada
• COMO IDENTIFICAR PROFISSIONAIS
CAPACITADOS?
• Não há um acessível, amplamente divulgado
e crível programa de formação e avaliação de
profissionais em PLONE.
PEQUENA SUGESTÃO...
MODELOS AMPLAMENTE ADOTADOS
QUE DERAM CERTO
• Outras comunidades também
passaram por problemas similares
• PMI – PMP
• ITIL – Certificação ITIL
• BPMN – CBPP
SEGUINDO OS PASSOS DE SUCESSO DE
OUTRAS COMUNIDADES
• Mobilização da comunidade (comitê?) para a
criação de um sistema de acreditação com
dois eixos:
– Centros de formação
• Treinamentos certificados/validados
– Certificações
• 2 certificações – Infra e desenvolvedor
Obrigado!
Herson Rodrigues
Agradecimento especial ao
responsável técnico do projeto STM
Consultoria que
respira inovação
Download

Produtiva TI Plone Symposium Publica