440 likes | 547 Views
RMLL 2010 July 8th. Integrating eZ Publish to an information system Gilles Guirand – Technical Director at Kaliop http://www.gandbox.fr. RMLL 2010 July 8th. Integrating eZ Publish to an information system. Summary : Chapter 1 : Introduction about eZ Publish
E N D
RMLL 2010 July 8th Integrating eZ Publish to an information system Gilles Guirand – Technical Director at Kaliop http://www.gandbox.fr
RMLL 2010 July 8th Integrating eZ Publish to an information system Summary : Chapter 1 : Introduction about eZ Publish Chapter 2 : Custom & complex data modeling Chapter 3 : Website factory & Cross-content publishing Chapter 4 : API & External data integration (XML, SOAP, LDAP)Chapter 5 : Conclusion & questions
Integrating eZ Publish to an information systemChapter 1 : Introduction about eZ Publish Community version(Full featured, no support) Community contributions GNU/GPL Enterprise version(eZ Systems support) GNU/GPL ? An Open Source (GNU/GPL) Content Management System : the next business model
Integrating eZ Publish to an information systemChapter 1 : Introduction about eZ Publish • Since 1999 (10 Years+) • 70+ eZ Systems employees • 2,7 M downloading • 200 000+ installations • 90+ business partners • 36000+ community members eZ Systems / eZ Publish & numbers
Integrating eZ Publish to an information systemChapter 1 : Introduction about eZ Publish
Integrating eZ Publish to an information systemChapter 1 : Introduction about eZ Publish
Integrating eZ Publish to an information systemChapter 1 : Introduction about eZ Publish • And more…
Integrating eZ Publish to an information systemChapter 1 : Introduction about eZ Publish Scripts / imports / exports Extensions Extranet Mobile XML / SOAP / JSON / LDAP / ODF / … eZ Teamroom Website eZ Webin CACHE eZ Survey 100% TEMPLATES eZ Flow eZ Publish API DATABASE (MySql / PostGre / …) FILESYSTEM SEARCH Cluster option NFS Option How eZ Publish works
RMLL 2010 July 8th Integrating eZ Publish to an information system Summary : Chapter 1 : Introduction about eZ Publish Chapter 2 :Custom & complex data modeling Chapter 3 : Website factory & Cross-content publishing Chapter 4 : API & External data integration (XML, SOAP, LDAP)Chapter 5 : Conclusion & questions
Integrating eZ Publish to an information systemChapter 2 : Custom & complex data modeling NODES OBJECTS CLASSES ATTRIBUTES DATATYPES Folder 1 Article 1 Folder Title Textline Multiline XML (WYSIWYG) Date GMaps location Object Relation Objects relation Options eZ Flow … Article 2 Article 1 Article Date Short title Long title Author Intro Text Localisation Categories Videos Article 2 Article 3 Article 4 Folder 2 Article 1 Folder 1 Folder 2 Article 3 Article 4 Store the position & hierarchical information Store the content (versions / language / drafts…) Store the content structure Nodes / objects / classes / attibutes / datatypes
Integrating eZ Publish to an information systemChapter 2 : Custom & complex data modeling DATABASE (MySql / PostGre / …) FILESYSTEM SEARCH NO TABLES / FIELDS ADDS -> RECORDS ADDS NO DIRECT FIELDS STORAGE –> CONTENTS SERIALIZATION STORAGE Images / videos / files storages (resized, renamed, …) Search index storage (querying, facetting, complex browsing…) ROADMAP : NO SQL storage system, like Apache Solr / Apache CouchDB • How eZ Publish manage the dynamic content storage ? • Drupal CCK comparison ? • +++eZ Publish upgrading, complex datatypes, no modules needed, static SQL modeling • --- Dramatic SQL queries (cache needed)
RMLL 2010 July 8th Integrating eZ Publish to an information system Summary : Chapter 1 : Introduction about eZ Publish Chapter 2 : Custom & complex data modeling Chapter 3 :Website factory & Cross-content publishing Chapter 4 : API & External data integration (XML, SOAP, LDAP)Chapter 5 : Conclusion & questions
Integrating eZ Publish to an information systemChapter 3 : Website factory & cross-content publishing • Why to deploy a multi-site system ? • Content sharing (content, medias, users, cross-publishing) • Features factorization (1 development for N websites) • Content features : News, articles, folders, pictures, videos, … • Community features : Comments, Blogs, Forums, Newsletters, … • Information system features : LDAP, SSO, Web Services, Databases, … • Cost optmization • Implicit features factorization result • main motivation ?
Integrating eZ Publish to an information systemChapter 3 : Website factory & cross-content publishing • For what kind of projects ? • Vertical Network organization • International, national, local Websites • Horizontal Network organization • Thematics Websites • Temporary publications (events) • Product business model (white labelling) • Website generator – Website factory (contents, blogs, forums, …) • Low costs Websites resseling : « ready to use »
Integrating eZ Publish to an information systemChapter 3 : Website factory & cross-content publishing • 1 eZ Installation • 1 Database for each website • 1 var directory for each website • 1 siteaccess for each website (1 var & 1 database settings) Website 3 Website N Website 1 Website 2 Siteaccess 1 Siteaccess 2 Siteaccess 3 Siteaccess N VAR 1 VAR 2 VAR 3 VAR N Database Server Database 1 Database 2 Database 3 Database N
Integrating eZ Publish to an information systemChapter 3 : Website factory & cross-content publishing • 1 eZ Installation • 1 Database for all websites • 1 var directory for all websites • 1 siteaccess for each website (1 subtree for each website) Website 3 Website N Website 1 Website 2 Siteaccess 1 Siteaccess 2 Siteaccess 3 Siteaccess N VAR Subtree 1/2/X Subtree 1/2/Y Subtree 1/2/Z Subtree 1/2/N Database Server Fail over Database
Integrating eZ Publish to an information systemChapter 3 : Website factory & cross-content publishing How to make a choice between mono and multi database ?
Integrating eZ Publish to an information systemChapter 3 : Website factory & cross-content publishing List existing Websites and create a new one : Websites management … model N Edit an existing Web site configuration Create a new Website from content model 1 Create a new Website from content model 2
Integrating eZ Publish to an information systemChapter 3 : Website factory & cross-content publishing Create a new Website : Select your main language Select your CSS StyleSheet Customization (items number per page, columns, drop-down menu, …) Contact email Google maps key
Integrating eZ Publish to an information systemChapter 3 : Website factory & cross-content publishing All features are availableDefault CSS StyleSheet Front-end exemple : Default design
Integrating eZ Publish to an information systemChapter 3 : Website factory & cross-content publishing Front-end example : http://jardinsenscene-picardie.com/ Custom CSS StyleSheet Custom slideshow, from eZ Publish media content (JavaScript) Search engine « Block » management Google maps
RMLL 2010 July 8th Integrating eZ Publish to an information system Summary : Chapter 1 : Introduction about eZ Publish Chapter 2 : Custom & complex data modeling Chapter 3 : Website factory & Cross-content publishing Chapter 4 :API & External data integration (XML, SOAP, LDAP)Chapter 5 : Conclusion & questions
Integrating eZ Publish to an information systemChapter 4 : API & Extrenal data integration Method 1 : Content syndication XML / SOAP / JSON / LDAP / ODF / … +++ :enable the content sharing, content relations, back-end content editing… ---:need PHP expert development, and optimization CRON Import (create nodes, objects, create search index, refresh caches, …) eZ Publish API DATABASE (MySql / PostGre / …) FILESYSTEM SEARCH ROADMAP : New RESTfull API
Integrating eZ Publish to an information systemChapter 4 : API & Extrenal data integration Method 2 : Server side include (SSI) XML / SOAP / JSON / LDAP / ODF / … +++ :easy & fast development. Could use the cache system, URL system ---:disable the content sharing, content relations, back-end content editing… CRON cURL HTTP loading / includind eZ Publish API DATABASE (MySql / PostGre / …) FILESYSTEM SEARCH
Integrating eZ Publish to an information systemChapter 4 : API & Extrenal data integration Method 3 : Edge side include (ESI) +++ :easy & fast development. Could use the cache system, URL system HTML Final ---:disable the content sharing, content relations, back-end content editing… HTML Parts http://exemple.com/1.html HTML + ESI eZ Publish API DATABASE (MySql / PostGre / …) FILESYSTEM SEARCH
Integrating eZ Publish to an information systemChapter 4 : API & Extrenal data integration Case studie : http://cofinoga-shop.fr
RMLL 2010 July 8th Conclusion & Questions FR : http://www.gandbox.fr EN : http://share.ez.no
Integrating eZ Publish to an information systemChapter 4 : API & Extrenal data integration XML eZ Publish XML JSON Widget UWA iPhone Newsletter Other XML … Web
RMLL 2010 July 8th Working with eZ Find and SolR Gilles Guirand – Technical Director at Kaliop http://www.gandbox.fr
RMLL 2010 July 8th Working with eZ Find and SolR Summary : Chapter 1 :Introduction about eZ Find Chapter 2 : Content storage versus index storage Chapter 3 : eZ Find, first step to the next generation CMS ?
Working with eZ Find & SolrChapter 1 : Introduction about eZ Find Relevancy displaying, using percent values (100%, 99%, …) Text highlighting http://www.ird.fr eZ find features overview
Working with eZ Find & SolrChapter 1 : Introduction about eZ Find Custom templating, like custom HTML displaying, google maps displaying, … http://www.weekend-esprit-de-picardie.com/ eZ find features overview
Working with eZ Find & SolrChapter 1 : Introduction about eZ Find Custom filtering, like a price range Content browsing (a kind of search !) Cumulative faceting search and filtering http://www.tourismebretagne.com/ eZ find features overview
Working with eZ Find & SolrChapter 1 : Introduction about eZ Find • eZ find features overview • Relevency • Multi-site indexing • External content indexing (Nutch) • Multi format document indexing (Tika) • Stopwords by language (multi Sole core) • Synonyms by language (multi Solr core) • Heuristic syntax approximation • Complex browsing, facetting, filtering (Lucene)
Working with eZ Find & SolrChapter 1 : Introduction about eZ Find eZ Publish Add contentUpdate contentDelete contentMove content…. Templating Querying, faceting, … HTTP REST How eZ Find work
RMLL 2010 July 8th Working with eZ Find and SolR Summary : Chapter 1 : Introduction about eZ Find Chapter 2 :Content storage versus index storage Chapter 3 : eZ Find, first step to the next generation CMS ?
Working with eZ Find & SolrChapter 2 : Content storage VS Index storage eZ Publish DATATYPES SOLR FIELD TYPE Textline Multiline XML (WYSIWYG) Date GMaps location Object Relation Objects relation Options eZ Flow … String Text Float … Transform & create Solr fields for searching, sorting, facetting… + Filters : Lowercase Tokenize Stopwords Etc.
Working with eZ Find & SolrChapter 2 : Content storage VS Index storage • Solr relies on several configuration files, one of them is used to tell him that : • - '_s' at the end of a field name means string, • - '_t' for text, etc. Field type management on the Solr side Open and read the file : /ezfind/java/solr/conf/schema.xml. This configuration file contains the hard-coded definition for a certain amount of fields (metadata fields for instance), but also defines the so-called dynamic fields :
Working with eZ Find & SolrChapter 2 : Content storage VS Index storage • Field type management on the Solr side • This files can also be used to define more complex behaviours for given eZ Publish datatypes, like the keywords datatype (ezkeyword). Two different field types definitions can be found • 'keyword' for case-sensitive cases • 'lckeyword' for lower-case cases • This example, keywords fields management, teaches a lot about Solr configuration. One can note the way Solr filters are called, how coma-based word separations are handled (PatternTokenizerFactory), case-sensitivity management (LowerCaseFilterFactory), duplicate removal (RemoveDuplicatesTokenFilterFactory), etc.
Working with eZ Find & SolrChapter 2 : Content storage VS Index storage Fieldname http://localhost:8983/solr/admin/ Value Check what Solr actually indexed
Working with eZ Find & SolrChapter 2 : Content storage VS Index storage attr_date_1 attr_date_2 attr_date_3 … « Event » content class : Dates (ezmatrix ? Custom datatype ) Titre (textline) Intro (XML) … PHP Class Front_end filtering http://www.tourismebretagne.com Real life exemple Filtering events using a date range, (multi dates event… each month event)
RMLL 2010 July 8th Working with eZ Find and SolR Summary : Chapter 1 : Introduction about eZ Find Chapter 2 : Content storage versus index storage Chapter 3 :eZ Find, first step to the next generation CMS ?
Working with eZ Find & SolrChapter 3 : eZ Find, first step to the next generation CMS ? Advanced content Indexing(indexing, querying, faceting, browsing) Dynamic content storage FrameWork API Custom API / Zeta FileSystem COULD BE BETTER (no SQL) COULD BE BETTER Read the eZ Find roadmap Hooks / workflow /Restfull API • eZ Find : first step to the next generation CMS ?
RMLL 2010 July 8th Conclusion & Questions FR : http://www.gandbox.fr EN : http://share.ez.no