SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
Padrões de Gerenciamento de
Conteúdo



Richard Esplin
Community Technology
O Banco de Dados Relacional Não
Vai Ser Adequado



Richard Esplin
Community 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çõ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
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ódigo
●   Um banco de dados de XML
●   Armazenador dos documentos de NoSQL
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
O cenário otimista:




     gobucks2 (cc attribution non-commercial share-alike) http://www.flickr.com/photos/69331170@N00/2854583096
O cenário pessimista:

         Guardanapo que funciona por si mesmo




              http://commons.wikimedia.org/wiki/File:Professor_Lucifer_Butts.gif
Padrões Recomendados: A Plataforma
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
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
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
Arquitetura de Alfresco

Aplicações de Web              Portais de Conhecimento   Serviços de Web

                    Servidor                              CRM      Motor dos
                    de Apps                                        Processos da
                                                                   Empresa




                                 Portal Server




Sistema Virtual                                              Alta Avaliabilidade
dos Arquivos
Corporate Systems
                                                                Desktop



                                                WebDAV
                                                 CMIS
                                                  CIFS
                                   CMIS        SharePoint
                                 JSR-168        Protocol
                                Connectors

Social Media Channels
                                                                          Mobile
                                                        CMIS
                                                       WebDAV
                    Open Web APIs




                                 Open Web     CMIS-based
                 Web Services      APIs      Alfresco Sync   Public Alfresco Cloud
                                   CMIS
e
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
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
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)
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
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!
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
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
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.
Exemplos
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
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!
Python
●   No shell:                                ●   Continuação:

virtualenv .                                 props = {}
./bin/easy_install cmislib                   props["cmis:objectTypeId"]="cmis:document"
./bin/python                                 doc =
                                             folder.createDocumentFromString('testdoc.t
from cmislib.model import CmisClient         xt', props, contentString="This is a test
client = 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.name
repo.getCapabilities().iteritems():          doc.delete()
  print "%s: %s" %(k,v)                      len(folder.getChildren())
                                             result = repo.query("select * from
for (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.name
root = repo.getRootFolder()
root.name                                    result = repo.query("select * from
folder = root.createFolder('cmis-demo')      cmis:document where contains('name')")
folder.id                                    for i in result:
folder.name                                    print i.name
for (k,v) in
folder.properties.iteritems():
  print "%s: %s" %(k,v)
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
Perguntas?
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.

Más contenido relacionado

Destacado

Turn Your Mobile Device Into a Workhorse
Turn Your Mobile Device Into a WorkhorseTurn Your Mobile Device Into a Workhorse
Turn Your Mobile Device Into a WorkhorseRichard Esplin
 
Meet-ups in Brazil: Aprendendo sobre o Alfresco / Learning Alfresco
Meet-ups in Brazil: Aprendendo sobre o Alfresco / Learning AlfrescoMeet-ups in Brazil: Aprendendo sobre o Alfresco / Learning Alfresco
Meet-ups in Brazil: Aprendendo sobre o Alfresco / Learning AlfrescoRichard Esplin
 
FISL: Content Management Primer
FISL: Content Management PrimerFISL: Content Management Primer
FISL: Content Management PrimerRichard Esplin
 
Gestao arquivistica de documentos usando alfresco infused solutions
Gestao arquivistica de documentos usando alfresco infused solutionsGestao arquivistica de documentos usando alfresco infused solutions
Gestao arquivistica de documentos usando alfresco infused solutionsAlfresco Software
 
Alfresco ECM e Gestão Eletrônica de Documentos Open Source
Alfresco ECM e Gestão Eletrônica de Documentos Open SourceAlfresco ECM e Gestão Eletrônica de Documentos Open Source
Alfresco ECM e Gestão Eletrônica de Documentos Open SourceAmbiente Livre
 

Destacado (6)

Turn Your Mobile Device Into a Workhorse
Turn Your Mobile Device Into a WorkhorseTurn Your Mobile Device Into a Workhorse
Turn Your Mobile Device Into a Workhorse
 
Meet-ups in Brazil: Aprendendo sobre o Alfresco / Learning Alfresco
Meet-ups in Brazil: Aprendendo sobre o Alfresco / Learning AlfrescoMeet-ups in Brazil: Aprendendo sobre o Alfresco / Learning Alfresco
Meet-ups in Brazil: Aprendendo sobre o Alfresco / Learning Alfresco
 
FISL: Content Management Primer
FISL: Content Management PrimerFISL: Content Management Primer
FISL: Content Management Primer
 
Alfresco share pt
Alfresco share ptAlfresco share pt
Alfresco share pt
 
Gestao arquivistica de documentos usando alfresco infused solutions
Gestao arquivistica de documentos usando alfresco infused solutionsGestao arquivistica de documentos usando alfresco infused solutions
Gestao arquivistica de documentos usando alfresco infused solutions
 
Alfresco ECM e Gestão Eletrônica de Documentos Open Source
Alfresco ECM e Gestão Eletrônica de Documentos Open SourceAlfresco ECM e Gestão Eletrônica de Documentos Open Source
Alfresco ECM e Gestão Eletrônica de Documentos Open Source
 

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

Começando com aplicações serverless na AWS
 Começando com aplicações serverless na AWS Começando com aplicações serverless na AWS
Começando com aplicações serverless na AWSAmazon Web Services LATAM
 
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...Amazon Web Services LATAM
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Flávio Lisboa
 
Providenciar Uma Plataforma De AplicaçõEs De Alta Performance Para Aplicações...
Providenciar Uma Plataforma De AplicaçõEs De Alta Performance Para Aplicações...Providenciar Uma Plataforma De AplicaçõEs De Alta Performance Para Aplicações...
Providenciar Uma Plataforma De AplicaçõEs De Alta Performance Para Aplicações...Markus Christen
 
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Tiago Marchetti Dolphine
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
 
Oficina técnica da Infraestrutura Nacional de Dados Abertos - INDA
Oficina técnica da Infraestrutura Nacional de Dados Abertos - INDAOficina técnica da Infraestrutura Nacional de Dados Abertos - INDA
Oficina técnica da Infraestrutura Nacional de Dados Abertos - INDAnitaibezerra
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperDesenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperCesar Romero
 
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRuby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRodrigo Recio
 
Desenvolvimento de Software na Plataforma Microsoft .NET
Desenvolvimento de Software na Plataforma Microsoft .NETDesenvolvimento de Software na Plataforma Microsoft .NET
Desenvolvimento de Software na Plataforma Microsoft .NETGustavo Malheiros
 
Arquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/MackenzieArquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/MackenzieVivaldo Jose Breternitz
 
Apresentação scriptcase-netmake
Apresentação   scriptcase-netmakeApresentação   scriptcase-netmake
Apresentação scriptcase-netmakeGustavo Lobato
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...BrunoSouza617
 
Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011
Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011
Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011Eduardo Souza
 
Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016
Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016
Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016Filipe Barretto
 
Pense Aberto, Pense Linux
Pense Aberto, Pense LinuxPense Aberto, Pense Linux
Pense Aberto, Pense Linuxaviram
 

Similar a Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content Management (20)

Começando com aplicações serverless na AWS
 Começando com aplicações serverless na AWS Começando com aplicações serverless na AWS
Começando com aplicações serverless na AWS
 
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
 
Providenciar Uma Plataforma De AplicaçõEs De Alta Performance Para Aplicações...
Providenciar Uma Plataforma De AplicaçõEs De Alta Performance Para Aplicações...Providenciar Uma Plataforma De AplicaçõEs De Alta Performance Para Aplicações...
Providenciar Uma Plataforma De AplicaçõEs De Alta Performance Para Aplicações...
 
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 
Oficina técnica da Infraestrutura Nacional de Dados Abertos - INDA
Oficina técnica da Infraestrutura Nacional de Dados Abertos - INDAOficina técnica da Infraestrutura Nacional de Dados Abertos - INDA
Oficina técnica da Infraestrutura Nacional de Dados Abertos - INDA
 
5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperDesenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack Developer
 
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRuby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
 
Desenvolvimento de Software na Plataforma Microsoft .NET
Desenvolvimento de Software na Plataforma Microsoft .NETDesenvolvimento de Software na Plataforma Microsoft .NET
Desenvolvimento de Software na Plataforma Microsoft .NET
 
Arquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/MackenzieArquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/Mackenzie
 
Apresentação scriptcase-netmake
Apresentação   scriptcase-netmakeApresentação   scriptcase-netmake
Apresentação scriptcase-netmake
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
 
Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011
Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011
Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011
 
Desenvolvimento Web
Desenvolvimento WebDesenvolvimento Web
Desenvolvimento Web
 
Webinar Portal Colaborativo
Webinar Portal ColaborativoWebinar Portal Colaborativo
Webinar Portal Colaborativo
 
Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016
Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016
Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016
 
Pense Aberto, Pense Linux
Pense Aberto, Pense LinuxPense Aberto, Pense Linux
Pense Aberto, Pense Linux
 
Meetup Tivir - Big Data Clusters
Meetup Tivir - Big Data ClustersMeetup Tivir - Big Data Clusters
Meetup Tivir - Big Data Clusters
 

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

  • 1. Padrões de Gerenciamento de Conteúdo Richard Esplin Community Technology
  • 2. O Banco de Dados Relacional Não Vai Ser Adequado Richard Esplin Community Technology
  • 3. A dor dos documentos . . .
  • 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. Vamos construir! Pasukaru76 (cc attribution) http://www.flickr.com/photos/pasukaru76/4277763808/
  • 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. 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. O cenário otimista: gobucks2 (cc attribution non-commercial share-alike) http://www.flickr.com/photos/69331170@N00/2854583096
  • 9. O cenário pessimista: Guardanapo que funciona por si mesmo http://commons.wikimedia.org/wiki/File:Professor_Lucifer_Butts.gif
  • 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. 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. 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
  • 14. Arquitetura de Alfresco Aplicações de Web Portais de Conhecimento Serviços de Web Servidor CRM Motor dos de Apps Processos da Empresa Portal Server Sistema Virtual Alta Avaliabilidade dos Arquivos
  • 15. Corporate Systems Desktop WebDAV CMIS CIFS CMIS SharePoint JSR-168 Protocol Connectors Social Media Channels Mobile CMIS WebDAV Open Web APIs Open Web CMIS-based Web Services APIs Alfresco Sync Public Alfresco Cloud CMIS
  • 16. e
  • 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. 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. 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. 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. 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. 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. 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. 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.
  • 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. 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. Python ● No shell: ● Continuação: virtualenv . props = {} ./bin/easy_install cmislib props["cmis:objectTypeId"]="cmis:document" ./bin/python doc = folder.createDocumentFromString('testdoc.t from cmislib.model import CmisClient xt', props, contentString="This is a test client = 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.name repo.getCapabilities().iteritems(): doc.delete() print "%s: %s" %(k,v) len(folder.getChildren()) result = repo.query("select * from for (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.name root = repo.getRootFolder() root.name result = repo.query("select * from folder = root.createFolder('cmis-demo') cmis:document where contains('name')") folder.id for i in result: folder.name print i.name for (k,v) in folder.properties.iteritems(): print "%s: %s" %(k,v)
  • 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
  • 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.