Your SlideShare is downloading. ×
0
Navigation Service
Navigation Service
Navigation Service
Navigation Service
Navigation Service
Navigation Service
Navigation Service
Navigation Service
Navigation Service
Navigation Service
Navigation Service
Navigation Service
Navigation Service
Navigation Service
Navigation Service
Navigation Service
Navigation Service
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Navigation Service

593

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
593
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. NavigationCopyright © 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

×