Padrões de Gerenciamento deConteúdoRichard EsplinCommunity Technology
O Banco de Dados Relacional NãoVai Ser AdequadoRichard EsplinCommunity Technology
A dor dos documentos . .            .
O banco de dados não faz tudo●   Faz bem o texto e os números, mas não faz    bem os dados binários●   Faz bem as definiçõ...
Vamos construir!        Pasukaru76 (cc attribution) http://www.flickr.com/photos/pasukaru76/4277763808/
Opções de armazenar os arquivos●   No disco●   Amazon S3 ou uma CAS filer no local●   Repositório de gerenciamento do códi...
Ao salvar os arquivos . . .●   Segurança●   Iniciar um workflow       Muito código●   Versionamento            personaliza...
O cenário otimista:     gobucks2 (cc attribution non-commercial share-alike) http://www.flickr.com/photos/69331170@N00/285...
O cenário pessimista:         Guardanapo que funciona por si mesmo              http://commons.wikimedia.org/wiki/File:Pro...
Padrões Recomendados: A Plataforma
A plataforma●   Os problemas comuns já foram resolvidos●   Plataforma de Conteúdo = Repositório + Serviços    ●   Busca a ...
Partes dos sistemas de conteúdo●   Interface usuário         ●   Transformação /●   Armazenamento /               Renderiz...
Alfresco API●O API fundamental de Alfresco é de Java●Também tem a opção de JavaScript noserver●APIs remotos    ● Webscript...
Arquitetura de AlfrescoAplicações de Web              Portais de Conhecimento   Serviços de Web                    Servido...
Corporate Systems                                                                Desktop                                  ...
e
O que é o CMIS?●   Content Management Interoperability Services●   Um API especifico pelo gerenciamento do conteúdo,    in...
O que é o CMIS? (continuação)●   Padrão do OASIS    ●   30+ fornecedores de ECM prometem implementar●   Duas partes    ●  ...
Casos de uso                                      Repositório                Cliente                                      ...
A beleza do CMIS     Nível de   Apresentação                  REST   SOAP                                ?     Nível dos  ...
Conheça o CMIS  Consumador                  Cliente                ler    escrever                 Serviços               ...
Tipos  Documentos                        Pasta  ●    Conteúdo                        ●                                    ...
Definições dos Tipos             Object                 Property             ●               Type Id              ●       ...
Apache Chemistry●   Uma implementação de CMIS de código aberto●   O projeto que agrupo todos os projetos relacionados ao C...
Exemplos
Meu ambiente●   Debian Mint Wheezy●   OpenJDK 1.6.0_24●   Python 2.7.2●   Alfresco Community Edition 4.0.d●   Open CMIS Wo...
CMIS Workbench●   Baixar    ●   http://chemistry.apache.org/java/developing/tools        /dev-tools-workbench.html●   Liga...
Python●   No shell:                                ●   Continuação:virtualenv .                                 props = {}...
Aonde pode aprender mais●   cmis.alfresco.com é um servido público de CMIS e    contém links aos recursos CMIS (o cheat sh...
Perguntas?
Atribuição e licenciamento●   Copyright 2012, Alfresco Software●   Imagens usado nesta presentação sob a licença    de Cre...
Próximos SlideShares
Carregando em…5
×

Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management

2.731 visualizações

Publicada em

An introduction to patterns for building content applications using the CMIS API.

Uma introdução aos padrões pelo gerenciamento de conteúdo usando o API de CMIS.

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.731
No SlideShare
0
A partir de incorporações
0
Número de incorporações
413
Ações
Compartilhamentos
0
Downloads
92
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management

  1. 1. Padrões de Gerenciamento deConteúdoRichard EsplinCommunity Technology
  2. 2. O Banco de Dados Relacional NãoVai Ser AdequadoRichard EsplinCommunity Technology
  3. 3. A dor dos documentos . . .
  4. 4. O banco de dados não faz tudo● Faz bem o texto e os números, mas não faz bem os dados binários● Faz bem as definições das tabelas estáticas, mas não das definições dinâmicas● Limitação de tamanho● Acesso aleatório (faz streaming)● Busca: Algumas fazem indexação dos arquivos binários, mas não todos
  5. 5. Vamos construir! Pasukaru76 (cc attribution) http://www.flickr.com/photos/pasukaru76/4277763808/
  6. 6. Opções de armazenar os arquivos● No disco● Amazon S3 ou uma CAS filer no local● Repositório de gerenciamento do código● Um banco de dados de XML● Armazenador dos documentos de NoSQL
  7. 7. Ao salvar os arquivos . . .● Segurança● Iniciar um workflow Muito código● Versionamento personalizado!● Replicação● Transformação de conteúdo● Programar um job● Acesso através do disco compartilhado● Acesso aos APIs● Integração com ferramentas
  8. 8. O cenário otimista: gobucks2 (cc attribution non-commercial share-alike) http://www.flickr.com/photos/69331170@N00/2854583096
  9. 9. O cenário pessimista: Guardanapo que funciona por si mesmo http://commons.wikimedia.org/wiki/File:Professor_Lucifer_Butts.gif
  10. 10. Padrões Recomendados: A Plataforma
  11. 11. A plataforma● Os problemas comuns já foram resolvidos● Plataforma de Conteúdo = Repositório + Serviços ● Busca a plataforma certa ● Personaliza a plataforma com suas regras de empresa ● Personaliza a interface usuária fornecida pela plataforma ● Ou escreva sua própria interface usando qualquer linguagem ou framework● Garanta que atenda às suas necessidades agora e também no futuro
  12. 12. Partes dos sistemas de conteúdo● Interface usuário ● Transformação /● Armazenamento / Renderização / Miniaturas Modelo dos Dados / ● Marcação / Categorização Metadata ● Integração com● Processo de Empresa / Ferramentas dos Autoria Workflow ● API Remoto● Serviços de Biblioteca ● Transferência / (Upload / Download, Publicação Versionamento, Check-in / Check-out) ● Comentários● Segurança ● Notas
  13. 13. Alfresco API●O API fundamental de Alfresco é de Java●Também tem a opção de JavaScript noserver●APIs remotos ● Webscripts de HTTP REST - Java ou JavaScript ● CMIS - REST Atom ou SOAP ● Alfresco Serviços de Web Source: 96dpi
  14. 14. Arquitetura de AlfrescoAplicações de Web Portais de Conhecimento Serviços de Web Servidor CRM Motor dos de Apps Processos da Empresa Portal ServerSistema Virtual Alta Avaliabilidadedos Arquivos
  15. 15. Corporate Systems Desktop WebDAV CMIS CIFS CMIS SharePoint JSR-168 Protocol ConnectorsSocial Media Channels Mobile CMIS WebDAV Open Web APIs Open Web CMIS-based Web Services APIs Alfresco Sync Public Alfresco Cloud CMIS
  16. 16. e
  17. 17. O que é o CMIS?● Content Management Interoperability Services● Um API especifico pelo gerenciamento do conteúdo, independente da linguagem, independente do fornecedor● Denominador comum menor (alguns fornecedores têm extensões) ● Funções de CRUD pelas nodas ● Check-in / check-out ● Associações ● Permissões (Listas de controle de acesso) ● Politica ● Consultas ● Atravessar o Repositório
  18. 18. O que é o CMIS? (continuação)● Padrão do OASIS ● 30+ fornecedores de ECM prometem implementar● Duas partes ● Ligações de SOAP e de AtomPub – Ligações de JSON em breve ● Linguagem baseada nas consultas do SQL● As extensões especificas ao Alfresco ajudam muito
  19. 19. Casos de uso Repositório Cliente Cliente de Conteúdo Repositório Repositório Content Content de Conteúdo de Conteúdo Repository Repositório Repository de Conteúdo● Criação colaborativa de conteúdo ● Workflow & BPM● Portais ● Arquivamento Integração com os aplicativos do cliente● ● Geração dos documentos Mashups Digital Asset Management (DAM)● ●● Repositório de conteúdo incorporado ● Web Content Mangaement (WCM)
  20. 20. A beleza do CMIS Nível de Apresentação REST SOAP ? Nível dos Serviços de Conteúdo Nível das Aplicações de ? Empresa
  21. 21. Conheça o CMIS Consumador Cliente ler escrever Serviços Modelo de Fornecedor domínio Content Management Mapiagem do Interoperability Fornecedor Services Repositório Com o CMIS pode ler, buscar, escrever, actualizar, excluir, dar versão, e gerenciar o de Conteúdo conteúdo e a metadata!
  22. 22. Tipos Documentos Pasta ● Conteúdo ● Recipiente ● Rendições ● Hierarquia ● História das versões ● Arquivamento / Limadura Descrito pelas Definições dos Tipos Relação ACL ● Objeto de Origem ● Objeto de Destino ● Objeto de Destino Política ● Objeto de Destino
  23. 23. Definições dos Tipos Object Property ● Type Id ● Property Id ● Parent * ● Display Name ● Display Name ● Type ● Queryable ● Required ● Controllable ● Default Value ● … Document Folder Relationship Policy ● Versionable ● Source Types ● Allow Content ● Target Types Custom Type
  24. 24. Apache Chemistry● Uma implementação de CMIS de código aberto● O projeto que agrupo todos os projetos relacionados ao CMIS dentro de ASF ● OpenCMIS (Java, client, e servidor) ● cmislib (Python, client) ● phpclient (PHP, client) ● DotCMIS (.NET, client)● Implementação de referencia pelo CMIS que é usado pelo comité técnico de CMIS para provar as partes novas de versão 1.1.
  25. 25. Exemplos
  26. 26. Meu ambiente● Debian Mint Wheezy● OpenJDK 1.6.0_24● Python 2.7.2● Alfresco Community Edition 4.0.d● Open CMIS Workbench 0.7.0
  27. 27. CMIS Workbench● Baixar ● http://chemistry.apache.org/java/developing/tools /dev-tools-workbench.html● Ligar ao Alfresco ● http://localhost:8080/alfresco/cmisatom● Uma ferramente boa para aprender sobre o CMIS● Confira o Groovy Console!
  28. 28. Python● No shell: ● Continuação:virtualenv . props = {}./bin/easy_install cmislib props["cmis:objectTypeId"]="cmis:document"./bin/python doc = folder.createDocumentFromString(testdoc.tfrom cmislib.model import CmisClient xt, props, contentString="This is a testclient = CmisClient( showing how to create a text document","http://192.168.56.1:8080/alfresco/cmisato contentType=text/plain)m","admin", "admin") doc.isCheckedOut()repo = client.defaultRepository props = {}repo.id props[cmis:name] = "test-updated.txt"repo.name doc = doc.updateProperties(props)for (k,v) in doc.namerepo.getCapabilities().iteritems(): doc.delete() print "%s: %s" %(k,v) len(folder.getChildren()) result = repo.query("select * fromfor (k,v) in cmis:folder where cmis:name like %alf%")repo.getRepositoryInfo().iteritems(): len(result) print "%s: %s" %(k,v) for i in result: print i.nameroot = repo.getRootFolder()root.name result = repo.query("select * fromfolder = root.createFolder(cmis-demo) cmis:document where contains(name)")folder.id for i in result:folder.name print i.namefor (k,v) infolder.properties.iteritems(): print "%s: %s" %(k,v)
  29. 29. Aonde pode aprender mais● cmis.alfresco.com é um servido público de CMIS e contém links aos recursos CMIS (o cheat sheet é ótimo!)● Pode ler o especificação de CMIS● O site de Apache Chemistry tem clientes, um servidor pequeno, e documentação● O tutório “Getting Started with CMIS” demonstra como usar "cURL para acessar diretamente as ligações de AtomPub"● Há presentações do Alfresco DevCon 2011 sobre o CMIS no Slideshare aqui e aqui
  30. 30. Perguntas?
  31. 31. Atribuição e licenciamento● Copyright 2012, Alfresco Software● Imagens usado nesta presentação sob a licença de Creative Commons by-attribution non- commercial share-alike.● O trabalho original nesta presentação é sob a licença de Creative Commons by-attribution.● Agradeço o Jeff Potts que me deixou usar a sua presentação como o fundição deste trabalho.

×