represents the model of a writer document. sharepoint ... › jaragunde › files › 2015 › 05...

32
// Represents the model of a Writer document. class SW_DLLPUBLIC SwDoc : public IInterface, public IDocumentRedlineAccess, public IDocumentFieldsAccess, public IDocumentStylePoolAccess, public IDocumentLineNumberAccess, public IDocumentStatistics, public IDocumentState, public IDocumentLayoutAccess, public IDocumentExternalData Jacobo Aragunde Pérez http://blogs.igalia.com/jaragunde @JacoboAragunde Sharepoint and LibreOffice interoperability through CMIS

Upload: others

Post on 03-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

// Represents the model of a Writer document.class SW_DLLPUBLIC SwDoc :

public IInterface, public IDocumentRedlineAccess,

public IDocumentFieldsAccess, public IDocumentStylePoolAccess,

public IDocumentLineNumberAccess, public IDocumentStatistics,

public IDocumentState, public IDocumentLayoutAccess,

public IDocumentExternalData

Jacobo Aragunde Pérezhttp://blogs.igalia.com/jaragunde

@JacoboAragunde

Sharepoint and LibreOffice interoperability through CMIS

Page 2: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Contents

● The CMIS protocol● Writing your own client: the libcmis project● Connecting to your SharePoint server from

LibreOffice● The future of CMIS integration in LibreOffice

Page 3: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

The CMIS protocol

Page 4: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

● Stands for Content Management Interoperability Services

● Abstraction layer for interoperability across enterprise content management systems (ECM) using web protocols● ECMs store unstructured data

Page 5: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

● Provides:● Common data model for typed files and folders with

properties that can be get/set● Services for adding and retrieving documents

● May provide:● Access control system● Version control● Relations● Queries

Page 6: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

● Bindings:● SOAP (WebService)● AtomPub (RESTful)● JSON (from CMIS 1.1)

Page 7: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Domain model

● Repository● Topmost object● Any number, minimum one

● Types● Folder, document● More can be added● Types have properties● Hierarchies can be built

Page 8: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Domain model

● Folders● One root folder per repository● Define a hierarchy● Have properties, like any type

● Documents● Have properties, like any type● Have a content stream with a MIME type

Page 9: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Services

● Repository service● List and get properties of repositories● Expose available types

● Navigation service● Browser folder hierarchy

● Object service● CRUD of documents and folders● Access by object ID or by path

Page 10: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Services

● Versioning service● Create and access versions● Only documents are versionable

– Determined by the document type

Page 11: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

A common interaction

● Get repositories from the server● Get root folder for some repository● Navigate through the folders● Check out a document● Check in modified document

Page 12: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Some server implementations

● Alfresco● IBM Content Manager● Magnolia CMS● Nuxeo● SharePoint 2010, 2013

Page 13: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Some client implementations

● Drupal● LibreOffice● Liferay● Salesforce.com● SharePoint 2010, 2013

Page 14: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Writing your own client: the libcmis project

Page 15: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

What is libcmis

● C++ client library for the CMIS interface● Enables client applications to connect servers like

SharePoint

● Open source project● GPLv2, MPL 1.1● LGPLv2, link from proprietary software

● Brought to you by the LibreOffice community● http://libcmis.sourceforge.net/

Page 16: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

What libcmis provides

● C++ and plain C APIs● Classes abstracting CMIS entities● Specific implementation for selected servers,

including SharePoint● Command line client tool

Page 17: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Alternatives to write CMIS software

● Apache Chemistry (OpenCMIS) on Java platforms

● NCMIS or VB.CMIS on Microsoft platforms

Page 18: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Connecting to your SharePoint server from LibreOffice

Page 19: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Enable CMIS in your server

● CMIS connector is part of the SharePoint 2010 Administration Toolkit

● Includes a consumer web part (client) and a producer (server)

● Follow documentation instructions to install and configure

Page 20: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Connect from LibreOffice

Page 21: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Connect from LibreOffice

Page 22: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Connect from LibreOffice

Page 23: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Problems

● Feature not visible to average users● Only accessible through LO custom file dialogs● Lack of users means under-average testing and

maintenance

● Inconsistency across different LibreOffice providers● Some may include it, some may not● May be visible or not depending on default dialog

configuration

Page 24: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

The future of CMIS integration in LibreOffice

Page 25: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Goals

● Increase visibility of the feature● Integrate in standard LibreOffice workflow● Easy access to many storage services● Expectation: LibreOffice 5.1 early 2016

Page 26: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Increase visibility

● Specific entry in Start Center● Open from remote, save to remote menu

options and/or toolbar buttons

Page 27: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Start Center entry

Mockups from LibreOffice Design Session: CMIS improvement - User Prompt GmbH

Page 28: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Integrate in standard workflow

● Open from remote, save to remote menu options and/or toolbar buttons

● Specific dialog to open and save from remote locations● Not part of the LibreOffice file dialogs any more● Make feature independent from dialog configuration

● Dialogs to manage different services● Dialog complexity depending on the service

Page 29: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Dialog for remote operations

Mockups from LibreOffice Design Session: CMIS improvement - User Prompt GmbH

Page 30: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Dialogs for service configuration

Mockups from LibreOffice Design Session: CMIS improvement - User Prompt GmbH

Page 31: Represents the model of a Writer document. Sharepoint ... › jaragunde › files › 2015 › 05 › ... · Contents The CMIS protocol Writing your own client: the libcmis project

Thank you!

© 2015 Igalia, S.L.