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
                  Request	
                                                    Response	
  
                                1	
                                                        7	
  



                                          Spring	
  MVC	
  Dispatcher	
  
                                                                                                                                  Web	
  Script	
  Run,me	
  

  2	
                                                                                                             6	
                     Web	
  Script	
  Run,me	
  
                                        Spring	
  Applica,on	
  Context	
  

                       Controllers	
                                          View	
  



                                                                                                                          5	
  

                                                    Model	
                        4	
  



          3	
  




                                                                                                   Services	
  
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!
Roo command extensions

  •    surf addon install!                •    surf page list!
  •    surf addon list!                   •    surf report page!
  •    surf component create!             •    surf site create!
  •    surf component list!               •    surf template create!
  •    surf component property create!    •    surf template instance create!
  •    surf component resource create!    •    surf template instance list!
  •    surf content association create!   •    surf template list!
  •    surf page association create!      •    surf template region list!
  •    surf page association list!        •    surf webscript list!
  •    surf page create!
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!

WCM-7 Surfing with CMIS

  • 1.
    Surfing with CMIS! Ben Dougherty!
  • 2.
    Contents! •  analysis.businessmonitor.com! •  Surf Framework! •  Developer tools! •  Transfer service! •  OpenCMIS! •  Performance! •  Whatʼs next!
  • 3.
    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!
  • 4.
    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!
  • 5.
  • 6.
    analysis.businessmonitor.com! Main pages •  Home! •  Intelligence! •  Registration!
  • 7.
    analysis.businessmonitor.com! Home page •  Header and footer! •  Carousel! •  Description! •  Latest intelligence!
  • 8.
    analysis.businessmonitor.com! Navigation bar •  Tabbed categories! •  Region! •  Country! •  Industry! •  Navigation options reduce on selection!
  • 9.
    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!
  • 10.
  • 11.
    analysis.businessmonitor.com! Registration page •  Retains the current context! •  Auto selects area and interest ! •  User selects other areas interest! •  SalesLogix integration! •  a/b tests!
  • 12.
    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!
  • 13.
    Surf Framework! What isSurf? •  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!
  • 14.
    Surf Framework! Surf objectmodel •  Define parts of web site! •  Chrome borders! •  Component type! •  Component! •  Page! •  Page association! •  Template type! •  Template! •  Theme!
  • 15.
    Surf Framework! Templates andRegions •  FreeMarker, PHP, and XSL! •  Create layouts that can be reused! •  Define regions with scope!
  • 16.
    Surf Framework! Region scope •  Global! •  Template! •  Page!
  • 17.
    Surf Framework! Request architecture Request   Response   1   7   Spring  MVC  Dispatcher   Web  Script  Run,me   2   6   Web  Script  Run,me   Spring  Applica,on  Context   Controllers   View   5   Model   4   3   Services  
  • 18.
    Surf Framework! Surf API •  root scoped objects! •  Available in script and templates! •  remote! •  sitedata! •  user! •  context!
  • 19.
    Developer tools! SpringSource ToolSuite •  Spring project and bean file wizards! •  Graphical Spring configuration editor! •  SpringSource tc Server deployment! •  Provides editors! •  Roo project wizard and shell! •  Surf specific extension!
  • 20.
    Developer tools! Roo •  SpringSource project! •  Rapid application development tool! •  Command line driven! •  SpringSurf Roo commands Add-on! •  Commands aid surf site construction!
  • 21.
    Developer tools! Create projectwith 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!
  • 22.
    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!
  • 23.
    Developer tools -Roo! Roo command extensions •  surf addon install! •  surf page list! •  surf addon list! •  surf report page! •  surf component create! •  surf site create! •  surf component list! •  surf template create! •  surf component property create! •  surf template instance create! •  surf component resource create! •  surf template instance list! •  surf content association create! •  surf template list! •  surf page association create! •  surf template region list! •  surf page association list! •  surf webscript list! •  surf page create!
  • 24.
    Using Transfer Service! Requirement •  Publish articles to web tier! •  Scheduled! •  Batched! •  Categories ʻflattenedʼ to properties! •  Handle failed transactions! •  User interface view queue! •  Provide reports!
  • 25.
    Transfer Service! What isit? •  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!
  • 26.
    Transfer customizations •  Bulk transfer action! •  Present transfer queue! •  A flattened aspect! •  A Scheduled service to batch transfer! •  Handled failures! •  Receiver code!
  • 27.
    Transfer Service! Changes in3.4 •  Replication service! •  Sync mode! •  Transferred and alien aspect! •  Read only option! Changes in 4 •  Transfer to file system!
  • 28.
    OpenCMIS! CMIS • Common data model! •  Services! •  Repository! •  Object! •  Discovery services! •  Versioning! •  ACL! •  SOAP and REST bindings!
  • 29.
    OpenCMIS! CheMIStry •  Implementation of CMIS specification! •  Client and server libraries in java! •  Single point of access! •  Cache objects! •  CMIS Workbench!
  • 30.
    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!
  • 31.
    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!
  • 32.
    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!
  • 33.