54
Resolvendo Problemas de Negócio com Conteúdo-Como- Serviço Jose Carrasco Skype: jcarrasko Twitter: jcarrasko [email protected]

Resolvendo problemas de negócio com conteúdo como-serviço

Embed Size (px)

DESCRIPTION

Programação em Cloud Alfresco, Alfresco Meetup em Lisboa (2013)

Citation preview

Page 1: Resolvendo problemas de negócio com conteúdo como-serviço

Resolvendo Problemas de Negócio com Conteúdo-Como-Serviço

Jose CarrascoSkype: jcarraskoTwitter: jcarrasko

[email protected]

Page 2: Resolvendo problemas de negócio com conteúdo como-serviço

Agenda

• Boas Práticas: A Plataforma

• Alfresco Cloud ?

• Híbrido ?

• Alfresco Cloud APIs

• O modelo de Segurança

• O Portal desenvolvedor

• Exemplo ao vivo

• Próximos passos

Page 3: Resolvendo problemas de negócio com conteúdo como-serviço

BOAS PRÁTICAS: A PLATAFORMA

Page 4: Resolvendo problemas de negócio com conteúdo como-serviço

O negócio diz . . .

• Temos muitos ficheiros,• Temos pessoas que os produzem e os

consomem,• Temos sistemas que os usam,• Quero que seja mais fácil!

Page 5: Resolvendo problemas de negócio com conteúdo como-serviço

A plataforma

• Os problemas comuns já foram resolvidos

• Plataforma de Conteúdo = Repositório + Serviços

– Pesquisa plataforma certa– Personaliza a plataforma com suas regras de empresa– Personaliza a interface do utilizador fornecida pela

plataforma– Ou escreva sua própria interface usando qualquer

linguagem ou framework

Page 6: Resolvendo problemas de negócio com conteúdo como-serviço

O repositório de conteúdo

• Conteúdo = documento + meta-dados

• Armazenamento• Binários dos arquivos• Índices de pesquisa• Base de Dados• Relações (associações)• Meta-dados• Repositório

Page 7: Resolvendo problemas de negócio com conteúdo como-serviço

Partes dos sistemas de conteúdo

• Interface com utilizador• Armazenamento /

Modelo dos Dados / Metadata

• Processo de Empresa / Workflow

• Serviços de Biblioteca (Upload / Download, Versionamento, Check-in / Check-out)

• Segurança• Pesquisa• Agendamento

• Transformação / Renderização / Miniaturas

• Marcação / Categorização• Integração com

Ferramentas de Edição• API Remoto• Transferência / Publicação• Comentários• Notas• Activity Streams /

Notification• Cotas

Page 8: Resolvendo problemas de negócio com conteúdo como-serviço

ALFRESCO CLOUD ?CENÁRIOS.

Page 9: Resolvendo problemas de negócio com conteúdo como-serviço

O que é Alfresco Cloud ?

• Alfresco Cloud é um sistema ECM completo baseado na plataforma Alfresco multi-tentant.

• Alfresco Cloud tem toda a funcionalidade padrão de Alfresco ECM.

• OOTB pode ser usado como sistema de cooperação para grupos ou divisões

• Pretende-se trabalhar com instalações Alfresco locais sob o foco da "ECM híbrido"

Page 10: Resolvendo problemas de negócio com conteúdo como-serviço

Sistema MultitenantNetwork Users Network Sites

www.miorganizacion.com [email protected]

client.com

partner.com

Page 11: Resolvendo problemas de negócio com conteúdo como-serviço

Nosso Data CenterHospedado em Amazon Web Services (AWS)Vários centros de dados configurado para fornecer redundância entre eles em várias regiões geográficas.

Amazon S3 Data StorageAmazon Simple Storage Service é um armazenamento escalável, confiável e rápido. Exclusivo para AWS.

Certificado de segurança de infra-estruturaAs infra-estruturas da AWS são certificados SAS70 Tipo II, SSAE SOC1, ISAE3402 7 e ISO270001.

Firewalls Multiplas ( Tiers)A plataforma tem múltiplas camadas protegidos em níveis diferentes, a aplicação de camadas de transporte.

Sistemas de Detecção de IntrusãoO centro de dados tem vários sistemas de controle para detecção de intrusão física e virtual. Os ensaios são realizados contínuo e varreu na infra-estrutura

Page 12: Resolvendo problemas de negócio com conteúdo como-serviço

Contingência

• Backups per Amazon S3:

– 99,99% disponíveis– Replicação entre duas regiões– Duas cópias encriptadas

• Backups diários para DR infra-estrutura

• RPO: 24 horas e RTO: 4 horas

• Lixeira para cada rede.

Page 13: Resolvendo problemas de negócio com conteúdo como-serviço

Administração

•Controle do utilizador : quem está compartilhando o quê?

•Controlando a utilização da Aplicação

•Adicione mais capacidade de armazenamento

•Lixeira

•Branding e look & feel.

Page 14: Resolvendo problemas de negócio com conteúdo como-serviço

Admin Features

Page 15: Resolvendo problemas de negócio com conteúdo como-serviço

ECM HÍBRIDO ?

Page 16: Resolvendo problemas de negócio com conteúdo como-serviço

O futuro da ECM é

Híbrido"O que define Alfresco é que ele tem a capacidade plena de uma empresas de ECM tradicionais para gerir documentos e processos, de alto valor, além de um elemento Cloud que é fácil e rápido de implantar.“

Alan Pelz-Sharpe, 451 ResearchResearch Director, Content Management & Collaboration

Page 17: Resolvendo problemas de negócio com conteúdo como-serviço

On Premise , localmente

• Máxima segurança– Dentro do firewall– O acesso físico controlado

• Desenvolvimentos à medida– Modelos dos documentos especificos– Workflows à medida

• Conformidade com os regulamentos locais

• Integração com sistemas legados

Page 18: Resolvendo problemas de negócio com conteúdo como-serviço

Cloud implantação

• Colaboração e funcionalidade padrão

• Operações delegadas–  Backups–   instalação–   manutenção

• Menor custo por documento– Armazenamento– Acessar

• Menor custo por subscrição

Page 19: Resolvendo problemas de negócio com conteúdo como-serviço

Hibrido ?

80%

20%

Core Business• Segurança Corporativa• Regulamentos• Proprietário da empresa

Comodity• colaboração• padronizado• pouca especialização

Page 20: Resolvendo problemas de negócio com conteúdo como-serviço

Cloud Connected

Cloud

Local Content

On Premise

Local Content

On Premise Public Cloud

Sincronização bidireccional de conteúdos

Page 21: Resolvendo problemas de negócio com conteúdo como-serviço

Cloud Connected

CMIS (ATOM)

REST (JSON)

AlfrescoBarcelona

AlfrescoCLOUD

CMIS (ATOM)

REST (JSON)

AlfrescoLisboa

Page 22: Resolvendo problemas de negócio com conteúdo como-serviço

Cloud Connected

CMIS (ATOM)

REST (JSON)

Alfre

sco

On P

rem

ise

Alfre

sco

CLO

UD

CMIS (ATOM)REST (JSON)

WEBDAVSHAREPOINT

Page 23: Resolvendo problemas de negócio com conteúdo como-serviço

ALFRESCO CLOUD APIS

Page 24: Resolvendo problemas de negócio com conteúdo como-serviço

As APIs do Alfresco

• Alfresco’s “foundation” API em Java

• Server-side JavaScript

• APIs remotas:

– CMIS - Atom REST or SOAP– HTTP REST Webscripts

• Alfresco Mobile SDK

• Alfresco Cloud API

Source: 96dpi

Page 25: Resolvendo problemas de negócio com conteúdo como-serviço
Page 26: Resolvendo problemas de negócio com conteúdo como-serviço

Cloud API

É uma API remoto para interagir com Alfresco Cloud

CMIS 1.0 (AtomPub)

• Pasta• registos• conteúdo• Manipulação de metadados

Alfresco REST APIs (JSON)

• Network• Sites

– Utilizadores– Favoritos

• utilizadores• social• Classificações e Comentários• atividades• Marcações

Page 27: Resolvendo problemas de negócio com conteúdo como-serviço

CMIS ?

• Content Management Interoperability Services

• Um API especifico para gestão do conteúdo, independente da linguagem, independente do fabricante

• Denominador comum menor (alguns productos têm extensões)

– Funções de CRUD para os documentos– Check-in / check-out– Associações– Permissão (Listas de controle de acesso)– Política

Page 28: Resolvendo problemas de negócio com conteúdo como-serviço

CMIS ?

• Standard 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 29: Resolvendo problemas de negócio com conteúdo como-serviço

A beleza do CMIS

Nível de Apresentação

Nível dos Serviços de Conteúdo

Nível das Aplicações de Empresa

Page 30: Resolvendo problemas de negócio com conteúdo como-serviço

Definições dos Tipos

Page 31: Resolvendo problemas de negócio com conteúdo como-serviço
Page 32: Resolvendo problemas de negócio com conteúdo como-serviço

Apache Chemistry

• Uma implementação de CMIS de código aberto

• O projeto que agrupa todos os projetos relacionados com CMIS dentro de ASF– OpenCMIS (Java, client, e servidor)– cmislib (Python, client)– phpclient (PHP, client)– DotCMIS (.NET, client)

• Implementação de referencia de CMIS que é usado pelo comité técnico de CMIS para provar

Page 33: Resolvendo problemas de negócio com conteúdo como-serviço

Consideraciones sobre la API

• Limitações tráfego:

– Dev: 5 pedidos / segundo, 10.000 pedidos / dia

– Prod: 50 pedidos / segundo, 100.000 pedidos / dia

• Nenhum limite no numero de aplicativos

• Os usuários de Alfresco Cloud são proprietários do conteúdo

Page 34: Resolvendo problemas de negócio com conteúdo como-serviço

O MODELO DE SEGURANÇA

Page 35: Resolvendo problemas de negócio com conteúdo como-serviço

Tipos de usuários

• Network Administrator– O acesso à Configurações de Conta– Branding, usuários e configurações de Network

• Network User– Criação de sites, ser Administrator do Site, para se

juntar ou moderar Network locais públicos– Você pode ver outros usuários da rede, perfil e siga

sua atividade– Ter acesso a recursos como pagamento WebDAV

• External User– Convidados a colaborar em um determinado site– Basta acessar o site, onde ele foi convidado– Os usuários não podem ver ou sites que não têm

privilégios

Page 36: Resolvendo problemas de negócio com conteúdo como-serviço

Características GeraisAutenticação de UtilizadoresTodos os conteúdos estão protegidos por autenticação de usuário. OAuth2 usado para APIs.

AES 256 SSL EncryptionTodos os acessos e transferências a partir do navegador, APIs ou dispositivos móveis são criptografados.

Permissões de arquivos e SítiosAs permissões são configuráveis no nível de arquivo e sites.

Notificações de atividadeAs atualizações são recebidos com a atividade do usuário.

Data RetentionTodos os arquivos passam por um processo antes de ser eliminado, incluindo lixeira.

Page 37: Resolvendo problemas de negócio com conteúdo como-serviço

OAuth2 ?

Qué es OAuth2?

• É um padrão para a autenticação e autorização• Cobre os cenários de aplicação 3, onde se tem que acessar um recurso,

mas sem ver a senha• Definido em RFC-6749

Quién usa OAuth2 ?

• Facebook , Google, Hudle, Instagram, LinkedIn, SalesForce, GitHub, Vikuit…

Oauth Identifica inequivocamente:

• O fornecedor de API (Alfresco)• A solução (que você vai construir)• O usuário de nosso serviço que está usando a sua solução (um usuário de

Alfresco Cloud)

Page 38: Resolvendo problemas de negócio com conteúdo como-serviço

OAuth2 ?

Único mecanismo de autenticação previsto Alfresco Cloud APIs.

Progamador

Aplicativo OauthServer

Alfresco Services

1. Registre o Aplicativo

2. Redirecionamento

3. Transmissão Token

4. Pedir API + Token

Utilizador

Page 39: Resolvendo problemas de negócio com conteúdo como-serviço

1. Registrando o aplicativo

Programador Developer Portal

Se cadastrar no site

Registre o Aplicativo

Criar um perfil

Atribuir uma chave / Segredo para aplicação

1

2

Page 40: Resolvendo problemas de negócio com conteúdo como-serviço

Link para a página de autorização Alfresco. Envie a URL da chave API e secreto

Solicita que o usuário autorizar a aplicação

O usuário autoriza o aplicativo a acessar sua conta

Redirecionar o seu endereço de retorno (callback), com o código de autorização.Alterar o código de

autorização para um token de acesso.

Devuelve el acceso y refresca el token

Guarda con seguridad el acceso y refresca el token para este usuario

2. Autorização

Aplicación Usuario

1 2 3

4

5

67

Page 41: Resolvendo problemas de negócio com conteúdo como-serviço

3. Utilizando a API

Pedir APITransmissão Token no cabeçalho HTTP

Identifica o acesso do tokenExecutar a chamada de API

Aplicación

1 2

Page 42: Resolvendo problemas de negócio com conteúdo como-serviço

Chame a APIPasse o token no cabeçalho HTTP

retorna 401Afirmando que o token expirou

Retorna um novo token de acesso

Atualize o token e envia o token atualizada

Identifica o acesso do tokenExecutar a chamada de API

Pedir APITransmissão Token no cabeçalho HTTP

4. Atualizar

Aplicación

1 2

4

5 6

3

Page 43: Resolvendo problemas de negócio com conteúdo como-serviço

EXEMPLO AO VIVO

Page 44: Resolvendo problemas de negócio com conteúdo como-serviço

Iniciando

• Entende o OAuth2• Inscrever-se como programador• Receber chaves• Tomo uma biblioteca cliente CMIS ou

um SDK móvel• Começa a escrever código!

Page 45: Resolvendo problemas de negócio com conteúdo como-serviço

Passo 1: Usa uma biblioteca OAuth

• Google OAuth2 Client (muitas linguagens)– https://developers.google.com/

accounts/docs/

OAuth2#libraries

• Spring Social (Java)– http://www.springsource.org/spring-

social

Page 46: Resolvendo problemas de negócio com conteúdo como-serviço

Passo 2: Registar seu aplicativo

• http://www.alfresco.com/develop– Uma conta no Alfresco Cloud– Uma conta de Registered Developer

• Adiciona as suas aplicativos

• Configurações importantes:– Chave, segredo, URL de callback

Page 47: Resolvendo problemas de negócio com conteúdo como-serviço

Passo 3: Biblioteca CMIS

• OpenCMIS (Java, cliente e servidor)

• cmislib (Python, cliente)• phpclient (PHP, cliente)• DotCMIS (.NET, cliente)• ObjectiveCMIS (Objective-C, cliente)

• Também existem outros

Page 48: Resolvendo problemas de negócio com conteúdo como-serviço

Python 2.7

# Transferir o exemplo de Jeff Potts em Pythongit clone https://code.google.com/p/alfresco-api-python-examples/ cloud-demo# Install the Libs

./bin/pip install oauth2client

./bin/pip install keyring

./bin/pip install cmislib

cp client_secrets.json.sample client_secrets.json

[Registar em http://developer.alfresco.com]

[URL de Callback: http://localhost:8080/][Copiar seu chave de API e segredo de API para o client_secrets.json]

Page 49: Resolvendo problemas de negócio com conteúdo como-serviço

Java

# Transferir o exemplo de Jeff Potts em Java

git clone https://code.google.com/p/alfresco-api-java-examples/

# Copiar seu chave de API e segredo de API para o client

OAuth2ClientCredentials.java [Registar app em http://developer.alfresco.com]

[URL de Callback: http://localhost:8080/Callback/]

Page 50: Resolvendo problemas de negócio com conteúdo como-serviço

PRÓXIMOS PASSOS

Page 51: Resolvendo problemas de negócio com conteúdo como-serviço

Conta Cloud

2 minutos

1. Registra uma conta gratuita para 10GB para a empresa de domínio cloud.alfresco.com, e começar a trabalhar.

Registros APP

15 minutos

1. Registra uma conta em http://developer.alfresco.com

2. Pegue a chave e segredo

Participa

minutos

1. Participa na comunidade ou via forums.alfresco.com, twitter ou IRC

Experimente agora !

Page 52: Resolvendo problemas de negócio com conteúdo como-serviço

Onde se pode aprender mais ?

• Portal dos programadores: APIs, SDKs, chaves– http://developer.alfresco.com

• O fórum de API de Alfresco– http://forums.alfresco.com

• Alfresco Wiki– http://wiki.alfresco.com

• Alfresco Blogroll– http://blogs.alfresco.com

Page 53: Resolvendo problemas de negócio com conteúdo como-serviço

Onde se pode aprender mais ?

• #alfresco no IRC freenode

• Grupo de Google: Alfresco Technical Discussion– http://

groups.google.com/group/alfresco-technical-discussion

• DevCon 2012

Page 54: Resolvendo problemas de negócio com conteúdo como-serviço