Top Banner
Integrating eZ Publish to an information system Gilles Guirand – Technical Director at Kaliop http://www.gandbox.fr RMLL 2010 July 8th
44
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 20100707 e z_rmll_gig_v1

Integrating eZ Publish to an information system

Gilles Guirand – Technical Director at Kaliophttp://www.gandbox.fr

RMLL 2010July 8th

Page 2: 20100707 e z_rmll_gig_v1

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

Page 3: 20100707 e z_rmll_gig_v1

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 ?

Page 4: 20100707 e z_rmll_gig_v1

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

Page 5: 20100707 e z_rmll_gig_v1

Integrating eZ Publish to an information system

Chapter 1 : Introduction about eZ Publish

Page 6: 20100707 e z_rmll_gig_v1

Integrating eZ Publish to an information system

Chapter 1 : Introduction about eZ Publish

Page 7: 20100707 e z_rmll_gig_v1

Integrating eZ Publish to an information system

Chapter 1 : Introduction about eZ Publish

And more…

Page 8: 20100707 e z_rmll_gig_v1

Integrating eZ Publish to an information system

Chapter 1 : Introduction about eZ Publish

How eZ Publish works

eZ Publish

DATABASE (MySql / PostGre / …) FILESYSTEM

W e b s it e E x t r a n e t M o b ile

SEARCH

Extensions

eZ Flow

eZ Survey

eZ Webin

eZ Teamroom

API

XML / SOAP / JSON / LDAP /

ODF / …

100% TEMPLATES

CACHE

/ S c r ip t s / im p o r t s

e x p o r t s

C lu s t e r o p t io n N F S O p t io n

Page 9: 20100707 e z_rmll_gig_v1

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

Page 10: 20100707 e z_rmll_gig_v1

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

Page 11: 20100707 e z_rmll_gig_v1

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

Page 12: 20100707 e z_rmll_gig_v1

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

Page 13: 20100707 e z_rmll_gig_v1

Integrating eZ Publish to an information system

Chapter 3 : Website factory & cross-content publishing

- ?W h y t o d e p lo y a m u lt i s it e s y s t e m

• C o n t e n t s h a r in g (content, medias, users, cross-publishing)

• F e a t u r e s f a c t o r iz a t io n (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, …

• C o s t o p t m iz a t io n

• Implicit features factorization result

• main motivation ?

Page 14: 20100707 e z_rmll_gig_v1

Integrating eZ Publish to an information system

Chapter 3 : Website factory & cross-content publishing

?F o r w h a t k in d o f p r o je c t s

• Ve r t ic a l N e t w o r k o r g a n iz a t io n • International, national, local Websites

• H o r iz o n t a l N e t w o r k o r g a n iz a t io n

• Thematics Websites

• Temporary publications (events)

• P r o d u c t b u s in e s s m o d e l (white labelling)• Website generator – Website factory (contents, blogs, forums, …)

• Low costs Websites resseling : « ready to use »

Page 15: 20100707 e z_rmll_gig_v1

Integrating eZ Publish to an information system

Chapter 3 : Website factory & cross-content publishing

1We b s it e 2We b s it e 3We b s it e W e b s it e N

D a t a b a s 1e

S it e a c c e 1s s

D a t a b a s 2e

D a t a b a s 3e

D a t a b a s e N

D a t a b a s e

S e r v e r

S it e a c c e 2s s

S it e a c c e 3s s

S it e a c c e s s N

1VA R 2VA R 3VA R VA R N

• 1 e Z In s t a lla t io n

• 1 D a t a b a s e f o r e a c hw e b s it e

• 1 v a r d ir e c t o r y f o r e a c h w e b s it e

• 1 s it e a c c e s s f o r (1 e a c h w e b s it e v a r

1 & d a t a b a s e)s e t t in g s

Page 16: 20100707 e z_rmll_gig_v1

Integrating eZ Publish to an information system

Chapter 3 : Website factory & cross-content publishing

1We b s it e 2We b s it e 3We b s it e W e b s it e N

D a t a b a se

S it e a c c e 1s s

D a t a b a s e

S e r v e r

S it e a c c e 2s s

S it e a c c e 3s s

S it e a c c e s s N

VAR

• 1 e Z In s t a lla t io n

• 1 D a t a b a s e f o r a l lw e b s it e s

• 1 v a r d ir e c t o r y f o r a llw e b s it e s

• 1 s it e a c c e s s f o r (1 e a c h w e b s it e

s u b t r e e f o r e a c h)w e b s it e

F a il o v e r

Subtree 1 /2 /X

Subtree 1 /2 /Y

Subtree 1 /2 /Z

Subtree 1 /2 /N

Page 17: 20100707 e z_rmll_gig_v1

Integrating eZ Publish to an information system

Chapter 3 : Website factory & cross-content publishing

H o w t o m a k e a c h o ic e b e t w e e n m o n o a n d m u lt i ?d a t a b a s e

HighLowSPOF sequel

-10%+30%Content, media, users & roles sharing proportion

+500-100Number of Website to generate ?

Multi databaseMono databaseQuestions

Page 18: 20100707 e z_rmll_gig_v1

Integrating eZ Publish to an information system

Chapter 3 : Website factory & cross-content publishing

:Lis t e x is t in g We b s it e s a n d c r e a t e a n e w o n e

E d it a n e x is t in g W e b s it e

c o n f ig u r a t io n

C r e a t e a n e w W e b s it e f r o m 1c o n t e n t m o d e l

W e b s it e sm a n a g e m e n t

C r e a t e a n e w W e b s it e f r o m 2c o n t e n t m o d e l

… m o d e lN

Page 19: 20100707 e z_rmll_gig_v1

Integrating eZ Publish to an information system

Chapter 3 : Website factory & cross-content publishing

S e le c t y o u r m a inla n g u a g e

S e le c t y o u r C S SS t y le S h e e t

( C u s t o m iz a t io n it e m s , , n u m b e r p e r p a g e c o lu m n s

- , …)d r o p d o w n m e n u

C o n t a c t e m a il

G o o g le m a p s k e y

:C r e a t e a n e w We b s it e

Page 20: 20100707 e z_rmll_gig_v1

Integrating eZ Publish to an information system

Chapter 3 : Website factory & cross-content publishing

- : F r o n t e n d e x e m p le D e f a u lt d e s ig n A ll f e a t u r e s a r e a v a ila b le

D e f a u lt C S S S t y le S h e e t

Page 21: 20100707 e z_rmll_gig_v1

Integrating eZ Publish to an information system

Chapter 3 : Website factory & cross-content publishing

- : F r o n t e n d e x a m p le :// -h t t p ja r d in s e n s c e n e. /p ic a r d ie c o m C u s t o m C S S

S t y le S h e e t C u s t o m

, s l id e s h o w f r o m e Z P u b lis h m e d ia

c o n t e n t( )J a v a S c r ip t

S e a r c h e n g in e

« B lo c k »m a n a g e m e n t

G o o g le m a p s

Page 22: 20100707 e z_rmll_gig_v1

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

Page 23: 20100707 e z_rmll_gig_v1

Integrating eZ Publish to an information system

Chapter 4 : API & Extrenal data integration

1 : M e t h o d C o n t e n t s y n d ic a t io n

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

Page 24: 20100707 e z_rmll_gig_v1

Integrating eZ Publish to an information system

Chapter 4 : API & Extrenal data integration

2 : ( )M e t h o d S e r v e r s id e in c lu d e S S I

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…

Page 25: 20100707 e z_rmll_gig_v1

Integrating eZ Publish to an information system

Chapter 4 : API & Extrenal data integration

3 : ( )M e t h o d E d g e s id e in c lu d e E S I

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

Page 26: 20100707 e z_rmll_gig_v1

: C a s e s t u d ie :// - .h t t p c o f in o g a s h o p f r

Integrating eZ Publish to an information system Chapter 4 : API & Extrenal data integration

Page 27: 20100707 e z_rmll_gig_v1

RMLL 2010July 8th

Conclusion & Questions

FR : http://www.gandbox.fr EN : http://share.ez.no

Page 28: 20100707 e z_rmll_gig_v1

Integrating eZ Publish to an information system

Chapter 4 : API & Extrenal data integration

Web

eZ Publish

Widget UWA NewsletterOther XML

XML

iPhone

XML JSON

Page 29: 20100707 e z_rmll_gig_v1

Working with eZ Find and SolR

Gilles Guirand – Technical Director at Kaliophttp://www.gandbox.fr

RMLL 2010July 8th

Page 30: 20100707 e z_rmll_gig_v1

Wo r k in g w it h e Z F in d a n dS o lR

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 ?

Page 31: 20100707 e z_rmll_gig_v1

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

Page 32: 20100707 e z_rmll_gig_v1

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/

Page 33: 20100707 e z_rmll_gig_v1

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 !)

Page 34: 20100707 e z_rmll_gig_v1

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)

Page 35: 20100707 e z_rmll_gig_v1

Working with eZ Find & Solr

Chapter 1 : Introduction about eZ Find

How eZ Find work

eZ Publish

HTTP REST

Add contentUpdate contentDelete content

Move content….

Querying, faceting, …

Templating

Page 36: 20100707 e z_rmll_gig_v1

Wo r k in g w it h e Z F in d a n dS o lR

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 ?

Page 37: 20100707 e z_rmll_gig_v1

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 Publish

SOLR FIELD TYPE

String

Text

Float

Filters :

Lowercase

Tokenize

Stopwords

Etc.

+Transform & create Solr fields for searching, sorting, facetting…

Page 38: 20100707 e z_rmll_gig_v1

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.

Page 39: 20100707 e z_rmll_gig_v1

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.

Page 40: 20100707 e z_rmll_gig_v1

Working with eZ Find & Solr

Chapter 2 : Content storage VS Index storage

Check what Solr actually indexed

http://localhost:8983/solr/admin/

Fieldname

Value

Page 41: 20100707 e z_rmll_gig_v1

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

Page 42: 20100707 e z_rmll_gig_v1

Wo r k in g w it h e Z F in d a n dS o lR

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 ?

Page 43: 20100707 e z_rmll_gig_v1

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

Page 44: 20100707 e z_rmll_gig_v1

RMLL 2010July 8th

Conclusion & Questions

FR : http://www.gandbox.fr EN : http://share.ez.no