Size: px
Start display at page:

Download ""

Transcription

1

2

3

4

5

6 8-24 minute delay

7 ± 30 min. round trip

8 Web DNS Redirect Download HTML Download CSS + JS + Images Download more CSS + JS + Images.

9 Ordering a pizza Several hours per page About 8 pages per order

10

11

12

13

14

15

16 Thread.setName( Bob );

17 String token = getgithubtoken("

18 Connect TCP Encryption handshake Push request data through socket wait Pull data from the socket Assemble and return the result

19

20 Blink of an eye 100ms

21 Time Network latency: milliseconds Application instruction: microseconds Hardware instructions: nanoseconds

22 String token = getgithubtoken("

23 =

24 #WRONG

25

26 Non Blocking For Everyone with Frank Lyaruu CTO Dexels

27 Non Blocking in Action 27

28 28 So why are we still writing blocking code?! It works pretty well in monoliths! CPU and memory is cheap! Networks are reliable and fast! Writing non blocking code is hard

29 Writing non blocking code is rough 29

30 Servlet API 30

31 Non Blocking I/O Servlet API

32 A Blocking Echo Servlet 32 public class BlockingServlet extends HttpServlet { private static final int BUFFER_SIZE = 1024; } protected void service(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { byte[] buffer = new byte[buffer_size]; while (true) { int read = request.getinputstream().read(buffer, 0, BUFFER_SIZE); if (read < 0) break; response.getoutputstream().write(buffer, 0, read); } }

33 A Non Blocking Echo Servlet 33 public class NonBlockingServlet extends HttpServlet { private static final int BUFFER_SIZE = protected void service(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { AsyncContext asynccontext = request.startasync(request, response); asynccontext.settimeout(0); Echoer echoer = new Echoer(asyncContext); request.getinputstream().setreadlistener(echoer); response.getoutputstream().setwritelistener(echoer); } private class Echoer implements ReadListener, WriteListener { private final byte[] buffer = new byte[buffer_size]; private final AsyncContext asynccontext; private final ServletInputStream input; private final ServletOutputStream output; private boolean complete; private Echoer(AsyncContext asynccontext) throws IOException { this.asynccontext = asynccontext; this.input = asynccontext.getrequest().getinputstream(); this.output = asynccontext.getresponse().getoutputstream(); public void ondataavailable() throws IOException { while (input.isready()) { int read = input.read(buffer); output.write(buffer, 0, read); if (!output.isready()) return; } } public void onalldataread() throws IOException public void onwritepossible() throws IOException { if (input.isfinished()) { if (!complete) asynccontext.complete(); } else { ondataavailable(); } public void onerror(throwable failure) { failure.printstacktrace(); } } if (input.isfinished()) { complete = true; asynccontext.complete(); }

34 Maybe something simpler 34 protected void doget(httpservletrequest req, HttpServletResponse resp) { AsyncContext asynccontext = request.startasync(request, response); final ServletOutputStream out = resp.getoutputstream(); final byte[] buf = new byte[1024]; final FileInputStream file = ; out.setwritelistener(new WriteListener() public void onwritepossible() throws IOException { while(out.isready()) { int len = file.read(buf); if(len<0) { return; } out.write(buf, 0, len); } } }); }

35 Bob 35

36 Developer 36

37 Node.js 37 var server = http.createserver(function (req, res) { req.pipe(res); });

38 Node.js 38 var server = http.createserver(function (req, res) { req.pipe(res); });

39 A pipe 39

40 40 Reactive Programming Programming pipes

41 41 ReactiveX Polyglot RxJava RxScala RxJS RxPHP

42 42 Observable<T> Will push zero or more items of type T Followed by a completed message (or an error )

43 RxJava Quick Intro 43 Observable.<String>just("Ouagadougou","Dakar","Accra","Rabat").subscribe(item->System.err.println(item)); Ouagadougou Dakar Accra Rabat

44 RxJava Quick Intro 44 Observable.range(0, 1000).subscribe(item->System.err.println(item));

45 RxJava Quick Intro Observable.range(0, 1000).skip(10).take(10).subscribe(item->System.err.println(item));

46 RxJava Quick Intro 46 Bytes.fromFile("citiesafrica.xml").lift(XML.parse()).subscribe(item->System.err.println(item)); <cities> <africa> <city name="lusaka"/> <city name="harare"/> <city name="kigali"/> </africa> </cities> START_DOCUMENT START_ELEMENT cities {} START_ELEMENT africa {} START_ELEMENT city {name=lusaka} END_ELEMENT city START_ELEMENT city {name=harare} END_ELEMENT city START_ELEMENT city {name=kigali} END_ELEMENT city END_ELEMENT africa END_ELEMENT cities END_DOCUMENT

47 RxJava Quick Intro 47 Bytes.fromFile("citiesafrica.xml").lift(XML.parse()).filter(e->e.getType()==XmlEventTypes.START_ELEMENT).map(e->e.getAttributes().get("name")).subscribe(item->System.err.println(item)); <cities> <africa> <city name="lusaka"/> <city name="harare"/> <city name="kigali"/> </africa> </cities> Lusaka Harare Kigali

48 RxJava Quick Intro static Observable<byte[]> createsourceobservable(httpservletrequest req); static Subscriber<byte[]> createsink(httpservletresponse resp); protected void dopost(httpservletrequest req, final HttpServletResponse resp) { createsourceobservable(req).subscribe(createsink(resp)); }

49 Reactive API s 49

50 A Blocking API public static Double temperatureincity(string city) { return Double.parseDouble(HTTPClient.get(" } For consumers: Double temperature = temperatureincity("tripoli");

51 Convert to Reactive public Observable<Double> temperatureincity(string city) { return Observable.just( Double.parseDouble(HTTPClient.get(" )); }

52

53 Sort of Double temp = temperatureincity( Cairo ).blockingfirst(); updatetemperatureui(temp); This code is still just as blocking But now the consumer and producer have independent threading

54 Use a Non Blocking HTTP Client public static Observable<Double> temperatureincity(string city) { return HTTP.get(" }

55 Add a Cache public Observable<Double> temperatureincity(string city) { Double temperature = temperaturecache.get(city); if(temperature!=null) { return Observable.just(temperature); } return HTTP.get(" }

56 Non Blocking Client Blocking: Double temp = temperatureincity( Cairo").toBlocking().first(); updatetemperatureui(temp); Non blocking: temperatureincity( Nairobi ).observeon(uischedulers.uithread()).subscribe(d->updatetemperatureui(d));

57 Challenges 57

58 Back pressure 58

59 59 Back pressure Operation

60 A Blocking Echo Servlet 60 public class BlockingServlet extends HttpServlet { private static final int BUFFER_SIZE = 1024; } protected void service(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { byte[] buffer = new byte[buffer_size]; while (true) { int read = request.getinputstream().read(buffer, 0, BUFFER_SIZE); if (read < 0) break; response.getoutputstream().write(buffer, 0, read); } }

61 61 Back pressure! Observable: No back pressure! Flowable: Back pressure

62 RxJava back pressure 62 Bytes.fromNetwork( something_huge.xml ).lift(xml.parse()).filter(e->e.gettype()==xmleventtypes.start_element).map(e->e.getattributes().get("name")).subscribe(item->dosomethingcomplicated(item));

63 63 Back pressure Operation

64 64 Back pressure Operation

65 65 Memory Consumption! Much better! or much worse

66 66 Error Handling! Some patterns don t work any more! Requires some thought

67 Error handling 67 Servlet.handlePost().lift(XML.parse()).subscribe(item->sendSomeWhere(item)); <cities> <africa> <city name="lusaka"/> <city name="harare"/> <city name="kigali"/> START_DOCUMENT START_ELEMENT cities {} START_ELEMENT africa {} START_ELEMENT city {name=lusaka} END_ELEMENT city START_ELEMENT city {name=harare} END_ELEMENT city START_ELEMENT city {name=kigali} END_ELEMENT city END_ELEMENT africa PARSE_ERROR </cities>

68 68 Non Blocking is not faster! It is about utilising threads better! If thread utilisation is not an issue, it will perform similarly

69 69 Thoughts! RxJava is lightweight and easy to add to existing software! Pleasant programming model! Makes non blocking I/O bearable! Can be used incrementally

70 70 Conclusions! Threads are expensive! Everything keeps getting faster except the speed of light! Micro services! Blocking code misbehaves under pressure! The price of blocking communication will keep going up I believe that, in time, some non blocking code is inevitable

71 Dexels dexels.com Please rate!

The Road to Reactive with RxJava. Or: How to use non blocking I/O without wanting to kill yourself

The Road to Reactive with RxJava. Or: How to use non blocking I/O without wanting to kill yourself The Road to Reactive with RxJava Or: How to use non blocking I/O without wanting to kill yourself Legacy An accomplishment that remains relevant long after a person has died Software is not so lucky

More information

HTTP status codes. Setting status of an HTTPServletResponse

HTTP status codes. Setting status of an HTTPServletResponse HTTP status codes Setting status of an HTTPServletResponse What are HTTP status codes? The HTTP protocol standard includes three digit status codes to be included in the header of an HTTP response. There

More information

Connecting the RISC Client to non-javascriptinterfaces

Connecting the RISC Client to non-javascriptinterfaces Connecting the RISC Client to non-javascriptinterfaces Motivation In industry scenarios there is the necessity to connect the RISC client to client side subdevices or interfaces. Examples: serial / USB

More information

The artist formerly known as JBoss AS. Harald ~

The artist formerly known as JBoss AS. Harald ~ The artist formerly known as JBoss AS Harald Pehl @haraldpehl ~ http://hpehl.info WildFly? JBoss AS JBoss Community ~ 100 Projekte JBoss Enterprise Application Platform Name overloaded WildFly! Folgeversion

More information

JAVA SERVLET. Server-side Programming INTRODUCTION

JAVA SERVLET. Server-side Programming INTRODUCTION JAVA SERVLET Server-side Programming INTRODUCTION 1 AGENDA Introduction Java Servlet Web/Application Server Servlet Life Cycle Web Application Life Cycle Servlet API Writing Servlet Program Summary 2 INTRODUCTION

More information

Java servlets CSCI 470: Web Science Keith Vertanen Copyright 2013

Java servlets CSCI 470: Web Science Keith Vertanen Copyright 2013 Java servlets CSCI 470: Web Science Keith Vertanen Copyright 2013 Overview Dynamic web content genera2on (thus far) CGI Web server modules Server- side scrip2ng e.g. PHP, ASP, JSP Custom web server Java

More information

INTRODUCTION TO SERVLETS AND WEB CONTAINERS. Actions in Accord with All the Laws of Nature

INTRODUCTION TO SERVLETS AND WEB CONTAINERS. Actions in Accord with All the Laws of Nature INTRODUCTION TO SERVLETS AND WEB CONTAINERS Actions in Accord with All the Laws of Nature Web server vs web container Most commercial web applications use Apache proven architecture and free license. Tomcat

More information

Servlets and JSP (Java Server Pages)

Servlets and JSP (Java Server Pages) Servlets and JSP (Java Server Pages) XML HTTP CGI Web usability Last Week Nan Niu (nn@cs.toronto.edu) CSC309 -- Fall 2008 2 Servlets Generic Java2EE API for invoking and connecting to mini-servers (lightweight,

More information

Reactive Java EE - Let Me Count the Ways!

Reactive Java EE - Let Me Count the Ways! Reactive Java EE - Let Me Count the Ways! Reza Rahman Java EE Evangelist Reza.Rahman@Oracle.com @reza_rahman Java Day Tokyo 2015 April 8, 2015 Safe Harbor Statement The following is intended to outline

More information

The Basic Web Server CGI. CGI: Illustration. Web based Applications, Tomcat and Servlets - Lab 3 - CMPUT 391 Database Management Systems 4

The Basic Web Server CGI. CGI: Illustration. Web based Applications, Tomcat and Servlets - Lab 3 - CMPUT 391 Database Management Systems 4 CMPUT 391 Database Management Systems The Basic Web based Applications, - - CMPUT 391 Database Management Systems Department of Computing Science University of Alberta CMPUT 391 Database Management Systems

More information

Flexible EAI-Lösungen mit Glassfish

Flexible EAI-Lösungen mit Glassfish Flexible EAI-Lösungen mit Glassfish Praxisbeispiele und War Stories zu EAI-Pattern Alexander Heusingfeld, @goldstift Martin Huber, @waterback We take care of it - personally! EAI Pattern in 2013? EAI

More information

Web based Applications, Tomcat and Servlets - Lab 3 -

Web based Applications, Tomcat and Servlets - Lab 3 - CMPUT 391 Database Management Systems Web based Applications, - - CMPUT 391 Database Management Systems Department of Computing Science University of Alberta The Basic Web Server CMPUT 391 Database Management

More information

Enterprise Java Unit 1- Chapter 4 Prof. Sujata Rizal Servlet API and Lifecycle

Enterprise Java Unit 1- Chapter 4 Prof. Sujata Rizal Servlet API and Lifecycle Introduction Now that the concept of servlet is in place, let s move one step further and understand the basic classes and interfaces that java provides to deal with servlets. Java provides a servlet Application

More information

Java Enterprise Edition. Java EE Oct Dec 2016 EFREI/M1 Jacques André Augustin Page 1

Java Enterprise Edition. Java EE Oct Dec 2016 EFREI/M1 Jacques André Augustin Page 1 Java Enterprise Edition Java EE Oct Dec 2016 EFREI/M1 Jacques André Augustin Page 1 Java Beans Java EE Oct Dec 2016 EFREI/M1 Jacques André Augustin Page 2 Java Bean POJO class : private Attributes public

More information

Servlets by Example. Joe Howse 7 June 2011

Servlets by Example. Joe Howse 7 June 2011 Servlets by Example Joe Howse 7 June 2011 What is a servlet? A servlet is a Java application that receives HTTP requests as input and generates HTTP responses as output. As the name implies, it runs on

More information

Seminar reports and projects: Report options: option 1: general report

Seminar reports and projects: Report options: option 1: general report Seminar reports and projects: Report options: 3 option 1: general report option 2: report about the on-the-shelf hardware for the main controller with explicit cost/performance comparison option 3: report

More information

Advanced Internet Technology Lab # 4 Servlets

Advanced Internet Technology Lab # 4 Servlets Faculty of Engineering Computer Engineering Department Islamic University of Gaza 2011 Advanced Internet Technology Lab # 4 Servlets Eng. Doaa Abu Jabal Advanced Internet Technology Lab # 4 Servlets Objective:

More information

Modern app programming

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

More information

A Practical Use of Servlet 3.1: Implementing WebSocket 1.0

A Practical Use of Servlet 3.1: Implementing WebSocket 1.0 1 A Practical Use of Servlet 3.1: Implementing WebSocket 1.0 Mark Thomas September 2013 Agenda Introductions WebSocket Implementation aims Mapping to Servlet 3.1 features Complicating factors Summary Questions

More information

Generating the Server Response: HTTP Status Codes

Generating the Server Response: HTTP Status Codes Generating the Server Response: HTTP Status Codes 1 Agenda Format of the HTTP response How to set status codes What the status codes are good for Shortcut methods for redirection and error pages A servlet

More information

why? Give an app access to a resource managed by someone else, without giving the app your password. A valet key for the web Allen I.

why? Give an app access to a resource managed by someone else, without giving the app your password. A valet key for the web Allen I. Give an app access to a resource managed by someone else, without giving the app your password. why? Allen I. Holub Holub Associates allen@holub.com @allenholub 1 2 2 tells the A valet key for the web

More information

Lab session Google Application Engine - GAE. Navid Nikaein

Lab session Google Application Engine - GAE. Navid Nikaein Lab session Google Application Engine - GAE Navid Nikaein Available projects Project Company contact Mobile Financial Services Innovation TIC Vasco Mendès Bluetooth low energy Application on Smart Phone

More information

********************************************************************

******************************************************************** ******************************************************************** www.techfaq360.com SCWCD Mock Questions : Servlet ******************************************************************** Question No :1

More information

Cloud Computing Platform as a Service

Cloud Computing Platform as a Service HES-SO Master of Science in Engineering Cloud Computing Platform as a Service Academic year 2015/16 Platform as a Service Professional operation of an IT infrastructure Traditional deployment Server Storage

More information

LAB 1 PREPARED BY : DR. AJUNE WANIS ISMAIL FACULTY OF COMPUTING UNIVERSITI TEKNOLOGI MALAYSIA

LAB 1 PREPARED BY : DR. AJUNE WANIS ISMAIL FACULTY OF COMPUTING UNIVERSITI TEKNOLOGI MALAYSIA LAB 1 PREPARED BY : DR. AJUNE WANIS ISMAIL FACULTY OF COMPUTING UNIVERSITI TEKNOLOGI MALAYSIA Setting up Java Development Kit This step involves downloading an implementation of the Java Software Development

More information

Question Score 1 / 19 2 / 19 3 / 16 4 / 29 5 / 17 Total / 100

Question Score 1 / 19 2 / 19 3 / 16 4 / 29 5 / 17 Total / 100 NAME: Login name: Computer Science 461 Midterm Exam March 10, 2010 3:00-4:20pm This test has five (5) questions. Put your name on every page, and write out and sign the Honor Code pledge before turning

More information

An implementation of Tree Panel component in EXT JS 4.0

An implementation of Tree Panel component in EXT JS 4.0 An implementation of Tree Panel component in EXT JS 4.0 By Hamid M. Porasl This implementation contains an HTML file that t is used to invoke used EXT JS java script files and our implemented java Script

More information

Generating the Server Response:

Generating the Server Response: 2009 Marty Hall Generating the Server Response: HTTP Status Codes Originals of Slides and Source Code for Examples: http://courses.coreservlets.com/course-materials/csajsp2.html p 2 Customized Java EE

More information

Introduction to reactive programming. Jonas Chapuis, Ph.D.

Introduction to reactive programming. Jonas Chapuis, Ph.D. Introduction to reactive programming Jonas Chapuis, Ph.D. Reactive programming is an asynchronous programming paradigm oriented around data flows and the propagation of change wikipedia Things happening

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

CSC309: Introduction to Web Programming. Lecture 11

CSC309: Introduction to Web Programming. Lecture 11 CSC309: Introduction to Web Programming Lecture 11 Wael Aboulsaadat Servlets+JSP Model 2 Architecture 2 Servlets+JSP Model 2 Architecture = MVC Design Pattern 3 Servlets+JSP Model 2 Architecture Controller

More information

DON'T BLOCK YOUR MOBILES AND INTERNET OF THINGS

DON'T BLOCK YOUR MOBILES AND INTERNET OF THINGS DON'T BLOCK YOUR MOBILES AND INTERNET OF THINGS Use non blocking I/O for scalable and resilient server applications MAGNUS LARSSON, PÄR WENÅKER, ANDERS ASPLUND 2014-10-23 CALLISTAENTERPRISE.SE AGENDA The

More information

Session 8. JavaBeans. Reading & Reference. Reading. Reference. Session 8 Java Beans. 2/27/2013 Robert Kelly, Head First Chapter 3 (MVC)

Session 8. JavaBeans. Reading & Reference. Reading. Reference. Session 8 Java Beans. 2/27/2013 Robert Kelly, Head First Chapter 3 (MVC) Session 8 JavaBeans 1 Reading Reading & Reference Head First Chapter 3 (MVC) Reference JavaBeans Tutorialdocs.oracle.com/javase/tutorial/javabeans/ 2 2/27/2013 1 Lecture Objectives Understand how the Model/View/Controller

More information

Session 8. Introduction to Servlets. Semester Project

Session 8. Introduction to Servlets. Semester Project Session 8 Introduction to Servlets 1 Semester Project Reverse engineer a version of the Oracle site You will be validating form fields with Ajax calls to a server You will use multiple formats for the

More information

CSC309: Introduction to Web Programming. Lecture 10

CSC309: Introduction to Web Programming. Lecture 10 CSC309: Introduction to Web Programming Lecture 10 Wael Aboulsaadat WebServer - WebApp Communication 2. Servlets Web Browser Get servlet/serv1? key1=val1&key2=val2 Web Server Servlet Engine WebApp1 serv1

More information

Lecture Notes for 04/04/06: UNTRUSTED CODE Fatima Zarinni.

Lecture Notes for 04/04/06: UNTRUSTED CODE Fatima Zarinni. Lecture Notes for 04/04/06 UNTRUSTED CODE Fatima Zarinni. Last class we started to talk about the different System Solutions for Stack Overflow. We are going to continue the subject. Stages of Stack Overflow

More information

Web Programming. Lecture 11. University of Toronto

Web Programming. Lecture 11. University of Toronto CSC309: Introduction to Web Programming Lecture 11 Wael Aboulsaadat University of Toronto Servlets+JSP Model 2 Architecture University of Toronto 2 Servlets+JSP Model 2 Architecture = MVC Design Pattern

More information

AES Code Example

AES Code Example 210 Figure 12-1. Block cipher chaining modes 12.1.6. AES Code Example Now that we have covered block ciphers and CBC, we provide a simple Java code example that can encrypt and decrypt using AES in CBC

More information

Session 9. Introduction to Servlets. Lecture Objectives

Session 9. Introduction to Servlets. Lecture Objectives Session 9 Introduction to Servlets Lecture Objectives Understand the foundations for client/server Web interactions Understand the servlet life cycle 2 10/11/2018 1 Reading & Reference Reading Use the

More information

Implementation Architecture

Implementation Architecture Implementation Architecture Software Architecture VO/KU (707023/707024) Roman Kern ISDS, TU Graz 2017-11-15 Roman Kern (ISDS, TU Graz) Implementation Architecture 2017-11-15 1 / 54 Outline 1 Definition

More information

Internet Connectivity with

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

More information

Part V. SAX Simple API for XML

Part V. SAX Simple API for XML Part V SAX Simple API for XML Torsten Grust (WSI) Database-Supported XML Processors Winter 2012/13 76 Outline of this part 1 SAX Events 2 SAX Callbacks 3 SAX and the XML Tree Structure 4 Final Remarks

More information

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

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

More information

SPDY - A Web Protocol. Mike Belshe Velocity, Dec 2009

SPDY - A Web Protocol. Mike Belshe Velocity, Dec 2009 SPDY - A Web Protocol Mike Belshe Velocity, Dec 2009 What is SPDY? Concept SPDY is an application layer protocol for transporting content over the web with reduced latency. Basic Features 1. Multiplexed

More information

Part V. SAX Simple API for XML. Torsten Grust (WSI) Database-Supported XML Processors Winter 2008/09 84

Part V. SAX Simple API for XML. Torsten Grust (WSI) Database-Supported XML Processors Winter 2008/09 84 Part V SAX Simple API for XML Torsten Grust (WSI) Database-Supported XML Processors Winter 2008/09 84 Outline of this part 1 SAX Events 2 SAX Callbacks 3 SAX and the XML Tree Structure 4 SAX and Path Queries

More information

Unit-4: Servlet Sessions:

Unit-4: Servlet Sessions: 4.1 What Is Session Tracking? Unit-4: Servlet Sessions: Session tracking is the capability of a server to maintain the current state of a single client s sequential requests. Session simply means a particular

More information

Using TCnative with Comet/Asynch. Jean-Frederic Clere, Red Hat November 9th

Using TCnative with Comet/Asynch. Jean-Frederic Clere, Red Hat November 9th Using TCnative with Comet/Asynch Jean-Frederic Clere, Red Hat jfclere@gmail.com, November 9th What I will cover Who I am AJAX and Tomcat. Comet and HTTP/1.1 Asynchronous in 3.0 Specs NIO (NIO2) Tomcat

More information

Generating the Server Response: HTTP Response Headers

Generating the Server Response: HTTP Response Headers Generating the Server Response: HTTP Response Headers 1 Agenda Format of the HTTP response Setting response headers Understanding what response headers are good for Building Excel spread sheets Generating

More information

Java Servlets. Preparing your System

Java Servlets. Preparing your System Java Servlets Preparing to develop servlets Writing and running an Hello World servlet Servlet Life Cycle Methods The Servlet API Loading and Testing Servlets Preparing your System Locate the file jakarta-tomcat-3.3a.zip

More information

JSR 311: JAX-RS: The Java API for RESTful Web Services

JSR 311: JAX-RS: The Java API for RESTful Web Services JSR 311: JAX-RS: The Java API for RESTful Web Services Marc Hadley, Paul Sandoz, Roderico Cruz Sun Microsystems, Inc. http://jsr311.dev.java.net/ TS-6411 2007 JavaOne SM Conference Session TS-6411 Agenda

More information

Large-Scale Web Applications

Large-Scale Web Applications Large-Scale Web Applications Mendel Rosenblum Web Application Architecture Web Browser Web Server / Application server Storage System HTTP Internet CS142 Lecture Notes - Intro LAN 2 Large-Scale: Scale-Out

More information

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

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

More information

Backend. (Very) Simple server examples

Backend. (Very) Simple server examples Backend (Very) Simple server examples Web server example Browser HTML form HTTP/GET Webserver / Servlet JDBC DB Student example sqlite>.schema CREATE TABLE students(id integer primary key asc,name varchar(30));

More information

Stateless -Session Bean

Stateless -Session Bean Stateless -Session Bean Prepared by: A.Saleem Raja MCA.,M.Phil.,(M.Tech) Lecturer/MCA Chettinad College of Engineering and Technology-Karur E-Mail: asaleemrajasec@gmail.com Creating an Enterprise Application

More information

CIS 3952 [Part 2] Java Servlets and JSP tutorial

CIS 3952 [Part 2] Java Servlets and JSP tutorial Java Servlets Example 1 (Plain Servlet) SERVLET CODE import java.io.ioexception; import java.io.printwriter; import javax.servlet.servletexception; import javax.servlet.annotation.webservlet; import javax.servlet.http.httpservlet;

More information

4.1 The Life Cycle of a Servlet 4.2 The Java Servlet Development Kit 4.3 The Simple Servlet: Creating and compile servlet source code, start a web

4.1 The Life Cycle of a Servlet 4.2 The Java Servlet Development Kit 4.3 The Simple Servlet: Creating and compile servlet source code, start a web UNIT - 4 Servlet 4.1 The Life Cycle of a Servlet 4.2 The Java Servlet Development Kit 4.3 The Simple Servlet: Creating and compile servlet source code, start a web browser and request the servlet, example

More information

Accelerating SVG Transformations with Pipelines XML & SVG Event Pipelines Technologies Recommendations

Accelerating SVG Transformations with Pipelines XML & SVG Event Pipelines Technologies Recommendations Accelerating SVG Transformations with Pipelines XML & SVG Event Pipelines Technologies Recommendations Eric Gropp Lead Systems Developer, MWH Inc. SVG Open 2003 XML & SVG In the Enterprise SVG can meet

More information

sessionx Desarrollo de Aplicaciones en Red A few more words about CGI CGI Servlet & JSP José Rafael Rojano Cáceres

sessionx Desarrollo de Aplicaciones en Red A few more words about CGI CGI Servlet & JSP José Rafael Rojano Cáceres sessionx Desarrollo de Aplicaciones en Red José Rafael Rojano Cáceres http://www.uv.mx/rrojano A few more words about Common Gateway Interface 1 2 CGI So originally CGI purpose was to let communicate a

More information

UNIT-V. Web Servers: Tomcat Server Installation:

UNIT-V. Web Servers: Tomcat Server Installation: UNIT-V Web Servers: The Web server is meant for keeping Websites. It Stores and transmits web documents (files). It uses the HTTP protocol to connect to other computers and distribute information. Example:

More information

CS193i Final Exam SITN students -- hopefully you are getting this soon enough to take it on

CS193i Final Exam SITN students -- hopefully you are getting this soon enough to take it on CS193i, Stanford Handout #39 Spring, 99-00 Nick Parlante CS193i Final Exam SITN students -- hopefully you are getting this soon enough to take it on Tue or Wed. I would like to get the exam back in my

More information

Servlet Basics. Agenda

Servlet Basics. Agenda Servlet Basics 1 Agenda The basic structure of servlets A simple servlet that generates plain text A servlet that generates HTML Servlets and packages Some utilities that help build HTML The servlet life

More information

Acceleration Techniques for XML Processors

Acceleration Techniques for XML Processors Acceleration Techniques for XML Processors Biswadeep Nag Staff Engineer Performance Engineering XMLConference 2004 XML is Everywhere Configuration files (web.xml, TurboTax) Office documents (StarOffice,

More information

Remote Exploit. compass-security.com 1

Remote Exploit. compass-security.com 1 Remote Exploit compass-security.com 1 Content Intel Architecture Memory Layout C Arrays Buffer Overflow BoF Exploit Assembler Shellcode Function Calls Debugging Remote Exploit Exploit Mitigations Defeat

More information

Unit 3 - Week 2 lectures: Building your webapp

Unit 3 - Week 2 lectures: Building your webapp X Courses» Modern Application Development Announcements Course Forum Progress Mentor Discourse forum Discussion Forum Unit 3 - Week 2 lectures: Building your webapp Course outline How to access the portal?

More information

&' () - #-& -#-!& 2 - % (3" 3 !!! + #%!%,)& ! "# * +,

&' () - #-& -#-!& 2 - % (3 3 !!! + #%!%,)& ! # * +, ! "# # $! " &' ()!"#$$&$'(!!! ($) * + #!,)& - #-& +"- #!(-& #& #$.//0& -#-!& #-$$!& 1+#& 2-2" (3" 3 * * +, - -! #.// HttpServlet $ Servlet 2 $"!4)$5 #& 5 5 6! 0 -.// # 1 7 8 5 9 2 35-4 2 3+ -4 2 36-4 $

More information

ServletConfig Interface

ServletConfig Interface ServletConfig Interface Author : Rajat Categories : Advance Java An object of ServletConfig is created by the web container for each servlet. This object can be used to get configuration information from

More information

This tutorial will teach you how to use Java Servlets to develop your web based applications in simple and easy steps.

This tutorial will teach you how to use Java Servlets to develop your web based applications in simple and easy steps. About the Tutorial Servlets provide a component-based, platform-independent method for building Webbased applications, without the performance limitations of CGI programs. Servlets have access to the entire

More information

Scripting Languages in OSGi. Thursday, November 8, 12

Scripting Languages in OSGi. Thursday, November 8, 12 Scripting Languages in OSGi Frank Lyaruu CTO Dexels Project lead Navajo Framework Amsterdam www.dexels.com Twitter: @lyaruu Navajo Framework TSL XML based script language Compiled to Java Recently ported

More information

Writing Reactive Application using Angular/RxJS, Spring WebFlux and Couchbase. Naresh Chintalcheru

Writing Reactive Application using Angular/RxJS, Spring WebFlux and Couchbase. Naresh Chintalcheru Writing Reactive Application using Angular/RxJS, Spring WebFlux and Couchbase Naresh Chintalcheru Who is Naresh Technology professional for 18+ years Currently, Technical Architect at Cars.com Lecturer

More information

Web Based Solutions. Gerry Seidman. IAM Consulting

Web Based Solutions. Gerry Seidman. IAM Consulting Web Based Solutions Gerry Seidman Internet Access Methods seidman@iamx.com http://www.iam-there.com 212-580-2700 IAM Consulting seidman@iamx.com http://www.iamx.com 212-580-2700 (c) IAM Consulting Corp.

More information

Advanced Web Technology

Advanced Web Technology Berne University of Applied Sciences Dr. E. Benoist Winter Term 2005-2006 Presentation 1 Presentation of the Course Part Java and the Web Servlet JSP and JSP Deployment The Model View Controler (Java Server

More information

Advanced Topics in Operating Systems. Manual for Lab Practices. Enterprise JavaBeans

Advanced Topics in Operating Systems. Manual for Lab Practices. Enterprise JavaBeans University of New York, Tirana M.Sc. Computer Science Advanced Topics in Operating Systems Manual for Lab Practices Enterprise JavaBeans PART III A Web Banking Application with EJB and MySQL Development

More information

WebSocket and Java EE: A State of the Union

WebSocket and Java EE: A State of the Union WebSocket and Java EE: A State of the Union Justin Lee @evanchooly Senior Software Engineer Squarespace.com Introduction Java developer since 1996 Former member of the GlassFish/Grizzly team Implemented

More information

Platform as a Service lecture 2

Platform as a Service lecture 2 Politecnico di Milano Platform as a Service lecture 2 Building an example application in Google App Engine Cloud patterns Elisabetta Di Nitto Developing an application for Google App Engine (GAE)! Install

More information

Motivation of VPN! Overview! VPN addressing and routing! Two basic techniques for VPN! ! How to guarantee privacy of network traffic?!

Motivation of VPN! Overview! VPN addressing and routing! Two basic techniques for VPN! ! How to guarantee privacy of network traffic?! Overview!! Last Lecture!! Daemon processes and advanced I/O functions!! This Lecture!! VPN, NAT, DHCP!! Source: Chapters 19&22 of Comer s book!! Unix domain protocols and non-blocking I/O!! Source: Chapters

More information

An overview of (a)sync & (non-) blocking

An overview of (a)sync & (non-) blocking An overview of (a)sync & (non-) blocking or why is my web-server not responding? with funny fonts! Experiment & reproduce https://github.com/antonfagerberg/play-performance sync & blocking code sync &

More information

Berner Fachhochschule Haute cole spcialise bernoise Berne University of Applied Sciences 2

Berner Fachhochschule Haute cole spcialise bernoise Berne University of Applied Sciences 2 Java Servlets Adv. Web Technologies 1) Servlets (introduction) Emmanuel Benoist Fall Term 2016-17 Introduction HttpServlets Class HttpServletResponse HttpServletRequest Lifecycle Methods Session Handling

More information

Vendor: SUN. Exam Code: Exam Name: Sun Certified Web Component Developer for J2EE 5. Version: Demo

Vendor: SUN. Exam Code: Exam Name: Sun Certified Web Component Developer for J2EE 5. Version: Demo Vendor: SUN Exam Code: 310-083 Exam Name: Sun Certified Web Component Developer for J2EE 5 Version: Demo QUESTION NO: 1 You need to store a Java long primitive attribute, called customeroid, into the session

More information

The New HTTP Client API in Java 11

The New HTTP Client API in Java 11 The New HTTP Client API in Java 11 Sergey Kuksenko Java Platform Group, Oracle October, 2018 Safe Harbor Statement The following is intended to outline our general product directon. It is intended for

More information

ICOM 4015-Advanced Programming. Spring Instructor: Dr. Amir H. Chinaei. TAs: Hector Franqui, Jose Garcia, and Antonio Tapia. Reference: Big Java

ICOM 4015-Advanced Programming. Spring Instructor: Dr. Amir H. Chinaei. TAs: Hector Franqui, Jose Garcia, and Antonio Tapia. Reference: Big Java ICOM 4015-Advanced Programming Spring 2014 Instructor: Dr. Amir H. Chinaei TAs: Hector Franqui, Jose Garcia, and Antonio Tapia Reference: Big Java By Hortsmann, Ed 4 Lab 7 Continuation of HTTP and Introduction

More information

Using Java servlets to generate dynamic WAP content

Using Java servlets to generate dynamic WAP content C H A P T E R 2 4 Using Java servlets to generate dynamic WAP content 24.1 Generating dynamic WAP content 380 24.2 The role of the servlet 381 24.3 Generating output to WAP clients 382 24.4 Invoking a

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

Three hours UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE. Date: Friday 21 st May Time:

Three hours UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE. Date: Friday 21 st May Time: COMP67032 Three hours UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE Building Web Applications Date: Friday 21 st May 2010 Time: 14.00 17.00 Answer Question 1 from Section A and TWO questions out

More information

SERVLET AND JSP FILTERS

SERVLET AND JSP FILTERS SERVLET AND JSP FILTERS FILTERS OVERVIEW Filter basics Accessing the servlet context Using initialization parameters Blocking responses Modifying responses FILTERS: OVERVIEW Associated with any number

More information

XML Parsers. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University

XML Parsers. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University XML Parsers Asst. Prof. Dr. Kanda Runapongsa Saikaew (krunapon@kku.ac.th) Dept. of Computer Engineering Khon Kaen University 1 Overview What are XML Parsers? Programming Interfaces of XML Parsers DOM:

More information

Reactive Programming with Vert.x

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

More information

SSC - Web applications and development Introduction and Java Servlet (I)

SSC - Web applications and development Introduction and Java Servlet (I) SSC - Web applications and development Introduction and Java Servlet (I) Shan He School for Computational Science University of Birmingham Module 06-19321: SSC Outline Outline of Topics What will we learn

More information

AJP. CHAPTER 5: SERVLET -20 marks

AJP. CHAPTER 5: SERVLET -20 marks 1) Draw and explain the life cycle of servlet. (Explanation 3 Marks, Diagram -1 Marks) AJP CHAPTER 5: SERVLET -20 marks Ans : Three methods are central to the life cycle of a servlet. These are init( ),

More information

416 Distributed Systems. Networks review; Day 2 of 2 Fate sharing, e2e principle And start of RPC Jan 10, 2018

416 Distributed Systems. Networks review; Day 2 of 2 Fate sharing, e2e principle And start of RPC Jan 10, 2018 416 Distributed Systems Networks review; Day 2 of 2 Fate sharing, e2e principle And start of RPC Jan 10, 2018 1 Last Time Modularity, Layering, and Decomposition Example: UDP layered on top of IP to provide

More information

Servlets1. What are Servlets? Where are they? Their job. Servlet container. Only Http?

Servlets1. What are Servlets? Where are they? Their job. Servlet container. Only Http? What are Servlets? Servlets1 Fatemeh Abbasinejad abbasine@cs.ucdavis.edu A program that runs on a web server acting as middle layer between requests coming from a web browser and databases or applications

More information

RESTful Web Services Part 1

RESTful Web Services Part 1 RESTful Web Services Part 1 Luciano García Bañuelos Institute of Computer Science About me Luciano García-Bañuelos E-mail: luciano.garcia@ut.ee Office: J.Liivi 2-311 Senior Researcher Software Engineering

More information

Servlets Basic Operations

Servlets Basic Operations Servlets Basic Operations Michael B. Spring Department of Information Science and Telecommunications University of Pittsburgh spring@imap.pitt.edu http://www.sis.pitt.edu/~spring Overview Preparing to

More information

OWASP 5/07/09. The OWASP Foundation OWASP Static Analysis (SA) Track Session 1: Intro to Static Analysis

OWASP 5/07/09. The OWASP Foundation  OWASP Static Analysis (SA) Track Session 1: Intro to Static Analysis Static Analysis (SA) Track Session 1: Intro to Static Analysis Eric Dalci Cigital edalci at cigital dot com 5/07/09 Copyright The Foundation Permission is granted to copy, distribute and/or modify this

More information

HTTP, WebSocket, SPDY, HTTP/2.0

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

More information

CS 43: Computer Networks. 15: Transport Layer & UDP October 5, 2018

CS 43: Computer Networks. 15: Transport Layer & UDP October 5, 2018 CS 43: Computer Networks 15: Layer & UDP October 5, 2018 Reading Quiz Lecture 15 - Slide 2 Layer Moving down a layer. Current perspective: lication is the boss Usually executing within the OS kernel. The

More information

Kamnoetvidya Science Academy. Object Oriented Programming using Java. Ferdin Joe John Joseph. Java Session

Kamnoetvidya Science Academy. Object Oriented Programming using Java. Ferdin Joe John Joseph. Java Session Kamnoetvidya Science Academy Object Oriented Programming using Java Ferdin Joe John Joseph Java Session Create the files as required in the below code and try using sessions in java servlets web.xml

More information

Introduction to Servlets. After which you will doget it

Introduction to Servlets. After which you will doget it Introduction to Servlets After which you will doget it Servlet technology A Java servlet is a Java program that extends the capabilities of a server. Although servlets can respond to any types of requests,

More information

ECE 435 Network Engineering Lecture 10

ECE 435 Network Engineering Lecture 10 ECE 435 Network Engineering Lecture 10 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 28 September 2017 Announcements HW#4 was due HW#5 will be posted. midterm/fall break You

More information

Schahin Rajab TCP or QUIC Which protocol is most promising for the future of the internet?

Schahin Rajab TCP or QUIC Which protocol is most promising for the future of the internet? Schahin Rajab sr2@kth.se 2016 04 20 TCP or QUIC Which protocol is most promising for the future of the internet? Table of contents 1 Introduction 3 2 Background 4 2.1 TCP 4 2.2 UDP 4 2.3 QUIC 4 2.4 HTTP

More information

Get the cookies from the service request: Cookie[] HttpServletRequest.getCookies() Add a cookie to the service response:

Get the cookies from the service request: Cookie[] HttpServletRequest.getCookies() Add a cookie to the service response: Managing Cookies Cookies Cookies are a general mechanism which server side applications can use to both store and retrieve information on the client side Servers send cookies in the HTTP response and browsers

More information