SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
October 2, 2010                                          1
Clemens Kalb, Lienhart Woitok, T3CON10   media.netlogix.de
October 2, 2010                                          2
Clemens Kalb, Lienhart Woitok, T3CON10   media.netlogix.de
IBC SOLAR: Selling                  857 million turnover
     everything from a                   in 2009
     solar module to
                                         4-figure number of
     complete solar plants
                                         products x product
     Working with retail                 variants x retail
     partners in Germany                 partners
     and throughout the
     world


October 2, 2010                                                         3
Clemens Kalb, Lienhart Woitok, T3CON10                  media.netlogix.de
„Build yet another Shop
                       System for TYPO3 – are you
                                 insane?“
                          All of us & the customer (before the start of the project)




October 2, 2010                                                                                        4
Clemens Kalb, Lienhart Woitok, T3CON10                                                 media.netlogix.de
Previous system based on Commerce
        • scalability issues

     tt_products? Hell no! ;-)
     Specialized functionality lacking in all systems
     Magento looked fairly nice – but not integrated in
     TYPO3



October 2, 2010                                                  5
Clemens Kalb, Lienhart Woitok, T3CON10           media.netlogix.de
October 2, 2010                                          6
Clemens Kalb, Lienhart Woitok, T3CON10   media.netlogix.de
October 2, 2010                                          7
Clemens Kalb, Lienhart Woitok, T3CON10   media.netlogix.de
October 2, 2010                                          8
Clemens Kalb, Lienhart Woitok, T3CON10   media.netlogix.de
October 2, 2010                                          9
Clemens Kalb, Lienhart Woitok, T3CON10   media.netlogix.de
All data comes from the company‘s ERP system
     Custom import functionality for complete orders
     Individual prices for customers
     No need for retail functions like online payment
     processing




October 2, 2010                                                10
Clemens Kalb, Lienhart Woitok, T3CON10          media.netlogix.de
standing on the shoulders of giants




October 2, 2010                                          11
Clemens Kalb, Lienhart Woitok, T3CON10   media.netlogix.de
How do you design a generic domain model for a
                    shop system?




October 2, 2010                                             12
Clemens Kalb, Lienhart Woitok, T3CON10       media.netlogix.de
You don‘t …
                                (unless you have too much time on your hands)




October 2, 2010                                                                                13
Clemens Kalb, Lienhart Woitok, T3CON10                                          media.netlogix.de
…because it already exists:




October 2, 2010                                                              14
Clemens Kalb, Lienhart Woitok, T3CON10                        media.netlogix.de
BMEcat

October 2, 2010                                                  15
Clemens Kalb, Lienhart Woitok, T3CON10            media.netlogix.de
Proven & open standard for product catalogues
     Very well documented (specification >600 pages)
     Originally an XML data exchange format




October 2, 2010                                              16
Clemens Kalb, Lienhart Woitok, T3CON10        media.netlogix.de
The Extbase kickstarter:
            a great way to create lots of model objects




October 2, 2010                                                     17
Clemens Kalb, Lienhart Woitok, T3CON10               media.netlogix.de
October 2, 2010                                         18
Clemens Kalb, Lienhart Woitok, T3CON10   media.netlogix.de
October 2, 2010                                         19
Clemens Kalb, Lienhart Woitok, T3CON10   media.netlogix.de
The kickstarter is not an editor!




October 2, 2010                                                              20
Clemens Kalb, Lienhart Woitok, T3CON10                        media.netlogix.de
Using SCM to cherry-pick changes:
1. Save in kickstarter
2. svn revert <fileThatShouldNotBeTouched>
3. Eclipse diff view to manually merge files




October 2, 2010                                               21
Clemens Kalb, Lienhart Woitok, T3CON10         media.netlogix.de
Apache Solr as a Storage Backend




October 2, 2010                                         22
Clemens Kalb, Lienhart Woitok, T3CON10   media.netlogix.de
Java based search
                                         server
                                         Searches millions of
                                         documents (products,
                                         text entries, prices…)
                                         in very little time
                                         Provides faceted
                                         search facilities
October 2, 2010                                                        23
Clemens Kalb, Lienhart Woitok, T3CON10                  media.netlogix.de
The naive way:
     writing direct querys to the Solr server from the
                     application code




October 2, 2010                                                 24
Clemens Kalb, Lienhart Woitok, T3CON10           media.netlogix.de
NO
                                           Faceted       Extbase
     Repository                             Query
                                            FACETED     persistence
                                            Query
                                            QUERIES        layer




                                         Background
                                            storage     Solr storage
                                                          Storage
                                                          Backend
                                                         backend
                                          (DB, Solr…)


October 2, 2010                                                              25
Clemens Kalb, Lienhart Woitok, T3CON10                        media.netlogix.de
Tx_Extbase_Persistence_Query
     $query->equals(‘foobar’, $foobar)
     $query->logicalAnd($statement1,
     $statement2)
     $query->in(‘foobar’, array($item1,
     $item2))



October 2, 2010                                         26
Clemens Kalb, Lienhart Woitok, T3CON10   media.netlogix.de
Tx_Nxsolrbackend_Persistence_Backend_
SolrBackend
     foobar:$foobar
     ($statement1 AND $statement2)
     foobar:($item1 $item2)




October 2, 2010                                         27
Clemens Kalb, Lienhart Woitok, T3CON10   media.netlogix.de
Tx_Nxsolrbackend_Persistence_FacetedQuery
extends Tx_Extbase_Persistence_Query
     $query->facet($facetConfiguration)
     $query->execute():
     Tx_Nxsolrbackend_Persistence_
     FacetedQueryResult
     $facetedQueryResult->getObjects()
     $facetedQueryResult->getFacets()
October 2, 2010                                         28
Clemens Kalb, Lienhart Woitok, T3CON10   media.netlogix.de
Structural differences: database vs. index
     Data duplication: database and Solr index
     Extbase knows only one StorageBackend




October 2, 2010                                                  29
Clemens Kalb, Lienhart Woitok, T3CON10            media.netlogix.de
Pentaho Data Integration




October 2, 2010                                         30
Clemens Kalb, Lienhart Woitok, T3CON10   media.netlogix.de
How to feed data into the database
                          from external sources?




October 2, 2010                                                          31
Clemens Kalb, Lienhart Woitok, T3CON10                    media.netlogix.de
(Photo courtesy of trenttsd/flickr)
October 2, 2010                                                                               32
Clemens Kalb, Lienhart Woitok, T3CON10                                         media.netlogix.de
Looking for the right tool:
     Integrate different data sources homogenously
     Source data from Microsoft Dynamics NAV
     (MSSQL)
     CSV file to specify additional files for products
     like datasheets and the like
     Need to understand it 3 years later

October 2, 2010                                                   33
Clemens Kalb, Lienhart Woitok, T3CON10             media.netlogix.de
Pentaho Data Integration
     Extract, Transform and Load
     JDBC + plugins for different data sources/targets




October 2, 2010                                                34
Clemens Kalb, Lienhart Woitok, T3CON10          media.netlogix.de
Configurability: import into different sysfolders,
     configure parameters and default values
     Where needed: Use JS and external code for
     special transformations




October 2, 2010                                                  35
Clemens Kalb, Lienhart Woitok, T3CON10            media.netlogix.de
How fast is Extbase?




October 2, 2010                                         36
Clemens Kalb, Lienhart Woitok, T3CON10   media.netlogix.de
First implementations were painfully slow due to…
     Working with thousands of objects
     Bug in Extbase: most objects considered dirty at
     any time




October 2, 2010                                               37
Clemens Kalb, Lienhart Woitok, T3CON10         media.netlogix.de
Build first, optimize later!
              (Might be scary at times, but the approach does actually work…)




October 2, 2010                                                                           38
Clemens Kalb, Lienhart Woitok, T3CON10                                     media.netlogix.de
Optimization #1:
     Make heavy use of lazy loading, load objects only
     when needed




October 2, 2010                                                39
Clemens Kalb, Lienhart Woitok, T3CON10          media.netlogix.de
Optimization #2:
     Fix Extbase: Objects no longer dirty ;-)




October 2, 2010                                                40
Clemens Kalb, Lienhart Woitok, T3CON10          media.netlogix.de
Optimization #3:
     Not everything needs to be an object:
     If you don‘t need domain logic,
     you might just render raw query results




October 2, 2010                                               41
Clemens Kalb, Lienhart Woitok, T3CON10         media.netlogix.de
Optimization #4:
     Use the good old TYPO3 caching mechanisms,
     but be especially careful




October 2, 2010                                            42
Clemens Kalb, Lienhart Woitok, T3CON10      media.netlogix.de
October 2, 2010                                         43
Clemens Kalb, Lienhart Woitok, T3CON10   media.netlogix.de
October 2, 2010                                         44
Clemens Kalb, Lienhart Woitok, T3CON10   media.netlogix.de

Contenu connexe

Similaire à Building a large eCommerce application with Extbase, Fluid and Apache Solr

Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre...
Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre...Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre...
Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre...FIAT/IFTA
 
Thalos - Simple and secure approach to file storage in untrasted enviroments
Thalos - Simple and secure approach to file storage in untrasted enviromentsThalos - Simple and secure approach to file storage in untrasted enviroments
Thalos - Simple and secure approach to file storage in untrasted enviromentsNaLUG
 
Data Rescue and Preserving DR Capabilities
Data Rescue and Preserving DR CapabilitiesData Rescue and Preserving DR Capabilities
Data Rescue and Preserving DR CapabilitiesChris Muller
 
The missing data issue for HiSeq runs
The missing data issue for HiSeq runsThe missing data issue for HiSeq runs
The missing data issue for HiSeq runsDenis C. Bauer
 
UTOPOLL白皮書.pdf
UTOPOLL白皮書.pdfUTOPOLL白皮書.pdf
UTOPOLL白皮書.pdfaipaypoll
 
LoCloud - D2.5: Lightweight Digital Library Prototype (LoCloud Collections Se...
LoCloud - D2.5: Lightweight Digital Library Prototype (LoCloud Collections Se...LoCloud - D2.5: Lightweight Digital Library Prototype (LoCloud Collections Se...
LoCloud - D2.5: Lightweight Digital Library Prototype (LoCloud Collections Se...locloud
 
Eth-Defi-Ecosystem-v2022.pdf
Eth-Defi-Ecosystem-v2022.pdfEth-Defi-Ecosystem-v2022.pdf
Eth-Defi-Ecosystem-v2022.pdfAnthony De Monroy
 
BDW16 London - Chris von Csefalvay, Helioserv - Cats and What They Tell us Ab...
BDW16 London - Chris von Csefalvay, Helioserv - Cats and What They Tell us Ab...BDW16 London - Chris von Csefalvay, Helioserv - Cats and What They Tell us Ab...
BDW16 London - Chris von Csefalvay, Helioserv - Cats and What They Tell us Ab...Big Data Week
 
Smau 2010 MIlano: Seminario AIPSI Virtualizzazione Sicura
Smau 2010 MIlano: Seminario AIPSI Virtualizzazione SicuraSmau 2010 MIlano: Seminario AIPSI Virtualizzazione Sicura
Smau 2010 MIlano: Seminario AIPSI Virtualizzazione SicuraAlessio Pennasilico
 
2010-06 - a smalltalk about salesforce.com with java architects at YaJuG
2010-06 - a smalltalk about salesforce.com with java architects at YaJuG2010-06 - a smalltalk about salesforce.com with java architects at YaJuG
2010-06 - a smalltalk about salesforce.com with java architects at YaJuGYves Leblond
 
Devcon2上海 参加報告
Devcon2上海 参加報告Devcon2上海 参加報告
Devcon2上海 参加報告Hiroyasu NOHATA
 
Auscert Finding needles in haystacks (the size of countries)
Auscert Finding needles in haystacks (the size of countries)Auscert Finding needles in haystacks (the size of countries)
Auscert Finding needles in haystacks (the size of countries)packetloop
 
Making Use of the Linked Data Cloud: The Role of Index Structures
Making Use of the Linked Data Cloud: The Role of Index StructuresMaking Use of the Linked Data Cloud: The Role of Index Structures
Making Use of the Linked Data Cloud: The Role of Index StructuresThomas Gottron
 
Internet of Tiny Linux (IoTL): Episode IV - SFO17-100
Internet of Tiny Linux (IoTL): Episode IV  - SFO17-100Internet of Tiny Linux (IoTL): Episode IV  - SFO17-100
Internet of Tiny Linux (IoTL): Episode IV - SFO17-100Linaro
 
RSS feeds using Millennium data
RSS feeds using Millennium dataRSS feeds using Millennium data
RSS feeds using Millennium dataAndrew Preater
 
Los Angeles R users group - Nov 17 2010 - Part 2
Los Angeles R users group - Nov 17 2010 - Part 2Los Angeles R users group - Nov 17 2010 - Part 2
Los Angeles R users group - Nov 17 2010 - Part 2rusersla
 
Advanced Features with Catapult: Building the Future of Blockchain Applications
Advanced Features with Catapult: Building the Future of Blockchain ApplicationsAdvanced Features with Catapult: Building the Future of Blockchain Applications
Advanced Features with Catapult: Building the Future of Blockchain ApplicationsSandy Palacios
 

Similaire à Building a large eCommerce application with Extbase, Fluid and Apache Solr (20)

Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre...
Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre...Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre...
Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre...
 
Thalos - Simple and secure approach to file storage in untrasted enviroments
Thalos - Simple and secure approach to file storage in untrasted enviromentsThalos - Simple and secure approach to file storage in untrasted enviroments
Thalos - Simple and secure approach to file storage in untrasted enviroments
 
Utopoll Whitepaper.pdf
Utopoll Whitepaper.pdfUtopoll Whitepaper.pdf
Utopoll Whitepaper.pdf
 
Data Rescue and Preserving DR Capabilities
Data Rescue and Preserving DR CapabilitiesData Rescue and Preserving DR Capabilities
Data Rescue and Preserving DR Capabilities
 
The missing data issue for HiSeq runs
The missing data issue for HiSeq runsThe missing data issue for HiSeq runs
The missing data issue for HiSeq runs
 
UTOPOLL白皮書.pdf
UTOPOLL白皮書.pdfUTOPOLL白皮書.pdf
UTOPOLL白皮書.pdf
 
LoCloud - D2.5: Lightweight Digital Library Prototype (LoCloud Collections Se...
LoCloud - D2.5: Lightweight Digital Library Prototype (LoCloud Collections Se...LoCloud - D2.5: Lightweight Digital Library Prototype (LoCloud Collections Se...
LoCloud - D2.5: Lightweight Digital Library Prototype (LoCloud Collections Se...
 
Eth-Defi-Ecosystem-v2022.pdf
Eth-Defi-Ecosystem-v2022.pdfEth-Defi-Ecosystem-v2022.pdf
Eth-Defi-Ecosystem-v2022.pdf
 
BDW16 London - Chris von Csefalvay, Helioserv - Cats and What They Tell us Ab...
BDW16 London - Chris von Csefalvay, Helioserv - Cats and What They Tell us Ab...BDW16 London - Chris von Csefalvay, Helioserv - Cats and What They Tell us Ab...
BDW16 London - Chris von Csefalvay, Helioserv - Cats and What They Tell us Ab...
 
Smau 2010 MIlano: Seminario AIPSI Virtualizzazione Sicura
Smau 2010 MIlano: Seminario AIPSI Virtualizzazione SicuraSmau 2010 MIlano: Seminario AIPSI Virtualizzazione Sicura
Smau 2010 MIlano: Seminario AIPSI Virtualizzazione Sicura
 
noSQL @ QCon SP
noSQL @ QCon SPnoSQL @ QCon SP
noSQL @ QCon SP
 
2010-06 - a smalltalk about salesforce.com with java architects at YaJuG
2010-06 - a smalltalk about salesforce.com with java architects at YaJuG2010-06 - a smalltalk about salesforce.com with java architects at YaJuG
2010-06 - a smalltalk about salesforce.com with java architects at YaJuG
 
Preserving forever in digital times
Preserving forever in digital timesPreserving forever in digital times
Preserving forever in digital times
 
Devcon2上海 参加報告
Devcon2上海 参加報告Devcon2上海 参加報告
Devcon2上海 参加報告
 
Auscert Finding needles in haystacks (the size of countries)
Auscert Finding needles in haystacks (the size of countries)Auscert Finding needles in haystacks (the size of countries)
Auscert Finding needles in haystacks (the size of countries)
 
Making Use of the Linked Data Cloud: The Role of Index Structures
Making Use of the Linked Data Cloud: The Role of Index StructuresMaking Use of the Linked Data Cloud: The Role of Index Structures
Making Use of the Linked Data Cloud: The Role of Index Structures
 
Internet of Tiny Linux (IoTL): Episode IV - SFO17-100
Internet of Tiny Linux (IoTL): Episode IV  - SFO17-100Internet of Tiny Linux (IoTL): Episode IV  - SFO17-100
Internet of Tiny Linux (IoTL): Episode IV - SFO17-100
 
RSS feeds using Millennium data
RSS feeds using Millennium dataRSS feeds using Millennium data
RSS feeds using Millennium data
 
Los Angeles R users group - Nov 17 2010 - Part 2
Los Angeles R users group - Nov 17 2010 - Part 2Los Angeles R users group - Nov 17 2010 - Part 2
Los Angeles R users group - Nov 17 2010 - Part 2
 
Advanced Features with Catapult: Building the Future of Blockchain Applications
Advanced Features with Catapult: Building the Future of Blockchain ApplicationsAdvanced Features with Catapult: Building the Future of Blockchain Applications
Advanced Features with Catapult: Building the Future of Blockchain Applications
 

Plus de netlogix

TYPO3 Neos and Flow - Security 2.0
TYPO3 Neos and Flow - Security 2.0TYPO3 Neos and Flow - Security 2.0
TYPO3 Neos and Flow - Security 2.0netlogix
 
FLOW3: Security mit AOP
FLOW3: Security mit AOPFLOW3: Security mit AOP
FLOW3: Security mit AOPnetlogix
 
Astaro Security Wall - Sechs Schritte zur sicheren IT
Astaro Security Wall - Sechs Schritte zur sicheren ITAstaro Security Wall - Sechs Schritte zur sicheren IT
Astaro Security Wall - Sechs Schritte zur sicheren ITnetlogix
 
Webspecial LIVE/11: eCommerce mit TYPO3, TYPO3 5.0 und FLOW3
Webspecial LIVE/11: eCommerce mit TYPO3, TYPO3 5.0 und FLOW3Webspecial LIVE/11: eCommerce mit TYPO3, TYPO3 5.0 und FLOW3
Webspecial LIVE/11: eCommerce mit TYPO3, TYPO3 5.0 und FLOW3netlogix
 
SMS PASSCODE: Authentifizierung per Handy
SMS PASSCODE: Authentifizierung per HandySMS PASSCODE: Authentifizierung per Handy
SMS PASSCODE: Authentifizierung per Handynetlogix
 
EMA - Enterprise Managed Archive: globales Informationsmanagement clever gel...
EMA  - Enterprise Managed Archive: globales Informationsmanagement clever gel...EMA  - Enterprise Managed Archive: globales Informationsmanagement clever gel...
EMA - Enterprise Managed Archive: globales Informationsmanagement clever gel...netlogix
 
XenDesktop 5 und das letzte "Puzzleteil"
XenDesktop 5 und das letzte "Puzzleteil"XenDesktop 5 und das letzte "Puzzleteil"
XenDesktop 5 und das letzte "Puzzleteil"netlogix
 
McAfee MOVE & Endpoint Security
McAfee MOVE & Endpoint SecurityMcAfee MOVE & Endpoint Security
McAfee MOVE & Endpoint Securitynetlogix
 
Ein Hypervisor alleine macht nicht glücklich: Interessante Add-Ons zu VMware ...
Ein Hypervisor alleine macht nicht glücklich: Interessante Add-Ons zu VMware ...Ein Hypervisor alleine macht nicht glücklich: Interessante Add-Ons zu VMware ...
Ein Hypervisor alleine macht nicht glücklich: Interessante Add-Ons zu VMware ...netlogix
 
Next Generation Unified Communications mit Microsoft Lync 2010
Next Generation Unified Communications mit Microsoft Lync 2010Next Generation Unified Communications mit Microsoft Lync 2010
Next Generation Unified Communications mit Microsoft Lync 2010netlogix
 
netlogix Care: Cloudbasierte, proaktive Systemüberwachung als Managed Service
netlogix Care: Cloudbasierte, proaktive Systemüberwachung als Managed Servicenetlogix Care: Cloudbasierte, proaktive Systemüberwachung als Managed Service
netlogix Care: Cloudbasierte, proaktive Systemüberwachung als Managed Servicenetlogix
 
Microsoft System Center Day 2011
Microsoft System Center Day 2011Microsoft System Center Day 2011
Microsoft System Center Day 2011netlogix
 
Microsoft System Center - Lizenzierung
Microsoft System Center - LizenzierungMicrosoft System Center - Lizenzierung
Microsoft System Center - Lizenzierungnetlogix
 
Citrix XenServer 5.6: Die Neuerungen
Citrix XenServer 5.6: Die NeuerungenCitrix XenServer 5.6: Die Neuerungen
Citrix XenServer 5.6: Die Neuerungennetlogix
 
DataCore Speichervirtualisierung
DataCore SpeichervirtualisierungDataCore Speichervirtualisierung
DataCore Speichervirtualisierungnetlogix
 
VMware View 4
VMware View 4VMware View 4
VMware View 4netlogix
 
VMware ThinApp 4.5
VMware ThinApp 4.5VMware ThinApp 4.5
VMware ThinApp 4.5netlogix
 
Trapeze WLAN-Lösung
Trapeze WLAN-LösungTrapeze WLAN-Lösung
Trapeze WLAN-Lösungnetlogix
 
EMA Email Archive Appliance
EMA Email Archive ApplianceEMA Email Archive Appliance
EMA Email Archive Appliancenetlogix
 
Data Domain Backup & Recovery
Data Domain Backup & RecoveryData Domain Backup & Recovery
Data Domain Backup & Recoverynetlogix
 

Plus de netlogix (20)

TYPO3 Neos and Flow - Security 2.0
TYPO3 Neos and Flow - Security 2.0TYPO3 Neos and Flow - Security 2.0
TYPO3 Neos and Flow - Security 2.0
 
FLOW3: Security mit AOP
FLOW3: Security mit AOPFLOW3: Security mit AOP
FLOW3: Security mit AOP
 
Astaro Security Wall - Sechs Schritte zur sicheren IT
Astaro Security Wall - Sechs Schritte zur sicheren ITAstaro Security Wall - Sechs Schritte zur sicheren IT
Astaro Security Wall - Sechs Schritte zur sicheren IT
 
Webspecial LIVE/11: eCommerce mit TYPO3, TYPO3 5.0 und FLOW3
Webspecial LIVE/11: eCommerce mit TYPO3, TYPO3 5.0 und FLOW3Webspecial LIVE/11: eCommerce mit TYPO3, TYPO3 5.0 und FLOW3
Webspecial LIVE/11: eCommerce mit TYPO3, TYPO3 5.0 und FLOW3
 
SMS PASSCODE: Authentifizierung per Handy
SMS PASSCODE: Authentifizierung per HandySMS PASSCODE: Authentifizierung per Handy
SMS PASSCODE: Authentifizierung per Handy
 
EMA - Enterprise Managed Archive: globales Informationsmanagement clever gel...
EMA  - Enterprise Managed Archive: globales Informationsmanagement clever gel...EMA  - Enterprise Managed Archive: globales Informationsmanagement clever gel...
EMA - Enterprise Managed Archive: globales Informationsmanagement clever gel...
 
XenDesktop 5 und das letzte "Puzzleteil"
XenDesktop 5 und das letzte "Puzzleteil"XenDesktop 5 und das letzte "Puzzleteil"
XenDesktop 5 und das letzte "Puzzleteil"
 
McAfee MOVE & Endpoint Security
McAfee MOVE & Endpoint SecurityMcAfee MOVE & Endpoint Security
McAfee MOVE & Endpoint Security
 
Ein Hypervisor alleine macht nicht glücklich: Interessante Add-Ons zu VMware ...
Ein Hypervisor alleine macht nicht glücklich: Interessante Add-Ons zu VMware ...Ein Hypervisor alleine macht nicht glücklich: Interessante Add-Ons zu VMware ...
Ein Hypervisor alleine macht nicht glücklich: Interessante Add-Ons zu VMware ...
 
Next Generation Unified Communications mit Microsoft Lync 2010
Next Generation Unified Communications mit Microsoft Lync 2010Next Generation Unified Communications mit Microsoft Lync 2010
Next Generation Unified Communications mit Microsoft Lync 2010
 
netlogix Care: Cloudbasierte, proaktive Systemüberwachung als Managed Service
netlogix Care: Cloudbasierte, proaktive Systemüberwachung als Managed Servicenetlogix Care: Cloudbasierte, proaktive Systemüberwachung als Managed Service
netlogix Care: Cloudbasierte, proaktive Systemüberwachung als Managed Service
 
Microsoft System Center Day 2011
Microsoft System Center Day 2011Microsoft System Center Day 2011
Microsoft System Center Day 2011
 
Microsoft System Center - Lizenzierung
Microsoft System Center - LizenzierungMicrosoft System Center - Lizenzierung
Microsoft System Center - Lizenzierung
 
Citrix XenServer 5.6: Die Neuerungen
Citrix XenServer 5.6: Die NeuerungenCitrix XenServer 5.6: Die Neuerungen
Citrix XenServer 5.6: Die Neuerungen
 
DataCore Speichervirtualisierung
DataCore SpeichervirtualisierungDataCore Speichervirtualisierung
DataCore Speichervirtualisierung
 
VMware View 4
VMware View 4VMware View 4
VMware View 4
 
VMware ThinApp 4.5
VMware ThinApp 4.5VMware ThinApp 4.5
VMware ThinApp 4.5
 
Trapeze WLAN-Lösung
Trapeze WLAN-LösungTrapeze WLAN-Lösung
Trapeze WLAN-Lösung
 
EMA Email Archive Appliance
EMA Email Archive ApplianceEMA Email Archive Appliance
EMA Email Archive Appliance
 
Data Domain Backup & Recovery
Data Domain Backup & RecoveryData Domain Backup & Recovery
Data Domain Backup & Recovery
 

Building a large eCommerce application with Extbase, Fluid and Apache Solr

  • 1. October 2, 2010 1 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 2. October 2, 2010 2 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 3. IBC SOLAR: Selling 857 million turnover everything from a in 2009 solar module to 4-figure number of complete solar plants products x product Working with retail variants x retail partners in Germany partners and throughout the world October 2, 2010 3 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 4. „Build yet another Shop System for TYPO3 – are you insane?“ All of us & the customer (before the start of the project) October 2, 2010 4 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 5. Previous system based on Commerce • scalability issues tt_products? Hell no! ;-) Specialized functionality lacking in all systems Magento looked fairly nice – but not integrated in TYPO3 October 2, 2010 5 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 6. October 2, 2010 6 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 7. October 2, 2010 7 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 8. October 2, 2010 8 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 9. October 2, 2010 9 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 10. All data comes from the company‘s ERP system Custom import functionality for complete orders Individual prices for customers No need for retail functions like online payment processing October 2, 2010 10 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 11. standing on the shoulders of giants October 2, 2010 11 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 12. How do you design a generic domain model for a shop system? October 2, 2010 12 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 13. You don‘t … (unless you have too much time on your hands) October 2, 2010 13 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 14. …because it already exists: October 2, 2010 14 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 15. BMEcat October 2, 2010 15 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 16. Proven & open standard for product catalogues Very well documented (specification >600 pages) Originally an XML data exchange format October 2, 2010 16 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 17. The Extbase kickstarter: a great way to create lots of model objects October 2, 2010 17 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 18. October 2, 2010 18 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 19. October 2, 2010 19 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 20. The kickstarter is not an editor! October 2, 2010 20 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 21. Using SCM to cherry-pick changes: 1. Save in kickstarter 2. svn revert <fileThatShouldNotBeTouched> 3. Eclipse diff view to manually merge files October 2, 2010 21 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 22. Apache Solr as a Storage Backend October 2, 2010 22 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 23. Java based search server Searches millions of documents (products, text entries, prices…) in very little time Provides faceted search facilities October 2, 2010 23 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 24. The naive way: writing direct querys to the Solr server from the application code October 2, 2010 24 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 25. NO Faceted Extbase Repository Query FACETED persistence Query QUERIES layer Background storage Solr storage Storage Backend backend (DB, Solr…) October 2, 2010 25 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 26. Tx_Extbase_Persistence_Query $query->equals(‘foobar’, $foobar) $query->logicalAnd($statement1, $statement2) $query->in(‘foobar’, array($item1, $item2)) October 2, 2010 26 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 27. Tx_Nxsolrbackend_Persistence_Backend_ SolrBackend foobar:$foobar ($statement1 AND $statement2) foobar:($item1 $item2) October 2, 2010 27 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 28. Tx_Nxsolrbackend_Persistence_FacetedQuery extends Tx_Extbase_Persistence_Query $query->facet($facetConfiguration) $query->execute(): Tx_Nxsolrbackend_Persistence_ FacetedQueryResult $facetedQueryResult->getObjects() $facetedQueryResult->getFacets() October 2, 2010 28 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 29. Structural differences: database vs. index Data duplication: database and Solr index Extbase knows only one StorageBackend October 2, 2010 29 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 30. Pentaho Data Integration October 2, 2010 30 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 31. How to feed data into the database from external sources? October 2, 2010 31 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 32. (Photo courtesy of trenttsd/flickr) October 2, 2010 32 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 33. Looking for the right tool: Integrate different data sources homogenously Source data from Microsoft Dynamics NAV (MSSQL) CSV file to specify additional files for products like datasheets and the like Need to understand it 3 years later October 2, 2010 33 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 34. Pentaho Data Integration Extract, Transform and Load JDBC + plugins for different data sources/targets October 2, 2010 34 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 35. Configurability: import into different sysfolders, configure parameters and default values Where needed: Use JS and external code for special transformations October 2, 2010 35 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 36. How fast is Extbase? October 2, 2010 36 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 37. First implementations were painfully slow due to… Working with thousands of objects Bug in Extbase: most objects considered dirty at any time October 2, 2010 37 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 38. Build first, optimize later! (Might be scary at times, but the approach does actually work…) October 2, 2010 38 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 39. Optimization #1: Make heavy use of lazy loading, load objects only when needed October 2, 2010 39 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 40. Optimization #2: Fix Extbase: Objects no longer dirty ;-) October 2, 2010 40 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 41. Optimization #3: Not everything needs to be an object: If you don‘t need domain logic, you might just render raw query results October 2, 2010 41 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 42. Optimization #4: Use the good old TYPO3 caching mechanisms, but be especially careful October 2, 2010 42 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 43. October 2, 2010 43 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de
  • 44. October 2, 2010 44 Clemens Kalb, Lienhart Woitok, T3CON10 media.netlogix.de