Core Data Deep(er) Dive

Slides:



Advertisements
Similar presentations
PROVENANCE FOR THE CLOUD (USENIX CONFERENCE ON FILE AND STORAGE TECHNOLOGIES(FAST `10)) Kiran-Kumar Muniswamy-Reddy, Peter Macko, and Margo Seltzer Harvard.
Advertisements

A Java Architecture for the Internet of Things Noel Poore, Architect Pete St. Pierre, Product Manager Java Platform Group, Internet of Things September.
Security SIG: Introduction to Tripwire Chris Harwood John Ives.
MongoDB Sharding and its Threats
Google App Engine Danail Alexiev Technical Trainer SoftAcad.bg.
Chapter 1 Overview of Databases and Transaction Processing.
Copyright ®xSpring Pte Ltd, All rights reserved Versions DateVersionDescriptionAuthor May First version. Modified from Enterprise edition.NBL.
OOI CI LCA REVIEW August 2010 Ocean Observatories Initiative OOI Cyberinfrastructure Architecture Overview Michael Meisinger Life Cycle Architecture Review.
Introduction to the SharePoint 2013 REST API. 2 About Me SharePoint Solutions Architect at Sparkhound in Baton Rouge
Making Sense of Service Broker Inside the Black Box.
Orion Contextbroker PROF. DR. SERGIO TAKEO KOFUJI PROF. MS. FÁBIO H. CABRINI PSI – 5120 – TÓPICOS EM COMPUTAÇÃO EM NUVEM
In this session, you will learn to: Create and manage views Implement a full-text search Implement batches Objectives.
Getting Started as an EdgeX Developer
Command Microservice Deep Dive
Meta Data Deep Dive Part 1
SQL Database Management
ArcGIS for Server Security: Advanced
Configuration & Registry Microservice Deep Dive
Logging Microservice Deep Dive
Architecture Review 10/11/2004
Export Services Deep Dive
Getting & Running EdgeX Docker Containers
Integrating ArcSight with Enterprise Ticketing Systems
Integrating ArcSight with Enterprise Ticketing Systems
Project Management: Messages
Device Service SDK Deep Dive
What is it ? …all via a single, proven Platform-as-a-Service.
POC Open House Welcome to the POC Open House. My name is _____ and today we will learn about the iPad Courses for the Month of September. If you have any.
VIRTUALIZATION & CLOUD COMPUTING
Project Center Use Cases Revision 2
Microsoft /2/2018 3:42 PM BRK3129 Query Big Data using the Expanded T-SQL footprint with PolyBase in SQL Server 2016 Casey Karst Program Manager.
Information Technology Deanship
Meta Data Deep Dive Part 2
Getting Started as an EdgeX Developer
Security Working Group
Meta Data Deep Dive Part 1
EdgeX System Management Nov 6th 2017
Enterprise Computing Collaboration System Example
Project CS ~1min 11 students Project CS course
Project Center Use Cases Revision 3
Introduction to Networking
Advanced Security Architecture System Engineer Cisco: practice-questions.html.
Aggregation Aggregations operations process data records and return computed results. Aggregation operations group values from multiple documents together,
Project Center Use Cases Revision 3
Gina Leimkuehler Director of Accounting
The Top 10 Reasons Why Federated Can’t Succeed
A Guide to Shift’s Open Data ecosystem & Data workflow
Online Testing System Assessment Viewing Application (AVA)
What is a Database and Why Use One?
Documenting ONAP components (functional)
Google App Engine Danail Alexiev
SharePoint Essentials Toolkit
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
Informatics 43 – May 26, 2016.
Building a Database on S3
SharePoint Hub Sites and how should they be implemented
jQuery form submission
Patterns.
Cognitive Service in AR platform.
Chapter 6 – Architectural Design
Fundamentals of Databases
Chapter 5 Architectural Design.
Online Testing System Assessment Viewing Application (AVA)
Cloud Web Filtering Platform
Platform Architecture
Message Queuing Telemetry Transport (Internet of Things)
Making Windows Azure Relevant to IT Professionals
An Introduction Michael Hall.
Research on edge computing system based on Linux EdgeX Foundry
IoT Security and Privacy
Presentation transcript:

Core Data Deep(er) Dive Tech Talks – Session 3

Agenda Core Data's general purpose and background Core Data’s makeup – including technologies/libraries/tools used in Core Data Core Data object model Event's and Readings Value Descriptors - what are they and how they are used in EdgeX REST API outline (categorizing the APIs by purpose) Some important configuration settings Metadata check Persistence via Mongo "streamed" option Message push to export services and/or rules engine Q&A

Jim White Dell Distinguished Engineer & Senior Software Architect From Dell End User Computing (EUC) CTO Chief Architect and lead developer of Fuse I wrote code line #1  Fuse => EdgeX Foundry james_white2@dell.com

Big Picture and Core Data

Core Data’s Role Provides a centralized persistence facility for data readings collected by devices and sensors. Device services for devices and sensors that collect data, call on Core Data to store the device and sensor data on the edge system (such as a gateway) Allows for store and forward technology Supports actuation decisions at the edge Data is stored until… It can be moved "north" and exported to Enterprise and cloud systems It is “scrubbed” to make way for new sensor data Provides an API that other services can use to access the historical data Should be used sparingly as not to impact data collection Could provide a degree of security and protection of the data collected by devices and sensors while the data is at the edge Could allow data to be encrypted at rest or in motion

Core Data Makeup Created with Java/Spring Framework/Spring Boot/Spring MongoDB Uses Spring MVC for REST communications Message pipe connects Core Data to Export Services and/or Rules Engine Uses ZeroMQ by default Allow use of MQTT as alternate if broker is provided An alternate implementation of Core Data using SQLite in place of MongoDB was created at Dell Took less than a week to implement and required no additional micro service changes Dell has created a partial Go Core Data replacement Working to open source that code later this summer Again with no affect to the other service APIs

Core Data Sequence

Core Data Model

Events & Readings Events are collections of Readings Associated to a device Readings represent a sensing on the part of a device/sensor Simple Key/Value pair Key is a value descriptor (next slide) Value is the sensed value Ex: Temperature: 72 Event would need to have one Reading to make sense Reading has to have an “owning” event Event Device: thermo 123 Reading Temp: 53 Reading Humid: 65

Value Descriptor Provides context and unit of measure to a reading name: temperature description: ambient temperature in Celsius min: -25 max: 125 type: I (I = integer) uomLabel: “C” defaultValue: 25 formatting:"%s“ labels: [“room",“temp"]} Provides context and unit of measure to a reading Has a unique name Specifies unit of measure for associated Reading value Dictates special rules around the associated Reading value Min value Max value Default value Specifies the display formatting for a Reading Reading key == Value Descriptor name In MetaData, Devices use Value Descriptors to describe data they will send and actuation command parameters/results

Controller Example Event Controller https://github.com/edgexfoundry/core- data/blob/master/src/main/java/org/edgexfoundry/controller/EventController.j ava

Core Data REST APIs (categorized) Event APIs POST – new Event with associated Readings Also a PUT to update, but rarely if ever used DELETE – should really only be used by data clean up facilities GET’s galore to query for Events, by id Associated Device timestamp (range start & end) Associated Device and Reading with particular Value Descriptor GET Event count (good debug/checking mechanism)

Core Data REST APIs (categorized) Reading APIs POST, PUT, DELETEs should only be used by internal facilities But not currently blocked GET’s galore to query for Readings, by id Associated Device (via Event) uomLabel (of associated Value Descriptor) label (of associated Value Descriptor) type (of associated Value Descriptor) Timestamp (via Event) GET Reading count (good debug/checking mechanism)

Core Data REST APIs (categorized) Value Descriptor APIs POST, PUT, DELETEs Checks to make sure they are not associate to existing Reading GET’s galore to query for Value Descriptors, by Id Name Associated Device (via MetaData Query) uomLabel label type Ping (good debug/checking mechanism)

Import / Unique Core Data Config Options Per application.properties (or via Consul Config/Registry service) metadata.check (false) – allows you to turn on check of Device existence in MetaData with each Event/Reading POST addto.event.queue (true) – turn off post of new Event/Readings to export services & rules engine persist.data (true) – turn off the storage of data in the database (Mongo) turning Core Data into a streaming service msgpub.type (zero) – send Event/Readings to export services via 0MQ (alternative is via MQTT) Database configuration (location, user, pass, …) Message pipe configuration (location, user, pass, …) Other standard config options Service port Location of associated micro services Log levels Read limits https://github.com/edgexfoundry/core-data/blob/master/src/main/resources/application.properties

No Tech Talk Next week due to London EdgeX meeting EdgeX Tech Talks Provide this new community with background on the current system In the future, they may address future architecture or special calls to action Currently scheduled for every week (Thursdays) Alternating weekly times: 9am and 6pm ET Trying to be sensitive to global attendance Topics TBD – email me suggestions No Tech Talk Next week due to London EdgeX meeting Next Tech Talk will be July 27th

Upcoming Tech Talks Core Metadata in-depth Core Command in-depth Consul and Config/Registry micro service Using the SDK to generate a device service Email me other suggestions

Questions and Answer Time