Changeset 6177 for SRUAggregator


Ignore:
Timestamp:
04/30/15 10:44:12 (9 years ago)
Author:
emanuel.dima@uni-tuebingen.de
Message:

adding an overview doc fragment

File:
1 edited

Legend:

Unmodified
Added
Removed
  • SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/app/Aggregator.java

    r6153 r6177  
    4040import org.slf4j.LoggerFactory;
    4141
    42 /**
    43  * Main component of the Aggregator application intended to provide users access
    44  * to CLARIN-FCS resources.
    45  *
    46  * The webapp base URL corresponds to the default behavior of displaying the
     42/**  ---- FCS AGGREGATOR OVERVIEW ----
     43 *
     44 * The Aggregator is intended to provide users access to CLARIN-FCS resources.
     45 * The app has two components, the server (this Java code) and the client (HTML, JS)
     46 *
     47 * The server is built on Java with Dropwizard and has the following functions:
     48 * - it gets requests from the user-agent (browser) for html, css, js files
     49 *   and serves them. This is done automatically by Dropwizard.
     50 * - it gets REST requests from the client (the JS code in browser)
     51 *   and serves them. See the RestService class
     52 * - using an executor service, it scans periodically for FCS endpoints and
     53 *   gathers informations about the corpora stored at each one. See the scan
     54 *   package and ScanCrawl class
     55 * - when prompted by the user, through a REST call, it searches the corpora
     56 *   by sending requests to all the appropriate endpoints. See the search package
     57 *   and especially the Search class.
     58 *   Note: because sending too many concurrent requests to the FCS endpoints is
     59 *         considered poor manners, the communication with the endpoints
     60 *         is done by the ThrottledClient class, which queues the requests
     61 *         if necessary.
     62 *
     63 * The client is a javascript React + bootstrap application running in the browser.
     64 * It displays the user interface and communicates with the server passing the
     65 * appropriate requests from the user as REST calls. The data format is JSON.
     66 *
     67 * The base URL corresponds to the default behavior of displaying the
    4768 * main aggregator page, where the user can enter query, select the resources of
    4869 * CQL endpoints (as specified in the Clarin center registry), and search in
     
    5071 * all the endpoints root resources are selected.
    5172 *
    52  * If invoked with 'x-aggregation-context' and 'query' parameter, the aggregator
    53  * will pre-select provided resources and fill in the query field. This
    54  * mechanism is currently used by VLO.
     73 * If invoked by a POST request with 'x-aggregation-context' and
     74 * 'query' parameters, the aggregator will pre-select provided resources and
     75 * fill in the query field. This mechanism is currently used by VLO.
    5576 *
    5677 * Example: POST
     
    5980 * {"http://fedora.clarin-d.uni-saarland.de/sru/":["hdl:11858/00-246C-0000-0008-5F2A-0"]}
    6081 *
    61  * If the Aggregator web page has the URL query string parameter 'mode'
    62  * set to the string 'search', and the 'query' parameter is set,
    63  * then the aggregator search results for this query are immediately displayed
    64  * (i.e. users don't need to click 'search' in the aggregator page).
    65  * This feature has been requested initially by Martin Wynne from CLARIN ERIC
     82 * If the URL query string parameter 'mode' is set to the string 'search',
     83 * and if the 'query' parameter is set, then the aggregator search results for
     84 * this query are immediately displayed (i.e. users don't need to click
     85 * 'search' in the aggregator page). This feature has been requested initially
     86 * by Martin Wynne from CLARIN ERIC
     87 *
     88 * ---- Things Still To Be Done or To Be Considered ----
     89 *
     90 *     - Phonetic search
     91 *     - Export search results to personal workspace using oauth
     92 *     - Websockets instead of clients polling the server
     93 *     - When having multiple hits in the same result,
     94 *       show the hit in multiple rows, linked visually
     95 *     - Optimise page load
     96 *     - Expand parents of x-aggregator-context selected corpus
     97 */
     98
     99/**
     100 * This is the main class of the Aggregator, caring about initialization
     101 * and global access to common data.
    66102 *
    67103 * @author Yana Panchenko
    68104 * @author edima
    69  *
    70  * TODO: add some basic docs
    71  *
    72  * TODO: Export search results to personal workspace using oauth
    73  *
    74  * TODO: websockets
    75  *
    76  * TODO: show multiple hits on the same result in multiple rows, linked visually
    77  *
    78  * TODO: optimise page load
    79  *
    80  * TODO: test it in IE, other browsers
    81  *
    82  * TODO: expand parents of x-aggregator-context selected corpus
    83  *
    84105 */
    85106public class Aggregator extends Application<AggregatorConfiguration> {
Note: See TracChangeset for help on using the changeset viewer.