Java vs JavaScript. For Enterprise Web Applications. Chris Bailey IBM Runtime Technologies IBM Corporation
|
|
- Philip Lee
- 5 years ago
- Views:
Transcription
1 Java vs JavaScript For Enterprise Web Applications Chris Bailey IBM Runtime Technologies 1
2 What Languages do you use? 120 Percentage of Audience Java 2 JavaScript Both
3 What Runtimes do you use? 120 Percentage of Audience Server Java 3 Applets JS in Browser Node.js Rhino Nashorn Avatar.js
4 Chris Bailey IBM Runtime Monitoring and Diagnostics Architect 14 years working with Java and JVM technologies 14 months working with Node.js and V8 Current Role(s): IBM Java monitoring and diagnostics Node Application Metrics project lead Node Foundation Member Benchmarking and Performance WGs JavaOne RockStar Author on performance and memory analysis 4 baileyc@uk.ibm.com Bailey 4
5 Agenda Language Adoption Deployment Modes Code Development Scalability WebApplication Performance Under the Hood Enterprise Architectures 5
6 Language Adoption 6 6
7 GitHub Adoption: Java 7
8 GitHub Adoption: JavaScript 8
9 modulecounts.com 9
10 StackOverflow User Survey 10
11 Tiobe Community Programming Index Ratings based on the number of skilled engineers, courses and third party vendors. 11
12 Indeed.com Job Trends: Java 12
13 Indeed.com Job Trends: JavaScript 13
14 Indeed.com Job Trends Java JavaScript 14
15 Language Adoption 15 JavaScript has a large developer base #1 on GitHub with 45% more active repositories than Java #1 on modulecounts.com with 29% more NPM modules than Maven #1 used language by StackOverflow survey responders #6 language on the Tiobe index Java remains huge, particularly in the enterprise and on the server #2 on GitHub with 52% more active repositories than the next language #3 on modulecounts with 73.8% more modules than the next language #2 language on the Tiobe index #1 on indeed.com for developer jobs -
16 Deployment Modes 16
17 Usage 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 17
18 Usage on the server Java has a long history on the server JPE launched in Java has rich platform support: Linux x86, Linux POWER, zlinux - 18 Windows, Mac OS, Solaris, AIX, z/os JavaScript is a nascent language on the server Limited platform support although its growing No API support to interact with the OS Part of the browser security model Frameworks like Node.js have changed that. -
19 Server Side JavaScript: Node.js Single Threaded Event based JavaScript framework Uses non-blocking asynchronous I/O Wraps the Chrome V8 JavaScript engine with I/O interfaces Libuv provides interaction with OS/system JavaScript C Node Standard Library Node Bindings V8 19 libuv Designed to build scalable network applications Suited for real time delivery of data to distributed client Available on a wide set of platforms: Linux on x86, ARM, Power and Z Windows, Mac OS, Solaris, SmartOS and AIX
20 Anatomy of a Node.js application 1. package.json Tracks properties, dependencies, version info, commands, etc. 2. JavaScript source files (i.e. app.js) To install and execute: > npm install > node app.js 20 20
21 Code Development 21
22 HTTP Server Example 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 Clustered HTTP Server Example 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); } 23
24 Writing Node.js Code Development Effort Code Volume Relative to Java (lower is better) 24 Node.js - 3x * based on benchmarksgame benchmarks *or other transactional service
25 Writing Node.js Code Development Effort Code Volume Relative to Java (lower is better) 25 Node.js regex-dna Spectral-norm fannkuch-redux fasta k-nucleotide Binary-trees n-body Reverse-complement Avg 1/3rd less code - 3x * based on benchmarksgame benchmarks *or other transactional service
26 Writing Node.js Code Development Effort Code Volume Relative to Java (lower is better) 26 Node.js regex-dna Spectral-norm fannkuch-redux fasta k-nucleotide Binary-trees n-body Reverse-complement Avg 1/3rd less code - 3x * based on benchmarksgame benchmarks Node.js has higher developer productivity Many applications developed with significantly less code Rich module system simplifies development Reduces need to develop custom code *or other transactional service
27 Scalability 27
28 Typical approach to I/O 28 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 Number of concurrent customers determined by number of depot workers Additional customers wait in a queue with no response
29 Asycnhronous Non-Blocking I/O 29 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 Number of concurrent customers determined by how fast the food Server can work Or until the kitchen gets slammed
30 JavaScript and Asynchronous I/O 30 JavaScript is already event based in the browser eg. onclick and onmouseover events First class functions and closures fit well with events Easy to create and pass function callbacks Easy to execute callbacks in the context of the event Node.js execution is based on an event loop Asynchronous I/O built in from the ground up Node.js execution uses a single thread No need to worry about locking or shared data Most machines are now multi-cpu, so cluster capabilities are provided
31 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) {}); 31
32 WebApp Performance 32
33 JSON Serialization JSON serialization of a newly instantiated object Maps Key of message Value of Hello, World! Example response: Results from TechEmpower.com Round 9 tests ( ) 33
34 JSON Serialization JSON serialization of a newly instantiated object Maps Key of message Value of Hello, World! Example response: Java JavaScript Results from TechEmpower.com Round 9 tests ( ) 34
35 JavaScript WebApp Performance Node.js Performance (Compared to Java) 40 %age of Java Performance JSON Serialization
36 Single Query Fetches single row from simple database table Row serialized as JSON Example response: Results from TechEmpower.com Round 9 tests ( ) 36
37 Single Query Fetches single row from simple database table Row serialized as JSON Java Example response: JavaScript Results from TechEmpower.com Round 9 tests ( ) 37
38 JavaScript WebApp Performance Node.js Performance (Compared to Java) 40 %age of Java Performance JSON Serialization Single Query
39 Multiple Queries Fetches multiple rows from a simple database table Rows serialized as JSON Example response: Results from TechEmpower.com Round 9 tests ( ) 39
40 Multiple Queries Fetches multiple rows from a simple database table Rows serialized as JSON Java Example response: JavaScript Results from TechEmpower.com Round 9 tests ( ) 40
41 JavaScript WebApp Performance Node.js Performance (Compared to Java) 40 %age of Java Performance JSON Serialization Single Query Multiple Queries
42 Data Updates Fetches multiple rows from a simple database table Converts rows to objects and modifies one attribute of each object Updates each associated row and serializes as JSON Example Response: Results from TechEmpower.com Round 9 tests ( ) 42
43 Data Updates Fetches multiple rows from a simple database table Converts rows to objects and modifies one attribute of each object Updates each associated row and serializes as JSON JavaScript Java Example Response: Results from TechEmpower.com Round 9 tests ( ) 43
44 JavaScript WebApp Performance Node.js Performance (Compared to Java) %age of Java Performance JSON Serialization Single Query Multiple Queries Data Updates
45 JavaScript WebApp Performance Node.js Performance (Compared to Java) %age of Java Performance More -80 Computation -100 Computation speed is (much) slower than Java I/O speed is higher than Java 45 JSON Serialization Single Query Multiple Queries Data Updates More I/O
46 JavaScript on the JVM? 46
47 Nashorn and Avatar.js Nashorn JavaScript engine delivered in JDK8 Utilizes new JVM level features for performance 47 Avatar.js provides Node.js support on Nashorn
48 Nashorn and Avatar.js Nashorn JavaScript engine delivered in JDK8 Utilizes new JVM level features for performance Avatar.js provides Node.js support on Nashorn Results of Octane JavaScript benchmark*: Node.js is 4.8x faster Avatar.js is >10x larger 48 * Using Java 8 pre-u20
49 Nashorn and Avatar.js Nashorn JavaScript engine delivered in JDK8 Utilizes new JVM level features for performance Avatar.js provides Node.js support on Nashorn Feb 12th, 2015: Avatar is put on hold Results of Octane JavaScript benchmark*: Node.js is 4.8x faster Avatar.js is >10x larger 49 * Using Java 8 pre-u40
50 JavaScript Performance Under the Hood 50
51 JIT Compilation Dynamic nature of JavaScript makes JIT optimizations more difficult Any variable could be a function or data Variables must be tested to determine how to handle handle them Variables can change, so what worked previously many not apply in future 51 Example: the use of '+': number + number addition string involved? concatenation objects involved? convert to primitives then addition or concatenation Functions involved??
52 Execution flow for '+' operator Java int a int b int c = a + b Addition Return Result 52
53 Execution flow for '+' operator Java int a int b int c = a + b Addition JavaScript var a var b var c = a + b First Time? NO YES Return Result Use Previous Types Type of A? String Type of B? String or Number Concatenate Type of B? Number Addition NO Number Worked? String Undefined YES Return Result 53
54 Dynamically vs Statically Types Languages Dynamically typed languages are harder to manage under the hood They subsequently have lower runtime performance for computational tasks Highlighted in TechEmpower benchmarks: Best dynamic compared to best static as baseline Dynamic vs Statically Typed Language Performance JSON Single Multi Updates
55 Writing Node.js Code 55
56 Not So Easy: JavaScript Syntax Fun 56 > '5' 3 2 // Weak typing, implicit conversion > '5' + 3 '53' //...but not consistent > '5' '4' 1 // String minus String = Integer?? > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' // Ok, that's expected > 'Hello' + + 'World' 'HelloNaN' //...but that isn't
57 Not So Easy: JavaScript Syntax Fun 57 > '5' 3 2 // Weak typing, implicit conversion > '5' + 3 '53' //...but not consistent > '5' '4' 1 // String minus String = Integer?? > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' // Ok, that's expected > 'Hello' + + 'World' 'HelloNaN' //...but that isn't
58 Not So Easy: JavaScript Syntax Fun 58 > '5' 3 2 // Weak typing, implicit conversion > '5' + 3 '53' //...but not consistent > '5' '4' 1 // String minus String = Integer?? > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' // Ok, that's expected > 'Hello' + + 'World' 'HelloNaN' //...but that isn't
59 Not So Easy: JavaScript Syntax Fun 59 > '5' 3 2 // Weak typing, implicit conversion > '5' + 3 '53' //...but not consistent > '5' '4' 1 // String minus String = Integer?? > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' // Ok, that's expected > 'Hello' + + 'World' 'HelloNaN' //...but that isn't
60 Not So Easy: JavaScript Syntax Fun 60 > '5' 3 2 // Weak typing, implicit conversion > '5' + 3 '53' //...but not consistent > '5' '4' 1 // String minus String = Integer?? > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' // Ok, that's expected > 'Hello' + + 'World' 'HelloNaN' //...but that isn't
61 Not So Easy: JavaScript Syntax Fun 61 > '5' 3 2 // Weak typing, implicit conversion > '5' + 3 '53' //...but not consistent > '5' '4' 1 // String minus String = Integer?? > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' // Ok, that's expected > 'Hello' + + 'World' 'HelloNaN' //...but that isn't
62 Not So Easy: JavaScript Syntax Fun 62 > '5' 3 2 // Weak typing, implicit conversion > '5' + 3 '53' //...but not consistent > '5' '4' 1 // String minus String = Integer?? > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' // Ok, that's expected > 'Hello' + + 'World' 'HelloNaN' //...but that isn't
63 Not So Easy: JavaScript Syntax Fun 63 > '5' 3 2 // Weak typing, implicit conversion > '5' + 3 '53' //...but not consistent > '5' '4' 1 // String minus String = Integer?? > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' // Ok, that's expected > 'Hello' + + 'World' 'HelloNaN' //...but that isn't
64 Not So Easy: JavaScript Syntax Fun 64 > '5' 3 2 // Weak typing, implicit conversion > '5' + 3 '53' //...but not consistent > '5' '4' 1 // String minus String = Integer?? > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' // Ok, that's expected > 'Hello' + + 'World' 'HelloNaN' //...but that isn't
65 Not So Easy: JavaScript Syntax Fun 65 > '5' 3 2 // Weak typing, implicit conversion > '5' + 3 '53' //...but not consistent > '5' '4' 1 // String minus String = Integer?? > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' // Ok, that's expected > 'Hello' + + 'World' 'HelloNaN' //...but that isn't
66 Not So Easy: JavaScript Syntax Fun 66 > '5' 3 2 // Weak typing, implicit conversion > '5' + 3 '53' //...but not consistent > '5' '4' 1 // String minus String = Integer?? > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' // Ok, that's expected > 'Hello' + + 'World' 'HelloNaN' //...but that isn't
67 Not So Easy: JavaScript Syntax Fun 67 > '5' 3 2 // Weak typing, implicit conversion > '5' + 3 '53' //...but not consistent > '5' '4' 1 // String minus String = Integer?? > '5' + + '4' 54 // Multiple +'s are ok > 'Hello' + 'World' 'HelloWorld' // Ok, that's expected > 'Hello' + + 'World' 'HelloNaN' //...but that isn't
68 Not So Easy: JavaScript Syntax Fun 68 > '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???
69 Not So Easy: JavaScript Syntax Fun 69 > '5' + - '5' '5-5' // 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???
70 Not So Easy: JavaScript Syntax Fun 70 > '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 Not So Easy: JavaScript Syntax Fun 71 > '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???
72 Not So Easy: JavaScript Syntax Fun 72 > '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???
73 Not So Easy: JavaScript Syntax Fun 73 > '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???
74 (Micro)Service Topologies 74
75 Enterprise Application Platform Web Applications Operations and Management Admin 75 Analytics Scaling Diagnostics Load Balancer HTTP Load Balancer Monitoring Analytics
76 Questions 76
77 77
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 informationChris 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 informationMicroservices with Node.js
Microservices with Node.js Objectives In this module we will discuss: Core Node.js concepts Node Package Manager (NPM) The Express Node.js package The MEAN stack 1.1 What is Node.js? Node.js [ https://nodejs.org/
More informationEND-TO-END JAVASCRIPT WEB APPS
END-TO-END JAVASCRIPT WEB APPS HTML5, NODE.JS AND MONGODB CADEC 2013 by Peter Larsson JAVASCRIPT IS NOT EVIL TECH. INDEX, JAN 2013 Dice Job Posts Google 20,000 2,400,000,000 15,000 1,800,000,000 10,000
More informationthis presentation code is on https://github.com/gabrielelana/node-examples
this presentation code is on https://github.com/gabrielelana/node-examples gabriele lana gabriele.lana@cleancode.it twitter: @gabrielelana this presentation code is on https://github.com/gabrielelana/node-examples
More informationNODE.JS SERVER SIDE JAVASCRIPT. Introduc)on Node.js
NODE.JS SERVER SIDE JAVASCRIPT Introduc)on Node.js Node.js was created by Ryan Dahl starting in 2009. For more information visit: http://www.nodejs.org 1 What about Node.js? 1. JavaScript used in client-side
More informationServer-Side JavaScript auf der JVM. Peter Doschkinow Senior Java Architect
Server-Side JavaScript auf der JVM Peter Doschkinow Senior Java Architect The following is intended to outline our general product direction. It is intended for information purposes only, and may not be
More informationProject Avatar: Server Side JavaScript on the JVM GeeCon - May David Software Evangelist - Oracle
Project Avatar: Server Side JavaScript on the JVM GeeCon - May 2014! David Delabassee @delabassee Software Evangelist - Oracle The following is intended to outline our general product direction. It is
More informationComet and WebSocket Web Applications How to Scale Server-Side Event-Driven Scenarios
Comet and WebSocket Web Applications How to Scale Server-Side Event-Driven Scenarios Simone Bordet sbordet@intalio.com 1 Agenda What are Comet web applications? Impacts of Comet web applications WebSocket
More informationPerformance Case Study
Performance Case Study @Fabian_Frank Yahoo! Search, Engineer Youthmedia.eu, Volunteer A Dynamic Website self-contained App self-contained App self-contained App node v0.4.x multi-core
More informationNode.js. Node.js Overview. CS144: Web Applications
Node.js Node.js Overview JavaScript runtime environment based on Chrome V8 JavaScript engine Allows JavaScript to run on any computer JavaScript everywhere! On browsers and servers! Intended to run directly
More informationModule 6 Node.js and Socket.IO
Module 6 Node.js and Socket.IO Module 6 Contains 2 components Individual Assignment and Group Assignment Both are due on Wednesday November 15 th Read the WIKI before starting Portions of today s slides
More informationPrzyspiesz tworzenie aplikacji przy pomocy Openshift Container Platform. Jarosław Stakuń Senior Solution Architect/Red Hat CEE
Przyspiesz tworzenie aplikacji przy pomocy Openshift Container Platform Jarosław Stakuń Senior Solution Architect/Red Hat CEE jstakun@redhat.com Monetize innovation http://www.forbes.com/innovative-companies/list/
More informationNODE.JS MOCK TEST NODE.JS MOCK TEST I
http://www.tutorialspoint.com NODE.JS MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Node.js Framework. You can download these sample mock tests at
More informationWeb application Architecture
1 / 37 AJAX Prof. Cesare Pautasso http://www.pautasso.info cesare.pautasso@usi.ch @pautasso Web application Architecture 5 / 37 Client Server Backend Response Database File System 2013 Cesare Pautasso
More informationTools. 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 informationFull 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 informationWhat is Node.js? Tim Davis Director, The Turtle Partnership Ltd
What is Node.js? Tim Davis Director, The Turtle Partnership Ltd About me Co-founder of The Turtle Partnership Working with Notes and Domino for over 20 years Working with JavaScript technologies and frameworks
More informationRED HAT'S CONTAINER STRATEGY. Lars Herrmann General Manager, RHEL, RHEV and Containers June 24, 2015
RED HAT'S CONTAINER STRATEGY Lars Herrmann General Manager, RHEL, RHEV and Containers June 24, 2015 1 DEVELOPMENT VS I.T. OPERATIONS DEVELOPER IT OPERATIONS 2 DEVELOPERS WANT TO GO FAST DEVELOPER 3 HOW
More informationINF5750. Introduction to JavaScript and Node.js
INF5750 Introduction to JavaScript and Node.js Outline Introduction to JavaScript Language basics Introduction to Node.js Tips and tools for working with JS and Node.js What is JavaScript? Built as scripting
More informationSantiago Documentation
Santiago Documentation Release 1.2.0 Top Free Games November 07, 2016 Contents 1 Overview 3 1.1 Getting started.............................................. 3 1.2 Features..................................................
More informationJavaScript on the Command Line & PRATIK PATEL CTO TripLingo Labs
JavaScript on the Command Line & Server @prpatel TripLingo Labs PRATIK@mypatelspace.com Topics Modern JavaScript Why? Ecosystem Node Grunt Yesterday s JavaScript Today s JavaScript is cool What s changed?
More informationAWS Lambda + nodejs Hands-On Training
AWS Lambda + nodejs Hands-On Training (4 Days) Course Description & High Level Contents AWS Lambda is changing the way that we build systems in the cloud. This new compute service in the cloud runs your
More informationMaking The Future Java
Making The Future Java Dalibor Topić (@robilad) Principal Product Manager October 18th, 2013 - HrOUG, Rovinj 1 The following is intended to outline our general product direction. It is intended for information
More informationChapter 1: Introduction to Computers and Java
Chapter 1: Introduction to Computers and Java Starting Out with Java: From Control Structures through Objects Fifth Edition by Tony Gaddis Chapter Topics Chapter 1 discusses the following main topics:
More information8/23/2014. Chapter Topics. Introduction. Java History. Why Program? Java Applications and Applets. Chapter 1: Introduction to Computers and Java
Chapter 1: Introduction to Computers and Java Starting Out with Java: From Control Structures through Objects Fifth Edition by Tony Gaddis Chapter Topics Chapter 1 discusses the following main topics:
More informationA 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 informationA DEVOPS STATE OF MIND WITH DOCKER AND KUBERNETES. Chris Van Tuin Chief Technologist, West
A DEVOPS STATE OF MIND WITH DOCKER AND KUBERNETES Chris Van Tuin Chief Technologist, West cvantuin@redhat.com Open Source V In short, software is eating the world. - Marc Andreessen, Wall Street Journal,
More informationLecture 18. WebSocket
Lecture 18. WebSocket 1. What is WebSocket? 2. Why WebSocket? 3. WebSocket protocols 4. WebSocket client side 5. WebSocket on server side 1. Case study, WebSocket on nose.js 2. Case study, WebSocket on
More informationGrand Central Dispatch
A better way to do multicore. (GCD) is a revolutionary approach to multicore computing. Woven throughout the fabric of Mac OS X version 10.6 Snow Leopard, GCD combines an easy-to-use programming model
More informationNode.js I Getting Started
Node.js I Getting Started Chesapeake Node.js User Group (CNUG) https://www.meetup.com/chesapeake-region-nodejs-developers-group Agenda Installing Node.js Background Node.js Run-time Architecture Node.js
More informationMOdern Java(Script) Server Stack
MOdern Java(Script) Server Stack Pratik Patel Pratik Patel CTO Triplingo JAVA CHAMPION PRESIDENT ATLANTA JUG POLYGLOT apple mac vintage 5" screen TURTLE MY FIRST PROGRAM TURING MY FIRST REAL PROGRAM JAVASCRIPT
More informationCHAPTER 1 Introduction to Computers and Java
CHAPTER 1 Introduction to Computers and Java Copyright 2016 Pearson Education, Inc., Hoboken NJ Chapter Topics Chapter 1 discusses the following main topics: Why Program? Computer Systems: Hardware and
More informationDeveloping Node.js Applications on IBM Cloud
Front cover Developing Node.js Applications on IBM Cloud Ahmed Azraq Mohamed Ewies Ahmed S. Hassan In partnership with IBM Skills Academy Redbooks International Technical Support Organization Developing
More informationPutting A Spark in Web Apps
Putting A Spark in Web Apps Apache Big Data, Seville ES, 2016 David Fallside Intro Web app development has moved from Java etc to Node.js and JavaScript JS environment relatively simple and very rich,
More informationPiqi-RPC. Exposing Erlang services via JSON, XML and Google Protocol Buffers over HTTP. Friday, March 25, 2011
Piqi-RPC Exposing Erlang services via JSON, XML and Google Protocol Buffers over HTTP 1 Anton Lavrik http://piqi.org http://www.alertlogic.com 2 Overview Call Erlang functions using HTTP POST : Server
More informationA Node.js tutorial by Manuel Kiessling
1 of 23 9/17/2013 3:09 PM A Node.js tutorial by Manuel Kiessling The aim of this document is to get you started with developing applications with Node.js, teaching you everything you need to know about
More informationInside WebSphere Application Server
Inside WebSphere Application Server The anatomy of WebSphere Application Server is quite detailed so, for now, let's briefly outline some of the more important parts. The following diagram shows the basic
More informationIBM s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM s sole discretion.
Please note Copyright 2018 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission from IBM IBM s statements
More informationAdvance 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 informationDr Markus Hagenbuchner CSCI319. Distributed Systems Chapter 3 - Processes
Dr Markus Hagenbuchner markus@uow.edu.au CSCI319 Distributed Systems Chapter 3 - Processes CSCI319 Chapter 3 Page: 1 Processes Lecture notes based on the textbook by Tannenbaum Study objectives: 1. Understand
More informationgrpc - A solution for RPCs by Google Distributed Systems Seminar at Charles University in Prague, Nov 2016 Jan Tattermusch - grpc Software Engineer
grpc - A solution for RPCs by Google Distributed Systems Seminar at Charles University in Prague, Nov 2016 Jan Tattermusch - grpc Software Engineer About me Software Engineer at Google (since 2013) Working
More informationIntroduction to RPC, Apache Thrift Workshop. Tomasz Powchowicz
Introduction to RPC, Apache Thrift Workshop Tomasz Powchowicz It is all about effective communication page 2 Synchronous, asynchronous execution Executor Executor A Executor B Executor A Executor B 1 1
More informationHigh performance reactive applications with Vert.x
High performance reactive applications with Vert.x Tim Fox Red Hat Bio Employed By Red Hat to lead the Vert.x project Worked in open source exclusively for the past 9 years Some projects I've been involved
More informationWeb Application Development
Web Application Development Produced by David Drohan (ddrohan@wit.ie) Department of Computing & Mathematics Waterford Institute of Technology http://www.wit.ie SERVER SIDE JAVASCRIPT PART 1 Outline 1.
More informationExercise 1. Bluemix and the Cloud Foundry command-line interface (CLI)
V10.1 Student Exercises EXempty Exercise 1. Bluemix and the Cloud Foundry command-line interface (CLI) What this exercise is about In this exercise, you sign on to Bluemix and create an application. You
More informationThis tutorial discusses the basics of PouchDB along with relevant examples for easy understanding.
About this Tutorial PouchDBis an open source in-browser database API written in JavaScript. It ismodelled after CouchDB a NoSQL database that powers npm. Using this API, we can build applications that
More informationComputational 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 informationTransitioning from C# to Scala Using Apache Thrift. Twitter Finagle
Transitioning from C# to Scala Using Apache Thrift and Twitter Finagle Steven Skelton September 19, 2013 Empathica Empathica provides Customer Experience Management programs to more than 200 of the world's
More informationAzure DevOps. Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region
Azure DevOps Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region What is DevOps? People. Process. Products. Build & Test Deploy DevOps is the union of people, process, and products to
More informationGetting Started With NodeJS Feature Flags
Guide Getting Started With NodeJS Feature Flags INTRO We ve all done it at some point: thrown a conditional around a piece of code to enable or disable it. When it comes to feature flags, this is about
More informationJS Event Loop, Promises, Async Await etc. Slava Kim
JS Event Loop, Promises, Async Await etc Slava Kim Synchronous Happens consecutively, one after another Asynchronous Happens later at some point in time Parallelism vs Concurrency What are those????
More informationBackend 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 informationCICS and the Web: Web-enable your CICS Applications
CICS and the Web: Web-enable your CICS Applications Leigh Compton CICS Technical Support IBM Dallas Systems Center Webcast 30 July 2002 Session Agenda CICS e-business Strategy Which web-enabling option?
More informationWebSphere Application Server, Version 5. What s New?
WebSphere Application Server, Version 5 What s New? 1 WebSphere Application Server, V5 represents a continuation of the evolution to a single, integrated, cost effective, Web services-enabled, J2EE server
More informationChapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues
Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues 4.2 Silberschatz, Galvin
More informationCS 11 java track: lecture 1
CS 11 java track: lecture 1 Administrivia need a CS cluster account http://www.cs.caltech.edu/ cgi-bin/sysadmin/account_request.cgi need to know UNIX www.its.caltech.edu/its/facilities/labsclusters/ unix/unixtutorial.shtml
More informationFrom Java EE to Jakarta EE. A user experience
From Java EE to Jakarta EE A user experience A few words about me blog.worldline.tech @jefrajames Speaker me = SpeakerOf.setLastName( James ).setfirstname( Jean-François ).setbackgroundinyears(32).setmindset(
More informationOperating Systems 2 nd semester 2016/2017. Chapter 4: Threads
Operating Systems 2 nd semester 2016/2017 Chapter 4: Threads Mohamed B. Abubaker Palestine Technical College Deir El-Balah Note: Adapted from the resources of textbox Operating System Concepts, 9 th edition
More informationCS 498RK FALL RESTFUL APIs
CS 498RK FALL 2017 RESTFUL APIs Designing Restful Apis blog.mwaysolutions.com/2014/06/05/10-best-practices-for-better-restful-api/ www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api Resources
More informationNode.js: Asynchronous I/O for Fun and Profit. Stefan QCon London 2011
Node.js: Asynchronous I/O for Fun and Profit Stefan Tilkov @ QCon London 2011 Stefan Tilkov @stilkov stefan.tilkov@innoq.com http://www.innoq.com Concurrent Request Processing read request read request
More informationContents Overview of the Performance and Sizing Guide... 5 Architecture Overview... 7 Performance and Scalability Considerations...
Unifier Performance and Sizing Guide for On-Premises Version 17 July 2017 Contents Overview of the Performance and Sizing Guide... 5 Architecture Overview... 7 Performance and Scalability Considerations...
More informationSTARCOUNTER. Technical Overview
STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation
More information2014 IBM Corporation IBM Advanced Technical Skills ZCONN1. WebSphere Application Server Liberty Profile z/os. z/os Connect
IBM Advanced Technical Skills ZCONN1 WebSphere Application Server Liberty Profile z/os z/os Connect This page intentionally left blank 2 Agenda The agenda for this workshop is as follows: Overview Establish
More informationOracle Primavera P6 Enterprise Project Portfolio Management Performance and Sizing Guide. An Oracle White Paper December 2011
Oracle Primavera P6 Enterprise Project Portfolio Management Performance and Sizing Guide An Oracle White Paper December 2011 Disclaimer The following is intended to outline our general product direction.
More informationProgramming. Syntax and Semantics
Programming For the next ten weeks you will learn basic programming principles There is much more to programming than knowing a programming language When programming you need to use a tool, in this case
More informationNode.js. Mendel Rosenblum. CS142 Lecture Notes - Node.js
Node.js Mendel Rosenblum Threads versus Events request = readrequest(socket); reply = processrequest(request); sendreply(socket, reply); Implementation: Thread switching (i.e. blocking) and a scheduler
More informationCS420: Operating Systems
Threads James Moscola Department of Physical Sciences York College of Pennsylvania Based on Operating System Concepts, 9th Edition by Silberschatz, Galvin, Gagne Threads A thread is a basic unit of processing
More informationNode.js. Embedded web server
Node.js Embedded web server CMPT 433 Slides 11 Dr. B. Fraser 18-06-10 1 Topics 1) How to build a static web pages:.html,.css,.js? 2) How to serve static pages with Node.js? 3) How to create dynamic content
More informationOverview. Communication types and role of Middleware Remote Procedure Call (RPC) Message Oriented Communication Multicasting 2/36
Communication address calls class client communication declarations implementations interface java language littleendian machine message method multicast network object operations parameters passing procedure
More informationDefining New Node-RED Nodes
Overview Node-RED is a highly graphical programming environment however there are some things which cannot be done using the out-of-the-box nodes. Using the Function Node is one way to get around this
More informationIBM Software Group. IBM WebSphere MQ V7.0. Introduction and Technical Overview. An IBM Proof of Technology IBM Corporation
IBM Software Group IBM WebSphere MQ V7.0 Introduction and Technical Overview An IBM Proof of Technology 2008 IBM Corporation Unit Agenda Why is Messaging Important to the Enterprise? What is WebSphere
More informationOracle Database: SQL and PL/SQL Fundamentals
Oracle University Contact Us: 001-855-844-3881 & 001-800-514-06-9 7 Oracle Database: SQL and PL/SQL Fundamentals Duration: 5 Days What you will learn This Oracle Database: SQL and PL/SQL Fundamentals training
More informationImprove Web Application Performance with Zend Platform
Improve Web Application Performance with Zend Platform Shahar Evron Zend Sr. PHP Specialist Copyright 2007, Zend Technologies Inc. Agenda Benchmark Setup Comprehensive Performance Multilayered Caching
More informationNeed to Node: Profiling Node.js Applications
Need to Node: Profiling Node.js Applications Patrick Mueller January 19, 2016 Questions during the Need to Node webinar? Post a question to Twitter with the hashtag: #needtonode 2 NodeSource is the Enterprise
More informationdescribe the functions of Windows Communication Foundation describe the features of the Windows Workflow Foundation solution
1 of 9 10/9/2013 1:38 AM WCF and WF Learning Objectives After completing this topic, you should be able to describe the functions of Windows Communication Foundation describe the features of the Windows
More informationHands-on Lab Session 9011 Working with Node.js Apps in IBM Bluemix. Pam Geiger, Bluemix Enablement
Hands-on Lab Session 9011 Working with Node.js Apps in IBM Bluemix Pam Geiger, Bluemix Enablement Copyright IBM Corporation 2017 IBM, the IBM logo and ibm.com are trademarks of International Business Machines
More informationHigh performance reactive applications with Vert.x
High performance reactive applications with Vert.x Tim Fox Red Hat Bio Employed By Red Hat to lead the Vert.x project Worked in open source exclusively for the past 9 years Some projects I've been involved
More informationDeveloping Applications with Java EE 6 on WebLogic Server 12c
Developing Applications with Java EE 6 on WebLogic Server 12c Duration: 5 Days What you will learn The Developing Applications with Java EE 6 on WebLogic Server 12c course teaches you the skills you need
More informationIBM SecureWay On-Demand Server Version 2.0
Securely delivering personalized Web applications IBM On-Demand Server Version 2.0 Highlights Delivers personalized Web solutions on demand to anyone, anywhere using profile serving Provides industry-leading,
More informationz/osmf V2R1: Configuration Assistant for z/os Communications Server
z/osmf V2R1: Configuration Assistant for z/os Communications Server Kim Bailey IBM Tuesday, March 11, 2014: 12:15 PM - 01:15 PM MA, Gold Key 1/2 Session Number 15196 Insert Custom Session QR if Desired.
More informationOracle Primavera P6 Enterprise Project Portfolio Management Performance and Sizing Guide. An Oracle White Paper April 2011
Oracle Primavera P6 Enterprise Project Portfolio Management Performance and Sizing Guide An Oracle White Paper April 2011 Disclaimer The following is intended to outline our general product direction.
More informationBy Stephen Cavell, Kerry Ellwanger, and Jack Livingston
By Stephen Cavell, Kerry Ellwanger, and Jack Livingston History PhoneGap created in 2009 by startup Nitobi. Open source way to access the native environment through an embedded WebView in a native app.
More informationJava with Eclipse: Setup & Getting Started
Java with Eclipse: Setup & Getting Started Originals of slides and source code for examples: http://courses.coreservlets.com/course-materials/java.html Also see Java 8 tutorial: http://www.coreservlets.com/java-8-tutorial/
More informationOracle Developer Studio 12.6
Oracle Developer Studio 12.6 Oracle Developer Studio is the #1 development environment for building C, C++, Fortran and Java applications for Oracle Solaris and Linux operating systems running on premises
More informationChapter 4: Multithreaded
Chapter 4: Multithreaded Programming Chapter 4: Multithreaded Programming Overview Multithreading Models Thread Libraries Threading Issues Operating-System Examples 2009/10/19 2 4.1 Overview A thread is
More informationSAMPLE CHAPTER. Using Electron and NW.js. Paul B. Jensen. FOREWORD BY Cheng Zhao MANNING
SAMPLE CHAPTER Using Electron and NW.js Paul B. Jensen FOREWORD BY Cheng Zhao MANNING Cross-Platform Desktop Applications Using Electron and NW.js by Paul Jensen Chapter 6 Copyright 2017 Manning Publications
More informationFull Stack Web Developer Nanodegree Syllabus
Full Stack Web Developer Nanodegree Syllabus Build Complex Web Applications Before You Start Thank you for your interest in the Full Stack Web Developer Nanodegree! In order to succeed in this program,
More informationOutline. 1. Load Testing 2. Frontend Tips 3. Server-side Tips
Performance Outline 1. Load Testing 2. Frontend Tips 3. Server-side Tips Load Testing Load testing is the process of putting demand on a system or device and measuring its response. Load testing is performed
More informationEduardo
Eduardo Silva @edsiper eduardo@treasure-data.com About Me Eduardo Silva Github & Twitter Personal Blog @edsiper http://edsiper.linuxchile.cl Treasure Data Open Source Engineer Fluentd / Fluent Bit http://github.com/fluent
More informationReview. 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 informationIBM WebSphere Application Server 8. Clustering Flexible Management
IBM WebSphere Application Server 8 Clustering Flexible Management Thomas Bussière- bussiere@fr.ibm.com IT Architect Business Solution Center La Gaude, France WebSphere Application Server: High Availability
More informationAny application that can be written in JavaScript, will eventually be written in JavaScript.
Enterprise/Cloud-ready Node.js Michael Dawson IBM Community Lead for Node.js Jesse Gorzinski jgorzins@us.ibm.com Powerpoint Stealer 1 Atwood s Law: 2007 Any application that can be written in JavaScript,
More informationMEAN Stack. 1. Introduction. 2. Foundation a. The Node.js framework b. Installing Node.js c. Using Node.js to execute scripts
MEAN Stack 1. Introduction 2. Foundation a. The Node.js framework b. Installing Node.js c. Using Node.js to execute scripts 3. Node Projects a. The Node Package Manager b. Creating a project c. The package.json
More informationIntellicus Cluster and Load Balancing- Linux. Version: 18.1
Intellicus Cluster and Load Balancing- Linux Version: 18.1 1 Copyright 2018 Intellicus Technologies This document and its content is copyrighted material of Intellicus Technologies. The content may not
More informationAgenda Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2
Lecture 3: Processes Agenda Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2 Process in General 3.3 Process Concept Process is an active program in execution; process
More informationScaling DreamFactory
Scaling DreamFactory This white paper is designed to provide information to enterprise customers about how to scale a DreamFactory Instance. The sections below talk about horizontal, vertical, and cloud
More informationMarkLogic 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 informationDistributed Systems. 03. Remote Procedure Calls. Paul Krzyzanowski. Rutgers University. Fall 2017
Distributed Systems 03. Remote Procedure Calls Paul Krzyzanowski Rutgers University Fall 2017 1 Socket-based communication Socket API: all we get from the OS to access the network Socket = distinct end-to-end
More informationHuman-Computer Interaction Design
Human-Computer Interaction Design COGS120/CSE170 - Intro. HCI Instructor: Philip Guo Lab 6 - Connecting frontend and backend without page reloads (2016-11-03) by Michael Bernstein, Scott Klemmer, and Philip
More information