Giter Club home page Giter Club logo

matleppa / fiware-orion Goto Github PK

View Code? Open in Web Editor NEW

This project forked from telefonicaid/fiware-orion

0.0 0.0 0.0 35.98 MB

An implementation of the Publish/Subscribe Context Broker GE, providing NGSI interfaces.

Home Page: https://fiware-orion.rtfd.io/

License: GNU Affero General Public License v3.0

CMake 0.74% Shell 3.59% C++ 60.98% C 0.82% Ruby 0.02% Python 6.37% Dockerfile 0.05% Makefile 0.22% XSLT 0.06% JavaScript 0.07% Gherkin 27.04% Go 0.02%

fiware-orion's Introduction

Orion Context Broker

FIWARE Core Context Management License badge Docker badge SOF support badge NGSI v2
Documentation badge Build badge Status

The Orion Context Broker is an implementation of the Publish/Subscribe Context Broker GE, providing an NGSI interface. Using this interface, clients can do several operations:

  • Query context information. The Orion Context Broker stores context information updated from applications, so queries are resolved based on that information. Context information consists on entities (e.g. a car) and their attributes (e.g. the speed or location of the car).
  • Update context information, e.g. send updates of temperature
  • Get notified when changes on context information take place (e.g. the temperature has changed)
  • Register context provider applications, e.g. the provider for the temperature sensor within a room

This project is part of FIWARE. For more information check the FIWARE Catalogue entry for Core Context Management.

📚 Documentation 🎓 Academy 🐳 Docker Hub 🎯 Roadmap

Content

Background

You can find the User & Programmer's Manual and the Installation & Administration Manual on readthedocs.io

For documentation previous to Orion 0.23.0 please check the manuals at FIWARE public wiki:

Any feedback on this documentation is highly welcome, including bugs, typos or things you think should be included but aren't. You can use github issues to provide feedback.

Top

Description

Orion is a C++ implementation of the NGSIv2 REST API binding developed as a part of the FIWARE platform.

Orion Context Broker allows you to manage the entire lifecycle of context information including updates, queries, registrations and subscriptions. It is an NGSIv2 server implementation to manage context information and its availability. Context information consists on entities (e.g. a car) and their attributes (e.g. the speed or location of the car).

Using the Orion Context Broker, you are able to create context elements and manage them through updates and queries. In addition, you can subscribe to context information so when some condition occurs (e.g. the context elements have changed) you receive a notification. These usage scenarios and the Orion Context Broker features are described in this documentation.

If this is your first contact with the Orion Context Broker, it is highly recommended to have a look to the brief Quick Start guide.

Top

Introductory presentations

  • Orion Context Broker (en) (jp)
  • NGSIv2 Overview for Developers That Already Know NGSIv1 (en) (jp)

Top

Install

Build and Install documentation for Orion Context Broker can be found at the corresponding section of the Admin Manual.

Top

Running

How to run Orion Context Broker can be found at the corresponding section of the Admin Manual.

Top

Usage

In order to create an entity (Room1) with two attributes (temperature and pressure):

curl <orion_host>:1026/v2/entities -s -S --header 'Content-Type: application/json' \
    -X POST -d @- <<EOF
{
  "id": "Room2",
  "type": "Room",
  "temperature": {
    "value": 23,
    "type": "Number"
  },
  "pressure": {
    "value": 720,
    "type": "Number"
  }
}
EOF

In order to query the entity:

    curl <orion_host>:1026/v2/entities/Room2 -s -S --header 'Accept: application/json' | python -mjson.tool

In order to update one of the entity atributes (temperature):

curl <orion_host>:1026/v2/entities/Room2/attrs/temperature -s -S \
    --header 'Content-Type: application/json' \
    -X PUT -d @- <<EOF
{
  "value": 26.3,
  "type": "Number"
}
EOF

or (more compact):

curl <orion_host>:1026/v2/entities/Room2/attrs/temperature/value -s -S \
    --header 'Content-Type: text/plain' \
    -X PUT -d 26.3

Please have a look at the Quick Start guide if you want to test these operations in an actual public instance of Orion Context Broker. In addition, have a look to the API Walkthrough and API Reference sections below in order to know more details about the API (subscriptions, registrations, etc.).

Top

API

Top

Reference Documentation

API Reference Documentation:

  • FIWARE NGSI v2 (en) (jp) (Apiary)
    • See also NGSIv2 implementation notes (en) (jp)

Orion Reference Documentation:

Top

Testing

End-to-end tests

The functional_test makefile target is used for running end-to-end tests:

make functional_test INSTALL_DIR=~

Please have a look to the section on building the source code in order to get more information about how to prepare the environment to run the functional_test target.

Unit Tests

The unit_test makefile target is used for running the unit tests:

make unit_test

Please have a look to the section on building the source code in order to get more information about how to prepare the environment to run the unit_test target.

Top

Advanced topics

  • Advanced Programming (en) (jp)
  • Installation and administration (en) (jp)
  • Container-based deployment
  • Development Manual (en) (jp)
  • Sample code contributions (en) (jp)
  • Contribution guidelines (en) (jp), especially important if you plan to contribute with code to Orion Context Broker
  • Deprecated features (en) (jp)

Top

Support

Ask your thorough programming questions using stackoverflow and your general questions on FIWARE Q&A. In both cases please use the tag fiware-orion

Top


License

Orion Context Broker is licensed under Affero General Public License (GPL) version 3.

© 2019 Telefonica Investigación y Desarrollo, S.A.U

fiware-orion's People

Contributors

fgalan avatar crbrox avatar leandroguillen avatar iariasleon avatar kzangeli avatar alvarovega avatar jcalderin avatar arigliano avatar jmcanterafonseca avatar fisuda avatar mcmutton avatar caa06d9c avatar fortizc avatar jason-fox avatar dmoranj avatar chicco785 avatar tobiasjacobs avatar fiwareulpgc avatar rbl219 avatar mrutid avatar cquijano avatar pekkanikander avatar cesarjorgemartinez avatar juliozinga avatar manucarrace avatar pooja1pathak avatar xavierval avatar aarranz avatar mathewmeconry avatar markonikolic avatar

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.