Intro REST service using MongoDB as backend Two basic operations (to simplify) – Update attributes in entities (e.g. update the “speed” attribute in the.

Slides:



Advertisements
Similar presentations
IPP Notification Subscriptions Event Notification.
Advertisements

Speeding Up and Slowing Down
FIPA Interaction Protocol. Request Interaction Protocol Summary –Request Interaction Protocol allows one agent to request another to perform some action.
PHYS 1441 – Section 002 Lecture #4 Monday, Jan. 28, 2013 Dr. Jaehoon Yu Chapter 2: One Dimensional Motion Instantaneous Velocity and Speed Acceleration.
Relational Database Alternatives NoSQL. Choosing A Data Model Relational database underpin legacy applications and meet business needs However, companies.
OO Process Steps  Define requirements Allocate and Derive requirements Map requirements to use cases Map requirements to classes  Define use cases Draw.
October 2003 Iosif Legrand Iosif Legrand California Institute of Technology.
Chapter 21 Information Integration 21.3 Wrappers in Mediator-Based Systems Presented by: Kai Zhu Professor: Dr. T.Y. Lin Class ID: 220.
WMES3103 : INFORMATION RETRIEVAL INDEXING AND SEARCHING.
Algebra Quick Test June Put the numbers one to 12 down the page This is a speed test. We will then go through it together.
MONGODB NOSQL SERIES Karol Rástočný 1. Prominent Users 2  AppScale, bit.ly, Business Insider, CERN LHC, craigslist, diaspora, Disney Interactive Media.
DATABASE MANAGEMENT SYSTEMS BASIC CONCEPTS 1. What is a database? A database is a collection of data which can be used: alone, or alone, or combined /
DATABASE MANAGEMENT SYSTEMS BASIC CONCEPTS 1. What is a database? A database is a collection of data which can be used: alone, or alone, or combined /
Internet Concept and Terminology. The Internet The Internet is the largest computer system in the world. The Internet is often called the Net, the Information.
Computer Science 101 Database Concepts. Database Collection of related data Models real world “universe” Reflects changes Specific purposes and audience.
Normalization (Codd, 1972) Practical Information For Real World Database Design.
Web Services Management Framework by Umut Bultan & Gül Hünerkar.
Databases ©
Distributed Information Retrieval Using a Multi-Agent System and The Role of Logic Programming.
Databases.
DNS Discovery Discussion Report Draft-ietf-ipngwg-dns-discovery-01.txt.
Supporting long polling Group Name: ARC WG Source: SeungMyeong, LG Electronics, Meeting Date: x-xx Agenda Item: TBD.
Efficient information lookup for the Internet of Things G.F. Marias, N. Fotiou, G.C. Polyzos Mobile Multimedia Laboratory, Department of Informatics Athens.
DDM Monitoring David Cameron Pedro Salgado Ricardo Rocha.
Discussion on MN multicast activity tracking Luis M. Contreras Telefónica I+D Carlos J. Bernardos Universidad Carlos III de Madrid (UC3M) Berlin, MULTIMOB.
Activity 4 Data flow diagram of a school attendance system
Database Design And Implementation. Done so far… Started a design of your own data model In Software Engineering, recognised the processes that occur.
 You can use weighted averages to solve uniform motion problems when the objects you are considering are moving at constant rates or speeds.
Chris (I’m not a ghost) Woods. What went right (with Mongo) Application design Application development and system migration Application debugging MongoDB.
Data Collection and Web Crawling. Overview Data intensive applications are likely to powered by some databases. How do you get the data in your database?
April 2003 Iosif Legrand MONitoring Agents using a Large Integrated Services Architecture Iosif Legrand California Institute of Technology.
OIC INTERWORKING OPERATIONAL PROCEDURE (ADDRESSING AND DISCOVERY) Group Name: Architecture WG Source: Kiran Vedula, Samsung Electronics,
Description and exemplification use of a Data Dictionary. A data dictionary is a catalogue of all data items in a system. The data dictionary stores details.
Average and Constant Acceleration Chapter 2. Acceleration.
DICOMwebTM 2015 Conference & Hands-on Workshop University of Pennsylvania, Philadelphia, PA September 10-11, 2015 DICOMweb Workflow API (UPS-RS) Jonathan.
Objectives: Evaluate the difference between velocity and acceleration. Solve simple acceleration problems in one dimension.
Adding Non-blocking Requests Contribution: oneM2M-ARC-0441R01R01 Source: Josef Blanz, Qualcomm UK, Meeting Date: ARC 7.0,
Publish Subscribe for XDS-b Vassil Peytchev Epic Systems Corporation.
Orion Contextbroker PROF. DR. SERGIO TAKEO KOFUJI PROF. MS. FÁBIO H. CABRINI PSI – 5120 – TÓPICOS EM COMPUTAÇÃO EM NUVEM
Use Outlook Task API to access tasks stored on user’s mailbox. These REST API’s are  Simple to use.  Supports CRUD.  JSON structured.  OAuth 2.0.
PMIPv6 multicast handover optimization by the Subscription Information Acquisition through the LMA (SIAL) Luis M. Contreras Telefónica I+D Carlos J. Bernardos.
What Is A Reverse Phone Number Lookup?. Find out who is calling or texting you fast! Reverse phone lookup is a caller ID app that makes it easy to look.
Aim: How do we solve absolute value inequality? Do Now: 1. Solve for x: 2. Solve for x: 3. Solve for x: x > 5 x < -1.
Background Data Transfer
Project Management: Messages
Simplifying Expressions
CS422 Principles of Database Systems Course Overview
MongoDB Er. Shiva K. Shrestha ME Computer, NCIT
Presented by: Kai Zhu Professor: Dr. T.Y. Lin Class ID: 220
Meta Data Deep Dive Part 1
TOP-003 Data Library Detail Design Discussions October 5th, 2016
QDE Pro-Forma Invoice.
Overview & Basic Functionality
Overview & Basic Functionality
Russ Thomas Director, Information Services, TSYS
Master Data Management with SQL Server 2016 Master Data Services
Lesson 3.1 How do you solve two-step equations?
Solve: 1. 4<
MIT GSL 2018 week 3 | thursday Meteor and App Ideation.
Simplify and identify all x-values that are undefined
A car is decelerated to 20 m/s in 6 seconds
Who Wants to be an Equationaire?. Who Wants to be an Equationaire?
Acceleration (a) Non Uniform Motion
STORE MANAGER RESPONSIBILITIES.
10/10/ Bell Work Write and answer the following questions.
What is it? What good is it?
8.1 – 8.3 Review Exponents.
Views Base Relation View

Presentation transcript:

Intro REST service using MongoDB as backend Two basic operations (to simplify) – Update attributes in entities (e.g. update the “speed” attribute in the “Car1” entity) – Subscribe to changes in a given attribute on a given entity, so when an update of it occurs, then a notification to a given URL is sent MongoDB REST sesrvice

Update MongoDB REST sesrvice “Update the Car1 speed to 80 km/h” Entities are stored in the ‘entities’ collection: { "_id": "Car1", "attrs": [ { "name": "speed", "value": "80" } ] } Entities are stored in the ‘entities’ collection: { "_id": "Car1", "attrs": [ { "name": "speed", "value": "80" } ] }

Subscription MongoDB REST sesrvice “I want to receive a notification on each time any Car speed changes” Subscriptions are stored in the ‘csubs’ collection: { "_id": ObjectId("5149fd46f0075f83a4ca0300"), "reference": " "entity": "Car.*", "attr": "speed" } Subscriptions are stored in the ‘csubs’ collection: { "_id": ObjectId("5149fd46f0075f83a4ca0300"), "reference": " "entity": "Car.*", "attr": "speed" }

Update triggering subscription (“the problem”) MongoDB REST sesrvice “Update the Car1 speed to 85 km/h” In order to know which subscriptions are triggered by this update, a query on the “csubs” collection has to be done using “Car1” for the lookup. However, we have the regular expression stored in csubs (regex is not in the query!) Currently we use {$where: “\"Car1\".match(this.entity)" }, which is not recommended by MongoDB documentation. Reverse regex will solve this problem in a smart way: {entity: {$regexApply: {“Car1”}}} In order to know which subscriptions are triggered by this update, a query on the “csubs” collection has to be done using “Car1” for the lookup. However, we have the regular expression stored in csubs (regex is not in the query!) Currently we use {$where: “\"Car1\".match(this.entity)" }, which is not recommended by MongoDB documentation. Reverse regex will solve this problem in a smart way: {entity: {$regexApply: {“Car1”}}} (See for more details on $regexApply)