20100707ezrmllgigv1-101011131524-phpapp01

Download Report

Transcript 20100707ezrmllgigv1-101011131524-phpapp01

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
Chapter
Chapter
Chapter
Chapter
1
2
3
4
5
:
:
:
:
:
Introduction about eZ Publish
Custom & complex data modeling
Website factory & Cross-content publishing
API & External data integration (XML, SOAP, LDAP)
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)
GNU/GPL
Enterprise version
(eZ Systems support)
GNU/GPL ?
Community contributions
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
employees
2,7 M downloading
200 000+ installations
90+ business partners
36000+ 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
Website
Extranet
Mobile
Scripts / imports /
exports
Extensions
XML / SOAP /
JSON / LDAP /
ODF / …
eZ Teamroom
eZ Webin
CACHE
eZ Survey
100% TEMPLATES
eZ Flow
eZ Publish
DATABASE (MySql / PostGre / …)
Cluster option
API
FILESYSTEM
NFS Option
SEARCH
RMLL 2010
July 8th
Integrating eZ Publish to an
information system
Summary :
Chapter
Chapter
Chapter
Chapter
Chapter
1
2
3
4
5
:
:
:
:
:
Introduction about eZ Publish
Custom & complex data modeling
Website factory & Cross-content publishing
API & External data integration (XML, SOAP, LDAP)
Conclusion & questions
Integrating eZ Publish to an information system
Chapter 2 : Custom & complex data modeling
 Nodes / objects / classes / attibutes / datatypes
NODES
Folder 1
OBJECTS
CLASSES
ATTRIBUTES
DATATYPES
Article 1
Folder
Title
Textline
Multiline
Article 1
Article 2
Article 2
Article 3
Folder 2
Article 1
Article 3
XML (WYSIWYG)
Article
Article 4
Folder 1
Folder 2
Article 4
Date
Date
Short title
GMaps location
Long title
Object Relation
Author
Objects relation
Intro
Options
Text
eZ Flow
Localisation
…
Categories
Videos
Store the position &
hierarchical
information
Store the content
(versions / language
/ drafts…)
Store the content
structure
Integrating eZ Publish to an information system
Chapter 2 : Custom & complex data modeling
 How eZ Publish manage the dynamic content
storage ?
DATABASE (MySql / PostGre / …)
NO TABLES / FIELDS ADDS -> RECORDS ADDS
NO DIRECT FIELDS STORAGE –> CONTENTS
SERIALIZATION STORAGE
FILESYSTEM
Images / videos / files
storages (resized,
renamed, …)
SEARCH
Search index storage
(querying, facetting,
complex browsing…)
ROADMAP : NO SQL storage system, like Apache Solr / Apache CouchDB
 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
Chapter
Chapter
Chapter
Chapter
1
2
3
4
5
:
:
:
:
:
Introduction about eZ Publish
Custom & complex data modeling
Website factory & Cross-content publishing
API & External data integration (XML, SOAP, LDAP)
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
•
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 N
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 system
Chapter 3 : Website factory & cross-content publishing
Website 1
Siteaccess 1
Website 2
Siteaccess 2
Website 3
Website N
Siteaccess 3
Siteaccess N
•
1 eZ Installation
•
1 Database for all websites
•
1 var directory for all websites
•
1 siteaccess for each website
(1 subtree for each website)
VAR
Subtree 1/2/X
Subtree 1/2/Y
Subtree 1/2/Z
Subtree 1/2/N
Database
Server
Database
Fail over
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 :
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 system
Chapter 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 system
Chapter 3 : Website factory & cross-content publishing
Front-end exemple : Default design
All features are available
Default 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 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
Chapter
Chapter
Chapter
Chapter
1
2
3
4
5
:
:
:
:
:
Introduction about eZ Publish
Custom & complex data modeling
Website factory & Cross-content publishing
API & External data integration (XML, SOAP, LDAP)
Conclusion & questions
Integrating eZ Publish to an information system
Chapter 4 : API & Extrenal data integration
Method 1 : Content syndication
+++ : enable the content sharing, content
XML / SOAP / JSON / LDAP / ODF / …
relations, back-end content editing…
--- : need PHP expert development, and
CRON
optimization
Import (create nodes, objects, create search index,
refresh caches, …)
eZ Publish
DATABASE (MySql / PostGre / …)
ROADMAP : New RESTfull API
API
FILESYSTEM
SEARCH
Integrating eZ Publish to an information system
Chapter 4 : API & Extrenal data integration
Method 2 : Server side include (SSI)
+++ : easy & fast development. Could use
XML / SOAP / JSON / LDAP / ODF / …
the cache system, URL system
--- : disable the content sharing, content
CRON
relations, back-end content editing…
cURL HTTP loading / includind
eZ Publish
DATABASE (MySql / PostGre / …)
API
FILESYSTEM
SEARCH
Integrating eZ Publish to an information system
Chapter 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
DATABASE (MySql / PostGre / …)
API
FILESYSTEM
SEARCH
Integrating eZ Publish to an information system
Chapter 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 system
Chapter 4 : API & Extrenal data integration
XML
eZ Publish
XML
Web
Widget UWA
JSON
iPhone
Newsletter
Other XML
…
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 & Solr
Chapter 1 : Introduction about eZ Find
 eZ find features overview
Relevancy displaying, using
percent values (100%, 99%, …)
Text highlighting
http://www.ird.fr
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
Custom filtering, like a price
range
Content browsing (a kind of
search !)
Cumulative
faceting search
and filtering
http://www.tourismebretagne.com/
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
Add content
Update content
Delete content
Move content
….
Templating
Querying, faceting, …
HTTP REST
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 & Solr
Chapter 2 : Content storage VS Index storage
eZ Publish
DATATYPES
SOLR FIELD TYPE
Textline
String
Multiline
Text
XML (WYSIWYG)
Float
Date
GMaps location
Object Relation
Transform & create Solr fields
for searching, sorting,
facetting…
…
+
Objects relation
Filters :
Options
Lowercase
eZ Flow
Tokenize
…
Stopwords
Etc.
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 fields
for 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
Fieldname
http://localhost:8983/solr/admin/
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)
attr_date_1
« Event » content class :
Dates (ezmatrix ? Custom datatype )
Titre (textline)
attr_date_2
PHP Class
attr_date_3
…
Intro (XML)
…
Front_end filtering
http://www.tourismebretagne.com
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 & Solr
Chapter 3 : eZ Find, first step to the next generation CMS ?
 eZ Find : first step to the next generation CMS ?
Advanced content Indexing
Dynamic content storage
FrameWork API
(indexing, querying, faceting,
browsing)
FileSystem
COULD BE BETTER (no SQL)
Read the eZ Find
roadmap
Custom API / Zeta
COULD BE BETTER
Hooks / workflow /
Restfull API
RMLL 2010
July 8th
Conclusion & Questions
FR : http://www.gandbox.fr
EN : http://share.ez.no