meet-ups brazil: padrões de gerenciamento de conteúdo / patterns in content management
DESCRIPTION
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.TRANSCRIPT
![Page 1: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/1.jpg)
Padrões de Gerenciamento de Conteúdo
Richard Esplin
Community Technology
![Page 2: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/2.jpg)
O Banco de Dados Relacional Não Vai Ser Adequado
Richard Esplin
Community Technology
![Page 3: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/3.jpg)
A dor dos documentos . . .
![Page 4: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/4.jpg)
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
![Page 5: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/5.jpg)
Vamos construir!
Pasukaru76 (cc attribution) http://www.flickr.com/photos/pasukaru76/4277763808/
![Page 6: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/6.jpg)
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
![Page 7: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/7.jpg)
Ao salvar os arquivos . . .
● Segurança● Iniciar um workflow● Versionamento● Replicação● Transformação de conteúdo● Programar um job● Acesso através do disco compartilhado● Acesso aos APIs● Integração com ferramentas
Muito código personalizado!
![Page 8: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/8.jpg)
O cenário otimista:
gobucks2 (cc attribution non-commercial share-alike) http://www.flickr.com/photos/69331170@N00/2854583096
![Page 9: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/9.jpg)
O cenário pessimista:
http://commons.wikimedia.org/wiki/File:Professor_Lucifer_Butts.gif
Guardanapo que funciona por si mesmo
![Page 10: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/10.jpg)
Padrões Recomendados: A Plataforma
![Page 11: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/11.jpg)
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
![Page 12: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/12.jpg)
Partes dos sistemas de conteúdo● Interface usuário● Armazenamento /
Modelo dos Dados / Metadata
● Processo de Empresa / Workflow
● Serviços de Biblioteca (Upload / Download, Versionamento, Check-in / Check-out)
● Segurança● Search● Scheduler
● Transformação / Renderização / Miniaturas
● Marcação / Categorização● Integração com
Ferramentas dos Autoria● API Remoto● Transferência /
Publicação● Comentários● Notas● Activity Streams /
Notification● Quotas
![Page 13: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/13.jpg)
Alfresco API
●O API fundamental de Alfresco é de Java●Também tem a opção de JavaScript no server●APIs remotos
● Webscripts de HTTP REST - Java ou JavaScript● CMIS - REST Atom ou SOAP● Alfresco Serviços de Web
Source: 96dpi
![Page 14: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/14.jpg)
Arquitetura de Alfresco
Aplicações de Web Portais de Conhecimento Serviços de Web
Sistema Virtualdos Arquivos
Alta Avaliabilidade
Motor dosProcessos daEmpresa
CRM
Portal Server
Servidorde Apps
![Page 15: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/15.jpg)
Desktop
Mobile
Social Media Channels
Web Services Public Alfresco Cloud
Corporate Systems
Open Web APIs
CMISJSR-168
Connectors
WebDAVCMISCIFS
SharePointProtocol
Open WebAPIsCMIS
CMIS-basedAlfresco Sync
CMISWebDAV
![Page 16: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/16.jpg)
e
![Page 17: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/17.jpg)
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
![Page 18: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/18.jpg)
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
![Page 19: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/19.jpg)
Casos de uso
● Criação colaborativa de conteúdo
● Portais
● Integração com os aplicativos do cliente
● Mashups
● Repositório de conteúdo incorporado
Cliente
Repositório de Conteúdo
Repositório de Conteúdo
Repositório de Conteúdo
Cliente
Content RepositoryContent
RepositoryRepositório de Conteúdo
● Workflow & BPM● Arquivamento● Geração dos documentos● Digital Asset Management (DAM)● Web Content Mangaement (WCM)
![Page 20: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/20.jpg)
A beleza do CMIS
?
Nível de Apresentação
Nível dos Serviços de Conteúdo
?Nível das Aplicações de
Empresa
REST SOAP
![Page 21: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/21.jpg)
Conheça o CMIS
Cliente
Repositóriode Conteúdo
Serviços
Modelo dedomínio
ler escrever
Con
sum
ad
or
Forn
ec e
dor
Mapiagem do Fornecedor
ContentManagementInteroperabilityServices
Com o CMIS pode ler, buscar, escrever, actualizar, excluir, dar versão, e gerenciar o conteúdo e a metadata!
![Page 22: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/22.jpg)
Tipos
Documentos● Conteúdo● Rendições● História das versões
Pasta● Recipiente● Hierarquia● Arquivamento / Limadura
Relação● Objeto de Origem● Objeto de Destino
ACL● Objeto de Destino
Descrito pelas Definições dos Tipos
Política● Objeto de Destino
![Page 23: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/23.jpg)
Definições dos Tipos
*
Custom Type
Object● Type Id● Parent● Display Name● Queryable● Controllable
Document● Versionable● Allow Content
Folder Relationship● Source Types● Target Types
Policy
Property● Property Id● Display Name● Type● Required● Default Value● …
![Page 24: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/24.jpg)
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.
![Page 25: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/25.jpg)
Exemplos
![Page 26: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/26.jpg)
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
![Page 27: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/27.jpg)
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!
![Page 28: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/28.jpg)
Python● No shell:
virtualenv . ./bin/easy_install cmislib ./bin/python
from cmislib.model import CmisClient client = CmisClient( "http://192.168.56.1:8080/alfresco/cmisatom","admin", "admin") repo = client.defaultRepository repo.id repo.name for (k,v) in repo.getCapabilities().iteritems(): print "%s: %s" %(k,v)
for (k,v) in repo.getRepositoryInfo().iteritems(): print "%s: %s" %(k,v)
root = repo.getRootFolder() root.name folder = root.createFolder('cmis-demo') folder.id folder.name for (k,v) in folder.properties.iteritems(): print "%s: %s" %(k,v)
● Continuação:
props = {}props["cmis:objectTypeId"]="cmis:document"doc = folder.createDocumentFromString('testdoc.txt', props, contentString="This is a test showing how to create a text document", contentType='text/plain')doc.isCheckedOut()props = {}props['cmis:name'] = "test-updated.txt"doc = doc.updateProperties(props)doc.namedoc.delete()len(folder.getChildren())result = repo.query("select * from cmis:folder where cmis:name like '%alf%'")len(result)for i in result: print i.name
result = repo.query("select * from cmis:document where contains('name')")for i in result: print i.name
![Page 29: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/29.jpg)
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
![Page 30: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/30.jpg)
Perguntas?
![Page 31: Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management](https://reader033.vdocuments.mx/reader033/viewer/2022052910/559cb6bf1a28abf7408b45e9/html5/thumbnails/31.jpg)
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.