CaCORE
view release on metacpan or search on metacpan
html/ApplicationService.html view on Meta::CPAN
<?xml version="1.0" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>CaCORE::ApplicationService</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:" />
</head>
<body style="background-color: white">
<p><a name="__index__"></a></p>
<!-- INDEX BEGIN -->
<ul>
<li><a href="#applicationservice">ApplicationService</a></li>
<ul>
<li><a href="#synopsis">Synopsis</a></li>
<li><a href="#operations">Operations</a></li>
<li><a href="#description">Description</a></li>
<ul>
<li><a href="#search_via_applicationservice_queryobject__">Search via ApplicationService-><code>queryObject()</code></a></li>
<li><a href="#nested_search">Nested Search</a></li>
<li><a href="#result_set_control">Result Set Control</a></li>
<li><a href="#limitations">Limitations</a></li>
</ul>
<li><a href="#support">SUPPORT</a></li>
<li><a href="#author">AUTHOR</a></li>
<li><a href="#copyright_and_license">COPYRIGHT AND LICENSE</a></li>
</ul>
</ul>
<!-- INDEX END -->
<hr />
<p>
</p>
<hr />
<h1><a name="applicationservice">ApplicationService</a></h1>
<p>CaCORE::ApplicationService is a utility class that encapsulates webservice invocation to caCORE server. ApplicationService object follows the Singleton pattern, in that each program will ONLY contain one instance of such class. The URL being passe...
<p>
</p>
<h2><a name="synopsis">Synopsis</a></h2>
<pre>
<span class="keyword">my</span> <span class="variable">$appsvc</span> <span class="operator">=</span> <span class="variable">CaCORE::ApplicationService</span><span class="operator">-></span><span class="variable">instance</span><span class="oper...
<span class="string">"http://cabio.nci.nih.gov/cacore32/ws/caCOREService"</span><span class="operator">);</span>
<span class="keyword">my</span> <span class="variable">$gene</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">CaCORE::CaBIO::Gene</span><span class="operator">;</span>
<span class="variable">$gene</span><span class="operator">-></span><span class="variable">setSymbol</span><span class="operator">(</span><span class="string">"NAT2"</span><span class="operator">);</span>
<span class="keyword">my</span> <span class="variable">@chromos</span> <span class="operator">=</span> <span class="variable">$appsvc</span><span class="operator">-></span><span class="variable">queryObject</span><span class="operator">(</span><...
</pre>
<p>
</p>
<h2><a name="operations">Operations</a></h2>
<p>The following methods are supported in CaCORE::ApplicationService:</p>
<ul>
<li>
<p><code>instance(url)</code>: returns the ApplicationService instance. "url" is the service endpoint to a caCORE server. Example url: "http://cabio.nci.nih.gov/cacore30/ws/caCOREService".</p>
</li>
<li>
<p><code>queryObject(targetPath, sourceObject)</code>: invoke caCORE server to search for domain objects. This method returns at most 1000 objects because caCORE webservice automatically trims the result set to 1000 if actual result set is greater th...
</li>
<li>
<p><code>query(targetPath, sourceObject, startIndex, requestSize)</code>: invoke caCORE server to search for domain objects. Allows for specifying the return result set.</p>
</li>
</ul>
<p>Description of parameters used in the above functions:</p>
<ul>
<li>
<p><code>url</code>: the service endpoint to a caCORE server. Example url: "http://cabio.nci.nih.gov/cacore30/ws/caCOREService".</p>
</li>
<li>
<p><code>targetPath</code>: can be either a fully qualified target object name, such as "CaCORE::CaBIO::Gene"; or a series of comma separated fully qualified object names indicating a navigational path, such as "CaCORE::CaBIO::Taxon,Ca...
</li>
<li>
<p><code>sourceObject</code>: is the search criteria that specifies the search starting point.</p>
</li>
<li>
<p><code>startIndex</code> (for method "query" only): allows for control of the starting index of the result set. When presented, requestSize must also be present.</p>
</li>
<li>
<p><code>requestSize</code> (for method "query" only): defines the requested size. Server trims the return result to the requested size before returns. If the result set is smaller than the requested size, the result set is returned without...
</li>
</ul>
<p>
</p>
<h2><a name="description">Description</a></h2>
<p>
</p>
<h3><a name="search_via_applicationservice_queryobject__">Search via ApplicationService-><code>queryObject()</code></a></h3>
<p>This following example retrieves all Chromosomes whose associated genes have a symbol of "NAT2" using the direct and basic search function of ApplicationService->queryObject(). This <code>queryObject()</code> function encapsulates the...
<pre>
<span class="keyword">use</span> <span class="variable">CaCORE::ApplicationService</span><span class="operator">;</span>
<span class="keyword">use</span> <span class="variable">CaCORE::CaBIO</span><span class="operator">;</span>
<span class="keyword">my</span> <span class="variable">$gene</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">CaCORE::CaBIO::Gene</span><span class="operator">;</span>
<span class="variable">$gene</span><span class="operator">-></span><span class="variable">setSymbol</span><span class="operator">(</span><span class="string">"NAT2"</span><span class="operator">);</span>
<span class="keyword">my</span> <span class="variable">$appsvc</span> <span class="operator">=</span> <span class="variable">CaCORE::ApplicationService</span><span class="operator">-></span><span class="variable">instance</span><span class="oper...
<span class="string">"http://cabio.nci.nih.gov/cacore32/ws/caCOREService"</span><span class="operator">);</span>
<span class="keyword">my</span> <span class="variable">@chromos</span> <span class="operator">=</span> <span class="variable">$appsvc</span><span class="operator">-></span><span class="variable">queryObject</span><span class="operator">(</span><...
</pre>
<p>
</p>
<h3><a name="nested_search">Nested Search</a></h3>
<p>The first parameter in the search method can be constructed as a "navigation path" that reflects how these objects are related to the target object. This example retrieves all the Taxons related to the Chromosomes that are related to a G...
<pre>
<span class="keyword">my</span> <span class="variable">@taxons</span> <span class="operator">=</span> <span class="variable">$appsvc</span><span class="operator">-></span><span class="variable">queryObject</span><span class="operator">(</span>
<span class="string">"CaCORE::CaBIO::Taxon,CaCORE::CaBIO::Chromosome"</span><span class="operator">,</span> <span class="variable">$gene</span><span class="operator">);</span>
<span class="keyword">foreach</span> <span class="keyword">my</span> <span class="variable">$tx</span> <span class="operator">(</span><span class="variable">@taxons</span><span class="operator">){</span>
<span class="keyword">print</span> <span class="string">"id= "</span> <span class="operator">.</span> <span class="variable">$tx</span><span class="operator">-></span><span class="variable">getId</span> <span class="operator">.</span> <span cl...
<span class="operator">}</span>
</pre>
<p>
</p>
<h3><a name="result_set_control">Result Set Control</a></h3>
<p>Depending on the search criteria, a search may yield a large result set, which cause slower response time and increase the likelihood of failure. A throttle mechanism is provided by:</p>
<pre>
ApplicationService->query(targetClassName, knownSourceObject,
startingIndex, requestedSize)</pre>
<p>In the following example:
Parameter 1 indicates name of the target object, Gene, to be retrieved
Parameter 2 indicates search criteria. In this case, is the chromosome associated with the genes.
Parameter 3 indicates the requested start index, 10
Parameter 4 indicates the requested size, 20</p>
<pre>
<span class="keyword">my</span> <span class="variable">@geneSet</span> <span class="operator">=</span> <span class="variable">$appsvc</span><span class="operator">-></span><span class="variable">query</span><span class="operator">(</span><span c...
</pre>
<p>This will retrieve related Gene objects from a Chromosome object, the result set starts from index number 10, and contains up to 20 Gene objects.</p>
<p>
</p>
<h3><a name="limitations">Limitations</a></h3>
( run in 1.044 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )