Difference between revisions of "URI Resolver"

From Gcube Wiki
Jump to: navigation, search
(SMP Resolver)
(SMP Resolver)
Line 12: Line 12:
  
  
The http URI can be also use to retrieve files using wget or trough a Web Browser.. just clicking the link :
+
The http URI can be also use to retrieve files using wget or trough a Web Browser.. just click the link :
  
 
  [ http://dev.d4science.org/uri-resolver/smp?smp-uri=smp://Wikipedia_logo_silver.png?5ezvFfBOLqaqBlwCEtAvz4ch5BUu1ag3yftpCvV+gayz9bAtSsnO1/sX6pemTKbDe0qbchLexXeWgGcJlskYE8td9QSDXSZj5VSl9kdN9SN0/LRYaWUZuP4Q1J7lEiwkU4GKPsiD6PDRVcT4QAqTEy5hSIbr6o4Y ]  
 
  [ http://dev.d4science.org/uri-resolver/smp?smp-uri=smp://Wikipedia_logo_silver.png?5ezvFfBOLqaqBlwCEtAvz4ch5BUu1ag3yftpCvV+gayz9bAtSsnO1/sX6pemTKbDe0qbchLexXeWgGcJlskYE8td9QSDXSZj5VSl9kdN9SN0/LRYaWUZuP4Q1J7lEiwkU4GKPsiD6PDRVcT4QAqTEy5hSIbr6o4Y ]  

Revision as of 08:01, 25 April 2013

The URI Resolver is an HTTP URI resolver implemented as an HTTP servlet which gives access trough HTTP to different protocols URIs.

SMP Resolver

The first version of the component is able to give HTTP resolution to SM protocol URIs [1].

Once deployed in a servlet container as Tomcat, the servlet can be used to resolve SMP URI as follows:

URL url = new URL("http://<hostname>:<port>/uri-resolver/smp?smp-uri=smp://Wikipedia_logo_silver.png?5ezvFfBOLqaqBlwCEtAvz4ch5B/td9QSDXSZj5VSl9kdN9SN0/LRYaWUZuP4Q1J7.....");


The http URI can be also use to retrieve files using wget or trough a Web Browser.. just click the link :

[ http://dev.d4science.org/uri-resolver/smp?smp-uri=smp://Wikipedia_logo_silver.png?5ezvFfBOLqaqBlwCEtAvz4ch5BUu1ag3yftpCvV+gayz9bAtSsnO1/sX6pemTKbDe0qbchLexXeWgGcJlskYE8td9QSDXSZj5VSl9kdN9SN0/LRYaWUZuP4Q1J7lEiwkU4GKPsiD6PDRVcT4QAqTEy5hSIbr6o4Y ] 

Runtime Resource

The address and the configuration information of the servlet are registered on the gCube Information System as Runtime Resource. This in an example of the Runtime Resource to configure:

<Profile>
        
      <Category>Service</Category>
        
      <Name>HTTP-URI-Resolver</Name>
        
      <Description>HTTP URI Resolver</Description>
        
      <Platform>
            
         <Name>tomcat</Name>
            
         <Version>6</Version>
            
         <MinorVersion>0</MinorVersion>
            
         <RevisionVersion>0</RevisionVersion>
            
         <BuildVersion>0</BuildVersion>
        
      </Platform>
        
      <RunTime>
            
         <HostedOn>dev.d4science.org</HostedOn>
            
         <GHN UniqueID="" />
            
         <Status>READY</Status>
        
      </RunTime>
        
      <AccessPoint>
            
         <Description>SMP URI Resolver</Description>
            
         <Interface>
                
            <Endpoint EntryName="smp">http://dev.d4science.org/uri-resolver/smp</Endpoint>
            
         </Interface>
            
         <AccessData>
                
            <Username />
                
            <Password>6vW1u92cpdgHzYAgIurn9w==</Password>
            
         </AccessData>
            
         <Properties>
                
            <Property>
                    
               <Name>parameter</Name>
                    
               <Value encrypted="false">smp-uri</Value>
                
            </Property>
            
         </Properties>
        
      </AccessPoint>
    
   </Profile>


Query

The following code snippet can be used to retrieve from the gCube Information System the info to configure the resolver

 
        ScopeProvider.instance.set(<scope>);
 
	XQuery query = queryFor(ServiceEndpoint.class);
 
	query.addCondition("$resource/Profile/Name/text() eq 'HTTP-URI-Resolver'").setResult("$resource/Profile/AccessPoint");
 
	DiscoveryClient<AccessPoint> client = clientFor(AccessPoint.class);
 
	List<AccessPoint> endpoints = client.submit(query);
 
	if (endpoints.size() == 0)
		throw new Exception("No Resolver available");
 
	//Base Address
        System.out.println(endpoints.get(0).address());
        //Query URL parameter
	System.out.println(endpoints.get(0).propertyMap().get("parameter").value());