20100707 e z_rmll_gig_v1

44
Integrating eZ Publish to an information system Gilles Guirand – Technical Director at Kaliop http://www.gandbox.fr RMLL 2010 July 8th

Upload: gilles-guirand

Post on 19-Jul-2015

799 views

Category:

Technology


1 download

TRANSCRIPT

Integrating eZ Publish to an information system

Gilles Guirand – Technical Director at Kaliophttp://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

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

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

- ?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 ?

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 »

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

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

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

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

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

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

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

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

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

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…

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

: 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

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 UWA NewsletterOther XML

XML

iPhone

XML JSON

Working with eZ Find and SolR

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

RMLL 2010July 8th

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 ?

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 content

Move content….

Querying, faceting, …

Templating

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 ?

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…

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

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 ?

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