NGSIv2 is a simplified and enhanced version of NGSIv1 that provides a more RESTful API for managing context information. Key improvements in NGSIv2 include simplified URLs and payloads, support for native JSON data types, text-based attribute access, enhanced geolocation and datetime capabilities, and improved filtering. NGSIv2 also allows more flexible attribute and entity filtering in queries and subscriptions compared to NGSIv1. While NGSIv1 is still supported, NGSIv2 is the preferred API version for new development due to its improvements and more RESTful design.
The document discusses CQRS (Command Query Responsibility Segregation) and event sourcing patterns for building distributed applications. CQRS separates commands, which change data, from queries, which read data. Event sourcing records all state changes as a sequence of immutable events. This allows reconstructing any past state and enables easy distribution of data. The document provides examples of how event sourcing and CQRS can be implemented using event stores, event projections, and read models to support both commands and queries independently.
This document provides an overview of Docker concepts including containers, images, Dockerfiles, and the Docker architecture. It defines key Docker terms like images, containers, and registries. It explains how Docker utilizes Linux kernel features like namespaces and control groups to isolate containers. It demonstrates how to run a simple Docker container and view logs. It also describes the anatomy of a Dockerfile and common Dockerfile instructions like FROM, RUN, COPY, ENV etc. Finally, it illustrates how Docker works by interacting with the Docker daemon, client and Docker Hub registry to build, run and distribute container images.
Next Generation Client APIs in Envoy MobileC4Media
Video and slides synchronized, mp3 and slide download available at URL https://bit.ly/2x0Fav8.
Jose Nino guides the audience through the journey of Mobile APIs at Lyft. He focuses on how the team has reaped the benefits of API generation to experiment with the network transport layer. He also discusses recent developments the team has made with Envoy Mobile and the roadmap ahead. Filmed at qconlondon.com.
Jose Nino works as a Software Engineer at Lyft.
Spring boot microservice metrics monitoringOracle Korea
This document summarizes a presentation on monitoring microservices with Spring Boot. It discusses evolving architectures from monolithic to microservices and challenges in microservices. It then covers different monitoring techniques like metrics, tracing and logging. It provides an overview of tools like Prometheus, Grafana, Spring Boot Admin, Eureka and Consul for monitoring microservices. Finally, it outlines hands-on labs to set up monitoring of a sample application with different tool combinations.
Dynatrace - Red Hat workshop : Monolith to MicroservicesSteve Caron
This document provides steps for a hands-on workshop to migrate a monolithic application to microservices using OpenShift and Dynatrace. The workshop will:
1. Set up the monolithic TicketMonster application and deploy it to OpenShift.
2. Extract the user interface from the monolith as the first microservice.
3. Leverage Dynatrace to analyze the monolith and identify a suitable microservice, defining a custom service detection rule for orders.
4. Consider identifying the domain model of future microservices by understanding their data management requirements.
The document discusses microservice patterns for implementing microservices. It begins with an overview of pattern languages and how they can be applied to microservices. It then covers several common microservice patterns including service discovery, communication styles, deployment strategies, and reliability patterns like circuit breakers.
The document discusses CQRS (Command Query Responsibility Segregation) and event sourcing patterns for building distributed applications. CQRS separates commands, which change data, from queries, which read data. Event sourcing records all state changes as a sequence of immutable events. This allows reconstructing any past state and enables easy distribution of data. The document provides examples of how event sourcing and CQRS can be implemented using event stores, event projections, and read models to support both commands and queries independently.
This document provides an overview of Docker concepts including containers, images, Dockerfiles, and the Docker architecture. It defines key Docker terms like images, containers, and registries. It explains how Docker utilizes Linux kernel features like namespaces and control groups to isolate containers. It demonstrates how to run a simple Docker container and view logs. It also describes the anatomy of a Dockerfile and common Dockerfile instructions like FROM, RUN, COPY, ENV etc. Finally, it illustrates how Docker works by interacting with the Docker daemon, client and Docker Hub registry to build, run and distribute container images.
Next Generation Client APIs in Envoy MobileC4Media
Video and slides synchronized, mp3 and slide download available at URL https://bit.ly/2x0Fav8.
Jose Nino guides the audience through the journey of Mobile APIs at Lyft. He focuses on how the team has reaped the benefits of API generation to experiment with the network transport layer. He also discusses recent developments the team has made with Envoy Mobile and the roadmap ahead. Filmed at qconlondon.com.
Jose Nino works as a Software Engineer at Lyft.
Spring boot microservice metrics monitoringOracle Korea
This document summarizes a presentation on monitoring microservices with Spring Boot. It discusses evolving architectures from monolithic to microservices and challenges in microservices. It then covers different monitoring techniques like metrics, tracing and logging. It provides an overview of tools like Prometheus, Grafana, Spring Boot Admin, Eureka and Consul for monitoring microservices. Finally, it outlines hands-on labs to set up monitoring of a sample application with different tool combinations.
Dynatrace - Red Hat workshop : Monolith to MicroservicesSteve Caron
This document provides steps for a hands-on workshop to migrate a monolithic application to microservices using OpenShift and Dynatrace. The workshop will:
1. Set up the monolithic TicketMonster application and deploy it to OpenShift.
2. Extract the user interface from the monolith as the first microservice.
3. Leverage Dynatrace to analyze the monolith and identify a suitable microservice, defining a custom service detection rule for orders.
4. Consider identifying the domain model of future microservices by understanding their data management requirements.
The document discusses microservice patterns for implementing microservices. It begins with an overview of pattern languages and how they can be applied to microservices. It then covers several common microservice patterns including service discovery, communication styles, deployment strategies, and reliability patterns like circuit breakers.
A Hitchhikers Guide to Cloud Native API GatewaysQAware GmbH
O'Reilly Software Architecture Conference Europe, November 2019, Berlin: Talk by Mario-Leander Reimer (@LeanderReimer, Principal Software Architect at QAware)
=== Please download slides if blurred! ===
Abstract: Good APIs are the centerpiece of any successful digital product. But for complex systems with many API consumers, the proper management of these APIs is of utmost importance. The API gateway pattern is well established to handle concerns like routing, versioning, rate limiting, access control, or diagnosability in a cloud native application architecture. Mario-Leander Reimer guides you to cloud native API gateways.
You’ll take a closer look at the cloud native API gateway ecosystem: Ambassador, Gloo, Tyc, KrakenD, etc., and find out which one of these is right for your next project. Leander explains the API gateway pattern with its possible usage scenarios and defines a criteria catalog with essential characteristics in order to compare the current ecosystem. And he puts some of them to the test and demonstrates their usage live and uncut.
A Hitchhiker's Guide to Cloud-Native API GatewaysQAware GmbH
JavaLand, March 2021, online: Talk by Mario-Leander Reimer (@LeanderReimer, Principal Software Architect at QAware)
Abstract: Good APIs are the center piece of any successful digital product and cloud native application architecture. But for complex systems with many API consumers the proper management of these APIs is of utmost importance. The API gateway pattern is well established to handle and enforce concerns like routing, versioning, rate limiting, access control, diagnosability or service catalogs in a microservice architecture.
So this session will have a closer look at the cloud native API gateway ecosystem: Ambassador, Gloo, KrakenD, Envoy, et.al. But which one of these is the right one to use in your next project? Let's find out. We will start off by briefly explaining the API gateway pattern and some basic criteria. We then continue by showcasing the most promising ones.
** Devops CI-CD pipeline using Containers **
by Priyanka Dive, DevOps Engineer/Senior Solutions Architect.
Priyanka will briefly introduce DevOps practices and technologies. She will also give a demo of an end-to-end DevOps pipeline using Git (source code management), Jenkins ( continuous integration), Sonarqube (code analysis) with Docker & Kubernetes.
Presented at Nulab Drinking Code meetup (30 August 2019): https://www.meetup.com/DrinkingCodeSG/events/263412142/
Service Mesh. What does it mean? We have already learned Microservices and can develop complex distributed applications. Is Service Mesh something we need or is another fancy buzzword?
This presentation walks through the evolution of application architecture from Monolith to Service Mesh to give an idea of what a Service Mesh is, how it is applied to existing architectures and is focused help you to understand if you really need it.
Integrating Splunk into your Spring ApplicationsDamien Dallimore
How much visibility do you really have into your Spring applications? How effectively are you capturing,harnessing and correlating the logs, metrics, & messages from your Spring applications that can be used to deliver this visibility ? What tools and techniques are you providing your Spring developers with to better create and utilize this mass of machine data ? In this session I'll answer these questions and show how Splunk can be used to not only provide historical and realtime visibility into your Spring applications , but also as a platform that developers can use to become more "devops effective" & easily create custom big data integrations and standalone solutions.I'll discuss and demonstrate many of Splunk's Java apps,frameworks and SDK and also cover the Spring Integration Adaptors for Splunk.
Most of what Rundeck does is via one of it’s plugins. There are already over 100+ plugins to perform various services including executing commands on nodes, performing step in a workflow, or sending notification about job status. There may be instances where you need to write your own plugin to perform a specific step or action. In this session, will walk through the steps for writing our own plugin.
In this session you'll learn:
Review the structure of plugin
How to use the structure and what information you need to include in other files to make your plugin work
How to write a simple plugin example using java
How to reply and use your plugin
Transformacion e innovacion digital Meetup - Application Modernization and Mi...José Román Martín Gil
This document discusses application modernization and migration strategies for moving applications to the cloud. It begins by defining application modernization and migration as focusing on business workloads and digital transformation. It then discusses why modernization is important, including reasons like disruption, embracing digital transformation, and gaining business agility. The document outlines various migration strategies like rehosting, replatforming, refactoring, repurchasing, and retiring applications. It also discusses modern application concepts like better software architecture, streamlining the application lifecycle, and continuous innovation. Finally, it covers cloud-readiness and demonstrates migrating an application to OpenShift through repackaging, deploying with containers, and modernizing the architecture.
How easy (or hard) it is to monitor your graph ql service performanceRed Hat
- GraphQL performance monitoring can be challenging as queries can vary significantly even when requesting the same data. Traditional endpoint monitoring provides little insight.
- Distributed tracing using OpenTracing allows tracing queries to monitor performance at the resolver level. Tools like Jaeger and plugins for Apollo Server and other GraphQL servers can integrate tracing.
- A demo showed using the Apollo OpenTracing plugin to trace a query through an Apollo server and resolver to an external API. The trace data was sent to Jaeger for analysis to help debug performance issues.
INTERFACE, by apidays - Apache Cassandra now speaks developer with Stargate ...apidays
The document discusses Stargate, an open source data gateway that sits between applications and Cassandra databases. It allows Cassandra to speak to developers through REST, GraphQL, and CQL APIs accessed through SDKs and endpoints. Stargate abstracts Cassandra concepts from applications and supports multiple programming languages. Speakers from Netflix and Yelp praise how Stargate removes barriers for developers and helps unify teams by breaking data silos. The project aims to further enhance GraphQL and microservices while improving usability.
The document discusses Hyperledger Fabric, a blockchain framework. It provides an overview of why blockchain is needed to solve reconciliation issues in multi-party environments. It then summarizes key aspects of Hyperledger Fabric such as its architecture, components, and how transactions flow through the network.
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Lucas Jellema
Microcks is a tool for API Mocking and Testing. In this presentation an overview of the support in Microcks for asynchronous APIs - the event publishing and consuming behavior of services and applications
The document summarizes the key enhancements and changes in Kubernetes 1.23, including 11 stable enhancements graduating to general availability, 16 features graduating to beta status, and 19 alpha features being introduced. Major themes include dual-stack IPv4/IPv6 networking, PodSecurity admission control, HorizontalPodAutoscaler v2 API graduating to stable, structured logging becoming beta, and deprecations including FlexVolume and klog flags. The document also provides updates on SIG-level efforts around API machinery, applications, authentication, autoscaling, CLI, cluster lifecycle, instrumentation, networking, and nodes.
Modern DevOps practices involve deploying applications to platforms. From basic IaaS to PaaS to serverless functions. But who runs those platforms and how? At Pivotal we build and operate platforms, and we run those platforms on a platform designed to run complex distributed systems called Bosh which was inspired by google borg. Paul will talk through a couple of successful patterns for deploying and operating platforms as well as how to help your business determine which platform[s] are right for them and how to successfully get the business to adopt those platforms.
Oracle Cloud Native Application Development (Meetup, 20th January 2020)Lucas Jellema
Overview of OCI (Oracle Cloud Infrastructure) services for Cloud Native Application Development.
• Project Fn and Serverless Functions on Oracle Cloud Infrastructure
• API Gateway
• Streams (managed event platform, similar to Apache Kafka)
• Monitoring
• Object Storage
This slide deck gives a good insight in the capabilities available on OCI, their features and limitations and their pricing models.
MuleSoft Manchester Meetup #4 slides 11th February 2021Ieva Navickaite
The document summarizes a MuleSoft meetup that took place on February 11, 2021. It included presentations from Bobby James of The Co-operative Bank, Francis Edwards of Saint-Gobain Building Distribution, and Justin Saliba of EPAM (Ricston). Bobby James' presentation was titled "I Hate Layers" and discussed application architecture and API-led design. Francis Edwards' presentation demonstrated evolving an application using API-led design principles. Justin Saliba's presentation provided an overview of a typical day in Air Malta's IT operations team and how they have adopted API-led practices.
As presented at Wellington Code Camp.
DevOps is not just about deploying software, it’s about reducing bottlenecks and bringing value to the business. By utilizing DevOps techniques we can build a strong security practice that everybody is invested in, even your Developers and Operations Teams!
This document summarizes a MuleSoft meetup event in Nashik, India that covered the topics of shared load balancers versus dedicated load balancers in CloudHub. It introduced the meetup organizers Jitendra Bafna and Hemant Nehete and speaker Jitendra Bafna. The event included a presentation on the differences between shared and dedicated load balancers, a live demonstration, and a trivia quiz with prizes for winners. Networking concluded the event.
A Hitchhikers Guide to Cloud Native API GatewaysQAware GmbH
O'Reilly Software Architecture Conference Europe, November 2019, Berlin: Talk by Mario-Leander Reimer (@LeanderReimer, Principal Software Architect at QAware)
=== Please download slides if blurred! ===
Abstract: Good APIs are the centerpiece of any successful digital product. But for complex systems with many API consumers, the proper management of these APIs is of utmost importance. The API gateway pattern is well established to handle concerns like routing, versioning, rate limiting, access control, or diagnosability in a cloud native application architecture. Mario-Leander Reimer guides you to cloud native API gateways.
You’ll take a closer look at the cloud native API gateway ecosystem: Ambassador, Gloo, Tyc, KrakenD, etc., and find out which one of these is right for your next project. Leander explains the API gateway pattern with its possible usage scenarios and defines a criteria catalog with essential characteristics in order to compare the current ecosystem. And he puts some of them to the test and demonstrates their usage live and uncut.
A Hitchhiker's Guide to Cloud-Native API GatewaysQAware GmbH
JavaLand, March 2021, online: Talk by Mario-Leander Reimer (@LeanderReimer, Principal Software Architect at QAware)
Abstract: Good APIs are the center piece of any successful digital product and cloud native application architecture. But for complex systems with many API consumers the proper management of these APIs is of utmost importance. The API gateway pattern is well established to handle and enforce concerns like routing, versioning, rate limiting, access control, diagnosability or service catalogs in a microservice architecture.
So this session will have a closer look at the cloud native API gateway ecosystem: Ambassador, Gloo, KrakenD, Envoy, et.al. But which one of these is the right one to use in your next project? Let's find out. We will start off by briefly explaining the API gateway pattern and some basic criteria. We then continue by showcasing the most promising ones.
** Devops CI-CD pipeline using Containers **
by Priyanka Dive, DevOps Engineer/Senior Solutions Architect.
Priyanka will briefly introduce DevOps practices and technologies. She will also give a demo of an end-to-end DevOps pipeline using Git (source code management), Jenkins ( continuous integration), Sonarqube (code analysis) with Docker & Kubernetes.
Presented at Nulab Drinking Code meetup (30 August 2019): https://www.meetup.com/DrinkingCodeSG/events/263412142/
Service Mesh. What does it mean? We have already learned Microservices and can develop complex distributed applications. Is Service Mesh something we need or is another fancy buzzword?
This presentation walks through the evolution of application architecture from Monolith to Service Mesh to give an idea of what a Service Mesh is, how it is applied to existing architectures and is focused help you to understand if you really need it.
Integrating Splunk into your Spring ApplicationsDamien Dallimore
How much visibility do you really have into your Spring applications? How effectively are you capturing,harnessing and correlating the logs, metrics, & messages from your Spring applications that can be used to deliver this visibility ? What tools and techniques are you providing your Spring developers with to better create and utilize this mass of machine data ? In this session I'll answer these questions and show how Splunk can be used to not only provide historical and realtime visibility into your Spring applications , but also as a platform that developers can use to become more "devops effective" & easily create custom big data integrations and standalone solutions.I'll discuss and demonstrate many of Splunk's Java apps,frameworks and SDK and also cover the Spring Integration Adaptors for Splunk.
Most of what Rundeck does is via one of it’s plugins. There are already over 100+ plugins to perform various services including executing commands on nodes, performing step in a workflow, or sending notification about job status. There may be instances where you need to write your own plugin to perform a specific step or action. In this session, will walk through the steps for writing our own plugin.
In this session you'll learn:
Review the structure of plugin
How to use the structure and what information you need to include in other files to make your plugin work
How to write a simple plugin example using java
How to reply and use your plugin
Transformacion e innovacion digital Meetup - Application Modernization and Mi...José Román Martín Gil
This document discusses application modernization and migration strategies for moving applications to the cloud. It begins by defining application modernization and migration as focusing on business workloads and digital transformation. It then discusses why modernization is important, including reasons like disruption, embracing digital transformation, and gaining business agility. The document outlines various migration strategies like rehosting, replatforming, refactoring, repurchasing, and retiring applications. It also discusses modern application concepts like better software architecture, streamlining the application lifecycle, and continuous innovation. Finally, it covers cloud-readiness and demonstrates migrating an application to OpenShift through repackaging, deploying with containers, and modernizing the architecture.
How easy (or hard) it is to monitor your graph ql service performanceRed Hat
- GraphQL performance monitoring can be challenging as queries can vary significantly even when requesting the same data. Traditional endpoint monitoring provides little insight.
- Distributed tracing using OpenTracing allows tracing queries to monitor performance at the resolver level. Tools like Jaeger and plugins for Apollo Server and other GraphQL servers can integrate tracing.
- A demo showed using the Apollo OpenTracing plugin to trace a query through an Apollo server and resolver to an external API. The trace data was sent to Jaeger for analysis to help debug performance issues.
INTERFACE, by apidays - Apache Cassandra now speaks developer with Stargate ...apidays
The document discusses Stargate, an open source data gateway that sits between applications and Cassandra databases. It allows Cassandra to speak to developers through REST, GraphQL, and CQL APIs accessed through SDKs and endpoints. Stargate abstracts Cassandra concepts from applications and supports multiple programming languages. Speakers from Netflix and Yelp praise how Stargate removes barriers for developers and helps unify teams by breaking data silos. The project aims to further enhance GraphQL and microservices while improving usability.
The document discusses Hyperledger Fabric, a blockchain framework. It provides an overview of why blockchain is needed to solve reconciliation issues in multi-party environments. It then summarizes key aspects of Hyperledger Fabric such as its architecture, components, and how transactions flow through the network.
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Lucas Jellema
Microcks is a tool for API Mocking and Testing. In this presentation an overview of the support in Microcks for asynchronous APIs - the event publishing and consuming behavior of services and applications
The document summarizes the key enhancements and changes in Kubernetes 1.23, including 11 stable enhancements graduating to general availability, 16 features graduating to beta status, and 19 alpha features being introduced. Major themes include dual-stack IPv4/IPv6 networking, PodSecurity admission control, HorizontalPodAutoscaler v2 API graduating to stable, structured logging becoming beta, and deprecations including FlexVolume and klog flags. The document also provides updates on SIG-level efforts around API machinery, applications, authentication, autoscaling, CLI, cluster lifecycle, instrumentation, networking, and nodes.
Modern DevOps practices involve deploying applications to platforms. From basic IaaS to PaaS to serverless functions. But who runs those platforms and how? At Pivotal we build and operate platforms, and we run those platforms on a platform designed to run complex distributed systems called Bosh which was inspired by google borg. Paul will talk through a couple of successful patterns for deploying and operating platforms as well as how to help your business determine which platform[s] are right for them and how to successfully get the business to adopt those platforms.
Oracle Cloud Native Application Development (Meetup, 20th January 2020)Lucas Jellema
Overview of OCI (Oracle Cloud Infrastructure) services for Cloud Native Application Development.
• Project Fn and Serverless Functions on Oracle Cloud Infrastructure
• API Gateway
• Streams (managed event platform, similar to Apache Kafka)
• Monitoring
• Object Storage
This slide deck gives a good insight in the capabilities available on OCI, their features and limitations and their pricing models.
MuleSoft Manchester Meetup #4 slides 11th February 2021Ieva Navickaite
The document summarizes a MuleSoft meetup that took place on February 11, 2021. It included presentations from Bobby James of The Co-operative Bank, Francis Edwards of Saint-Gobain Building Distribution, and Justin Saliba of EPAM (Ricston). Bobby James' presentation was titled "I Hate Layers" and discussed application architecture and API-led design. Francis Edwards' presentation demonstrated evolving an application using API-led design principles. Justin Saliba's presentation provided an overview of a typical day in Air Malta's IT operations team and how they have adopted API-led practices.
As presented at Wellington Code Camp.
DevOps is not just about deploying software, it’s about reducing bottlenecks and bringing value to the business. By utilizing DevOps techniques we can build a strong security practice that everybody is invested in, even your Developers and Operations Teams!
This document summarizes a MuleSoft meetup event in Nashik, India that covered the topics of shared load balancers versus dedicated load balancers in CloudHub. It introduced the meetup organizers Jitendra Bafna and Hemant Nehete and speaker Jitendra Bafna. The event included a presentation on the differences between shared and dedicated load balancers, a live demonstration, and a trivia quiz with prizes for winners. Networking concluded the event.
FIWARE iHubs are physical facilities that provide training, coaching, hackathons and collaboration opportunities to help developers and startups/SMEs build applications using FIWARE technologies. They work to expand the FIWARE marketplace and certify applications as FIWARE-ready or IoT-ready. FIWARE ZONE innovation centers in Seville and Malaga provide IoT specialists and labs to help enterprises, along with urban labs for devices and networks and a platform for managing and using device data. They also have agreements with universities for access to labs and equipment to facilitate IoT projects and hold open calls on IoT topics like smart cities.
FIWARE for Smart Cities: City of Ancona - Parking AdvisorFIWARE
FIWARE for Smart Cities: City of Ancona - Parking Advisor presentation, by Prog. Ing. Gian Marco Revel.
Smart City / Smart Mobility. Conference track. 1st FIWARE Summit, Málaga, Dec. 13-15, 2016.
FIWARE Summit conclusions, by Hubert Tardieu (ATOS CEO advisor / Chairman of the FIWARE Foundation Board of Directors).
Conference track. 1st FIWARE Summit, Málaga, Dec. 13-15, 2016.
Frontier Cities 2 - FIWARE Goes to the MarketFIWARE
Frontier Cities 2: European Smart Cities Driving the Future Internet presentation, by Maria Bernardita Cardenas.
Conference track. 1st FIWARE Summit, Málaga, Dec. 13-15, 2016.
FIWARE: the best is yet to come presentation, by Ulrich Ahle. CEO FIWARE Foundation.
Conference track, final word. 1st FIWARE Summit, Málaga, Dec. 13-15, 2016.
FIWARE for Smart Industry panel discussion, by Ulrich Ahle, CEO of the FIWARE Foundation.
Conference track. 1st FIWARE Summit, Málagada, Dec. 13-15, 2016.
The document discusses the growth and success of startups that went through the IMPACT accelerator program. It provides statistics showing that the startups increased their average number of employees and valuation after completing the program. The program also connected startups to top international mentors and investors and helped startups raise additional funding. The conclusion encourages continuing to support startups through the IMPACT program to make a global impact.
1) Um hackathon será realizado para desenvolver aplicativos baseados na plataforma FIWARE entre 4-6 de fevereiro.
2) O objetivo é usar os componentes Orion Context Broker e IDAS IoT Agent para criar aplicativos context-aware ou conectados à Internet das Coisas.
3) O aplicativo vencedor receberá um prêmio de R$20.000.
This infographic presents the partnership between TM Forum and FIWARE, and how it eases the development of innovative digital services for the citizens and municipalities and enables the creation of a Digital Single Market that can reach, engage and profit different urban communities around the world.
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.
orioncontextbroker-ngsiv2-overview-for-developers-that-already-know-ngsiv1-20...Fermin Galan
The document provides an overview of NGSIv2, which is a revamped and simplified version of NGSIv1. Some key improvements in NGSIv2 include more RESTful design, simplified URLs and payloads, support for native JSON data types, improved geolocation and datetime capabilities, and enhanced filtering for both queries and subscriptions. The document encourages using NGSIv2 over NGSIv1 whenever possible due to its advantages, while also noting NGSIv2 is still in release candidate status.
NGSIv2 Overview for Developers That Already Know NGSIv1 20180716Fermin Galan
This document provides an overview of NGSIv2 for developers who are already familiar with NGSIv1. It introduces NGSIv2 as a revamped, simplified version of NGSIv1 that is designed to be more RESTful and developer-friendly. The key differences highlighted include simplified URLs and payloads, support for native JSON data types, improved geolocation and filtering capabilities, and additional features like transient entities and batch operations. Developers are encouraged to use NGSIv2 going forward, even though NGSIv1 remains available for compatibility.
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 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 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.
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.
NGSIv2 Overview for Developers That Already Know NGSIv1 20181218Fermin 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, improved filtering capabilities for queries and subscriptions, and features like geolocation, datetime attributes, and transient entities. NGSIv2 aims to make common operations easy while still supporting complex functionality through a more developer-friendly design.
ngsiv2-overview-for-developers-that-already-know-ngsiv1-20190214Fermin 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.
NGSIv2 Overview for Developers That Already Know NGSIv1 20180928Fermin 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, text-based retrieval and setting of 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.
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.
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 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.
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.
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 provides a more developer-friendly API for managing context data compared to the legacy NGSIv1 version.
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.
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!
Single Page Applications (SPA) 2.0
- Push the limits of what’s possible on the web
AngularJS, RequireJS , Polymer, AMD, ES6 , Gulp, Dependency Injection, JavaScript Patterns, Functional Reactive Programming, OAuth, Promises ,Generators
Similar to NGSIv2 Overview for Developers that Already Know NGSIv1 (20)
Das D-A-CH Meeting bringt deutschsprachige FIWARE-Enthusiasten zu hochkarätigen Vorträgen und wertvollen Networking-Möglichkeiten zusammen. Ein besonderer Fokus liegt auf dem FIWARE iHubs Programm, das Beratung und Peers-Diskussionen für diejenigen bietet, die an der Gründung eines FIWARE iHubs interessiert sind. Aber das ist noch nicht alles! Wir haben noch weitere Highlights auf Lager, darunter die faszinierende Ausstellung "SMART WORLD by FIWARE", die komplett aus Legosteinen gebaut ist. Außerdem lassen wir viel Zeit zum Netzwerken und Business Talks bei Snacks und Getränken mit der Stadt Herne, NRW und ihren Spielern und mit Vertretern aus Österreich und der Stadt Wien im Speziellen. Aus DACH und darüber hinaus werden einige iHubs vertreten sein, auch das in Kürze entstehende iHub in Wien.
Das D-A-CH Meeting bringt deutschsprachige FIWARE-Enthusiasten zu hochkarätigen Vorträgen und wertvollen Networking-Möglichkeiten zusammen. Ein besonderer Fokus liegt auf dem FIWARE iHubs Programm, das Beratung und Peers-Diskussionen für diejenigen bietet, die an der Gründung eines FIWARE iHubs interessiert sind. Aber das ist noch nicht alles! Wir haben noch weitere Highlights auf Lager, darunter die faszinierende Ausstellung "SMART WORLD by FIWARE", die komplett aus Legosteinen gebaut ist. Außerdem lassen wir viel Zeit zum Netzwerken und Business Talks bei Snacks und Getränken mit der Stadt Herne, NRW und ihren Spielern und mit Vertretern aus Österreich und der Stadt Wien im Speziellen. Aus DACH und darüber hinaus werden einige iHubs vertreten sein, auch das in Kürze entstehende iHub in Wien.
Christoph Mertens_IDSA_Introduction to Data Spaces.pptxFIWARE
Das D-A-CH Meeting bringt deutschsprachige FIWARE-Enthusiasten zu hochkarätigen Vorträgen und wertvollen Networking-Möglichkeiten zusammen. Ein besonderer Fokus liegt auf dem FIWARE iHubs Programm, das Beratung und Peers-Diskussionen für diejenigen bietet, die an der Gründung eines FIWARE iHubs interessiert sind. Aber das ist noch nicht alles! Wir haben noch weitere Highlights auf Lager, darunter die faszinierende Ausstellung "SMART WORLD by FIWARE", die komplett aus Legosteinen gebaut ist.
Außerdem lassen wir viel Zeit zum Netzwerken und Business Talks bei Snacks und Getränken mit der Stadt Herne, NRW und ihren Spielern und mit Vertretern aus Österreich und der Stadt Wien im Speziellen. Aus DACH und darüber hinaus werden einige iHubs vertreten sein, auch das in Kürze entstehende iHub in Wien.
Das D-A-CH Meeting bringt deutschsprachige FIWARE-Enthusiasten zu hochkarätigen Vorträgen und wertvollen Networking-Möglichkeiten zusammen. Ein besonderer Fokus liegt auf dem FIWARE iHubs Programm, das Beratung und Peers-Diskussionen für diejenigen bietet, die an der Gründung eines FIWARE iHubs interessiert sind. Aber das ist noch nicht alles! Wir haben noch weitere Highlights auf Lager, darunter die faszinierende Ausstellung "SMART WORLD by FIWARE", die komplett aus Legosteinen gebaut ist.
Außerdem lassen wir viel Zeit zum Netzwerken und Business Talks bei Snacks und Getränken mit der Stadt Herne, NRW und ihren Spielern und mit Vertretern aus Österreich und der Stadt Wien im Speziellen. Aus DACH und darüber hinaus werden einige iHubs vertreten sein, auch das in Kürze entstehende iHub in Wien.
Das D-A-CH Meeting bringt deutschsprachige FIWARE-Enthusiasten zu hochkarätigen Vorträgen und wertvollen Networking-Möglichkeiten zusammen. Ein besonderer Fokus liegt auf dem FIWARE iHubs Programm, das Beratung und Peers-Diskussionen für diejenigen bietet, die an der Gründung eines FIWARE iHubs interessiert sind. Aber das ist noch nicht alles! Wir haben noch weitere Highlights auf Lager, darunter die faszinierende Ausstellung "SMART WORLD by FIWARE", die komplett aus Legosteinen gebaut ist.
Außerdem lassen wir viel Zeit zum Netzwerken und Business Talks bei Snacks und Getränken mit der Stadt Herne, NRW und ihren Spielern und mit Vertretern aus Österreich und der Stadt Wien im Speziellen. Aus DACH und darüber hinaus werden einige iHubs vertreten sein, auch das in Kürze entstehende iHub in Wien.
Lukas Künzel Smart City Operating System.pptxFIWARE
Das D-A-CH Meeting bringt deutschsprachige FIWARE-Enthusiasten zu hochkarätigen Vorträgen und wertvollen Networking-Möglichkeiten zusammen. Ein besonderer Fokus liegt auf dem FIWARE iHubs Programm, das Beratung und Peers-Diskussionen für diejenigen bietet, die an der Gründung eines FIWARE iHubs interessiert sind. Aber das ist noch nicht alles! Wir haben noch weitere Highlights auf Lager, darunter die faszinierende Ausstellung "SMART WORLD by FIWARE", die komplett aus Legosteinen gebaut ist.
Außerdem lassen wir viel Zeit zum Netzwerken und Business Talks bei Snacks und Getränken mit der Stadt Herne, NRW und ihren Spielern und mit Vertretern aus Österreich und der Stadt Wien im Speziellen. Aus DACH und darüber hinaus werden einige iHubs vertreten sein, auch das in Kürze entstehende iHub in Wien.
Pierre Golz Der Transformationsprozess im Konzern Stadt.pptxFIWARE
Das D-A-CH Meeting bringt deutschsprachige FIWARE-Enthusiasten zu hochkarätigen Vorträgen und wertvollen Networking-Möglichkeiten zusammen. Ein besonderer Fokus liegt auf dem FIWARE iHubs Programm, das Beratung und Peers-Diskussionen für diejenigen bietet, die an der Gründung eines FIWARE iHubs interessiert sind. Aber das ist noch nicht alles! Wir haben noch weitere Highlights auf Lager, darunter die faszinierende Ausstellung "SMART WORLD by FIWARE", die komplett aus Legosteinen gebaut ist.
Außerdem lassen wir viel Zeit zum Netzwerken und Business Talks bei Snacks und Getränken mit der Stadt Herne, NRW und ihren Spielern und mit Vertretern aus Österreich und der Stadt Wien im Speziellen. Aus DACH und darüber hinaus werden einige iHubs vertreten sein, auch das in Kürze entstehende iHub in Wien.
Dennis Wendland_The i4Trust Collaboration Programme.pptxFIWARE
Das D-A-CH Meeting bringt deutschsprachige FIWARE-Enthusiasten zu hochkarätigen Vorträgen und wertvollen Networking-Möglichkeiten zusammen. Ein besonderer Fokus liegt auf dem FIWARE iHubs Programm, das Beratung und Peers-Diskussionen für diejenigen bietet, die an der Gründung eines FIWARE iHubs interessiert sind. Aber das ist noch nicht alles! Wir haben noch weitere Highlights auf Lager, darunter die faszinierende Ausstellung "SMART WORLD by FIWARE", die komplett aus Legosteinen gebaut ist.
Außerdem lassen wir viel Zeit zum Netzwerken und Business Talks bei Snacks und Getränken mit der Stadt Herne, NRW und ihren Spielern und mit Vertretern aus Österreich und der Stadt Wien im Speziellen. Aus DACH und darüber hinaus werden einige iHubs vertreten sein, auch das in Kürze entstehende iHub in Wien.
Das D-A-CH Meeting bringt deutschsprachige FIWARE-Enthusiasten zu hochkarätigen Vorträgen und wertvollen Networking-Möglichkeiten zusammen. Ein besonderer Fokus liegt auf dem FIWARE iHubs Programm, das Beratung und Peers-Diskussionen für diejenigen bietet, die an der Gründung eines FIWARE iHubs interessiert sind. Aber das ist noch nicht alles! Wir haben noch weitere Highlights auf Lager, darunter die faszinierende Ausstellung "SMART WORLD by FIWARE", die komplett aus Legosteinen gebaut ist.
Außerdem lassen wir viel Zeit zum Netzwerken und Business Talks bei Snacks und Getränken mit der Stadt Herne, NRW und ihren Spielern und mit Vertretern aus Österreich und der Stadt Wien im Speziellen. Aus DACH und darüber hinaus werden einige iHubs vertreten sein, auch das in Kürze entstehende iHub in Wien.
Das D-A-CH Meeting bringt deutschsprachige FIWARE-Enthusiasten zu hochkarätigen Vorträgen und wertvollen Networking-Möglichkeiten zusammen. Ein besonderer Fokus liegt auf dem FIWARE iHubs Programm, das Beratung und Peers-Diskussionen für diejenigen bietet, die an der Gründung eines FIWARE iHubs interessiert sind. Aber das ist noch nicht alles! Wir haben noch weitere Highlights auf Lager, darunter die faszinierende Ausstellung "SMART WORLD by FIWARE", die komplett aus Legosteinen gebaut ist.
Außerdem lassen wir viel Zeit zum Netzwerken und Business Talks bei Snacks und Getränken mit der Stadt Herne, NRW und ihren Spielern und mit Vertretern aus Österreich und der Stadt Wien im Speziellen. Aus DACH und darüber hinaus werden einige iHubs vertreten sein, auch das in Kürze entstehende iHub in Wien.
Das FIWARE Netzwerktreffen für den deutschsprachigen Raum finden nun bereits das dritte Mal statt. Das nächste Treffen wird in Wien stattfinden - einer der lebenswertesten und resilientesten Städte der Welt. Diese Veranstaltung ist Teil des FIWARE Global Summit After Program, das von der Stadt Wien und der Wirtschaftsagentur Wien ausgerichtet wird.
Ziel der Netzwerkveranstaltung ist es, Schlüsselakteure des deutschsprachigen Marktes zu versammeln und zu vernetzen, um dann eine selbsttragende, wachsende und wirkungsvolle Gemeinschaft von FIWARE-Anwendern und interessierten Gleichgesinnten aufzubauen. An diesen Veranstaltungen teilen Sie Ihr Fachwissen, lernen Sie voneinander und erhalten Impulse und Neuigkeiten von den Keynote-Speakern.
Wir werden aktuelle Themen mit höchster Relevanz für die deutschsprachige Community wie Open Source, digitale Zwillinge, Smart Cities Index, nachhaltige Entwicklung, anstehende Förderprojekte usw. behandeln.
Join our 9th FIWARE Global Summit (#FIWARESummit23) in Austria's capital of Vienna in the stunning Vienna City Hall being one of the most splendid amongst the numerous monumental buildings along Vienna's amazing palaces and buildings. FIWARE Global Summit (FGS) is one of the leading Open Source and Open Standards conferences for entrepreneurs, public administrations, academia, developers, start-ups, and technologists worldwide.
Get ready for two days of world-class innovation, collaboration, and networking - and a rich side program.
Open to all FIWARE enthusiasts and newbies, members and partners, from startups to global players, public admins and academia, from developers to strategists, from project managers to CEOs.
Technology is changing the way we live, work, and engage with one another. FIWARE provides a helping hand to those who want to change the world, foretell the future, and transform markets for the better, based on recognized Open Source and Open Standards technology.
From startups and SMEs to global enterprises, FIWARE helps today's disruptors fully grasp what tomorrow has in store and how they can be part of this transformation journey.
You can also play a key role in this journey. Looking into joining the FIWARE community, our global ecosystem, or just interested in the impact and opportunities with Open Source technology? Then this Summit is made for you!
Join our 9th FIWARE Global Summit (#FIWARESummit23) in Austria's capital of Vienna in the stunning Vienna City Hall being one of the most splendid amongst the numerous monumental buildings along Vienna's amazing palaces and buildings. FIWARE Global Summit (FGS) is one of the leading Open Source and Open Standards conferences for entrepreneurs, public administrations, academia, developers, start-ups, and technologists worldwide.
Get ready for two days of world-class innovation, collaboration, and networking - and a rich side program.
Open to all FIWARE enthusiasts and newbies, members and partners, from startups to global players, public admins and academia, from developers to strategists, from project managers to CEOs.
Technology is changing the way we live, work, and engage with one another. FIWARE provides a helping hand to those who want to change the world, foretell the future, and transform markets for the better, based on recognized Open Source and Open Standards technology.
From startups and SMEs to global enterprises, FIWARE helps today's disruptors fully grasp what tomorrow has in store and how they can be part of this transformation journey.
You can also play a key role in this journey. Looking into joining the FIWARE community, our global ecosystem, or just interested in the impact and opportunities with Open Source technology? Then this Summit is made for you!
Boris Otto_FGS2023_Opening- EU Innovations from Data_PUB_V1_BOt.pptxFIWARE
Join our 9th FIWARE Global Summit (#FIWARESummit23) in Austria's capital of Vienna in the stunning Vienna City Hall being one of the most splendid amongst the numerous monumental buildings along Vienna's amazing palaces and buildings. FIWARE Global Summit (FGS) is one of the leading Open Source and Open Standards conferences for entrepreneurs, public administrations, academia, developers, start-ups, and technologists worldwide.
Get ready for two days of world-class innovation, collaboration, and networking - and a rich side program.
Open to all FIWARE enthusiasts and newbies, members and partners, from startups to global players, public admins and academia, from developers to strategists, from project managers to CEOs.
Technology is changing the way we live, work, and engage with one another. FIWARE provides a helping hand to those who want to change the world, foretell the future, and transform markets for the better, based on recognized Open Source and Open Standards technology.
From startups and SMEs to global enterprises, FIWARE helps today's disruptors fully grasp what tomorrow has in store and how they can be part of this transformation journey.
You can also play a key role in this journey. Looking into joining the FIWARE community, our global ecosystem, or just interested in the impact and opportunities with Open Source technology? Then this Summit is made for you!
Bjoern de Vidts_FGS23_Opening_athumi - bjord de vidts - personal data spaces....FIWARE
Join our 9th FIWARE Global Summit (#FIWARESummit23) in Austria's capital of Vienna in the stunning Vienna City Hall being one of the most splendid amongst the numerous monumental buildings along Vienna's amazing palaces and buildings. FIWARE Global Summit (FGS) is one of the leading Open Source and Open Standards conferences for entrepreneurs, public administrations, academia, developers, start-ups, and technologists worldwide.
Get ready for two days of world-class innovation, collaboration, and networking - and a rich side program.
Open to all FIWARE enthusiasts and newbies, members and partners, from startups to global players, public admins and academia, from developers to strategists, from project managers to CEOs.
Technology is changing the way we live, work, and engage with one another. FIWARE provides a helping hand to those who want to change the world, foretell the future, and transform markets for the better, based on recognized Open Source and Open Standards technology.
From startups and SMEs to global enterprises, FIWARE helps today's disruptors fully grasp what tomorrow has in store and how they can be part of this transformation journey.
You can also play a key role in this journey. Looking into joining the FIWARE community, our global ecosystem, or just interested in the impact and opportunities with Open Source technology? Then this Summit is made for you!
Join our 9th FIWARE Global Summit (#FIWARESummit23) in Austria's capital of Vienna in the stunning Vienna City Hall being one of the most splendid amongst the numerous monumental buildings along Vienna's amazing palaces and buildings. FIWARE Global Summit (FGS) is one of the leading Open Source and Open Standards conferences for entrepreneurs, public administrations, academia, developers, start-ups, and technologists worldwide.
Get ready for two days of world-class innovation, collaboration, and networking - and a rich side program.
Open to all FIWARE enthusiasts and newbies, members and partners, from startups to global players, public admins and academia, from developers to strategists, from project managers to CEOs.
Technology is changing the way we live, work, and engage with one another. FIWARE provides a helping hand to those who want to change the world, foretell the future, and transform markets for the better, based on recognized Open Source and Open Standards technology.
From startups and SMEs to global enterprises, FIWARE helps today's disruptors fully grasp what tomorrow has in store and how they can be part of this transformation journey.
You can also play a key role in this journey. Looking into joining the FIWARE community, our global ecosystem, or just interested in the impact and opportunities with Open Source technology? Then this Summit is made for you!
FGS2023_Opening_Red Hat Keynote Andrea Battaglia.pdfFIWARE
Join our 9th FIWARE Global Summit (#FIWARESummit23) in Austria's capital of Vienna in the stunning Vienna City Hall being one of the most splendid amongst the numerous monumental buildings along Vienna's amazing palaces and buildings. FIWARE Global Summit (FGS) is one of the leading Open Source and Open Standards conferences for entrepreneurs, public administrations, academia, developers, start-ups, and technologists worldwide.
Get ready for two days of world-class innovation, collaboration, and networking - and a rich side program.
Open to all FIWARE enthusiasts and newbies, members and partners, from startups to global players, public admins and academia, from developers to strategists, from project managers to CEOs.
Technology is changing the way we live, work, and engage with one another. FIWARE provides a helping hand to those who want to change the world, foretell the future, and transform markets for the better, based on recognized Open Source and Open Standards technology.
From startups and SMEs to global enterprises, FIWARE helps today's disruptors fully grasp what tomorrow has in store and how they can be part of this transformation journey.
You can also play a key role in this journey. Looking into joining the FIWARE community, our global ecosystem, or just interested in the impact and opportunities with Open Source technology? Then this Summit is made for you!
Das FIWARE Netzwerktreffen für den deutschsprachigen Raum finden nun bereits das dritte Mal statt. Das nächste Treffen wird in Wien stattfinden - einer der lebenswertesten und resilientesten Städte der Welt. Diese Veranstaltung ist Teil des FIWARE Global Summit After Program, das von der Stadt Wien und der Wirtschaftsagentur Wien ausgerichtet wird.
Ziel der Netzwerkveranstaltung ist es, Schlüsselakteure des deutschsprachigen Marktes zu versammeln und zu vernetzen, um dann eine selbsttragende, wachsende und wirkungsvolle Gemeinschaft von FIWARE-Anwendern und interessierten Gleichgesinnten aufzubauen. An diesen Veranstaltungen teilen Sie Ihr Fachwissen, lernen Sie voneinander und erhalten Impulse und Neuigkeiten von den Keynote-Speakern.
Wir werden aktuelle Themen mit höchster Relevanz für die deutschsprachige Community wie Open Source, digitale Zwillinge, Smart Cities Index, nachhaltige Entwicklung, anstehende Förderprojekte usw. behandeln.
Das FIWARE Netzwerktreffen für den deutschsprachigen Raum finden nun bereits das dritte Mal statt. Das nächste Treffen wird in Wien stattfinden - einer der lebenswertesten und resilientesten Städte der Welt. Diese Veranstaltung ist Teil des FIWARE Global Summit After Program, das von der Stadt Wien und der Wirtschaftsagentur Wien ausgerichtet wird.
Ziel der Netzwerkveranstaltung ist es, Schlüsselakteure des deutschsprachigen Marktes zu versammeln und zu vernetzen, um dann eine selbsttragende, wachsende und wirkungsvolle Gemeinschaft von FIWARE-Anwendern und interessierten Gleichgesinnten aufzubauen. An diesen Veranstaltungen teilen Sie Ihr Fachwissen, lernen Sie voneinander und erhalten Impulse und Neuigkeiten von den Keynote-Speakern.
Wir werden aktuelle Themen mit höchster Relevanz für die deutschsprachige Community wie Open Source, digitale Zwillinge, Smart Cities Index, nachhaltige Entwicklung, anstehende Förderprojekte usw. behandeln.
Das FIWARE Netzwerktreffen für den deutschsprachigen Raum finden nun bereits das dritte Mal statt. Das nächste Treffen wird in Wien stattfinden - einer der lebenswertesten und resilientesten Städte der Welt. Diese Veranstaltung ist Teil des FIWARE Global Summit After Program, das von der Stadt Wien und der Wirtschaftsagentur Wien ausgerichtet wird.
Ziel der Netzwerkveranstaltung ist es, Schlüsselakteure des deutschsprachigen Marktes zu versammeln und zu vernetzen, um dann eine selbsttragende, wachsende und wirkungsvolle Gemeinschaft von FIWARE-Anwendern und interessierten Gleichgesinnten aufzubauen. An diesen Veranstaltungen teilen Sie Ihr Fachwissen, lernen Sie voneinander und erhalten Impulse und Neuigkeiten von den Keynote-Speakern.
Wir werden aktuelle Themen mit höchster Relevanz für die deutschsprachige Community wie Open Source, digitale Zwillinge, Smart Cities Index, nachhaltige Entwicklung, anstehende Förderprojekte usw. behandeln.
Gen Z and the marketplaces - let's translate their needsLaura Szabó
The product workshop focused on exploring the requirements of Generation Z in relation to marketplace dynamics. We delved into their specific needs, examined the specifics in their shopping preferences, and analyzed their preferred methods for accessing information and making purchases within a marketplace. Through the study of real-life cases , we tried to gain valuable insights into enhancing the marketplace experience for Generation Z.
The workshop was held on the DMA Conference in Vienna June 2024.
HijackLoader Evolution: Interactive Process HollowingDonato Onofri
CrowdStrike researchers have identified a HijackLoader (aka IDAT Loader) sample that employs sophisticated evasion techniques to enhance the complexity of the threat. HijackLoader, an increasingly popular tool among adversaries for deploying additional payloads and tooling, continues to evolve as its developers experiment and enhance its capabilities.
In their analysis of a recent HijackLoader sample, CrowdStrike researchers discovered new techniques designed to increase the defense evasion capabilities of the loader. The malware developer used a standard process hollowing technique coupled with an additional trigger that was activated by the parent process writing to a pipe. This new approach, called "Interactive Process Hollowing", has the potential to make defense evasion stealthier.
Ready to Unlock the Power of Blockchain!Toptal Tech
Imagine a world where data flows freely, yet remains secure. A world where trust is built into the fabric of every transaction. This is the promise of blockchain, a revolutionary technology poised to reshape our digital landscape.
Toptal Tech is at the forefront of this innovation, connecting you with the brightest minds in blockchain development. Together, we can unlock the potential of this transformative technology, building a future of transparency, security, and endless possibilities.
Discover the benefits of outsourcing SEO to Indiadavidjhones387
"Discover the benefits of outsourcing SEO to India! From cost-effective services and expert professionals to round-the-clock work advantages, learn how your business can achieve digital success with Indian SEO solutions.
NGSIv2 Overview for Developers that Already Know NGSIv1
1. NGSIv2 Overview for Developers
That Already Know NGSIv1
Fermín Galán Márquez
Technological Expert. Orion Context Broker Development Lead
fermin.galanmarquez@telefonica.com
2. Outline
• Introduction to NGSIv2
• RESTful-ness
• URL & payload simplification
• Native JSON datatypes
• Text-based attribute value set/get
• Geolocation capabilities
• Datetime support
• Filtering
• Subscription improvements
• Batch operations
• Working with IDs
• Pagination
• Next things to come
2
3. Two “flavors” of NGSI API
• NGSIv1 (the one you already know )
– 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 to NGSIv1 (e.g. 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 (see last part of this presentation)
– Uses the /v2 prefix in resource URL
• Introduction to NGSIv2
– https://docs.google.com/presentation/d/1_fv9dB5joCsOCHlb4Ld6A-
QmeIYhDzHgFHUWreGmvKU/edit#slide=id.g53c31d7074fd7bc7_0
3
4. The NGSI model is kept as it is in NGSIv2
Attributes
• Name
• Type
• Value
Entity
• EntityId
• EntityType
1 n
“has”
Metadata
• Name
• Type
• Value1 n
“has”
4
5. NGSIv2 status (AKA the “NGSIv2 disclaimer”)
• 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.
5
6. So… when should I use NGSIv1 or NGSIv2?
• 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
functionality and requests
– See “Considerations on NGSIv1 and NGSIv2 coexistence”
section in the Orion manual
6
7. RESTful-ness
• In NGSIv1
– Originally based on OMA-NGSI standard operations, not really
RESTful
• The URL doesn’t identify a resource, but an operation type
• The verb is always POST
• Actually, NGSIv1 is closer to HTTP-based RPC than to RESTful
– An extended set of operations (convenience operations) were
added in a later stage but with “legacy” from standard
operations that make it hard to apply full RESTful principles
• E.g. dual response code
• NGSIv2 has been designed from scratch with RESTful
principles in mind
– Batch operations (similar to standard operations in NGSIv1)
are also provided, but without impacting the RESTful
operations in the API
7
8. RESTful-ness
8
200 OK
...
{
"contextElement" : {
"type" : "",
"isPattern" : "false",
"id" : "Car1"
},
"statusCode" : {
"code" : "404",
"reasonPhrase" : "No context element found",
"details" : "Entity id: /Car1/"
}
}
GET /v1/contextEntities/Car1
404 Not Found
...
{
"error": "NotFound",
"description": "The requested entity has not
been found. Check type and id“
}
GET /v2/entities/Car1
NGSIv1
NGSIv2
both status codes have to be taken into account by
the client in order to detect error conditions,
which increases complexity
only HTTP response code,
following RESTful principles -
simpler to process
Example: get Car1 entity
9. URL & payload simplification
• In NGSIv1 the strict alignment with OMA NGSI involves
complexity and ineffectiveness
– Message payloads include a lot of structural overhead elements not
actually needed
– Response payload in methods that don’t really need a payload from a
semantic point of view (e.g. update operation)
– Unnecessarily long structural elements in URLs
• NGSIv2 simplifies URLs and payload, leading to a much
more lean and less verbose API
9
10. URL & payload simplification
10
POST /v1/contextEntities
...
{
"id": "Car1",
"type": "Car",
"attributes": [
{
"name": "colour",
"type": "Text",
"value": "red"
}
]
}
200 OK
Location: /v2/entities?type=Car
POST /v2/entities
…
{
"id": "Car1",
"type": "Car",
"colour": {
"value": "red",
"type": "Text",
}
}
NGSIv1
NGSIv2
Most of the NGSIv1 response payload is
useless: clients only need to know the
status code. In NGSIv2 the response has
no payload at all
shorter URLs in
NGSIv2
200 OK
...
{
"contextResponses": [
{
"attributes": [
{
"name": "colour",
"type": "float",
"value": ""
}
],
"statusCode": {
"code": "200",
"reasonPhrase": "OK"
}
}
],
"id": "Car1",
"isPattern": "false",
"type": “Car"
}
structural
overhead
Example: create Car1
entity (type Car) with
attribute colour set to
“Red”
11. URL & payload simplification
11
GET /v1/contextEntities/type/Car/id/Car1/attributes/colour GET /v2/entities/Car1/attrs/colour?type=Car
NGSIv1 NGSIv2
redundant (already part of the request URL)
200 OK
...
{
"attributes": [
{
"name": "colour",
"type": "Text",
"value": " red"
}
],
"statusCode": {
"code": "200",
"reasonPhrase": "OK"
}
}
mostly useless
200 OK
...
{
"value": "red",
"type": "Text",
"metadata": {}
}
shorter URL in
NGSIv2
structural
overhead
Example: get attribute
colour at Car1 entity
(type Car)
12. URL & payload simplification
• Moreover, NGSIv2 provides simplified data representations
– keyValues: exclude attribute type and metadata
– values: only attribute values (attrs is used to order the values in the
resulting vector)
– unique: like values which in addition removes duplicate values
• Not only for retrieval operations, also for creation/update
operations
– Default attribute types are used in that case
12
GET /v2/entities/Car1/attrs?options=keyValues
200 OK
...
{
"model": "Ford",
"colour": "red",
"temp": 22
}
GET /v2/entities/Car1/attrs?options=values&attrs=model,colour,temp
200 OK
...
["Ford", "red", 22]
Example: get attribute
colour at Car1 entity (type
Car)
13. Native JSON datatypes
• In NGSIv1
– All attribute values are string based to align with XML encoding
• At the end, XML support was removed (in Orion 1.0.0), but it left
an awful legacy
– Although creation/update operations can use numbers, bool,
etc. at the end they are transformed to strings and stored in
that way internally
– Retrieve operation always provides string encoded values (*)
• NGSIv2 fully supports all the types described in the JSON
specification (string, number, boolean, object, array and
null)
13
(*) Exception: entities created/updated with NGSIv2 (which support native types) and retrieved
with NGSIv1 will render without stringification.
14. Native JSON datatypes
1414
POST /v1/contextEntities
...
{
"id": "Car1",
"type": "Car",
"attributes": [
{
"name": "speed",
"type": "Number",
"value": 98
}
]
}
POST /v2/entities?options=keyValues
…
{
"id": "Car1",
"type": "Car",
"speed": 98,
"isActive": true
}
NGSIv1
NGSIv2
created as
number but
retrieved as
string… weird!
GET /v1/contextEntities/Car1/attributes/speed
...
{
"attributes": [
{
"name": "speed",
"type": "Number",
"value": "98"
}
],
"statusCode": { … }
}
GET /v2/entities/Car1/attrs?options=keyValues
…
{
"speed": 98,
"isActive": true
}
coherent result
Example: create Car1
entity (type Car) with
attribute speed set to 98
15. Text-based attribute value set/get
• In NGSIv1
– There is no similar functionality
• NGSIv2 offers set/get attribute access directly without
anything else than the attribute value itself in the
request/response payload
– In the set operation, attribute type and metadata are kept as they are
15
PUT /v2/entities/Car1/attrs/speed/value
Content-Type: text/plain
…
86
GET /v2/entities/Car1/attrs/speed/value
200 OK
Content-Type: text/plain
…
86200 OK
…
Example: set speed attribute
value at Car1 entity
Example: get speed attribute
value at Car1 entity
16. Geolocation capabilities
• In NGSIv1
– Entity location must be a point
– Queries are based on an area specification (circle or polygon, inner or
outer area)
– Query as part of queryContext payload scope
• In NGSIv2
– In addition to point, entity location can be a line, box, polygon or
arbitrary GeoJSON
– Queries are based on a spatial relationship and a geometry
• Spatial relationships: near (max and min distance), coveredBy, intersect,
equal and disjoint
• Geometries: point, line, box, polygon
– Query as part of URL (more user-friendly than payload-based
approach)
16
17. Geolocation capabilities
17
NGSIv1
NGSIv2
Much easier and more compact in NGSIv2
POST /v1/queryContext
…
{
"entities": [
{
"type": "City",
"isPattern": "true",
"id": ".*"
}
],
"restriction": {
"scopes": [
{
"type" : "FIWARE::Location",
"value" : {
"circle": {
"centerLatitude": "40.418889",
"centerLongitude": "-3.691944",
"radius": "13500"
}
}
}
]
}
}
GET /v2/entities?
idPattern=.*&
type=City&
georel=near;maxDistance:13500&
geometry=point&
coords=40.418889,-3.691944
Example: retrieve all entities of type
“City” (no matter the id) whose
distance to Madrid city center (GPS
coordinates 40.418889,-3691944) is
less than 13.5 km
18. Geolocation capabilities
18
Point location
(the only one supported by NGSIv1)
POST /v2/entities
{
"id": "E",
"type": "T",
"location": {
"type": "geo:json",
"value": {
"type": "Polygon",
"coordinates": [ [ [2, 1], [4, 3], [5, -1], [2, 1] ] ]
} } }
POST /v2/entities
{
"id": "E",
"type": "T",
"location": {
"type": "geo:polygon",
"value": [ "2, 2", "8, 7", "-1, 4", "2, 2"]
}
}
POST /v2/entities
{
"id": "E",
"type": "T",
"location": {
"type": "geo:box",
"value": [ "2, 2", "8, 7" ]
}
}
POST /v2/entities
{
"id": "E",
"type": "T",
"location": {
"type": "geo:point",
"value": "40.41,-3.69"
}
}
POST /v2/entities
{
"id": "E",
"type": "T",
"location": {
"type": "geo:line",
"value": [ "2, 2", "8, 7" ]
}
}
Line location (e.g. a street) Box location (e.g. a squared building)
Polygon location (e.g. a city district) GeoJSON geometry (full flexibility)
19. Datetime support
• In NGSIv1
– There is no support for attributes meaning dates, they
are treated as conventional strings
• NGSIv2 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
19
20. Datetime support
• 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
20
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
21. Filtering
• In NGSIv1
– Limited filtering functionality, much of it based on queryContext
complex scopes
– Filters are not supported in subscriptions
• In NGSIv2 the mechanism
– Is simpler (see next slide)
– Can be applied to both queries and subscriptions (described in a later
topic of this presentation)
21
POST /v1/queryContext
…
{
"restriction": {
"scopes": [
{
"type" : "FIWARE::StringFilter",
"value" : "temp<24"
…
}
This is the only interesting
part, all the rest is
structural overhead
Example: filtering entities
which temperature is less
than 24
22. • For the GET /v2/entities operation, retrieve all entities…
– … of a given entity type
– … whose entity id is in a list
– ... whose entity id match a regex pattern
• Example: the id starts with “Room” followed by a digit from 2 to 5
– … with an attribute that matches a given expression
• Example: attribute temp is greater than 25
• Filters can be used simultaneously (i.e. like AND condition)
22
GET /v2/entities?type=Room
GET /v2/entities?id=Room1,Room2
GET /v2/entities?idPattern=^Room[2-5]
Filtering
GET /v2/entities?q=temp>25
supported operators:
• == (or :), equal
• !=, unequal
• >, greater than
• <, less than
• >=, greater than or
equal
• <=, less than or equal
• A..B, range
• ^=, pattern (regex)
• Existence/inexistence
23. • For the GET /v2/entities operation, retrieve all entities…
– ... whose entity type match a regex pattern
– … with an attribute which sub-key matches a given expression
– … with an attribute metadata that matches a given expression
– … with an attribute metadata which sub-key matches a given
expression
23
GET /v2/entities?q=tirePressure.frontRight >130
attribute name attribute sub-key (for compound
attribute values only)
GET /v2/entities?mq=temperature.avg>25
GET /v2/entities?mq=tirePressure.accuracy.frontRight >90
metadata sub-key (for compound
metadata values only)
metadata name
Filtering
GET /v2/entities?typePattern=T[ABC]
24. • 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: entity creation date
– dateModified: entity last modification date
• The “*” can be used as an alias of “all the
(regular) attributes”
24
Attributes filtering and special attributes
25. • 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": [ "*" ]
25
Attributes filtering and special attributes
26. • 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: attribute creation or last
modification date
– 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”
26
Metadata filtering and special metadata
27. • 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": [ "*" ]
27
Metadata filtering and special metadata
28. Subscription improvements
• NGSIv1 context subscription API is very limited
– There is no operation to list existing subscriptions
• If a client loses the ID of created subscriptions, there is no way to retrieve
them through the API
– No support for permanent subscriptions
• Creating absurdly long subscriptions (e.g. 100 years) is a dirty workaround
– Fix notification structure
• Difficult to integrate to arbitrary endpoints (e.g. public REST services)
– No support for filters
• NGSIv2 subscription API solves all these limitations and
introduces some additional enhancements
– Notification attributes based on “blacklist” (in addition to the
“whitelist” approach in NGSIv1)
– Ability to pause/resume subscriptions
– Extra fields: times sent, last notification and description
28
29. Anatomy of a NGSIv2 subscription
29
POST /v2/subscriptions
…
{
"subject": {
"entities": [
{
"id": "Room1",
"type": "Room"
}
]
},
"condition": {
"attrs": [ "temp" ]
},
"notification": {
"http": {
"url": "http://<host>:<port>/publish"
},
"attrs": [ "temp" ]
},
"expires": "2026-04-05T14:00:00.00Z",
"throttling": 5
}
201 Created
Location: /v2/subscriptions/51c0ac9ed714fb3b37d7d5a8
...
POST /v1/subscribeContext
…
{
"entities": [
{
"type": "Room",
"isPattern": "false",
"id": "Room1"
}
],
"attributes": [ "temp“ ],
"reference": "http://<host>:<port>/publish",
"duration": "P1M",
"notifyConditions": [
{
"type": "ONCHANGE",
"condValues": [ "temp" ]
}
],
"throttling": "PT5S"
}
200 OK
...
{ "subscribeResponse": {
"duration": "P1M",
"subscriptionId": "51c0ac9ed714fb3b37d7d5a8",
"throttling": "PT5S"
} }
NGSIv1 NGSIv2
Simpler response
(no payload)
Simpler way of specifying
expiration and throttling
in NGSIv2
Redundant Example: subscribe to
Room1 entity, so
whenever a change
occurs in the temp
attribute a notification
including only temp is
sent
30. List subscriptions and special fields in NGSIv2
• List operations (not available in NGSIv1)
– GET /v2/subscriptions lists all subscriptions
– GET /v2/subscriptions/<id> retrieves information of a particular
subscription
• Whitelist vs. blacklist (in the notification field)
– Use "attrs": [ "A", "B" ] to “include A and B in the notification”
(whitelist)
– Use "exceptAttrs": [ "A", "B" ] to “include all the attributes except
A and B” (blacklist)
– Use "attrs": [ ] to include “all the attributes” (special case)
• Other informative fields (in the notification field)
– timesSent: the number of times that the subscription has been
triggered and a notification has been sent
– lastNotification: datetime corresponding to the last notification
• Other informative fields (at root level)
– description, free text descriptive text for user convenience
30
31. Permanent and paused subscriptions in NGSIv2
• The status attribute can be used to pause/resume
subscriptions
• In GET operations, the status field can be
– active: subscription is active (notifications will be sent)
– inactive: subscription is inactive (notifications will not be sent)
– expired: subscription is expired (notifications will not be sent)
31
PATCH /v2/subscriptions/<id>
…
{
"status": "active"
}
PATCH /v2/subscriptions/<id>
…
{
"status": "inactive"
}
To pause To resume
32. Notification formats in NGSIv2
• The optional attrsFormat field can be used to choose between different notification
flavors, aligned with the representation modes
• Notifications include the NGSIv2-AttrsFormat header to help the receiver identify
the format
• legacy can be used as value for attrsFormat in order to send notifications in
NGSIv1 format
– Very useful when integrating legacy notification endpoints
32
{
"subscriptionId": "12345",
"data": [
{
"id": "Room1",
"type": "Room",
"temperature": {
"value": 23,
"type": "Number",
"metadata": {}
}
}
]
}
{
"subscriptionId": "12345",
"data": [
{
"id": "Room1",
"type": "Room",
"temperature": 23
}
]
}
{
"subscriptionId": "12345",
"data": [ [ 23 ] ]
}
normalized (default) keyValues values
Outer vector represent the list of
entities, inner vector the values of
the attribute of each entity (not too
interesting in this single-entity
single-attribute example)
33. Custom notifications in NGSIv2
• Apart from the standard formats defined in the
previous slide, NGSIv2 allows to re-define all the
notification aspects
• httpCustom 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)
33
34. Custom notifications in NGSIv2
34
…
"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
notification
Example: send a text
notification (i.e. not
JSON) with temperature
value, using the entity id
and type as part of the
URL
35. 35
POST /v2/subscriptions
…
{
"subject": {
"entities": [
{
"id": "Truck11",
"type": "RoadVehicle"
},
{
"idPattern": "^Car[2-5]",
"type": "RoadVehicle"
}
],
"condition": {
"attrs": [ "speed" ],
"expression": {
"q": "speed>90",
"georel": "near;maxDistance:100000",
"geometry": "point",
"coords": "40.418889,-3.691944"
}
}
},
…
}
• Filters (described in previous
slides) can be also used in
subscriptions
– id
– type
– id pattern
– attribute values
– geographical location
Subscription filters in NGSIv2
Example: subscribe to speed changes in
entities with id Truck11 or Car2 to Car5 (both
case of type RoadVehicle) whenever speed is
greater than 90 and the vehicle distance to
Madrid city center is less than 100 km
36. 36
POST /v2/subscriptions
…
{
"subject": {
"entities": [
{
"idPattern": ".*",
"typePattern": ".*Vehicle"
},
],
"condition": {
"attrs": [ "speed" ],
"expression": {
"q": "speed>90",
"mq": "speed.average==80..100",
"georel": "near;maxDistance:100000",
"geometry": "point",
"coords": "40.418889,-3.691944"
}
}
},
…
}
• They can be used also in
subscriptions
– type pattern
– metadata value
Subscription filters in NGSIv2
Example: subscribe to speed changes in any
entities of any type ending with Vehicle (such
as RoadVehicle, AirVehicle, etc.) whenever
speed is greater than 90 its average metadata
is between 80 and 90 and the vehicle distance
to Madrid city center is less than 100 km
37. Batch operations
• In NGSIv1 we have standard operations
– POST /v1/updateContext
– POST /v1/queryContext
• Similar but more user-friendly operations have
been included in NGSIv2
– POST /v2/op/update
– POST /v2/op/query
37
38. Batch operations
38
POST /v1/updateContext
…
{
"updateAction": "APPEND“,
"contextElements": [
{
"type": "Room",
"isPattern": "false",
"id": "Room1",
"attributes": [
{
"name": "temp",
"type": "float",
"value": "29"
}
]
}
]
}
POST /v2/op/update
{
"actionType": "APPEND",
"entities": [
{
"type": "Room",
"id": "Room1",
"temperature":
{
"type": "Number",
"value": 29
}
}
]
}
201 Created
NGSIv1 NGSIv2
structural
overhead
200 OK
...
{
"contextResponses" : [ … ],
"statusCode" : {
"code" : "200",
"details" : "OK"
}
}
NGSIv2 response doesn’t
have any payload at all
lots of useless
stuff here
Example: create
Room1 entity (type
Room) with attribute
temp set to 29
39. Batch operations
39
POST /v1/queryContext
…
{
"entities": [
{
"type": "Room",
"isPattern": "true",
"id": ".*"
} ,
"attributes": [ "temp" ]
]
}
POST /v2/op/query
…
{
"entities": [
{
"idPattern": ".*",
"type": "T"
}
],
"attributes": [ "temp" ]
}
NGSIv1
NGSIv2
Requests are more or
less the same, but the
simplicity of NGSIv2
becomes evident
when comparing
responses
200 OK
...
{
"contextResponses": [
{
"contextElement": {
"attributes": [
{
"name": "temp",
"type": "Number",
"value": "25"
}
],
"id": "Room1",
"isPattern": "false",
"type": "Room"
},
"statusCode": { … }}
]
}
200 OK
...
[
{
"id": "Room1",
"type": "Room",
"temp": {
"type": "Number",
"value": 25
}
}
]
Example: get
temp attribute of
all entities with
type Room
40. Pagination
• In NGSIv1
– based on limit, offset and details
– Dirty workaround to fit count into NGSIv1
payloads, using an errorCode for something
that actually is not an error and forcing to
text based processing of the details field
– Fixed order: always by creation date
• In NGSIv2
– based on limit, offset and options=count
• This part doesn’t change too much
– Cleaner and easier way of returning count,
with the Fiware-Total-Count HTTP header
in the response
– Configurable ordering based on orderBy
parameter
• See details in the NGSIv2 specification
40
"errorCode": {
"code": "200",
"details": "Count: 322",
"reasonPhrase": "OK"
}
Fiware-Total-Count: 322
41. Working with IDs
• In NGSIv1
– Fields such as entity id, attribute name, etc. may have any value (*)
– This could cause a lot of problems as these fields use to act as IDs in
many places when propagated through notifications
• E.g. Cygnus MySQL sink may have problems when these fields are mapped
to tables names, whose allowed charset is very strict
– In addition, NGSIv1 allows ids or attribute names as "" (empty string)
which is weird and typically an error condition in the client
• NGSIv2 establishes a set of restrictions to ensure sanity in the
usage of ID fields. In particular:
– Allowed characters are those in the plain ASCII set, except the following ones:
control characters, whitespace, &, ?, / and #.
– Maximum field length is 256 characters.
– Minimum field length is 1 character.
– The rules above apply to the following six fields (identified as ID fields): entity
id, entity type, attribute name, attribute type, metadata name, metadata type
41
(*) Excluding the forbidden characters described in the Orion manual, which are general for all the fields in both
NGSIv1 and NGSIv2 APIs
42. Next things to come
• Up to now, all the slides have described the stable version of the
API corresponding to Release Candidate 2016.10
(http://fiware.github.io/specifications/ngsiv2/stable)
• There is also a work in progress (WIP) version, describing future
functionally (http://fiware.github.io/specifications/ngsiv2/latest)
• Warning: the future functionality of the WIP version is subject to
change and it may change before to be consolidated in a next
Release Candidate stable version
42
43. • 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
43
Notification status
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",
…
}
}]
44. Useful references
• Introduction to NGSI and Orion
– http://bit.ly/fiware-orion
• Orion Manual
– https://fiware-orion.readthedocs.io
• Orion page at FIWARE Catalogue
– http://catalogue.fiware.org/enablers/publishsubscribe-
context-broker-orion-context-broker
• NGSIv2 specs
– http://fiware.github.io/specifications/ngsiv2/stable
– http://fiware.github.io/specifications/ngsiv2/latest
• Orion support at StackOverflow
– Look for existing questions at
http://stackoverflow.com/questions/tagged/fiware-orion
– Ask your questions using the “fiware-orion” tag
• FIWARE Tour Guide Application
– https://github.com/fiware/tutorials.TourGuide-App
44
46. Batch query scope
• This is the way of including q,
mq and geo filters (typically
used as URL param of a GET
operation) in a batch query
• Like NGSIv1 scopes but much
simpler (without the restriction
structural overhead)
46
POST /v2/op/query
…
{
"entities": [
{
"idPattern": ".*",
"type": "T"
}
],
"attributes": [ "temp" ],
"scopes": [
{
"type": "FIWARE::StringQuery",
"value": "temp"
},
{
"type" : "FIWARE::Location::NGSIv2",
"value" : {
"georel": [ "near", "maxDistance:20000" ],
"geometry": "point",
"coords": [ [40.31,-3.75] ]
}
}
]
}
Example: get all entities of type T
with the attribute temp as long as
that attribute is greater than 40 and
the entity distance to coordinates
(40.31, -3.75) is less than 20 km