oasis_archiv


OASIS | Open Archiving System with Internet Sharing

Middleware Interface

The picture "CIANT: Front-end-Middleware-DBA Interfaces" describes two main interfaces implemented in the OASIS System. In this chapter we are going to describe the interface provided by the OASIS Middleware and used by the OASIS Frontend. The interface is based on HTTP protocol. Similarly to XML-RPC, our protocol uses XML-based responses. No other existing standards have been implemented in the protocol. We have created a new protocol designed specifically for OASIS needs which is far simpler that than existing standards such as XML-RPC or SOAP/WSDL.

While the protocol itself is based on HTTP, it is inherently state-less. The only exception is the parameter REQUESTID.


 


CIANT: Front-end-Middleware-DBA Interfaces

The communication runs in two phases

1. HTTP Request (it does not matter whether we use GET or POST method). 2. HTTP Response with the XML payload. The interface functionality can also be tested directly from a web-browser, which simplifies debugging of the middleware component. The idea of testing of separate components in component-based architecture has been described in [11]. The author adverts the advantages of component-based system, mainly the possibility of black-box unit and integration testing.

After entering the right URL into the web-browser without any parameters, the middleware responses in XML format.


The first line of the response must be a standard XML header defining the document encoding, which is UTF-8 by default. The next element in the response, the <response> root-element, contains all the information of the particular response. In this trivial case the response does not carry any data. However, as we can see, middleware provides a list of <action> elements defining the provided functionality. We also notice that the element <note> informs us about the most important parameter through which we may call a particular action. The name of such a parameter is ACT by default. Parameters may be either mandatory or optional depending whether <error> or <debug> element has been used.


Action:AuthenticateUser

The action requires two parameters: USERNAME , PASSWORD. The response contains several elements <auth> depending on response from DB-Adapters.

Example


#
<auth dbaprefix="ciant" dbadapter="CIANT" success="1"></auth>
<auth dbaprefix="mv" dbadapter="Montevideo" success="1"></auth>
<auth dbaprefix="zkm" dbadapter="ZKM" success="1"></auth>


Action:Cleanup

 

The action requires a single parameter REQUESTID. The response contains the element <done/>.


 

Action:GetAllAttributes

The action requires a single parameter LANGUAGE. The response contains several <attribute> elements with additional sub-elements such as <name>, <type>, <label>...

Example

 


 

Action:GetDbAdapters

The action does not require any parameters. The response contains several <dbadapter> elements.

Example


#<dbadapter prefix="ciant" 
baseurl="http://149.156.114.5/~oasis/ciant/">CIANT</dbadapter>
 <dbadapter prefix="mv" 
baseurl="http://149.156.114.5/~oasis/mv/">Montevideo</dbadapter>
 <dbadapter prefix="zkm"   
baseurl="http://149.156.114.5/~oasis/zkm/">ZKM</dbadapter>


 

Action:GetDetail

The action requires two parameters: REQUESTID and RESOURCEID. The response contains a single <resource> element which comprises of many <attributes> elements. You should also notice that some attributes could be represented as multiple instances with the same name. The response might also contain additional elements <load-pending> or <seach-pending/> depending on middleware's asynchronous mechanism.

Example


 

Action:GetResults

Required parameters are: REQUESTID, OFFSET, COUNT, ORDERBY, ORDERASC, VISIBLE. The response contains a single <total> element and several <resource> in same format as GetDetail action.


Example


 

Action:Help

No parameters in the request and no data in the response.

 

Action:Search The action requires the parameter CONDITION. Optional parameters are LANGUAGE, USERNAME, PASSWORD and MEDIATYPE. The response contains a single <requestid> element. Example Bild

 

An article by Viliam Slimko

 


[TL]


 

<h1>Additional Links


→ Back to OASIS Database Adapter

→ Back to OASIS Middleware

→ Back to OASIS Platform

  Login