Alfresco Mobile
Level Up Again, Technical Deep Dive
Ryan McVeigh, Director, rmcveigh@ziaconsulting.com
Gi Lee, Principal Consultant, gi.lee@ziaconsulting.com
Mike Muller, Director, mmuller@ziaconsulting.com
11/3/2011 www.ziaconsulting.com 303.443.4004 x203
Who are we?
• Ryan McVeigh
• Director @ Zia
• Responsible for Zia’s ECM Practice
• CMIS Secretary and Technical Editor
• Gi Lee
• Principal Consultant @ Zia
• Architect of Alfresco Mobile and Zia’s Fresh Docs products
• CMIS Committee Member
• Michael Muller
• Director @ Zia
• Zia Fresh Docs Inventor and Product Manager
Who is Zia?
A firm with deep technical expertise & strategic insight, coupled with our Agile software
methodology, provides numerous benefits to our customers:
Benefits
Our Partners
• Achieve ROI by delivering improved operational efficiencies
• Boost productivity by creating collaborative work environments
• Maintain access and control of information through the enterprise
• Allow employees to find the information they need, when they need it
• Increase end-user adoption
• Agile training by using Zia methodology and Rally tools
• Raving fan customers
Professional Qualifications
• Highly-experienced, accredited senior staff consisting of Business
Analysts, Enterprise Architects, Software Engineers and Data Architects
• Platinum Alfresco Professional Services & OEM Partner
• Platinum Ephesoft Partner
• Alfresco 2010 Implementation of the Year with Denver
• IBM, WeWebU and MuleSoft Partners
Agenda
• Alfresco Mobile History
• Architecture Overview
• CMIS Refresher
• Demo
• Technical Deep Dive
• Open Source Project
• Roadmap & What’s Next?
• Questions?
Alfresco Mobile History
• Zia released Fresh Docs for iOS in December
2009
• Android application also available
• Alfresco and Zia partnership entered this year
for Alfresco Mobile
Architecture Overview
• Mostly a CMIS application talking to Alfresco
• Several features specific to Alfresco
CMIS
Alfresco
REST
CMIS Refresher
• CMIS TC Goals & Scope
• Enable applications to target different ECM
repositories uniformly
• Provide a set of basic services enabling richer ECM
applications and use cases
• All for loose coupling of an ECM application on the
underlying repository
• Use popular protocol bindings
• REST / AtomPub
• Web Services / SOAP
Demo
• Alfresco Mobile in Action – A Few Features
• CMIS:
• Login to Alfresco over HTTP or HTTPS
• Browse, Search, Display Content and Edit
Metadata, Upload Media
• Create Folders
• Alfresco
• Alfresco Activities
• Like & Unlike, Comment on Documents
• iOS
• Local Downloads
• Multi Tasking
Design
• Navigation-based
application to browse
a CMIS Repository
• Universal Binary
iPad UI Design
• Maintain the same navigation-
based feel as the iPhone
• Use familiar usage patterns
• Use Split View provided by iOS
SDK
– Container that manages
two side-by-side view
controllers
– Master-Detail Interface
Feature to CMIS Service
via AtomPub Binding
Feature CMIS Service
Browse & getChildren
Company Home
Download Document getContentStream
Metadata getTypeDefinition
Search Query
Upload createDocument
Feature to Alfresco Service
via Alfresco’s RESTful API
Feature Alfresco Service
Activities Feed Activity Service
View & Add Tags Tagging Service
Comments Comment Service
Like a Document Rating Service
Sites List Site Service
Preference Service
Person Service
In-Depth Review
• Sequence of actions that occur from App
Launch to loading of the Documents (Browse)
tab.
• CMIS Search Queries
• Creating a RESTful HTTP Request for a CMIS
AtomPub Service
Review: App Launch to
Loading of Documents Tab
1. (CMIS) App Launch: Request AtomPub Service Document
– Service Document XML is returned and parsed in RepositoryInfo
objects
2. (Alfresco) Request Sites and parse the JSON response into
RepositoryItem objects
– Request Site Collection using Site Service
– Request Favorite Sites using Preference Service
– Request My Sites using Person Service
3. (CMIS) If Company Home is ON, request the folder
children of the Root Collection
– Atom Feed XML is returned and parsed into RepositoryItem
objects
Review: CMIS Search Queries
CMIS full-text search query:
SELECT * FROM cmis:document
WHERE CONTAINS(‘keywords’)
CMIS query on cmis:name property:
SELECT * FROM cmis:document
WHERE
CONTAINS('~cmis:name:’*keywords*'')
– CMIS does not have the ability for case
insensitive queries. LOWER() nor UPPER()
predicate are not available
In-Depth Review:
Creating an ObjectById HTTP Request
At a High Level:
1. Parse out the ObjectById template URL from the
service document
2. Create a new class that extends ASIHTTPRequest
• Add an initialize method
• Implement delegate methods
requestFinished: and requestFailed:
Review in XCode
• Project Structure in XCode
• Steps Running Alfresco Mobile in the
simulator
• Running the GHUnit unit tests
Requirements to Get Started
• Mac OSX with Snow Leopard or Lion
• Apple iOS Developer Account
• Latest Version of XCode 4
• Git
• Objective-C & iOS Programming
• Alfresco’s RESTful API
• Alfresco’s RESTful CMIS AtomPub Binding
Open Source
• Hosted on Bitbucket
http://bit.ly/rrNdTc
• Search for “alfresco-mobile”
at bitbucket.org
• Released under the Mozilla Public License Version 1.1
Alfresco Mobile 1.1 source code release by end
of the week!
Roadmap
• Features under future
consideration
• Browse Site Members
• Search and Browse for People
• Version History and Upload New Versions
• Browse Recent Docs
• More…
• Alfresco Mobile Product Manager
• Marc Dubresson
• marc.dubresson@alfresco.com
Disclaimer: Neither Alfresco nor Zia are making any
claims or commitments to deliver these features.
What’s Next?
• Alfresco 1.1 coming any day
• Code is Open Source
• Happy to have contributors
• Alfresco will coordinate releases of Alfresco
Mobile
• Zia will coordinate releases of Fresh Docs
• If you want to release to the Apple App
Store, contact us
Contact Us
• Ryan McVeigh – ECM Business Owner:
• rmcveigh@ziaconsulting.com
• Gi Lee – Fresh Docs Architect
• gi.lee@ziaconsulting.com
• Michael Muller – Fresh Docs PM
• mmuller@ziaconsulting.com