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

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Notes on slide 1

    * 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.

    1 Favorite

    iPhone, CMIS, and Amazon EC2 - Tech Talk Live with Alfresco - Presentation 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
      • 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
    3. 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.
    4. 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
    5. 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
    6. 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
    7. 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
    8. Demo
      10/30/09
      www.ziaconsulting.com
      8
    9. Benefits of a Native App
      • Offline operation
      • Usability and performance
      • Push notification
    10. Required Services
      • Get sites
      • Get children
      • Get content
      • Search
    11. 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",
      ...
    12. 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>
    13. 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>
    14. 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>
    15. CMIS
      • Content Mgmt Interoperability Services
      • Provides abstract web API to access CMS
      • Specification not finalized
      • SOAP and REST
      • REST API based on AtomPub
    16. 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’
    17. 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
    18. 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
    19. 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>
    20. CMIS Get Sites
      How do I get the description?
    21. 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!
    22. 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
    23. Zia Clients

    + Mike MahonMike Mahon, 3 weeks ago

    custom

    194 views, 1 favs, 0 embeds more stats

    Mike Mahon, President and Mike Muller, Director, So more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 194
      • 194 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 5
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories