Content Transfer services

These services are offered by the CTM (Content Transfer Module), which is a client library to facilitate the content transfer management.


The CTM is present at the KP-Lab client tool level. It is an API that can be used by KP-Lab tools in order to manage content on a CR. When a KP-Lab tool intends to access/modify a resource, it makes a request on the CTM, that will, at its turn, communicate first with the KMS and then with the right gateway to a content repository. The CTM uses the services of the KMS and the services of the gateways to content repositories.

A CTM solution is present on each KP-Lab tool. The operations needed for the transfer of a content towards a CR can be based on FTP and/or HTTP mechanisms. The 1st release of this API is based on HTTP transfers. The CTM deals with more than the actual transfer of the resource, it deals with the KP-Lab tool requests, and the communication with the KMS in obtaining information on the available CRs, the authorization of the tool requests (this feature is not implemented for M12), as well as the communication with the specific Gateway to CR. All these stages can be observed in the collaboration diagram detailed in Figure 9 and Figure 10. An FTP mechanism has been envisaged because it remains the simplest and in most cases, the most efficient solution for file transfers, but we may foresee further studies for solutions based on peer-to-peer technologies, streaming, etc. For the M12 prototype, all file transfers are based on HTTP.

For further information on the overall architecture of KP-Lab, please refer to the following schema (logical and physical view):


  • createContent (int ContentRepositoryId, String content_Location) : String contentURI
  • getContent (String contentURI, String downloadRepositoryLocation): File
  • deleteContent (String contentURI): Boolean
  • findContent (int ContentRepositoryId, String resourceName) : Vector
  • updateContent (String contentURI, String newContentLocation) : boolean
  • getAvailableContentRepositories (): HashMap of content repository descriptors

Class Diagram

Class diagram of the CTM module


Two scenarios are given in the following, the getContent and the createContent.


The scenario for the creation of content is the following: the KP-lab tool calls the CTM for a createContent, indicating the targeted CR and the location of the resource to be uploaded. The CTM calls the right gateway to CR (the FileSystemServlet) that will transfer the desired resource towards the CR machine. The file is then inserted in the CR by the FileSystemGateway. The latter is managed by the FileSystemServlet. The KP-Lab tool is returned the contentURI of the content on the CR. Here is the UML diagram that depicts this scenario:

CTM createContent() UML Sequence diagram


The scenario for obtaining content is the following: the KP-lab tool calls the CTM for a getContent, indicating a contentURI previously obtained. The CTM calls the right gateway to CR (the FileSystemServlet), passing the contentURI. The FileSystemGateway managed by the FileSystemServlet retrieves its corresponding content, and stores it at an accessible location. The FileSystemServlet returns the emplacement of this location. The CTM than performs the HTTP file transfer from this location towards the client machine. Here is the UML diagram that depicts this scenario:

CTM createContent() UML Sequence diagram

Proxy settings

Through the setProps() method of the CTM, the client tool can set proxy properties that are then deal with by the CTM, in the communication with the different services: the GatewaysEngine, and the gateway to file system.


All information about the releases available for this API can be found at:

Development Development APIs


CTM.jpg Info on CTM.jpg 72427 bytes
archiComplete.jpg Info on archiComplete.jpg 54667 bytes
archiGlobal.jpg Info on archiGlobal.jpg 92293 bytes
createContent.jpg Info on createContent.jpg 43222 bytes
getContent.jpg Info on getContent.jpg 39815 bytes
  Page Info My Prefs Log in
This page (revision-14) last changed on 18:24 25-Mar-2017 by Patrick Ausderau.

Referenced by

JSPWiki v2.4.102