desafios práticos do plone interligação ao oracle...

39
Desafios práticos do Plone Interligação ao Oracle [email protected] [email protected]

Upload: internet

Post on 18-Apr-2015

104 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

Desafios práticos do Plone Interligação ao Oracle

[email protected]@produtivati.com.br

Page 2: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

COMEÇANDO PELO FIM... OS AGRADECIMENTOS

COMUNIDADE

ORGANIZADORES DO EVENTO

CLIENTES

PARCEIROS

TÉCNICOS

PARTICIPANTES DO EVENTO

Page 3: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

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

Page 4: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

ACESSANDO DADOS A PARTIR DE UM PORTAL

NATIVO OU PRÉ-CONFIGURADO OUTROS MÉTODOS

Page 5: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

• Acesso via ZOPE– Nativo para: ZODB

• Plugins “nativos”: Gadfly• Plugins “livres”: PostGree, SQLlite, MySQL...• Bases proprietárias: Não tem conexão “out-of-

the-box”.

ACESSO À BASE DE DADOS

Page 6: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

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)

Page 7: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

OPÇÕES PARA CONEXÃO COM BASESPROPRIETÁ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.

Page 8: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

CASO DE USO DE UMA CONEXÃO DE UM PORTAL PLONE COM ORACLE

Page 9: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

CENÁRIO

• PLONE 4.2

• Banco de Dados: Oracle 11g

– Bases: 10– Sistemas: 54 – Tabelas: 260 + 2.000 acessos simultâneos

Page 10: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

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

Page 11: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

http://www.planejamentoestrategico.stm.jus.br

CONTEXTO DO PLONE NO STM

Planejamento Estratégico

• 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.

Page 12: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

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).

REORGANIZANDO A CASA

Page 13: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

• 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

INTEGRAÇÃO AO ORACLE

Page 14: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

• 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

PONTOS CHAVE PARA O SUCESSO DO PROJETO

Page 15: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

INSTALANDO O CLIENT DO ORACLE NO LINUX

1. Download - instantClient para LinuxPara 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

PROCEDIMENTO

Page 16: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

DOWNLOAD

Page 17: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

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

Page 18: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

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

Page 19: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

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_PATH

Page 20: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

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

Page 21: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

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) ))

Page 22: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

Name Null? Type

ID NOT NULL NUMBER(38)

TITLE VARCHAR2(50)

BODY VARCHAR2(4000)

CREATED DATE

MODIFIED DATE

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

Page 23: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

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

INSTALANDO O PLUGIN

Page 24: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

*************** PICKED VERSIONS ****************[versions]Products.SQLAlchemyDA = 0.5.1SQLAlchemy = 0.7.7zope.sqlalchemy = 0.7.1z3c.sqlalchemy = 1.4.0cx_Oracle = 5.1.1*************** /PICKED VERSIONS ***************

3. Execute o buildout

./bin/buildout -v

Page 25: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

[versions]...Products.SQLAlchemyDA = 0.5.1SQLAlchemy = 0.7.7zope.sqlalchemy = 0.7.1z3c.sqlalchemy = 1.4.0cx_Oracle = 5.1.1

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:

Page 26: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

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.comexport 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

Page 27: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

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.

Page 28: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

ZMI

1. Entre no Plone Site vá ao menu superior direito e adicione SQLAlchemyDA

Page 29: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

CONFIGURAÇÃO DA CONEXÃO

2. Adicione as configurações de conexão

Page 30: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

TESTE DA CONEXÃO

3. Faça o teste de consulta na base de dados

Page 31: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

OUTROS DESAFIOS PARA O SUCESSO DAS SOLUÇÕES COM PLONE

Page 32: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

Karen M. Shegda; Mick MacComascaigh

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

PLONE – DOIS MUNDOS

Page 33: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

PLONE E OUTROS CMSs

IDEALWARE: comparing_open_source_cms

Page 34: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

• 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.

EQUIPES

Page 35: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

PEQUENA SUGESTÃO...

Page 36: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

• Outras comunidades também passaram por problemas similares

• PMI – PMP• ITIL – Certificação ITIL• BPMN – CBPP

MODELOS AMPLAMENTE ADOTADOS QUE DERAM CERTO

Page 37: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

• 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

SEGUINDO OS PASSOS DE SUCESSO DE OUTRAS COMUNIDADES

Page 38: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

Obrigado!

Agradecimento especial ao responsável técnico do projeto STM

Herson Rodrigues

Page 39: Desafios práticos do Plone Interligação ao Oracle pablo@produtivati.com.brherson@produtivati.com.br

Consultoria que respira inovação