## 4 System Architecture
### PGDIN Components  
As explained in the previous section, the PGDIN is composed of several technologies or components. The components' description are described in Table 1, as well as the reasons for selecting each of these components. Figure 1 shows the PGDIN's components design. The PGDIN design has been currently implemented in the version 1.0, in which some design technologies have been included. In Table 1, the vendors/version of the implemented technologies for PGDIN 1.0 are also indicated. The PGDIN includes the most powerful technologies for supporting the implementation of a Smart Grid. Some of these technologies are implemented in the PGDIN 1.0, encapsulating at least one of the PGDIN's components that are described in Table 1.  
_Energies_**2012**, \(5\) \begin{table}
\begin{tabular}{l l} \hline \hline
**Technology** & **Vendor (Version)** \\ \hline _Legacy Apps_ & Not implemented in this version \\ Existing power grid applications. & \\ \hline _OSGi_ & Karaf (2.3.0) [29], Knopflerfish (R4 v4.2) [30] \\ The Open Services Gateway initiative (OSGi) supports to encapsulate as a bundle an application/component. & \\ \hline _JADE_ & Not implemented in this version \\ For implementing agent applications. & \\ \hline _Publisher Server (HTTP)_ & Jetty (9.0) [31] \\ Publishes on-line the power grid data and process. & \\ \hline _Reasoner (OWL-DL,SWRL)_ & Pellet (2.3.0) [32] \\ Reasoners are used for consistency checking and for increasing the intelligent capabilities of the power grid (inference process). Reasoning is performed over the languages OWL-DL and Semantic Web Rule Language (SWRL) & \\ \hline _Rule Engine (SWRL,RuleML)_ & Jess (7.1) [33] \\ Supports the business rule execution that are specified on languages SWRL (for ontologies) and the RuleML (native language). & \\ \hline _API OWL-DL_ & Jena Ontology API (0.9.4) [34] \\ The Application Programming Interface (API) for OWL-DL supports the connectivity between the semantic repository and reasoners. & \\ \hline _RDF-DB_ & Jena TDB (0.9.4) [36] \\ The Resource Description Framework (RDF) [35]—Data Base (DB) is the semantic repository to store the data in each PGDIN as OWL triplets, as well as the ENERGOS Ontology subset (OWL Profile). & \\ \hline _Distributed Cache_ & Oracle Coherence (3.7.1) [37] \\ The PGDIN maintains a real-time data repository supported by distributed & \\ object caches with persistence capabilities among the components. & \\ \hline _ESP/CEP_ & Esper (4.3.0-for personal computers) [38], \\ The Event Stream Processing (ESP)/Complex Event Processing (CEP) & Oracle EP (11g-for servers computers) [39] \\ supports to anticipate deviations and errors about the grid function. & \\ \hline _API DDS_ & Not implemented in this version \\ The API Data Distribution Service (DDS) supports the connection to the & \\ DDS bus. & \\ \hline _JVM-RT_ & Java RTS (2.2) [40] \\ It is the Java Virtual Machine (JVM) for Real-Time. & \\ \hline _DDS_ & RTi (4.5) [41] \\ It is the middleware for publishing/subscribing to the services of the PGDIN. & \\ \hline _Linux-RT_ & Core Real Time (2.6.31-11-rt) [42] \\ Operating system over which all PGDIN technologies are installed, and then this is for real-time. & \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Technology specification for the PGDIN implementation (Version 1.0). These technologies are explained as follows:  
* _Data-distributed repositories_: Real-time repositories supported by distributed object caches with persistence capabilities between the components. Moreover, it includes a semantic database that allows storing event information either to be directly processed by the agent or for semantic inference. This technology is implemented by means of the components: Oracle Coherence and Jena TDB. * _OWL-DL reasoning and SWRL inference_: OWL-DL enables the usage of reasoners to extract information on incomplete datasets and to evaluate their consistency.