Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "SMILA/Documentation/ConnectivityManager"

 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
{{note|This is deprecated for SMILA 1.0, the connectivity framework is still functional but will aimed to be replaced by scalable import based on SMILAs job management.}}
 +
 
== Overview ==
 
== Overview ==
  
Line 5: Line 7:
 
== API ==
 
== API ==
  
<source lang="java">
+
See javadoc: [http://build.eclipse.org/rt/smila/javadoc/current/org/eclipse/smila/connectivity/ConnectivityManager.html org.eclipse.smila.connectivity.ConnectivityManager]
/**
+
* The Interface ConnectivityManager.
+
*/
+
public interface ConnectivityManager {
+
 
+
  /**
+
  * Record annotation jobId.
+
  */
+
  String ANNOTATION_JOB_ID = "jobId";
+
 
+
  /**
+
  * Put the given records for further processing to the ADD Queue.
+
  *
+
  * @param records
+
  *          a list of Record objects
+
  *
+
  * @return the number of records successfully added to the ADD Queue
+
  *
+
  * @throws ConnectivityException
+
  *          if any error occurs
+
  */
+
  int add(Record[] records) throws ConnectivityException;
+
 
+
  /**
+
  * Put the the given ids for Deletion from the system to the DELETE Queue.
+
  *
+
  * @param ids
+
  *          a list of IDs to delete
+
  *
+
  * @return the number of ids successfully added to the DELETE Queue
+
  *
+
  * @throws ConnectivityException
+
  *          if any error occurs
+
  * @deprecated this method is deprecated, as we realized that it may be relevant to send additional information for
+
  *            deletion with the Id, e.g. annotations to process in the delete pipeline. Therefore use the method with
+
  *            records instead.
+
  */
+
  int delete(Id[] ids) throws ConnectivityException;
+
 
+
  /**
+
  * Put the the given records for Deletion from the system to the DELETE Queue.
+
  *
+
  * @param records
+
  *          a list of records to delete
+
  *
+
  * @return the number of records successfully added to the DELETE Queue
+
  *
+
  * @throws ConnectivityException
+
  *          if any error occurs
+
  */
+
  int delete(Record[] records) throws ConnectivityException;
+
}
+
 
+
</source>
+
  
 
== Implementations ==
 
== Implementations ==
  
It is possible to provide different implementations for the ConnectivityManager interface. At the moment there is one implementation available.
+
It is possible to provide different implementations for the ConnectivityManager interface. At the moment there is only one implementation available:
  
===org.eclipse.smila.connectivity.impl===
+
===org.eclipse.smila.connectivity.bulkbuilder===
  
This bundle contains the default implementation of the ConnectivityManager interface.
+
This bundle contains the default implementation of the ConnectivityManager interface. It is based on the routing of records to asynchronous workflows resp. jobs (see [[SMILA/Documentation/JobManager|Jobmanager]]). Therefore the records are pushed to the [[SMILA/Documentation/Bulkbuilder|Bulkbuilder]].
  
The ConnectivityManagerImpl contains the core execution logic as it does the actual processing of the incoming requests. Incoming Record objects are split into different parts:
+
The ConnectivityManagerImpl contains the core execution logic as it does the actual processing of the incoming requests. Incoming record objects are pushed to the Bulkbuilder via bulkbuilder's record and microbulk API.
* metadata (record attributes) is stored via the Blackboard Service in the RecordStorage
+
* attachments are stored via the Blackboard Service in the BinaryStorage
+
* a message object is added to a Queue containing the record Id and optional any additional metadata
+
  
 
This chart shows the Connectivity Manager implementation, it's Sub-Components and the relationship to other components:  
 
This chart shows the Connectivity Manager implementation, it's Sub-Components and the relationship to other components:  
[[Image:ConnectivityManager.png]]
+
[[Image:ConnectivityManager-0.9.0.png]]
 
+
=== Sub-Components ===
+
  
==== Router ====
+
(original slides can be found here: [[Media:ConnectivityManager.zip|ConnectivityManager.zip]])
The Router routes messages to the Queue(s) according to it's configuration.
+
See [[SMILA/Documentation/QueueWorker]] for more information.
+
  
 +
'''[[SMILA/Documentation/CrawlerController|CrawlerController]]/[[SMILA/Documentation/AgentController|AgentController]]''': Provide the records imported via Crawler/Agent.
  
==== Buffer ====
+
'''[[SMILA/Documentation/DeltaIndexingManager|DeltaIndexing]]''': Check if records have changed since their last processing
Not yet implemented.
+
  
 +
'''[[SMILA/Documentation/Bulkbuilder|Bulkbuilder]]''': Builds record bulks stored in [[SMILA/Documentation/ObjectStore/Bundle_org.eclipse.smila.objectstore|Objectstore]]. Stores record's attachments in [[SMILA/Documentation/Binary_Storage|BinaryStorage]] via [[SMILA/Documentation/Usage_of_Blackboard_Service|Blackboard]].
  
 
=== Configuration ===
 
=== Configuration ===
 
There are no configuration options available for this bundle.
 
There are no configuration options available for this bundle.

Latest revision as of 05:36, 24 January 2012

Note.png
This is deprecated for SMILA 1.0, the connectivity framework is still functional but will aimed to be replaced by scalable import based on SMILAs job management.


Overview

The Connectivity Manager is the single point of entry for data in the SMILA. It's functionality is divided into several Sub-Components for better modularization. The Connectivity Manager and its Sub-Components are implemented as Java OSGi services.

API

See javadoc: org.eclipse.smila.connectivity.ConnectivityManager

Implementations

It is possible to provide different implementations for the ConnectivityManager interface. At the moment there is only one implementation available:

org.eclipse.smila.connectivity.bulkbuilder

This bundle contains the default implementation of the ConnectivityManager interface. It is based on the routing of records to asynchronous workflows resp. jobs (see Jobmanager). Therefore the records are pushed to the Bulkbuilder.

The ConnectivityManagerImpl contains the core execution logic as it does the actual processing of the incoming requests. Incoming record objects are pushed to the Bulkbuilder via bulkbuilder's record and microbulk API.

This chart shows the Connectivity Manager implementation, it's Sub-Components and the relationship to other components: ConnectivityManager-0.9.0.png

(original slides can be found here: ConnectivityManager.zip)

CrawlerController/AgentController: Provide the records imported via Crawler/Agent.

DeltaIndexing: Check if records have changed since their last processing

Bulkbuilder: Builds record bulks stored in Objectstore. Stores record's attachments in BinaryStorage via Blackboard.

Configuration

There are no configuration options available for this bundle.

Copyright © Eclipse Foundation, Inc. All Rights Reserved.