Agenda. About Me JDriven The case : Westy Tracking Background Architecture Implementation Demo

Size: px
Start display at page:

Download "Agenda. About Me JDriven The case : Westy Tracking Background Architecture Implementation Demo"

Transcription

1 y t s e W g n i k c a r T and l a v a j # 6 1 h c r 8 Ma

2 Agenda About Me JDriven The case : Westy Tracking Background Architecture Implementation Demo

3 About me Proud dad of two kids and a '82 VW Westy T3 Joker Founder and managing partner of JDriven Love to code, solder and surf

4 About JDriven 30+ highly skilled colleagues who love to code Specialized in all aspects of enterprise development on the JVM and within the browser Key players in projects of top 100 organization in the Netherlands as developer, architect, advisor and coach Organization focused on optimizing personal growth

5 Before we start We only have 35 minutes left

6 Westy Tracking + = Westy Tracking Platform Show actual details Show trip details Plot actual position & trip on map

7 Westy Tracking : Tracker Specifications GSM Quad-band Frequency GPS chipset Realtime tracking by SMS/GPRS Overspeed Alarm, ACC anti-theft alarm, SOS alarm Real-time voice monitoring Two-Way radio calling Built-in backup battery to realize power failure alarm Device lights turn into sleep mode after 5 minutes Cut vehicle oil or circuit using a relay GPRS Protocol Specification available (sort of) $25

8 Tracker Protocol : Westy Tracking Login: D D 06 0D 0A Login reply: EB 47 0D 0A Location: F 12 0B 08 1D 11 2E 10 CF 02 7A C7 EB 0C F 01 CC D 00 1F B D 0A Location reply: F 0D 0A Not that well documented ;) 22º =(22X )X3000=

9 Reactive

10 Classic architecture Sends tracker data [ TCP ] Requests page [ HTTPS ] Data Receiver Tracker Website Receives GPS Data, Shows devices, locations, trips and map Requests data [ JDBC ] Stores data [ JDBC ] Trip Detector Periodically Detects trips Database PostGis Requests and stores data [ JDBC ] Geocoder Requests and stores data [ JDBC ] Periodically reverse geocodes locations Westy Tracker Platform system boundary Requests Geocoding information [ HTTP ]

11 Modern architecture Sends tracker data [ TCP ] Location [ Event ] [ WebSockets (Trip & Location Events) ] Trip Detector Trip [ Event ] [ HTTPS ] Tracker Website Shows devices, locations, trips and map Detects trips Data Receiver Receives GPS Data Location [ Event ] Enriched Location [ Event ] Location Enrich. Enriches locations Location [ Event ] Enrich Location Request [ Event + Response ] Geocoder Store Requests Geocoding information [ HTTP ] Periodically reverse geocodes locations Redis Westy Tracker Platform system boundary

12 Technologies applied

13 Vert.x A lightweight, high performance application platform for the JVM Polyglot Java, JavaScript, Ruby, Python, Groovy, Clojure, Codox, Scala Simple Small core with APIs for async: HTTP/HTTPS, WebSockets, DNS, FileSystem, Scheduling Extensible Lots of additional features available your application platform

14 Vert.x : s Vert.x executable: Single file or class Communicates with other s using the EventBus Multiple Instances of s can be deployed Single-threaded, don t block the event loop (use Worker s instead) import io.vertx.core.abstract; public class Server extends Abstract { public void start() { vertx.createhttpserver().requesthandler(req -> { req.response().putheader("content-type", "text/plain").end("hello from Vert.x!"); }).listen(8080); } }

15 Vert.x : Core UDP, TCP & HTTP clients and servers Shared data - local maps and clustered distributed maps Periodic and delayed actions Handling deployment DNS client File system access The Event bus High availability & Clustering

16 Vert.x : Core : Eventbus Async Message Bus Message payload: Simple, String, Buffers or JSON Custom using codecs Message patterns: Publish / subscribe Point to point Timeout JavaScript Bridge Distributed No guarantees EventBus eb = vertx.eventbus(); // Send a message eventbus.send("javaland.news", "It s awsome!"); // Receive the message eb.consumer("javaland.news", message -> { System.out.println("Update: " + message.body()); });

17 Vert.x : Other extensions Web Routing, SockJS (event bus bridge), templating Data access MongoDB, Redis, JDBC, SQL,... Integration Mail, Stromp, JCA,... Authentication and Authorisation JWT, Shiro, OAuth2,... Services...

18 Vert.x : Upgraded to Vert.x 3 Easier to run, deploy and test Less a container, more embeddable Introduction of Vert.x Web and other extensions Java 8 instead of Groovy It rules!

19 Vert.x : Westy : Overview Tracker s Tracker Tcp Connection Tracker Protocol Tracker Persistence Main Location s Location Enriching Reverse Geocoding GeoHash Location Persistence Trip s Web Trip Detection Trip Persistence

20 Vert.x : Westy : Tracker Tcp Connection Tracker s Tracker Tcp Connection Tracker Protocol Tracker Persistence Main Location s Location Enriching Reverse Geocoding GeoHash Location Persistence Trip s Web Trip Detection Trip Persistence

21 Vert.x : Westy : Tracker Tcp Connection public class TrackerTcpConnection extends Abstract { public void start() throws Exception { vertx.createnetserver().connecthandler(connection -> { String socketid = connection.writehandlerid(); connection.handler(buffer -> { JsonObject messagebody = createmessagebody(socketid, buffer); vertx.eventbus().publish("tracker.tcp.in", messagebody); }); }).listen(port, host); } }

22 Vert.x : Westy : Location Enriching Tracker s Tracker Tcp Connection Tracker Protocol Tracker Persistence Main Location s Location Enriching Reverse Geocoding GeoHash Location Persistence Trip s Web Trip Detection Trip Persistence

23 Vert.x : Westy : Location Enriching vertx.eventbus().consumer("tracker.location", message -> {... Future<JsonObject> geohashfuture = Future.future(); Future<JsonObject> reversegeocodingfuture = Future.future(); vertx.eventbus().send("tracker.location.geohash", message.body(), geohashresult -> { if (geohashresult.succeeded()) { geohashfuture.complete((jsonobject) geohashresult.result().body()); } else { geohashfuture.fail(geohashresult.cause()); } }); DeliveryOptions deliveryoptions = new DeliveryOptions().setSendTimeout(TIMEOUT); vertx.eventbus().send("tracker.location.reversegeocode", message.body(), options, rgresult -> { if (rgresult.succeeded()) { reversegeocodingfuture.complete((jsonobject) rgresult.result().body()); } else { reversegeocodingfuture.fail(rgresult.cause()); } }); });

24 Vert.x : Westy : Location Enriching (2) CompositeFuture.all(geoHashFuture, reversegeocodingfuture).sethandler(combinedresult -> { JsonObject enrichedpayload = ((JsonObject)message.body()).copy(); if (geohashfuture.succeeded()) { enrichedpayload.put("geohash", geohashfuture.result().getstring("geohash")); if (reversegeocodingfuture.succeeded()) { enrichedpayload.put("location", reversegeocodingfuture.result()); } else { logger.warn("reversegeocode failed, continue without", reversegeocodingfuture.cause()); } vertx.eventbus().publish("tracker.location.enriched", enrichedpayload); } });

25 Redis : Key Features Key-value cache and store Optional persistence to disk More a data structure server, the value can contain different types It also supports transactions, publish / subscribe and Time-to-Live Clients available for virtually every language

26 Redis : Data Types String List Collections of string elements sorted according to the order of insertion. Set Collections of unique, unsorted string elements. Sorted Set Similar to Sets but where every string element is associated to a floating number value, called score. Hash Maps composed of fields associated with values. Both the field and the value are strings.

27 Redis : Data Types : String > SET hello westy OK > GET hello "westy"

28 Redis : Data Types : List > LPUSH mylist T # Push at head (integer) 1 > LPUSH mylist S E W # Push multiple at head (integer) 4 > RPUSH mylist Y (integer) 5 > LRANGE mylist 0-1 1) "W" 2) "E" 3) "S" 4) "T" 5) "Y" # Push at tail

29 Redis : Data Types : Set > SADD myset M Y W E S T Y (integer) 6 > SMEMBERS myset 1) "M" 2) "Y" 3) "E" 4) "T" 5) "S" 6) "W"

30 Redis : Data Types : Sorted Set > ZADD transporter:types 1990 "VW T4" (integer) 1 > ZADD transporter:types 1950 "VW T1" (integer) 1 > ZADD transporter:types 1979 "VM T3" (integer) 1 > ZADD transporter:types 1967 "VW T2" (integer) 1 > ZRANGE transporter:types 0-1 1) "VW T1" 2) "VW T2" 3) "VM T3" 4) "VW T4"

31 Redis : Data Types : Hash > HMSET vw:1000 license aa-bb-cc buildyear 1977 verified 1 OK > HGET vw:1000 license "aa-bb-cc" > HGET vw:1000 buildyear "1977" > HGETALL vw:1000 1) "license" 2) "aa-bb-cc" 3) "buildyear" 4) "1977" 5) "verified" 6) "1"

32 Redis : Westy : Include Redis Dependency (Gradle) compile "io.vertx:vertx-redis-client:${vertx.version}" Initialization () RedisOptions redisoptions = new RedisOptions(config().getJsonObject("redis")); redisclient = RedisClient.create(vertx, redisoptions); Configuration (platform.json) { "redis": { "address": "spotwatch.redis", "host": "redis", "port": 6379, "encoding": "UTF-8" } }

33 Redis : Westy : Store location details vertx.eventbus().consumer("tracker.location.enriched", message -> { JsonObject messagebody = (JsonObject) message.body(); Long receivedat = messagebody.getlong("receivedat"); String deviceid = messagebody.getstring("deviceid"); // Store location information at tracker:<deviceid>:location:receivedat redisclient.zadd(gettrackerlocationskey(deviceid), receivedat, messagebody.encode(), result -> { message.reply(result.result()); }); // Store received at tracker:<deviceid>:location:geohash using the geohash as key redisclient.hset( gettrackerlocationsgeohashkey(deviceid), messagebody.getstring("geohash"), String.valueOf(receivedAt), result -> { message.reply(result.result()); } ); });

34 AngularJS : Key Features Declarative HTML approach Two way Data Binding MVC/MVVM Design Pattern Dependency Injection Routing Reusable Components: Modules, Services, Directives, Built-in end to end Integration Testing / Unit Testing

35 AngularJS : Westy : Web public class Web extends Abstract { public void start() throws Exception { Router router = Router.router(vertx); router.route().handler(statichandler.create(webconfig.getstring("webroot"))); SockJSHandler sockjshandler = SockJSHandler.create(vertx, new SockJSHandlerOptions()); PermittedOptions permitted = new PermittedOptions().setAddressRegex("web\\..+"); sockjshandler.bridge(new BridgeOptions().addInboundPermitted(permitted).addOutboundPermitted(permitted) ); router.route("/eventbus/*").handler(sockjshandler); HttpServer server = vertx.createhttpserver(); server.requesthandler(router::accept).listen(port, host); } }

36 AngularJS : Westy : AngularJS angular.module('frontendapp').controller('mainctrl', function (..., vertxeventbusservice) { // Register eventbus system handlers $rootscope.$on('vertx-eventbus.system.connected', function () { console.log('eventbus connected') $scope.connected = true; requestinitialdata(); }); $rootscope.$on('vertx-eventbus.system.disconnected', function () { console.log('eventbus disconnected'); $scope.connected = false; }); var requestinitialdata = function () { vertxeventbusservice.send('web.devices.request').then(function (devicesdata) { _.each(devicesdata, function (device) { $scope.devices[device.id] = device; }); }); }; // Register functionality related handler(s) vertxeventbusservice.on('web.device.location', function (location) { $scope.devicelocations[location.deviceid] = location; });

37 AngularJS : Westy : AngularJS : D3 & Leaflet D3 <nvd3-multi-bar-horizontal-chart data="activespeedgraph" showvalues="true" objectequality="true"> <svg></svg> </nvd3-multi-bar-horizontal-chart> Leaflet <leaflet height="600" center="mapcenter" markers="devicemarkers" paths="trippaths"> </leaflet>

38 Westy : Last remarks Focus on dev and ops experience using specialized tools but fully integrated Gradle build Vert.x is simple if it fit s your needs Vert.x 3 rules, try it! Not everything is reactive, watch the arrows

39 Demo

40 Q&A

41 Thank you for your attention You really should experience

Agenda. Introduction You Me JDriven The case : Westy Tracking Details Implementation Deployment

Agenda. Introduction You Me JDriven The case : Westy Tracking Details Implementation Deployment y t s e W g n i k c a r T e p o r u mmit E u S y r d un o F 6 d 1 u h t Clo 8 2 r e b m Septe Agenda Introduction You Me JDriven The case : Westy Tracking Details Implementation Deployment About you About

More information

A T O O L K I T T O B U I L D D I S T R I B U T E D R E A C T I V E S Y S T E M S

A T O O L K I T T O B U I L D D I S T R I B U T E D R E A C T I V E S Y S T E M S VERT.X A T O O L K I T T O B U I L D D I S T R I B U T E D R E A C T I V E S Y S T E M S CLEMENT ESCOFFIER Vert.x Core Developer, Red Hat V E R T. X I S A T O O L K I T T O B U I L D D I S T R I B U T

More information

Redis Functions and Data Structures at Percona Live. Dave Nielsen, Developer Redis

Redis Functions and Data Structures at Percona Live. Dave Nielsen, Developer Redis Redis Functions and Data Structures at Percona Live Dave Nielsen, Developer Advocate dave@redislabs.com @davenielsen Redis Labs @redislabs Redis = A Unique Database Redis is an open source (BSD licensed),

More information

High performance reactive applications with Vert.x

High performance reactive applications with Vert.x High performance reactive applications with Vert.x Tim Fox Red Hat Bio Employed By Red Hat to lead the Vert.x project Worked in open source exclusively for the past 9 years Some projects I've been involved

More information

High performance reactive applications with Vert.x

High performance reactive applications with Vert.x High performance reactive applications with Vert.x Tim Fox Red Hat Bio Employed By Red Hat to lead the Vert.x project Worked in open source exclusively for the past 9 years Some projects I've been involved

More information

Database Solution in Cloud Computing

Database Solution in Cloud Computing Database Solution in Cloud Computing CERC liji@cnic.cn Outline Cloud Computing Database Solution Our Experiences in Database Cloud Computing SaaS Software as a Service PaaS Platform as a Service IaaS Infrastructure

More information

LECTURE 27. Python and Redis

LECTURE 27. Python and Redis LECTURE 27 Python and Redis PYTHON AND REDIS Today, we ll be covering a useful but not entirely Python-centered topic: the inmemory datastore Redis. We ll start by introducing Redis itself and then discussing

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

Going Reactive. Reactive Microservices based on Vert.x. JavaLand Kristian Kottke

Going Reactive. Reactive Microservices based on Vert.x. JavaLand Kristian Kottke Going Reactive Reactive Microservices based on Vert.x JavaLand Kristian Kottke Whoami Kristian Kottke Lead Software Engineer -> iteratec Interests Software Architecture Big Data Technologies Kristian.Kottke@iteratec.de

More information

Modern app programming

Modern app programming Modern app programming with RxJava and Eclipse Vert.x #QConSP @vertx_project Who am I? Vert.x core team member since 2016 Working at since 2012 Contributing specifically to monitoring and clustering @tsegismont

More information

Redis Func+ons and Data Structures

Redis Func+ons and Data Structures Redis Func+ons and Data Structures About This Talk Topic : Redis Func/ons and Data Structures Presenter: Redis Labs, the open source home and provider of enterprise Redis About Redis Labs: 5300+ paying

More information

Comet and WebSocket Web Applications How to Scale Server-Side Event-Driven Scenarios

Comet and WebSocket Web Applications How to Scale Server-Side Event-Driven Scenarios Comet and WebSocket Web Applications How to Scale Server-Side Event-Driven Scenarios Simone Bordet sbordet@intalio.com 1 Agenda What are Comet web applications? Impacts of Comet web applications WebSocket

More information

Erwin de Gier Creating a polyglot test framework with reactive technology

Erwin de Gier Creating a polyglot test framework with reactive technology Erwin de Gier Creating a polyglot test framework with reactive technology github.com/erwindeg @erwindeg edegier.nl SQL Client FTP Client SOAP UI XML Compare < /> SQL Client FTP Client SOAP UI XML Compare

More information

Design and Architecture. Derek Collison

Design and Architecture. Derek Collison Design and Architecture Derek Collison What is Cloud Foundry? 2 The Open Platform as a Service 3 4 What is PaaS? Or more specifically, apaas? 5 apaas Application Platform as a Service Applications and

More information

NoSQL: Redis and MongoDB A.A. 2016/17

NoSQL: Redis and MongoDB A.A. 2016/17 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica NoSQL: Redis and MongoDB A.A. 2016/17 Matteo Nardelli Laurea Magistrale in Ingegneria Informatica -

More information

Ten interesting features of Google s Angular Project

Ten interesting features of Google s Angular Project Ten interesting features of Google s Angular Project - 1 Ten interesting features of Google s Angular Project Copyright Clipcode Ltd 2018 All rights reserved Ten interesting features of Google s Angular

More information

Developing Microsoft Azure Solutions (70-532) Syllabus

Developing Microsoft Azure Solutions (70-532) Syllabus Developing Microsoft Azure Solutions (70-532) Syllabus Cloud Computing Introduction What is Cloud Computing Cloud Characteristics Cloud Computing Service Models Deployment Models in Cloud Computing Advantages

More information

Sog o e g t e i J a J v a a

Sog o e g t e i J a J v a a Graduation @ Sogeti Java Java EE, REST, AngularJS, Code generation, Websockets, NoSQL Erwin de Gier Sogeti Java CoE Amsterdam, September 2015 WhoAmI Erwin de Gier Software Architect Coach Young Professionals

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

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

ZD-VT1 User Guide. ZENDA GPS Tracker ZD-VT1 User Guide

ZD-VT1 User Guide. ZENDA GPS Tracker ZD-VT1 User Guide ZENDA GPS Tracker ZD-VT1 User Guide Change History File Name ZD-VT1 User Guide Created By Kyle Lv Product ZD-VT1 Creation Date 2016-01-08 Update Date 2016-02-02 Subproject User Guide Total Pages 16 Version

More information

Developing Microsoft Azure Solutions (70-532) Syllabus

Developing Microsoft Azure Solutions (70-532) Syllabus Developing Microsoft Azure Solutions (70-532) Syllabus Cloud Computing Introduction What is Cloud Computing Cloud Characteristics Cloud Computing Service Models Deployment Models in Cloud Computing Advantages

More information

Reactive Programming with Vert.x

Reactive Programming with Vert.x Reactive Programming with Vert.x Embrace asynchronous to build responsive systems Clement Escoffier Principal Software Engineer, Red Hat Reactive The new gold rush? Reactive system, reactive manifesto,

More information

GSM/GPRS/GPS TRACKER USER MANUAL

GSM/GPRS/GPS TRACKER USER MANUAL GSM/GPRS/GPS TRACKER USER MANUAL Thank you for purchasing the tracker. This manual shows how to operate the device smoothly and correctly. Make sure to read this manual carefully before using this product.

More information

ArcGIS for Server: Administration and Security. Amr Wahba

ArcGIS for Server: Administration and Security. Amr Wahba ArcGIS for Server: Administration and Security Amr Wahba awahba@esri.com Agenda ArcGIS Server architecture Distributing and scaling components Implementing security Monitoring server logs Automating server

More information

Vehicle GPS Tracker (GSM+GPS+SMS/GPRS) TS10 User Manual (Version 1.1)

Vehicle GPS Tracker (GSM+GPS+SMS/GPRS) TS10 User Manual (Version 1.1) Vehicle GPS Tracker (GSM+GPS+SMS/GPRS) TS10 User Manual (Version 1.1) IndexContents 1. Package Contents... 3 2. Features and Specifications...3 3. Knowledge before Usage... 3 3.1 Factory Default Setting...

More information

PubNub Training Webinar. Introduction to PubNub JavaScript SDK

PubNub Training Webinar. Introduction to PubNub JavaScript SDK PubNub Training Webinar Introduction to PubNub JavaScript SDK Course Agenda Participation What is PubNub? JavaScript API Resources Upcoming Events Q & A What is PubNub? Globally distributed Realtime Data

More information

STARCOUNTER. Technical Overview

STARCOUNTER. Technical Overview STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation

More information

Masters in Web Development

Masters in Web Development Masters in Web Development Accelerate your carrer by learning Web Development from Industry Experts. www.techgrad.in India s Leading Digital marketing Institute India s Leading Accademy 12,234+ Trainees

More information

Copyright 2013, Oracle and/or its affiliates. All rights reserved. CON-7777, JMS and WebSocket for Lightweight and Efficient Messaging

Copyright 2013, Oracle and/or its affiliates. All rights reserved. CON-7777, JMS and WebSocket for Lightweight and Efficient Messaging 1 JMS and WebSocket for Lightweight and Efficient Messaging Ed Bratt Senior Development Manager, Oracle Amy Kang Consulting Member Technical Staff, Oracle Safe Harbor Statement please note The following

More information

Transitioning from C# to Scala Using Apache Thrift. Twitter Finagle

Transitioning from C# to Scala Using Apache Thrift. Twitter Finagle Transitioning from C# to Scala Using Apache Thrift and Twitter Finagle Steven Skelton September 19, 2013 Empathica Empathica provides Customer Experience Management programs to more than 200 of the world's

More information

Internet Connectivity with

Internet Connectivity with Internet Connectivity with Introduction The purpose of this workshop is to help you g et acquainted with the basics of internet connectivity by leveraging ARM mbed tools. If you are not already familiar

More information

Is OSGi Modularity Always Worth It? Glyn Normington

Is OSGi Modularity Always Worth It? Glyn Normington Is OSGi Modularity Always Worth It? Glyn Normington Agenda Costs and benefits Case studies When is OSGi worth it? OSGi Benefits Encapsulated module internals Easier to understand, maintain, and extend

More information

Scalable Time Series in PCP. Lukas Berk

Scalable Time Series in PCP. Lukas Berk Scalable Time Series in PCP Lukas Berk Summary Problem Statement Proposed Solution Redis Basic Types Summary Current Work Future Work Items Problem Statement Scaling PCP s metrics querying to hundreds/thousands

More information

Open Source Library Developer & IT Pro

Open Source Library Developer & IT Pro Open Source Library Developer & IT Pro Databases LEV 5 00:00:00 NoSQL/MongoDB: Buildout to Going Live INT 5 02:15:11 NoSQL/MongoDB: Implementation of AngularJS INT 2 00:59:55 NoSQL: What is NoSQL INT 4

More information

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko Containers, Serverless and Functions in a nutshell Eugene Fedorenko About me Eugene Fedorenko Senior Architect Flexagon adfpractice-fedor.blogspot.com @fisbudo Agenda Containers Microservices Docker Kubernetes

More information

Full Stack Reactive Angular 2, RxJava/JS, Vert.x, Docker

Full Stack Reactive Angular 2, RxJava/JS, Vert.x, Docker Full Stack Reactive Angular 2, RxJava/JS, Vert.x, Docker 02.03.2017 About Myself DR. ALEXANDER FRIED Chief Technology Officer 2 OUR SOLUTIONS DIGITAL ASSET MANAGEMENT Organize & Share Any File, Any Format,

More information

Smashing Node.JS: JavaScript Everywhere

Smashing Node.JS: JavaScript Everywhere Smashing Node.JS: JavaScript Everywhere Rauch, Guillermo ISBN-13: 9781119962595 Table of Contents PART I: GETTING STARTED: SETUP AND CONCEPTS 5 Chapter 1: The Setup 7 Installing on Windows 8 Installing

More information

Developing Microsoft Azure Solutions (70-532) Syllabus

Developing Microsoft Azure Solutions (70-532) Syllabus Developing Microsoft Azure Solutions (70-532) Syllabus Cloud Computing Introduction What is Cloud Computing Cloud Characteristics Cloud Computing Service Models Deployment Models in Cloud Computing Advantages

More information

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Copyright 2014, Oracle and/or its affiliates. All rights reserved. 1 Oracle Mobile Suite an Overview Vincent Hu Principal Sales Consultant Oracle Mobile Suite Everything you need to mobile enable enterprise applications in one package One Platform, Any App, Any Data,

More information

Adventures with BaseX and web applications. Andy Feb 2013

Adventures with BaseX and web applications. Andy Feb 2013 Adventures with BaseX and web applications Andy Bunce @apb1704 Feb 2013 BaseX and the Web GraphXQ RESTXQ + Graphviz ( Using a PaaS ) CellarXQ Angular.js + OAuth BaseX with Node.js + events RESTXQ http://docs.basex.org/wiki/restxq

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

Serverless in the Java ecosystem

Serverless in the Java ecosystem Serverless in the Java ecosystem Pratik Patel Pratik PateL CTO Triplingo Java Champion JavaScript Troublemaker Python Hacker Founder, PERL recovery group WHAT IS SERVERLESS? ARCHITECTURE ECOSYSTEM SERVERLESS

More information

Front End Programming

Front End Programming Front End Programming Mendel Rosenblum Brief history of Web Applications Initially: static HTML files only. Common Gateway Interface (CGI) Certain URLs map to executable programs that generate web page

More information

Jason Brelloch and William Gimson

Jason Brelloch and William Gimson Jason Brelloch and William Gimson Overview 1. Introduction 2. History 3. Specifications a. Structure b. Communication c. Datatypes 4. Command Overview 5. Advanced Capabilities 6. Advantages 7. Disadvantages

More information

Modern Web Application Development. Sam Hogarth

Modern Web Application Development. Sam Hogarth Modern Web Application Development Sam Hogarth Some History Early Web Applications Server-side scripting only e.g. PHP/ASP Basic client-side scripts JavaScript/JScript/VBScript Major differences in browser

More information

ANGULAR 2.X,4.X + TYPESRCIPT by Sindhu

ANGULAR 2.X,4.X + TYPESRCIPT by Sindhu ANGULAR 2.X,4.X + TYPESRCIPT by Sindhu GETTING STARTED WITH TYPESCRIPT Installing TypeScript Compiling the code Building a simple demo. UNDERSTANDING CLASSES Building a class Adding properties Demo of

More information

Microservices with Red Hat. JBoss Fuse

Microservices with Red Hat. JBoss Fuse Microservices with Red Hat Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 JBoss Fuse and 3scale API Management Disclaimer The content set forth herein is Red Hat confidential information

More information

Lessons learned from real-world deployments of Java EE 7. Arun Gupta, Red

Lessons learned from real-world deployments of Java EE 7. Arun Gupta, Red Lessons learned from real-world deployments of Java EE 7 Arun Gupta, Red Hat @arungupta DEVELOPER PRODUCTIVITY MEETING ENTERPRISE DEMANDS Java EE 7! More annotated POJOs! Less boilerplate code! Cohesive

More information

Embedded type method, overriding, Error handling, Full-fledged web framework, 208 Function defer, 31 panic, 32 recover, 32 33

Embedded type method, overriding, Error handling, Full-fledged web framework, 208 Function defer, 31 panic, 32 recover, 32 33 Index A Alice package, 108, 110 App Engine applications configuration file, 258 259 goapp deploy command, 262 Google Developers Console project creation, 261 project details, 262 HTTP server, 257 258 task

More information

EMPLOYEE LOCATION TRACKING SERVICE

EMPLOYEE LOCATION TRACKING SERVICE WES T ST R EET AWE SOM E STR EET EMPLOYEE LOCATION TRACKING SERVICE Web & Android OVERVIEW GPS fleet tracking services have been on the market for some years now but with the explosion of smartphone usage,

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

Reactive Programming in Java. Copyright - Syncogni Consulting Pvt Ltd. All rights reserved.

Reactive Programming in Java. Copyright - Syncogni Consulting Pvt Ltd. All rights reserved. Reactive Programming in Java Copyright - Syncogni Consulting Pvt Ltd. All rights reserved. Prerequisites: Functional Programming as in Java 8 Streams of Java 8 Lambda expressions Method references Expectations

More information

BeBanjo Infrastructure and Security Overview

BeBanjo Infrastructure and Security Overview BeBanjo Infrastructure and Security Overview Can you trust Software-as-a-Service (SaaS) to run your business? Is your data safe in the cloud? At BeBanjo, we firmly believe that SaaS delivers great benefits

More information

The Reactive Landscape Clement Escoffier, Vert.x Core Developer, Red Hat

The Reactive Landscape   Clement Escoffier, Vert.x Core Developer, Red Hat The Reactive Landscape http://bit.ly/jfokus-reactive Clement Escoffier, Vert.x Core Developer, Red Hat Reactive all the things??? Elasticity Manifesto Actor System Asynchrony Programming Events 2 Message

More information

Server execution of JavaScript: What could possibly go wrong?

Server execution of JavaScript: What could possibly go wrong? Server execution of JavaScript: What could possibly go wrong? Brian Geffon Staff Software Engineer Hello! 2 Outline Introductions Ø Brief History The paradigm shift Problems! Where we are today Closing

More information

Heroku. Rimantas Kybartas

Heroku. Rimantas Kybartas Heroku Rimantas Kybartas Salesforce platform (PaaS) Facts about Heroku Has been in development since June 2007, 2010 acquired by Salesforce Open platform Languages and frameworks: Ruby and Rails Node.js

More information

HTTP, WebSocket, SPDY, HTTP/2.0

HTTP, WebSocket, SPDY, HTTP/2.0 HTTP, WebSocket, SPDY, HTTP/2.0 Evolution of Web Protocols Thomas Becker tbecker@intalio.com 1 Intalio Intalio Jetty Services, Training and Support for Jetty and CometD Intalio BPMS Business Process Management

More information

Using Node-RED to build the internet of things

Using Node-RED to build the internet of things IBM Bluemix Using Node-RED to build the internet of things Ever had one of those days Where the Application works! And then Can we also get some data from the this whatchamacallit? And send the logs off

More information

Yealink Device Management Platform Quick Start Guide. Applies to version or later

Yealink Device Management Platform Quick Start Guide. Applies to version or later Yealink Device Management Platform Quick Start Guide Applies to version 2.0.0.14 or later Overview Yealink device management platform allows administrators to efficiently realize centralized management

More information

CMPSC 311- Introduction to Systems Programming Module: Systems Programming

CMPSC 311- Introduction to Systems Programming Module: Systems Programming CMPSC 311- Introduction to Systems Programming Module: Systems Programming Professor Patrick McDaniel Fall 2013 Patrick McDaniel Professor of Computer Science and Engineering Co-head of Security Group

More information

Dr. Chuck Cartledge. 19 Nov. 2015

Dr. Chuck Cartledge. 19 Nov. 2015 CS-695 NoSQL Database Redis (part 1 of 2) Dr. Chuck Cartledge 19 Nov. 2015 1/21 Table of contents I 1 Miscellanea 2 DB comparisons 3 Assgn. #7 4 Historical origins 5 Data model 6 CRUDy stuff 7 Other operations

More information

Server-Side JavaScript auf der JVM. Peter Doschkinow Senior Java Architect

Server-Side JavaScript auf der JVM. Peter Doschkinow Senior Java Architect Server-Side JavaScript auf der JVM Peter Doschkinow Senior Java Architect The following is intended to outline our general product direction. It is intended for information purposes only, and may not be

More information

Continuous delivery of Java applications. Marek Kratky Principal Sales Consultant Oracle Cloud Platform. May, 2016

Continuous delivery of Java applications. Marek Kratky Principal Sales Consultant Oracle Cloud Platform. May, 2016 Continuous delivery of Java applications using Oracle Cloud Platform Services Marek Kratky Principal Sales Consultant Oracle Cloud Platform May, 2016 Safe Harbor Statement The following is intended to

More information

BPM + Mobile Building a hybrid mobile app for BPM IBM Corporation

BPM + Mobile Building a hybrid mobile app for BPM IBM Corporation BPM + Mobile Building a hybrid mobile app for BPM Daniel Fitzgerald Technical Sales Specialist Oxford Brookes University Graduate - BSc Mobile Computing daniel.fitzgerald@uk.ibm.com 2 Agenda Why mobile?

More information

Spoilt for Choice Which Integration Framework to choose? Mule ESB. Integration. Kai Wähner

Spoilt for Choice Which Integration Framework to choose? Mule ESB. Integration.  Kai Wähner Spoilt for Choice Which Integration Framework to choose? Integration vs. Mule ESB vs. Main Tasks Evaluation of Technologies and Products Requirements Engineering Enterprise Architecture Management Business

More information

Distributed Systems. 29. Distributed Caching Paul Krzyzanowski. Rutgers University. Fall 2014

Distributed Systems. 29. Distributed Caching Paul Krzyzanowski. Rutgers University. Fall 2014 Distributed Systems 29. Distributed Caching Paul Krzyzanowski Rutgers University Fall 2014 December 5, 2014 2013 Paul Krzyzanowski 1 Caching Purpose of a cache Temporary storage to increase data access

More information

Web Sockets and SignalR Building the Real Time Web

Web Sockets and SignalR Building the Real Time Web Web Sockets and SignalR Building the Real Time Web DDD South West Saturday 26th May 2012 Chris Alcock Agenda Introduction What is Real Time? Interactive? Web Sockets Who What When How? Examples (Client

More information

GSM/GPRS/GPS Tracker. G05 User Manual

GSM/GPRS/GPS Tracker. G05 User Manual 1 GSM/GPRS/GPS Tracker G05 User Manual 2 Contents Quick using... 3 Installation attentions... 3 1. Summary... 4 2. Main functions... 4 3.Specs.... 4 4. Installation instructions... 5 5. Wires connection...

More information

Ruby on Redis. Pascal Weemaels Koen Handekyn Oct 2013

Ruby on Redis. Pascal Weemaels Koen Handekyn Oct 2013 Ruby on Redis Pascal Weemaels Koen Handekyn Oct 2013 Target Create a Zip file of PDF s parse csv based on a CSV data file Linear version Making it scale with Redis... zip Step 1: linear Parse CSV std lib

More information

ORACLE APPLICATION EXPRESS, ORACLE REST DATA SERVICES, & WEBLOGIC 12C AUTHOR: BRAD GIBSON SENIOR SOLUTIONS ARCHITECT ADVIZEX

ORACLE APPLICATION EXPRESS, ORACLE REST DATA SERVICES, & WEBLOGIC 12C AUTHOR: BRAD GIBSON SENIOR SOLUTIONS ARCHITECT ADVIZEX ORACLE APPLICATION EXPRESS, ORACLE REST DATA SERVICES, & WEBLOGIC 12C AUTHOR: BRAD GIBSON SENIOR SOLUTIONS ARCHITECT ADVIZEX AdvizeX Technologies - A Rolta Company 6/12/2015 1 AGENDA Introductions Test

More information

CloudI Integration Framework. Chicago Erlang User Group May 27, 2015

CloudI Integration Framework. Chicago Erlang User Group May 27, 2015 CloudI Integration Framework Chicago Erlang User Group May 27, 2015 Speaker Bio Bruce Kissinger is an Architect with Impact Software LLC. Linkedin: https://www.linkedin.com/pub/bruce-kissinger/1/6b1/38

More information

MEITRACK T333 User Guide

MEITRACK T333 User Guide MEITRACK T333 User Guide Change History File Name MEITRACK T333 User Guide Created By Owen Cheng Project T333 Creation Date Update Date 2014-06-10 2017-04-06 Subproject User Guide Total Pages 16 Version

More information

Eduardo

Eduardo Eduardo Silva @edsiper eduardo@treasure-data.com About Me Eduardo Silva Github & Twitter Personal Blog @edsiper http://edsiper.linuxchile.cl Treasure Data Open Source Engineer Fluentd / Fluent Bit http://github.com/fluent

More information

Amritansh Sharma

Amritansh Sharma 17.12.2018 Amritansh Sharma - 000473628 1 CONTENTS 1 Introduction and Background 3 1.1 Relational Databases 3 1.2 NoSQL Databases 4 1.3 Key Value Stores 5 2 Redis 7 2.1 Redis vs Other Key-Value Stores

More information

Application Level Protocols

Application Level Protocols Application Level Protocols 2 Application Level Protocols Applications handle different kinds of content e.g.. e-mail, web pages, voice Different types of content require different kinds of protocols Application

More information

GPS TRACKING AND TELEMATICS

GPS TRACKING AND TELEMATICS GPS TRACKING AND TELEMATICS TracksALL is the latest fleet management products from the ProClean Products group of businesses. As we endeavour to fulfil the complete turnkey solutions for our customers

More information

Full Stack boot camp

Full Stack boot camp Name Full Stack boot camp Duration (Hours) JavaScript Programming 56 Git 8 Front End Development Basics 24 Typescript 8 React Basics 40 E2E Testing 8 Build & Setup 8 Advanced JavaScript 48 NodeJS 24 Building

More information

SQL Server on Linux and Containers

SQL Server on Linux and Containers http://aka.ms/bobwardms https://github.com/microsoft/sqllinuxlabs SQL Server on Linux and Containers A Brave New World Speaker Name Principal Architect Microsoft bobward@microsoft.com @bobwardms linkedin.com/in/bobwardms

More information

MEITRACK MVT340 User Guide

MEITRACK MVT340 User Guide MEITRACK MVT340 User Guide Change History File Name MEITRACK MVT340 User Guide Created By Kyle Lv Project MVT340 Creation Date Update Date 2010-08-24 2017-03-23 Subproject User Guide Total Pages 12 Version

More information

J2EE: Best Practices for Application Development and Achieving High-Volume Throughput. Michael S Pallos, MBA Session: 3567, 4:30 pm August 11, 2003

J2EE: Best Practices for Application Development and Achieving High-Volume Throughput. Michael S Pallos, MBA Session: 3567, 4:30 pm August 11, 2003 J2EE: Best Practices for Application Development and Achieving High-Volume Throughput Michael S Pallos, MBA Session: 3567, 4:30 pm August 11, 2003 Agenda Architecture Overview WebSphere Application Server

More information

A New Model for Image Distribution

A New Model for Image Distribution A New Model for Image Distribution Stephen Day Distribution, Tech Lead Docker, Inc. stephen@docker.com @stevvooe github.com/stevvooe Overview Why does this matter? History Docker Registry API V2 Implementation

More information

Monitoring Your Operations David Jacob

Monitoring Your Operations David Jacob Monitoring Your Operations David Jacob Jeff Shaner Real-time data Vessels Vehicles Sensors Weather People Challenge of Real-time data How do I visualize real-time data? How can I process and analyze it?

More information

GPS Tracker AT06 manual Ver

GPS Tracker AT06 manual Ver GPS Tracker AT06 manual Ver 1.0 20130924 Released 1 / 15 Content 1. Product Over View... 3 2. Features and Specification... 3 2.1 Features... 3 2.2 Specification... 4 2.3 GSM/GPS/Power Led identification...

More information

Backend Development. SWE 432, Fall Web Application Development

Backend Development. SWE 432, Fall Web Application Development Backend Development SWE 432, Fall 2018 Web Application Development Review: Async Programming Example 1 second each Go get a candy bar Go get a candy bar Go get a candy bar Go get a candy bar Go get a candy

More information

Oracle Mobile Application Framework

Oracle Mobile Application Framework Oracle Mobile Application Framework Oracle Mobile Application Framework (Oracle MAF) is a hybrid-mobile development framework that enables development teams to rapidly develop single-source applications

More information

Metadata state and history service for datasets

Metadata state and history service for datasets Faculty of Science and Technology Department of Computer Science Metadata state and history service for datasets Enable extracting, storing and access to metadata about a dataset over time. Roberth Hansen

More information

Reactive Programming in Java. Copyright - Syncogni Consulting Pvt Ltd. All rights reserved.

Reactive Programming in Java. Copyright - Syncogni Consulting Pvt Ltd. All rights reserved. Reactive Programming in Java Copyright - Syncogni Consulting Pvt Ltd. All rights reserved. Prerequisites: Core Java Lambda Expressions Method references Functional Programming Web - application development

More information

Jenkins: A complete solution. From Continuous Integration to Continuous Delivery For HSBC

Jenkins: A complete solution. From Continuous Integration to Continuous Delivery For HSBC Jenkins: A complete solution From Integration to Delivery For HSBC Rajesh Kumar DevOps Architect @RajeshKumarIN www.rajeshkumar.xyz Agenda Why Jenkins? Introduction and some facts about Jenkins Supported

More information

Using Messaging Protocols to Build Mobile and Web Applications. Jeff Mesnil

Using Messaging Protocols to Build Mobile and Web Applications. Jeff Mesnil Using Messaging Protocols to Build Mobile and Web Applications Jeff Mesnil Jeff Mesnil Software Engineer at Red Hat Core developer on WildFly Application Server, lead for its messaging component Developed

More information

Investigating Source Code Reusability for Android and Blackberry Applications

Investigating Source Code Reusability for Android and Blackberry Applications Investigating Source Code Reusability for Android and Blackberry Applications Group G8 Jenelle Chen Aaron Jin 1 Outline Recaps Challenges with mobile development Problem definition Approach Demo Detailed

More information

MODERN APPLICATION ARCHITECTURE DEMO. Wanja Pernath EMEA Partner Enablement Manager, Middleware & OpenShift

MODERN APPLICATION ARCHITECTURE DEMO. Wanja Pernath EMEA Partner Enablement Manager, Middleware & OpenShift MODERN APPLICATION ARCHITECTURE DEMO Wanja Pernath EMEA Partner Enablement Manager, Middleware & OpenShift COOLSTORE APPLICATION COOLSTORE APPLICATION Online shop for selling products Web-based polyglot

More information

Kaazing Gateway: An Open Source

Kaazing Gateway: An Open Source Kaazing Gateway: An Open Source HTML 5 Websocket Server Speaker Jonas Jacobi Co-Founder: Kaazing Co-Author: Pro JSF and Ajax, Apress Agenda Real-Time Web? Why Do I Care? Scalability and Performance Concerns

More information

Beyond 1001 Dedicated Data Service Instances

Beyond 1001 Dedicated Data Service Instances Beyond 1001 Dedicated Data Service Instances Introduction The Challenge Given: Application platform based on Cloud Foundry to serve thousands of apps Application Runtime Many platform users - who don

More information

Deccansoft Software Services

Deccansoft Software Services Azure Syllabus Cloud Computing What is Cloud Computing Cloud Characteristics Cloud Computing Service Models Deployment Models in Cloud Computing Advantages and Disadvantages of Cloud Computing Getting

More information

AngularJS Fundamentals

AngularJS Fundamentals AngularJS Fundamentals by Jeremy Zerr Blog: http://www.jeremyzerr.com LinkedIn: http://www.linkedin.com/in/jrzerr Twitter: http://www.twitter.com/jrzerr What is AngularJS Open Source Javascript MVC/MVVM

More information

OpenShift 3 Technical Architecture. Clayton Coleman, Dan McPherson Lead Engineers

OpenShift 3 Technical Architecture. Clayton Coleman, Dan McPherson Lead Engineers OpenShift 3 Technical Architecture Clayton Coleman, Dan McPherson Lead Engineers Principles The future of *aas Redefine the Application Networked components wired together Not just a web frontend anymore

More information

Buffering to Redis for Efficient Real-Time Processing. Percona Live, April 24, 2018

Buffering to Redis for Efficient Real-Time Processing. Percona Live, April 24, 2018 Buffering to Redis for Efficient Real-Time Processing Percona Live, April 24, 2018 Presenting Today Jon Hyman CTO & Co-Founder Braze (Formerly Appboy) @jon_hyman Mobile is at the vanguard of a new wave

More information

High performance and scalable architectures

High performance and scalable architectures High performance and scalable architectures A practical introduction to CQRS and Axon Framework Allard Buijze allard.buijze@trifork.nl Allard Buijze Software Architect at Trifork Organizers of GOTO & QCON

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