Coldfusion and Alfresco, does it work? Well it does, as easy as everything else in Coldfusion :)
What is Alfresco? Why would you want to use Alfresco and Coldfusion together?
Explore the different ways to create interfaces between them!
(The demo application is available on www.basinglag.com)
2. Agenda What is Alfresco? Why would you want to use ColdFusion and Alfresco together? Explore the different ways to create interfaces between them The example
12. Alfresco for Traditional WCM Use cases: Enable non-technical users to manage mostly static web sites Client: Web client Process: Simple Content: XML-centric Alfresco for Dynamic WCM Use cases: Enable both technical and non-technical users to work together to maintain a dynamic web site (application) Client: Web client, Eclipse and other tools Process: Simple to complex processes Content: XML-centric
13. Whatitisn’t good at An issue of “could you” versus “should you” You could use Alfresco to develop a CRM application but should you? Alfresco as a platform for non-document- or non-content-centric solutions Alfresco is built to handle content, not as a replacement to Hibernate Source code management Until Alfresco supports the SVN protocol, developers probably will not be willing to give up their current tools to use Alfresco for source code management Others?
14. Why would you want to use ColdFusion and Alfresco together? Why not? The use of coldfusionwithalfrescoiswhatyoudecide to do withit The best of the two world Integrate CF CMS like mura with an existingenterprise directory or the contrary Use coldfusion services Wrote a completely independent front end using Coldfusion with alfresco/share as the backend
15. Custom solution / Protocol CMIS Servlet WebService WebScript / RESTFul APIs Others? (WebDav, FTP, FileSystem) Different ways to create interfaces between the two
16. That wasmy first contact withalfrescosomeyearsago The solution includeda custom java api with soap webservice support on alfresco side to access the repository. On the coldfusion side there was another api used to parse the xml and fill cfcs object. A little bit like hibernate. Well it was working but not performant at all! Custom solution
17. Content Management Interoperability Services (CMIS) is a specification for improving interoperability between Enterprise Content Management systems (Extend SOAP) It provides a data model plus a set of generic services and several protocol bindings for these services, including SOAP and Representational State Transfer (REST) using the Atom convention CMIS specification provides a Web services interface that: - Is language-agnostic (REST and SOAP are implemented in many languages) - Decouples web service and content. So CMIS can be used to acces to an historic document repository. CMIS
18. REST describes the following six constraints applied to the architecture, while leaving the implementation of the individual components free to design: - Client/Server (separation, ie client don’t care about data storage) - Stateless (session stuff on the client only) - Cacheable (call to an uri return always the same) - Layered system (client can’t tell if it is connected to a end server or an intermediary) - Code on demand (opt) (server can transfer code to client for execution) - Uniform interface (http get, put, post, delete) Key goals are performance, scalability, simplicity, modifiability, visibility, portability and reliability (Roy Fielding authors of HTTP 2k) REST
19. We can … Have access to the whole Alfresco API Define our own REST services and manipulate them from the process or the workflow Authenticated calls Easily testable and redeployable WebScripts
20.
21. Web scripts Web Scripts interaction The request arrives at the Web Script REST dispatcher. The dispatcher finds the appropriate web script for the request (URL). If one is found, the dispatcher executes the web script, after successfully authenticating, if required. Then it invoke the Javascriptof the web script. 3. With Javascript, you have access to the full set of Alfresco repository content services. You can search for information, navigate around the repository, modify information, create new documents, set properties on those documents, move data around, and delete data. If it is not enough you can create your own java object that will directly interact with alfresco. 4. The result from the Javascriptis rendered using FreeMarker response templates. The response format can be HTML, ATOM, XML, RSS, JSON, CSV, or any combination of these. You must provide the appropriate templates. 5. The REST dispatcher sends the rendered results back via a response using the same protocol as URL request. 6. The web script client receives the response in the request format.