Final Presentation Liat Ben-Ami Yonathan Perez Instructor: Roy Mitrany.

Slides:



Advertisements
Similar presentations
Performance Testing - Kanwalpreet Singh.
Advertisements

Executional Architecture
COEN 445 Communication Networks and Protocols Lab 4
Remote Method Invocation Chin-Chih Chang. Java Remote Object Invocation In Java, the object is serialized before being passed as a parameter to an RMI.
HTTP By: Becky Fultz, Joe Flager, Katie Huston, Tom Packard, Allison Wilsey.
Hypertext Transfer Protocol Kyle Roth Mark Hoover.
16-Jun-15 HTTP Hypertext Transfer Protocol. 2 HTTP messages HTTP is the language that web clients and web servers use to talk to each other HTTP is largely.
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
How the web works: HTTP and CGI explained
The World Wide Web and the Internet Dr Jim Briggs 1WUCM1.
Definitions, Definitions, Definitions Lead to Understanding.
Design and Implementation of a Server Director Project for the LCCN Lab at the Technion.
Proxy Cache Leonid Romanovsky Olga Fomenko Winter 2003 Instructor: Konstantin Sinyuk.
An Introduction to Internetworking. Algorithm for client-server communication with UDP (connectionless) A SERVER A CLIENT Create a server-socket (listener)and.
HTTP Overview Vijayan Sugumaran School of Business Administration Oakland University.
VSP Video Station Protocol Presented by : Mittelman Dana Ben-Hamo Revital Ariel Tal Instructor : Sela Guy Presented by : Mittelman Dana Ben-Hamo Revital.
Lecture 8 Epidemic communication, Server implementation.
HTTP By Mychal Hess, Dee Chow, and Riley Barnes. History HTTP  Tim Berners-Lee he implemented the HTTP protocol in 1990 at the European Center for High-
Session-01. What is a Servlet? Servlet can be described in many ways, depending on the context: 1.Servlet is a technology i.e. used to create web application.
1 Exception and Event Handling (Based on:Concepts of Programming Languages, 8 th edition, by Robert W. Sebesta, 2007)
1 Introduction to Web Development. Web Basics The Web consists of computers on the Internet connected to each other in a specific way Used in all levels.
 2000 Deitel & Associates, Inc. All rights reserved. Chapter 24 – Web Servers (PWS, IIS, Apache, Jigsaw) Outline 24.1Introduction 24.2Microsoft Personal.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Guide to TCP/IP, Second Edition1 Guide To TCP/IP, Second Edition Chapter 6 Basic TCP/IP Services.
Simple Web Services. Internet Basics The Internet is based on a communication protocol named TCP (Transmission Control Protocol) TCP allows programs running.
Introduction to ASP.NET. Prehistory of ASP.NET Original Internet – text based WWW – static graphical content  HTML (client-side) Need for interactive.
Computer Networking From LANs to WANs: Hardware, Software, and Security Chapter 12 Electronic Mail.
(C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.
Simple Web Services. Internet Basics The Internet is based on a communication protocol named TCP (Transmission Control Protocol) TCP allows programs running.
HyperText Transfer Protocol (HTTP).  HTTP is the protocol that supports communication between web browsers and web servers.  A “Web Server” is a HTTP.
CP476 Internet Computing Lecture 5 : HTTP, WWW and URL 1 Lecture 5. WWW, HTTP and URL Objective: to review the concepts of WWW to understand how HTTP works.
JavaScript, Fourth Edition Chapter 12 Updating Web Pages with AJAX.
9/15/2015© 2008 Raymond P. Jefferis IIILect Application Layer.
Java Omar Rana University of South Asia. Course Overview JAVA  C/C++ and JAVA Comparison  OOP in JAVA  Exception Handling  Streams  Graphics User.
A Closer Look at HTTP HyperText Transfer Protocol.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
1 Analysis of Push Initiator Tool used for Wireless Application Protocol Taotao Huang Helsinki University of Technology Department of Electrical and Communication.
Web HTTP Hypertext Transfer Protocol. Web Terminology ◘Message: The basic unit of HTTP communication, consisting of structured sequence of octets matching.
Network Protocols A network protocol defines the structure of messages sent over the network We will only talk about the Internet Network protocols need.
A Web-based Distributed Simulation System Christopher Taewan Ryu Computer Science Department California State University, Fullerton.
Web Client-Server Server Client Hypertext link TCP port 80.
Abhishek Bachchan Vishal Patangia
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
ECEN “Internet Protocols and Modeling”, Spring 2012 Course Materials: Papers, Reference Texts: Bertsekas/Gallager, Stuber, Stallings, etc Class.
World Wide Web “WWW”, "Web" or "W3". World Wide Web “WWW”, "Web" or "W3"
1 Web Servers (Chapter 21 – Pages( ) Outline 21.1 Introduction 21.2 HTTP Request Types 21.3 System Architecture.
Appendix E: Overview of HTTP ©SoftMoore ConsultingSlide 1.
1 WWW. 2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts –Point –Click.
Operating Systems Lesson 12. HTTP vs HTML HTML: hypertext markup language ◦ Definitions of tags that are added to Web documents to control their appearance.
Web Technologies Lecture 1 The Internet and HTTP.
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
CS 6401 The World Wide Web Outline Background Structure Protocols.
Acknowledgement: These slides are adapted from slides provided in Thißen & Spaniol's course Distributed Systems and Middleware, RWTH Aachen Processes Distributed.
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
Overview of Servlets and JSP
COMP2322 Lab 1 Introduction to Wireshark Weichao Li Jan. 22, 2016.
Data Communications and Computer Networks Chapter 2 CS 3830 Lecture 7 Omar Meqdadi Department of Computer Science and Software Engineering University of.
Computer Network Architecture Lecture 6: OSI Model Layers Examples 1 20/12/2012.
Data Communication EDA344, DIT420 Description of Lab 1 and Optional Programming HTTP Assignment Bapi Chatterjee Prajith R G.
Ch 2. Application Layer Myungchul Kim
Simple Web Services. Internet Basics The Internet is based on a communication protocol named TCP (Transmission Control Protocol) TCP allows programs running.
SOAP, Web Service, WSDL Week 14 Web site:
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
Fermilab Scientific Computing Division Fermi National Accelerator Laboratory, Batavia, Illinois, USA. Off-the-Shelf Hardware and Software DAQ Performance.
Tiny http client and server
Processes The most important processes used in Web-based systems and their internal organization.
WEB API.
Realizing Concurrency using Posix Threads (pthreads)
Realizing Concurrency using Posix Threads (pthreads)
An Introduction to Internetworking
Presentation transcript:

Final Presentation Liat Ben-Ami Yonathan Perez Instructor: Roy Mitrany

Presentation Overview Goal Market Survey – where does HTTP Bomber fit HTTP Background How does HTTP Bomber work? Technologies Design Overview Important Modules Concurrency GUI Summary & Gained Knowledge

Goals Generate Http traffic load in order to test server performance Analyze server responses and provide analysis results with a clear graphic display

Market survey: existing products Several traffic generators: generate traffic according to user-defined workload. HP httperf, curl-loader project,.. Http Analyzers / Monitors : monitor all http traffic from and to a user-agent, analyze it and provide graphic display of the results. Http Analyzer V5 by IE Inspector, Http Debugger Pro by Softx,… HTTP Bomber is an HTTP traffic generator that also provides analysis and graphic display of the traffic to and from the tested server.

HTTP Protocol Most significant application-layer protocol in the World Wide Web. Operates over reliable transport layer protocol (TCP) Goal: Transfer data of various types (Resources) over the Internet. Resources are identified by URIs. A stateless request-response protocol

HTTP Messages Header 1: value 1 Header 2: value2 … Header N: value N

HTTP Messages – cont. Request initial line: Method + URI + protocol version Methods supported by HTTP Bomber: GET & POST Response initial line: protocol version + status code + textual explanation status codes: 1xx: informational 2xx: success 3xx: redirection 4xx: Client error 5xx: Server error

How does HTTP Bomber work? User sets execution parameters (including tested server’s name) User builds a list of requests to be sent to server User starts simulation Virtual users send requests to server and collect responses. Responses are analyzed and statistical info is gathered and displayed.

Technologies Java Eclipse GUI: javax.swing, Jigloo Jfreechart Apache Http components

Design Overview HTTP Bomber Generator Analyzer (including Graphic display) Response Recorder writeread Server GUI / API Request List

Design Overview – Cont. Modular design HttpBomber – Top hierarchy module. Its public methods are used as user interface – as API or through GUI. Generator: generate workload and communicate with the server Analyzer: gather statistical info, write report, display graphs Generator and Analyzer interact through a common synchronized data structure

HttpBomber – Sequence Diagram

HttpGenerator - Purpose Send requests to server according to user-defined workload (execution parameters and request list) and produce records of server’s responses.

HttpGenerator - Implementation Requests are sent by virtual users (threads) through a multi-threaded Apache HttpClient. Number of virtual users is defined in execution parameters. Each virtual user iterates over the request list in a cyclic order. For each request: send request, receive response, generate a record and update the response recorder. Custom handling for IO and protocol errors

Generator – Sequence Diagram

Analyzer - Purpose Gather and produce statistical info from response records, produce report file and display graphs.

Analyzer - Implementation getData thread copies new data from the synchronized response recorder, updates counters and local data structures and writes record content to the report file. Gathered info: requestsSent, errorNum, dataReceived, dataSent, number of responses per each status code Separate threads run graphs – one thread per graph. Updated according to gathered info. at end of simulation – statistical info is computed and added to report and final graphs are displayed

Report File Example ******Start Report****** Start Time: Tue Apr 26 02:05:33 IDT 2011 Workload Parameters: Tested Server: port: 80, Number of virtual users: 1, max time cap: msec max requests per user: 5, max timeout: msec, max allowed retrials per request: 2 Response Records: Request index: 0, Status Code: 404, Data Sent: 65 bytes, Data Received: bytes, Response Time: 921 msec, Time stamp: Tue Apr 26 02:05:34 IDT 2011 Request index: 1, Status Code: 405, Data Sent: 68 bytes, Data Received: bytes, Response Time: 115 msec, Time stamp: Tue Apr 26 02:05:34 IDT 2011 Request index: 2, Status Code: 200, Data Sent: 60 bytes, Data Received: bytes, Response Time: 332 msec, Time stamp: Tue Apr 26 02:05:34 IDT 2011 Request index: 0, Status Code: 404, Data Sent: 65 bytes, Data Received: bytes, Response Time: 125 msec, Time stamp: Tue Apr 26 02:05:34 IDT 2011 Request index: 1, Status Code: 405, Data Sent: 68 bytes, Data Received: bytes, Response Time: 131 msec, Time stamp: Tue Apr 26 02:05:35 IDT 2011 Total requests sent: 5 Total data received: KB Total data sent: 0.33 KB Total errors: 0 Average traffic rate: KB/sec Response Time Statistics: Minimal msec, Maximal msec, Median msec, Average msec Status Code Distribution (zero indicates IO or protocol errors): 200 : 20% 404 : 40% 405 : 40% Time: Tue Apr 26 02:05:35 IDT 2011 Simulation ended:simulation ended *********End of report********

Synchronized Response Recorder 12N N - Number of requests in request list Records of responses to request i

HttpBomber Class Diagram

Graph Display – Online Graphs

Graph Display – Offline Graphs

Graph Display - Implementation

Graph Display – Sequence Diagram

Concurrency HTTP Bomber is a highly-concurrent application Significant need for Synchronization. Minimize access to mutable shared data. Several “virtual users” threads send requests simultaneously to server and write to the Response Recorder Analyzer: Analyzer main thread, getData thread and a thread for each of the graphs

Main thread Simulation startAnalyzer thread Virtual Users Threads …. start join start getData Thread Graph Threads start done join

User Guide - GUI

User Guide – using API example public class MainTest{ public static void main(String[] args) { URI uri1 = null; URI uri2 = null; try { uri1 = new URI(" uri2 = new URI("/jiadb"); } catch (URISyntaxException e) { return; } HttpBomber bomber = new HttpBomber(); /* set execution parameters */ bomber.setExecutionParameters(" 10, 60000, 100, Long.MAX_VALUE, 2); /* build request list */ try{ bomber.addGetRequest(uri2); bomber.addStringPostRequest(uri1, "bla bla", "text/plain; charset = UTF-8"); bomber.addGetRequest(uri1); bomber.addHeader(0, "User-Agent", "HTTP Bomber"); bomber.addHeader(1, "User-Agent", "HTTP Bomber"); bomber.addHeader(2, "User-Agent", "HTTP Bomber"); }catch(Exception e){ e.printStackTrace();} /* set graphic display */ bomber.setGraphDisplay(true, true, true, true); /* run simulation */ bomber.Init(); }

Summary & Gained Knowledge What we did: Created a reliable and user-friendly application to analyze performance of web servers What we learned: Java HTTP Protocol and Apache Http Components GUI design Graphic library API Design and implementation of a complex multi-threaded software tool