Code Monkey home page Code Monkey logo

Kinota™ Big Data

Kinota™ Big Data is a modular open-source implementation of OGC SensorThings API Part 1: Sensing; referred to as "STA" hereafter. Kinota was developed to support multiple persistence backends including traditional RDBMS as as well as NoSQL databases; currently the only persistence backend is for Apache Cassandra.

License

Kinota Big Data is licensed under GNU Lesser General Public License v3.0 (LGPLv3); you may not use this file except in compliance with the License. For more information, please refer to the included license.

Modules

Kinota Big Data is made up of the following sub-projects/modules.

kinota-commons

kinota-commons includes base classes defining STA objects (e.g. Thing, Location, Datastream, etc.; these base classes also know how to serialize themselves to JSON) as well as high-level service layer definitions for performing CRUD operations for each STA object (including JSON deserialization). The commons module also includes REST service definitions (which are built using Jersey), as well as other utility and helper classes and methods that are shared or likely to be shared across modules.

kinota-persistence-cassandra

kinota-persistence-cassandra is the persistence backend for Apache Cassandra.

kinota-rest-cassandra

kinota-rest-cassandra defines a Spring Boot application used to deploy an STA REST API with data stored in an Apache Cassandra cluster. kinota-rest-cassandra also includes an implementation of JSON Web Token (JWT) authentication for limiting access to CUD (create, update, delete) operations. Note that in the near future we plan to split JWT authentication components into a separate module (e.g. cassandra-security-jwt).

Compliance with OGC SensorThings API Part 1: Sensing

Kinota Big Data currently implements of subset of OGC SensorThings API Part 1: Sensing. See the table below for a summary of currently supported features (numbers refer to relevant sections of the STA specification).

Feature Supported?
SensorThings Service Interface  
9.2 Resource Path  
9.2.1 Usage 1: no resource path Yes
9.2.2 Usage 2: address to a collection of entities Yes
9.2.3 Usage 3: address to an entity in a collection Yes
9.2.4 Usage 4: address to a property of an entity No
9.2.5 Usage 5: address to the value of an entity’s property No
9.2.6 Usage 6: address to a navigation property (navigationLink) Yes
9.2.7 Usage 7: address to an associationLink Yes
9.2.8 Usage 8: nested resource path No
9.3 Requesting Data  
9.3.2 $expand and $selected No
9.3.3 Query Entity Sets  
9.3.3.1 $orderby No
9.3.3.2 $top Yes
9.3.3.3 $skip Yes
9.3.3.4 $count No
9.3.3.5 $filter No
9.3.3.6 Server-Driven Paging Yes
  1. Create-Update-Delete |   10.2 Create an entity |   10.2.1.1 Link to existing entities when creating an entity | Yes 10.2.1.2 Create related entities when creating an entity | No 10.3 Update an entity | Yes 10.4 Delete an entity | Yes
  2. Batch Requests | No
  3. SensorThings MultiDatastream extension | No
  4. SensorThings Data Array Extension | Yes
  5. SensorThings Sensing MQTT Extension | No

Requirements

Kinota Big Data requires the following:

  • Java 8
  • Maven 3
  • Apache Cassandra 3.x (to use the default Cassandra persistence backend)

Maven configuration

Coming soon!

Development

Unit and integration tests use an embedded version of Apache Cassandra to allow easy development from a single developer machine.

Help

kinota's Projects

kinota-bigdata icon kinota-bigdata

Kinota™ Big Data: a modular open-source implmentation of OGC SensorThings API Part 1: Sensing

kinota-server icon kinota-server

Kinota Server is a Spring Boot application that makes it easy to run Fraunhofer IOSB SensorThingsServer in cloud environments.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.