S3 Monitor Design and Implementation Plans



Similar documents
Title: Scalable, Extensible, and Safe Monitoring of GENI Clusters Project Number: 1723

Healthstone Monitoring System

Fritz Speed Documentation

Programming Assignments for Graduate Students using GENI

Apache Jakarta Tomcat

Oracle WebLogic Server 11g: Administration Essentials

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

Oracle9i Application Server: Options for Running Active Server Pages. An Oracle White Paper July 2001

NetBeans IDE Field Guide

MD Link Integration MDI Solutions Limited

Open EMS Suite. O&M Agent. Functional Overview Version 1.2. Nokia Siemens Networks 1 (18)

In this chapter, we lay the foundation for all our further discussions. We start

CA Workload Automation Agents Operating System, ERP, Database, Application Services and Web Services

TIBCO Administrator User s Guide. Software Release March 2012

Application Template Deployment Guide

Oracle BI Publisher Enterprise Cluster Deployment. An Oracle White Paper August 2007

Load Balancing using Pramati Web Load Balancer

HP Business Service Management

Converting Java EE Applications into OSGi Applications

Figure 1. perfsonar architecture. 1 This work was supported by the EC IST-EMANICS Network of Excellence (#26854).

Oracle Communications WebRTC Session Controller: Basic Admin. Student Guide

BarTender Integration Methods. Integrating BarTender s Printing and Design Functionality with Your Custom Application WHITE PAPER

DEPLOYMENT ROADMAP March 2015

Open Source Software used in the product

TIBCO Spotfire Statistics Services Installation and Administration Guide. Software Release 5.0 November 2012

Software Development Kit

Crawl Proxy Installation and Configuration Guide

Log Insight Manager. Deployment Guide

IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience

WEBAPP PATTERN FOR APACHE TOMCAT - USER GUIDE

ActiveVOS Server Architecture. March 2009

TIBCO Spotfire Statistics Services Installation and Administration Guide

JBoss Portlet Container. User Guide. Release 2.0

Sophos for Microsoft SharePoint Help. Product version: 2.0

An Esri White Paper June 2010 Tracking Server 10

DEPLOYMENT GUIDE Version 1.0. Deploying the BIG-IP LTM with Apache Tomcat and Apache HTTP Server

Glyma Deployment Instructions

HOW TO CREATE A SLICE IN GENI?

Oracle Net Services for Oracle10g. An Oracle White Paper May 2005

EPESI PARTNERSHIP PROGRAM [EPP]

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application

Chapter 1 - Web Server Management and Cluster Topology

Performance Optimization For Operational Risk Management Application On Azure Platform

Planning a DITA CMS Deployment. Small Business Edition

Virtual Credit Card Processing System

High Level Design Distributed Network Traffic Controller

A Tool for Evaluation and Optimization of Web Application Performance

Braindumps.C questions

JMETER - MONITOR TEST PLAN

What Is the Java TM 2 Platform, Enterprise Edition?

Business Application Services Testing

Configuring Nex-Gen Web Load Balancer

MultiValue Dashboard. Installation Guide

Building native mobile apps for Digital Factory

An Oracle White Paper May Oracle Tuxedo: An Enterprise Platform for Dynamic Languages

HP WBEM Services Software Developer's Kit Version A Release Notes. HP-UX 11i v3

EMC Documentum Content Management Interoperability Services

The Monitis Monitoring Agent ver. 1.2

Evaluation of Load/Stress tools for Web Applications testing

Linstantiation of applications. Docker accelerate

LOAD BALANCING TECHNIQUES FOR RELEASE 11i AND RELEASE 12 E-BUSINESS ENVIRONMENTS

Dell One Identity Manager 7.0. Help Desk Module Administration Guide

Using DeployR to Solve the R Integration Problem

Allscripts Professional EHR

DTWMS Required Software Engineers. 1. Senior Java Programmer (3 Positions) Responsibilities:

Developing Microsoft Azure Solutions

Minimum Hardware Configurations for EMC Documentum Archive Services for SAP Practical Sizing Guide

Web. Services. Web Technologies. Today. Web. Technologies. Internet WWW. Protocols TCP/IP HTTP. Apache. Next Time. Lecture # Apache.

MASTER THESIS. TITLE: Analysis and evaluation of high performance web servers

PANDORA FMS NETWORK DEVICE MONITORING

SapphireIMS 4.0 BSM Feature Specification

Web Application Hosting Cloud Architecture

StreamServe Persuasion SP5 Control Center

Initializing SAS Environment Manager Service Architecture Framework for SAS 9.4M2. Last revised September 26, 2014

PingFederate. Identity Menu Builder. User Guide. Version 1.0

What s New in IBM Web Experience Factory IBM Corporation

CA Workload Automation Agents for Mainframe-Hosted Implementations

Winery A Modeling Tool for TOSCA-based Cloud Applications

Software Package Document exchange (SPDX ) Tools. Version 1.2. Copyright The Linux Foundation. All other rights are expressly reserved.

TIBCO Spotfire Statistics Services Installation and Administration

Integrate Rails into an Existing IIS Web infrastructure using Mongrel

Programming IoT Gateways With macchina.io

8.7. Resource Kit User Guide

Experimental Comparison of Hybrid and Native Applications for Mobile Systems

RTI Monitor. Release Notes

Web Analytics Understand your web visitors without web logs or page tags and keep all your data inside your firewall.

Web-JISIS Reference Manual

Glassfish, JAVA EE, Servlets, JSP, EJB

A Survey Study on Monitoring Service for Grid

Monitoring Oracle Enterprise Performance Management System Release Deployments from Oracle Enterprise Manager 12c

TIBCO Spotfire Statistics Services Installation and Administration. Release 5.5 May 2013

Oracle Identity Analytics Architecture. An Oracle White Paper July 2010

Transcription:

S 3 Monitor Version 1.0 Specifications and Integration Plan

1 Copyright c 2011 Hewlett Packard Copyright c 2011 Purdue University Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or hardware specification (the Work ) without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Work and to permit persons to whom the Work is furnished to do so, subject to the following conditions: THE WORK IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED INCLUDING BUT NOT LIMITED TO THE WAR- RANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PUR- POSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE WORK OR THE USE OR OTHER DEALINGS IN THE WORK. Please direct comments regarding this documentation or the S 3 Monitor software to fahmy@cs.purdue.edu and puneet.sharma@hp.com.

1 OVERVIEW 2 1 Overview The Scalable Sensing Service (S 3 Monitor) provides basic management services for users to take controlled measurements between GENI nodes. A web interface is provided to the user for scheduling and initiating measurements, managing ongoing measurements, and retrieving measurement results. The S 3 Monitor service manages the dissemination of schedules to nodes in the GENI slice and retrieval of measurement results on behalf of the user. Measurement results are stored by the system for later reference until purged by the user. A GENI experimenter may deploy the S 3 Monitor service to a GENI experiment and use its facilities to collect network measurements within the experiment slices. 2 Terminology The following definitions give the normal meaning of terms used in this documentation, including GENI terms as applied to S 3 Monitor. In places where specific usage differs from this section, the differences will be explained in the documentation. HRN The Human-Readable Name for a GENI resource. Slice A GENI slice created via a Slice Authority. The normal S 3 Monitor identification of a slice is by its HRN. Sliver A GENI sliver create via a Component Manager or Slice Authority. The normal S 3 Monitor identification of a sliver is by its HRN. Interface A network port (actual or emulated) on a GENI node which has been assigned an IP address at sliver creation. S 3 Monitor identifies interfaces by their IP address. Manifest An XML document provided by the Component Manager or Aggregate Manager at the time of sliver creation, which describes the resources available in a sliver. Measurement An invocation of a measurement tool such as ping or traceroute. Node, GENI Node A physical or virtual machine allocated to a GENI Sliver.

3 SYSTEM ARCHITECTURE 3 Sensor Pod A bundle of S 3 Monitor software which is installed on each GENI node that will perform measurements on behalf of S 3 Monitor. 3 System Architecture S 3 Monitor includes two primary components (depicted in Figure 1): 1. Sensor pods: A sensor pod is a light-weight web service-enabled framework which hosts measurement sensors (e.g., ping, pathchirp, tulip). The sensor pod needs to run on each node which serves as an end point (source or sink) of a measurement. The sensor pods can be deployed on GENI nodes, where a GENI node is a reserved node used by a GENI experimenter. 2. Web application: This is the management application which triggers measurements on the sensor pods and collects data. The web application (portal) is written in Java. Users submit measurement requests through this portal. The web application can be installed on any host which can establish communication with the GENI slice nodes that will perform the actual measurements. This includes installation on a GENI node, or installation on a third-party machine. Since the expectation is that the web application is a long-lived service, installation on a GENI node is not recommended; rather, it should normally be installed on a machine which is used to manage the GENI nodes across slice instantiations. 4 Sensor Pod Architecture The sensor pod is a web service-enabled framework to host sensors (e.g., sensor for delay, loss, available bandwidth, bottleneck capacity). Figure 2 depicts the components of the sensor pod. The sensor pod runs CGI scripts on an http server (BOA). The CGI scripts are written in Python, and contain the framework code for plugging in the sensors. The sensors extend the interface provided by S 3 Monitorto include any new measurement tool. The sensor execution, data collection, and clean-up logic should be included in the code of each sensor. The sensor code needs to be developed using Python in a maximum of five files. These files can be uploaded to each node along with an xml schema defining the sensor. The schema for the xml is provided with S 3 Monitor. The sensor pod includes the modules described in the following subsections.

4 SENSOR POD ARCHITECTURE 4 Figure 1: S 3 Monitor architecture Figure 2: Sensor pod components

4 SENSOR POD ARCHITECTURE 5 4.1 Boa Server Boa is a single-threaded HTTP server. Boa does not fork a copy of itself or spawn a thread to handle each incoming connection, but rather internally multiplexes the connections. Boa only forks for CGI programs, automatic directory generation, and automatic file gunzipping, each of which must be a separate process. The primary design goals of Boa are speed and security. 4.2 Python CGI Module A CGI script is invoked by an HTTP server, usually to process user input submitted through an HTTP request. Most often, CGI scripts live in the server special cgi-bin directory. The HTTP server places all information about the request in the script shell environment, executes the script, and sends the script output back to the client. This module handles a number of cases and provides a simpler interface to the Python script. It also provides a number of utilities that help in debugging scripts. 4.3 Sensor Pod Modules This collection of modules includes the instant measurement module, configure periodic measurements module, remove periodic measurements module, and measurement results module. 4.3.1 Instant measurement module This module triggers instant measurements, e.g., for latency, loss, or bandwidth measurements between two nodes. The user can supply the parameters for the measurement tool. The module then processes the input parameters, invokes the requested command, triggers the measurement, and returns the result through the response object. 4.3.2 Configure measurements module This module configures periodic measurements at the specified time intervals, and generates an identifier for each periodic measurements request. crontab is scheduled with the unique identifier for the requested time interval. The periodic measurements module runs the crontab, obtains the results, and stores them into the data repository.

4 SENSOR POD ARCHITECTURE 6 4.3.3 Remove measurements module This module removes the scheduled process using the identifier generated for every crontab entry as described above. 4.3.4 Measurement result module The result stored in the data repository is retrieved by this module. 4.4 Data Repository Measurement data is stored into the data repository. 4.5 Sensors Sensors are invoked by S 3 Monitorto measure properties such as latency, loss, bottleneck capacity, and available bandwidth between two nodes. Sensors can be classified as basic sensors or aggregate sensors. The sensor developer must provide the sensor functionality and an interface (wrapper) for each sensor. The sensor interface must include three functions: performing the measurement, obtaining the measurement results, and cleaning up the measurement-related files. The sensor interface is written in Python. The user needs to write the Python module following a template. This provides extensibility (plug-ability) to the sensor pod architecture. 4.5.1 Basic sensors Basic sensors are independent sensors that can be triggered to obtain the requested measurement result directly, e.g., the latency sensor ping. 4.5.2 Aggregate sensors Aggregate sensors are a collection/group of sensors. Once a user invokes a sensor, the sensor may trigger another sensor and so on to obtain the result, e.g., capacity sensor (pathrate).

5 WEB APPLICATION ARCHITECTURE 7 Figure 3: Web application components 5 Web Application Architecture The web application (portal) provides management facilities to control the sensor pods and maintain measurement data. Figure 3 depicts the components of the web application. The application runs servlets on a Java web server (Tomcat). The servlets act as interfaces to the web pages to process user requests and respond accordingly. All responses from each servlet are in JSON format. The main processing work is performed in the business logic part. There are dedicated service modules to provide specific services (e.g., DatabaseService, FileUploadService). Database access is through Hibernate (ORM). The web pages are written using JSP technology, and Javascript is used as the client-side scripting framework. The web application includes the modules described in the following subsections. 5.1 Tomcat server Apache Tomcat is an open-source servlet container that implements the Java Servlet and the Java Server Pages (JSP) specifications, and provides a pure Java HTTP web server environment for Java code to run. S 3 Monitor requires the Tomcat server to run the JSP/servlets.

5 WEB APPLICATION ARCHITECTURE 8 5.1.1 Web user interface The user interface of S 3 Monitor is written in JSP along with HTML and Javascript, so as to separate the page logic from the visual elements. In Javascript, the jquery library and other plug-ins have been used. The design of the front end is done using CSS. 5.1.2 Server backend The server backend processes the requests from the user interface module and responds. This includes: 1. Filter: A filter is an object that performs filtering tasks on either the request to a resource (a servlet or static content), or on the response from a resource, or both. S 3 Monitor uses Filter to provide access control to the service. 2. Servlets: A servlet is a Java programming language class used to extend the capabilities of servers that host applications accessed via a request-response programming model. Although servlets can respond to any type of request, they are commonly used to extend the applications hosted by web servers. S 3 Monitor has one servlet for each JSP page. 3. Business Logic: The business logic module is the actual processing unit of the S 3 Monitor web application. All S 3 Monitor functionality is controlled from this module. The business logic leverages the service module to process requests, perform tasks, and handle errors. It also converts the response to the appropriate format (JSON) before transmitting it to the user interface. 4. Service Classes: The service module implements all tasks that S 3 Monitor needs to perform. The tasks are grouped into classes as follows: Utilities: All commonly-used functionality in S 3 Monitor is defined in this module.

6 INTEGRATION WITH CONTROL FRAMEWORKS AND OTHER GENI PROJECTS9 Entities: In this module, different entities of the service are defined and mapped to the respective database tables. Response Object: This module contains the Java objects to be mapped to JSON responses. Exception: In this module, all the exceptions in the service are defined. Third-party libraries: The S 3 Monitor web application uses several open source libraries for facilitating common application requirements, e.g., log4j, dom4j. 6 Integration with Control Frameworks and other GENI Projects S 3 Monitor integrates with the GENI control frameworks to identify experimenter resources within GENI slices. The S 3 Monitor Sensor Pod installs on GENIallocated resources to perform active network measurements. Integration with other GENI projects revolves around management of S 3 Monitor sensor behavior and sharing of measurement data. 6.1 Control Frameworks Communication between S 3 Monitor and the GENI control frameworks is through RSpecs: S 3 Monitor Sensor Pods can be deployed on ProtoGENI (http://www. protogeni.net/trac/protogeni) experiment nodes by including appropriate configuration in RSpec requests. Automated deployment on other aggregate resources is in progress. The S 3 Monitor web application uses RSpec manifests to identify possible Sensor Pod locations within an experiment, and to configure the network interfaces on Sensor Pod nodes.

6 INTEGRATION WITH CONTROL FRAMEWORKS AND OTHER GENI PROJECTS10 Integration with GENI-allocated resources is in the form of the S 3 Monitor Sensor Pod. The Sensor Pod must be ported to the OS images that run on GENI resources. Sensor Pods for the default ProtoGENI image and the PlanetLab (http: //groups.geni.net/geni/wiki/planetlab) image are provided already. More Sensor Pod ports (including ports to additional ProtoGENI images as well as ORCA (https://geni-orca.renci.org/trac/wiki) EC2 images) will be provided in the future, as well as an automated or semi-automated mechanism for porting the Sensor Pod to images which fulfill a basic set of requirements. 6.2 Other GENI Projects S 3 Monitor can be integrated with several GENI measurement and management projects to provide measurement capabilities which those projects lack. Integration with other GENI projects may also provide measurement or management capabilities to S 3 Monitor which it lacks. There are plans underway to deploy S 3 Monitor sensor pods to INSTOOLS (http://groups.geni.net/geni/wiki/instrumentationtools) instrumentized hosts in order to provide active measurement monitoring information to INSTOOLS users, as the current version of INSTOOLS provides only passive measurements. The same integration with INSTOOLS will provide a process for installing S 3 Monitor sensor pods to any host for which the INSTOOLS instrumentize mechanism has been implemented, including non-protogeni aggregate hosts, via Flack (http://protogeni.net/flack). Data collected by S 3 Monitor deployments can be provided to GENI Measurement Data Archives. Integration with the existing Digital Object Registry (http://groups.geni.net/geni/wiki/digitalobjectregistry) Measurement Data Archive prototype is planned, as well as eventual implementation of the GENI Measurement Data Schema for data communication and storage once it is finalized.