Java with Node.js Powering the Next Generation of Web Applications

Size: px
Start display at page:

Download "Java with Node.js Powering the Next Generation of Web Applications"

Transcription

1 Java with Node.js Powering the Next Generation of Web Applications Oracle Code One, Oct 23rd 2018 Chris Bailey Chief Architect, Cloud Bailey CloudNativeJS.io MicroProfile.io

2 +!2

3 vs!3

4

5 Developer trend No. 2: Java s decline as a language will accelerate

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

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

8

9 GitHub State of the Octoverse

10 GitHub State of the Octoverse

11

12 Redmonk Language Rankings

13 Redmonk Language Rankings

14 Redmonk Language Rankings

15 Redmonk Language Rankings

16 Developer Productivity!16

17 !17

18 Maven Central (Java) /03/ /03/ /03/ /03/ /03/ /03/29 Module Counts

19 vs npm (node.js) Maven Central (Java) /03/ /03/ /03/ /03/ /03/ /03/29 Module Counts

20 Writing a HTTP Server!20

21 Writing a HTTP Server 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); }!21

22 And Clustering It. 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); }!22

23 Typical Java Approach to Scalable I/O One thread 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!23

24 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!24

25 Node.js 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) {});!25

26 Code required to implement benchmarks Average 45% less code required for Node.js implementation The Computer Language Benchmarks Game

27 Fullstack Development!27

28 From Web Sites to Web Apps The web has moved from Web Sites to Web Applications!28

29 Programming in the Browser JavaScript is ubiquitous in the browser - Supported in every browser - Integration with HTML and CSS JavaScript is not affected by negative publicity... 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!29

30 FullStack JavaScript Development Reuse of programming skills and teams Reuse of skills for both client and server side code Reuse of isomorphic code components Reuse of code for both client and server Write One Run Anywhere Faster user experience performance Use of server side rendering!30

31 Server Side Rendering Pre-Initialisation of the client UI on the server: Improves time for the first elements appearing in the UI Has additional benefits: Search Engine Indexing Easier code maintenance!31

32 Type Safety!32

33 Simple Calculation: 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!33

34 Simple Calculation: 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!34

35 Simple Calculation: 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!35

36 Simple Calculation: 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!36

37 Simple Calculation: 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!37

38 Simple Calculation: 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!38

39 Simple Calculation: 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!39

40 Simple Calculation: 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!40

41 Simple Calculation: 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!41

42 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!42

43 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!43

44 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!44

45 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!45

46 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!46

47 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!47

48 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!48

49 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!49

50 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!50

51 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!51

52 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!52

53 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???!53

54 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???!54

55 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???!55

56 Performance!56

57 Just-In-Time (JIT) Compilation: The + operator int add(int a, int b) { return (a + b); }!57

58 Just-In-Time (JIT) Compilation: The + operator int add(int a, int b) { return (a + b); } Add Instruction!58

59 Just-In-Time (JIT) Compilation: The + operator int add(int a, int b) { return (a + b); } Add Instruction Return Result!59

60 Just-In-Time (JIT) Compilation: The + operator var add = function (a, b) { return (a + b); }!60

61 Just-In-Time (JIT) Compilation: The + operator var add = function (a, b) { return (a + b); } Check type of A!61

62 Just-In-Time (JIT) Compilation: The + operator var add = function (a, b) { return (a + b); } String Check type of A Number!62

63 Just-In-Time (JIT) Compilation: The + operator var add = function (a, b) { return (a + b); } String Check type of B String Check type of A Number Number!63

64 Just-In-Time (JIT) Compilation: The + operator var add = function (a, b) { return (a + b); } Concatenate String Check type of B String Check type of A Number Number!64

65 Just-In-Time (JIT) Compilation: The + operator var add = function (a, b) { return (a + b); } Concatenate String Check type of B String Check type of A Number Number Concatenate!65

66 Just-In-Time (JIT) Compilation: 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!66

67 Just-In-Time (JIT) Compilation: 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!67

68 Just-In-Time (JIT) Compilation: 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!68

69 Just-In-Time (JIT) Compilation: 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!69

70 Just-In-Time (JIT) Compilation: 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!70

71 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 The Computer Language Benchmarks Game

72 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 The Computer Language Benchmarks Game

73 JSON Serialisation JSON serialization of a newly instantiated object Maps - Key of message - Value of Hello, World! Example response: TechEmpower Web Framework Benchmarks

74 JSON Serialisation JSON serialization of a newly instantiated object Maps - Key of message - Value of Hello, World! Example response: Java JavaScript TechEmpower Web Framework Benchmarks

75 TechEmpower Performance (%age of best - higher is be0er) JSON Serializa2on Single Query Data Updates More Computation More I/O TechEmpower Web Framework Benchmarks

76 TechEmpower Performance (%age of best - higher is be0er) JSON Serializa2on Single Query Data Updates More Computation More I/O TechEmpower Web Framework Benchmarks

77 Single Query Fetches single row from simple database table Row serialized as JSON Example response: TechEmpower Web Framework Benchmarks

78 Single Query Fetches single row from simple database table Row serialized as JSON Java Example response: JavaScript TechEmpower Web Framework Benchmarks

79 TechEmpower Performance (%age of best - higher is be0er) JSON Serializa2on Single Query Data Updates More Computation More I/O TechEmpower Web Framework Benchmarks

80 TechEmpower Performance (%age of best - higher is be0er) JSON Serializa2on Single Query Data Updates More Computation More I/O TechEmpower Web Framework Benchmarks

81 Data Updates Fetches multiple rows from a table Converts rows to objects and modifies one attribute of each object Updates each associated row and serializes as JSON Example Response: TechEmpower Web Framework Benchmarks

82 Data Updates Fetches multiple rows from a table Converts rows to objects and modifies one attribute of each object Updates each associated row and serializes as JSON Example Response: JavaScript Java TechEmpower Web Framework Benchmarks

83 TechEmpower Performance (%age of best - higher is be0er) JSON Serializa2on Single Query Data Updates More Computation More I/O TechEmpower Web Framework Benchmarks

84 TechEmpower Performance (%age of best - higher is be0er) JSON Serializa2on Single Query Data Updates More Computation More I/O TechEmpower Web Framework Benchmarks

85 Language Selection!85

86 Microservices Paradigm Do one thing, and do it well Services are small and targeted to their task Services are organized around capabilities Services are self contained, storing their own data!86

87 Choosing the Right Language for the Service!87

88 Choosing the Right Language for the Service!88

89 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!89

90 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!90

91 Choosing the Right Language for the Service Higher performance for I/O Easier async programming Fullstack/isomorphic development!91

92 Choosing the Right Language for the Service Higher processing performance Type safety for calculations Rich processing frameworks!92

93 Choosing the Right Language for the Service + Highly performant, scalable rich web applications Highly performant, reliable transaction processing Self-contained micro-service components!93

94 Emerging Architectures!94

95 Rich Web Applications!95

96 PUBLIC NETWORK CLOUD NETWORK GATEWAY Client Devices Application Tier Database Tier

97 PUBLIC NETWORK CLOUD NETWORK GATEWAY Client Devices Service Tier Database Tier

98 PUBLIC NETWORK CLOUD NETWORK GATEWAY Client Devices Delivery Tier Service Tier Database Tier

99 PUBLIC NETWORK CLOUD NETWORK GATEWAY Client Devices Delivery Tier Service Tier Hosted Services

100 PUBLIC NETWORK CLOUD NETWORK ROUTING PROXY Client Devices GATEWAY Delivery Tier Micro-Services Hosted Services

101 PUBLIC NETWORK CLOUD NETWORK ROUTING PROXY Client Devices GATEWAY Delivery Tier Micro-Services Hosted Services

102 PUBLIC NETWORK CLOUD NETWORK ROUTING PROXY Client Devices GATEWAY Delivery Tier Micro-Services Hosted Services

103 PUBLIC NETWORK CLOUD NETWORK ROUTING PROXY Client Devices GATEWAY Delivery Tier Micro-Services Hosted Services

104 PUBLIC NETWORK CLOUD NETWORK ROUTING PROXY Client Devices GATEWAY Delivery Tier Micro-Services Hosted Services

105 PUBLIC NETWORK CLOUD NETWORK ROUTING PROXY Client Devices GATEWAY Delivery Tier Micro-Services Hosted Services

106 PUBLIC NETWORK CLOUD NETWORK ROUTING PROXY Client Devices GATEWAY Delivery Tier Micro-Services Hosted Services

107 PUBLIC NETWORK CLOUD NETWORK ROUTING PROXY Client Devices GATEWAY Backend For Frontend (BFF) Micro-Services Hosted Services

108 !108

109 Web Server Client Library A Service A Route A Client Library B Service B Route B Client Library C Service C Route C Client Library D Service D Route D Client Library E Service E Route E Client Library F Service D

110 +

111

112 TV

113 TV ios

114 TV ios Android Windows Browsers

115 TV ios Android Windows Browsers

116 TV ios Android Windows Remote Service Layer Browsers

117 TV ios Android Windows Remote Service Layer Browsers

118 Search TV ios Android Windows Browsers Remote Service Layer MAP GPS Catalog User Playback

119 Search TV ios Android Windows Browsers Remote Service Layer MAP GPS Catalog User Playback

120 UI Engineering Search TV ios Android Windows Browsers Remote Service Layer MAP GPS Catalog User Playback

121 UI Engineering Search TV ios Android Windows Browsers Remote Service Layer MAP GPS Catalog User Playback Provide User Centric Experience

122 UI Engineering Systems Engineering Search TV ios Android Windows Browsers Remote Service Layer MAP GPS Catalog User Playback Provide User Centric Experience

123 UI Engineering Systems Engineering Search TV ios Android Windows Browsers Remote Service Layer MAP GPS Catalog User Playback Provide User Centric Experience Project Enterprise Capabilities

124 Multi-Language Micro-services!124

125 !125

126 !126

127 !127

128 +!128

129 Questions?!129

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

Chris Bailey Bailey. Emerging Web Application Architectures With Java and Node.js Chris Bailey IBM Emerging Web Application Architectures With Java and Node.js STSM, IBM Runtime Development 2 @seabaylea 2015 IBM Corporation 1 The Annual Death of Java Developer trend No. 2: Java s decline

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

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

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

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

welcome to BOILERCAMP HOW TO WEB DEV

welcome to BOILERCAMP HOW TO WEB DEV welcome to BOILERCAMP HOW TO WEB DEV Introduction / Project Overview The Plan Personal Website/Blog Schedule Introduction / Project Overview HTML / CSS Client-side JavaScript Lunch Node.js / Express.js

More information

Advance Mobile& Web Application development using Angular and Native Script

Advance Mobile& Web Application development using Angular and Native Script Advance Mobile& Web Application development using Angular and Native Script Objective:- As the popularity of Node.js continues to grow each day, it is highly likely that you will use it when you are building

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

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

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

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

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

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

August, HPE Propel Microservices & Jumpstart

August, HPE Propel Microservices & Jumpstart August, 2016 HPE Propel s & Jumpstart Jumpstart Value Quickly build modern web applications Single page application Modular microservices architecture app generator Modularity provides better upgradeability

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

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

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

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

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

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

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

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

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

VISUAL APPLICATION CREATION AND PUBLISHING FOR ANYONE

VISUAL APPLICATION CREATION AND PUBLISHING FOR ANYONE Oracle Autonomous Visual Builder Cloud Service provides an easy way to create and host web and mobile applications in a secure cloud environment. An intuitive visual development experience on top of a

More information

Full Stack boot camp

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

More information

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

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

IBM Watson Content Hub. Architecture Overview

IBM Watson Content Hub. Architecture Overview IBM Watson Content Hub Architecture Overview Watson Content Hub supports a new omni-channel approach with a headless CMS Treat content as a system of record Separated content & presentation Access content

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

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

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

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

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

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

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

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

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

Enterprise Node.js Support

Enterprise Node.js Support Enterprise Node.js Support From One Practitioner To The Next As a founding member of the We began our journey with Node.js in 2010, having found a runtime Cloud Native Computing that would allow us to

More information

EMPLOYEE LOCATION TRACKING SERVICE

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

More information

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

Full Stack Developer with Java

Full Stack Developer with Java Full Stack Developer with Java Full Stack Developer (Java) MVC, Databases and ORMs, API Backend Frontend Fundamentals - HTML, CSS, JS Unit Testing Advanced Full Stack Developer (Java) UML, Distributed

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

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

Copyright 2014, Oracle and/or its affiliates. All rights reserved. 1 Introduction to the Oracle Mobile Development Platform Dana Singleterry Product Management Oracle Development Tools Global Installed Base: PCs vs Mobile Devices 3 Mobile Enterprise Challenges In Pursuit

More information

Ten interesting features of Google s Angular Project

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

More information

A practical introduction

A practical introduction A practical introduction Felix Geisendörfer Øredev 09.11.2011 (v1) @felixge Twitter / GitHub / IRC Felix Geisendörfer (Berlin, Germany) Audience? JavaScript? Node.js? History Feb 16, 2009 Ryan Dahl starts

More information

OpenECOMP SDC Developer Guide

OpenECOMP SDC Developer Guide OpenECOMP SDC Developer Guide Copyright 2017 AT&T Intellectual Property. All rights reserved. Licensed under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation

More information

WebSphere Puts Business In Motion. Put People In Motion With Mobile Apps

WebSphere Puts Business In Motion. Put People In Motion With Mobile Apps WebSphere Puts Business In Motion Put People In Motion With Mobile Apps Use Mobile Apps To Create New Revenue Opportunities A clothing store increases sales through personalized offers Customers can scan

More information

Web Software Model CS 4640 Programming Languages for Web Applications

Web Software Model CS 4640 Programming Languages for Web Applications Web Software Model CS 4640 Programming Languages for Web Applications [Robert W. Sebesta, Programming the World Wide Web Upsorn Praphamontripong, Web Mutation Testing ] 1 Web Applications User interactive

More information

Develop and test your Mobile App faster on AWS

Develop and test your Mobile App faster on AWS Develop and test your Mobile App faster on AWS Carlos Sanchiz, Solutions Architect @xcarlosx26 #AWSSummit 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. The best mobile apps are

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

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

Final Score ID Extra Credit. 15% of course grade

Final Score ID Extra Credit. 15% of course grade Name Final Score ID Extra Credit Section (circle one): TTh 8:00-9:20 TTh 9:30-10:50 TTh 11:00-12:20 15% of course grade 1. Inheritance When Java was developed, it was scrutinized since it only has single

More information

Using the Cisco ACE Application Control Engine Application Switches with the Cisco ACE XML Gateway

Using the Cisco ACE Application Control Engine Application Switches with the Cisco ACE XML Gateway Using the Cisco ACE Application Control Engine Application Switches with the Cisco ACE XML Gateway Applying Application Delivery Technology to Web Services Overview The Cisco ACE XML Gateway is the newest

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

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

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

The IBM MobileFirst Platform

The IBM MobileFirst Platform The IBM MobileFirst Platform Curtis Miles IBM MobileFirst Solution Architect April 14, 2015 What is the IBM MobileFirst Platform? A modular set " of libraries, tools, and runtimes " that help you " easily

More information

Honours/Master/PhD Thesis Projects Supervised by Dr. Yulei Sui

Honours/Master/PhD Thesis Projects Supervised by Dr. Yulei Sui Honours/Master/PhD Thesis Projects Supervised by Dr. Yulei Sui Projects 1 Information flow analysis for mobile applications 2 2 Machine-learning-guide typestate analysis for UAF vulnerabilities 3 3 Preventing

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

Microservices Implementations not only with Java. Eberhard Wolff Fellow

Microservices Implementations not only with Java. Eberhard Wolff Fellow Microservices Implementations not only with Java Eberhard Wolff http://ewolff.com @ewolff Fellow http://continuous-delivery-buch.de/ http://continuous-delivery-book.com/ http://microservices-buch.de/ http://microservices-book.com/

More information

Backend Development. SWE 432, Fall 2017 Design and Implementation of Software for the Web

Backend Development. SWE 432, Fall 2017 Design and Implementation of Software for the Web Backend Development SWE 432, Fall 2017 Design and Implementation of Software for the Web Real World Example https://qz.com/1073221/the-hackers-who-broke-into-equifax-exploited-a-nine-year-old-security-flaw/

More information

Apigee Edge Developer Training

Apigee Edge Developer Training Training Training DURATION: 4 or 5 days FORMAT: Instructor-led with labs DELIVERY: Public or Private class PREREQUISITES: None HOW IT WORKS: Days 1 4 cover the fundamentals of developing and securing s

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

MASTERS COURSE IN FULL STACK WEB APPLICATION DEVELOPMENT W W W. W E B S T A C K A C A D E M Y. C O M

MASTERS COURSE IN FULL STACK WEB APPLICATION DEVELOPMENT W W W. W E B S T A C K A C A D E M Y. C O M MASTERS COURSE IN FULL STACK WEB APPLICATION DEVELOPMENT W W W. W E B S T A C K A C A D E M Y. C O M COURSE OBJECTIVES Enable participants to develop a complete web application from the scratch that includes

More information

Ahead of Time (AOT) Compilation

Ahead of Time (AOT) Compilation Ahead of Time (AOT) Compilation Vaibhav Choudhary (@vaibhav_c) Java Platforms Team https://blogs.oracle.com/vaibhav Copyright 2018, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement

More information

Computational Applications in Nuclear Astrophysics using Java Java course Lecture 1

Computational Applications in Nuclear Astrophysics using Java Java course Lecture 1 Computational Applications in Nuclear Astrophysics using Java Java course Lecture 1 Prepared for course 160410/411 Michael C. Kunkel m.kunkel@fz-juelich.de Materials taken from; docs.oracle.com Teach Yourself

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

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

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

1Z Oracle. Java Platform Enterprise Edition 6 Enterprise JavaBeans Developer Certified Expert

1Z Oracle. Java Platform Enterprise Edition 6 Enterprise JavaBeans Developer Certified Expert Oracle 1Z0-895 Java Platform Enterprise Edition 6 Enterprise JavaBeans Developer Certified Expert Download Full Version : http://killexams.com/pass4sure/exam-detail/1z0-895 Answer: F QUESTION: 284 Given:

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

Upper- Intermediate. Senior Front end Developer. First Name Denis V. Birth Date Professional experience (years) 4.5

Upper- Intermediate. Senior Front end Developer. First Name Denis V. Birth Date Professional experience (years) 4.5 CV Position Senior Front end Developer General Information First Name Denis V. Birth Date 06.02.1993 Professional experience (years) 4.5 Github Zwem IT professional with 4+ years of experience in software

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 Here's the agenda for this lecture. 1. Fundamentals of

More information

NLUUG, Bunnik CloudABI: safe, testable and maintainable software for UNIX Speaker: Ed Schouten,

NLUUG, Bunnik CloudABI: safe, testable and maintainable software for UNIX Speaker: Ed Schouten, NLUUG, Bunnik 2015-05-28 CloudABI: safe, testable and maintainable software for UNIX Speaker: Ed Schouten, ed@nuxi.nl Programme What is wrong with UNIX? What is CloudABI? Use cases for CloudABI Links 2

More information

Certified Core Java Developer VS-1036

Certified Core Java Developer VS-1036 VS-1036 1. LANGUAGE FUNDAMENTALS The Java language's programming paradigm is implementation and improvement of Object Oriented Programming (OOP) concepts. The Java language has its own rules, syntax, structure

More information

MarkLogic Server. Reference Application Architecture Guide. MarkLogic 9 May, Copyright 2017 MarkLogic Corporation. All rights reserved.

MarkLogic Server. Reference Application Architecture Guide. MarkLogic 9 May, Copyright 2017 MarkLogic Corporation. All rights reserved. Reference Application Architecture Guide 1 MarkLogic 9 May, 2017 Last Revised: 9.0-1, May, 2017 Copyright 2017 MarkLogic Corporation. All rights reserved. Table of Contents Table of Contents Reference

More information

API MANAGEMENT WITH WEBMETHODS

API MANAGEMENT WITH WEBMETHODS API MANAGEMENT WITH WEBMETHODS Subhash Ramachandran SVP, Product Management & Marketing DIGITAL TRANSFORMATION #WITHOUTCOMPROMISE 2017 Software AG. All rights reserved. WEBMETHODS API MANAGEMENT PLATFORM

More information

Nevin Dong 董乃文 Principle Technical Evangelist Microsoft Cooperation

Nevin Dong 董乃文 Principle Technical Evangelist Microsoft Cooperation Nevin Dong 董乃文 Principle Technical Evangelist Microsoft Cooperation Microservices Autonomous API Gateway Events Service Discovery Circuit Breakers Commands Aggregates Bounded Context Event Bus Domain Events

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

Lab 4: create a Facebook Messenger bot and connect it to the Watson Conversation service

Lab 4: create a Facebook Messenger bot and connect it to the Watson Conversation service Lab 4: create a Facebook Messenger bot and connect it to the Watson Conversation service Overview In this lab, you'll create advanced Node-RED flows that: Connect the Watson Conversation service to Facebook

More information

Orleans. Actors for High-Scale Services. Sergey Bykov extreme Computing Group, Microsoft Research

Orleans. Actors for High-Scale Services. Sergey Bykov extreme Computing Group, Microsoft Research Orleans Actors for High-Scale Services Sergey Bykov extreme Computing Group, Microsoft Research 3-Tier Architecture Frontends Middle Tier Storage Stateless frontends Stateless middle tier Storage is the

More information

Traditional Ajax vs. New business targeted Ajax

Traditional Ajax vs. New business targeted Ajax Traditional Ajax vs. New business targeted Ajax By Itzik Spitzen Introduction This article compares between the traditional Ajax represented by ASP.NET to that of the new Ajax approach represented by Visual

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

Tools. SWE 432, Fall Design and Implementation of Software for the Web

Tools. SWE 432, Fall Design and Implementation of Software for the Web Tools SWE 432, Fall 2016 Design and Implementation of Software for the Web Today Before we can really make anything, there s a bunch of technical stuff to get out of the way Tools make our lives so much

More information

HOW REACT NATIVE AND NATIVESCRIPT CHANGE YOUR MOBILE STRATEGY SEBASTIAN

HOW REACT NATIVE AND NATIVESCRIPT CHANGE YOUR MOBILE STRATEGY SEBASTIAN HOW REACT NATIVE AND NATIVESCRIPT CHANGE YOUR MOBILE STRATEGY SEBASTIAN WITALEC @SEBAWITA NATIVE DEVELOPMENT WHY DO I EVEN HAVE TO CHOOSE? THE PROBLEM WHAT WE WANT REALITY DEV SETUP OBJECTIVE- C SWIFT

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

LabWare 7. Why LabWare 7?

LabWare 7. Why LabWare 7? LabWare 7 Why LabWare 7? LabWare v1 to v6 were all about adding functionality. LabWare 7 continues that tradition, but places the user experience front and center. This release has been re-designed to

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

Java Embedded on ARM

Java Embedded on ARM Java Embedded on ARM The Embedded Market Evolving Rapidly Internet of Things 2.3B Internet Users Cloud for Embedded Devices Med-Large Embedded Multi-function Devices Enterprise Data and Applications Up

More information

IBMi in the IT infrastructure of tomorrow

IBMi in the IT infrastructure of tomorrow IBMi in the IT infrastructure of tomorrow This is a two day workshop squeezed into 60 minutes!! For: itour - Common Denmark By: Niels Liisberg IBMi in the IT infrastructure of tomorrow Introduction to

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

B.V. Patel Institute of BMC & IT, UTU 2014

B.V. Patel Institute of BMC & IT, UTU 2014 BCA 3 rd Semester 030010301 - Java Programming Unit-1(Java Platform and Programming Elements) Q-1 Answer the following question in short. [1 Mark each] 1. Who is known as creator of JAVA? 2. Why do we

More information

Corey Clark PhD Daniel Montgomery

Corey Clark PhD Daniel Montgomery Corey Clark PhD Daniel Montgomery Web Dev Platform Cross Platform Cross Browser WebGL HTML5 Web Socket Web Worker Hardware Acceleration Optimized Communication Channel Parallel Processing JaHOVA OS Kernel

More information

Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University

Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University Web Applications Software Engineering 2017 Alessio Gambi - Saarland University Based on the work of Cesare Pautasso, Christoph Dorn, Andrea Arcuri, and others ReCap Software Architecture A software system

More information

Architecting C++ apps

Architecting C++ apps Architecting C++ apps with a multi-device application platform John JT Thomas Director of Product Management jt@embarcadero.com @FireMonkeyPM blogs.embarcadero.com/jtembarcadero/ What is a multi-device

More information

Review. Fundamentals of Website Development. Web Extensions Server side & Where is your JOB? The Department of Computer Science 11/30/2015

Review. Fundamentals of Website Development. Web Extensions Server side & Where is your JOB? The Department of Computer Science 11/30/2015 Fundamentals of Website Development CSC 2320, Fall 2015 The Department of Computer Science Review Web Extensions Server side & Where is your JOB? 1 In this chapter Dynamic pages programming Database Others

More information