# DataStore Artifacts

With the DataStore, you interface the following artifacts:

- Client Connection
- DataStore
- DataElement
- Miner

All the classes and interfaces mentioned here are defined in the `org.eclipse.dstore.core` plugin.

## Client Connection

The ClientConnection class is used for establishing a DataStore connection. This class provides the means to instantiate a client DataStore and connect to a server DataStore on a specified host running under a specified port. The connection to the server DataStore may either be made directly or a startup negotiation may be made with a remote daemon before connecting to the server. This class also provides the means for disconnecting from the DataStore.

## DataStore

The DataStore class is the heart of the DataStore communications framework. An instance of a DataStore contains a tree of DataElements. This tree can be referred to as the DataStore repository because it consists of all the schema information and data content used. Any type of object or relationship defined, command definition or piece of data that needs to be communicated between the client and server are stored in the DataStore repository. The DataStore class can be used for finding, creating and deleting DataElements and for communicating commands to miner. The DataStore class encapsulates all remote synchronizations between the client and the server via its `command` and `refresh` APIs.

## DataElement

The DataElement is the unit of information in a DataStore repository. Each DataElement has a set of attributes that describe the object it represents and is related to other DataElements by containing other DataElements. DataElements represent both the meaning of data as well as the data itself.

For more information about DataElements, see the section, DataElements and the DataStore model.

## Miner

A Miner is an extension point to the DataStore. Miners are classes, residing on the server-side, that implement a common interface used by the DataStore for communication information between the DataStore and the tools.

For more information about Miners, see the section, Miners.