Chris Bailey Bailey. Emerging Web Application Architectures With Java and Node.js

Size: px
Start display at page:

Download "Chris Bailey Bailey. Emerging Web Application Architectures With Java and Node.js"

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 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 information

Java 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 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 information

END-TO-END JAVASCRIPT WEB APPS

END-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 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

Microservices with Node.js

Microservices 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 information

Przyspiesz 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 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 information

RED 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 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 information

A 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 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 information

CHAPTER 1 Introduction to Computers and Java

CHAPTER 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 information

MongoDB Web Architecture

MongoDB 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 information

Lecture 18. WebSocket

Lecture 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 information

Chapter 1: Introduction to Computers and Java

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 information

8/23/2014. Chapter Topics. Introduction. Java History. Why Program? Java Applications and Applets. Chapter 1: Introduction to Computers and Java

8/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 information

Web application Architecture

Web 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 information

CS 11 java track: lecture 1

CS 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 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

INF 212 ANALYSIS OF PROG. LANGS CONCURRENCY. Instructors: Crista Lopes Copyright Instructors.

INF 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 information

Santiago Documentation

Santiago 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 information

Module 3 Web Component

Module 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 information

Performance Case Study

Performance 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 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

1. Download the JDK 6, from

1. 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 information

Lecture 1: Overview of Java

Lecture 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 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

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

IBM s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM s sole discretion.

IBM 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 information

Who am I? Weibo:

Who 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 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

Introduction to Java https://tinyurl.com/y7bvpa9z

Introduction 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 information

JAVA OPERATORS GENERAL

JAVA 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 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

Introduction to Java

Introduction 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 information

INF5750. Introduction to JavaScript and Node.js

INF5750. 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 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

Isomorphic Kotlin. Troy

Isomorphic 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 information

A Node.js tutorial by Manuel Kiessling

A 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 information

Tableau Server - 101

Tableau 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 information

Lecture 2. COMP1406/1006 (the Java course) Fall M. Jason Hinek Carleton University

Lecture 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 information

Introduction to Java. Nihar Ranjan Roy. https://sites.google.com/site/niharranjanroy/

Introduction 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 information

COMP519 Practical 5 JavaScript (1)

COMP519 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 information

Program Fundamentals

Program 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 information

Lecture 1 - Introduction (Class Notes)

Lecture 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 information

Introduction 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. 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 information

Learning objectives. The Java Environment. Java timeline (cont d) Java timeline. Understand the basic features of Java

Learning 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 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

Outline. 1. Load Testing 2. Frontend Tips 3. Server-side Tips

Outline. 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 information

Goals. Java - An Introduction. Java is Compiled and Interpreted. Architecture Neutral & Portable. Compiled Languages. Introduction to Java

Goals. 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 information

1.1 Your First Program

1.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 information

The Java programming environment. The Java programming environment. Java: A tiny intro. Java features

The 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 information

IBM API Connect: Introduction to APIs, Microservices and IBM API Connect

IBM 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 information

The API Economy in a Mobile World What are we talking about?

The 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 information

Ur/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: 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 information

Introduction to Programming Using Java (98-388)

Introduction 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 information

IBM Planning Analytics Workspace Local Distributed Soufiane Azizi. IBM Planning Analytics

IBM 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 information

Introduction to RPC, Apache Thrift Workshop. Tomasz Powchowicz

Introduction 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 information

Space Exploration EECS /25

Space 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 information

The Future of the Realtime Web BETTER APIS WITH GRAPHQL. Josh

The 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 information

API Connect. Arnauld Desprets - Technical Sale

API 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 information

Il Mainframe e il paradigma dell enterprise mobility. Carlo Ferrarini zsystems Hybrid Cloud

Il 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 information

CSC 1214: Object-Oriented Programming

CSC 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 information

Atelier Java - J1. Marwan Burelle. EPITA Première Année Cycle Ingénieur.

Atelier 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 information

A Generic Microservice Architecture for Environmental Data Management

A 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 information

Introduction to Programming (Java) 2/12

Introduction 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 information

Updating web content in real time using Node.js

Updating 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 information

Algorithms and Programming I. Lecture#12 Spring 2015

Algorithms 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 information

CSC Web Programming. Introduction to JavaScript

CSC 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 information

Esri and MarkLogic: Location Analytics, Multi-Model Data

Esri 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 information

Review 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 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 information

INFO Object-Oriented Programming

INFO 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 information

Computer Components. Software{ User Programs. Operating System. Hardware

Computer 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 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

Windows 8. Rainer Stropek. System Architecture. System Architecture re of Windows Store Apps. Saves the day. software architects gmbh

Windows 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 information

Preview from Notesale.co.uk Page 3 of 36

Preview 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 information

Object-oriented programming. and data-structures CS/ENGRD 2110 SUMMER 2018

Object-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 information

JavaScript: Introduction, Types

JavaScript: 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 information

This exam is open book. Each question is worth 3 points.

This 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 information

NODE.JS MOCK TEST NODE.JS MOCK TEST I

NODE.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 information

Outline. Overview. Control statements. Classes and methods. history and advantage how to: program, compile and execute 8 data types 3 types of errors

Outline. 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 information

Android Online Training

Android 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 information

MODIFYING TRADITIONAL APPLICATIONS FOR MORE COST EFFECTIVE DEPLOYMENT

MODIFYING 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 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

JavaScript I Language Basics

JavaScript 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 information

COMP 110/L Lecture 13. Kyle Dewey

COMP 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 information

Putting A Spark in Web Apps

Putting 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 information

Node.js. Node.js Overview. CS144: Web Applications

Node.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 information

CS 231 Data Structures and Algorithms, Fall 2016

CS 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 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

1.1 Your First Program

1.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 information

Web Architecture and Development

Web 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 information

Basic Concepts. Computer Science. Programming history Algorithms Pseudo code. Computer - Science Andrew Case 2

Basic 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 information

CONCURRENT DISTRIBUTED TASK SYSTEM IN PYTHON. Created by Moritz Wundke

CONCURRENT 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 information

Getting started with Java

Getting 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 information

INTRODUCTION TO SOFTWARE SYSTEMS (COMP1110/COMP1140/COMP1510/COMP6710)

INTRODUCTION 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 information

An overview of Java, Data types and variables

An 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 information

C and C++ I. Spring 2014 Carola Wenk

C 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 information

LECTURE 7. Web-Technology

LECTURE 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 information

Lecture 2 Callbacks, Events, and Asynchronous Programming

Lecture 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 information

PROCE55 Mobile: Web API App. Web API. https://www.rijksmuseum.nl/api/...

PROCE55 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 information

Outline. Java Models for variables Types and type checking, type safety Interpretation vs. compilation. Reasoning about code. CSCI 2600 Spring

Outline. 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 information

Overview. Prerequisites. Course Outline. Course Outline :: Apache Spark Development::

Overview. 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