iPhone, CMIS, and Amazon EC2 - Tech Talk Live with Alfresco
 

iPhone, CMIS, and Amazon EC2 - Tech Talk Live with Alfresco

on

  • 2,592 views

Mike Mahon, President and Mike Muller, Director, Software Consulting at Zia Consulting talk about a native iPhone application Zia has developed that allows mobile access to an Alfresco document ...

Mike Mahon, President and Mike Muller, Director, Software Consulting at Zia Consulting talk about a native iPhone application Zia has developed that allows mobile access to an Alfresco document repository. This application runs against the most recent Alfresco releases; no additional software needs to be installed on the servers and no configuration of Alfresco is required.
It is configured by default to run against an Alfresco instance running in the Cloud. All of the calls to Alfresco to authenticate and pull content are utilizing Alfresco’s CMIS API.

We are currently beta-testing the application, called Fresh Docs, for submission to Apple’s app store. To be notified when it’s available in the app store, or to participate in the beta test, contact iphone@ziaconsulting.com. You can find more information about the app and our plans to Open Source the code behind it at www.ziaconsulting.com/iphone.

To attend, please visit http://alfresco.acrobat.com/live and enter the meeting room as a Guest.

You can find more information about TTL here:

http://drquyong.com/myblog/?p=203

and the wiki link

http://wiki.alfresco.com/wiki/Live#Schedule

Statistics

Views

Total Views
2,592
Views on SlideShare
2,570
Embed Views
22

Actions

Likes
1
Downloads
40
Comments
0

5 Embeds 22

http://www.slideshare.net 12
http://www.linkedin.com 6
http://www.kunalmittal.com 2
http://kunalmittal.com 1
http://www.health.medicbd.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • * Reserved EC2 instance has proven to be much cheaper than a dedicated hosted server, particulary when factoring in backup storage in S3* * This was invaluable in testing out an upgrade from the community 3.0 edition to 3.2.  By cloning a backup snapshot, we were able to have a parallel instance running in minutes.  We could run through the upgrade scenario multiple times with various scenarios before applying it to the production instance.

iPhone, CMIS, and Amazon EC2 - Tech Talk Live with Alfresco iPhone, CMIS, and Amazon EC2 - Tech Talk Live with Alfresco Presentation Transcript

  • iPhone native App, CMIS and the Cloud
    Mike Mahon, President, mike@ziaconsulting.com
    Mike Muller, Director, Software Consulting, mike.muller@ziaconsulting.com
    10/30/09
    www.ziaconsulting.com
    303.443.4004 x203
  • Who is Zia?
    A firm with deep technical expertise and strategic insight, dedicated providing customers with the following benefits:
    Benefits
    Zia’s deep technical expertise and strategic insight, coupled with our Agile software methodology, provide numerous benefits to our customers:
    • 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
    Professional Qualifications
    • Highly-experienced senior staff consisting of Business Analysts, Enterprise Architects, Software Engineers and Data Architects
    • Alfresco Professional Services Partner
    Our Partners
    10/30/09
    www.ziaconsulting.com
    2
  • Service Offerings
    Enterprise Content Management (ECM)
    An ECM is a cultivation of knowledge -- one of the most valuable assets to any organization. A proper ECM system ensures content has integrity through proper version control, allows producers to easily create content and publish it to a variety of mediums, and it automates processes,streamlining the review, approval and distribution of content across an organization.  Zia's ECM offerings provide all of these benefits, and more, in a manner tailored to the client's business needs.
    Enterprise 2.0 Solutions
    The focus of technology should always be on people. Zia enables our customers to gain tremendous competitive advantage by allowing their team to collaborate more effectively, respond more quickly to changes, and make better decisions. Adopters of Enterprise 2.0 solutions will find they have a more productive, engaged and informed team.
    Data Management
    Organizations have increasing demand for accessibility to information. It is critical to guarantee data security, consistency, and timeliness, while providing that data access. Zia’s expertise in data management helps organizations implement effective data governance strategies. This governance is the key to effective data management and success.
    Zia’s Agile Solution Methodology
    At its heart, our Agile-based methodology is centered on a close collaborative approach to maximizing value for our customers. Constant client communication is necessary to ensure that each development iteration addresses features with the highest business value, even if those features were unknown at the launch of the project.
  • What is the project?
    Zia has developed an app that allows mobile access to an Alfresco document repository. This application runs against the most recent Alfresco releases; no additional software needs to be installed on the servers and no configuration of Alfresco is required.
    
It is configured by default to run against an Alfresco instance running in the Cloud. All of the calls to Alfresco to authenticate and pull content are utilizing Alfresco’s CMIS API.
    10/30/09
    www.ziaconsulting.com
    4
  • Why did we do this project?
    • Interest in the platform
    • Contribute back to the community
    • Great learning opportunity
    10/30/09
    www.ziaconsulting.com
    5
  • Why use the Cloud?
    • Reduced cost compared to dedicated server
    • XFS and Amazon EBS snapshots allow nearly instant online backups
    • http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1663
    • Duplicate instances quickly and easily 
    • Grow repository space quickly and easily
    • Excellent public demo site for the iPhone app
    10/30/09
    www.ziaconsulting.com
    6
  • Why CMIS?
    • Lightweight
    • Standards-based
    • Interoperable
    For more information:
    http://en.wikipedia.org/wiki/Content_Management_Interoperability_Services
    http://wiki.alfresco.com/wiki/CMIS
    10/30/09
    www.ziaconsulting.com
    7
  • Demo
    10/30/09
    www.ziaconsulting.com
    8
  • Benefits of a Native App
    • Offline operation
    • Usability and performance
    • Push notification
  • Required Services
    • Get sites
    • Get children
    • Get content
    • Search
  • Get Sites
    alfresco/service/api/sites?format=json
    [
    {
    "url" : "/alfresco/service/api/sites/clients",
    "sitePreset" : "site-dashboard",
    "shortName" : "clients",
    "title" : "Consulting",
    "description" : "Zia Consulting client focused site. Contains materials on proposal...",
    "node" : "/alfresco/service/api/node/workspace/SpacesStore/65be3462-ddb7-415f-a263-d7aca36953ee",
    "tagScope" : "/alfresco/service/api/tagscopes/workspace/SpacesStore/65be3462-ddb7-415f-a263-d7aca36953ee",
    "isPublic" : false,
    "visibility" : "PRIVATE",
    "siteManagers" : ["mmahon", "pjh", "bwavell", "pmyers", "jbarry"]
    },
    {
    "url" : "/alfresco/service/api/sites/intranet",
    "sitePreset" : "site-dashboard",
    "shortName" : "intranet",
    ...
  • Get Children
    alfresco/service/api/node/workspace/SpacesStore/<GUID>/children
    <feed>
    ...
    <entry>
    <author><name>pmahon</name></author>
    <content>54186503-ed0c-4037-98d4-d071fbe8368e</content>
    <id>urn:uuid:54186503-ed0c-4037-98d4-d071fbe8368e</id>
    <link rel="cmis-type" href="http://foo.bar.com:80/alfresco/service/type/folder"/>
    <link rel="cmis-repository" href="http://foo.bar.com:80/alfresco/service/api/repository"/>

    <published>2009-06-30T23:33:35.564Z</published>
    <summary></summary>
    <title>blog</title>
    <updated>2009-06-30T23:33:35.578Z</updated>
    <cmis:object>
    <cmis:properties>
    <cmis:propertyStringcmis:name="LastModifiedBy"><cmis:value>pmahon</cmis:value></cmis:propertyString>
    <cmis:propertyDateTimecmis:name="LastModificationDate"><cmis:value>2009-06-30T23:33:35.578Z</cmis:value>
    </cmis:propertyDateTime>
    ...
    </cmis:properties>
    </cmis:object>
    <cmis:terminator/>
    <app:edited>2009-06-30T23:33:35.578Z</app:edited>
    <alf:icon>http://foo.bar.com:80/alfresco/images/icons/space-icon-default-16.gif</alf:icon>
    </entry>
    ...
    </feed>
  • Get Content
    alfresco/service/api/node/workspace/SpacesStore/<guid>/filename.ext
    <feed>
    ...
    <entry>
    <author><name>mmahon</name></author>
    <content type="application/msword" src="http://foo.bar.com:80/alfresco/service/api/node/workspace/SpacesStore/4cf3b9de-e492-4374-b0c5-b9a48661b011/content.doc"/>
    <id>urn:uuid:4cf3b9de-e492-4374-b0c5-b9a48661b011</id>
    <link rel="self" href="http://foo.bar.com:80/alfresco/service/api/node/workspace/SpacesStore/4cf3b9de-e492-4374-b0c5-b9a48661b011"/>
    ...
    <link rel="repository" href="http://foo.bar.com:80/alfresco/service/api/repository"/>
    <published>2009-06-15T21:24:14.392Z</published>
    <summary></summary>
    <title>mmuller_bio.doc</title>
    <updated>2009-07-02T18:04:26.134Z</updated>
    <cmis:object>
    <cmis:properties>
    <cmis:propertyStringcmis:name="BaseType"><cmis:value>document</cmis:value></cmis:propertyString>
    ...
    <cmis:propertyIdcmis:name="ObjectTypeId"><cmis:value>document</cmis:value></cmis:propertyId>
    </cmis:properties>
    </cmis:object>
    <cmis:terminator/>
    <app:edited>2009-07-02T18:04:26.134Z</app:edited>
    <alf:icon>http://foo.bar.com:80/alfresco/images/filetypes/doc.gif</alf:icon>
    </entry>
    ...
    </feed>
  • Search
    alfresco/service/search/keyword.atom?q=<pattern>&p=1&c=<count>
    <feed>
    ...
    <entry>
    <title>WBS-django-conversion.xls</title>
    <link rel="alternate" href="http://foo.bar.com:80/alfresco/service/api/node/content/workspace/SpacesStore/986b162e-0867-4a7b-9f4f-0e3837cdc97b/WBS-django-conversion.xls"/>
    ...
    <icon>http://foo.bar.com:80/alfresco/images/filetypes/xls.gif</icon>
    <id>urn:uuid:986b162e-0867-4a7b-9f4f-0e3837cdc97b</id>
    <alf:noderef>workspace://SpacesStore/986b162e-0867-4a7b-9f4f-0e3837cdc97b</alf:noderef>
    <updated>2009-06-15T22:06:23.037Z</updated>
    <summary></summary>
    <author>
    <name>mmahon</name>
    </author>
    <relevance:score>0.012</relevance:score>
    </entry>
    ...
    </feed>
  • CMIS
    • Content Mgmt Interoperability Services
    • Provides abstract web API to access CMS
    • Specification not finalized
    • SOAP and REST
    • REST API based on AtomPub
  • CMIS Search
    • New query language: CQL
    • Based on SQL 92
    • Each content type is a table
    • Each property is a column
    select Title, Description from document
    where LastModifiedBy = ‘mmuller’
  • CMIS Search Request
    alfresco/service/api/query
    This is the body of the POST request
    (not the response)
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <query>
    <statement>select score() as Relevance, ContentStreamLength from Document where contains(‘pancakes')</statement>
    <pageSize>20</pageSize>
    </query>
    • pageSize must be > 0
    • Content-Type = application/cmisquery+xml
    • namespace is inconsistent
  • CMIS Search Response
    alfresco/service/api/query
    <feed>
    ...
    <entry>
    <author><name>mmahon</name></author>
    <content type="application/vnd.excel" src="http://foo.bar.com:80/alfresco/service/api/node/workspace/SpacesStore/986b162e-0867-4a7b-9f4f-0e3837cdc97b/content.xls"/>
    <id>urn:uuid:986b162e-0867-4a7b-9f4f-0e3837cdc97b</id>
    <link rel="repository" href="http://foo.bar.com:80/alfresco/service/api/repository"/>
    ...
    <title>WBS-django-conversion.xls</title>
    <updated>2009-06-15T22:06:23.037Z</updated>
    <cmis:object>
    <cmis:properties>
    <cmis:propertyStringcmis:name="BaseType"><cmis:value>document</cmis:value></cmis:propertyString>
    <cmis:propertyDecimalcmis:name="Relevance"><cmis:value>0.0256947092711926</cmis:value></cmis:propertyDecimal>
    <cmis:propertyIntegercmis:name="ContentStreamLength"><cmis:value>18944</cmis:value></cmis:propertyInteger>
    </cmis:properties>
    </cmis:object>
    <cmis:terminator/>
    <alf:icon>http://foo.bar.com:80/alfresco/images/filetypes/xls.gif</alf:icon>
    </entry>
    ...
    </feed>
    THIS is the response
  • CMIS Get Sites
    alfresco/service/api/query
    select f.Name from folder as f where f.ObjectTypeId = 'F/st_site'
    <feed>
    ...
    <entry>
    <author><name>mmahon</name></author>
    <content>977a5305-6800-4825-ade3-73e53e032635</content>
    <id>urn:uuid:977a5305-6800-4825-ade3-73e53e032635</id>
    <link rel="repository" href="http://foo.bar.com:80/alfresco/service/api/repository"/>
    ...
    <title>newclienttemplate</title>
    <updated>2009-09-05T11:45:55.925Z</updated>
    <cmis:object>
    <cmis:properties>
    <cmis:propertyStringcmis:name="BaseType"><cmis:value>folder</cmis:value></cmis:propertyString>
    <cmis:propertyStringcmis:name="f.Name"><cmis:value>newclienttemplate</cmis:value></cmis:propertyString>
    </cmis:properties>
    </cmis:object>
    <cmis:terminator/>
    <alf:icon>http://foo.bar.com:80/alfresco/images/icons/space-icon-default-16.gif</alf:icon>
    </entry>

    </feed>
  • CMIS Get Sites
    How do I get the description?
  • Get Children
    alfresco/service/api/node/workspace/SpacesStore/<GUID>/children
    <feed>
    ...
    <entry>
    <author><name>pmahon</name></author>
    <content>54186503-ed0c-4037-98d4-d071fbe8368e</content>
    <id>urn:uuid:54186503-ed0c-4037-98d4-d071fbe8368e</id>
    <link rel="cmis-type" href="http://foo.bar.com:80/alfresco/service/api/type/folder"/>
    <link rel="cmis-repository" href="http://foo.bar.com:80/alfresco/service/api/repository"/>
    ...
    <published>2009-06-30T23:33:35.564Z</published>
    <summary></summary>
    <title>blog</title>
    <updated>2009-06-30T23:33:35.578Z</updated>
    <cmis:object>
    <cmis:properties>
    <cmis:propertyStringcmis:name="LastModifiedBy">
    <cmis:value>pmahon</cmis:value>
    </cmis:propertyString>
    <cmis:propertyDateTimecmis:name="LastModificationDate">
    <cmis:value>2009-06-30T23:33:35.578Z</cmis:value>
    </cmis:propertyDateTime>
    ...
    </cmis:properties>
    </cmis:object>
    <cmis:terminator/>
    <app:edited>2009-06-30T23:33:35.578Z</app:edited>
    <alf:icon>http://foo.bar.com:80/alfresco/images/icons/space-icon-default-16.gif</alf:icon>
    </entry>
    ...
    </feed>
    It was CMIS already!
  • Next Steps
    • One call to get top-level site documents
    • Workflow (approve/reject)
    • Push notification (of task events, for instance)
    • More Share features (blogs, forums, etc.)
    • Send an email to iphone@ziaconsulting.com to become a beta tester
    • Visit www.ziaconsulting.com/iphone for more information
    • Release the source code
  • Zia Clients