SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
External Master Data in Alfresco: Integrating and Keeping Metadata Consistent Across Multiple Systems
Real life content is always tightly integrated with master data. Reference data to be used for the content is usually stored in a third-party enterprise system (or even several different systems) and should be consumed by Alfresco.
Real life content is always tightly integrated with master data. Reference data to be used for the content is usually stored in a third-party enterprise system (or even several different systems) and should be consumed by Alfresco.
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
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
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.
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)
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