jive, dropbox and other integrations

28
Jive, Dropbox and other integrations

Upload: jared-ottley

Post on 08-May-2015

3.867 views

Category:

Technology


1 download

DESCRIPTION

Alfresco Devcon 2011

TRANSCRIPT

Page 1: Jive, dropbox and other integrations

Jive, Dropbox and other integrations

Page 2: Jive, dropbox and other integrations

Jared OttleyIntegration EngineerTwitter: @jottleyBlog: http://jared.ottleys.net

Senior Consultant, AlfrescoSolutions Engineer, Alfresco QA Engineer, (Linux Lead – OES), NovellDeveloper/System Analyst, US Federal Courts

Maintainer Alfresco PDF Toolkithttp://code.google.com/p/alfresco-pdf-toolkit/

Page 3: Jive, dropbox and other integrations

Integration Engineering @ Alfresco

What do we do• Focused on Developing Integrations with other products and the

Alfresco Platform

• Develop from the perspective of the customer. • Don’t modify the core• Only use Public APIs

• Share what we learn• Blog post• Documentation• Engineering

Page 4: Jive, dropbox and other integrations

Alfresco – Jive Toolkit

Page 5: Jive, dropbox and other integrations

Alfresco – Jive Toolkit

What is the Alfresco – Jive Toolkit?• A set of pre-built components that allows Jive to store documents

in Alfresco while still offering all of the same social features as “native” Jive documents (commenting, rating, discussions, etc.)

• The initial version of the Toolkit will allow users of Alfresco and/or Jive to create “managed” documents in any of the following 3 ways:

• …By uploading a document to Alfresco, using the Jive UI.• …By “publishing” an existing document from Alfresco to Jive, using

Alfresco’s Share UI.• …By “linking” an existing document stored in Alfresco to Jive, using the

Jive UI.

Page 6: Jive, dropbox and other integrations

Housekeeping

What is required?• Alfresco 3.4.3 and up (NOT Swift/4.0 at this time)• Jive 5.0.1

Release Date?• Soon!

• Small Developer Preview• Incorporate fixes from Preview• Release to the public

Page 7: Jive, dropbox and other integrations

Design

CMIS Client• CMIS Client on the Jive side• No need to add custom web scripts on the Alfresco side to handle

requests.

• We did add:• request filter

• Identifies calls from Jive

• Authentication Servlet• Authentication requests from Jive (…explained next…)

Page 8: Jive, dropbox and other integrations

Permissions• The models differ• No access to user credentials on either side• Implemented Solution

• Rely on a common backend – LDAP – Let each side manage its own permissions (Jive – Community; Alfresco – Node).

• Common user to make calls to Alfresco/Jive• Encrypted UserID to specify “RunAs” User• This is still open for change/improvement. We need “real world” feedback

to validate our approach

Design

Page 9: Jive, dropbox and other integrations

Design

Delete• Jive does not hold a copy of the content, just a reference: the

cmis:id• To protect it from from having Orphaned content. Alfresco does

not allow deletes while content is socialized.• Accomplished through a policy (beforeDeleteNode) which simply

throws an exception when a delete is tried

Copy• We want to allow coping of content in Alfresco, but we don’t want

the content to be socialized• The Jive side only supports a single reference to content• Jive has no concept of folders (Though it does support tags/categories)

• Disable copying the socialized aspect to new node through a copy callback

• getCopyCallback returns DoNothingCopyBehaviourCallback()

Page 10: Jive, dropbox and other integrations

Demo

Page 11: Jive, dropbox and other integrations

Alfresco Dropbox Connector

Page 12: Jive, dropbox and other integrations

Alfresco Dropbox Connector

What is the Connector• A Dropbox client with specific ties into Alfresco

• The initial version will support syncing content (documents and folders) to and from a Dropbox account (single or multiple)

• While implemented specifically with Share in mind the implementation is primarily exposed through web scripts that can be called independently of Share.

Page 13: Jive, dropbox and other integrations

Housekeeping

What is required?• Alfresco 4.0 (aka Swift)

Release Date?

• TBD• Close to submission for Approval from Dropbox• Further Testing of Multiple User use case

Page 14: Jive, dropbox and other integrations

Design

Worked started on 3.4.3• A couple of hurdles

• No OAuth support• No Encrypted properties in content Models• Share customizations to Document Library possible...but not very friendly

What we wanted to accomplish• Sync Documents/Folders from Alfresco to Dropbox• Sync Document/Folders from Dropbox to Alfresco• It needs to be simple with as little burden on the user to configure

and use

Page 15: Jive, dropbox and other integrations

Design

Alfresco is the center of the universe• Alfresco wins in conflicts

• Though we should note when conflicts occur and possibly at some point allow for conflict resolution

• If content is deleted in Alfresco is should be deleted in Dropbox.• If it is deleted in Dropbox it should not be removed from Alfresco• Targted deletes should be possible

Dropbox integration is different than social content management

• Social Content Management has multiple users typically publishing to single channel (1:1)

• Dropbox will typically have multiple users talking with their own Dropbox accounts (1:n)

Page 16: Jive, dropbox and other integrations

Design

Challenges• Closed resource

• No way to add/customize functionality on the service endanger• Limited Metadata• API does not currently allow for sharing across accounts• Rate Limited• Java API is focused on Android

• It is basically just a wrapper around the REST API

Page 17: Jive, dropbox and other integrations

Design

Oauth• Currently Using Signpost• Moving to SpringSocial

• SpringSocial is supported in Alfresco (Needed for Social Content Publishing)

• Use *New* Encyptyped Content Model properties types to store Token Key and Secret

Apache HTTP Client 4.x• Alfresco 4.0 now uses HTTPClient 4.x.

• This is different than 3.x

Page 18: Jive, dropbox and other integrations

Design

Document Library Customizations• Old way wasn't amp friendly

• Changes were overwriten• New way allows you to package changes in amp

Note: Toolbar customizations aren't yet supported by the new DocumentLibrary extension functionality

Page 19: Jive, dropbox and other integrations

Functionality

Sync Content/Folders (Alfresco to Dropbox)• Select a piece of content and send it to Dropbox• Select a Folder and sync it to Dropbox

• If a folder is synced, all content in that folder will be synced to Dropbox as well

• When content/folder is synced to Dropbox it will show Dropbox icon as an indicator that it is currently synced to dropbox

Page 20: Jive, dropbox and other integrations

Functionality

Once Sync'd, now what?• Updates to content will sync the change automatically• Content added to a synced folder will be automatically synced

Deleting Content• Deletes in Dropbox will not delete the content in Alfresco• Deletes in Alfresco will be deleted in Dropbox• Targeted deletes not yet supported

Copying Content• Copying the content will remove the Dropbox aspect from the

content ie the copy will no longer be synced to Dropbox

Page 21: Jive, dropbox and other integrations

Functionality

Sync Content/Folders (Dropbox to Alfresco)• No way to trigger changes from Dropbox to Alfresco• We have to poll or manually sync content

• Manual sync• Content

• Users can sync updated content that has been synced to Dropbox from Alfresco back into the repository

• Folders• Users can sync updated content that has been synced to Dropbox from Alfresco

back into the repository in a synced folder• New Content added to a synced folder on the Dropbox side will be pulled into

Alfresco

• Scheduled sync• Not yet implemented• Will use the same underlying process of the manual sync to provide same functionality

Page 22: Jive, dropbox and other integrations

Implementation

• Build the Dropbox Client• Build the Model• Dropbox Service (move to an action?)

• Web Scripts• Why not CMIS?

• Background• Share UI

Page 23: Jive, dropbox and other integrations

#ToDo

• Finish move to SpringSocial• Dropbox Dashlet

• Allow to setup sync• Show current quota*

• Multi user Testing• Unsync • Targeted delete• Add when last synced information (when, by whom)

Page 24: Jive, dropbox and other integrations

Demo

Page 25: Jive, dropbox and other integrations

Header• Body Level One

• Body Level Two• Body Level Three

• Body Level Four

Page 26: Jive, dropbox and other integrations

Help Wanted

We are looking for Help• Highly visible projects• Build your community street cred

• Facebook Integration• Kofax Release Scripts• Lotus Quickr Connector• Microsoft Office Add-ins• PHP API

Others are looking for help too!• OpenOffice.org Plugin• LibreOffice CMIS Plugin• LibreOffice Alfresco Implementation

Learn More @ http://wiki.alfresco.com/wiki/Help_Wanted

Page 27: Jive, dropbox and other integrations

Q&A

Page 28: Jive, dropbox and other integrations