wiki:LocalHrefProtocol

Local:// protocol for Xlinks

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

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
Last modified 12 years ago Last modified on 10/29/12 05:01:36
Note: See TracWiki for help on using the wiki.