Integrating Alfresco
@ Scale
Jan Vonka
Lisbon, 2018
Learn. Connect. Collaborate.
Overview
Introduction
Alfresco
Integrations
Integrations
Services
Framework
Futures &
Recap
Introduction
Image: https://www.timeout.com/london/blog/in-pictures-48-hot-air-balloons-floating-over-london-062016
Learn. Connect. Collaborate.
Introduction
• Jan Vonka
• Alfresco > 10 years
• Architect for Integrations
• Hot-air balloonist
• https://slideshare.net/jvonka
Learn. Connect. Collaborate.
Disclaimer
• The information and features
presented are subject to change
• Some code is Enterprise-only. We
hope to “open-up” more components
in the future
• We look forward to collaborating with
you to improve and extend the
Alfresco Integrations 🙂
Image: http://wikiality.wikia.com/wiki/File:Bridge-to-nowhere.jpg
Learn. Connect. Collaborate.
Alfresco Digital Business Platform
Application Development Framework
Alfresco Process
Services
Alfresco Content
Services
Alfresco Governance Services
Integrations / Extensions
Open APIs and Open Standards
On-Prem, Cloud, Hybrid, Managed
Intelligence and Analytics
Applications	
(Web,	Mobile,	Desktop)			
Integrations
(Connectors	&	Extensions)
Learn. Connect. Collaborate.
Terminology
Connector (Oxford Dictionary)
... links two or more things together
Integrate (Cambridge Dictionary)
… combine two or more things in order to become more effective
Systems Integration (Wikipedia)
… linking together ... software applications ... to act as a coordinated whole
... and ... adding value to the system capabilities ...
Alfresco Integrations
Image: http://www.nbrstudygroup.co.uk/nbr/forth_and_tay_bridges.htm
Learn. Connect. Collaborate.
Open	Protocols
(LDAP,	IMAP,	WebDAV	/	SPP)
Alfresco Integrations & Connectors
Learn. Connect. Collaborate.
Spectrum of Solution Options (depend on ...)
Customer use-cases
• Depth of integration
Business / Enterprise “process”
• Headless – consume services via public APIs & events
• End-User choice - eg. remain in preferred apps
Technology / Partner preference
• Type of Integration - patterns & frameworks
• Applications & Systems - being integrated
Build vs Buy
• Configure / Off-the-shelf / No-code
• Extend / Platform / Low-code
• Customise / OEM / Bespoke Development
Learn. Connect. Collaborate.
Strategy
Integrate with Leading Systems
• Islands + Bridges (avoid “silos”)
• Build vs Buy
Provide Platform
• Public API & Events
– Extensions outside of core runtimes
– event-driven behaviours
• Framework options
– common components
Build Ecosystem
• Work with Partner Community
• Provide (showcase) examples
Image: https://www.fly4free.com/flight-deals/europe/destination-fly4free-norway/
Learn. Connect. Collaborate.
Integration Partners
… for many more see: https://www.alfresco.com/partners
Partners speaking @ DevCon include ...
Box Connector
Image: https://www.cambridgeincolour.com/forums/thread56089.htm
Learn. Connect. Collaborate.
Box Connector
Integrate Box to Alfresco
• Seamless for end-users within Box
Enables a one-way sync
• Tracks Box events & pushes to Alfresco
Implemented using Box SDK
• Box Events API -> Change Detector
• Box Content API -> Content Operations
Interested ? Please contact us ☺
Learn. Connect. Collaborate.
Box	1
Alfresco	1 Alfresco	2
Box	2
Alfresco	3
Box	3 Sync	Definitions
• Initial	release
• Box	1	to	Alfresco	1	(one-way)
• Future	ideas	…
• Alfresco	2	to	Box	2	(one-way)
• Alfresco	3	to	Box	3	(two-way)
Box Connector
Learn. Connect. Collaborate.
Box Connector
Box	
Change	Detection
Box	
Content	Operations
Sync	
Change	
EvaluationBox	Content	Ops
Box	Change	Events
NoSQL
Alfresco
Content	Operations
Alf	Content	Ops
AIS	App
AIS	Identity
Sync	Registry
Learn. Connect. Collaborate.
Box Connector
Deployment
Image: https://en.wikipedia.org/wiki/M60_AVLB
Learn. Connect. Collaborate.
Containerized Deployment
Credit: NIST - Application Container Security Guide (Sep 2017)
Learn. Connect. Collaborate.
Reference Deployment
Docker Registry
• Public – eg. DockerHub
• Protected – eg. Quay.io
• Customers & Partners
Deployment options
• Docker Compose
• Kubernetes / Helm Charts
• Customized
Learn. Connect. Collaborate.
postgres
cassandraactivemq
ais-sync-registry
ais-sync-change-eval
ais-app
ais-box-change-detect
ais-alfresco-content-ops
Box
ais-box-content-ops
Share Repo
ACS	5.2.x
AIS	
Share	
AMP
AIS	
Repo
AMP
Q:		change	events
AWS	Dynamo	DB	?
Vol:
Shared	Content	Workspace
Q:	content	operations
ais-identity
AWS	RDS
Aurora	(etc)
AWS	S3
Vol:	Alf	Data
Vol:
Secrets	(Box,	Alfresco)
AWS	MQ
Vol:	PG	Data
Logical deployment diagram (LDD)
Integrations Services Framework
Image: http://www.sfchronicle.com/oursf/article/Our-S-F-How-the-Golden-Gate-Bridge-became-an-6594350.php
Learn. Connect. Collaborate.
Public	APIs	&	System	Events
AIS	Framework Other	Integration	Fwks
Showcase	Integrations Other	Example	Integrations
ADF	(Application	Dev	
Fwk)
Showcase	
Apps
Other	
App	UI	Fwks
Other	Example	Applications
JavaScript	Client	API
Mobile	
Apps
Mobile	SDK
Android	/	Java	Client	API	?
Alfresco Integrations Services (AIS) Framework
API	&	Event	Gateway
Desktop	Sync	Service
Learn. Connect. Collaborate.
AIS Framework & ABC Connectors
Change	
Evaluation
Change	Events
Content	Ops
A
A Content	Ops
A Change	Detect
B
B	Content	Ops
B	Change	Detect Change	Events
Content	Ops
B
B	Content	Ops
B	Change	Detect
A
A Content	Ops
A Change	DetectNoSQL
Registry
C
C Content	Ops
C Change	Detect
C
C Content	Ops
C Change	Detect
Learn. Connect. Collaborate.
AIS - Scaling
Micro-services
• Spring Boot 2 / Spring Cloud
• Change Detection, Evaluation & Operations
• AIS app built using ADF
Event messaging & routing
• Camel / Active MQ (via Gytheio libraries)
NoSQL registry
• Cassandra (future: DynamoDB ?)
Containerized deployments
• Docker Compose
• Kubernetes & Helm (PoC)
Learn. Connect. Collaborate.
AIS – Content Operations
Learn. Connect. Collaborate.
AIS - event-driven micro-services
Deployment / Customer 1
User
Directory
(LDAP)
Deployment /
Customer 2
Alfresco
deploymentId2
User
Box
W eb UI
Desktop App
OAuth API
Br owser
Alfresco
Repo
REST
API
deploymentId1
Integrations
Services
Integrations Services
(Alfresco)
Content Operations
Update
Get
Content
Change Detection
(Box)
W ebhooks Polling
Sync Change Evaluation
Change
Evaluation
User
Mapping
Change
Events
Content
Operations
Identity
Store
Creds
Get
Creds
Run As User
Get User
ID
Message
Broker
Shared Content
W orkspace
Sync Registry
Register
Sync Def
Get Sync
Details
Update
Sync Pair
NoSQL
Public
Events
Message
Consumer
WorkDocs Alfresco
OneDrive Google Drive
DropBox S3
Salesforce
CO
Results
Integrations Services UI
Mapping
Setup
Error /
Conflict Log
JWT Assertion
JWT OAuth
Get
T oken
Create
App User
Evernote
Futures
Image: http://www.everythingiwishedfor.co.uk/blog/10-holiday-ideas-direct-from-edinburgh
Learn. Connect. Collaborate.
Futures
Enhance existing Integrations
• Service Packs
• Customer-driven feature improvements
Launch of new Integrations
• Box Connector & Integrations Services Framework
• Digital Business Platform - more options to integrate & extend
• Office 365 / One Drive ?
Improvements to Deployment & Scaling
• Kubernetes / Helm
• Benchmarking
• More AWS options
Recap
Image: http://travelballoons.tumblr.com/post/146373945597/charles-bridge-prague-czech-republic-charles
Learn. Connect. Collaborate.
Integrations and Extensions
Development Focus
Surface the power of the
Alfresco Digital Business
Platform where ever work
gets done
Alfresco Connectors
▪ New Integration Services
o Alfresco Content Connector for Box (EA)
• New architected SFDC Connector (support for on-prem)
▪ Updates to existing Connectors: Alfresco Content Connector for Outlook,
Document Transformation Engines, and Google Docs
Alfresco Connectors
▪ Alfresco Content Connector for Box (GA)
▪ Deliver Integration Services
o Platform for custom driven integration
o Alfresco Content Connector for Office 365
▪ Updates: SFDC (adding Process Services), Outlook Connector
Delivering Innovation in 2017⟳
Future Plans…
Learn. Connect. Collaborate.
Please contact us …
We look forward to
collaborating with you
to improve and extend
the Alfresco Integrations
eco-system 🙂
Learn. Connect. Collaborate.
Links
Extending & Integrating the Alfresco Platform
https://www.alfresco.com/platform/integrating-extending-alfresco
Docs: ACS Integrations
https://docs.alfresco.com/5.2/concepts/install-integrations-overview.html
Docs: APS Integrations
http://docs.alfresco.com/process-services1.7/topics/integration_with_external_systems.html
Box Connector – EA
http://docs.alfresco.com/boxconnector-ea/concepts/box-conn-overview.html
Alfresco Google Docs Module
https://github.com/Alfresco/googledrive
Gytheio libraries – distributed content change handling
https://github.com/Alfresco/gytheio
Thank you !
https://slideshare.net/jvonka
Integrating Alfresco
@ Scale

Integrating Alfresco @ Scale (via event-driven micro-services)