Alfresco Summit 2014 (London)
Though best practice is to leverage Alfresco through the well defined API's, it can be useful to understand the internals of the repository so that your development efforts are the most effective. A deep understanding of the repository will help you to evaluate performance bottlenecks, look for bugs, or make contributions. This session provides an overview of the repository internals, including the major components, the key services, subsystems, and database. We then provide an example where we leverage the repository in a micro-service architecture while building Alfresco's future cloud products and show how the different parts of the repository interact to fulfill requests.
http://summit.alfresco.com/london/sessions/diving-deep-alfresco-repository
https://www.youtube.com/watch?v=TAE9UjC0xxc
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style architecture)
1. Deep Dive – Alfresco Core Repository
… embedded in a micro-services style architecture!
Credits:
h+p://www.redbullstratos.com/
Jan Vonka
London, October 2014
16. Data Access Objects (DAOs)
• Java Interfaces & Implementations!
• Package: org.alfresco.repo.domain
• *DAO.java, *DAOImpl.java
• MyBatis SQL mapper!
• (fully) since 3.2.x - also used by Activiti
• mostly common ANSI SQL
• dialect-specific SQL (extended config builder)
• see *SqlMap.xml
• DomainTestSuite!
• see DAO unit tests
17. DB types
!!!!!!!
Enterprise
Community
(*) subject to change - refer to certified stacks
(**) dev/test only - see for example Alfresco SDK 2.0 (Maven-based) or Activiti
(**)
18. Alf_* DB schema (partial)
!
Store
Node
Node_ProperOes
Node_Aspects
Child_Assoc
(parent/child)
Node_Assoc
(source/target)
Qname
Content_Data
Namespace
TransacOon
Server
Locale
Encoding
Mimetype
Content_Url
21. Micro-services overview
• Architectural style!
• suite of “small” independently deployable services
• each is simple & specific – do “one” thing well
• Distributed services & data!
• separate loosely-coupled process
• collaborate - (light-weight) communication
• In theory, can be …!
• independently: develop, deploy, scale, manage
• heterogeneous teams, languages, stacks, protocols
33. Recap
• Repository Architecture!
• Diving in deeper to the core!
• Micro-services overview!
• Intelligent Process App example!
• Further details …!