Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Desenvolvendo Aplicativos com  Zend Framework  e banco de dados CDS/ISIS Domingos Teruel http://www.dteruel.com.br Osasco,...
Experiência Profissional Tecnólogo em computação cursando   especialização em SistemasWeb e Interface de Usuários; Atua na...
Quem esta na Platéia? <ul><li>Fãs de Software Livre ? </li></ul><ul><li>Estudantes ? </li></ul><ul><li>Desenvolvedores Ava...
Linha da apresentação <ul><li>Apresentação do CDS/ISIS </li></ul><ul><li>Entendendo bases de dados textual </li></ul><ul><...
Quem está usando CDS/ISIS <ul><li>UNESCO </li></ul><ul><li>Ministério da Saúde/Educação </li></ul><ul><li>Bibliotecas </li...
CDS/ISIS Computerized Documentation System / Integrated Set of Information System
CDS/ISIS -  Definições <ul><li>CDS/ISIS é um sistema genérico de  Armazenamento  e  Recuperação de  Informação </li></ul><...
CDS/ISIS -  Definições <ul><li>Como o Dbase ou MS-Access, CDS/ISIS  não   é  um sistema de banco de dados relacional, embo...
CDS/ISIS -  O que é uma base de dados? <ul><li>O termo  “base de dados”  significa uma coleção estruturada de informações ...
CDS/ISIS –  O que é uma base de dados? Base de dados Campo 1 Campo 2 Campo 3 Campo 4 ausente Campo 1 Campo 2 Campo 3 ausen...
CDS/ISIS –  Noções Básicas <ul><li>Registros são armazenados em um arquivo chamado  “Master File”  (MST) </li></ul><ul><li...
CDS/ISIS –  Noções Básicas <ul><li>O dicionário de termos de busca é construído de acordo com os critérios estabelecidos p...
CDS/ISIS –  Noções Básicas Base de dados FST Dicionário
WWWISIS: Web-based CDS/ISIS Database Server <ul><li>WWWISIS é um sistema especialmente  concebido  para atuar como servido...
WWWISIS: Web-based CDS/ISIS Database Server <ul><li>Objetivo/ uso: WWWISIS é um programa concebido para servir como servid...
WWWISIS  - Características <ul><li>WWWISIS sua operação é conduzida por parâmetros </li></ul><ul><ul><li>Os principais par...
WWWISIS - Características <ul><li>CDS/ISIS linguagem de formato é suportado pelo WWWISIS </li></ul><ul><li>Parâmentros de ...
WWWISIS - Características <ul><li>WWWISIS – Interface de Pesquisa </li></ul><ul><ul><li>Suporte a operadores Boleanos (AND...
WWWISIS – Integrando com PHP <ul><li>Biblioteca WXIS-MODULES </li></ul><ul><ul><li>Conjunto de scripts WWWIsis que permite...
WWWISIS – Integrando com PHP <ul><li>Classe DB_ISIS </li></ul><ul><ul><ul><li>Classe que encapsula a biblioteca WXIS-MODUL...
WWWISIS – Integrando com ZendFramework <ul><li>Preparando o Ambiente </li></ul><ul><ul><li>Baixar o ZendFramework </li></u...
WWWISIS – Integrando com ZendFramework <ul><li>Preparando o Ambiente </li></ul><ul><ul><li>Estrutura de diretórios </li></...
WWWISIS – Integrando com ZendFramework <ul><li>Configurando o Servidor Web (Apache) </li></ul><ul><ul><ul><li>VirutalHost ...
WWWISIS – Integrando com ZendFramework <ul><li>Criando do Arquivo de Configuração </li></ul><ul><ul><li>application/databa...
WWWISIS – Integrando com ZendFramework <ul><li>O arquivo bootstrap </li></ul><ul><li>... </li></ul><ul><li>Zend_Loader::lo...
WWWISIS – Integrando com ZendFramework <ul><li>IndexController </li></ul><?php class IndexController extends Zend_Controll...
WWWISIS – Integrando com ZendFramework <ul><li>AddController </li></ul><?php Zend::loadClass('Zend_Controller_Action'); Ze...
WWWISIS – Integrando com ZendFramework <ul><li>AddController </li></ul>... $fname = $filterPost->testAlpha('fname'); $lnam...
Caso de Uso
Caso de Uso
Caso de Uso
Caso de Uso
Referências <ul><li>Página Oficial </li></ul><ul><ul><ul><li>www.unesco.org/webworld/isis/isis.htm </li></ul></ul></ul><ul...
Agradecimentos <ul><li>ONU/OMS/OPAS/BIREME </li></ul><ul><li>PHP Conference </li></ul><ul><li>Você </li></ul>
Dúvidas e comentários?
Obrigado [email_address] http://meadiciona.com/mingomax
Upcoming SlideShare
Loading in …5
×

Desenvolvendo Aplicativos com Zend Framework e banco de dados CDS/ISIS

3,798 views

Published on

Apresentação feita durante a PHP Conference 2008 sobre Desenvolvimento de Aplicativos com Zend Framework e banco de dados CDS/ISIS

Published in: Technology
  • Be the first to comment

Desenvolvendo Aplicativos com Zend Framework e banco de dados CDS/ISIS

  1. 1. Desenvolvendo Aplicativos com Zend Framework e banco de dados CDS/ISIS Domingos Teruel http://www.dteruel.com.br Osasco, 27 – 29 de novembro 2008
  2. 2. Experiência Profissional Tecnólogo em computação cursando especialização em SistemasWeb e Interface de Usuários; Atua na área de desenvolvimento e implementação de projetos de sistemas web-based em Software Livre, trabalha com PHP desde 1999. Analista de Sistemas da instituição ONU/OMS/OPAS/BIREME desde 2004
  3. 3. Quem esta na Platéia? <ul><li>Fãs de Software Livre ? </li></ul><ul><li>Estudantes ? </li></ul><ul><li>Desenvolvedores Avançado de PHP ? </li></ul><ul><li>Desenvolvedores de outras Linguagens ? </li></ul><ul><li>Todas as opções acima ! </li></ul><ul><li>Nenhuma das outras opções !! </li></ul>
  4. 4. Linha da apresentação <ul><li>Apresentação do CDS/ISIS </li></ul><ul><li>Entendendo bases de dados textual </li></ul><ul><li>Estrutura de dados </li></ul><ul><li>CDS/ISIS e Web </li></ul><ul><li>Integração com PHP </li></ul><ul><li>Integração com Zend Framework </li></ul><ul><li>Desenvolvimento de um Projeto </li></ul>
  5. 5. Quem está usando CDS/ISIS <ul><li>UNESCO </li></ul><ul><li>Ministério da Saúde/Educação </li></ul><ul><li>Bibliotecas </li></ul><ul><li>Instituições Públicas/Privadas da América Latina e Caribe </li></ul>
  6. 6. CDS/ISIS Computerized Documentation System / Integrated Set of Information System
  7. 7. CDS/ISIS - Definições <ul><li>CDS/ISIS é um sistema genérico de Armazenamento e Recuperação de Informação </li></ul><ul><li>É um sistema desenvolvido para ser usado por bases de dados estruturadas não-numéricas cujo conteúdo é em sua maioria textual </li></ul><ul><li>É especializado para conteúdo informacionais de tamanho variável </li></ul><ul><li>Funciona como sistema de base de dados local ou em rede </li></ul>
  8. 8. CDS/ISIS - Definições <ul><li>Como o Dbase ou MS-Access, CDS/ISIS não é um sistema de banco de dados relacional, embora também possibilite algumas facilidades relacionais </li></ul><ul><li>CDS/ISIS possibilita realizar buscas, tais como: “Quais os projetos que tratam de pesquisa em Software Livre na Índia” </li></ul><ul><li>Expansível </li></ul><ul><li>Dispõe de uma grande variedade de soluções para a publicação de dados na Internet </li></ul>
  9. 9. CDS/ISIS - O que é uma base de dados? <ul><li>O termo “base de dados” significa uma coleção estruturada de informações </li></ul><ul><li>Uma base de dados contém elementos de dados chamados “registros” </li></ul><ul><li>Cada registro da base de dados tem a mesma estrutura </li></ul><ul><li>Algumas unidades de informação em um registro podem estar ausentes , outras podem ocorrer mais de uma vez </li></ul><ul><li>As unidades de informação em um registro são chamadas de “campos” , os quais podem conter “subcampos” </li></ul>
  10. 10. CDS/ISIS – O que é uma base de dados? Base de dados Campo 1 Campo 2 Campo 3 Campo 4 ausente Campo 1 Campo 2 Campo 3 ausente Campo 4 ausente Campo 1 Campo 2 Campo 3 Campo 4
  11. 11. CDS/ISIS – Noções Básicas <ul><li>Registros são armazenados em um arquivo chamado “Master File” (MST) </li></ul><ul><li>Cada registro possue um identicador único, chamado “Master File Number” (MFN) </li></ul><ul><li>O MFN é automaticamente atribuído na criação do registro </li></ul><ul><li>Campos de um registro são identificados por um código numérico chamado TAG (etiqueta) </li></ul><ul><li>O acesso ao dado pode ser feito por MFN ou pelo conteúdo </li></ul><ul><li>Para isso, deve-se manter um dicionário de termos de busca, chamado “Arquivo Invertido” (Inverted File) </li></ul>
  12. 12. CDS/ISIS – Noções Básicas <ul><li>O dicionário de termos de busca é construído de acordo com os critérios estabelecidos pelo criador da base de dados </li></ul><ul><li>Critérios são padrões que instruem o ISIS como extrair os termos de busca de um registro </li></ul><ul><li>Os critérios são coletados da “Field Selection Table” (FST) (tabela de seleção do campo) </li></ul>
  13. 13. CDS/ISIS – Noções Básicas Base de dados FST Dicionário
  14. 14. WWWISIS: Web-based CDS/ISIS Database Server <ul><li>WWWISIS é um sistema especialmente concebido para atuar como servidor de bases de dados ISIS na World Wide Web em ambientes Cliente/Servidor </li></ul><ul><li>WWWISIS foi desenvolvido pela UNESCO, é mantido e distribuído pela BIREME, para os países da América Latina e do Caribe. BIREME é um centro especializado da OPAS/OMS </li></ul><ul><li>WWWISIS está na versão 7.1 </li></ul>
  15. 15. WWWISIS: Web-based CDS/ISIS Database Server <ul><li>Objetivo/ uso: WWWISIS é um programa concebido para servir como servidor para o CDS/ISIS. É uma biblioteca em C completa para administração e manipulação de bases de dados </li></ul><ul><li>Disponibilidade </li></ul><ul><ul><ul><li>O WWWISIS está disponível livremente para várias plataformas. </li></ul></ul></ul><ul><ul><ul><ul><li>http://bvsmodelo.bvsalud.org </li></ul></ul></ul></ul><ul><li>Exemplos de uso e documentação </li></ul><ul><ul><ul><ul><li>http://bvsmodelo.bvsalud.org </li></ul></ul></ul></ul>
  16. 16. WWWISIS - Características <ul><li>WWWISIS sua operação é conduzida por parâmetros </li></ul><ul><ul><li>Os principais parâmetros são: </li></ul></ul><ul><ul><ul><li>Nome da Base de Dados (db) </li></ul></ul></ul><ul><ul><ul><li>Expresão de Busca (booleana) e </li></ul></ul></ul><ul><ul><ul><li>especificação de formato de saída (pft) </li></ul></ul></ul><ul><ul><li>Podem ser gerados dinamicamente </li></ul></ul><ul><li>WWWISIS pode ser chamado diretamente na linha de comando ou como um script CGI </li></ul>
  17. 17. WWWISIS - Características <ul><li>CDS/ISIS linguagem de formato é suportado pelo WWWISIS </li></ul><ul><li>Parâmentros de pesquisa podem ser passadas através de formulários, via CGI </li></ul><ul><li>WWWISIS: Interface de indexação </li></ul><ul><ul><li>Multi-record file (ex. Registros biblografico para arquivo) </li></ul></ul><ul><ul><li>Suporta vários formatos de arquivos </li></ul></ul><ul><ul><li>Stop words : Sim </li></ul></ul><ul><ul><li>Indexação em nivel de campo: Sim </li></ul></ul>
  18. 18. WWWISIS - Características <ul><li>WWWISIS – Interface de Pesquisa </li></ul><ul><ul><li>Suporte a operadores Boleanos (AND, OR e AND NOT) </li></ul></ul><ul><ul><li>Pesquisa por proximidade </li></ul></ul><ul><ul><li>Truncamento </li></ul></ul><ul><ul><li>Pesquisa em nivel de campo </li></ul></ul><ul><li>WWWISIS – Performance de Pesquisa e Indexação </li></ul><ul><ul><li>Não há necessidade de arquivos ou comandos adicionais, somente a base de dados </li></ul></ul><ul><ul><li>Tempo de resposta (pesquisas simples e complexas) </li></ul></ul><ul><ul><ul><li>Eficiente e rápida </li></ul></ul></ul>
  19. 19. WWWISIS – Integrando com PHP <ul><li>Biblioteca WXIS-MODULES </li></ul><ul><ul><li>Conjunto de scripts WWWIsis que permite, de maneira simples, recuperar em formato XML as informacões da bases de dados CDS/ISIS </li></ul></ul><ul><ul><ul><li>WXIS_LIST => Recuperação e listagem de registros </li></ul></ul></ul><ul><ul><ul><li>WXIS_SEARCH => Pesquisa </li></ul></ul></ul><ul><ul><ul><li>WXIS_INDEX => Listagem do indíce do dicionário de dados </li></ul></ul></ul><ul><ul><ul><li>WXIS_EDIT => Bloqueio de registros </li></ul></ul></ul><ul><ul><ul><li>WXIS_WRITE => Inserção e atualização de registros </li></ul></ul></ul><ul><ul><ul><li>WXIS_DELETE => Exclusão de registros </li></ul></ul></ul><ul><ul><ul><li>WXIS_CONTROL => Funções de controle: status, geração do dicionário de dados e desbloqueio de registros </li></ul></ul></ul>
  20. 20. WWWISIS – Integrando com PHP <ul><li>Classe DB_ISIS </li></ul><ul><ul><ul><li>Classe que encapsula a biblioteca WXIS-MODULES </li></ul></ul></ul><ul><ul><ul><li>Tem caracteristicas de um PDO fornecendo os métodos para acesso e manipulação da base de dados de forma mais transparente </li></ul></ul></ul>
  21. 21. WWWISIS – Integrando com ZendFramework <ul><li>Preparando o Ambiente </li></ul><ul><ul><li>Baixar o ZendFramework </li></ul></ul><ul><ul><ul><li>http://framework.zend.com/download </li></ul></ul></ul><ul><ul><li>Baixar o utilitário WWWISIS e a base de exemplo CDS/ISIS </li></ul></ul><ul><ul><ul><li>http://bvsmodelo.bvsalud.org/php/level.php?lang=pt&component=28&item=2 </li></ul></ul></ul><ul><ul><li>Baixar a biblioteca WXIS-MODULES </li></ul></ul><ul><ul><ul><li>http://productos.bvsalud.org/docs/level2.php?channel=links&lang=pt&graphic=yes&lang=pt&graphic=yes </li></ul></ul></ul>
  22. 22. WWWISIS – Integrando com ZendFramework <ul><li>Preparando o Ambiente </li></ul><ul><ul><li>Estrutura de diretórios </li></ul></ul><ul><ul><ul><li>application </li></ul></ul></ul><ul><ul><ul><ul><li>Contém todo o código da sua aplicação </li></ul></ul></ul></ul><ul><ul><ul><li>library </li></ul></ul></ul><ul><ul><ul><ul><li>Contém todas as bibliotecas necessárias utilizadads na aplicação (ZF, WXIS-MODULES) </li></ul></ul></ul></ul><ul><ul><ul><li>htdocs </li></ul></ul></ul><ul><ul><ul><ul><li>Contém os arquivos públicos, incluindo o arquivo bootstrap </li></ul></ul></ul></ul><ul><ul><ul><li>cgi-bin </li></ul></ul></ul><ul><ul><ul><ul><li>Contém o CGI wxis.exe </li></ul></ul></ul></ul><ul><ul><ul><li>bases </li></ul></ul></ul><ul><ul><ul><ul><li>Contém todos os arquivos CDS/ISIS (Arquivos Mestres, Arquivo Invertidos) </li></ul></ul></ul></ul>
  23. 23. WWWISIS – Integrando com ZendFramework <ul><li>Configurando o Servidor Web (Apache) </li></ul><ul><ul><ul><li>VirutalHost </li></ul></ul></ul><ul><ul><ul><ul><li><VirtualHost *> ServerName wwwisis.local DocumentRoot /home/aplicacoes/wwwisis/htdocs <Directory &quot;/home/aplicacoes/wwwisis/htdocs&quot;> AllowOverride None Options FollowSymLinks MultiViews </Directory> DirectoryIndex index.htm index.php homepage.htm index.html default.htm default.html ScriptAlias /cgi-bin/ /home/aplicacoes/wwwisis/cgi-bin/ ErrorLog logs/wwwisis-error.log CustomLog logs/wwwisis-access-.log combined </VirtualHost> </li></ul></ul></ul></ul><ul><ul><ul><li>wwwisis/.htaccess </li></ul></ul></ul><ul><ul><ul><ul><li>RewriteEngine on RewriteRule !.(css|ico|js|swf|png|gif|jpg)$ index.php </li></ul></ul></ul></ul>
  24. 24. WWWISIS – Integrando com ZendFramework <ul><li>Criando do Arquivo de Configuração </li></ul><ul><ul><li>application/database.def </li></ul></ul><ul><ul><ul><ul><li>[cds] base_path=/home/wwwisis/bases/cds fst_path=/home/wwwisis/bases/cds/cds.fst </li></ul></ul></ul></ul>
  25. 25. WWWISIS – Integrando com ZendFramework <ul><li>O arquivo bootstrap </li></ul><ul><li>... </li></ul><ul><li>Zend_Loader::loadClass('Zend_Controller_Front'); </li></ul><ul><li>Zend_Loader::loadClass('Zend_Config_Ini'); </li></ul><ul><li>Zend_Loader::loadClass('Zend_Registry'); </li></ul><ul><li>// load configuration </li></ul><ul><li>$config = new Zend_Config_Ini('../application/database.def', 'cds'); </li></ul><ul><li>$registry = Zend_Registry::getInstance(); </li></ul><ul><li>$registry->set('config', $config); </li></ul><ul><li>//setup database </li></ul><ul><li>$conn = Zend_Db::factory('DB_ISIS', $params); </li></ul><ul><li>$db = new Database($conn); </li></ul><ul><li>Zend::register('db', $db); </li></ul><ul><li>... </li></ul>
  26. 26. WWWISIS – Integrando com ZendFramework <ul><li>IndexController </li></ul><?php class IndexController extends Zend_Controller_Action { public function indexAction() { /* show main page. */ $db = Zend::registry('db'); $view = Zend::registry('view'); $view->title = 'CDS – Isis na pratica'; echo $view->render('index.php'); } public function noRouteAction() { $this->_redirect('/'); echo 'norouteaction'; } }
  27. 27. WWWISIS – Integrando com ZendFramework <ul><li>AddController </li></ul><?php Zend::loadClass('Zend_Controller_Action'); Zend::loadClass('Zend_View'); class AddController extends Zend_Controller_Action { function indexAction() { $this->_redirect('/'); } function newAction() { /* Display registration form. */ $db = Zend::registry('db'); $view = Zend::registry('view'); $view->title = 'CDS – Isis na pratica'; echo $view->render('view.php'); } ...
  28. 28. WWWISIS – Integrando com ZendFramework <ul><li>AddController </li></ul>... $fname = $filterPost->testAlpha('fname'); $lname = $filterPost->testAlpha('lname'); if (!$error) { $exists = $db->checkIfMemberAlready($email); ... $doc = new DOMDocument(); $root = $doc->createElement(&quot;member&quot;); $doc->appendChild($root); foreach ( $_POST as $key => $value ) { $elem = $doc->createElement($key); $root->appendChild($elem); $elemtext = $doc->createTextNode($value); $elem->appendChild($elemtext); } $myDoc = new Zend_Db_Xml_XmlContent($doc); $about = new DOMDocument(); $abtRoot = $about->createElement(&quot;contacts&quot;); $about->appendChild($abtRoot); $myDoc->about = $about; $db->saveNew($myDoc); $id = $myDoc->id; $db->addMember($id, $email, $passwd, $fname, $lname); $_SESSION['CONTACTS_SESSION'] = session_id(); $_SESSION['xmlid'] = $id; echo $view->render('thanks.php'); } else { session_destroy(); echo $view->render('error.php'); } ...
  29. 29. Caso de Uso
  30. 30. Caso de Uso
  31. 31. Caso de Uso
  32. 32. Caso de Uso
  33. 33. Referências <ul><li>Página Oficial </li></ul><ul><ul><ul><li>www.unesco.org/webworld/isis/isis.htm </li></ul></ul></ul><ul><li>Distribuição CDS/ISIS no Brasil </li></ul><ul><ul><ul><li>http://bvsmodelo.bvsalud.org </li></ul></ul></ul><ul><li>Tutorial de CDS/ISIS </li></ul><ul><ul><ul><li>http://www.ndc.uff.br/TRF/Isis_Tutorial%20em%20portugues.ppt </li></ul></ul></ul><ul><li>Diretório de links sobre ISIS </li></ul><ul><ul><ul><li>http://productos.bvsalud.org/docs/level2.php?channel=links&lang=pt&graphic=yes&lang=pt&graphic=yes </li></ul></ul></ul>
  34. 34. Agradecimentos <ul><li>ONU/OMS/OPAS/BIREME </li></ul><ul><li>PHP Conference </li></ul><ul><li>Você </li></ul>
  35. 35. Dúvidas e comentários?
  36. 36. Obrigado [email_address] http://meadiciona.com/mingomax

×