Chris Bailey Bailey. Emerging Web Application Architectures With Java and Node.js
|
|
- Violet Ryan
- 6 years ago
- Views:
Transcription
1 Chris Bailey IBM Emerging Web Application Architectures With Java and Node.js
2 STSM, IBM Runtime Development 2015 IBM Corporation 1
3 The Annual Death of Java Developer trend No. 2: Java s decline as a language will accelerate
4 The Annual Death of Java Developer trend No. 2: Java s decline as a language will accelerate Java is in decline look at the jobs. Yes, there are more of them... doing maintenance.
5 The Annual Death of Java Developer trend No. 2: Java s decline as a language will accelerate Java is in decline look at the jobs. Yes, there are more of them... doing maintenance. Now look at the Node.js or Spark or MongoDB job postings. Those are about doing new development
6 Developer Ecosystem
7 Developer Ecosystem #1 JavaScript #2 Java
8 Developer Ecosystem Module counts over time vs #1 JavaScript #2 Java
9 Developer Ecosystem Module counts over time vs #1 JavaScript #2 Java #1 JavaScript #2 Java
10 Usage in the browser Unless it is absolutely necessary to run Java in web browsers, disable it as described below, even after updating to 7u11. This will help mitigate other Java vulnerabilities that may be discovered in the future. This and previous Java vulnerabilities have been widely targeted by attackers, and new Java vulnerabilities are likely to be discovered. To defend against this and future Java vulnerabilities, consider disabling Java in web browsers
11 Usage in the browser Unless it is absolutely necessary to run Java in web browsers, disable it as described below, even after updating to 7u11. This will help mitigate other Java vulnerabilities that may be discovered in the future. This and previous Java vulnerabilities have been widely targeted by attackers, and new Java vulnerabilities are likely to be discovered. To defend against this and future Java vulnerabilities, consider disabling Java in web browsers
12 Why JavaScript and Node.js?
13 Rise of Rich Web Applications
14 Isomorphic Development an Server-Side Rendering Reuse of code components Write One Run Anywhere Sharing of data models Less maintenance Server-side rendering Pre-Initialise UI on the server Improves first paint time Enables search indexing
15 Typical Java Approach to Scalable I/O One thread (or process) per connection - Each thread waits on a response - Scalability determined by the number of threads Each thread: - consumes memory - is relatively idle Concurrency determined by number of depot workers
16 Node.js approach to Scalable I/O One thread multiplexes for multiple requests - No waiting for a response - Handles return from I/O when notified Scalability determined by: - CPU usage - Back end responsiveness Concurrency determined by how fast the food server can work
17 Rapid Development var cluster = require('cluster'); var cpus = require('os').cpus().length; var http = require('http'); if (cluster.ismaster) { for (var i = 0; i < cpus; i++) { cluster.fork(); } cluster.on('death', function(worker) { console.log("worker" + worker.pid + "died"); }); } else { http.createserver(function(request, response) { response.writehead(200, {"Content-Type": "text/plain"}); response.write("hello World!\n"); response.end(); }).listen(8080); }
18 Rapid Development var cluster = require('cluster'); var cpus = require('os').cpus().length; var http = require('http'); if (cluster.ismaster) { for (var i = 0; i < cpus; i++) { cluster.fork(); } cluster.on('death', function(worker) { console.log("worker" + worker.pid + "died"); }); } else { http.createserver(function(request, response) { response.writehead(200, {"Content-Type": "text/plain"}); response.write("hello World!\n"); response.end(); }).listen(8080); }
19 Event based programming var http = require('http'); var server = http.createserver(); server.listen(8080); server.on('request', function(request, response) { response.writehead(200, {"Content-Type": "text/plain"}); response.write("hello World!\n"); response.end(); }); server.on('connection', function(socket) {}); server.on('close', function() {}); server.on('connect', function(socket) {}); server.on('upgrade', function(request, socket, head) {}); server.on('clienterror', function(exception, socket) {});
20 Why Java?
21 Compute Performance Benchmarks Game Comple1on Times (lower is be+er) Regex-dna n-body reverse-comp spectral-norm mandelbrot fasta-redux binary-trees pidigits k-nucleobde fannkuch-redux fasta
22 Compute Performance Benchmarks Game Comple1on Times (lower is be+er) Regex-dna n-body reverse-comp spectral-norm mandelbrot fasta-redux binary-trees pidigits k-nucleobde fannkuch-redux fasta
23 Web Application Performance TechEmpower Performance (%age of best - higher is be0er) 0 JSON Serializa2on Single Query Data Updates More Computation More I/O
24 JSON Serialisation JSON serialization of a newly instantiated object Maps - Key of message - Value of Hello, World! Example response:
25 JSON Serialisation JSON serialization of a newly instantiated object Maps - Key of message - Value of Hello, World! Java JavaScript Example response:
26 Web Application Performance TechEmpower Performance (%age of best - higher is be0er) 0 JSON Serializa2on Single Query Data Updates More Computation More I/O
27 Web Application Performance TechEmpower Performance (%age of best - higher is be0er) 0 JSON Serializa2on Single Query Data Updates More Computation More I/O
28 Single Query Fetches single row from simple database table Row serialized as JSON Example response:
29 Single Query Fetches single row from simple database table Row serialized as JSON Java JavaScript Example response:
30 Web Application Performance TechEmpower Performance (%age of best - higher is be0er) 0 JSON Serializa2on Single Query Data Updates More Computation More I/O
31 Web Application Performance TechEmpower Performance (%age of best - higher is be0er) 0 JSON Serializa2on Single Query Data Updates More Computation More I/O
32 Data Updates Fetches single row from simple database table Row serialized as JSON Example response:
33 Data Updates Fetches single row from simple database table Row serialized as JSON JavaScript Java Example response:
34 Web Application Performance TechEmpower Performance (%age of best - higher is be0er) 0 JSON Serializa2on Single Query Data Updates More Computation More I/O
35 Web Application Performance TechEmpower Performance (%age of best - higher is be0er) 0 JSON Serializa2on Single Query Data Updates More Computation More I/O
36 Dynamic Typing in JavaScript: The + operator var add = function (a, b) { return (a + b); }
37 Dynamic Typing in JavaScript: The + operator var add = function (a, b) { return (a + b); } Check type of A
38 Dynamic Typing in JavaScript: The + operator var add = function (a, b) { return (a + b); } String Check type of A Number
39 Dynamic Typing in JavaScript: The + operator var add = function (a, b) { return (a + b); } String Check type of B String Check type of A Number Number
40 Dynamic Typing in JavaScript: The + operator var add = function (a, b) { return (a + b); } Concatenate String Check type of B String Check type of A Number Number
41 Dynamic Typing in JavaScript: The + operator var add = function (a, b) { return (a + b); } Concatenate String Check type of B String Check type of A Number Number Concatenate
42 Dynamic Typing in JavaScript: The + operator var add = function (a, b) { return (a + b); } Concatenate String Check type of B String Check type of A Number Check type of B String Number Number Concatenate
43 Dynamic Typing in JavaScript: The + operator var add = function (a, b) { return (a + b); } Concatenate String Check type of B String Check type of A Number Check type of B String Concatenate Number Number Concatenate
44 Dynamic Typing in JavaScript: The + operator var add = function (a, b) { return (a + b); } Concatenate String Check type of B String Check type of A Number Check type of B String Concatenate Number Number Concatenate Float Floating Point or Normal Normal
45 Dynamic Typing in JavaScript: The + operator var add = function (a, b) { return (a + b); } Concatenate String Check type of B String Check type of A Number Check type of B String Concatenate Number Number Concatenate Float Floating Point or Normal Normal Add Instruction
46 Dynamic Typing in JavaScript: The + operator var add = function (a, b) { return (a + b); } Concatenate String Check type of B String Check type of A Number Check type of B String Concatenate Number Number Concatenate Float Calculation Float Floating Point or Normal Normal Add Instruction
47 Strong Typing in Java: The + operator int add(int a, int b) { return (a + b); }
48 Strong Typing in Java: The + operator int add(int a, int b) { return (a + b); } Add Instruction
49 Strong Typing in Java: The + operator int add(int a, int b) { return (a + b); } Add Instruction Return Result
50 Type Safety private static void add (int a, int b){ System.out.println(a + b); } public static void main(string[] args){ int a = 5; int b = 3; var add = function (a, b) { console.log(a + b); } var a = 5; var b = 3; } add(a, b); add(a, b); > javac app.java > java app > 8 > node app.js > 8
51 Type Safety private static void add (int a, int b){ System.out.println(a + b); } public static void main(string[] args){ int a = 5; int b = 3; var add = function (a, b) { console.log(a + b); } var a = 5; var b = 3; } add(a, b); add(a, b); > javac app.java > java app > 8 > node app.js > 8
52 Type Safety private static void add (int a, int b){ System.out.println(a + b); } public static void main(string[] args){ int a = 5; int b = 3; var add = function (a, b) { console.log(a + b); } var a = 5; var b = 3; } add(a, b); add(a, b); > javac app.java > java app > 8 > node app.js > 8
53 Type Safety private static void add (int a, int b){ System.out.println(a + b); } public static void main(string[] args){ int a = 5; int b = 3; var add = function (a, b) { console.log(a + b); } var a = 5; var b = 3; } add(a, b); add(a, b); > javac app.java > java app > 8 > node app.js > 8
54 Type Safety private static void add (int a, int b){ System.out.println(a + b); } public static void main(string[] args){ int a = 5; int b = 3; var add = function (a, b) { console.log(a + b); } var a = 5; var b = 3; } add(a, b); add(a, b); > javac app.java > java app > 8 > node app.js > 8
55 Type Safety private static void add (int a, int b){ System.out.println(a + b); } public static void main(string[] args){ String a = new String( 5 ); int b = 3; var add = function (a, b) { console.log(a + b); } var a = 5 ; var b = 3; } add(a, b); add(a, b); > javac app.java > java app > 8 > node app.js > 8
56 Type Safety private static void add (int a, int b){ System.out.println(a + b); } public static void main(string[] args){ String a = new String( 5 ); int b = 3; var add = function (a, b) { console.log(a + b); } var a = 5 ; var b = 3; } add(a, b); add(a, b); > javac app.java > java app > 8 > node app.js > 8
57 Type Safety private static void add (int a, int b){ System.out.println(a + b); } public static void main(string[] args){ String a = new String( 5 ); int b = 3; var add = function (a, b) { console.log(a + b); } var a = 5 ; var b = 3; } add(a, b); add(a, b); > javac app.java Error: incompatible types: String cannot be converted to int add(a, b); ^ > node app.js > 8
58 Type Safety private static void add (int a, int b){ System.out.println(a + b); } public static void main(string[] args){ String a = new String( 5 ); int b = 3; var add = function (a, b) { console.log(a + b); } var a = 5 ; var b = 3; } add(a, b); add(a, b); > javac app.java Error: incompatible types: String cannot be converted to int add(a, b); ^ > node app.js > 53
59 JavaScript Calculations > > '5' + 3 '53' > '5' 3 2 // Weak typing, implicit conversion > '5' '4' 1 // String minus String = Integer?? > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' > 'Hello' + + 'World' 'HelloNaN' // Ok, that's expected //...but that isn't
60 JavaScript Calculations > > '5' + 3 '53' > '5' 3 2 // Weak typing, implicit conversion > '5' '4' 1 // String minus String = Integer?? > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' > 'Hello' + + 'World' 'HelloNaN' // Ok, that's expected //...but that isn't
61 JavaScript Calculations > > '5' + 3 '53' > '5' 3 2 // String is converted to a number for subtraction > '5' '4' 1 // String minus String = Integer?? > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' > 'Hello' + + 'World' 'HelloNaN' // Ok, that's expected //...but that isn't
62 JavaScript Calculations > > '5' + 3 '53' > '5' 3 2 // String is converted to a number for subtraction > '5' '4' 1 // String minus String = Integer?? > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' > 'Hello' + + 'World' 'HelloNaN' // Ok, that's expected //...but that isn't
63 JavaScript Calculations > > '5' + 3 '53' > '5' 3 2 // String is converted to a number for subtraction > '5' '4' 1 // Both Strings converted to number for subtraction > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' > 'Hello' + + 'World' 'HelloNaN' // Ok, that's expected //...but that isn't
64 JavaScript Calculations > > '5' + 3 '53' > '5' 3 2 // String is converted to a number for subtraction > '5' '4' 1 // Both Strings converted to number for subtraction > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' > 'Hello' + + 'World' 'HelloNaN' // Ok, that's expected //...but that isn't
65 JavaScript Calculations > > '5' + 3 '53' > '5' 3 2 // String is converted to a number for subtraction > '5' '4' 1 // Both Strings converted to number for subtraction > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' > 'Hello' + + 'World' 'HelloNaN' // Ok, that's expected //...but that isn't
66 JavaScript Calculations > > '5' + 3 '53' > '5' 3 2 // String is converted to a number for subtraction > '5' '4' 1 // Both Strings converted to number for subtraction > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' > 'Hello' + + 'World' 'HelloNaN' // Ok, that's expected //...but that isn't
67 JavaScript Calculations > > '5' + 3 '53' > '5' 3 2 // String is converted to a number for subtraction > '5' '4' 1 // Both Strings converted to number for subtraction > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' > 'Hello' + + 'World' 'HelloNaN' // Ok, that's expected //...but that isn't
68 JavaScript Calculations > > '5' + 3 '53' > '5' 3 2 // String is converted to a number for subtraction > '5' '4' 1 // Both Strings converted to number for subtraction > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' > 'Hello' + + 'World' 'HelloNaN' // Ok, that's expected //...but that isn't
69 JavaScript Calculations > > '5' + 3 '53' > '5' 3 2 // String is converted to a number for subtraction > '5' '4' 1 // Both Strings converted to number for subtraction > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' > 'Hello' + + 'World' 'HelloNaN' // Ok, that's expected // Multiple plus must cause String to number conversion
70 JavaScript Calculations > '5' + - '5' '5-2' // I can just about see that works > var x = 3 undefined > '5' x + x 5 // Ok, that makes sense > var x = 3 undefined > '5' + x - x 50 // What???
71 JavaScript Calculations > '5' + - '5' '5-2' // I can just about see that works > var x = 3 > '5' x + x 5 // Ok, that makes sense > var x = 3 undefined > '5' + x - x 50 // What???
72 JavaScript Calculations > '5' + - '5' '5-2' // I can just about see that works > var x = 3 > '5' x + x 5 // Ok, that makes sense > var x = 3 > '5' + x - x 50 // What???
73 Language Selection
74 Choosing the Right Language for the Service
75 Choosing the Right Language for the Service
76 Choosing the Right Language for the Service Node.js Performance Relative to Java + 1/3x 0 CPU Bound - 4x Application Performance (higher is better) Node.js I/O Bound * based on TechEmpower benchmark results
77 Choosing the Right Language for the Service Node.js Performance Relative to Java + 1/3x 0 CPU Bound - 4x Application Performance (higher is better) Node.js I/O Bound * based on TechEmpower benchmark results Error: incompatible types ClassCastException
78 Microservices Paradigm Do one thing, and do it well
79 Choosing the Right Language for the Service Higher performance for I/O Easier async programming Fullstack/isomorphic development
80 Choosing the Right Language for the Service Higher processing performance Type safety for calculations Rich processing frameworks
81 Choosing the Right Language for the Service + Highly performant, scalable rich web applications Highly performant, reliable transaction processing Self-contained micro-service components
82 Emerging Architectures
83 Rich Web Applications
84 Rich Web Applications
85 Rich Web Applications HTTP
86 Rich Web Applications HTTP Load Balancer
87 Rich Web Applications HTTP Load Balancer
88 Rich Web Applications Operations and Management Admin Analytics HTTP Load Balancer
89 Rich Web Applications Operations and Management Admin Analytics HTTP Load Balancer
90 Rich Web Applications Operations and Management Admin Analytics HTTP Load Balancer
91 Rich Web Applications Operations and Management Admin Analytics HTTP Load Balancer Load Balancer
92 Forrester 4-Tier Architecture
93 MicroServices and API Economy Operations and Management Admin Analytics HTTP Load Balancer Load Balancer
94 MicroServices and API Economy Operations and Management Admin Analytics HTTP Load Balancer Load Balancer
95 MicroServices and API Economy Operations and Management Admin Analytics HTTP Load Balancer Load Balancer
96 MicroServices and API Economy Operations and Management Admin Analytics HTTP Load Balancer Load Balancer
97 MicroServices and API Economy Operations and Management Admin Analytics HTTP Load Balancer
98 MicroServices and API Economy Operations and Management Admin Analytics HTTP Load Balancer
99 MicroServices and API Economy Operations and Management Admin Analytics HTTP Load Balancer
100 MicroServices and API Economy Operations and Management Admin Analytics HTTP Load Balancer
101 MicroServices and API Economy Operations and Management Admin Analytics HTTP Load Balancer
102 MicroServices and API Economy Operations and Management Admin Analytics HTTP Load Balancer Client Delivery Aggregation
103 Questions?
104 Thank You
Java with Node.js Powering the Next Generation of Web Applications
Java with Node.js Powering the Next Generation of Web Applications Oracle Code One, Oct 23rd 2018 Chris Bailey Chief Architect, Cloud Native Runtimes @IBM baileyc@uk.ibm.com @Chris Bailey CloudNativeJS.io
More informationJava vs JavaScript. For Enterprise Web Applications. Chris Bailey IBM Runtime Technologies IBM Corporation
Java vs JavaScript For Enterprise Web Applications Chris Bailey IBM Runtime Technologies 1 What Languages do you use? 120 Percentage of Audience 100 80 60 40 20 0 Java 2 JavaScript Both What Runtimes do
More informationEND-TO-END JAVASCRIPT WEB APPS
END-TO-END JAVASCRIPT WEB APPS HTML5, NODE.JS AND MONGODB CADEC 2013 by Peter Larsson JAVASCRIPT IS NOT EVIL TECH. INDEX, JAN 2013 Dice Job Posts Google 20,000 2,400,000,000 15,000 1,800,000,000 10,000
More informationthis 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 informationMicroservices with Node.js
Microservices with Node.js Objectives In this module we will discuss: Core Node.js concepts Node Package Manager (NPM) The Express Node.js package The MEAN stack 1.1 What is Node.js? Node.js [ https://nodejs.org/
More informationPrzyspiesz tworzenie aplikacji przy pomocy Openshift Container Platform. Jarosław Stakuń Senior Solution Architect/Red Hat CEE
Przyspiesz tworzenie aplikacji przy pomocy Openshift Container Platform Jarosław Stakuń Senior Solution Architect/Red Hat CEE jstakun@redhat.com Monetize innovation http://www.forbes.com/innovative-companies/list/
More informationRED HAT'S CONTAINER STRATEGY. Lars Herrmann General Manager, RHEL, RHEV and Containers June 24, 2015
RED HAT'S CONTAINER STRATEGY Lars Herrmann General Manager, RHEL, RHEV and Containers June 24, 2015 1 DEVELOPMENT VS I.T. OPERATIONS DEVELOPER IT OPERATIONS 2 DEVELOPERS WANT TO GO FAST DEVELOPER 3 HOW
More informationA DEVOPS STATE OF MIND WITH DOCKER AND KUBERNETES. Chris Van Tuin Chief Technologist, West
A DEVOPS STATE OF MIND WITH DOCKER AND KUBERNETES Chris Van Tuin Chief Technologist, West cvantuin@redhat.com Open Source V In short, software is eating the world. - Marc Andreessen, Wall Street Journal,
More informationCHAPTER 1 Introduction to Computers and Java
CHAPTER 1 Introduction to Computers and Java Copyright 2016 Pearson Education, Inc., Hoboken NJ Chapter Topics Chapter 1 discusses the following main topics: Why Program? Computer Systems: Hardware and
More informationMongoDB Web Architecture
MongoDB Web Architecture MongoDB MongoDB is an open-source, NoSQL database that uses a JSON-like (BSON) document-oriented model. Data is stored in collections (rather than tables). - Uses dynamic schemas
More informationLecture 18. WebSocket
Lecture 18. WebSocket 1. What is WebSocket? 2. Why WebSocket? 3. WebSocket protocols 4. WebSocket client side 5. WebSocket on server side 1. Case study, WebSocket on nose.js 2. Case study, WebSocket on
More informationChapter 1: Introduction to Computers and Java
Chapter 1: Introduction to Computers and Java Starting Out with Java: From Control Structures through Objects Fifth Edition by Tony Gaddis Chapter Topics Chapter 1 discusses the following main topics:
More information8/23/2014. Chapter Topics. Introduction. Java History. Why Program? Java Applications and Applets. Chapter 1: Introduction to Computers and Java
Chapter 1: Introduction to Computers and Java Starting Out with Java: From Control Structures through Objects Fifth Edition by Tony Gaddis Chapter Topics Chapter 1 discusses the following main topics:
More informationWeb application Architecture
1 / 37 AJAX Prof. Cesare Pautasso http://www.pautasso.info cesare.pautasso@usi.ch @pautasso Web application Architecture 5 / 37 Client Server Backend Response Database File System 2013 Cesare Pautasso
More informationCS 11 java track: lecture 1
CS 11 java track: lecture 1 Administrivia need a CS cluster account http://www.cs.caltech.edu/ cgi-bin/sysadmin/account_request.cgi need to know UNIX www.its.caltech.edu/its/facilities/labsclusters/ unix/unixtutorial.shtml
More informationWhat 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 informationINF 212 ANALYSIS OF PROG. LANGS CONCURRENCY. Instructors: Crista Lopes Copyright Instructors.
INF 212 ANALYSIS OF PROG. LANGS CONCURRENCY Instructors: Crista Lopes Copyright Instructors. Basics Concurrent Programming More than one thing at a time Examples: Network server handling hundreds of clients
More informationSantiago Documentation
Santiago Documentation Release 1.2.0 Top Free Games November 07, 2016 Contents 1 Overview 3 1.1 Getting started.............................................. 3 1.2 Features..................................................
More informationModule 3 Web Component
Module 3 Component Model Objectives Describe the role of web components in a Java EE application Define the HTTP request-response model Compare Java servlets and JSP components Describe the basic session
More informationPerformance Case Study
Performance Case Study @Fabian_Frank Yahoo! Search, Engineer Youthmedia.eu, Volunteer A Dynamic Website self-contained App self-contained App self-contained App node v0.4.x multi-core
More informationFront 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 information1. Download the JDK 6, from
1. Install the JDK 1. Download the JDK 6, from http://java.sun.com/javase/downloads/widget/jdk6.jsp. 2. Once the file is completed downloaded, execute it and accept the license agreement. 3. Select the
More informationLecture 1: Overview of Java
Lecture 1: Overview of Java What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++ Designed for easy Web/Internet applications Widespread
More informationMaking 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 informationNODE.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 informationIBM s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM s sole discretion.
Please note Copyright 2018 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission from IBM IBM s statements
More informationWho am I? Weibo:
Nodejs Javascript Who am I? Twitter: @fengmk2 Weibo: @Python, @FaWave EDP @ 1. Hello world Nodejs Hello world 2. String = Buffer => Stream String Buffer, Buffer Stream Javascript Socket HTTP 3. Javascript
More informationNode.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 informationIntroduction to Java https://tinyurl.com/y7bvpa9z
Introduction to Java https://tinyurl.com/y7bvpa9z Eric Newhall - Laurence Meyers Team 2849 Alumni Java Object-Oriented Compiled Garbage-Collected WORA - Write Once, Run Anywhere IDE Integrated Development
More informationJAVA OPERATORS GENERAL
JAVA OPERATORS GENERAL Java provides a rich set of operators to manipulate variables. We can divide all the Java operators into the following groups: Arithmetic Operators Relational Operators Bitwise Operators
More informationModule 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 informationIntroduction to Java
Introduction to Java Module 1: Getting started, Java Basics 22/01/2010 Prepared by Chris Panayiotou for EPL 233 1 Lab Objectives o Objective: Learn how to write, compile and execute HelloWorld.java Learn
More informationINF5750. Introduction to JavaScript and Node.js
INF5750 Introduction to JavaScript and Node.js Outline Introduction to JavaScript Language basics Introduction to Node.js Tips and tools for working with JS and Node.js What is JavaScript? Built as scripting
More informationMaking 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 informationIsomorphic Kotlin. Troy
Isomorphic Kotlin Troy Miles @therockncoder Troy Miles @therockncoder Troy Miles, aka the Rockncoder, began writing computer games in assembly language for early computers like the Apple II, Commodore
More informationA Node.js tutorial by Manuel Kiessling
1 of 23 9/17/2013 3:09 PM A Node.js tutorial by Manuel Kiessling The aim of this document is to get you started with developing applications with Node.js, teaching you everything you need to know about
More informationTableau Server - 101
Tableau Server - 101 Prepared By: Ojoswi Basu Certified Tableau Consultant LinkedIn: https://ca.linkedin.com/in/ojoswibasu Introduction Tableau Software was founded on the idea that data analysis and subsequent
More informationLecture 2. COMP1406/1006 (the Java course) Fall M. Jason Hinek Carleton University
Lecture 2 COMP1406/1006 (the Java course) Fall 2013 M. Jason Hinek Carleton University today s agenda a quick look back (last Thursday) assignment 0 is posted and is due this Friday at 2pm Java compiling
More informationIntroduction to Java. Nihar Ranjan Roy. https://sites.google.com/site/niharranjanroy/
Introduction to Java https://sites.google.com/site/niharranjanroy/ 1 The Java Programming Language According to sun Microsystems java is a 1. Simple 2. Object Oriented 3. Distributed 4. Multithreaded 5.
More informationCOMP519 Practical 5 JavaScript (1)
COMP519 Practical 5 JavaScript (1) Introduction This worksheet contains exercises that are intended to familiarise you with JavaScript Programming. While you work through the tasks below compare your results
More informationProgram Fundamentals
Program Fundamentals /* HelloWorld.java * The classic Hello, world! program */ class HelloWorld { public static void main (String[ ] args) { System.out.println( Hello, world! ); } } /* HelloWorld.java
More informationLecture 1 - Introduction (Class Notes)
Lecture 1 - Introduction (Class Notes) Outline: How does a computer work? Very brief! What is programming? The evolution of programming languages Generations of programming languages Compiled vs. Interpreted
More informationIntroduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview
Introduction to Visual Basic and Visual C++ Introduction to Java Lesson 13 Overview I154-1-A A @ Peter Lo 2010 1 I154-1-A A @ Peter Lo 2010 2 Overview JDK Editions Before you can write and run the simple
More informationLearning objectives. The Java Environment. Java timeline (cont d) Java timeline. Understand the basic features of Java
Learning objectives The Java Environment Understand the basic features of Java What are portability and robustness? Understand the concepts of bytecode and interpreter What is the JVM? Learn few coding
More informationComet 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 informationOutline. 1. Load Testing 2. Frontend Tips 3. Server-side Tips
Performance Outline 1. Load Testing 2. Frontend Tips 3. Server-side Tips Load Testing Load testing is the process of putting demand on a system or device and measuring its response. Load testing is performed
More informationGoals. Java - An Introduction. Java is Compiled and Interpreted. Architecture Neutral & Portable. Compiled Languages. Introduction to Java
Goals Understand the basics of Java. Introduction to Java Write simple Java Programs. 1 2 Java - An Introduction Java is Compiled and Interpreted Java - The programming language from Sun Microsystems Programmer
More information1.1 Your First Program
1.1 Your First Program Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 2002 2010 5/20/2013 9:37:22 AM Why Programming? Why programming? Need
More informationThe Java programming environment. The Java programming environment. Java: A tiny intro. Java features
The Java programming environment Cleaned up version of C++: no header files, macros, pointers and references, unions, structures, operator overloading, virtual base classes, templates, etc. Object-orientation:
More informationIBM API Connect: Introduction to APIs, Microservices and IBM API Connect
IBM API Connect: Introduction to APIs, Microservices and IBM API Connect Steve Lokam, Sr. Principal at OpenLogix @openlogix @stevelokam slokam@open-logix.com (248) 869-0083 What do these companies have
More informationThe API Economy in a Mobile World What are we talking about?
IBM BusinessConnect A New Era of Thinking The API Economy in a Mobile World What are we talking about? Frank van der Wal Human Being Digital Transformation Specialist thewall@nl.ibm.com @thewalls 1 2016
More informationUr/Web: A Simple Model for Programming the Web. Adam Chlipala MIT CSAIL POPL 2015 January 15, 2015
Ur/Web: A Simple Model for Programming the Web Adam Chlipala MIT CSAIL POPL 2015 January 15, 2015 Ur / Web Ur A new general-purpose typed functional language λ Web Tools for implementing modern three-tier
More informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationIBM Planning Analytics Workspace Local Distributed Soufiane Azizi. IBM Planning Analytics
IBM Planning Analytics Workspace Local Distributed Soufiane Azizi IBM Planning Analytics IBM Canada - Cognos Ottawa Lab. IBM Planning Analytics Agenda 1. Demo PAW High Availability on a Prebuilt Swarm
More informationIntroduction to RPC, Apache Thrift Workshop. Tomasz Powchowicz
Introduction to RPC, Apache Thrift Workshop Tomasz Powchowicz It is all about effective communication page 2 Synchronous, asynchronous execution Executor Executor A Executor B Executor A Executor B 1 1
More informationSpace Exploration EECS /25
1/25 Space Exploration EECS 4315 www.eecs.yorku.ca/course/4315/ Nondeterminism 2/25 Nondeterministic code is code that, even for the same input, can exhibit different behaviours on different runs, as opposed
More informationThe Future of the Realtime Web BETTER APIS WITH GRAPHQL. Josh
The Future of the Realtime Web BETTER APIS WITH GRAPHQL Josh Price @joshprice STEPPING STONES TO FP Language (Elixir) Strongly-Typed APIs (GraphQL) GRAPHQL WAS HERE? http://whiteafrican.com/2008/05/12/crossing-the-mapping-chasm/
More informationAPI Connect. Arnauld Desprets - Technical Sale
API Connect Arnauld Desprets - arnauld_desprets@fr.ibm.com Technical Sale 0 Agenda 1. API Understanding the space 2. API Connect 3. Sample implementations 4. Démonstration 1 sales introduction growth decline
More informationIl Mainframe e il paradigma dell enterprise mobility. Carlo Ferrarini zsystems Hybrid Cloud
Il Mainframe e il paradigma dell enterprise mobility Carlo Ferrarini carlo_ferrarini@it.ibm.com zsystems Hybrid Cloud Agenda Exposing enterprise assets in the API Economy Era Deliver natural APIs from
More informationCSC 1214: Object-Oriented Programming
CSC 1214: Object-Oriented Programming J. Kizito Makerere University e-mail: jkizito@cis.mak.ac.ug www: http://serval.ug/~jona materials: http://serval.ug/~jona/materials/csc1214 e-learning environment:
More informationAtelier Java - J1. Marwan Burelle. EPITA Première Année Cycle Ingénieur.
marwan.burelle@lse.epita.fr http://wiki-prog.kh405.net Plan 1 2 Plan 3 4 Plan 1 2 3 4 A Bit of History JAVA was created in 1991 by James Gosling of SUN. The first public implementation (v1.0) in 1995.
More informationA Generic Microservice Architecture for Environmental Data Management
A Generic Microservice Architecture for Environmental Data Management Clemens Düpmeier, Eric Braun, Thorsten Schlachter, Karl-Uwe Stucky, Wolfgang Suess KIT The Research University in the Helmholtz Association
More informationIntroduction to Programming (Java) 2/12
Introduction to Programming (Java) 2/12 Michal Krátký Department of Computer Science Technical University of Ostrava Introduction to Programming (Java) 2008/2009 c 2006 2008 Michal Krátký Introduction
More informationUpdating web content in real time using Node.js
Quest Journals Journal of Software Engineering and Simulation Volume1 ~ Issue 3 (2013) pp: 01-06 ISSN(Online) :2321-3795 ISSN (Print):2321-3809 www.questjournals.org Research Paper Updating web content
More informationAlgorithms and Programming I. Lecture#12 Spring 2015
Algorithms and Programming I Lecture#12 Spring 2015 Think Python How to Think Like a Computer Scientist By :Allen Downey Installing Python Follow the instructions on installing Python and IDLE on your
More informationCSC Web Programming. Introduction to JavaScript
CSC 242 - Web Programming Introduction to JavaScript JavaScript JavaScript is a client-side scripting language the code is executed by the web browser JavaScript is an embedded language it relies on its
More informationEsri and MarkLogic: Location Analytics, Multi-Model Data
Esri and MarkLogic: Location Analytics, Multi-Model Data Ben Conklin, Industry Manager, Defense, Intel and National Security, Esri Anthony Roach, Product Manager, MarkLogic James Kerr, Technical Director,
More informationReview Chapters 1 to 4. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013
Review Chapters 1 to 4 Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 Introduction to Java Chapters 1 and 2 The Java Language Section 1.1 Data & Expressions Sections 2.1 2.5 Instructor:
More informationINFO Object-Oriented Programming
INFO0062 - Object-Oriented Programming Exercise session #1 - Basic Java programs Jean-François Grailet University of Liège Faculty of Applied Sciences Academic Year 2017-2018 Creating a simple Java program
More informationComputer Components. Software{ User Programs. Operating System. Hardware
Computer Components Software{ User Programs Operating System Hardware What are Programs? Programs provide instructions for computers Similar to giving directions to a person who is trying to get from point
More informationReactive 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 informationWindows 8. Rainer Stropek. System Architecture. System Architecture re of Windows Store Apps. Saves the day. software architects gmbh
System Architecture re of Windows Store Apps Rainer Stropek software architects gmbh Windows 8 System Architecture Mail Web Twitter rainer@timecockpit.comcom http://www.timecockpit.com @rstropek Saves
More informationPreview from Notesale.co.uk Page 3 of 36
all people who know the language. Similarly, programming languages also have a vocabulary, which is referred to as the set of keywords of that language, and a grammar, which is referred to as the syntax.
More informationObject-oriented programming. and data-structures CS/ENGRD 2110 SUMMER 2018
Object-oriented programming 1 and data-structures CS/ENGRD 2110 SUMMER 2018 Lecture 1: Types and Control Flow http://courses.cs.cornell.edu/cs2110/2018su Lecture 1 Outline 2 Languages Overview Imperative
More informationJavaScript: Introduction, Types
JavaScript: Introduction, Types Computer Science and Engineering College of Engineering The Ohio State University Lecture 19 History Developed by Netscape "LiveScript", then renamed "JavaScript" Nothing
More informationThis exam is open book. Each question is worth 3 points.
This exam is open book. Each question is worth 3 points. Page 1 / 15 Page 2 / 15 Page 3 / 12 Page 4 / 18 Page 5 / 15 Page 6 / 9 Page 7 / 12 Page 8 / 6 Total / 100 (maximum is 102) 1. Are you in CS101 or
More informationNODE.JS MOCK TEST NODE.JS MOCK TEST I
http://www.tutorialspoint.com NODE.JS MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Node.js Framework. You can download these sample mock tests at
More informationOutline. Overview. Control statements. Classes and methods. history and advantage how to: program, compile and execute 8 data types 3 types of errors
Outline Overview history and advantage how to: program, compile and execute 8 data types 3 types of errors Control statements Selection and repetition statements Classes and methods methods... 2 Oak A
More informationAndroid Online Training
Android Online Training IQ training facility offers Android Online Training. Our Android trainers come with vast work experience and teaching skills. Our Android training online is regarded as the one
More informationMODIFYING TRADITIONAL APPLICATIONS FOR MORE COST EFFECTIVE DEPLOYMENT
MODIFYING TRADITIONAL APPLICATIONS FOR MORE COST EFFECTIVE DEPLOYMENT Eric H. Nielsen Ph.D. VP SaaS Platform Architecture CA Technologies e.h.nielsen @ ieee.org IEEE Software Technology Conference STC
More informationAWS 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 informationJavaScript I Language Basics
JavaScript I Language Basics Chesapeake Node.js User Group (CNUG) https://www.meetup.com/chesapeake-region-nodejs-developers-group START BUILDING: CALLFORCODE.ORG Agenda Introduction to JavaScript Language
More informationCOMP 110/L Lecture 13. Kyle Dewey
COMP 110/L Lecture 13 Kyle Dewey Outline char, charat() Command-line arguments and arrays Array access Array length Array update Integer.parseInt char, charat() char Represents a single character char
More informationPutting A Spark in Web Apps
Putting A Spark in Web Apps Apache Big Data, Seville ES, 2016 David Fallside Intro Web app development has moved from Java etc to Node.js and JavaScript JS environment relatively simple and very rich,
More informationNode.js. Node.js Overview. CS144: Web Applications
Node.js Node.js Overview JavaScript runtime environment based on Chrome V8 JavaScript engine Allows JavaScript to run on any computer JavaScript everywhere! On browsers and servers! Intended to run directly
More informationCS 231 Data Structures and Algorithms, Fall 2016
CS 231 Data Structures and Algorithms, Fall 2016 Dr. Bruce A. Maxwell Department of Computer Science Colby College Course Description Focuses on the common structures used to store data and the standard
More informationFuture 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 information1.1 Your First Program
1.1 Your First Program Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 2002 2010 1/29/11 6:37 AM! Why Programming? Why programming? Need to
More informationWeb Architecture and Development
Web Architecture and Development SWEN-261 Introduction to Software Engineering Department of Software Engineering Rochester Institute of Technology HTTP is the protocol of the world-wide-web. The Hypertext
More informationBasic Concepts. Computer Science. Programming history Algorithms Pseudo code. Computer - Science Andrew Case 2
Basic Concepts Computer Science Computer - Science - Programming history Algorithms Pseudo code 2013 Andrew Case 2 Basic Concepts Computer Science Computer a machine for performing calculations Science
More informationCONCURRENT DISTRIBUTED TASK SYSTEM IN PYTHON. Created by Moritz Wundke
CONCURRENT DISTRIBUTED TASK SYSTEM IN PYTHON Created by Moritz Wundke INTRODUCTION Concurrent aims to be a different type of task distribution system compared to what MPI like system do. It adds a simple
More informationGetting started with Java
Getting started with Java by Vlad Costel Ungureanu for Learn Stuff Programming Languages A programming language is a formal constructed language designed to communicate instructions to a machine, particularly
More informationINTRODUCTION TO SOFTWARE SYSTEMS (COMP1110/COMP1140/COMP1510/COMP6710)
Important notice: This document is a sample exam. The final exam will differ from this exam in numerous ways. The purpose of this sample exam is to provide students with access to an exam written in a
More informationAn overview of Java, Data types and variables
An overview of Java, Data types and variables Lecture 2 from (UNIT IV) Prepared by Mrs. K.M. Sanghavi 1 2 Hello World // HelloWorld.java: Hello World program import java.lang.*; class HelloWorld { public
More informationC and C++ I. Spring 2014 Carola Wenk
C and C++ I Spring 2014 Carola Wenk Different Languages Python sum = 0 i = 1 while (i
More informationLECTURE 7. Web-Technology
LECTURE 7 Web-Technology Client-Server Architecture 2 Models of computing Standalone computing Mainframe computing o Terminal access, teleprocessing, time sharing File server o Central storage, distributed
More informationLecture 2 Callbacks, Events, and Asynchronous Programming
Lecture 2 Callbacks, Events, and Asynchronous Programming 1 / 13 What is asynchronous programming? So far, most (if not all) of the programs you've written are synchronous programs. You write code, and
More informationPROCE55 Mobile: Web API App. Web API. https://www.rijksmuseum.nl/api/...
PROCE55 Mobile: Web API App PROCE55 Mobile with Test Web API App Web API App Example This example shows how to access a typical Web API using your mobile phone via Internet. The returned data is in JSON
More informationOutline. Java Models for variables Types and type checking, type safety Interpretation vs. compilation. Reasoning about code. CSCI 2600 Spring
Java Outline Java Models for variables Types and type checking, type safety Interpretation vs. compilation Reasoning about code CSCI 2600 Spring 2017 2 Java Java is a successor to a number of languages,
More informationOverview. Prerequisites. Course Outline. Course Outline :: Apache Spark Development::
Title Duration : Apache Spark Development : 4 days Overview Spark is a fast and general cluster computing system for Big Data. It provides high-level APIs in Scala, Java, Python, and R, and an optimized
More information