SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
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 don’t 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

Contenu connexe

Similaire à Navigation Service

Apache Accumulo 1.8.0 Overview
Apache Accumulo 1.8.0 OverviewApache Accumulo 1.8.0 Overview
Apache Accumulo 1.8.0 OverviewJosh Elser
 
Eaiesb Migration Approach
Eaiesb Migration ApproachEaiesb Migration Approach
Eaiesb Migration ApproachVijay Reddy
 
Atf 3 q15-7 - delivering cloud scale workflow automation control and visibili...
Atf 3 q15-7 - delivering cloud scale workflow automation control and visibili...Atf 3 q15-7 - delivering cloud scale workflow automation control and visibili...
Atf 3 q15-7 - delivering cloud scale workflow automation control and visibili...Mason Mei
 
Integrating with SAP FIX and HL7
Integrating with SAP FIX and HL7Integrating with SAP FIX and HL7
Integrating with SAP FIX and HL7WSO2
 
What’s new in Nuxeo 5.2?
What’s new in Nuxeo 5.2?What’s new in Nuxeo 5.2?
What’s new in Nuxeo 5.2?Nuxeo
 
Orchestration service v2
Orchestration service v2Orchestration service v2
Orchestration service v2Raman Gupta
 
Oracle SOA Suite 12.2.1 new features
Oracle SOA Suite 12.2.1 new featuresOracle SOA Suite 12.2.1 new features
Oracle SOA Suite 12.2.1 new featuresMaarten Smeets
 
Migrating very large site collections
Migrating very large site collectionsMigrating very large site collections
Migrating very large site collectionskiwiboris
 
Micro services vs hadoop
Micro services vs hadoopMicro services vs hadoop
Micro services vs hadoopGergely Devenyi
 
E business suite r12.2 changes for database administrators
E business suite r12.2 changes for database administratorsE business suite r12.2 changes for database administrators
E business suite r12.2 changes for database administratorsSrinivasa Pavan Marti
 
E business suite r12.2 changes for database administrators
E business suite r12.2 changes for database administratorsE business suite r12.2 changes for database administrators
E business suite r12.2 changes for database administratorsSrinivasa Pavan Marti
 
One daytalk hbraun_oct2011
One daytalk hbraun_oct2011One daytalk hbraun_oct2011
One daytalk hbraun_oct2011hbraun
 
Hive ACID Apache BigData 2016
Hive ACID Apache BigData 2016Hive ACID Apache BigData 2016
Hive ACID Apache BigData 2016alanfgates
 
Apache Hive on ACID
Apache Hive on ACIDApache Hive on ACID
Apache Hive on ACIDHortonworks
 
Migrating Very Large Site Collections (SPSDC)
Migrating Very Large Site Collections (SPSDC)Migrating Very Large Site Collections (SPSDC)
Migrating Very Large Site Collections (SPSDC)kiwiboris
 
New Exchange Server 2013 Architecture
New Exchange Server 2013 ArchitectureNew Exchange Server 2013 Architecture
New Exchange Server 2013 ArchitectureKhalid Al-Ghamdi
 
Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)Shameer Thaha Koya
 
SOA & WebLogic - Lift & Shift to the Cloud
SOA & WebLogic - Lift & Shift to the CloudSOA & WebLogic - Lift & Shift to the Cloud
SOA & WebLogic - Lift & Shift to the CloudSimon Haslam
 

Similaire à Navigation Service (20)

Apache Accumulo 1.8.0 Overview
Apache Accumulo 1.8.0 OverviewApache Accumulo 1.8.0 Overview
Apache Accumulo 1.8.0 Overview
 
Eaiesb Migration Approach
Eaiesb Migration ApproachEaiesb Migration Approach
Eaiesb Migration Approach
 
Atf 3 q15-7 - delivering cloud scale workflow automation control and visibili...
Atf 3 q15-7 - delivering cloud scale workflow automation control and visibili...Atf 3 q15-7 - delivering cloud scale workflow automation control and visibili...
Atf 3 q15-7 - delivering cloud scale workflow automation control and visibili...
 
Integrating with SAP FIX and HL7
Integrating with SAP FIX and HL7Integrating with SAP FIX and HL7
Integrating with SAP FIX and HL7
 
What’s new in Nuxeo 5.2?
What’s new in Nuxeo 5.2?What’s new in Nuxeo 5.2?
What’s new in Nuxeo 5.2?
 
Orchestration service v2
Orchestration service v2Orchestration service v2
Orchestration service v2
 
Sun Web Server Brief
Sun Web Server BriefSun Web Server Brief
Sun Web Server Brief
 
Oracle SOA Suite 12.2.1 new features
Oracle SOA Suite 12.2.1 new featuresOracle SOA Suite 12.2.1 new features
Oracle SOA Suite 12.2.1 new features
 
Migrating very large site collections
Migrating very large site collectionsMigrating very large site collections
Migrating very large site collections
 
Micro services vs hadoop
Micro services vs hadoopMicro services vs hadoop
Micro services vs hadoop
 
E business suite r12.2 changes for database administrators
E business suite r12.2 changes for database administratorsE business suite r12.2 changes for database administrators
E business suite r12.2 changes for database administrators
 
E business suite r12.2 changes for database administrators
E business suite r12.2 changes for database administratorsE business suite r12.2 changes for database administrators
E business suite r12.2 changes for database administrators
 
One daytalk hbraun_oct2011
One daytalk hbraun_oct2011One daytalk hbraun_oct2011
One daytalk hbraun_oct2011
 
Hive ACID Apache BigData 2016
Hive ACID Apache BigData 2016Hive ACID Apache BigData 2016
Hive ACID Apache BigData 2016
 
Apache Hive on ACID
Apache Hive on ACIDApache Hive on ACID
Apache Hive on ACID
 
Migrating Very Large Site Collections (SPSDC)
Migrating Very Large Site Collections (SPSDC)Migrating Very Large Site Collections (SPSDC)
Migrating Very Large Site Collections (SPSDC)
 
Sun Web Server Brief
Sun Web Server BriefSun Web Server Brief
Sun Web Server Brief
 
New Exchange Server 2013 Architecture
New Exchange Server 2013 ArchitectureNew Exchange Server 2013 Architecture
New Exchange Server 2013 Architecture
 
Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)
 
SOA & WebLogic - Lift & Shift to the Cloud
SOA & WebLogic - Lift & Shift to the CloudSOA & WebLogic - Lift & Shift to the Cloud
SOA & WebLogic - Lift & Shift to the Cloud
 

Dernier

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 

Dernier (20)

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 

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 don’t 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