wiki:LocalHrefProtocol

Version 1 (modified by jeichar, 12 years ago) ( diff )

--

Local:// protocol for Xlinks

Date 2012/09/14
Contact(s) Jesse Eichar
Last edited
Status Proposed
Assigned to release 2.9.x
Resources Jesse personal time
Code https://github.com/jesseeichar/core-geonetwork/commits/feature/local-protocol-xlinks

Overview

For performance and portability this proposal adds a local:// protocol for xlinks. When the Xlink processor encounters this protocol, the processor will directly invoke dispatch on the dispatch manager, instead of making a more expensive http request.

Proposal Type

  • Type: XLink
  • App: Jeeves
  • Module:

  • Email discussions:
  • IRC discussions:
  • Related work:

Voting History

  • None as yet

Proposal

For performance and portability this proposal adds a local:// protocol for xlinks. When the Xlink processor encounters this protocol, the processor will directly invoke dispatch on the dispatch manager, instead of making a more expensive http request.

The benefit of using local:// protocol are three fold.

  1. Performance. The request is made without having to write to and from a socket.
  2. No new threads need to be spawned to resolve local:// xlinks
  3. Portability. The server url is not part of the href so the server name, port and even the servlet name can be changed without having to update the xlink hrefs.

In the normal case the behaviour is the same. This just adds the option of using local:// hrefs.

The difference between local/relative hrefs and local:// hrefs are: local/relative hrefs are local within a metadata document. local:// get XML from any service like: local://keyword.get?thesaurus=123&id=123

Backwards Compatibility Issues

Minor Changes to the Processor and ServiceContext API

Risks

Participants

  • As above
Note: See TracWiki for help on using the wiki.