Developing node-mdb. SimpleDB emulation using Node.js and GT.M

Size: px
Start display at page:

Download "Developing node-mdb. SimpleDB emulation using Node.js and GT.M"

Transcription

1 Developing node-mdb SimpleDB emulation using Node.js and GT.M Rob Tweed M/Gateway Developments Ltd

2 Could you translate that title? SimpleDB: Amazon s NoSQL cloud database Node.js: evented server-side Javascript (using V8) GT.M: Open source global-storage based NoSQL database node-mdb Open source emulation of SimpleDB

3 SimpleDB Amazon s cloud database Pay as you go Secure interface Schema-free NoSQL database Spreadsheet-like database model Domains (= tables) Items (= rows) Attributes (=cells)» Values (1+ per attribute allowed) SQL-like query API

4 Why emulate SimpleDB? Because I could! Kind of cool project

5 Why emulate SimpleDB? To provide a free, locally-available database that behaved identically to SimpleDB Lots of off-the-shelf available clients Standalone Bolso Mindscape s SimpleDB Management Tools Language-specific clients boto (Python) Official AWS clients for Java,.Net Node.js etc

6 Why emulate SimpleDB? To perform local tests prior to committing to production on SimpleDB To provide a live, local backup database A SimpleDB database for private clouds To provide an immediately-consistent SimpleDB database SimpleDB is eventually consistent

7 Why the GT.M database? I m familiar with it Free Open Source NoSQL database Schema-free Globals : Sparse persistent multi-dimensional arrays Hierarchical database Completely dynamic storage No pre-declaration or specification needed Result: trivial to model SimpleDB in globals node-mdb: Good way to demonstrate the capabilities of the otherwise littleknown GT.M More info Google: GT.M database universalnosql

8 Why write it using Node.js? M/DB originally written in late 2008 Implemented using GT.M s native scripting language (M) Apache + m_apache gateway to GT.M for interface I ve been working with Node.js for about a year now Rewriting M/DB in Javascript would make it more widely interesting and comprehensible Some performance issues reported with M/DB when being pushed hard

9 Why Node.js? Conclusion: Re-implementing M/DB using Node.js should provide better performance and scalability Fewer moving parts: Apache + m_apache + GT.M / multi-threaded Node.js + GT.M as child processes / single-thread Cool Node.js project to attempt Great example of non-trivial use of Node.js + database

10 How does SimpleDB work? Incoming SDB Request Security Key Id Secret Key SimpleDB Database Copy 1 Outgoing SDB Response Server Authenticate Request (HMacSHA) Error Generate Response Execute API Action Success and/or data/results SimpleDB SimpleDB Database SimpleDB Database Copy Database 2 Copy 2 Copy 2 SimpleDB Database Copy n

11 Node.js can emulate all this Incoming SDB Request Security Key Id Secret Key SimpleDB Database Copy 1 Outgoing SDB Response Server Authenticate Request (HMacSHA) Error Generate Response Execute API Action Success and/or data/results SimpleDB SimpleDB Database SimpleDB Database Copy Database 2 Copy 2 Copy 2 SimpleDB Database Copy n

12 GT.M can emulate this Incoming SDB Request Server Security Key Id Secret Key Authenticate Request Execute API Action SimpleDB Database Copy 1 Outgoing SDB Response Error Generate Response Success and/or data/results

13 Node.js characteristics Single threaded process Event loop Non-blocking I/O Asynchronous calls to functions that handle I/O Event-driven call-back functions when function completes Data fetched Data saved

14 Result: deeply nested call-backs Security Key Id Secret Key Server Authenticate Request Execute API Action Error Generate Response Success and/or data/results

15 Flattening the call-back nesting http.createserver(function(req,res) {..} var executeapi = function() { }; http server processsdbrequest() executeapi() sendresponse() var processsdbrequest = function() { };

16 Node.js Server http.createserver(function(request, response) { request.content = ''; request.on("data", function(chunk) { request.content += chunk; }); request.on("end", function(){ var SDB = {starttime: new Date().getTime(), request: request, response: response }; var urlobj = url.parse(request.url, true); if (request.method === 'POST') { SDB.nvps = parsecontent(request.content); } else { SDB.nvps = urlobj.query; } var uri = urlobj.pathname; if ((uri.indexof(sdburlpattern)!== -1) (uri.indexof(mdburlpattern)!== -1)) { processsdbrequest(sdb); } else { var uristring = ' + request.headers.host + request.url; var error = {code:'invaliduri', message: 'The URI ' + uristring + ' is not valid',status:400}; returnerror(sdb,error); } }); }).listen(httpport);

17 processsdbrequest() var processsdbrequest = function(sdb) { var accesskeyid = SDB.nvps.AWSAccessKeyId; if (!accesskeyid) { var error = {code:'authmissingfailure', message: 'AWS was not able to authenticate the request: access credentials are missing',status:403}; returnerror(sdb, error); } else { MDB.getGlobal('MDBUAF', ['keys', accesskeyid], function (error, results) { if (!error) { if (results.value!== '') { accesskey[accesskeyid] = results.value; validatesdbrequest(sdb, results.value); } else { var error = {code:'authmissingfailure', message: 'AWS was not able to authenticate the request: access credentials are missing',status:403}; returnerror(sdb, error); } } }); } };

18 validatesdbrequest() var validatesdbrequest = function(sdb, secretkey) { var type = HmacSHA256 ; var stringtosign = createstringtosign(sdb, true); var hash = digest(stringtosign, secretkey, type); if (hash === SDB.nvps.Signature) { processsdbaction(sdb); } else { errorresponse('signaturedoesnotmatch', SDB) } };

19 stringtosign() POST{lf} :8081{lf} /{lf} AWSAccessKeyId=rob&Action=ListDomains& MaxNumberOfDomains=100&SignatureMethod=HmacSHA1& SignatureVersion=2& Timestamp= T22%3A39%3A30%2 B00%3A00& Version= ie: reconstruct the same string that the SDB client used to sign the request then use rob s secret key to sign it:

20 digest() var crypto = require("crypto"); var digest = function(string, secretkey, type) { var hmac = crypto.createhmac(type, secretkey); hmac.update(string); return hmac.digest('base64'); };

21 Ready to execute an API! Incoming SDB Request Security Key Id Secret Key SimpleDB Database Copy 1 Outgoing SDB Response Server Authenticate Request Error Generate Response Execute API Action Success and/or data/results SimpleDB SimpleDB Database SimpleDB Database Copy Database 2 Copy 2 Copy 2 SimpleDB Database Copy n

22 SimpleDB APIs (Actions) CreateDomain ListDomains DeleteDomain PutAttributes GetAttributes DeleteAttributes Select DomainMetaData (BatchPutAttributes) (BatchDeleteAttributes)

23 Accessing the GT.M Database Accessed via node-mwire TCP-based wire protocol Extension of Redis protocol Adapted redis-node module APIs allow you to set/get/delete/edit Globals

24 GT.M Globals Globals = unit of persistent storage Schema-free Hierarchically structured Sparse Dynamic persistent associative array

25 GT.M Globals A Global has: A name 0, 1 or more subscripts String value globalname[subscript1,subscript2,..subscriptn]=value

26 SDB Domain in Globals CreateDomain AWSAccessKeyId = rob DomainName = books

27 Multiple Domains in Globals name books 1 created domains modified name accounts 2 created MDB rob modified domainindex books 1 accounts 2

28 Creating a new domain (1) increment() 1 name books created domains modified MDB rob domainindex books 1

29 Creating a new domain (2) setglobal() 1 name books created domains modified name accounts 2 created MDB rob modified domainindex books 1 accounts 2

30 Key Node.js async patterns for db I/O Dependent pattern: Can t set the global nodes until the value of the increment() is returned Parallel pattern: Global nodes can be created in parallel No interdependence BUT: Need to know when they re all completed

31 Dependent pattern name books 1 created domains modified MDB rob IncrBy MDB.increment([accessKeyId, 'domains'], 1, function (error, results) { var id = results.value; //.now create the other global nodes inside callback });

32 Dependent pattern name books 1 created domains modified MDB rob MDB.increment([accessKeyId, 'domains'], 1, function (error, results) { var id = results.value; //.now create the other global nodes inside callback });

33 Parallel Pattern (semaphore) var count = 0; MDB.setGlobal([accessKeyId, 'domains', id, 'name'], domainname, function (error, results) { count++; if (count === 4) sendcreatedomainresponse(count, SDB); }); MDB.setGlobal([accessKeyId, 'domains', id, 'created'], now, function (error, results) { count++; if (count === 4) sendcreatedomainresponse(count, SDB); }); MDB.setGlobal([accessKeyId, 'domains', id, 'modified'], now, function (error, results) { count++; if (count === 4) sendcreatedomainresponse(count, SDB); }); MDB.setGlobal([accessKeyId, 'domainindex', nameindex, id], '', function (error, results) { count++; if (count === 4) sendcreatedomainresponse(count, SDB); });

34 New domain nodes created name books 1 created domains modified name accounts 2 created MDB rob modified domainindex books 1 accounts 2

35 Send CreateDomain Response Incoming SDB Request Security Key Id Secret Key SimpleDB Database Copy 1 Outgoing SDB Response Server Authenticate Request Error Generate Response Execute API Action Success and/or data/results SimpleDB SimpleDB Database SimpleDB Database Copy Database 2 Copy 2 Copy 2 SimpleDB Database Copy n

36 CreateDomain Response <?xml version="1.0"?> <CreateDomainResponse xmlns=" <ResponseMetadata> <RequestID>e4e9fa45-f9dc-4e5b-8f0a-777acce6505e</RequestID> <BoxUsage> </BoxUsage> </ResponseMetadata> </CreateDomainResponse> var okresponse = function(sdb) { var nvps = SDB.nvps; var xml = responsestart({action: nvps.action, version: nvps.version}); xml = xml + responseend(nvps.action, SDB.startTime, false); responseheader(200, SDB.response); SDB.response.write(xml); SDB.response.end(); };

37 Node.js Server Response http.createserver(function(request, response) { // numerous call-backs deep: }); response.writehead(status, { "Server": "Amazon SimpleDB", "Content-Type": "text/xml", "Date": datenow.toutcstring()}); response.write('<?xml version="1.0"?>\n'); response.write(xml); response.end(); Entire request/response SDB round-trip completed

38 Demo using Bolso List Domains Create Domain Add an item (row) and some attributes (columns + cells)

39 Node.js Gotchas Async programming is not immediately intuitive! Loops Calling functions that use call-backs inside a for..in loop will go horribly wrong! Understanding closures How externally-defined variables can be used inside call-back functions

40 Example BatchPutAttributes Intuitively a for.. in loop around PutAttributes Had to be serialised Completion of one PutAttributes calls the next Copy state of SDB object and use for..in? var SDBx = SDB; SDBx is a pointer to SDB, not a clone of it!

41 Conclusions node-mdb is now nearly complete Only BatchDeleteAttributes not implemented Other APIs emulate SimpleDB 100% Free Open Source Give it a try! Use mdb.js for examples to build your own Node.js database applications Check out GT.M! Follow me on Twitter Slides:

EWD.js on FHIR. Rob Tweed M/Gateway Developments Ltd. Wednesday, 12 March 14

EWD.js on FHIR. Rob Tweed M/Gateway Developments Ltd.     Wednesday, 12 March 14 on FHIR Rob Tweed M/Gateway Developments Ltd Twitter: @rtweed Email: rtweed@mgateway.com http://www.mgateway.com Architecture Caché Or GT.M Architecture Mumps: - Language - Database Caché Or GT.M Architecture

More information

EWD Lite. Rob Tweed M/Gateway Developments Ltd. Tuesday, 16 July 13

EWD Lite. Rob Tweed M/Gateway Developments Ltd.   Tuesday, 16 July 13 EWD Lite Rob Tweed M/Gateway Developments Ltd Twitter: @rtweed Email: rtweed@mgateway.com 1 EWD Lite Background, History and Aims Underlying Technology & Architecture Comparison with classic EWD Benefits

More information

AWS Lambda + nodejs Hands-On Training

AWS Lambda + nodejs Hands-On Training AWS Lambda + nodejs Hands-On Training (4 Days) Course Description & High Level Contents AWS Lambda is changing the way that we build systems in the cloud. This new compute service in the cloud runs your

More information

A NoSQL Introduction for Relational Database Developers. Andrew Karcher Las Vegas SQL Saturday September 12th, 2015

A NoSQL Introduction for Relational Database Developers. Andrew Karcher Las Vegas SQL Saturday September 12th, 2015 A NoSQL Introduction for Relational Database Developers Andrew Karcher Las Vegas SQL Saturday September 12th, 2015 About Me http://www.andrewkarcher.com Twitter: @akarcher LinkedIn, Twitter Email: akarcher@gmail.com

More information

Amazon SimpleDB Developer Guide

Amazon SimpleDB Developer Guide P U B L I S H I N G professional expertise distilled Amazon SimpleDB Developer Guide Prabhakar Chaganti Rich Helms Chapter No.8 "Tuning and Usage Costs" In this package, you will find: A Biography of the

More information

this presentation code is on https://github.com/gabrielelana/node-examples

this presentation code is on https://github.com/gabrielelana/node-examples this presentation code is on https://github.com/gabrielelana/node-examples gabriele lana gabriele.lana@cleancode.it twitter: @gabrielelana this presentation code is on https://github.com/gabrielelana/node-examples

More information

Introduction to NoSQL Databases

Introduction to NoSQL Databases Introduction to NoSQL Databases Roman Kern KTI, TU Graz 2017-10-16 Roman Kern (KTI, TU Graz) Dbase2 2017-10-16 1 / 31 Introduction Intro Why NoSQL? Roman Kern (KTI, TU Graz) Dbase2 2017-10-16 2 / 31 Introduction

More information

NoSQL systems. Lecture 21 (optional) Instructor: Sudeepa Roy. CompSci 516 Data Intensive Computing Systems

NoSQL systems. Lecture 21 (optional) Instructor: Sudeepa Roy. CompSci 516 Data Intensive Computing Systems CompSci 516 Data Intensive Computing Systems Lecture 21 (optional) NoSQL systems Instructor: Sudeepa Roy Duke CS, Spring 2016 CompSci 516: Data Intensive Computing Systems 1 Key- Value Stores Duke CS,

More information

VistA: a first-class citizen in the JSON-centric future of Health IT

VistA: a first-class citizen in the JSON-centric future of Health IT VistA: a first-class citizen in the JSON-centric future of Health IT Rob Tweed M/Gateway Developments Ltd @rtweed What is JSON? JavaScript Object Notation A simple and compact syntax for describing Objects

More information

What is Node.js? Tim Davis Director, The Turtle Partnership Ltd

What is Node.js? Tim Davis Director, The Turtle Partnership Ltd What is Node.js? Tim Davis Director, The Turtle Partnership Ltd About me Co-founder of The Turtle Partnership Working with Notes and Domino for over 20 years Working with JavaScript technologies and frameworks

More information

Scaling DreamFactory

Scaling DreamFactory Scaling DreamFactory This white paper is designed to provide information to enterprise customers about how to scale a DreamFactory Instance. The sections below talk about horizontal, vertical, and cloud

More information

AWS Lambda. 1.1 What is AWS Lambda?

AWS Lambda. 1.1 What is AWS Lambda? Objectives Key objectives of this chapter Lambda Functions Use cases The programming model Lambda blueprints AWS Lambda 1.1 What is AWS Lambda? AWS Lambda lets you run your code written in a number of

More information

CS 498RK FALL RESTFUL APIs

CS 498RK FALL RESTFUL APIs CS 498RK FALL 2017 RESTFUL APIs Designing Restful Apis blog.mwaysolutions.com/2014/06/05/10-best-practices-for-better-restful-api/ www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api Resources

More information

flask-dynamo Documentation

flask-dynamo Documentation flask-dynamo Documentation Release 0.1.2 Randall Degges January 22, 2018 Contents 1 User s Guide 3 1.1 Quickstart................................................ 3 1.2 Getting Help...............................................

More information

Programming model and implementation for processing and. Programs can be automatically parallelized and executed on a large cluster of machines

Programming model and implementation for processing and. Programs can be automatically parallelized and executed on a large cluster of machines A programming model in Cloud: MapReduce Programming model and implementation for processing and generating large data sets Users specify a map function to generate a set of intermediate key/value pairs

More information

Migrating from MySQL to Amazon SimpleDB

Migrating from MySQL to Amazon SimpleDB Contents Contents... 2 Introduction... 3 The Simple Customer Application... 3 Reasons for Migrating... 5 Migrating MySQL Schemas to Amazon SimpleDB... 6 Migration from a CRUD Perspective... 10 Creating

More information

EWD.js Architecture. Rob Tweed M/Gateway Developments Ltd. Saturday, 23 November 13

EWD.js Architecture. Rob Tweed M/Gateway Developments Ltd.   Saturday, 23 November 13 EWD.js Architecture Rob Tweed M/Gateway Developments Ltd Twitter: @rtweed Email: rtweed@mgateway.com EWD.js Architecture 2 EWD.js Architecture Child Process removed from available pool as soon as a request

More information

Windows Azure Mobile Services

Windows Azure Mobile Services Deliver Solutions, Deliver Careers, Deliver Results Windows Azure Mobile Services September 13, 2013 Today s Speaker @justintspradlin http://www.linkedin.com/in/justintspradlin Agenda Windows Azure Mobile

More information

Making Sense of your Data

Making Sense of your Data Making Sense of your Data Building A Custom DataSource for Grafana with Vert.x Gerald Mücke DevCon5 GmbH @gmuecke About me 3 IT Consultant & Java Specialist at DevCon5 (CH) Focal Areas Tool-assisted quality

More information

Future Web App Technologies

Future Web App Technologies Future Web App Technologies Mendel Rosenblum MEAN software stack Stack works but not the final say in web app technologies Angular.js Browser-side JavaScript framework HTML Templates with two-way binding

More information

Extra Notes - Data Stores & APIs - using MongoDB and native driver

Extra Notes - Data Stores & APIs - using MongoDB and native driver Extra Notes - Data Stores & APIs - using MongoDB and native driver Dr Nick Hayward Contents intro install MongoDB running MongoDB using MongoDB Robo 3T basic intro to NoSQL connect to MongoDB from Node.js

More information

Reactive Microservices Architecture on AWS

Reactive Microservices Architecture on AWS Reactive Microservices Architecture on AWS Sascha Möllering Solutions Architect, @sascha242, Amazon Web Services Germany GmbH Why are we here today? https://secure.flickr.com/photos/mgifford/4525333972

More information

Homework 8: Ajax, JSON and Responsive Design Travel and Entertainment Search (Bootstrap/Angular/AJAX/JSON/jQuery /Cloud Exercise)

Homework 8: Ajax, JSON and Responsive Design Travel and Entertainment Search (Bootstrap/Angular/AJAX/JSON/jQuery /Cloud Exercise) Homework 8: Ajax, JSON and Responsive Design Travel and Entertainment Search (Bootstrap/Angular/AJAX/JSON/jQuery /Cloud Exercise) 1. Objectives Get familiar with the AJAX and JSON technologies Use a combination

More information

NODE.JS SERVER SIDE JAVASCRIPT. Introduc)on Node.js

NODE.JS SERVER SIDE JAVASCRIPT. Introduc)on Node.js NODE.JS SERVER SIDE JAVASCRIPT Introduc)on Node.js Node.js was created by Ryan Dahl starting in 2009. For more information visit: http://www.nodejs.org 1 What about Node.js? 1. JavaScript used in client-side

More information

A Review Of Non Relational Databases, Their Types, Advantages And Disadvantages

A Review Of Non Relational Databases, Their Types, Advantages And Disadvantages A Review Of Non Relational Databases, Their Types, Advantages And Disadvantages Harpreet kaur, Jaspreet kaur, Kamaljit kaur Student of M.Tech(CSE) Student of M.Tech(CSE) Assit.Prof.in CSE deptt. Sri Guru

More information

Jargons, Concepts, Scope and Systems. Key Value Stores, Document Stores, Extensible Record Stores. Overview of different scalable relational systems

Jargons, Concepts, Scope and Systems. Key Value Stores, Document Stores, Extensible Record Stores. Overview of different scalable relational systems Jargons, Concepts, Scope and Systems Key Value Stores, Document Stores, Extensible Record Stores Overview of different scalable relational systems Examples of different Data stores Predictions, Comparisons

More information

Study of NoSQL Database Along With Security Comparison

Study of NoSQL Database Along With Security Comparison Study of NoSQL Database Along With Security Comparison Ankita A. Mall [1], Jwalant B. Baria [2] [1] Student, Computer Engineering Department, Government Engineering College, Modasa, Gujarat, India ank.fetr@gmail.com

More information

Serverless Single Page Web Apps, Part Four. CSCI 5828: Foundations of Software Engineering Lecture 24 11/10/2016

Serverless Single Page Web Apps, Part Four. CSCI 5828: Foundations of Software Engineering Lecture 24 11/10/2016 Serverless Single Page Web Apps, Part Four CSCI 5828: Foundations of Software Engineering Lecture 24 11/10/2016 1 Goals Cover Chapter 4 of Serverless Single Page Web Apps by Ben Rady Present the issues

More information

Amazon AWS-Solution-Architect-Associate Exam

Amazon AWS-Solution-Architect-Associate Exam Volume: 858 Questions Question: 1 You are trying to launch an EC2 instance, however the instance seems to go into a terminated status immediately. What would probably not be a reason that this is happening?

More information

Homework 9: Stock Search Android App with Facebook Post A Mobile Phone Exercise

Homework 9: Stock Search Android App with Facebook Post A Mobile Phone Exercise Homework 9: Stock Search Android App with Facebook Post A Mobile Phone Exercise 1. Objectives Ø Become familiar with Android Studio, Android App development and Facebook SDK for Android. Ø Build a good-looking

More information

NoSQL & Firebase. SWE 432, Fall Web Application Development

NoSQL & Firebase. SWE 432, Fall Web Application Development NoSQL & Firebase SWE 432, Fall 2018 Web Application Development Review: Nouns vs. Verbs URIs should hierarchically identify nouns describing resources that exist Verbs describing actions that can be taken

More information

SAMPLE CHAPTER. Event-driven serverless applications. Danilo Poccia. FOREWORD BY James Governor MANNING

SAMPLE CHAPTER. Event-driven serverless applications. Danilo Poccia. FOREWORD BY James Governor MANNING SAMPLE CHAPTER Event-driven serverless applications Danilo Poccia FOREWORD BY James Governor MANNING in Action by Danilo Poccia Chapter 1 Copyright 2017 Manning Publications brief contents PART 1 FIRST

More information

Introduction to Big Data. NoSQL Databases. Instituto Politécnico de Tomar. Ricardo Campos

Introduction to Big Data. NoSQL Databases. Instituto Politécnico de Tomar. Ricardo Campos Instituto Politécnico de Tomar Introduction to Big Data NoSQL Databases Ricardo Campos Mestrado EI-IC Análise e Processamento de Grandes Volumes de Dados Tomar, Portugal, 2016 Part of the slides used in

More information

CIT 668: System Architecture. Amazon Web Services

CIT 668: System Architecture. Amazon Web Services CIT 668: System Architecture Amazon Web Services Topics 1. AWS Global Infrastructure 2. Foundation Services 1. Compute 2. Storage 3. Database 4. Network 3. AWS Economics Amazon Services Architecture Regions

More information

AWS Lambda: Event-driven Code in the Cloud

AWS Lambda: Event-driven Code in the Cloud AWS Lambda: Event-driven Code in the Cloud Dean Bryen, Solutions Architect AWS Andrew Wheat, Senior Software Engineer - BBC April 15, 2015 London, UK 2015, Amazon Web Services, Inc. or its affiliates.

More information

ARCHITECTING WEB APPLICATIONS FOR THE CLOUD: DESIGN PRINCIPLES AND PRACTICAL GUIDANCE FOR AWS

ARCHITECTING WEB APPLICATIONS FOR THE CLOUD: DESIGN PRINCIPLES AND PRACTICAL GUIDANCE FOR AWS ARCHITECTING WEB APPLICATIONS FOR THE CLOUD: DESIGN PRINCIPLES AND PRACTICAL GUIDANCE FOR AWS Dr Adnene Guabtni, Senior Research Scientist, NICTA/Data61, CSIRO Adnene.Guabtni@csiro.au EC2 S3 ELB RDS AMI

More information

Varargs Training & Software Development Centre Private Limited, Module: HTML5, CSS3 & JavaScript

Varargs Training & Software Development Centre Private Limited, Module: HTML5, CSS3 & JavaScript PHP Curriculum Module: HTML5, CSS3 & JavaScript Introduction to the Web o Explain the evolution of HTML o Explain the page structure used by HTML o List the drawbacks in HTML 4 and XHTML o List the new

More information

Database Evolution. DB NoSQL Linked Open Data. L. Vigliano

Database Evolution. DB NoSQL Linked Open Data. L. Vigliano Database Evolution DB NoSQL Linked Open Data Requirements and features Large volumes of data..increasing No regular data structure to manage Relatively homogeneous elements among them (no correlation between

More information

Technical Brief. A Checklist for Every API Call. Managing the Complete API Lifecycle

Technical Brief. A Checklist for Every API Call. Managing the Complete API Lifecycle Technical Brief A Checklist for Table of Contents Introduction: The API Lifecycle 2 3 Security professionals API developers Operations engineers API product or business owners Apigee Edge 7 A Checklist

More information

FAQs. Business (CIP 2.2) AWS Market Place Troubleshooting and FAQ Guide

FAQs. Business (CIP 2.2) AWS Market Place Troubleshooting and FAQ Guide FAQs 1. What is the browser compatibility for logging into the TCS Connected Intelligence Data Lake for Business Portal? Please check whether you are using Mozilla Firefox 18 or above and Google Chrome

More information

Systems Integration in the Cloud Era. Kai Wähner, MaibornWolff et al GmbH

Systems Integration in the Cloud Era. Kai Wähner, MaibornWolff et al GmbH Systems Integration in the Cloud Era Kai Wähner, MaibornWolff et al GmbH Kai Wähner (MaibornWolff et al GmbH, Munich, Germany) Main Tasks Evaluation of Technologies and Products Requirements Engineering

More information

We are ready to serve Latest Testing Trends, Are you ready to learn? New Batch Details

We are ready to serve Latest Testing Trends, Are you ready to learn? New Batch Details We are ready to serve Latest Testing Trends, Are you ready to learn? START DATE : New Batch Details TIMINGS : DURATION : TYPE OF BATCH : FEE : FACULTY NAME : LAB TIMINGS : SOAP UI, SOA Testing, API Testing,

More information

Making Sense of your Data BUILDING A CUSTOM MONGODB DATASOURCE FOR GRAFANA WITH VERTX

Making Sense of your Data BUILDING A CUSTOM MONGODB DATASOURCE FOR GRAFANA WITH VERTX 1 Making Sense of your Data BUILDING A CUSTOM MONGODB DATASOURCE FOR GRAFANA WITH VERTX About me 2 IT Consultant & Java Specialist at DevCon5 (CH) Focal Areas Tool-assisted quality assurance Performance

More information

Middle East Technical University. Jeren AKHOUNDI ( ) Ipek Deniz Demirtel ( ) Derya Nur Ulus ( ) CENG553 Database Management Systems

Middle East Technical University. Jeren AKHOUNDI ( ) Ipek Deniz Demirtel ( ) Derya Nur Ulus ( ) CENG553 Database Management Systems Middle East Technical University Jeren AKHOUNDI (1836345) Ipek Deniz Demirtel (1997691) Derya Nur Ulus (1899608) CENG553 Database Management Systems * Introduction to Cloud Computing * Cloud DataBase as

More information

What is database? Types and Examples

What is database? Types and Examples What is database? Types and Examples Visit our site for more information: www.examplanning.com Facebook Page: https://www.facebook.com/examplanning10/ Twitter: https://twitter.com/examplanning10 TABLE

More information

Module 6 Node.js and Socket.IO

Module 6 Node.js and Socket.IO Module 6 Node.js and Socket.IO Module 6 Contains 2 components Individual Assignment and Group Assignment Both are due on Wednesday November 15 th Read the WIKI before starting Portions of today s slides

More information

Part2: Let s pick one cloud IaaS middleware: OpenStack. Sergio Maffioletti

Part2: Let s pick one cloud IaaS middleware: OpenStack. Sergio Maffioletti S3IT: Service and Support for Science IT Cloud middleware Part2: Let s pick one cloud IaaS middleware: OpenStack Sergio Maffioletti S3IT: Service and Support for Science IT, University of Zurich http://www.s3it.uzh.ch/

More information

Database Architectures

Database Architectures Database Architectures CPS352: Database Systems Simon Miner Gordon College Last Revised: 4/15/15 Agenda Check-in Parallelism and Distributed Databases Technology Research Project Introduction to NoSQL

More information

Topics. History. Architecture. MongoDB, Mongoose - RDBMS - SQL. - NoSQL

Topics. History. Architecture. MongoDB, Mongoose - RDBMS - SQL. - NoSQL Databases Topics History - RDBMS - SQL Architecture - SQL - NoSQL MongoDB, Mongoose Persistent Data Storage What features do we want in a persistent data storage system? We have been using text files to

More information

AWS SDK for Node.js. Getting Started Guide Version pre.1 (developer preview)

AWS SDK for Node.js. Getting Started Guide Version pre.1 (developer preview) AWS SDK for Node.js Getting Started Guide Amazon Web Services AWS SDK for Node.js: Getting Started Guide Amazon Web Services Copyright 2012 Amazon Web Services LLC or its affiliates. All rights reserved.

More information

Upload to your web space (e.g., UCSC) Due this Thursday 4/8 in class Deliverable: Send me an with the URL Grading:

Upload to your web space (e.g., UCSC) Due this Thursday 4/8 in class Deliverable: Send me an  with the URL Grading: CS 183 4/6/2010 Build a simple HTML page, topic of your choice Will use this as a basis and gradually and add more features as the class progresses Need to be done with your favorite text editor, no visual

More information

Configuration Management. Norman Walsh, Lead Engineer 01 May 2012

Configuration Management. Norman Walsh, Lead Engineer 01 May 2012 Configuration Management Norman Walsh, Lead Engineer 01 May 2012 Introduction Motivation What is the current configuration of this cluster? Is this cluster the same as that one? How are they different?

More information

Lab 2 Third Party API Integration, Cloud Deployment & Benchmarking

Lab 2 Third Party API Integration, Cloud Deployment & Benchmarking Lab 2 Third Party API Integration, Cloud Deployment & Benchmarking In lab 1, you have setup the web framework and the crawler. In this lab, you will complete the deployment flow for launching a web application

More information

Survey of the Azure Data Landscape. Ike Ellis

Survey of the Azure Data Landscape. Ike Ellis Survey of the Azure Data Landscape Ike Ellis Wintellect Core Services Consulting Custom software application development and architecture Instructor Led Training Microsoft s #1 training vendor for over

More information

SAMPLE CHAPTER. Event-driven serverless applications. Danilo Poccia. FOREWORD BY James Governor MANNING

SAMPLE CHAPTER. Event-driven serverless applications. Danilo Poccia. FOREWORD BY James Governor MANNING SAMPLE CHAPTER Event-driven serverless applications Danilo Poccia FOREWORD BY James Governor MANNING AWS Lambda in Action by Danilo Poccia Chapter 8 Copyright 2017 Manning Publications brief contents PART

More information

IERG 4080 Building Scalable Internet-based Services

IERG 4080 Building Scalable Internet-based Services Department of Information Engineering, CUHK MScIE 2 nd Semester, 2015/16 IERG 4080 Building Scalable Internet-based Services Lecture 9 Web Sockets for Real-time Communications Lecturer: Albert C. M. Au

More information

Azure Development Course

Azure Development Course Azure Development Course About This Course This section provides a brief description of the course, audience, suggested prerequisites, and course objectives. COURSE DESCRIPTION This course is intended

More information

DATABASE SYSTEMS. Database programming in a web environment. Database System Course, 2016

DATABASE SYSTEMS. Database programming in a web environment. Database System Course, 2016 DATABASE SYSTEMS Database programming in a web environment Database System Course, 2016 AGENDA FOR TODAY Advanced Mysql More than just SELECT Creating tables MySQL optimizations: Storage engines, indexing.

More information

PROFESSIONAL. NoSQL. Shashank Tiwari WILEY. John Wiley & Sons, Inc.

PROFESSIONAL. NoSQL. Shashank Tiwari WILEY. John Wiley & Sons, Inc. PROFESSIONAL NoSQL Shashank Tiwari WILEY John Wiley & Sons, Inc. Examining CONTENTS INTRODUCTION xvil CHAPTER 1: NOSQL: WHAT IT IS AND WHY YOU NEED IT 3 Definition and Introduction 4 Context and a Bit

More information

NOSQL EGCO321 DATABASE SYSTEMS KANAT POOLSAWASD DEPARTMENT OF COMPUTER ENGINEERING MAHIDOL UNIVERSITY

NOSQL EGCO321 DATABASE SYSTEMS KANAT POOLSAWASD DEPARTMENT OF COMPUTER ENGINEERING MAHIDOL UNIVERSITY NOSQL EGCO321 DATABASE SYSTEMS KANAT POOLSAWASD DEPARTMENT OF COMPUTER ENGINEERING MAHIDOL UNIVERSITY WHAT IS NOSQL? Stands for No-SQL or Not Only SQL. Class of non-relational data storage systems E.g.

More information

ACE Whiteboard Tutorial: Modeling an Application Using Logic Scripts (Advanced)

ACE Whiteboard Tutorial: Modeling an Application Using Logic Scripts (Advanced) ACE Whiteboard Tutorial: Modeling an Application Using Logic Scripts (Advanced) Overview When database applications execute a query, each row that is fetched costs a round trip to the database. Therefore,

More information

Which compute option is designed for the above scenario? A. OpenWhisk B. Containers C. Virtual Servers D. Cloud Foundry

Which compute option is designed for the above scenario? A. OpenWhisk B. Containers C. Virtual Servers D. Cloud Foundry 1. A developer needs to create support for a workload that is stateless and short-living. The workload can be any one of the following: - API/microservice /web application implementation - Mobile backend

More information

Leveraging the Security of AWS's Own APIs for Your App. Brian Wagner Solutions Architect Serverless Web Day June 23, 2016

Leveraging the Security of AWS's Own APIs for Your App. Brian Wagner Solutions Architect Serverless Web Day June 23, 2016 Leveraging the Security of AWS's Own APIs for Your App Brian Wagner Solutions Architect Serverless Web Day June 23, 2016 AWS API Requests Access Key and Secret Key (access key and secret key have been

More information

Amazon Search Services. Christoph Schmitter

Amazon Search Services. Christoph Schmitter Amazon Search Services Christoph Schmitter csc@amazon.de What we'll cover Overview of Amazon Search Services Understand the difference between Cloudsearch and Amazon ElasticSearch Service Q&A Amazon Search

More information

IERG 4080 Building Scalable Internet-based Services

IERG 4080 Building Scalable Internet-based Services Department of Information Engineering, CUHK Term 1, 2016/17 IERG 4080 Building Scalable Internet-based Services Lecture 7 Asynchronous Tasks and Message Queues Lecturer: Albert C. M. Au Yeung 20 th & 21

More information

Hands-on immersion on Big Data tools

Hands-on immersion on Big Data tools Hands-on immersion on Big Data tools NoSQL Databases Donato Summa THE CONTRACTOR IS ACTING UNDER A FRAMEWORK CONTRACT CONCLUDED WITH THE COMMISSION Summary : Definition Main features NoSQL DBs classification

More information

Amazon Elastic MapReduce. API Reference API Version

Amazon Elastic MapReduce. API Reference API Version Amazon Elastic MapReduce API Reference Amazon Elastic MapReduce: API Reference Copyright 2011-2012 Amazon Web Services LLC or its affiliates. All rights reserved. Welcome... 1 Actions... 2 AddInstanceGroups...

More information

Western Michigan University

Western Michigan University CS-6030 Cloud compu;ng Google App engine Sepideh Mohammadi Summer II 2017 Western Michigan University content Categories of cloud compu;ng Google cloud plaborm Google App Engine Storage technologies Datastore

More information

Postgres-XC PG session #3. Michael PAQUIER Paris, 2012/02/02

Postgres-XC PG session #3. Michael PAQUIER Paris, 2012/02/02 Postgres-XC PG session #3 Michael PAQUIER Paris, 2012/02/02 Agenda Self-introduction Highlights of Postgres-XC Core architecture overview Performance High-availability Release status 2 Self-introduction

More information

Java in der Cloud Aktuelle Möglichkeiten und Entwicklungen

Java in der Cloud Aktuelle Möglichkeiten und Entwicklungen Java in der Cloud Aktuelle Möglichkeiten und Entwicklungen Eberhard Wolff Architecture and Technology Manager adesso AG Twitter: @ewolff Blog: http://ewolff.com About me! Eberhard Wolff! Architecture &

More information

Amazon Web Services Monitoring Integration User Guide

Amazon Web Services Monitoring Integration User Guide Amazon Web Services Monitoring Integration User Guide Functional Area: Amazon Web Services Monitoring Integration Geneos Release: v4.9 Document Version: v1.0.0 Date Published: 29 October 2018 Copyright

More information

Node.js: Asynchronous I/O for Fun and Profit. Stefan QCon London 2011

Node.js: Asynchronous I/O for Fun and Profit. Stefan QCon London 2011 Node.js: Asynchronous I/O for Fun and Profit Stefan Tilkov @ QCon London 2011 Stefan Tilkov @stilkov stefan.tilkov@innoq.com http://www.innoq.com Concurrent Request Processing read request read request

More information

1

1 1 2 3 6 7 8 9 10 Storage & IO Benchmarking Primer Running sysbench and preparing data Use the prepare option to generate the data. Experiments Run sysbench with different storage systems and instance

More information

Cloud platforms T Mobile Systems Programming

Cloud platforms T Mobile Systems Programming Cloud platforms T-110.5130 Mobile Systems Programming Agenda 1. Motivation 2. Different types of cloud platforms 3. Popular cloud services 4. Open-source cloud 5. Cloud on this course 6. Some useful tools

More information

Back-end architecture

Back-end architecture Back-end architecture Tiberiu Vilcu Prepared for EECS 411 Sugih Jamin 2 January 2018 https://education.github.com/pack 1 2 Outline HTTP 1. HTTP and useful web tools 2. Designing APIs 3. Back-end services

More information

The Packer Book. James Turnbull. April 20, Version: v1.1.2 (067741e) Website: The Packer Book

The Packer Book. James Turnbull. April 20, Version: v1.1.2 (067741e) Website: The Packer Book The Packer Book James Turnbull April 20, 2018 Version: v1.1.2 (067741e) Website: The Packer Book Some rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted

More information

StartupEDU. Introduction. Get Connected. Our Objective 5/13/ A Platform for university officials to find startups

StartupEDU. Introduction. Get Connected. Our Objective 5/13/ A Platform for university officials to find startups StartupEDU Get Connected. 1 5/5/2014 @StartupEDU Team Introduction A new university network to find startups and share with the campus! Our Objective 1 A Platform for university officials to find startups

More information

Extract API: Build sophisticated data models with the Extract API

Extract API: Build sophisticated data models with the Extract API Welcome # T C 1 8 Extract API: Build sophisticated data models with the Extract API Justin Craycraft Senior Sales Consultant Tableau / Customer Consulting My Office Photo Used with permission Agenda 1)

More information

The Bits Are In The Clouds

The Bits Are In The Clouds The Bits Are In The Clouds Jeff Barr Senior Web Services Evangelist jbarr@amazon.com www.storage-developer.org Hello! I m Jeff Barr Amazon employee since 2002 Background: Microsoft, consulting, startups

More information

Managing IoT and Time Series Data with Amazon ElastiCache for Redis

Managing IoT and Time Series Data with Amazon ElastiCache for Redis Managing IoT and Time Series Data with ElastiCache for Redis Darin Briskman, ElastiCache Developer Outreach Michael Labib, Specialist Solutions Architect 2016, Web Services, Inc. or its Affiliates. All

More information

AWS Administration. Suggested Pre-requisites Basic IT Knowledge

AWS Administration. Suggested Pre-requisites Basic IT Knowledge Course Description Amazon Web Services Administration (AWS Administration) course starts your Cloud Journey. If you are planning to learn Cloud Computing and Amazon Web Services in particular, then this

More information

Auto Scaling API Manual

Auto Scaling API Manual NTT Communications Cloudⁿ Auto Scaling API Manual Ver.1.0 Please refrain from redistribution (distribution, reproduction, provision etc.) of the contents published in this document. 1 Ver. No. Edited On

More information

Emulating Lambda to speed up development. Kevin Epstein CTO CorpInfo AWS Premier Partner

Emulating Lambda to speed up development. Kevin Epstein CTO CorpInfo AWS Premier Partner Emulating Lambda to speed up development Kevin Epstein CTO CorpInfo AWS Premier Partner What is Lambda? Scalable, Highly Available, Stateless, event driven computing Fully managed runtime environment Python

More information

Inline Checkout Implementation Guide

Inline Checkout Implementation Guide Inline Checkout Implementation Guide TOC 2 Contents Overview of This Document... 3 Standard Checkout Amazon Overview of Checkout by Checkout Overview of Inline Amazon Checkout by Overview of Who Should

More information

Exam Questions AWS-Certified- Developer-Associate

Exam Questions AWS-Certified- Developer-Associate Exam Questions AWS-Certified- Developer-Associate Amazon AWS Certified Developer Associate https://www.2passeasy.com/dumps/aws-certified- Developer-Associate/ 1. When using Amazon SQS how much data can

More information

PaaS Cloud mit Java. Eberhard Wolff, Principal Technologist, SpringSource A division of VMware VMware Inc. All rights reserved

PaaS Cloud mit Java. Eberhard Wolff, Principal Technologist, SpringSource A division of VMware VMware Inc. All rights reserved PaaS Cloud mit Java Eberhard Wolff, Principal Technologist, SpringSource A division of VMware 2009 VMware Inc. All rights reserved Agenda! A Few Words About Cloud! PaaS Platform as a Service! Google App

More information

Tutorial 8 Build resilient, responsive and scalable web applications with SocketPro

Tutorial 8 Build resilient, responsive and scalable web applications with SocketPro Tutorial 8 Build resilient, responsive and scalable web applications with SocketPro Contents: Introduction SocketPro ways for resilient, responsive and scalable web applications Vertical scalability o

More information

WWW. HTTP, Ajax, APIs, REST

WWW. HTTP, Ajax, APIs, REST WWW HTTP, Ajax, APIs, REST HTTP Hypertext Transfer Protocol Request Web Client HTTP Server WSGI Response Connectionless Media Independent Stateless Python Web Application WSGI : Web Server Gateway Interface

More information

Rule 14 Use Databases Appropriately

Rule 14 Use Databases Appropriately Rule 14 Use Databases Appropriately Rule 14: What, When, How, and Why What: Use relational databases when you need ACID properties to maintain relationships between your data. For other data storage needs

More information

Advanced Database Project: Document Stores and MongoDB

Advanced Database Project: Document Stores and MongoDB Advanced Database Project: Document Stores and MongoDB Sivaporn Homvanish (0472422) Tzu-Man Wu (0475596) Table of contents Background 3 Introduction of Database Management System 3 SQL vs NoSQL 3 Document

More information

Deploying to the Edge CouchDB

Deploying to the Edge CouchDB Deploying to the Edge CouchDB Apache Relax Who s Talking? J Chris Anderson / jchris@apache.org / @jchris PHP -> Rails -> JSON -> CouchDB Director, couch.io And You? Web developers? JavaScript coders? CouchDB

More information

NosDB vs DocumentDB. Comparison. For.NET and Java Applications. This document compares NosDB and DocumentDB. Read this comparison to:

NosDB vs DocumentDB. Comparison. For.NET and Java Applications. This document compares NosDB and DocumentDB. Read this comparison to: NosDB vs DocumentDB Comparison For.NET and Java Applications NosDB 1.3 vs. DocumentDB v8.6 This document compares NosDB and DocumentDB. Read this comparison to: Understand NosDB and DocumentDB major feature

More information

COSC 416 NoSQL Databases. NoSQL Databases Overview. Dr. Ramon Lawrence University of British Columbia Okanagan

COSC 416 NoSQL Databases. NoSQL Databases Overview. Dr. Ramon Lawrence University of British Columbia Okanagan COSC 416 NoSQL Databases NoSQL Databases Overview Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca Databases Brought Back to Life!!! Image copyright: www.dragoart.com Image

More information

Verteego VDS Documentation

Verteego VDS Documentation Verteego VDS Documentation Release 1.0 Verteego May 31, 2017 Installation 1 Getting started 3 2 Ansible 5 2.1 1. Install Ansible............................................. 5 2.2 2. Clone installation

More information

This tutorial is intended to make you comfortable in getting started with the Firebase backend platform and its various functions.

This tutorial is intended to make you comfortable in getting started with the Firebase backend platform and its various functions. Firebase About the Tutorial Firebase is a backend platform for building Web, Android and IOS applications. It offers real time database, different APIs, multiple authentication types and hosting platform.

More information

Distributed Non-Relational Databases. Pelle Jakovits

Distributed Non-Relational Databases. Pelle Jakovits Distributed Non-Relational Databases Pelle Jakovits Tartu, 7 December 2018 Outline Relational model NoSQL Movement Non-relational data models Key-value Document-oriented Column family Graph Non-relational

More information

AWS Security. Staying on Top of the Cloud

AWS Security. Staying on Top of the Cloud AWS Security Staying on Top of the Cloud Intro Kurtis Miller, a Principal Security Consultant for Previously: Global Security Engineering Manager for Senior Security Consultant for First Security Engineer

More information

Databases/JQuery AUGUST 1, 2018

Databases/JQuery AUGUST 1, 2018 Databases/JQuery AUGUST 1, 2018 Databases What is a Database? A table Durable place for storing things Place to easily lookup and update information Databases: The M in MVC What is a Database? Your Model

More information

EasyLogin. Intro to the Alpha version

EasyLogin. Intro to the Alpha version EasyLogin Intro to the Alpha version Yoann Gini System & Network Administrator As a system and network administrator, I work on a lot on topics related to OS X, OS X Server, security and scaling. You can

More information

Assignment: Seminole Movie Connection

Assignment: Seminole Movie Connection Assignment: Seminole Movie Connection Assignment Objectives: Building an application using an Application Programming Interface (API) Parse JSON data from an HTTP response message Use Ajax methods and

More information