260 likes | 505 Views
FI-WARE NGSI Overview Juanjo Hierro Telefonica Digital, Coordinator and Chief Architect, FI-WARE jhierro@tid.es , @ JuanjoHierro. http://www.fi-ppp.eu http://www.fi-ware.eu. 1. Index. 01. Basic concepts APIs NGSI in the FI-WARE Architecture. 02. 03. 01. Basic concepts. Context.
E N D
FI-WARE NGSI OverviewJuanjoHierroTelefonica Digital, Coordinator and Chief Architect, FI-WAREjhierro@tid.es, @JuanjoHierro http://www.fi-ppp.eu http://www.fi-ware.eu 1
Index 01 Basic concepts APIs NGSI in the FI-WARE Architecture 02 03
01 Basic concepts
Context • OMA NGSI Context Management is about management of Context data (aka Context Information) • Context Information is always relevant to “entities”, although entities can be anything (applications, users, things, …) Applications ContextBroker
Context Elements (1/2) • Context Information in OMA NGSI is represented through data structures called context elements which have associated: • An EntityId and EntityType, uniquely identifying the entity to which context data refers. • A sequence of one or more data element attributes (<name, type, value> triplets) • Optional meta-datalinked to attributes (also <name, type, value> triplets) • As an example, we may consider the context element reporting info on: • attributes “speed”, “geolocation”, “current established route” of a “car”, or • attributes “last message geolocation”, “last message contents” of an “user” • The EntityId is a string, and can be used to designate “anything”, not necessarely “things” in the “real world” but also application entities Meta-data ContextElement ContextElementattributes • Name • Type • Value “has” “has” • EntityId • EntityType • Name • Type • Value 1 n 1 n
Context Elements (2/2) • There may be as many kinds of Context Elements as combinations of attributes linked to an entity: • Typically a context element is generated whenever an query (update) on values of a list of attributes linked to an entity is requested (occurs) • Only queried/updated attributes are communicated, so the amount of information that is transmitted is minimized • Example: • Cars may have attributes “brand”, “model”, “license plate”, “established route”, “geo-location”, “current speed”, “gas level” • The first time existence of the car is recorded, a context element bringing values of attributes “brand”, “model”, “license plate” is generated • Any time a route is established using the cars’ navigator, a context element bringing updated values of “established route”, “gas level” and “geo-location” is generated whenever a route is established • A context element bringing updated values of “geo-location”, “current speed” and “gas level” is generated every x minutes • Occurrences of context elements are referred as “events” in FI-WARE
Conceptual model: advantages • Not linked to a particular data/context representation formalism: • Neither for transferring • Nor storing • Can work with a standard IoT formats (SensorML) but at the same time allows to overcome the limitations derived from the adoption of a single standard format • The flexible nature of data structures linked to context elements enable an optimized communication (only information about queried or updated attributes is transferred)
02 APIs
OMA NGSI and FI-WARE APIs • NGSI Context Management specs have been published by OMA but FI-WARE will not stick to what has been published: • Ready to change whatever makes the API more usable and useful • Ready to incorporate extensions to make the API more powerful yet simple • Ready to fast-track incorporated changes in OMA • That’s why we distinguish between “OMA NGSI” and “FI-WARE NGSI” • We may consider potential extensions dealing with stream-based communication in the future, for example
Basic entities and operations (1) • Context Producers publish data/context elements by invoking the updateContext operation on a Context (Publish/Subscribe) Broker. • Context data is kept persistent by Context Brokers and ready to be queried while not exceeding a given expiration time. This is a distinguishing feature of the OMA Context Management model as compared to some Event Brokering standards. • You can think in the Context Broker as a kind of virtual Repository/DB where producers insert context information and consumers query for it • Context Consumerscan retrieve data/context elements by invoking the queryContext operation on a Context Broker updateContext queryContext ContextConsumer Context Producer Context (Publish/Subscribe)Broker
Basic entities and operations (2) • SomeContextProducersmayalsoexport a queryContextoperationContextBrokersmayinvoke at anygiven time toqueryonvalues of a designated set of attributeslinkedto a given set of entities. They are calledContextProviders. • Because Context Providers exporting the queryContext operation are typically unknown “a priori”, Context Brokers export a registerContext operation which enable to register what Context Producers may be queried • Note that the Application which subscribes a particular Context Producer may or may not be the/a Context Producer itself Application registerContext (producer URI, registration data, duration, registration_id) queryContext queryContext ContextProvider Context (Publish/Subscribe) Broker ContextConsumer
Basic entities and operations (3) • Some Context Consumers can be subscribed to reception of data/context elements which comply with certain conditions, using the subscribeContext operation a ContextBroker exports. Such subscriptions may have a duration. • Subscribed consumers spontaneously receive data/context elements compliant with that subscription through the notifyContext operation they export • Note that the Application which subscribes a particular Context Consumer may or may not be the/a Context Consumer itself Application subscription_id = subscribeContext (consumer, expr, duration) notifyContext (subscription_id, data/context) Context (Publish/Subscribe) Broker ContextConsumer
About queries, registrations and subscriptions • Queries, registrations and subscriptions requests are formulated on: • List of entity ids (these ids may include patters) • List of attributes or “attribute domains” (identifiers used to denote a group of related attributes) • Besides, queries and subscriptions requests can be formulated so that certain restrictions, established as conditions upon values of given attributes or metadata, have to be met.
Context Broker Federation (1) • A Context Broker may be subscribed as Context Consumer on another Context Broker Application subscr_id_1 = subscribeContext (consumer1, expr1, duration1) updateContext notifyContext queryContext ContextBroker 2 Context Producer ContextConsumer 1 query notifyContext ContextConsumer 2 subscr_id_2 = subscribeContext (ContextBroker GE 2, expr2, duration2) ContextBroker 1 Application
Context Broker Federation (2) • A Context Broker may be subscribed as Context Producer on another Context Broker Application subscription_id_1 = subscribe (consumer1, expr1, duration1) updateContext notifyContext queryContext ContextBroker 2 Context Producer ContextConsumer 1 query queryContext ContextConsumer 2 registerContext (ContextBroker GE 2, what, duration2) ContextBroker 1 Application
Handling multiple subscriptions • A single Context Broker GE may handle several subscriptions • A Context Consumer may be subscribed through more than one subscription • A ContextConsumermay consume eventsthroughsubscriptionsormakingexplicitqueries Context Broker GE ContextConsumers subscriptions query Context Producers update notify subscription ports update Producers port query notify
Extended operations (1) • Context Brokers export the discoverContext operation enabling applications to discover entities or even attributes and attribute domains that have been registered in the system registerContext discoverContext Application 2 Application 1 Context (Publish/Subscribe)Broker
Extended operations (2) • Some applicationscan be subscribed to registration of entities or availability of attributes and attribute domains which comply with certain conditions, using the subscribeContextAvailabilityoperation a ContextBrokermay export. Such subscriptions may have a duration. • Subscribed applications spontaneously receive updates on new entities, attributes or attribute domains compliant with that subscription through the notifyContextAvailabilityoperation they export • Note that the subscriber and subscribed applications may not be the same application1 subscription_id = subscribeContextAvailability (application2, expr, duration) notifyContextAvailability (subscription_id, updates) ContextBroker application2
Some hints about OMA NGSI specs • Operations are grouped into two major interfaces (not clear why • NGSI-10 • updateContext • queryContext • subscribeContext/ unsubscribeContext / updateContextSubscription • notifyContext • NGSI-9 • registerContext • discoverContextAvailability • subscribeContextAvailability / unsubscribeContextAvailability /updateContextAvailabilitySubscription • notifyContextAvailability
03 NGSI in the FI-WARE Architecture
FI-WARE Context/Data Management Platform Applications Processing/AnalysisAlgorithms OMA NGSI-9/10 ContextBroker(Orion/CAP) Gathered data isinjectedforprocessing/analysis Data generatedeitherby CEP orBigDataispublished BigDataAnalysis/Processing (COSMOS) Gathered data injectedfor CEP-likeprocessing Directbigdatainjection DistributedContextSources ComplexEventProcessing - CEP (PROTON) Processed data isinjectedforprocessing/analysis Programming of rules Context/Data Management Platform
FI-WARE IoT-M2M & Context/Management altogether Applications Directconnectionforhigher performance FI-WARE NGSI-9/10 (entities: things, other) Context Broker (Orion/CAP) CEP (PROTON) BigData Analysis (COSMOS) Other sources IoT-enabled Context Management NGSI IoT Adapter Device-level Management API FI-WARE NGSI-9/10 (entities: things) Things Management Backend Device Management (IDAS DCA) FI-WARE NGSI-9/10 Backend Backend Gateway/Device Platform GEs Gateway/Device Platform GEs
FI-WARE IoT-M2M & Context/Management altogether Applications Directconnectionforhigher performance FI-WARE NGSI-9/10 (entities: things, other) Context Broker (Orion/CAP) CEP (PROTON) BigData Analysis (COSMOS) Other sources IoT-enabled Context Management NGSI IoT Adapter Device-level Management API FI-WARE NGSI-9/10 (entities: things) Things Management Backend Device Management (IDAS DCA) FI-WARE NGSI-9/10 Backend Backend Native NGSI IoT Agent Native NGSI IoT Agent Gateway/Device Platform GEs Gateway/Device Platform GEs Gateway/Device Platform GEs Gateway/Device Platform GEs
Thanks !! http://www.fi-ware.eu