This presentation describes how context management is implemented in FIWARE platform, base don Orion Context Broker GEri. Both basic usage of Context Broker and advanced topics are included.
FIWARE Wednesday Webinars - How to Design DataModelsFIWARE
How to Design DataModels - 8th May 2019
Corresponding webinar recording: https://youtu.be/T_1DpKf6C_c
Understanding and applying Standard Data Models.
Chapter: Core
Difficulty: 3
Audience: Technical Domain Specific
Presenter: José Manuel Cantera (Senior Standardization Expert, FIWARE Foundation)
The document provides an introduction to context management and the Orion Context Broker. It discusses how context information from various sources can be gathered and managed to enable smart applications. The Orion Context Broker implements the NGSI API to allow easy management of context information through standard RESTful operations. Examples are given of creating, updating, and querying entity attributes to demonstrate basic usage.
Creating a Context-Aware solution, Complex Event Processing with FIWARE PerseoFernando Lopez Aguilar
Introduction to Complex Event Processing (CEP). How FIWARE deals with CEP through FIWARE Perseo. How to connect FIWARE Perseo with FIWARE Orion Context Broker. How can we define an event with Event Processing Language (EPL) and what are the predefined actions to include in FIWARE Perseo.
The document summarizes FIWARE's IoT platform and the IDAS (IoT Device Management) component. It describes:
1) The typical IoT scenario supported by IDAS, which has been extensively tested and provides developers with measurements from simple sensors.
2) The modular architecture of the new IDAS 4.0, which uses separate IoT agents for different protocols like UL2.0, MQTT, LWM2M etc. This makes installation and extensions easier.
3) The available IoT agents for UL2.0, MQTT, LWM2M, SigFox and how to register devices and send measurements using the UL2.0 agent.
FIWARE Overview Webinar - 27th March 2019
Corresponding webinar recording: https://youtu.be/97JsnnpPLrA
Chapter: Fundamentals
Difficulty: 0
Audience: Anyone
Basic introduction describing what FIWARE is, why you need it and how the elements of the FIWARE Catalogue can help accelerate the development of your Smart Solution.
FIWARE provides an open standard for managing context and digital twin data to enable the development of smart solutions across multiple sectors. The FIWARE context broker uses NGSI APIs to integrate data from different sources and build a digital twin representation of the real world. Smart data models define common data models for different domains to increase interoperability and reduce development costs when building smart applications. The smart data models initiative is led by several organizations and aims to create a community for defining and maintaining open data models using an agile process.
FIWARE NGSI: Managing Context Information at Large ScaleFIWARE
FIWARE NGSI: Managing Context Information at Large Scale, by Fermín Galán.
Orion Context Broker developing team. 1st FIWARE Summit, Málaga, Dec. 13-15, 2016.
This document provides information about NGSI-LD (Next Generation SI Services for Linked Data) including:
- NGSI-LD specific headers used in requests and responses
- Supported content types and best practices for JSON-LD payloads
- Examples of retrieving entity data and temporal data using NGSI-LD endpoints
- Options for normalizing, pagination and filtering temporal data
- Using geojson and language maps for location and multilingual attributes
This document provides an overview of different FIWARE solutions for data persistency: Draco, Cygnus, STH Comet, and Quantum Leap. It describes what each solution is used for, their basic architectures, configurations, and APIs. Draco is for persisting context data to MongoDB using Apache NiFi. Cygnus uses Apache Flume to persist Orion context data to storages like HDFS, MySQL, MongoDB. STH Comet is a time series database built on MongoDB for storing historic context data. Quantum Leap uses CrateDB as a time series database to provide historical context data support for NGSIv2.
NGSIv2 Overview for Developers That Already Know NGSIv1Fermin Galan
This document describes the novelties in NGSIv2 for people already familiar with NGSIv1. Thus, you would learn how to do the things you are familiar with NGSIv1 now in NGSIv2 as long as new and powerfull capabilities of the new version of the API. Some knowledge in NGSIv1 API is required.
Actuation, Federation and Interoperability of Context BrokersFIWARE
This training camp teaches you how FIWARE technologies and iSHARE, brought together under the umbrella of the i4Trust initiative, can be combined to provide the means for creation of data spaces in which multiple organizations can exchange digital twin data in a trusted and efficient manner, collaborating in the development of innovative services based on data sharing and creating value out of the data they share. SMEs and Digital Innovation Hubs (DIHs) will be equipped with the necessary know-how to use the i4Trust framework for creating data spaces!
An online training course run by the FIWARE Foundation in conjunction with the i4Trust project and IShare Foundation. The core part of this virtual training camp (27 Jun - 01 Jul 2022) covered all the necessary skills to develop smart solutions powered by FIWARE. It introduces the basis of Digital Twin programming using NGSI-LD (the simple yet powerful open standard API enabling to publish and access digital twin data) combined with common smart data models
In addition, it covers the supplementary FIWARE technologies used to implement the rest of functions typically required when architecting a complete smart solution: Identity and Access Management (IAM) functions to secure access to digital twin data, and functions enabling the interface with IoT and 3rd systems, or the connection with different tools for processing and monitoring current and historic big data.
Extending this core part, the training camp also cover how you can easily integrate FIWARE systems with blockchain networks to create audit-proof logs of processes and ensure transparency.
The document provides an introduction to context management and the Orion Context Broker. It discusses:
- Implementing smart applications requires gathering and managing context information about entities and their attributes.
- The Orion Context Broker implements the NGSI API for managing context information and allows applications to create, retrieve, update, and delete entity attributes through RESTful operations.
- Context information can come from different sources like sensor networks, systems, and users, and the context broker acts as a common hub to integrate this information.
Kong, Keyrock, Keycloak, i4Trust - Options to Secure FIWARE in ProductionFIWARE
This training camp teaches you how FIWARE technologies and iSHARE, brought together under the umbrella of the i4Trust initiative, can be combined to provide the means for creation of data spaces in which multiple organizations can exchange digital twin data in a trusted and efficient manner, collaborating in the development of innovative services based on data sharing and creating value out of the data they share. SMEs and Digital Innovation Hubs (DIHs) will be equipped with the necessary know-how to use the i4Trust framework for creating data spaces!
FIWARE Global Summit - NGSI-LD - NGSI with Linked DataFIWARE
Presentation by Martin Bauer
Senior Researcher, NEC Labs Europe
José Manuel Cantera
Senior Standardization Expert, FIWARE Foundation
FIWARE Global Summit
27-28 November 2018
Malaga, Spain
This is a complement of http://www.slideshare.net/fermingalan/fiware-managing-context-information-at-large-scale, including a set of basic and advanced exercises with Orion to be done by FIWARE Deverlopers Week participants.
This webinar is a practical session on Orion Context Broker. We start describing where to find the Orion information in the FI-WARE Catalogue, then how a FI-LAB user can create her/his out-of-the-box ready-to-use Orion instance. Finally, we will walk-through the main operations to manage context in Orion Context Broker. Webinar taught by Fermín Galán.
FIWARE: Managing Context Information at Large Scale (NGSIv1)Fermin Galan
This document provides an introduction and overview of the Orion Context Broker for managing context information at large scale. It discusses how Orion implements the OMA NGSI standard API for creating, retrieving, updating, and subscribing to context entities and their attributes. It provides examples of basic operations like creating entities and attributes, updating their values, and querying for information. It also demonstrates more advanced operations like subscriptions and notifications. Overall, the document serves as a tutorial for getting started with the main functions and capabilities of the Orion Context Broker.
Ryan Wilson - ryanwilson.com - IoT SecurityRyan Wilson
This document provides a summary of an IoT security presentation. It discusses what IoT devices are, why they pose security risks, and how others have been affected by IoT compromises. The presentation then outlines a basic IoT security checklist and covers common attack vectors like weak passwords, lack of encryption and patching, and physical security issues. It emphasizes the importance of inventory, segmentation, strong unique passwords, logging, and engagement with device vendors on security responsibilities and practices.
Aplicación práctica de FIWARE al Internet de las CosasJavier García Puga
FIWARE es una plataforma abierta y estándar para el desarrollo de soluciones IoT. Proporciona componentes clave como gestión de contexto, conectividad con dispositivos, procesamiento de eventos complejos, almacenamiento histórico y seguridad. La plataforma FIWARE, junto con su ecosistema abierto, permite construir aplicaciones avanzadas para sectores como ciudades inteligentes, industria, agricultura y logística.
This document discusses psychographics, which refers to consumers' attitudes, values, lifestyles, and how they relate to purchasing behavior. It provides examples of how companies profile customers psychographically using data on activities, interests and opinions. The document also outlines methods for businesses to understand customers' psychographics, such as observation, surveys, focus groups and online research. It describes how psychographic data can help target advertising more effectively to different consumer lifestyle segments.
The Future of Embedded and IoT Security: Kaspersky Operating SystemKaspersky Lab
KasperskyOS – Secure Operating System for embedded connected systems with specific requirements for cyber security. KasperskyOS aims to protect software and data systems from the consequences of the intrusion of malicious code, viruses and hacker attacks. These can provoke harmful behavior in any part of the system, potentially resulting in loss or leakage of sensitive data, reduced performance and denial of service. In addition it reduces the risk of harm caused by program bugs, unintentional mistakes or premeditated abuse.
3 Things Every Sales Team Needs to Be Thinking About in 2017Drift
Thinking about your sales team's goals for 2017? Drift's VP of Sales shares 3 things you can do to improve conversion rates and drive more revenue.
Read the full story on the Drift blog here: http://blog.drift.com/sales-team-tips
GreenBiz 17 Tutorial Slides: "How Corporates are Aligning with the Sustainabl...GreenBiz Group
The Sustainable Development Goals define global priorities and aspirations for 2030. Where does your company strategy align with these global goals? Learn how the SDGs affect your business, and gain the tools and knowledge needed to maximize your company's contribution to the success of the SDGs.
GreenBiz 17 In-Depth Tutorials are intensive half-day sessions held prior to the start of the conference. These are designed to offer participants an opportunity to dive deeper into a topic of interest and develop tangible knowledge and skills. In addition, attendees will have a greater opportunity to network with their peers in these interactive sessions. Concurrent tutorials will be held the morning of Tuesday, February 14, and are available only to those who purchase an All Access Pass.
Applying Robotic Process Automation in Banking: Innovations in Finance and Riskaccenture
Robotics is quickly gaining traction in banks to automate their everyday finance and risk processes. Accenture's presentation covers the impact of Robotic Process Automation (RPA) on a bank's finance and risk function. Read Philippe Guyonnet’s blog to learn more about RPA in banking and finance and risk innovation:http://bit.ly/2dprACR
Generative Adversarial Networks (GANs) are a class of machine learning frameworks where two neural networks contest with each other in a game. A generator network generates new data instances, while a discriminator network evaluates them for authenticity, classifying them as real or generated. This adversarial process allows the generator to improve over time and generate highly realistic samples that can pass for real data. The document provides an overview of GANs and their variants, including DCGAN, InfoGAN, EBGAN, and ACGAN models. It also discusses techniques for training more stable GANs and escaping issues like mode collapse.
- The FIWARE Lab provides cloud hosting and infrastructure as a service capabilities including compute, network, storage, and PaaS functionality.
- It utilizes OpenStack for core infrastructure services including compute (Nova), networking (Neutron), storage (Cinder, Swift), and identity (Keystone).
- The PaaS Manager allows users to define templates called Blueprints to deploy multi-tier applications and software stacks across the virtual infrastructure in an automated manner.
TEDx Manchester: AI & The Future of WorkVolker Hirsch
TEDx Manchester talk on artificial intelligence (AI) and how the ascent of AI and robotics impacts our future work environments.
The video of the talk is now also available here: https://youtu.be/dRw4d2Si8LA
Este documento describe los sistemas embebidos y cómo están evolucionando hacia sistemas inteligentes conectados a Internet. Explica las características de los sistemas embebidos y luego describe cómo plataformas como Arduino, Cloudino y Blynk permiten conectar sistemas embebidos a la nube. Proporciona ejemplos de cómo usar JavaScript con Cloudino para controlar entradas y salidas digitales, leer datos analógicos y reaccionar a mensajes del servidor.
Setting up your virtual infrastructure using fi lab cloudHenar Muñoz Frutos
This document provides instructions for setting up a virtual infrastructure using FI-LAB Cloud. It describes how to create an account, deploy virtual machines (VMs), deploy application components, use the object storage API, and includes reference information. The steps include creating a keypair to access servers, launching a VM, allocating an IP address, opening ports, deploying applications using blueprint templates across multiple VMs, and authenticating with the object storage service. Demo screenshots illustrate the process of defining tiers, servers, and installing software using blueprint templates to deploy an application infrastructure.
The document provides examples for managing context information using the Orion Context Broker, including creating entities and attributes, updating attribute values, and querying for context data. Key operations demonstrated include updateContext to create and update entities, and queryContext to retrieve entity attributes. Examples show creating Car and Room entities with speed/temperature attributes and updating their values.
This document provides an introduction to FIWARE IoT. It discusses FIWARE (IoT) consumers and providers. For consumers, FIWARE provides a single point of access for IoT, open data, and other data through its context broker API and protocol. It also offers a public and secured ecosystem. For providers, FIWARE offers an incremental approach to IoT with both public and private instances. The document also summarizes two typical IoT scenarios supported by FIWARE - a simple scenario that is extensively tested, and a more advanced scenario that is still under testing. It concludes by discussing FIWARE community events focused on IoT applications.
The document provides an introduction to context management and the Orion Context Broker. It discusses how context information from various sources can be gathered and managed to enable smart applications. The Orion Context Broker implements the NGSI standard API for managing context information and allows context producers to push data and consumers to pull data through a common context information hub.
The document provides an introduction to context management and the Orion Context Broker. It discusses how context information from various sources can be gathered and managed to enable smart applications. The Orion Context Broker implements the NGSI standard API for managing context information and integrates with existing systems through a common context information hub. It allows applications to easily get, update, and subscribe to context data by reading and changing attribute values of entities.
FIWARE Developers Week_Managing context information at large scale_conferenceFIWARE
Managing context information at large scale presentation by Fermín Galán Márquez (@fermingalan) for Developers Week
(Madrid, March 2nd 2015)
www.fiware.org
Fiware: the pillar of the Future Internet (Overview)Juanjo Hierro
Overview of the FIWARE program (http://fiware.org) devoted to create an open and sustainable ecosystem around the FIWARE platform. FIWARE provides OpenStack-based Cloud Hosting capabilities plus a rich library of Generic Enablers exporting standard APIs that ease development of Future Internet applications. You can experiment for free with the FIWARE technologies on the FIWARE Lab (http://lab.fiware.org), the meeting point where innovation takes place ... and don't miss the opportunity to get part of the 80 Million euros granted by the EC to those startups and SMEs that will materialize their innovative ideas using FIWARE !!
The document introduces the Orion Context Broker, which is a component of the FIWARE platform for managing context information at large scale. It discusses how the Context Broker allows applications to gather and manage context data through its NGSI API. It provides examples of basic operations like creating and updating entities and attributes as well as more advanced operations like subscriptions and batch operations. The document recommends using Docker to easily install and run the Orion Context Broker for experimenting with its features and capabilities.
Orion Context Broker introduction 20240115Fermin Galan
The document provides an introduction to context management and the Orion Context Broker. It discusses:
- Implementing smart applications requires gathering and managing context information about entities and their attributes.
- The Orion Context Broker implements the NGSI API for managing context information and allows applications to create, retrieve, update, and delete entity attributes through RESTful operations.
- Context information can come from different sources like sensor networks, systems, and users, and the context broker acts as a common hub to integrate this information.
The document provides an introduction to context management and the Orion Context Broker in FIWARE. It discusses how context information from various sources can be gathered and managed through a context broker to enable smart applications. The Orion Context Broker implements the NGSI API to allow easy creation, retrieval, update and deletion of context entities and their attributes through RESTful operations. Examples demonstrate how entities and their attributes can be managed through basic and batch operations on the context broker.
Orion Context Broker introduction 20240227Fermin Galan
The document introduces the Orion Context Broker, which is a component of the FIWARE platform for managing context information at large scale. It discusses how the Context Broker allows applications to gather and manage context data through its NGSI API. It provides examples of using the Context Broker to create entities and attributes, retrieve and update context data, subscribe to notifications, and perform batch operations.
The document provides an introduction and overview of managing context information at large scale using the Orion Context Broker. It discusses context management in FIWARE and the main functions of the Orion Context Broker, including context management, availability management, and HTTP/REST support. It also provides examples of basic operations for creating, updating, and querying entity attributes using the NGSI API.
The document provides an introduction and overview of managing context information at large scale using the Orion Context Broker. It discusses context management in FIWARE and the main functions of the Orion Context Broker, including context management, availability management, and HTTP/REST-based operations on entities and attributes. It also provides examples of creating and updating entity context data and retrieving attributes using the Orion Context Broker API.
The document provides an introduction to context management and the Orion Context Broker in FIWARE. It discusses how context information from various sources can be gathered and managed to enable smart applications. The Orion Context Broker uses NGSI to allow simple management of context information through RESTful operations like create, read, update, delete on entities and their attributes. Examples are provided for common operations like creating and updating entities, subscriptions, and batch operations.
The document provides an introduction to managing context information at large scale using the Orion Context Broker. It discusses context management in FIWARE and the main functions of the Orion Context Broker, including context management, availability management, and its HTTP/REST interface. It also provides examples of basic operations for creating, updating, retrieving, and deleting entity context data using the NGSI API.
The document provides an introduction to context management and the Orion Context Broker in FIWARE. It discusses how context information from various sources can be gathered and managed to enable smart applications. The Orion Context Broker uses NGSI to allow simple management of context information through RESTful operations like create, read, update, delete on entities and their attributes. Examples are provided for common operations like creating and updating an entity's attributes, subscribing to receive notifications, and using batch operations.
The document provides an introduction to context management and the Orion Context Broker in FIWARE. It discusses how context information from various sources can be gathered and managed to enable smart applications. The Orion Context Broker uses NGSI to allow simple management of context information through RESTful operations like create, read, update, delete on entities and their attributes. Examples are provided for common operations like creating and updating entities, subscriptions, and batch operations.
The document introduces the Orion Context Broker, which is a component of FIWARE that provides an API for managing context information. It describes how the Context Broker can be used to gather and share contextual data from various sources to enable smart applications. Key features of the Context Broker include allowing context producers to publish and update data, consumers to retrieve data through queries, and consumers to subscribe to receive notifications about data updates through subscriptions. Examples are provided for common operations like creating and updating entities, attributes, subscriptions, and using filters.
The document provides an introduction to context management and the Orion Context Broker in FIWARE. It discusses how context information from various sources can be gathered and managed to enable smart applications. The Orion Context Broker implements the NGSI API to allow easy creation, retrieval, update and deletion of context entities and their attributes through RESTful operations. Examples demonstrate how to create entities and attributes, retrieve and update their values, create subscriptions to receive notifications, and use batch operations.
The document introduces the Orion Context Broker, which is a component of FIWARE that provides an API for managing context information. It describes how the Context Broker can be used to gather and share contextual data from various sources to enable smart applications. Key features of the Context Broker include allowing context producers to publish and update data, consumers to retrieve data through queries, and consumers to subscribe to receive notifications about data updates through subscriptions. Examples are provided for common operations like creating and updating entities, attributes, subscriptions, and using filters.
Similar to FIWARE: Managing Context Information at large scale (20)
Orion Context Broker NGSI-v2 Overview for Developers That Already Know NGSI-v...Fermin Galan
- NGSIv2 is a revamped, simplified version of NGSIv1 that is designed to be more RESTful and developer-friendly.
- It supports native JSON data types for attributes, simplifies URLs and payloads, and improves capabilities for geolocation, datetime handling, and more.
- Some key enhancements in NGSIv2 include support for additional geoshapes beyond points, full datetime handling, and text-based operations for attribute values.
The document introduces the Orion Context Broker, which is a component of FIWARE that provides an API for managing context information. It describes how the Context Broker can be used to gather and share contextual data from various sources to enable smart applications. Key features of the Context Broker include allowing context producers to publish and update data, consumers to retrieve data through queries and subscribe to notifications, and batch operations for multiple updates. Usage examples demonstrate basic operations for managing entity attributes that represent contextual data.
Orion Context Broker NGSI-v2 Overview for Developers That Already Know NGSI-v...Fermin Galan
NGSIv2 is a simplified and enhanced version of NGSIv1 that follows RESTful principles. Key improvements in NGSIv2 include simplified URLs and payloads, support for native JSON data types, improved filtering capabilities, geolocation support, datetime attributes, transient entities, and improved subscriptions and registrations. NGSIv2 aims to make the API more developer-friendly while enhancing functionality.
Orion Context Broker NGSI-v2 Overview for Developers That Already Know NGSI-v...Fermin Galan
- NGSIv2 is a simplified and enhanced version of NGSIv1 that follows RESTful principles. It supports native JSON data types, simplified URLs and payloads, and improved filtering, subscriptions, and other features.
- NGSIv2 supports location attributes as point, line, box, polygon or GeoJSON objects. It also supports datetime attributes in ISO 8601 format with milliseconds precision and timezones.
- The document provides an overview of the key differences and improvements in NGSIv2 compared to the legacy NGSIv1 API.
Orion Context Broker NGSI-v2 Overview for Developers That Already Know NGSI-v...Fermin Galan
NGSIv2 is a simplified and enhanced version of NGSIv1 that follows RESTful principles. Key improvements in NGSIv2 include simplified URLs and payloads, support for native JSON data types, improved filtering capabilities, geolocation support, datetime attributes, transient entities, and improved subscriptions and registrations. NGSIv2 aims to make the API more developer-friendly while enhancing functionality.
The document introduces the Orion Context Broker, which is a component of FIWARE that provides an API for managing context information. It describes how the Context Broker can be used to gather and share contextual data from various sources to enable smart applications. Key features of the Context Broker include allowing context producers to publish and update data, consumers to retrieve data through queries and subscribe to receive updates, and batch operations for multiple entities. Usage examples are provided for common operations like creating, updating, and querying entity attributes.
Orion Context Broker NGSI-v2 Overview for Developers That Already Know NGSI-v...Fermin Galan
NGSIv2 is a simplified and enhanced version of NGSIv1 that provides a more RESTful API with simplified URLs and payloads. It supports native JSON data types, text-based attribute access, improved geolocation and datetime capabilities, and transient entities among other features. NGSIv2 is the recommended API to use going forward as it has been designed with REST principles in mind from the start.
The document provides an introduction to context management and the Orion Context Broker:
- It discusses how context information (entity attributes) must be gathered and managed to implement smart applications. Context is relevant across many domains like smart homes and cities.
- The Orion Context Broker uses the NGSI standard API to manage context information and acts as a hub to integrate information from different sources like sensors and existing systems.
- Basic operations of the Context Broker like creating, updating, and querying entities and attributes are described through examples using cars and rooms.
Orion Context Broker NGSI-v2 Overview for Developers That Already Know NGSI-v...Fermin Galan
NGSIv2 is a simplified and enhanced version of NGSIv1 that follows RESTful principles. Key improvements in NGSIv2 include simplified URLs and payloads, support for native JSON data types, direct text-based retrieval and setting of attribute values, improved geolocation and datetime handling, support for transient entities, and more powerful filtering capabilities for both queries and subscriptions. NGSIv2 is the recommended version going forward as it is more stable, scalable, and developer-friendly compared to the legacy NGSIv1 API.
Orion Context Broker NGSI-v2 Overview for Developers That Already Know Ngsi-v...Fermin Galan
NGSIv2 is a revamped version of NGSIv1 that simplifies the API and improves functionality. It follows RESTful principles with simplified URLs and payloads. It supports native JSON data types and improved geolocation, datetime, filtering, and subscription capabilities compared to NGSIv1. While the entity and attribute model remains the same, NGSIv2 provides a more developer-friendly API designed for production use.
- The Orion Context Broker is a component of FIWARE that allows applications to manage context information through a standard NGSI API. It stores context data in a MongoDB database.
- Context data refers to attribute values that characterize entities. Applications can retrieve and update context data by querying or sending updates to the Context Broker. The Broker also supports subscriptions where applications can register to receive notifications of context changes.
- The document provides examples of using the basic operations of the Context Broker like creating entities, retrieving and updating attribute values, applying filters, and creating subscriptions. It also introduces batch operations and discusses how to run Orion in Docker containers.
Orion Context Broker NGSI-v2 Overview for Developers That Already Know Ngsi-v...Fermin Galan
NGSIv2 provides an enhanced API for managing entities and their attributes compared to NGSIv1. It simplifies URLs and payloads, supports native JSON data types, improved geolocation, datetime handling, filtering, and more. Key changes include simplified CRUD operations through RESTful resources identified by URLs, support for additional data types and formats like geospatial data, and more powerful querying capabilities.
Orion Context Broker NGSIv2 Overview for Developers That Already Know NGSIv1 ...Fermin Galan
This document provides an overview of the differences between NGSIv1 and NGSIv2 APIs. Some key differences summarized are:
1) NGSIv2 follows RESTful principles with URLs identifying resources and HTTP response codes while NGSIv1 was more RPC-like;
2) NGSIv2 simplifies URLs and payloads, removing structural overhead and making the API leaner and less verbose;
3) NGSIv2 natively supports JSON datatypes like numbers and booleans instead of everything being strings like in NGSIv1.
Orion Context Broker NGSIv2 Overview for Developers That Already Know NGSIv1 ...Fermin Galan
NGSIv2 is a revamped, simplified RESTful API for managing context information compared to the original NGSIv1 API. Key differences in NGSIv2 include simplified URLs and payloads, support for native JSON data types, improved filtering capabilities for queries and subscriptions, and features like geolocation, datetime handling, and transient entities. NGSIv2 aims to make common operations easy while still supporting complex functionality in a developer-friendly manner aligned with REST principles.
Orion contextbroker ngs-iv2-overview-for-developers-that-already-know-ngsiv1-...Fermin Galan
NGSIv2 is an updated version of NGSIv1 that provides a more simplified and RESTful API for managing entities and their attributes. Key improvements in NGSIv2 include simplified URLs and payloads, support for native JSON data types, simplified methods for retrieving and updating attribute values, enhanced geolocation and datetime capabilities, support for transient entities, improved filtering for queries and subscriptions, and batch operations. NGSIv2 was designed from the start with RESTful principles in mind to provide a more developer-friendly API compared to NGSIv1.
(T.L.E.) Agriculture: Essentials of GardeningMJDuyan
(𝐓𝐋𝐄 𝟏𝟎𝟎) (𝐋𝐞𝐬𝐬𝐨𝐧 𝟏.𝟎)-𝐅𝐢𝐧𝐚𝐥𝐬
Lesson Outcome:
-Students will understand the basics of gardening, including the importance of soil, water, and sunlight for plant growth. They will learn to identify and use essential gardening tools, plant seeds, and seedlings properly, and manage common garden pests using eco-friendly methods.
Understanding and Interpreting Teachers’ TPACK for Teaching Multimodalities i...Neny Isharyanti
Presented as a plenary session in iTELL 2024 in Salatiga on 4 July 2024.
The plenary focuses on understanding and intepreting relevant TPACK competence for teachers to be adept in teaching multimodality in the digital age. It juxtaposes the results of research on multimodality with its contextual implementation in the teaching of English subject in the Indonesian Emancipated Curriculum.
How to Add Colour Kanban Records in Odoo 17 NotebookCeline George
In Odoo 17, you can enhance the visual appearance of your Kanban view by adding color-coded records using the Notebook feature. This allows you to categorize and distinguish between different types of records based on specific criteria. By adding colors, you can quickly identify and prioritize tasks or items, improving organization and efficiency within your workflow.
How to Configure Time Off Types in Odoo 17Celine George
Now we can take look into how to configure time off types in odoo 17 through this slide. Time-off types are used to grant or request different types of leave. Only then the authorities will have a clear view or a clear understanding of what kind of leave the employee is taking.
Lecture_Notes_Unit4_Chapter_8_9_10_RDBMS for the students affiliated by alaga...Murugan Solaiyappan
Title: Relational Database Management System Concepts(RDBMS)
Description:
Welcome to the comprehensive guide on Relational Database Management System (RDBMS) concepts, tailored for final year B.Sc. Computer Science students affiliated with Alagappa University. This document covers fundamental principles and advanced topics in RDBMS, offering a structured approach to understanding databases in the context of modern computing. PDF content is prepared from the text book Learn Oracle 8I by JOSE A RAMALHO.
Key Topics Covered:
Main Topic : DATA INTEGRITY, CREATING AND MAINTAINING A TABLE AND INDEX
Sub-Topic :
Data Integrity,Types of Integrity, Integrity Constraints, Primary Key, Foreign key, unique key, self referential integrity,
creating and maintain a table, Modifying a table, alter a table, Deleting a table
Create an Index, Alter Index, Drop Index, Function based index, obtaining information about index, Difference between ROWID and ROWNUM
Target Audience:
Final year B.Sc. Computer Science students at Alagappa University seeking a solid foundation in RDBMS principles for academic and practical applications.
About the Author:
Dr. S. Murugan is Associate Professor at Alagappa Government Arts College, Karaikudi. With 23 years of teaching experience in the field of Computer Science, Dr. S. Murugan has a passion for simplifying complex concepts in database management.
Disclaimer:
This document is intended for educational purposes only. The content presented here reflects the author’s understanding in the field of RDBMS as of 2024.
Feedback and Contact Information:
Your feedback is valuable! For any queries or suggestions, please contact muruganjit@agacollege.in
How to Create Sequence Numbers in Odoo 17Celine George
Sequence numbers are mainly used to identify or differentiate each record in a module. Sequences are customizable and can be configured in a specific pattern such as suffix, prefix or a particular numbering scheme. This slide will show how to create sequence numbers in odoo 17.
How to Store Data on the Odoo 17 WebsiteCeline George
Here we are going to discuss how to store data in Odoo 17 Website.
It includes defining a model with few fields in it. Add demo data into the model using data directory. Also using a controller, pass the values into the template while rendering it and display the values in the website.
How to Install Theme in the Odoo 17 ERPCeline George
With Odoo, we can select from a wide selection of attractive themes. Many excellent ones are free to use, while some require payment. Putting an Odoo theme in the Odoo module directory on our server, downloading the theme, and then installing it is a simple process.
Integrated Marketing Communications (IMC)- Concept, Features, Elements, Role of advertising in IMC
Advertising: Concept, Features, Evolution of Advertising, Active Participants, Benefits of advertising to Business firms and consumers.
Classification of advertising: Geographic, Media, Target audience and Functions.
The membership Module in the Odoo 17 ERPCeline George
Some business organizations give membership to their customers to ensure the long term relationship with those customers. If the customer is a member of the business then they get special offers and other benefits. The membership module in odoo 17 is helpful to manage everything related to the membership of multiple customers.
AI Risk Management: ISO/IEC 42001, the EU AI Act, and ISO/IEC 23894PECB
As artificial intelligence continues to evolve, understanding the complexities and regulations regarding AI risk management is more crucial than ever.
Amongst others, the webinar covers:
• ISO/IEC 42001 standard, which provides guidelines for establishing, implementing, maintaining, and continually improving AI management systems within organizations
• insights into the European Union's landmark legislative proposal aimed at regulating AI
• framework and methodologies prescribed by ISO/IEC 23894 for identifying, assessing, and mitigating risks associated with AI systems
Presenters:
Miriama Podskubova - Attorney at Law
Miriama is a seasoned lawyer with over a decade of experience. She specializes in commercial law, focusing on transactions, venture capital investments, IT, digital law, and cybersecurity, areas she was drawn to through her legal practice. Alongside preparing contract and project documentation, she ensures the correct interpretation and application of European legal regulations in these fields. Beyond client projects, she frequently speaks at conferences on cybersecurity, online privacy protection, and the increasingly pertinent topic of AI regulation. As a registered advocate of Slovak bar, certified data privacy professional in the European Union (CIPP/e) and a member of the international association ELA, she helps both tech-focused startups and entrepreneurs, as well as international chains, to properly set up their business operations.
Callum Wright - Founder and Lead Consultant Founder and Lead Consultant
Callum Wright is a seasoned cybersecurity, privacy and AI governance expert. With over a decade of experience, he has dedicated his career to protecting digital assets, ensuring data privacy, and establishing ethical AI governance frameworks. His diverse background includes significant roles in security architecture, AI governance, risk consulting, and privacy management across various industries, thorough testing, and successful implementation, he has consistently delivered exceptional results.
Throughout his career, he has taken on multifaceted roles, from leading technical project management teams to owning solutions that drive operational excellence. His conscientious and proactive approach is unwavering, whether he is working independently or collaboratively within a team. His ability to connect with colleagues on a personal level underscores his commitment to fostering a harmonious and productive workplace environment.
Date: June 26, 2024
Tags: ISO/IEC 42001, Artificial Intelligence, EU AI Act, ISO/IEC 23894
-------------------------------------------------------------------------------
Find out more about ISO training and certification services
Training: ISO/IEC 42001 Artificial Intelligence Management System - EN | PECB
Webinars: https://pecb.com/webinars
Article: https://pecb.com/article
-------------------------------------------------------------------------------
No, it's not a robot: prompt writing for investigative journalismPaul Bradshaw
How to use generative AI tools like ChatGPT and Gemini to generate story ideas for investigations, identify potential sources, and help with coding and writing.
A talk from the Centre for Investigative Journalism Summer School, July 2024
Delegation Inheritance in Odoo 17 and Its Use CasesCeline George
There are 3 types of inheritance in odoo Classical, Extension, and Delegation. Delegation inheritance is used to sink other models to our custom model. And there is no change in the views. This slide will discuss delegation inheritance and its use cases in odoo 17.
Credit limit improvement system in odoo 17Celine George
In Odoo 17, confirmed and uninvoiced sales orders are now factored into a partner's total receivables. As a result, the credit limit warning system now considers this updated calculation, leading to more accurate and effective credit management.
FIWARE: Managing Context Information at large scale
1. Managing Context Information at
Large Scale: Introduction
Fermín Galán Márquez - fermin.galanmarquez@telefonica.com
Ken Gunnar Zangelin - kengunnar.zangelin@telefonica.com
(Reference Orion Context Broker version: 1.7.0)
2. • Context Management in FIWARE
• Orion Context Broker
• Creating and pulling data
• Pushing data and notifications
• Batch operations
2
Introduction
3. Being “Smart” requires first being “Aware”
Boiler
• Manufacturer
• Last revision
• Product id
• temperature
Users
• Name-Surname
• Birthday
• Preferences
• Location
Flowerpot
• Humidity
• Watering plan
Context Information
Application
3
• Implementing a Smart Application requires gathering and
managing context information, referring to values of
attributes characterizing relevant entities
• There are many application domains where management of
context info is relevant: smart home, smart agrifood, smart
industry, smart logistics, smart cities
standard API
4. Being “Smart” requires first being “Aware”
4
• Implementing a Smart Application requires gathering and
managing context information, referring to values of
attributes characterizing relevant entities
• There are many application domains where management of
context info is relevant: smart home, smart agrifood, smart
industry, smart logistics, smart cities
Ship
• Company
• Speed
• Location
• …
Truck
• Driver
• Location
• …
Container
• Dimension
• Temperature
• …
Context Information
Application
standard API
5. Being “Smart” requires first being “Aware”
• Implementing a Smart Application requires gathering and
managing context information, referring to values of
attributes characterizing relevant entities
• There are many application domains where management of
context info is relevant: smart home, smart agrifood, smart
industry, smart logistics, smart cities
Bus
• Location
• No. passengers
• Driver
• Licence plate
Citizen
• Name-Surname
• Birthday
• Preferences
• Location
Shop
• Location
• Business name
• Franchise
• offerings
Context Information
Application
5
standard API
6. Context Information Management in Smart Cities
• Systems dealing with management of city services or third-
party apps (subject to access control policies) can consume
and produce context info
• Overall city governance can rely on context information
available (real-time and historic) to monitor KPIs and run
BigData analysis
6
City Services
Bus
• Location
• No. passengers
• Driver
• Licence plate
Citizen
• Name-Surname
• Birthday
• Preferences
• Location
Shop
• Location
• Business name
• Franchise
• offerings
Context Information
City Governance System
City Services
Third-party Apps
7. Different sources of context need to be handle
• Context information may come from many sources:
– Existing systems
– Users, through mobile apps
– Sensor networks
• Source of info for a given entity may vary over time
Place = “X”, temperature = 30º
What’s the current temperature in place “X”?
A sensor in a
pedestrian street
The Public Bus Transport
Management systemA person from his smartphone
It’s too hot!
7
standard API
8. Different sources of context need to be handle
• Context information may come from many sources:
– Existing systems
– Users, through mobile apps
– Sensor networks
• Source of info for a given entity may vary over time
8
Street = “X”, traffic = high
What’s the current traffic in
street “X”?
Standard API
A sensor in a pedestrian street
The Public Bus Transport
Management system Citizen’s car app or
smartphone
Notify me the changes of
traffic in street “X”
9. A non-intrusive approach is required
• Capable to integrate with existing or future systems without impact
in their architectures, but bringing a common context information
hub
• Info about attributes of one entity may come from different
systems, which work either as Context Producers or Context
Providers
Application/Service
Standard API
System A System B
Context Producer Context Provider
attribute “location” attribute “driver”
9
10. Context Management in FIWARE
• The FIWARE Context Broker GE implements the NGSI API: a
simple yet powerful standard API for managing Context
information complying with the requirements of a smart
enabled system
• The FIWARE NGSI API is Restful: any web/backend
programmer gets quickly used to it
Application/Service
Context Broker
NGSI API
Boiler
• Manufacturer
• Last revision
• Product id
• temperature
Users
• Name-Surname
• Birthday
• Preferences
• Location
Flowerpot
• Humidity
• Watering plan
10
11. FIWARE NGSI: “The SNMP for IoT”
• Capturing data from, or Acting upon, IoT devices becomes
as easy as to read/change the value of attributes linked to
context entities using a Context Broker
Context Broker
NGSI APINGSI API
GET /v2/entities/lamp1/attrs/presenceSensor
PUT /v2/entities/lamp1/attrs/status/value
“light on”
Setting up the value of attribute
“status” to “light on” triggers
execution of a function in the IoT
device that switches the lamp on
Issuing a get operation on the
“presenceSensor” attribute
enables the application to get
info about presence of people
near the lamp
11
12. Connecting to the Internet of Things
• Capturing data from, or Acting upon, IoT devices becomes
as easy as to read/change the value of attributes linked to
context entities using a Context Broker
Context Broker
GET /v2/entities/lamp1/attrs/humidity
PUT /v2/entities/lamp1/attrs/status/value
“watering”
Setting up the value of attribute
“status” to “watering” triggers
execution of a function in the IoT
device that waters the plant
Issuing a get operation on the
“humidity” attribute enables the
application to find out whether
the plant has to be watered
12
NGSI APINGSI API
13. • Main functions:
– Context management
– Context availability management (advanced topic) (not yet in NGSIv2)
• HTTP and REST-based
– JSON payload support
• Context in NGSI is based in an entity-attribute model:
Attributes
• Name
• Type
• Value
Entity
• EntityId
• EntityType
1 n
“has”
13
Orion Context Broker
14. • NGSIv1
– Original NGSI RESTful binding of OMA-NGSI
– Implemented in 2013
– Uses the /v1 prefix in resource URL
• NGSIv2
– A revamped, simplified binding of OMA-NGSI
• Simple things must be easy
• Complex things should be possible
• Agile, implementation-driven approach
• Make it as developer-friendly as possible (RESTful, JSON, …)
– Enhanced functionality compared with NGSIv1 (eg. filtering)
– Stable, ready for production, version already available
• Current NGSIv2 version is Release Candidate 2016.10 http://telefonicaid.github.io/fiware-
orion/api/v2/stable
• New features coming (http://telefonicaid.github.io/fiware-orion/api/v2/stable)
– Uses the /v2 prefix in resource URL
• Introduction to NGSIv2
– https://docs.google.com/presentation/d/1_fv9dB5joCsOCHlb4Ld6A-
QmeIYhDzHgFHUWreGmvKU/edit#slide=id.g53c31d7074fd7bc7_0
14
Two “flavors” of NGSI API
15. • NGSIv2 is in “release candidate” status
– By "release candidate" we mean that the specification is quite stable,
but changes may occur with regard to new release candidates or the
final version. In particular changes may be of two types:
• Extensions to the functionality currently specified by this
document. Note that in this case there isn't any risk of breaking
backward compatibility on existing software implementations.
• Slight modifications in the functionality currently specified by this
document, as a consequence of ongoing discussions. Backward
compatibility will be taken into account in this case, trying to
minimize the impact on existing software implementations. In
particular, only completely justified changes impacting backward
compatibility will be allowed and "matter of taste" changes will not
be allowed.
15
NGSIv2 status (AKA the “NGSIv2 disclaimer”)
16. • In general, it is always preferable to use NGSIv2
• However, you would need to use NGSIv1 if
– You need register/discovery operations (context management
availability functionality)
• Not yet implemented in NGSIv2 (in roadmap)
– Zero tolerance to changes in software interacting with Orion
• Even if you use NGSIv1, you can still use NGSIv2 advanced
functionality
– See “Considerations on NGSIv1 and NGSIv2 coexistence”
section at Orion manual
• For a NGSIv1-based version of this presentation have a
look to
– http://bit.ly/fiware-orion-ngsiv1
16
So… when should I use NGSIv1 or NGSIv2?
18. GET <cb_host>:1026/version
{
"orion" : {
"version" : "1.6.0",
"uptime" : "7 d, 21 h, 33 m, 39 s",
"git_hash" : "aee96414cc3594bba161afb400f69d101978b39c",
"compile_time" : "Mon Dec 5 08:38:58 CET 2016",
"compiled_by" : "fermin",
"compiled_in" : "centollo"
}
}
18
Orion Context Broker – check health
19. 19
Orion Context Broker Basic Operations
Entities
• GET /v2/entities
• Retrieve all entities
• POST /v2/entities
• Creates an entity
• GET /v2/entities/{entityID}
• Retrieves an entity
• [PUT|PATCH|POST] /v2/entities/{entityID}
• Updates an entity (different “flavors”)
• DELETE /v2/entities/{entityID}
• Deletes an entity
20. 20
Orion Context Broker Basic Operations
Attributes
• GET /v2/entities/{entityID}/attrs/{attrName}
• Retrieves an attribute’s data
• PUT /v2/entities/{entityID}/attrs/{attrName}
• Updates an attribute’s data
• DELETE /v2/entities/{entityID}/attrs/{attrName}
• Deletes an attribute
• GET /v2/entities/{entityID}/attrs/{attrName}/value
• Retrieves an attribute’s value
• PUT /v2/entities/{entityID}/attrs/{attrName}/value
• Updates an attribute’s value
21. Context Broker operations: create & pull data
• Context Producers publish data/context elements by invoking the update
operations on a Context Broker.
• Context Consumers can retrieve data/context elements by invoking the query
operations on a Context Broker
Context Consumer
query
Context Producer
update
Context Broker
21
22. Quick Usage Example: Car Create
201 Created
22
POST <cb_host>:1026/v2/entities
Content-Type: application/json
...
{
"id": "Car1",
"type": "Car",
"speed": {
"type": "Float",
"value": 98
}
}
23. Quick Usage Example: Car Speed Update (1)
PUT <cb_host>:1026/v2/entities/Car1/attrs/speed
Content-Type: application/json
...
{
"type": "Float",
"value": 110
}
204 No Content
…
23
In the case of id ambiguity, you can use
"?type=Car" to specify entity type
24. Quick Usage Example: Car Speed Query (1)
200 OK
Content-Type: application/json
...
{
"type": "Float",
"value": 110,
"metadata": {}
}
24
You can get all the attributes of the entity using the
entity URL:
GET/v2/entities/Car1/attrs
GET <cb_host>:1026/v2/entities/Car1/attrs/speed
25. Quick Usage Example: Car Speed Update (2)
PUT <cb_host>:1026/v2/entities/Car1/attrs/speed/value
Content-Type: text/plain
...
115
204 No Content
…
25
26. Quick Usage Example: Car Speed Query (2)
26
200 OK
Content-Type: text/plain
...
115.000000
GET <cb_host>:1026/v2/entities/Car1/attrs/speed/value
Accept: text/plain
33. Quick Usage Example: Filters (2)
33
200 OK
Content-Type: application/json
...
[
{
"id": "Room1",
"pressure": 720,
"temperature": 25,
"type": "Room"
}
]
GET <cb_host>:1026/v2/entities?options=keyValues&q=pressure==715..725
The full description of the Simple
Query Language for filtering can be
found in the NGSIv2 Specification
document
34. Context Broker operations: push data
• Context Consumers can subscribe to receive context information that satisfy
certain conditions using the subscribe operation. Such subscriptions may
have an expiration time.
• The Context Broker notifies updates on context information to subscribed
Context Consumers by invoking the notify operation they export
subId = subscribeContext (consumer, expr, expiration)
Context Consumer
notify (subId, data/context)
Context Broker
Application
34
38. List existing subscriptions
38
200 OK
Content-Type: application/json
…
[{
"id": " 51c0ac9ed714fb3b37d7d5a8 ",
"expires": "2026-04-05T14:00:00.00Z",
"status": "active",
"subject": {
"entities": [{
"id": "Room1",
"type": "Room"
}],
"condition": {
"attrs": ["temperature"]
}
},
"notification": {
"timesSent": 3,
"lastNotification": "2016-05-31T11:19:32.00Z",
"lastSuccess": "2016-05-31T11:19:32.00Z",
"attrs": ["temperature"],
"attrsFormat": "normalized",
"http": {
"url": "http://localhost:1028/publish"
}
}
}]
The full description of the
subscription object (including all
its fields) can be found in the
NGSIv2 Specification
GET <cb_host>:1026/v2/subscriptions
39. Orion Context Broker batch operations
39
• Batch query and batch update
• They are equivalent in functionality to previously described RESTful
operations
• All them use POST as verb and the /v2/op URL prefix, including
operation parameters in the JSON payload
• They implement extra functionality that cannot be achieved with
RESTful operations, e.g. to create several entities with the same
operation
• They are not a substitute but a complement to RESTful operations
41. How to get Orion? (Virtual Machines)
41
• FIWARE Lab image
– Image: orion-psb-image-R<x>.<y>
• VirtualBox image
– http://bit.ly/fiware-orion024-vbox (it’s big!)
– User/pass:
• fiware/fiware
• root/fiware
• Hint: update Orion package once the VM is deployed
42. How to get Orion? (Docker containers)
42
• Assuming docker is installed in your system
• Documentation in https://github.com/telefonicaid/fiware-
orion/tree/develop/docker
• Quick guide
git clone https://github.com/telefonicaid/fiware-orion.git
cd fiware-orion/docker
sudo docker-compose up
• That’s all!
– curl localhost:1026/version
• Installing Orion docker in less than 1 minute
– https://www.youtube.com/watch?v=6taR7e20H9U
43. Would you like to play with this?
43
• Have a look to the FIWARE Reference Tutorial
application
– git clone https://github.com/Fiware/tutorials.TourGuide-
App.git
– cd tutorials.TourGuide-App/
– docker-compose up orion
– curl localhost:1026/version
• Self-explanatory README.md at root directory
• Open a Postman session and rock and roll
– Postman collection:
https://github.com/Fiware/tutorials.TourGuide-
App/blob/develop/contrib/CampusParty2016.postman_coll
ection
44. Orion Context Broker to Backbone Sync
44
• https://github.com/digitalilusion/o2bb
45. NGSI Context Adaptor for Carto
45
Show your entities in a map with no effort, create history animations,
heat maps and clusters representations
• https://github.com/telefonicaid/fiware-dataviz
46. NGSI Plugin for Freeboard
46
Create a real time dashboard for your entities, representing gauges,
spark lines and maps. No coding required!
• https://github.com/telefonicaid/fiware-dataviz
In addition, Freeboard freemium version integrates Orion off-the-shelf
47. Would you like to know more?
47
• The easy way
– This presentation: google for “fermingalan slideshare” and search the one
named “Managing Context Information at large scale”
– Orion User Manual: google for “Orion FIWARE manual” and use the first hit
– Orion Catalogue page: google for “Orion FIWARE catalogue” and use the first
hit
• References
– NGSIv2 Specification
• http://fiware.github.io/specifications/ngsiv2/stable
• http://fiware.github.io/specifications/ngsiv2/latest
– NGSIv2 for NGSIv1 developers
• http://bit.ly/ngsiv2-vs-ngsiv1
– This presentation
• http://www.slideshare.net/fermingalan/fiware-managing-context-information-at-large-
scale
– Orion Catalogue:
• http://catalogue.fiware.org/enablers/publishsubscribe-context-broker-orion-context-
broker
– Orion support trhough StackOverflow
• Ask your questions using the “fiware-orion” tag
• Look for existing questions at http://stackoverflow.com/questions/tagged/fiware-orion
48. Managing Context Information at
Large Scale: Advanced Topics
Fermín Galán Márquez - fermin.galanmarquez@telefonica.com
Ken Gunnar Zangelin - kengunnar.zangelin@telefonica.com
(Reference Orion Context Broker version: 1.7.0)
49. 49
Orion functionality
49
Pagination
Metadata
Compound attribute/metadata values
Type browsing
Geo-location
Query filters
DateTime support
Custom notifications
Notification status
Attribute/metadata filtering
Special attribute/metadata
Registrations & context providers
Multitenancy
Creating & pulling data
Pushing data
Subscriptions & Notifications
Batch operations
50. • Pagination
• Metadata
• Compound attribute/metadata values
• Type browsing
• Geo-location
• Query filters
• DateTime support
• Custom notifications
• Notification status
• Attribute/metadata filtering and special
attribute/metadata
• Registrations & context providers
• Multitenancy
• Service paths
• CORS
• Notifying services in private networks
50
Advanced Features
51. • Pagination helps clients organize query and
discovery requests with a large number of
responses.
• Three URI parameters:
– limit
• Number of elements per page (default: 20, max: 1000)
– offset
• Number of elements to skip (default: 0)
– count (option)
• Returns total elements (default: not return)
51
Pagination
52. • Example, querying the first 100 entries:
– GET <orion_host>:1026/v2/entities?limit=100&options=count
• The first 100 elements are returned, along with the
following header in the response:
– Fiware-Total-Count: 322
• Now we now there are 322 entities, we can keep querying
the broker for them:
– GET <orion_host>:1026/v2/entities?offset=100&limit=100
– GET <orion_host>:1026/v2/entities?offset=200&limit=100
– GET <orion_host>:1026/v2/entities?offset=300&limit=100
52
Pagination
53. • By default, results are ordered by entity creation date
• This behavior can be overridden using orderBy URI parameter
– A comma-separated list of attributes. Results are ordered by the first
attribute. On ties, the results are ordered by the second attribute and
so on. A "!" before the attribute name means that the order is
reversed.
• Example: get the first 10 entities ordered by temp in ascending
order, then humidity in descending order
GET <orion_host>:1026/v2/entities?limit=20&offset=0&orderBy=temp,!humidity
• dateCreated and dateModified can be used to ordering by
entity creation and modification date, respectively
53
Pagination
55. Attributes
• Name
• Type
• Value
Entity
• EntityId
• EntityType
1 n
“has”
Metadata
• Name
• Type
• Value1 n
“has”
55
Complete NGSI Model
56. • Attributes and metadata can have a structured
value. Vectors and key-value maps are
supported.
• It maps directly to JSON's objects and arrays.
56
Compound Attribute/Metadata Values
57. • Example: we have
a car whose four
wheels' pressure
we want to
represent as a
compound
attribute for a car
entity. We would
create the car
entity like this:
{
"type": "Car",
"id": "Car1",
"tirePressure": {
"type": "kPa",
"value": {
"frontRight": 120,
"frontLeft": 110,
"backRight": 115,
"backLeft": 130
}
}
}
57
Compound Attribute/Metadata Values
58. • GET /v2/types
• Retrieve a list of all entity types currently in Orion,
including their corresponding attributes and entities
count
• GET /v2/types/{typeID}
• Retrieve attributes and entities count associated to an
entity type
PRO TIP
GET /v2/contextTypes?options=values
Retrieves just a list of all entity types without any extra info
58
Type Browsing
59. • Entities can have an attribute
that specifies its location
• Several attribute types can be
used
– geo:point (for points)
– geo:line (for lines)
– geo:box (for boxes)
– geo:polygon (for polygons)
– geo:json (for arbitrary geometries, in
GeoJson standard)
• Example: create an entity called
Madrid
…and create a couple more towns:
• Leganés
• Alcobendas
POST <cb_host>:1026/v2/entities
{
"type": "City",
"id": "Madrid",
"position": {
"type": "geo:point",
"value": "40.418889, -3.691944"
}
}
59
Geo-location
61. Geo-location – Max distance
61
GET <cb_host>:1026/v2/entities?
idPattern=.*&
type=City&
georel=near;maxDistance:13500&
geometry=point&
coords=40.418889,-3691944
62. Geo-location – Min distance
62
GET <cb_host>:1026/v2/entities?
idPattern=.*&
type=City&
georel=near;minDistance:13500&
geometry=point&
coords=40.418889,-3691944
63. • Apart from near, the following georel can be
used
– georel=coveredBy
– georel=intersects
– georel=equals
– georel=disjoint
• See NGSIv2 Specification for a detailed
description
63
More geo-relationships
64. • For the GET /v2/entities operation
• By entity type
• By entity id list
• By entity id pattern (regex)
• By entity type pattern (regex)
• By geographical location
– Described in detail in previous slides
• Filters can be used simultaneously (i.e. like AND condition)
64
GET <cb_host>:1026/v2/entities?type=Room
GET <cb_host>:1026/v2/entities?id=Room1,Room2
GET <cb_host>:1026/v2/entities?idPattern=^Room[2-5]
GET <cb_host>:1026/v2/entities?typePattern=T[ABC]
Query filters
65. • By attribute value (q)
• By metadata value (mq)
• See full details about q and mq query language in NGSIv2 specification
65
GET <cb_host>:1026/v2/entities?q=temperature>25
GET <cb_host>:1026/v2/entities?q=tirePressure.frontRight >130
attribute name
attribute sub-key (for compound attribute values only)
GET <cb_host>:1026/v2/entities?mq=temperature.avg>25
GET <cb_host>:1026/v2/entities?mq=tirePressure.accuracy.frontRight >90
metadata sub-key (for compound
metadata values only)
attribute name
metadata name
Query filters
66. 66
POST <cb_host>:1026/v2/subscriptions
…
{
"subject": {
"entities": [
{
"id": “Car5",
"type": "Car"
},
{
"idPattern": "^Room[2-5]",
"type": "Room"
},
{
"id": "D37",
"typePattern": "Type[ABC]"
},
],
"condition": {
"attrs": [ "temperature" ],
"expression": {
"q": "temperature>40",
"mq": "humidity.avg==80..90",
"georel": "near;maxDistance:100000",
"geometry": "point",
"coords": "40.418889,-3.691944"
}
}
},
…
}
• Filters can be also used in
subscriptions
– id
– type
– id pattern
– type pattern
– attribute values
– metadata value
– geographical location
Query filters
67. • Orion implements date support
– Based on ISO ISO8601 format, including partial
representations and timezones
• See https://fiware-
orion.readthedocs.io/en/master/user/ngsiv2_implementati
on_notes/index.html#datetime-support for syntax details
– Use reserved attribute type DateTime to express a date
– Date-based filters are supported
67
Datetime support
68. • Attribute value arithmetic filters can be used with dates as if they
were numbers
• Entity dateModified and dateCreated special attributes, to get
entity creation and last modification timestamps
– They are shown in query responses using
attrs=dateModified,dateCreated
• Entity dateModified and dateCreated special metadata, to get
attribute creation and last modification timestamps
– They are shown in query responses using
metadata=dateModified,dateCreated
68
POST /v2/entities
…
{
"id": "John",
"birthDate": {
"type": "DateTime",
"value": "1979-10-14T07:21:24.238Z"
}
}
GET /v2/entities?q=birthDate<1985-01-01T00:00:00
Example: create entity John,
with birthDate attribute using
type DateTime
Datetime support
69. • Apart from the standard formats defined in the
previous slides NGSIv2 allows to re-define all the
notification aspects
• httpInfo is used instead of http, with the
following subfields
– URL query parameters
– HTTP method
– HTTP headers
– Payload (not necessarily JSON!)
• A simple macro substitution language based on ${..}
syntax can be used to “fill the gaps” with entity data (id,
type or attribute values)
– Exception: this cannot be used in HTTP method field
69
Custom notifications
70. 70
…
"httpCustom": {
"url": "http://foo.com/entity/${id}",
"headers": {
"Content-Type": "text/plain"
},
"method": "PUT",
"qs": {
"type": "${type}"
},
"payload": "The temperature is ${temp} degrees"
}
…
PUT http://foo.com/entity/DC_S1-D41?type=Room
Content-Type: text/plain
Content-Length: 31
The temperature is 23.4 degrees
PUT /v2/entities/DC_S1-D41/attrs/temp/value?type=Room
…
23.4
Custom notification configuration
update
notificaiton
Custom notifications
71. • Status failed means that last
attempt to notify failed
– E.g. the endpoint is not reachable
• Detailed information in the
notifications element
– timesSent: total number of
notifications attempts (both
successful and failed)
– lastSuccess: last time that
notification was successfully sent
– lastFailure: last time that
notification was tried and failed
– lastNotification: last time the
notification was sent (either success
or failure)
• Corollary: lastNotification value is the
same than either lastFailure or
lastSuccess
71
200 OK
Content-Type: application/json
…
[{
"id": " 51c0ac9ed714fb3b37d7d5a8 ",
"expires": "2026-04-05T14:00:00.00Z",
"status": "failed",
"subject": { … },
"notification": {
"timesSent": 3,
"lastNotification": "2016-05-31T11:19:32.00Z",
"lastSuccess": "2016-05-31T10:07:32.00Z",
"lastFailure": "2016-05-31T11:19:32.00Z",
…
}
}]
Notification status
72. • By default all attribute are included in query
responses or notifications
• The attrs field (as parameter in GET operations
and as notification sub-field in subscriptions)
can be used to specify a filtering list
• The attrs field can be also used to explicitly
include some special attributes (not included by
default)
– dateCreated, dateModified: described in previous
slide
• The “*” can be used as an alias of “all the
(regular) attributes”
72
Attributes filtering and special attributes
73. • Examples
– Include only attributes temp and lum
• In queries: GET /v2/entities?attrs=temp,lum
• In subscriptions: "attrs": [ "temp", "lum" ]
– Include dateCreated and not any other attribute
• In queries: GET /v2/entities?attrs=dateCreated
• In subscriptions: "attrs": [ "dateCreated" ]
– Include dateModified and all the other (regular)
attributes
• In queries: GET /v2/entities?attrs=dateModified,*
• In subscriptions: "attrs": [ "dateModified", "*" ]
– Include all attributes (same effect that not using attrs,
not very interesting)
• In queries: GET /v2/entities?attrs=*
• In subscriptions: "attrs": [ "*" ]
73
Attributes filtering and special attributes
74. • By default all attribute metadata are included in query responses
and notifications
• The metadata field (as parameter in GET operations and as
notification sub-field in subscriptions) can be used to specify a
filtering list
• The metadata field can be also used to explicitly include some
special metadata (not included by default)
– dateCreated, dateModified: described in previous slide
– actionType: which value is the action type corresponding to the
update triggering the notification: “update”, “append” or “delete” (*)
– previousValue: which provides the value of the attribute previous to
processing the update that triggers the notification
• The “*” can be used as an alias of “all the (regular) metadata”
74
(*) actionType “delete” not yet supported by Orion in 1.7.0.
Metadata filtering and special metadata
75. • Examples
– Include only metadata MD1 and MD2
• In queries: GET /v2/entities?metadata=MD1,MD2
• In subscriptions: "metadata": [ "MD1", "MD2" ]
– Include previousValue and not any other metadata
• In queries: GET /v2/entities?metadata=previousValue
• In subscriptions: "attrs": [ "previousValue" ]
– Include actionType and all the other (regular) metadata
• In queries: GET /v2/entities?metadata=actionType,*
• In subscriptions: "attrs": [ "actionType", "*" ]
– Include all metadatata (same effect that not using
metadata, not very interesting)
• In queries: GET /v2/entities?metadata=*
• In subscriptions: "metadata": [ "*" ]
75
Metadata filtering and special metadata
76. • Uncached queries and updates
76
Application
ContextBroker ContextProvider
1. registerContext(provider= )
db
2. query 3. query
4. data5. data
Context
Consumer
Registration & Context Providers
77. POST <cb_host>:1026/v1/registry/registerContext
…
{
"contextRegistrations": [
{
"entities": [
{
"type": "Car",
"isPattern": "false",
"id": "Car1"
},
"attributes": [
{
"name": "speed",
"type": "float",
"isDomain": "false"
}
],
"providingApplication": "http://contextprovider.com/Cars"
}
],
"duration": "P1M"
}
200 OK
...
{
"duration" : "P1M",
"registrationId" : "52a744b011f5816465943d58"
}
77
Context management availability functionality not
yet specified in NGSIv2. Thus, a NGSIv1 operation is
used to create the registration.
Registration & Context Providers
79. • Simple multitenant model based on
logical database separation.
• It eases tenant-based authorization
provided by other components.
• Just use an additional HTTP header
called "Fiware-Service", whose value
is the tenant name. Example:
Fiware-Service: Tenant1
Context
Broker
Tenant1
Tenant2
…
79
Multitenancy
80. • A service path is a hierarchical scope assigned to an entity
at creation time (with POST /v2/entities).
80
Service Paths
81. • In order to use a service path we put in a new HTTP header
called "Fiware-ServicePath". For example:
Fiware-ServicePath: /Madrid/Gardens/ParqueNorte/Parterre1
• Properties:
– A query on a service path will look only into the specified node
– Use "ParentNode/#" to include all child nodes
– Queries without Fiware-ServicePath resolve to "/#"
– Entities will fall in the "/" node by default
ParqueNorte
Parterre2Parterre1
81
Service Paths
82. • Properties (continued):
– You can OR a query using a comma (,)
operator in the header
• For example, to query all street lights that are either in
ParqueSur or in ParqueOeste you would use:
ServicePath: Madrid/Gardens/ParqueSur,
Madrid/Gardens/ParqueOeste
• You can OR up to 10 different scopes.
– Maximum scope levels: 10
• Scope1/Scope2/.../Scope10
– You can have the same element IDs in
different scopes (be careful with this!)
– You can't change scope once the element is
created
– One entity can belong to only one scope
– It works not only with queries, but also with
subscriptions/notifications
– It works not only in NGSI10, but also with
registrations/discoveries (NGSI9)
ParqueNorte
Parterre1
light1
light1
A B
A or B
82
Service Paths
83. • Useful for programming clients that run entirely in browser
without backend
• Support in GET requests
• Controlled by the -corsOrigin CLI parameter at boot time
83
200 OK
Access-Control-Allow-Origin: *
...
{
“speed": [
….
}
GET <cb_host>:1026/v2/entities/Car1
Cross-Origin Resource Sharing (CORS)
85. • The easy way
– This presentation: google for “fermingalan slideshare” and search the one
named “Managing Context Information at large scale”
– Orion User Manual: google for “Orion FIWARE manual” and use the first hit
– Orion Catalogue page: google for “Orion FIWARE catalogue” and use the first
hit
• References
– NGSIv2 Specification
• http://fiware.github.io/specifications/ngsiv2/stable
• http://fiware.github.io/specifications/ngsiv2/latest
– NGSIv2 for NGSIv1 developers
• http://bit.ly/ngsiv2-vs-ngsiv1
– This presentation
• http://www.slideshare.net/fermingalan/fiware-managing-context-information-at-large-
scale
– Orion Catalogue:
• http://catalogue.fiware.org/enablers/publishsubscribe-context-broker-orion-context-
broker
– Orion support trhough StackOverflow
• Ask your questions using the “fiware-orion” tag
• Look for existing questions at http://stackoverflow.com/questions/tagged/fiware-orion
85
Would you like to know more?
87. Integration with existing systems
• Context adapters will be developed to interface with existing systems (e.g.,
municipal services management systems in a smart city) acting as Context
Providers, Context Producers, or both
• Some attributes from a given entity may be linked to a Context Provider
while other attributes may be linked to Context Producers
queryContext (e1,
attr1, attr2)
Context Provider
queryContext (e1,
attr1)
Context Consumer
updateContext (e1,
attr2)
Application
Context Broker
System BSystem A
87
88. Integration with sensor networks
• The backend IoT Device Management GE enables creation and
configuration of NGSI IoT Agents that connect to sensor networks
• Each NGSI IoT Agent can behave as Context Consumers or Context
Providers, or both
FIWARE Context Broker
IoT
Agent-1
IoT
Agent-2
IoT
Agent-n
IoT Agent
Manager
create/monitor
FIWARE Backend IoT
Device Management
OMA NGSI API (northbound interface)
(southbound interfaces)
MQTTETSI M2M IETF CoAP
88
89. • Federation of infrastructures (private/public regions)
• Automated GE deploymentCloud
• Complete Context Management Platform
• Integration of Data and Media ContentData
•Easy plug&play of devices using multiple protocols
•Automated Measurements/Action Context updatesIoT
•Visualization of data (operation dashboards)
•Publication of data sets/servicesApps
•Easy support of UIs with advanced web-based 3D and AR
capabilities
•Visual representation of context information.
Web UI
•Advanced networking capabilities (SDN) and Middleware
•Interface to robotsI2ND
•Security Monitoring
•Built-in Identity/Access/Privacy ManagementSecurity
Context Management in FIWARE
89
90. Context/Data Management Platform
Applications
OMA NGSI-9/10
Processing/Analysis
Algorithms
Gathered data is
injected for
processing/analysis
Distributed
Context
Sources Complex Event
Processing
(PROTON)
BigData
(COSMOS)
Processed data is
injected for
processing/analysi
s
Data generated either by CEP
or BigData is published
Gathered data injected
for CEP-like processing
Direct
bigdata
injection
Programming of
rules
90
FI-WARE Context/Data Management Platform
91. • Used by /v2/op/update (batch operation)
• Conventional actionTypes
– APPEND: append (or update if the attribute already
exists)
– UPDATE: update
– DELETE: delete
• Special actionTypes
– APPEND_STRICT: strict append (returns error if some of
the attributes to add already exists)
– REPLACE: delete all the entity attributes, next append
the ones in the update request
91
Special update action types
Editor's Notes
Orion Context Broker is an implementation of a context information broker with persistent storage
It implements OMA NGSI9/10 specification
NGSI9 is about context information availability (i.e. sources of context information) management
NGSI10 is about context information itself
Alternatives to ngrok.io:
http://localtunnel.me
https://forwardhq.com