際際滷

際際滷Share a Scribd company logo
Navigation




Copyright 息 2010. All rights Reserved, eXo Platform SAS
Navigation service
≒ Low level API between the portal and the
   MOP
≒ A data controller focusing on
   State management
     ≒ Historical problem
     ≒ Concurrent load/save/merge
     ≒ Correctness
   Model-less design
     ≒ Model API easy to plug
     ≒ Change notifications
   Performances
     ≒ Load what is necessary
     ≒ Built-in cache
             Copyright 息 2010. All rights Reserved, eXo Platform SAS
Navigation service operations
≒ Load
   Load a fragment of a larger tree
   Create a detached snapshot that can be modified
≒ Update
   Update a fragment with the most recent state
   Suppose no transient changes
≒ Rebase
   Same as update but cope with changes
≒ Save
   Same as rebase but save to the persistent store

            Copyright 息 2010. All rights Reserved, eXo Platform SAS
Data life cycle and flow
                                                 Rebased	
 油state	
 油




                                                                                         Persistent	
 油state	
 油
   	
 油Checkout	
 油state	
 油




                               Copyright 息 2010. All rights Reserved, eXo Platform SAS
Operation workflow

              Update	
 油             Rebase	
 油               Save	
 油


                              Get	
 油fresh	
 油copy	
 油



                                           Rebase	
 油changes	
 油


                                                           Save	
 油to	
 油
                                                           storage	
 油


                            Update	
 油checkout	
 油



           Copyright 息 2010. All rights Reserved, eXo Platform SAS
Conflict resolution
≒ The rebase operations takes a list of changes
   and replay on another tree, each change
    Operate on same input  OK
    Operate on different output  merge
≒ Conflict solved example with (a,b)
    User 1 insert 1: (a,1,b)
    User 2 insert 2 and save concurrently: (a,2,b)
    User 1 saves: (a,1,2,b)
≒ Conflict unsolved example with (a)
    User 1 insert 1: (a,a/1)
    User 2 removes a: ()
    User 1 saves: failure
             Copyright 息 2010. All rights Reserved, eXo Platform SAS
Model-less design

≒ Navigation are used for different purposes
   Internal UserNode objects
   GateIn API
≒ NodeContext<N>
   <N> is the model / API : cares about usage
   NodeContext : cares about state
≒ The NodeModel<N> factory
   Provided by the client
   Used by the service
            Copyright 息 2010. All rights Reserved, eXo Platform SAS
Tree scope

≒ Required by most operation performed on
   the tree
≒ Defines what is loaded
   Scope.SINGLE
   Scope.CHILDREN
   Scope.GRANDCHILDREN
   Scope.ALL
≒ Plugable eventually (visitor)

             Copyright 息 2010. All rights Reserved, eXo Platform SAS
Node changes

≒ Operations modifying the
   NodeContext<N> generate a flow of
   changes
≒ Used to synchronize an existing data
   model based on <N>
   Used by the navigation editor to update the
     state
   Used by navigation portlet to determine if the
     navigation should be refreshed

           Copyright 息 2010. All rights Reserved, eXo Platform SAS
Node filtering

≒ The service has a built in node filtering
   capabilities
    Access control (inferred by underlying page)
    Time based: TEMPORAL nodes
    Use case based
      ≒ Navigation portlets dont display SYSTEM nodes
      ≒ Navigation editor displays SYSTEM node but only
         for administrators



             Copyright 息 2010. All rights Reserved, eXo Platform SAS
Internal API
≒ UserPortal
   Models the relationship between a user and a
     portal
   Replaces the UserPortalConfig object
   Built on top of the NavigationService
   Defines notion of UserPortalFilter to filter
     navigations
   Resolve path to nodes
     ≒ Future legacy
     ≒ Emulation will be performed to redirect to correct
        page
               Copyright 息 2010. All rights Reserved, eXo Platform SAS
Internal API

≒ UserNode
   The <N> of UserContext
   Translates the localizable values (label)
   Remove notion of stored URI, instead URI is
     rebuilt from its path




               Copyright 息 2010. All rights Reserved, eXo Platform SAS
Navigation controller

≒ An effort started 6 months ago and mostly
   finished (85%)
   Decouple the request URL and the handling in
     the portal in a flexible and configurable
     manner
   Associate a unique resource to an URL (REST)
≒ Will be merged after the new navigation
   service is done


            Copyright 息 2010. All rights Reserved, eXo Platform SAS
URL handling

≒ Navigation controller provides an API for
   generating URL from a resource
≒ In particular the portal needs to generate
   URL for a given navigation node




           Copyright 息 2010. All rights Reserved, eXo Platform SAS
Performances concerns

≒ On default navigation, SQL activity was
   reduced by 遜
≒ On large navigation, SQL activity is
   dominated by the first 2 levels instead of
   the whole navigation previously
≒ Other fixes were applied to handle
   numerous pages
   Better pagination support
   Functional changes
           Copyright 息 2010. All rights Reserved, eXo Platform SAS
Roadmap
≒ Navigation Service
   developed against exogtn 3.1.7-REBASED
     (very close to EPP 5.1)
   ported to exogtn 3.2.x for 3.2.0-beta3 (end of
     June) and GateIn trunk
≒ Navigation i18n
   Will be part of 3.2.0-beta3 and GateIn trunk
≒ Navigation controller
   The current work will be remerged after
     3.2.0-beta3 and finished

           Copyright 息 2010. All rights Reserved, eXo Platform SAS
Next steps

≒ Apply the same model to pages and
   layouts after GateIn 3.2




             Copyright 息 2010. All rights Reserved, eXo Platform SAS

More Related Content

Similar to Navigation Service (20)

PPTX
Apache Accumulo 1.8.0 Overview
Josh Elser
PPS
Eaiesb Migration Approach
Vijay Reddy
PDF
Atf 3 q15-7 - delivering cloud scale workflow automation control and visibili...
Mason Mei
PDF
Integrating with SAP FIX and HL7
WSO2
PDF
Whats new in Nuxeo 5.2?
Nuxeo
PPTX
Orchestration service v2
Raman Gupta
ODP
Sun Web Server Brief
Murthy Chintalapati
PPTX
Oracle SOA Suite 12.2.1 new features
Maarten Smeets
PPTX
Migrating very large site collections
kiwiboris
PDF
Cisco IOS XE Routers ASR 1000 & ISR 4000 The Evolution of Converged Network E...
JonathanS51
PPTX
Micro services vs hadoop
Gergely Devenyi
PPTX
E business suite r12.2 changes for database administrators
Srinivasa Pavan Marti
PPTX
E business suite r12.2 changes for database administrators
Srinivasa Pavan Marti
PDF
One daytalk hbraun_oct2011
hbraun
PPTX
Hive ACID Apache BigData 2016
alanfgates
PPTX
Apache Hive on ACID
Hortonworks
PPTX
Migrating Very Large Site Collections (SPSDC)
kiwiboris
ODP
Sun Web Server Brief
Murthy Chintalapati
PDF
New Exchange Server 2013 Architecture
Khalid Al-Ghamdi
PPT
Composite Apps using SCA (Service Component Architecture)
Shameer Thaha Koya
Apache Accumulo 1.8.0 Overview
Josh Elser
Eaiesb Migration Approach
Vijay Reddy
Atf 3 q15-7 - delivering cloud scale workflow automation control and visibili...
Mason Mei
Integrating with SAP FIX and HL7
WSO2
Whats new in Nuxeo 5.2?
Nuxeo
Orchestration service v2
Raman Gupta
Sun Web Server Brief
Murthy Chintalapati
Oracle SOA Suite 12.2.1 new features
Maarten Smeets
Migrating very large site collections
kiwiboris
Cisco IOS XE Routers ASR 1000 & ISR 4000 The Evolution of Converged Network E...
JonathanS51
Micro services vs hadoop
Gergely Devenyi
E business suite r12.2 changes for database administrators
Srinivasa Pavan Marti
E business suite r12.2 changes for database administrators
Srinivasa Pavan Marti
One daytalk hbraun_oct2011
hbraun
Hive ACID Apache BigData 2016
alanfgates
Apache Hive on ACID
Hortonworks
Migrating Very Large Site Collections (SPSDC)
kiwiboris
Sun Web Server Brief
Murthy Chintalapati
New Exchange Server 2013 Architecture
Khalid Al-Ghamdi
Composite Apps using SCA (Service Component Architecture)
Shameer Thaha Koya

Recently uploaded (20)

PPTX
01_Approach Cyber- DORA Incident Management.pptx
FinTech Belgium
PDF
LLM Search Readiness Audit - Dentsu x SEO Square - June 2025.pdf
Nick Samuel
PPSX
Usergroup - OutSystems Architecture.ppsx
Kurt Vandevelde
PDF
Java 25 and Beyond - A Roadmap of Innovations
Ana-Maria Mihalceanu
PDF
Unlocking FME Flows Potential: Architecture Design for Modern Enterprises
Safe Software
PDF
Database Benchmarking for Performance Masterclass: Session 1 - Benchmarking F...
ScyllaDB
PDF
FME as an Orchestration Tool with Principles From Data Gravity
Safe Software
PDF
From Chatbot to Destroyer of Endpoints - Can ChatGPT Automate EDR Bypasses (1...
Priyanka Aash
PDF
UiPath Agentic AI ile Ak脹ll脹 Otomasyonun Yeni a脹
UiPathCommunity
PDF
The Growing Value and Application of FME & GenAI
Safe Software
PDF
Kubernetes - Architecture & Components.pdf
geethak285
PDF
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
PDF
Redefining Work in the Age of AI - What to expect? How to prepare? Why it mat...
Malinda Kapuruge
PDF
How to Visualize the Spatio-Temporal Data Using CesiumJS
SANGHEE SHIN
PDF
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
PPTX
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Pitch ...
Michele Kryston
PPTX
Smarter Governance with AI: What Every Board Needs to Know
OnBoard
PDF
Automating the Geo-Referencing of Historic Aerial Photography in Flanders
Safe Software
PDF
Enhancing Environmental Monitoring with Real-Time Data Integration: Leveragin...
Safe Software
PPTX
reInforce 2025 Lightning Talk - Scott Francis.pptx
ScottFrancis51
01_Approach Cyber- DORA Incident Management.pptx
FinTech Belgium
LLM Search Readiness Audit - Dentsu x SEO Square - June 2025.pdf
Nick Samuel
Usergroup - OutSystems Architecture.ppsx
Kurt Vandevelde
Java 25 and Beyond - A Roadmap of Innovations
Ana-Maria Mihalceanu
Unlocking FME Flows Potential: Architecture Design for Modern Enterprises
Safe Software
Database Benchmarking for Performance Masterclass: Session 1 - Benchmarking F...
ScyllaDB
FME as an Orchestration Tool with Principles From Data Gravity
Safe Software
From Chatbot to Destroyer of Endpoints - Can ChatGPT Automate EDR Bypasses (1...
Priyanka Aash
UiPath Agentic AI ile Ak脹ll脹 Otomasyonun Yeni a脹
UiPathCommunity
The Growing Value and Application of FME & GenAI
Safe Software
Kubernetes - Architecture & Components.pdf
geethak285
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
Redefining Work in the Age of AI - What to expect? How to prepare? Why it mat...
Malinda Kapuruge
How to Visualize the Spatio-Temporal Data Using CesiumJS
SANGHEE SHIN
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Pitch ...
Michele Kryston
Smarter Governance with AI: What Every Board Needs to Know
OnBoard
Automating the Geo-Referencing of Historic Aerial Photography in Flanders
Safe Software
Enhancing Environmental Monitoring with Real-Time Data Integration: Leveragin...
Safe Software
reInforce 2025 Lightning Talk - Scott Francis.pptx
ScottFrancis51
Ad

Navigation Service

  • 1. Navigation Copyright 息 2010. All rights Reserved, eXo Platform SAS
  • 2. Navigation service ≒ Low level API between the portal and the MOP ≒ A data controller focusing on State management ≒ Historical problem ≒ Concurrent load/save/merge ≒ Correctness Model-less design ≒ Model API easy to plug ≒ Change notifications Performances ≒ Load what is necessary ≒ Built-in cache Copyright 息 2010. All rights Reserved, eXo Platform SAS
  • 3. Navigation service operations ≒ Load Load a fragment of a larger tree Create a detached snapshot that can be modified ≒ Update Update a fragment with the most recent state Suppose no transient changes ≒ Rebase Same as update but cope with changes ≒ Save Same as rebase but save to the persistent store Copyright 息 2010. All rights Reserved, eXo Platform SAS
  • 4. Data life cycle and flow Rebased 油state 油 Persistent 油state 油 油Checkout 油state 油 Copyright 息 2010. All rights Reserved, eXo Platform SAS
  • 5. Operation workflow Update 油 Rebase 油 Save 油 Get 油fresh 油copy 油 Rebase 油changes 油 Save 油to 油 storage 油 Update 油checkout 油 Copyright 息 2010. All rights Reserved, eXo Platform SAS
  • 6. Conflict resolution ≒ The rebase operations takes a list of changes and replay on another tree, each change Operate on same input OK Operate on different output merge ≒ Conflict solved example with (a,b) User 1 insert 1: (a,1,b) User 2 insert 2 and save concurrently: (a,2,b) User 1 saves: (a,1,2,b) ≒ Conflict unsolved example with (a) User 1 insert 1: (a,a/1) User 2 removes a: () User 1 saves: failure Copyright 息 2010. All rights Reserved, eXo Platform SAS
  • 7. Model-less design ≒ Navigation are used for different purposes Internal UserNode objects GateIn API ≒ NodeContext<N> <N> is the model / API : cares about usage NodeContext : cares about state ≒ The NodeModel<N> factory Provided by the client Used by the service Copyright 息 2010. All rights Reserved, eXo Platform SAS
  • 8. Tree scope ≒ Required by most operation performed on the tree ≒ Defines what is loaded Scope.SINGLE Scope.CHILDREN Scope.GRANDCHILDREN Scope.ALL ≒ Plugable eventually (visitor) Copyright 息 2010. All rights Reserved, eXo Platform SAS
  • 9. Node changes ≒ Operations modifying the NodeContext<N> generate a flow of changes ≒ Used to synchronize an existing data model based on <N> Used by the navigation editor to update the state Used by navigation portlet to determine if the navigation should be refreshed Copyright 息 2010. All rights Reserved, eXo Platform SAS
  • 10. Node filtering ≒ The service has a built in node filtering capabilities Access control (inferred by underlying page) Time based: TEMPORAL nodes Use case based ≒ Navigation portlets dont display SYSTEM nodes ≒ Navigation editor displays SYSTEM node but only for administrators Copyright 息 2010. All rights Reserved, eXo Platform SAS
  • 11. Internal API ≒ UserPortal Models the relationship between a user and a portal Replaces the UserPortalConfig object Built on top of the NavigationService Defines notion of UserPortalFilter to filter navigations Resolve path to nodes ≒ Future legacy ≒ Emulation will be performed to redirect to correct page Copyright 息 2010. All rights Reserved, eXo Platform SAS
  • 12. Internal API ≒ UserNode The <N> of UserContext Translates the localizable values (label) Remove notion of stored URI, instead URI is rebuilt from its path Copyright 息 2010. All rights Reserved, eXo Platform SAS
  • 13. Navigation controller ≒ An effort started 6 months ago and mostly finished (85%) Decouple the request URL and the handling in the portal in a flexible and configurable manner Associate a unique resource to an URL (REST) ≒ Will be merged after the new navigation service is done Copyright 息 2010. All rights Reserved, eXo Platform SAS
  • 14. URL handling ≒ Navigation controller provides an API for generating URL from a resource ≒ In particular the portal needs to generate URL for a given navigation node Copyright 息 2010. All rights Reserved, eXo Platform SAS
  • 15. Performances concerns ≒ On default navigation, SQL activity was reduced by 遜 ≒ On large navigation, SQL activity is dominated by the first 2 levels instead of the whole navigation previously ≒ Other fixes were applied to handle numerous pages Better pagination support Functional changes Copyright 息 2010. All rights Reserved, eXo Platform SAS
  • 16. Roadmap ≒ Navigation Service developed against exogtn 3.1.7-REBASED (very close to EPP 5.1) ported to exogtn 3.2.x for 3.2.0-beta3 (end of June) and GateIn trunk ≒ Navigation i18n Will be part of 3.2.0-beta3 and GateIn trunk ≒ Navigation controller The current work will be remerged after 3.2.0-beta3 and finished Copyright 息 2010. All rights Reserved, eXo Platform SAS
  • 17. Next steps ≒ Apply the same model to pages and layouts after GateIn 3.2 Copyright 息 2010. All rights Reserved, eXo Platform SAS