wcm-7 surfing with cmis
DESCRIPTION
There is a high demand for companies to publish and promote their content on the web. To accommodate this demand Alfresco has provided a number of solutions covering editorial to web tier. As an example of this demand Ixxus was commissioned by a leading business information publisher to produce a microsite for ‘teaser’ content to increase subscriptions of their main site. To deliver this Ixxus utilized a number of features provided by Alfresco, such as services like the Transfer Service, the web scripts framework, and Surf. The majority of these features now make up the mainstay of Alfresco’s Web Quick Start WCM solution. The goal of this session is to demonstrate a real world example of how the combination of Alfresco, Surf and CMIS offers a great platform for developers to produce content-rich websites quickly. The session will cover: Using Spring Roo to construct a Surf application, Benefits of using Spring Surf, Using the Transfer Service, OpenCMIS in Surf, Varnish your Surf application, and What’s nextTRANSCRIPT
Surfing with CMIS!
Ben Dougherty!
Contents!
• analysis.businessmonitor.com!• Surf Framework!• Developer tools!• Transfer service!• OpenCMIS!• Performance!• Whatʼs next!
analysis.businessmonitor.com!
Business Monitor International • BMI provide data, analysis, ratings and forecast content!• Industry research, Country risk and financial market analysis!• 175 countries and 22 industry sectors !• Provide subscription services!• Main site www.businessmonitor.com!
analysis.businessmonitor.com!
analysis.businessmonitor.com
• A microsite for www.businessmonitor.com!• Increase subscription numbers and capture leads!• Provide teaser content!• Ability to register interest!• Connect to existing SalesLogix system!• Provide a/b testing!• seo friendly design!
analysis.businessmonitor.com!
analysis.businessmonitor.com!
Main pages
• Home!• Intelligence!• Registration!
analysis.businessmonitor.com!
Home page
• Header and footer!• Carousel!• Description!• Latest intelligence!
analysis.businessmonitor.com!
Navigation bar
• Tabbed categories!• Region!• Country!• Industry!
• Navigation options reduce on selection!
analysis.businessmonitor.com!
Intelligence page
• Filter column to refine selection!
• Ajax call to populate filter!• Tabbed component!• List of most recent
research articles!• View Full Story navigates
to registration page!• RESTFul urls!
analysis.businessmonitor.com!
analysis.businessmonitor.com!
Registration page
• Retains the current context!• Auto selects area and
interest !• User selects other areas
interest!• SalesLogix integration!• a/b tests!
analysis.businessmonitor.com!
Items of note
• Content authored and held in Alfresco!• Only rendition content!• CMIS query to retrieve most recent articles!• Context specific queries!• No java code!• Script root object extensions!
Surf Framework!
What is Surf?
• View composition plug-in for SpringWeb MVC !• Allows modelling of website through XML!• Can build interfaces with script and templates without java!• Scripting API though root scoped objects!• Webscript framework used as component renderers!
Surf Framework!
Surf object model
• Define parts of web site!• Chrome borders!• Component type!• Component!• Page!• Page association!• Template type!• Template!• Theme!
Surf Framework!
Templates and Regions
• FreeMarker, PHP, and XSL!• Create layouts that can be
reused!• Define regions with scope!
Surf Framework!
Region scope
• Global!• Template!• Page!
Surf Framework!
Request architecture
Spring Applica,on Context
Controllers View
1
Model
Spring MVC Dispatcher
Request
2
Services
3
4
7
Response
6
Web Script Run,me
5
Web Script Run,me
Surf Framework!
Surf API
• root scoped objects!• Available in script and
templates!• remote!• sitedata!• user!• context!
Developer tools!
SpringSource Tool Suite
• Spring project and bean file wizards!• Graphical Spring configuration editor!• SpringSource tc Server deployment!• Provides editors!• Roo project wizard and shell!• Surf specific extension!
Developer tools!
Roo
• SpringSource project!• Rapid application development tool!• Command line driven!• SpringSurf Roo commands Add-on!• Commands aid surf site construction!
Developer tools!
Create project with roo
• Create new roo project !• New->Project..->Roo Project!• Enter project name!• Enter package name!• Click finish!
• Produces top level project!• Spring Application context!• Maven enabled!
Developer tools - Roo!Install Surf artifacts
• Open Roo Shell!• Surf install!
• Surf site structure!• Example pages and components!• Updates maven pom!
• Deployable application!• mvn clean package jetty:run!
Developer tools - Roo!
• surf addon install!• surf addon list!• surf component create!• surf component list!• surf component property create!• surf component resource create!• surf content association create!• surf page association create!• surf page association list!• surf page create!
• surf page list!• surf report page!• surf site create!• surf template create!• surf template instance create!• surf template instance list!• surf template list!• surf template region list!• surf webscript list!
Roo command extensions
Using Transfer Service!
Requirement
• Publish articles to web tier!• Scheduled!• Batched!• Categories ʻflattenedʼ to
properties!• Handle failed transactions!• User interface view queue!• Provide reports!
Transfer Service!
What is it?
• New feature in 3.3!• Transfer target!• Node crawler build set of
nodes!• Manifest created!• Manifest sent to target server!• Required node list returned!• Provides events to monitor
transfer status!
Transfer customizations
• Bulk transfer action!• Present transfer queue!• A flattened aspect!• A Scheduled service to batch transfer!• Handled failures!• Receiver code!
Transfer Service!
Changes in 3.4
• Replication service!• Sync mode!• Transferred and alien aspect!• Read only option!
Changes in 4
• Transfer to file system!
OpenCMIS!
CMIS
• Common data model!• Services!
• Repository!• Object!• Discovery services!• Versioning!• ACL!
• SOAP and REST bindings!
OpenCMIS!
CheMIStry
• Implementation of CMIS specification!• Client and server libraries in java!• Single point of access!• Cache objects!• CMIS Workbench!
OpenCMIS!
Use in analysis
• Query filtered by context and type!• Only rendition objects!• Use of spring-cmis-components !• No java code use with query!• Easy to enable in maven!
Performance!
Analysis improvements
• OpenCMIS OperationContext !• Rendition filter!• Disable unwanted information like Acls, relationships, policies etc!• Enable object cache!• Set maximum results!
• Select named properties in CMIS Query!• Modeled types and aspects for simpler query!• Varnish!• CDN!
Whatʼs next?!
• Upgrade from 3.3!• Transfer service improvements!• Replication service!• Search optimizations!
• WCM author static content!• Disable permission checks!• Dynamic Asset Collections!• Mapping file managed in Alfresco!
Q and A!