integrating ez publish to an information system gilles guirand – technical director at kaliop
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
Integrating eZ Publish to an information system
Gilles Guirand – Technical Director at Kaliop
http://www.gandbox.fr
RMLL 2010July 8th
Integrating eZ Publish to an information system
RMLL 2010July 8th
Summary :
Chapter 1 : Introduction about eZ PublishChapter 2 : Custom & complex data modelingChapter 3 : Website factory & Cross-content publishingChapter 4 : API & External data integration (XML, SOAP, LDAP)Chapter 5 : Conclusion & questions
Integrating eZ Publish to an information system
Chapter 1 : Introduction about eZ Publish
An Open Source (GNU/GPL) Content Management System : the next business model
Community version(Full featured, no support)
Enterprise version(eZ Systems support)
Community contributions
GNU/GPL
GNU/GPL ?
Integrating eZ Publish to an information system
Chapter 1 : Introduction about eZ Publish
eZ Systems / eZ Publish & numbers
Since 1999 (10 Years+) 70+ eZ Systems employees2,7 M downloading200 000+ installations90+ business partners36000+ community members
Integrating eZ Publish to an information system
Chapter 1 : Introduction about eZ Publish
Integrating eZ Publish to an information system
Chapter 1 : Introduction about eZ Publish
Integrating eZ Publish to an information system
Chapter 1 : Introduction about eZ Publish
And more…
Integrating eZ Publish to an information system
Chapter 1 : Introduction about eZ Publish
How eZ Publish works
eZ Publish
DATABASE (MySql / PostGre / …) FILESYSTEM
Website Extranet Mobile
SEARCH
Extensions
eZ Flow
eZ Survey
eZ Webin
eZ Teamroom
API
XML / SOAP / JSON / LDAP /
ODF / …
100% TEMPLATES
CACHE
Scripts / imports / exports
Cluster option NFS Option
Integrating eZ Publish to an information system
RMLL 2010July 8th
Summary :
Chapter 1 : Introduction about eZ PublishChapter 2 : Custom & complex data modelingChapter 3 : Website factory & Cross-content publishingChapter 4 : API & External data integration (XML, SOAP, LDAP)Chapter 5 : Conclusion & questions
Integrating eZ Publish to an information system
Chapter 2 : Custom & complex data modeling
Nodes / objects / classes / attibutes / datatypes
NODES OBJECTS CLASSES ATTRIBUTES DATATYPES
Article 1
Article 2
Article 3
Article 4
Article 1
Article 2
Article 3
Article 4
Folder 1
Article 1
Folder 2
Store the position & hierarchical
information
Store the content (versions / language / drafts…)
Folder 1
Folder 2
Store the content structure
Title
Date
Short title
Long title
Author
Intro
Text
Localisation
Categories
Videos
Folder
Article
Textline
Multiline
XML (WYSIWYG)
Date
GMaps location
Object Relation
Objects relation
Options
eZ Flow
…
Integrating eZ Publish to an information system
Chapter 2 : Custom & complex data modeling
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)
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
Integrating eZ Publish to an information system
RMLL 2010July 8th
Summary :
Chapter 1 : Introduction about eZ PublishChapter 2 : Custom & complex data modelingChapter 3 : Website factory & Cross-content publishingChapter 4 : API & External data integration (XML, SOAP, LDAP)Chapter 5 : Conclusion & questions
Integrating eZ Publish to an information system
Chapter 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 system
Chapter 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 system
Chapter 3 : Website factory & cross-content publishing
Website 1 Website 2 Website 3 Website N
Database 1
Siteaccess 1
Database 2
Database 3
Database N
Database Server
Siteaccess 2
Siteaccess 3
Siteaccess N
VAR 1 VAR 2 VAR 3 VAR N
• 1 eZ Installation
• 1 Database for each website
• 1 var directory for each website
• 1 siteaccess for each website (1 var & 1 database settings)
Integrating eZ Publish to an information system
Chapter 3 : Website factory & cross-content publishing
Website 1 Website 2 Website 3 Website N
Database
Siteaccess 1
Database Server
Siteaccess 2
Siteaccess 3
Siteaccess N
VAR
• 1 eZ Installation
• 1 Database for all websites
• 1 var directory for all websites
• 1 siteaccess for each website (1 subtree for each website)
Fail over
Subtree 1/2/X
Subtree 1/2/Y
Subtree 1/2/Z
Subtree 1/2/N
Integrating eZ Publish to an information system
Chapter 3 : Website factory & cross-content publishing
How to make a choice between mono and multi database ?
Questions Mono database Multi database
Number of Website to generate ?
-100 +500
SPOF sequel Low High
Content, media, users & roles sharing proportion
+30% -10%
Integrating eZ Publish to an information system
Chapter 3 : Website factory & cross-content publishing
List existing Websites and create a new one :
Edit an existing Web site configuration
Create a new Website from content model 1
Websites management
Create a new Website from content model 2
… model N
Integrating eZ Publish to an information system
Chapter 3 : Website factory & cross-content publishing
Select your main language
Select your CSS StyleSheet
Customization (items number per page, columns, drop-down menu, …)
Contact email
Google maps key
Create a new Website :
Integrating eZ Publish to an information system
Chapter 3 : Website factory & cross-content publishing
Front-end exemple : Default designAll features are availableDefault CSS StyleSheet
Integrating eZ Publish to an information system
Chapter 3 : Website factory & cross-content publishing
Front-end example : http://jardinsenscene-picardie.com/
Custom CSS StyleSheetCustom slideshow, from eZ Publish media content (JavaScript)
Search engine
« Block » management
Google maps
Integrating eZ Publish to an information system
RMLL 2010July 8th
Summary :
Chapter 1 : Introduction about eZ PublishChapter 2 : Custom & complex data modelingChapter 3 : Website factory & Cross-content publishingChapter 4 : API & External data integration (XML, SOAP, LDAP)Chapter 5 : Conclusion & questions
Integrating eZ Publish to an information system
Chapter 4 : API & Extrenal data integration
Method 1 : Content syndication
eZ Publish
DATABASE (MySql / PostGre / …) FILESYSTEM SEARCH
API
XML / SOAP / JSON / LDAP / ODF / …
CRON
Import (create nodes, objects, create search index, refresh caches, …)
ROADMAP : New RESTfull API
+++ : enable the content sharing, content relations, back-end content editing…--- : need PHP expert development, and optimization
Integrating eZ Publish to an information system
Chapter 4 : API & Extrenal data integration
Method 2 : Server side include (SSI)
eZ Publish
DATABASE (MySql / PostGre / …) FILESYSTEM SEARCH
API
XML / SOAP / JSON / LDAP / ODF / …
CRON
cURL HTTP loading / includind
+++ : easy & fast development. Could use the cache system, URL system--- : disable the content sharing, content relations, back-end content editing…
Integrating eZ Publish to an information system
Chapter 4 : API & Extrenal data integration
Method 3 : Edge side include (ESI)
eZ Publish
DATABASE (MySql / PostGre / …) FILESYSTEM SEARCH
API
+++ : easy & fast development. Could use the cache system, URL system--- : disable the content sharing, content relations, back-end content editing…
HTML + ESI
HTML Parts
HTML Final
http://exemple.com/1.html
Case studie : http://cofinoga-shop.fr
Integrating eZ Publish to an information system Chapter 4 : API & Extrenal data integration
RMLL 2010July 8th
Conclusion & Questions
FR : http://www.gandbox.fr EN : http://share.ez.no
Integrating eZ Publish to an information system
Chapter 4 : API & Extrenal data integration
Web
eZ Publish
Widget UWANewsletterOther XML
…
XML
iPhone
XML JSON
Working with eZ Find and SolR
Gilles Guirand – Technical Director at Kaliop
http://www.gandbox.fr
RMLL 2010July 8th
Working with eZ Find and SolR
RMLL 2010July 8th
Summary :
Chapter 1 : Introduction about eZ FindChapter 2 : Content storage versus index storageChapter 3 : eZ Find, first step to the next generation CMS ?
Working with eZ Find & Solr
Chapter 1 : Introduction about eZ Find
eZ find features overview
http://www.ird.fr
Relevancy displaying, using percent values (100%, 99%, …)
Text highlighting
Working with eZ Find & Solr
Chapter 1 : Introduction about eZ Find
eZ find features overview
Custom templating, like custom HTML displaying, google maps displaying, …
http://www.weekend-esprit-de-picardie.com/
Working with eZ Find & Solr
Chapter 1 : Introduction about eZ Find
eZ find features overview
http://www.tourismebretagne.com/
Custom filtering, like a price range
Cumulative faceting search and filtering
Content browsing (a kind of search !)
Working with eZ Find & Solr
Chapter 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 & Solr
Chapter 1 : Introduction about eZ Find
How eZ Find work
eZ Publish
HTTP REST
Add contentUpdate contentDelete contentMove content
….
Querying, faceting, …
Templating
Working with eZ Find and SolR
RMLL 2010July 8th
Summary :
Chapter 1 : Introduction about eZ FindChapter 2 : Content storage versus index storageChapter 3 : eZ Find, first step to the next generation CMS ?
Working with eZ Find & Solr
Chapter 2 : Content storage VS Index storage
DATATYPES
Textline
Multiline
XML (WYSIWYG)
Date
GMaps location
Object Relation
Objects relation
Options
eZ Flow
…
eZ Publis
h SOLR FIELD TYPE
String
Text
Float
…
Filters :
Lowercase
Tokenize
Stopwords
Etc.
+Transform & create Solr fields for searching, sorting, facetting…
Working with eZ Find & Solr
Chapter 2 : Content storage VS Index storage
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 fieldsfor instance), but also defines the so-called dynamic fields :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.
Working with eZ Find & Solr
Chapter 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 & Solr
Chapter 2 : Content storage VS Index storage
Check what Solr actually indexed
http://localhost:8983/solr/admin/
Fieldname
Value
Working with eZ Find & Solr
Chapter 2 : Content storage VS Index storage
Real life exemple
Filtering events using a date range, (multi dates event… each month event)
« Event » content class :Dates (ezmatrix ? Custom datatype )
Titre (textline)
Intro (XML)
…
PHP Class
attr_date_1
attr_date_2
attr_date_3
…
Front_end filtering
http://www.tourismebretagne.com
Working with eZ Find and SolR
RMLL 2010July 8th
Summary :
Chapter 1 : Introduction about eZ FindChapter 2 : Content storage versus index storageChapter 3 : eZ Find, first step to the next generation CMS ?
Working with eZ Find & Solr Chapter 3 : eZ Find, first step to the next generation CMS ?
eZ Find : first step to the next generation CMS ?
Advanced content Indexing
(indexing, querying, faceting, browsing)
Dynamic content storage
COULD BE BETTER (no SQL)
FileSystem
FrameWork API
COULD BE BETTER
Custom API / Zeta
Hooks / workflow /Restfull API
Read the eZ Find roadmap
RMLL 2010July 8th
Conclusion & Questions
FR : http://www.gandbox.fr EN : http://share.ez.no