| 1 | = Local:// protocol for Xlinks = |
| 2 | |
| 3 | || '''Date''' || 2012/09/14 || |
| 4 | || '''Contact(s)''' || [http://wiki.osgeo.org/wiki/User:Jeichar Jesse Eichar] || |
| 5 | || '''Last edited''' || || |
| 6 | || '''Status''' || Proposed || |
| 7 | || '''Assigned to release''' || 2.9.x || |
| 8 | || '''Resources''' || Jesse personal time || |
| 9 | || '''Code''' || https://github.com/jesseeichar/core-geonetwork/commits/feature/local-protocol-xlinks || |
| 10 | |
| 11 | == Overview == |
| 12 | |
| 13 | 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. |
| 14 | |
| 15 | === Proposal Type === |
| 16 | * '''Type''': XLink |
| 17 | * '''App''': Jeeves |
| 18 | * '''Module''': |
| 19 | |
| 20 | === Links === |
| 21 | |
| 22 | * '''Email discussions''': |
| 23 | * '''IRC discussions''': |
| 24 | * '''Related work''': |
| 25 | |
| 26 | |
| 27 | === Voting History === |
| 28 | |
| 29 | * None as yet |
| 30 | |
| 31 | ---- |
| 32 | |
| 33 | |
| 34 | == Proposal == |
| 35 | |
| 36 | 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. |
| 37 | |
| 38 | The benefit of using local:// protocol are three fold. |
| 39 | |
| 40 | 1. Performance. The request is made without having to write to and from a socket. |
| 41 | 1. No new threads need to be spawned to resolve local:// xlinks |
| 42 | 1. 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. |
| 43 | |
| 44 | In the normal case the behaviour is the same. This just adds the option of using local:// hrefs. |
| 45 | |
| 46 | 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 |
| 47 | |
| 48 | |
| 49 | === Backwards Compatibility Issues === |
| 50 | |
| 51 | Minor Changes to the Processor and ServiceContext API |
| 52 | |
| 53 | == Risks == |
| 54 | |
| 55 | |
| 56 | == Participants == |
| 57 | * As above |