SlideShare a Scribd company logo
1 of 49
Download to read offline
External Master Data in Alfresco: 
Integrating and Keeping Metadata 
Consistent Across Multiple Systems 
Oksana Kurysheva 
@aviriel 
Alexey Vasyukov 
@avasyukov
Who are we? 
Oksana Kurysheva 
@aviriel 
Project Manager / Trainer / 
Queen of the bees 
ITD Systems / Order of the 
Bee 
Alexey Vasyukov 
@avasyukov 
Chief Architect / Alvex Product 
Manager 
ITD Systems
Questions for the next 39 minutes 
1 What is Master Data? 
2 
3 
4 
Storing Master Data in Alfresco 
External Master Data 
Complicated cases 
5 Conclusion
1 What is Master Data? 
2 
3 
4 
Storing Master Data in Alfresco 
External Master Data 
Complicated cases 
5 Conclusion
What is Master Data?
Master data management is an integration between Alfresco and a complex set of 
third-party systems, that you are to meet when trying to use Alfresco in the wild.
1 What is Master Data? 
2 
3 
4 
Storing Master Data in Alfresco 
Integrating Alfresco with external 
Master Data 
Complicated cases 
Out of the box implementation 
Data-list based implementation 
5 Conclusion 
3.1 
3.2
Constraints in the content model
Constraints in the content model 
Users can 
select a value 
from the list. 
+ 
Master data 
changes quite 
frequently. 
Business users 
do not like the 
idea to call IT 
every time they 
need new 
option in the 
drop-down list. 
-
1 What is Master Data? 
2 Storing Master Data in Alfresco 
Out of the box implementation 
Data-list based implementation 
3.1 
3.2 
3 
4 
Integrating Alfresco with external 
Master Data 
Complicated cases 
5 Conclusion
Data-list based implementation (1/5) 
• Simple solution 
• Several extensions to do it: 
• Tony Parzgnat implementation 
https://github.com/parzgnat/alfresco-value-assistance 
• Angel Borroy implementation 
https://github.com/keensoft/alfresco-datalist-constraints 
• Alvex releases older 2.1
<appearance> 
<field id=“dm:color”> 
<control template=“/form-controls/dynamic-dropdown.ftl”> 
<control-param name=“pickListName”>Color</control- param> 
</control> 
</field> 
</appearance> 
Data-list based implementation (2/5)
Data-list based implementation (3/5)
Solves basic issue quickly 
•Business users can edit constraints in browser! 
Data-list based implementation (4/5)
Updating a list 
of values 
Performance 
Permissions 
Share-Tier 
No native 
constraint 
Still no sync 
with external 
Master Data 
- 
Data-list based implementation (5/5)
1 What is Master Data? 
2 
3 
Storing Master Data in Alfresco 
The Good 
The Bad 
3.1 
3.2 
4 Complicated cases 
5 Conclusion 
External Master Data
External Master Data 
Assumptions: 
• Master data is in 3rd party systems. 
• These systems have remote APIs. 
Let's query them for reference data.
Architectural Choice 
Share Tier vs Repo Tier
Architectural Choice: Share-tier
Architectural Choice: Share-tier 
<field id=“alvexdt:contract”> 
<control template=“/alvex-masterData-select.ftl”> 
<control-param name=“url”> 
http://www.alvexsoftware.com/files/contacts_sample.json 
</control-param> 
<control-param name=“path”></control-param> 
<control-param name=“label”>contactCompany</control-param> 
<control-param name=“value”>contactCompany</control-param> 
</control> 
</field>
Architectural Choice: Repo Tier
Architectural Choice: Repo Tier 
<constraint name="alvexdt:docStatus" 
type="com.alvexcore.repo.masterdata.MasterDataConstraint"> 
<parameter name="dataSourceName"> 
<value>Test</value> 
</parameter> 
</constraint>
1 What is Master Data? 
2 Storing Master Data in Alfresco 
3 
The Good 
The Bad 
3.1 
3.2 
4 Complicated cases 
5 Conclusion 
External Master Data
External Master Data 
Quite obvious idea becomes tricky: 
• Live data vs Cached data 
• Performance and bottlenecks 
• Changes in reference data
Dilemma: Live Data vs Cached Data 
Always actual 
Simple 
implementation 
Slow network 
Service is 
unavailable? 
Live 
Data May be 
outdated 
Complex 
implementation 
Fast 
Always 
available 
Cached 
Data
Performance 
• Constraint is expected to be extremely fast 
• Just reading field with list constraint with N 
values causes N+1 call to Constraint class. 
• Caching of classifiers in Repo is not enough.
Changes in Reference Data 
Update items 
Processing 
Updates Leave old 
value in 
existing fields 
Migrate 
existing fields 
to the new one 
Processing 
Deletion 
Allow creating 
new data from 
Alfresco 
Add new 
data
Implementation Details (1/5)
Implementation Details (2/5)
Implementation Details (3/5)
Implementation Details (4/5)
Implementation Details (5/5)
Changes in Reference Data 
Update items 
Processing 
Updates Leave old 
value in 
existing fields 
Migrate 
existing fields 
to the new one 
Processing 
Deletion 
Allow creating 
new data from 
Alfresco 
Add new 
data
External Master Data: Demo
2 
3 
4 
Storing Master Data in Alfresco 
External Master Data 
Complicated cases 
4.1 
4.2 
Handling Tree-Like Structures 
Constraints Inter-Dependencies 
4.3 
One-To-Many Relations 
5 
Conclusion
Complicated Cases 
Reference data is complex IRL: 
• Tree-like hierarchies 
• Inter-dependencies of constraints 
• One-to-many mapping (one master data 
object to many content object properties)
Handing Tree-Like Structures
Handing Tree-Like Structures 
• Jean Barmash implementation (2008) 
https://forums.alfresco.com/comment/80963#co 
mment-80963
Constraints Inter-Dependencies
One-To-Many Relations
1 What is Master Data? 
2 
3 
4 
Storing Master Data in Alfresco 
External Master Data 
Complicated cases 
5 Conclusion
Fear and Loathing Under The Hood
Getting forms
Getting forms
Validations on Node Create/Edit
Validations on Node Create/Edit
Fear and Loathing Under The Hood: Summary 
Overloaded components: 
• /api/formdefinition 
• MasterDataAwareScriptFormService 
• MasterDataAwareIntegrityChecker 
• MasterDataAwarePropertiesIntegrityEvent
Roadmap 
• Completely solve Complicated Cases 
• Extract Master Data from Alvex to a 
separate extension
Resources 
GitHub Repo: 
https://github.com/ITDSystems/alvex 
Contacts: 
@aviriel & @avasyukov & @alvexsoftware 
ping@itdhq.com

More Related Content

What's hot

CI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page AppsCI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page AppsMike North
 
Developing Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's GuideDeveloping Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's GuideMohanraj Thirumoorthy
 
You Were Lied To About Optimization
You Were Lied To About OptimizationYou Were Lied To About Optimization
You Were Lied To About OptimizationChris Tankersley
 
Developing Resilient Cloud Native Apps with Spring Cloud
Developing Resilient Cloud Native Apps with Spring CloudDeveloping Resilient Cloud Native Apps with Spring Cloud
Developing Resilient Cloud Native Apps with Spring CloudDustin Ruehle
 
CI/CD with Azure DevOps and Azure Databricks
CI/CD with Azure DevOps and Azure DatabricksCI/CD with Azure DevOps and Azure Databricks
CI/CD with Azure DevOps and Azure DatabricksGoDataDriven
 
The Amazing and Elegant PL/SQL Function Result Cache
The Amazing and Elegant PL/SQL Function Result CacheThe Amazing and Elegant PL/SQL Function Result Cache
The Amazing and Elegant PL/SQL Function Result CacheSteven Feuerstein
 
Running Apache Zeppelin production
Running Apache Zeppelin productionRunning Apache Zeppelin production
Running Apache Zeppelin productionVinay Shukla
 
KYSUC - Keep Your Schema Under Control
KYSUC - Keep Your Schema Under ControlKYSUC - Keep Your Schema Under Control
KYSUC - Keep Your Schema Under ControlCoimbra JUG
 
Jfokus 2015 - Immutable Server generation: the new App Deployment
Jfokus 2015 - Immutable Server generation: the new App DeploymentJfokus 2015 - Immutable Server generation: the new App Deployment
Jfokus 2015 - Immutable Server generation: the new App DeploymentAxel Fontaine
 
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...Tin Linn Soe
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as CodeLeandro Rosa
 
The Need For Speed - NxtGen Cambridge
The Need For Speed - NxtGen CambridgeThe Need For Speed - NxtGen Cambridge
The Need For Speed - NxtGen CambridgePhil Pursglove
 
Software Design Patterns in Laravel by Phill Sparks
Software Design Patterns in Laravel by Phill SparksSoftware Design Patterns in Laravel by Phill Sparks
Software Design Patterns in Laravel by Phill SparksPhill Sparks
 
Apache zeppelin 0.7.0 helium
Apache zeppelin 0.7.0   heliumApache zeppelin 0.7.0   helium
Apache zeppelin 0.7.0 heliumAhyoung Ryu
 
Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Pavel Chunyayev
 
Alfresco Process Services extension project - Alfresco DevCon 2018
Alfresco Process Services extension project - Alfresco DevCon 2018Alfresco Process Services extension project - Alfresco DevCon 2018
Alfresco Process Services extension project - Alfresco DevCon 2018Dennis Koch
 
Validating latest changes with XCI
Validating latest changes with XCIValidating latest changes with XCI
Validating latest changes with XCIVictor Morales
 
JavaOne 2015: Top Performance Patterns Deep Dive
JavaOne 2015: Top Performance Patterns Deep DiveJavaOne 2015: Top Performance Patterns Deep Dive
JavaOne 2015: Top Performance Patterns Deep DiveAndreas Grabner
 
Coordinating Micro-Services with Spring Cloud Contract
Coordinating Micro-Services with Spring Cloud ContractCoordinating Micro-Services with Spring Cloud Contract
Coordinating Micro-Services with Spring Cloud ContractOmri Spector
 

What's hot (20)

CI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page AppsCI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page Apps
 
Developing Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's GuideDeveloping Microservices using Spring - Beginner's Guide
Developing Microservices using Spring - Beginner's Guide
 
You Were Lied To About Optimization
You Were Lied To About OptimizationYou Were Lied To About Optimization
You Were Lied To About Optimization
 
Developing Resilient Cloud Native Apps with Spring Cloud
Developing Resilient Cloud Native Apps with Spring CloudDeveloping Resilient Cloud Native Apps with Spring Cloud
Developing Resilient Cloud Native Apps with Spring Cloud
 
High Performance PL/SQL
High Performance PL/SQLHigh Performance PL/SQL
High Performance PL/SQL
 
CI/CD with Azure DevOps and Azure Databricks
CI/CD with Azure DevOps and Azure DatabricksCI/CD with Azure DevOps and Azure Databricks
CI/CD with Azure DevOps and Azure Databricks
 
The Amazing and Elegant PL/SQL Function Result Cache
The Amazing and Elegant PL/SQL Function Result CacheThe Amazing and Elegant PL/SQL Function Result Cache
The Amazing and Elegant PL/SQL Function Result Cache
 
Running Apache Zeppelin production
Running Apache Zeppelin productionRunning Apache Zeppelin production
Running Apache Zeppelin production
 
KYSUC - Keep Your Schema Under Control
KYSUC - Keep Your Schema Under ControlKYSUC - Keep Your Schema Under Control
KYSUC - Keep Your Schema Under Control
 
Jfokus 2015 - Immutable Server generation: the new App Deployment
Jfokus 2015 - Immutable Server generation: the new App DeploymentJfokus 2015 - Immutable Server generation: the new App Deployment
Jfokus 2015 - Immutable Server generation: the new App Deployment
 
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
The Need For Speed - NxtGen Cambridge
The Need For Speed - NxtGen CambridgeThe Need For Speed - NxtGen Cambridge
The Need For Speed - NxtGen Cambridge
 
Software Design Patterns in Laravel by Phill Sparks
Software Design Patterns in Laravel by Phill SparksSoftware Design Patterns in Laravel by Phill Sparks
Software Design Patterns in Laravel by Phill Sparks
 
Apache zeppelin 0.7.0 helium
Apache zeppelin 0.7.0   heliumApache zeppelin 0.7.0   helium
Apache zeppelin 0.7.0 helium
 
Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015
 
Alfresco Process Services extension project - Alfresco DevCon 2018
Alfresco Process Services extension project - Alfresco DevCon 2018Alfresco Process Services extension project - Alfresco DevCon 2018
Alfresco Process Services extension project - Alfresco DevCon 2018
 
Validating latest changes with XCI
Validating latest changes with XCIValidating latest changes with XCI
Validating latest changes with XCI
 
JavaOne 2015: Top Performance Patterns Deep Dive
JavaOne 2015: Top Performance Patterns Deep DiveJavaOne 2015: Top Performance Patterns Deep Dive
JavaOne 2015: Top Performance Patterns Deep Dive
 
Coordinating Micro-Services with Spring Cloud Contract
Coordinating Micro-Services with Spring Cloud ContractCoordinating Micro-Services with Spring Cloud Contract
Coordinating Micro-Services with Spring Cloud Contract
 

Viewers also liked

Project Management with Alfresco
Project Management with AlfrescoProject Management with Alfresco
Project Management with AlfrescoITD Systems
 
Orgchart for Alfresco lightning talk
Orgchart for Alfresco lightning talkOrgchart for Alfresco lightning talk
Orgchart for Alfresco lightning talkITD Systems
 
Data Spider for Legacy Infrastructure: Capturing content from multiple file s...
Data Spider for Legacy Infrastructure: Capturing content from multiple file s...Data Spider for Legacy Infrastructure: Capturing content from multiple file s...
Data Spider for Legacy Infrastructure: Capturing content from multiple file s...ITD Systems
 
Building a .Net – based Form Builder for Talisma
Building a .Net – based Form Builder for TalismaBuilding a .Net – based Form Builder for Talisma
Building a .Net – based Form Builder for TalismaNeev Technologies
 
CASE-5 Using Alfresco and Orbeon to Implement a Local eGovernment Portal
CASE-5 Using Alfresco and Orbeon to Implement a Local eGovernment PortalCASE-5 Using Alfresco and Orbeon to Implement a Local eGovernment Portal
CASE-5 Using Alfresco and Orbeon to Implement a Local eGovernment PortalAlfresco Software
 
PM Innovation 2013 - Управление непредсказуемым проектом
PM Innovation 2013 - Управление непредсказуемым проектомPM Innovation 2013 - Управление непредсказуемым проектом
PM Innovation 2013 - Управление непредсказуемым проектомITD Systems
 
Краткий обзор возможностей Alfresco и Alvex
Краткий обзор возможностей Alfresco и AlvexКраткий обзор возможностей Alfresco и Alvex
Краткий обзор возможностей Alfresco и AlvexITD Systems
 
ECM Adekva на платформе Alfresco
ECM Adekva на платформе AlfrescoECM Adekva на платформе Alfresco
ECM Adekva на платформе AlfrescoADEKVA
 
Zia Fresh Project demo
Zia   Fresh Project demoZia   Fresh Project demo
Zia Fresh Project demoZia Consulting
 

Viewers also liked (9)

Project Management with Alfresco
Project Management with AlfrescoProject Management with Alfresco
Project Management with Alfresco
 
Orgchart for Alfresco lightning talk
Orgchart for Alfresco lightning talkOrgchart for Alfresco lightning talk
Orgchart for Alfresco lightning talk
 
Data Spider for Legacy Infrastructure: Capturing content from multiple file s...
Data Spider for Legacy Infrastructure: Capturing content from multiple file s...Data Spider for Legacy Infrastructure: Capturing content from multiple file s...
Data Spider for Legacy Infrastructure: Capturing content from multiple file s...
 
Building a .Net – based Form Builder for Talisma
Building a .Net – based Form Builder for TalismaBuilding a .Net – based Form Builder for Talisma
Building a .Net – based Form Builder for Talisma
 
CASE-5 Using Alfresco and Orbeon to Implement a Local eGovernment Portal
CASE-5 Using Alfresco and Orbeon to Implement a Local eGovernment PortalCASE-5 Using Alfresco and Orbeon to Implement a Local eGovernment Portal
CASE-5 Using Alfresco and Orbeon to Implement a Local eGovernment Portal
 
PM Innovation 2013 - Управление непредсказуемым проектом
PM Innovation 2013 - Управление непредсказуемым проектомPM Innovation 2013 - Управление непредсказуемым проектом
PM Innovation 2013 - Управление непредсказуемым проектом
 
Краткий обзор возможностей Alfresco и Alvex
Краткий обзор возможностей Alfresco и AlvexКраткий обзор возможностей Alfresco и Alvex
Краткий обзор возможностей Alfresco и Alvex
 
ECM Adekva на платформе Alfresco
ECM Adekva на платформе AlfrescoECM Adekva на платформе Alfresco
ECM Adekva на платформе Alfresco
 
Zia Fresh Project demo
Zia   Fresh Project demoZia   Fresh Project demo
Zia Fresh Project demo
 

Similar to External Master Data in Alfresco: Integrating and Keeping Metadata Consistent Across Multiple Systems

Most Wanted: Future PostgreSQL Features
Most Wanted: Future PostgreSQL FeaturesMost Wanted: Future PostgreSQL Features
Most Wanted: Future PostgreSQL FeaturesPeter Eisentraut
 
Take your database source code and data under control
Take your database source code and data under controlTake your database source code and data under control
Take your database source code and data under controlMarcin Przepiórowski
 
OOW15 - Online Patching with Oracle E-Business Suite 12.2
OOW15 - Online Patching with Oracle E-Business Suite 12.2OOW15 - Online Patching with Oracle E-Business Suite 12.2
OOW15 - Online Patching with Oracle E-Business Suite 12.2vasuballa
 
Corporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbaiCorporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbaiUnmesh Baile
 
Corporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbaiCorporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbaiUnmesh Baile
 
C19013010 the tutorial to build shared ai services session 2
C19013010 the tutorial to build shared ai services session 2C19013010 the tutorial to build shared ai services session 2
C19013010 the tutorial to build shared ai services session 2Bill Liu
 
White Paper: Using Perforce 'Attributes' for Managing Game Asset Metadata
White Paper: Using Perforce 'Attributes' for Managing Game Asset MetadataWhite Paper: Using Perforce 'Attributes' for Managing Game Asset Metadata
White Paper: Using Perforce 'Attributes' for Managing Game Asset MetadataPerforce
 
What's new in Oracle Trace File Analyzer version 12.2.1.1.0
What's new in Oracle Trace File Analyzer version 12.2.1.1.0What's new in Oracle Trace File Analyzer version 12.2.1.1.0
What's new in Oracle Trace File Analyzer version 12.2.1.1.0Sandesh Rao
 
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...HostedbyConfluent
 
Changing platforms of Oracle database
Changing platforms of Oracle databaseChanging platforms of Oracle database
Changing platforms of Oracle databasePawanbir Singh
 
Migrating to Database 12c Multitenant - New Opportunities To Get It Right!
Migrating to Database 12c Multitenant - New Opportunities To Get It Right!Migrating to Database 12c Multitenant - New Opportunities To Get It Right!
Migrating to Database 12c Multitenant - New Opportunities To Get It Right!Performance Tuning Corporation
 
OAP: Optimized Analytics Package for Spark Platform with Daoyuan Wang and Yua...
OAP: Optimized Analytics Package for Spark Platform with Daoyuan Wang and Yua...OAP: Optimized Analytics Package for Spark Platform with Daoyuan Wang and Yua...
OAP: Optimized Analytics Package for Spark Platform with Daoyuan Wang and Yua...Databricks
 
Data Infrastructure at LinkedIn
Data Infrastructure at LinkedInData Infrastructure at LinkedIn
Data Infrastructure at LinkedInAmy W. Tang
 
MySQL optimisations of Docplanner services
MySQL optimisations of Docplanner servicesMySQL optimisations of Docplanner services
MySQL optimisations of Docplanner servicesTomasz Wójcik
 
Breaking Parser Logic: Take Your Path Normalization Off and Pop 0days Out!
Breaking Parser Logic: Take Your Path Normalization Off and Pop 0days Out!Breaking Parser Logic: Take Your Path Normalization Off and Pop 0days Out!
Breaking Parser Logic: Take Your Path Normalization Off and Pop 0days Out!Priyanka Aash
 
Db2 migration -_tips,_tricks,_and_pitfalls
Db2 migration -_tips,_tricks,_and_pitfallsDb2 migration -_tips,_tricks,_and_pitfalls
Db2 migration -_tips,_tricks,_and_pitfallssam2sung2
 
Deployment with ExpressionEngine
Deployment with ExpressionEngineDeployment with ExpressionEngine
Deployment with ExpressionEngineGreen Egg Media
 
Spark Meetup Amsterdam - Dealing with Bad Actors in ETL, Databricks
Spark Meetup Amsterdam - Dealing with Bad Actors in ETL, DatabricksSpark Meetup Amsterdam - Dealing with Bad Actors in ETL, Databricks
Spark Meetup Amsterdam - Dealing with Bad Actors in ETL, DatabricksGoDataDriven
 

Similar to External Master Data in Alfresco: Integrating and Keeping Metadata Consistent Across Multiple Systems (20)

Most Wanted: Future PostgreSQL Features
Most Wanted: Future PostgreSQL FeaturesMost Wanted: Future PostgreSQL Features
Most Wanted: Future PostgreSQL Features
 
Take your database source code and data under control
Take your database source code and data under controlTake your database source code and data under control
Take your database source code and data under control
 
OOW15 - Online Patching with Oracle E-Business Suite 12.2
OOW15 - Online Patching with Oracle E-Business Suite 12.2OOW15 - Online Patching with Oracle E-Business Suite 12.2
OOW15 - Online Patching with Oracle E-Business Suite 12.2
 
Corporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbaiCorporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbai
 
Corporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbaiCorporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbai
 
C19013010 the tutorial to build shared ai services session 2
C19013010 the tutorial to build shared ai services session 2C19013010 the tutorial to build shared ai services session 2
C19013010 the tutorial to build shared ai services session 2
 
White Paper: Using Perforce 'Attributes' for Managing Game Asset Metadata
White Paper: Using Perforce 'Attributes' for Managing Game Asset MetadataWhite Paper: Using Perforce 'Attributes' for Managing Game Asset Metadata
White Paper: Using Perforce 'Attributes' for Managing Game Asset Metadata
 
What's new in Oracle Trace File Analyzer version 12.2.1.1.0
What's new in Oracle Trace File Analyzer version 12.2.1.1.0What's new in Oracle Trace File Analyzer version 12.2.1.1.0
What's new in Oracle Trace File Analyzer version 12.2.1.1.0
 
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
 
Changing platforms of Oracle database
Changing platforms of Oracle databaseChanging platforms of Oracle database
Changing platforms of Oracle database
 
Migrating to Database 12c Multitenant - New Opportunities To Get It Right!
Migrating to Database 12c Multitenant - New Opportunities To Get It Right!Migrating to Database 12c Multitenant - New Opportunities To Get It Right!
Migrating to Database 12c Multitenant - New Opportunities To Get It Right!
 
OAP: Optimized Analytics Package for Spark Platform with Daoyuan Wang and Yua...
OAP: Optimized Analytics Package for Spark Platform with Daoyuan Wang and Yua...OAP: Optimized Analytics Package for Spark Platform with Daoyuan Wang and Yua...
OAP: Optimized Analytics Package for Spark Platform with Daoyuan Wang and Yua...
 
Data Infrastructure at LinkedIn
Data Infrastructure at LinkedInData Infrastructure at LinkedIn
Data Infrastructure at LinkedIn
 
MySQL optimisations of Docplanner services
MySQL optimisations of Docplanner servicesMySQL optimisations of Docplanner services
MySQL optimisations of Docplanner services
 
3106741-MySQLStoredProcedures
3106741-MySQLStoredProcedures3106741-MySQLStoredProcedures
3106741-MySQLStoredProcedures
 
Breaking Parser Logic: Take Your Path Normalization Off and Pop 0days Out!
Breaking Parser Logic: Take Your Path Normalization Off and Pop 0days Out!Breaking Parser Logic: Take Your Path Normalization Off and Pop 0days Out!
Breaking Parser Logic: Take Your Path Normalization Off and Pop 0days Out!
 
Db2 migration -_tips,_tricks,_and_pitfalls
Db2 migration -_tips,_tricks,_and_pitfallsDb2 migration -_tips,_tricks,_and_pitfalls
Db2 migration -_tips,_tricks,_and_pitfalls
 
Deployment with ExpressionEngine
Deployment with ExpressionEngineDeployment with ExpressionEngine
Deployment with ExpressionEngine
 
Exception & Database
Exception & DatabaseException & Database
Exception & Database
 
Spark Meetup Amsterdam - Dealing with Bad Actors in ETL, Databricks
Spark Meetup Amsterdam - Dealing with Bad Actors in ETL, DatabricksSpark Meetup Amsterdam - Dealing with Bad Actors in ETL, Databricks
Spark Meetup Amsterdam - Dealing with Bad Actors in ETL, Databricks
 

Recently uploaded

Cyber Security Training in Office Environment
Cyber Security Training in Office EnvironmentCyber Security Training in Office Environment
Cyber Security Training in Office Environmentelijahj01012
 
Darshan Hiranandani [News About Next CEO].pdf
Darshan Hiranandani [News About Next CEO].pdfDarshan Hiranandani [News About Next CEO].pdf
Darshan Hiranandani [News About Next CEO].pdfShashank Mehta
 
EUDR Info Meeting Ethiopian coffee exporters
EUDR Info Meeting Ethiopian coffee exportersEUDR Info Meeting Ethiopian coffee exporters
EUDR Info Meeting Ethiopian coffee exportersPeter Horsten
 
Call Us 📲8800102216📞 Call Girls In DLF City Gurgaon
Call Us 📲8800102216📞 Call Girls In DLF City GurgaonCall Us 📲8800102216📞 Call Girls In DLF City Gurgaon
Call Us 📲8800102216📞 Call Girls In DLF City Gurgaoncallgirls2057
 
MAHA Global and IPR: Do Actions Speak Louder Than Words?
MAHA Global and IPR: Do Actions Speak Louder Than Words?MAHA Global and IPR: Do Actions Speak Louder Than Words?
MAHA Global and IPR: Do Actions Speak Louder Than Words?Olivia Kresic
 
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deck
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deckPitch Deck Teardown: Geodesic.Life's $500k Pre-seed deck
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deckHajeJanKamps
 
WSMM Technology February.March Newsletter_vF.pdf
WSMM Technology February.March Newsletter_vF.pdfWSMM Technology February.March Newsletter_vF.pdf
WSMM Technology February.March Newsletter_vF.pdfJamesConcepcion7
 
Flow Your Strategy at Flight Levels Day 2024
Flow Your Strategy at Flight Levels Day 2024Flow Your Strategy at Flight Levels Day 2024
Flow Your Strategy at Flight Levels Day 2024Kirill Klimov
 
Organizational Structure Running A Successful Business
Organizational Structure Running A Successful BusinessOrganizational Structure Running A Successful Business
Organizational Structure Running A Successful BusinessSeta Wicaksana
 
NAB Show Exhibitor List 2024 - Exhibitors Data
NAB Show Exhibitor List 2024 - Exhibitors DataNAB Show Exhibitor List 2024 - Exhibitors Data
NAB Show Exhibitor List 2024 - Exhibitors DataExhibitors Data
 
Memorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQMMemorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQMVoces Mineras
 
Guide Complete Set of Residential Architectural Drawings PDF
Guide Complete Set of Residential Architectural Drawings PDFGuide Complete Set of Residential Architectural Drawings PDF
Guide Complete Set of Residential Architectural Drawings PDFChandresh Chudasama
 
Ten Organizational Design Models to align structure and operations to busines...
Ten Organizational Design Models to align structure and operations to busines...Ten Organizational Design Models to align structure and operations to busines...
Ten Organizational Design Models to align structure and operations to busines...Seta Wicaksana
 
Investment in The Coconut Industry by Nancy Cheruiyot
Investment in The Coconut Industry by Nancy CheruiyotInvestment in The Coconut Industry by Nancy Cheruiyot
Investment in The Coconut Industry by Nancy Cheruiyotictsugar
 
WSMM Media and Entertainment Feb_March_Final.pdf
WSMM Media and Entertainment Feb_March_Final.pdfWSMM Media and Entertainment Feb_March_Final.pdf
WSMM Media and Entertainment Feb_March_Final.pdfJamesConcepcion7
 
Church Building Grants To Assist With New Construction, Additions, And Restor...
Church Building Grants To Assist With New Construction, Additions, And Restor...Church Building Grants To Assist With New Construction, Additions, And Restor...
Church Building Grants To Assist With New Construction, Additions, And Restor...Americas Got Grants
 
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCRashishs7044
 
Buy gmail accounts.pdf Buy Old Gmail Accounts
Buy gmail accounts.pdf Buy Old Gmail AccountsBuy gmail accounts.pdf Buy Old Gmail Accounts
Buy gmail accounts.pdf Buy Old Gmail AccountsBuy Verified Accounts
 

Recently uploaded (20)

Cyber Security Training in Office Environment
Cyber Security Training in Office EnvironmentCyber Security Training in Office Environment
Cyber Security Training in Office Environment
 
Darshan Hiranandani [News About Next CEO].pdf
Darshan Hiranandani [News About Next CEO].pdfDarshan Hiranandani [News About Next CEO].pdf
Darshan Hiranandani [News About Next CEO].pdf
 
EUDR Info Meeting Ethiopian coffee exporters
EUDR Info Meeting Ethiopian coffee exportersEUDR Info Meeting Ethiopian coffee exporters
EUDR Info Meeting Ethiopian coffee exporters
 
Call Us 📲8800102216📞 Call Girls In DLF City Gurgaon
Call Us 📲8800102216📞 Call Girls In DLF City GurgaonCall Us 📲8800102216📞 Call Girls In DLF City Gurgaon
Call Us 📲8800102216📞 Call Girls In DLF City Gurgaon
 
MAHA Global and IPR: Do Actions Speak Louder Than Words?
MAHA Global and IPR: Do Actions Speak Louder Than Words?MAHA Global and IPR: Do Actions Speak Louder Than Words?
MAHA Global and IPR: Do Actions Speak Louder Than Words?
 
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deck
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deckPitch Deck Teardown: Geodesic.Life's $500k Pre-seed deck
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deck
 
WSMM Technology February.March Newsletter_vF.pdf
WSMM Technology February.March Newsletter_vF.pdfWSMM Technology February.March Newsletter_vF.pdf
WSMM Technology February.March Newsletter_vF.pdf
 
Flow Your Strategy at Flight Levels Day 2024
Flow Your Strategy at Flight Levels Day 2024Flow Your Strategy at Flight Levels Day 2024
Flow Your Strategy at Flight Levels Day 2024
 
Organizational Structure Running A Successful Business
Organizational Structure Running A Successful BusinessOrganizational Structure Running A Successful Business
Organizational Structure Running A Successful Business
 
NAB Show Exhibitor List 2024 - Exhibitors Data
NAB Show Exhibitor List 2024 - Exhibitors DataNAB Show Exhibitor List 2024 - Exhibitors Data
NAB Show Exhibitor List 2024 - Exhibitors Data
 
Memorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQMMemorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQM
 
Guide Complete Set of Residential Architectural Drawings PDF
Guide Complete Set of Residential Architectural Drawings PDFGuide Complete Set of Residential Architectural Drawings PDF
Guide Complete Set of Residential Architectural Drawings PDF
 
Ten Organizational Design Models to align structure and operations to busines...
Ten Organizational Design Models to align structure and operations to busines...Ten Organizational Design Models to align structure and operations to busines...
Ten Organizational Design Models to align structure and operations to busines...
 
The Bizz Quiz-E-Summit-E-Cell-IITPatna.pptx
The Bizz Quiz-E-Summit-E-Cell-IITPatna.pptxThe Bizz Quiz-E-Summit-E-Cell-IITPatna.pptx
The Bizz Quiz-E-Summit-E-Cell-IITPatna.pptx
 
Investment in The Coconut Industry by Nancy Cheruiyot
Investment in The Coconut Industry by Nancy CheruiyotInvestment in The Coconut Industry by Nancy Cheruiyot
Investment in The Coconut Industry by Nancy Cheruiyot
 
WSMM Media and Entertainment Feb_March_Final.pdf
WSMM Media and Entertainment Feb_March_Final.pdfWSMM Media and Entertainment Feb_March_Final.pdf
WSMM Media and Entertainment Feb_March_Final.pdf
 
Church Building Grants To Assist With New Construction, Additions, And Restor...
Church Building Grants To Assist With New Construction, Additions, And Restor...Church Building Grants To Assist With New Construction, Additions, And Restor...
Church Building Grants To Assist With New Construction, Additions, And Restor...
 
Corporate Profile 47Billion Information Technology
Corporate Profile 47Billion Information TechnologyCorporate Profile 47Billion Information Technology
Corporate Profile 47Billion Information Technology
 
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR
 
Buy gmail accounts.pdf Buy Old Gmail Accounts
Buy gmail accounts.pdf Buy Old Gmail AccountsBuy gmail accounts.pdf Buy Old Gmail Accounts
Buy gmail accounts.pdf Buy Old Gmail Accounts
 

External Master Data in Alfresco: Integrating and Keeping Metadata Consistent Across Multiple Systems

  • 1. External Master Data in Alfresco: Integrating and Keeping Metadata Consistent Across Multiple Systems Oksana Kurysheva @aviriel Alexey Vasyukov @avasyukov
  • 2. Who are we? Oksana Kurysheva @aviriel Project Manager / Trainer / Queen of the bees ITD Systems / Order of the Bee Alexey Vasyukov @avasyukov Chief Architect / Alvex Product Manager ITD Systems
  • 3. Questions for the next 39 minutes 1 What is Master Data? 2 3 4 Storing Master Data in Alfresco External Master Data Complicated cases 5 Conclusion
  • 4. 1 What is Master Data? 2 3 4 Storing Master Data in Alfresco External Master Data Complicated cases 5 Conclusion
  • 6. Master data management is an integration between Alfresco and a complex set of third-party systems, that you are to meet when trying to use Alfresco in the wild.
  • 7. 1 What is Master Data? 2 3 4 Storing Master Data in Alfresco Integrating Alfresco with external Master Data Complicated cases Out of the box implementation Data-list based implementation 5 Conclusion 3.1 3.2
  • 8. Constraints in the content model
  • 9. Constraints in the content model Users can select a value from the list. + Master data changes quite frequently. Business users do not like the idea to call IT every time they need new option in the drop-down list. -
  • 10. 1 What is Master Data? 2 Storing Master Data in Alfresco Out of the box implementation Data-list based implementation 3.1 3.2 3 4 Integrating Alfresco with external Master Data Complicated cases 5 Conclusion
  • 11. Data-list based implementation (1/5) • Simple solution • Several extensions to do it: • Tony Parzgnat implementation https://github.com/parzgnat/alfresco-value-assistance • Angel Borroy implementation https://github.com/keensoft/alfresco-datalist-constraints • Alvex releases older 2.1
  • 12. <appearance> <field id=“dm:color”> <control template=“/form-controls/dynamic-dropdown.ftl”> <control-param name=“pickListName”>Color</control- param> </control> </field> </appearance> Data-list based implementation (2/5)
  • 14. Solves basic issue quickly •Business users can edit constraints in browser! Data-list based implementation (4/5)
  • 15. Updating a list of values Performance Permissions Share-Tier No native constraint Still no sync with external Master Data - Data-list based implementation (5/5)
  • 16. 1 What is Master Data? 2 3 Storing Master Data in Alfresco The Good The Bad 3.1 3.2 4 Complicated cases 5 Conclusion External Master Data
  • 17. External Master Data Assumptions: • Master data is in 3rd party systems. • These systems have remote APIs. Let's query them for reference data.
  • 18. Architectural Choice Share Tier vs Repo Tier
  • 20. Architectural Choice: Share-tier <field id=“alvexdt:contract”> <control template=“/alvex-masterData-select.ftl”> <control-param name=“url”> http://www.alvexsoftware.com/files/contacts_sample.json </control-param> <control-param name=“path”></control-param> <control-param name=“label”>contactCompany</control-param> <control-param name=“value”>contactCompany</control-param> </control> </field>
  • 22. Architectural Choice: Repo Tier <constraint name="alvexdt:docStatus" type="com.alvexcore.repo.masterdata.MasterDataConstraint"> <parameter name="dataSourceName"> <value>Test</value> </parameter> </constraint>
  • 23. 1 What is Master Data? 2 Storing Master Data in Alfresco 3 The Good The Bad 3.1 3.2 4 Complicated cases 5 Conclusion External Master Data
  • 24. External Master Data Quite obvious idea becomes tricky: • Live data vs Cached data • Performance and bottlenecks • Changes in reference data
  • 25. Dilemma: Live Data vs Cached Data Always actual Simple implementation Slow network Service is unavailable? Live Data May be outdated Complex implementation Fast Always available Cached Data
  • 26. Performance • Constraint is expected to be extremely fast • Just reading field with list constraint with N values causes N+1 call to Constraint class. • Caching of classifiers in Repo is not enough.
  • 27. Changes in Reference Data Update items Processing Updates Leave old value in existing fields Migrate existing fields to the new one Processing Deletion Allow creating new data from Alfresco Add new data
  • 33. Changes in Reference Data Update items Processing Updates Leave old value in existing fields Migrate existing fields to the new one Processing Deletion Allow creating new data from Alfresco Add new data
  • 35. 2 3 4 Storing Master Data in Alfresco External Master Data Complicated cases 4.1 4.2 Handling Tree-Like Structures Constraints Inter-Dependencies 4.3 One-To-Many Relations 5 Conclusion
  • 36. Complicated Cases Reference data is complex IRL: • Tree-like hierarchies • Inter-dependencies of constraints • One-to-many mapping (one master data object to many content object properties)
  • 38. Handing Tree-Like Structures • Jean Barmash implementation (2008) https://forums.alfresco.com/comment/80963#co mment-80963
  • 41. 1 What is Master Data? 2 3 4 Storing Master Data in Alfresco External Master Data Complicated cases 5 Conclusion
  • 42. Fear and Loathing Under The Hood
  • 45. Validations on Node Create/Edit
  • 46. Validations on Node Create/Edit
  • 47. Fear and Loathing Under The Hood: Summary Overloaded components: • /api/formdefinition • MasterDataAwareScriptFormService • MasterDataAwareIntegrityChecker • MasterDataAwarePropertiesIntegrityEvent
  • 48. Roadmap • Completely solve Complicated Cases • Extract Master Data from Alvex to a separate extension
  • 49. Resources GitHub Repo: https://github.com/ITDSystems/alvex Contacts: @aviriel & @avasyukov & @alvexsoftware ping@itdhq.com