Your SlideShare is downloading. ×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

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

1,462
views

Published on

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

Published in: Technology, Business

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,462
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
40
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • * 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.
  • Transcript

    • 1. 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
    • 2. 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
      • 3. Boost productivity by creating collaborative work environments
      • 4. Maintain access and control of information through the enterprise
      • 5. Allow employees to find the information they need, when they need it
      • 6. Increase end-user adoption
      • 7. 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
      • 8. Alfresco Professional Services Partner
      Our Partners
      10/30/09
      www.ziaconsulting.com
      2
    • 9. 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.
    • 10. 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
    • 11. Why did we do this project?
      • Interest in the platform
      • 12. Contribute back to the community
      • 13. Great learning opportunity
      10/30/09
      www.ziaconsulting.com
      5
    • 14. Why use the Cloud?
      • Reduced cost compared to dedicated server
      • 15. XFS and Amazon EBS snapshots allow nearly instant online backups
      • 16. http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1663
      • 17. Duplicate instances quickly and easily 
      • 18. Grow repository space quickly and easily
      • 19. Excellent public demo site for the iPhone app
      10/30/09
      www.ziaconsulting.com
      6
    • 20. Why CMIS?
      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
    • 23. Demo
      10/30/09
      www.ziaconsulting.com
      8
    • 24. Benefits of a Native App
      • Offline operation
      • 25. Usability and performance
      • 26. Push notification
    • Required Services
    • 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",
      ...
    • 30. 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>
    • 31. 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>
    • 32. 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>
    • 33. CMIS
      • Content Mgmt Interoperability Services
      • 34. Provides abstract web API to access CMS
      • 35. Specification not finalized
      • 36. SOAP and REST
      • 37. REST API based on AtomPub
    • CMIS Search
      • New query language: CQL
      • 38. Based on SQL 92
      • 39. Each content type is a table
      • 40. Each property is a column
      select Title, Description from document
      where LastModifiedBy = ‘mmuller’
    • 41. 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
      • 42. Content-Type = application/cmisquery+xml
      • 43. 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
    • 44. 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>
    • 45. CMIS Get Sites
      How do I get the description?
    • 46. 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!
    • 47. Next Steps
      • One call to get top-level site documents
      • 48. Workflow (approve/reject)
      • 49. Push notification (of task events, for instance)
      • 50. More Share features (blogs, forums, etc.)
      • 51. Send an email to iphone@ziaconsulting.com to become a beta tester
      • 52. Visit www.ziaconsulting.com/iphone for more information
      • 53. Release the source code
    • Zia Clients