JNoSQL is an open source project that provides a common API for working with different NoSQL databases. It includes Diana, which defines a common communication layer, and Artemis, a CDI-based annotation framework. The goal is to simplify development of NoSQL applications by handling differences in data models and query languages between databases in a standardized way.
13. JNoSQL
● Mapping API
● Communication API
● No lock-in
● Divide and conquer
DAO
Mapping
Communication
Document
Key
Column
Graph
DIANA
ARTEMIS
JNoSQL
Data Tier
14. JNoSQL
● Eclipse Foundation
● Apache + Eclipse License
● API to each NoSQL type
● Configurable
● Extensible
Mapping
Communication DIANA
ARTEMIS
15. Why Diana?
● Goddess of the hunt, nature and
moon
● Fought in Troy
● Brave warrior and hunter
● Diana Rome = Artemis Greek
20. Issues
● insert vs save
● delete vs remove
● update vs merge
● find vs. search
● callback interface to
asynchronous callback
● long to seconds
● int to seconds
● long to milliseconds
● int to milliseconds
21. Diana Project
● Document API
● Graph API
● Key-value API
● Column API
● Four TCKs
Database
API
Implementation
TCK
26. Artemis● CDI Based
● Diana Based
● Annotation Based
● Events to insert, delete, update
● Supports to Bean Validation
● Configurable and Extensible
● Query Method
27. Annotations
● MappedSuperclass
● Entity
● Column
@Entity("movie")
public class Movie {
@Column
private String name;
@Column
private long year;
@Column
private Set<String> actors;