Dark Nebula: Using the Cloud to build a RESTful Web Service John Fisher, Robert Fisher, and Peter Bui Department of Computer Science With the emerging.

Slides:



Advertisements
Similar presentations
WEB DESIGN TABLES, PAGE LAYOUT AND FORMS. Page Layout Page Layout is an important part of web design Why do you think your page layout is important?
Advertisements

University of Southampton Electronics and Computer Science M-grid: Using Ubiquitous Web Technologies to create a Computational Grid Robert John Walters.
Presenter: James Huang Date: Sept. 29,  HTTP and WWW  Bottle Web Framework  Request Routing  Sending Static Files  Handling HTML  HTTP Errors.
DSPIN: Detecting Automatically Spun Content on the Web Qing Zhang, David Y. Wang, Geoffrey M. Voelker University of California, San Diego 1.
Copyright 2004 Monash University IMS5401 Web-based Systems Development Topic 2: Elements of the Web (g) Interactivity.
Technical Architectures
Server-Side vs. Client-Side Scripting Languages
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
Chapter 1 Introduction to C Programming. 1.1 INTRODUCTION This book is about problem solving with the use of computers and the C programming language.
How Clients and Servers Work Together. Objectives Learn about the interaction of clients and servers Explore the features and functions of Web servers.
CP476 Internet Computing Browser and Web Server 1 Web Browsers A client software program that allows you to access and view Web pages on the Internet –Examples.
1 Distributed Mathematics Assessment System (DMAS) & WME Progress and Demo Saleh Al-shomrani Department of Computer Science Kent State University 06/13/2007.
What is adaptive web technology?  There is an increasingly large demand for software systems which are able to operate effectively in dynamic environments.
By: Devesh Sharma.  Why Cloud Computing? ◦ Traditional Business Applications  Expensive  Complicated  Difficult to manage  Idea behind Cloud Computing.
Chapter 9 Collecting Data with Forms. A form on a web page consists of form objects such as text boxes or radio buttons into which users type information.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
INTRODUCTION TO WEB DATABASE PROGRAMMING
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
1 Web Server Concepts Dr. Awad Khalil Computer Science Department AUC.
WEB SECURITY WEEK 3 Computer Security Group University of Texas at Dallas.
Warren He, Devdatta Akhawe, and Prateek MittalUniversity of California Berkeley This subset of the web application generates new requests to the server.
CS621 : Seminar-2008 DEEP WEB Shubhangi Agrawal ( )‏ Jayalekshmy S. Nair ( )‏
FLAVIUS Technical presentation (Overblog, Qype, TVTrip) - WP2 Platform architecture.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 4 – Slide 1 Effective Communication for Colleges, 10 th ed., by Brantley & Miller, 2005© Technology and Electronic Communication.
 2001 Prentice Hall, Inc. All rights reserved. 1 Chapter 21 - Web Servers (IIS, PWS and Apache) Outline 21.1 Introduction 21.2 HTTP Request Types 21.3.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Chapter 8 Collecting Data with Forms. Chapter 8 Lessons Introduction 1.Plan and create a form 2.Edit and format a form 3.Work with form objects 4.Test.
1 Chapter 9 – Cookies, Sessions, FTP, and More spring into PHP 5 by Steven Holzner Slides were developed by Jack Davis College of Information Science.
INFO 355Week #71 Systems Analysis II User and system interface design INFO 355 Glenn Booker.
XHTML & Forms. PHP and the WWW PHP and HTML forms – Forms are the main way users can interact with your PHP scrip Typical usage of the form tag in HTML.
Markle Site Map + Wireframes. FUNCTIONALITY: Links: Spec Section # Page Buttons: page map Program areas -- Public Engagement through Interactive Technologies.
JavaScript Tutorial 1 - Introduction to JavaScript1 Tutorial 1 Introduction to JavaScript Section A – Programming, HTML, and JavaScript.
Digital Learning India 2008 July , 2008 Mrs. C. Vijayalakshmi Department of Computer science and Engineering Indian Institute of Technology – IIT.
1 Web Servers (Chapter 21 – Pages( ) Outline 21.1 Introduction 21.2 HTTP Request Types 21.3 System Architecture.
Forms Collecting Data CSS Class 5. Forms Create a form Add text box Add labels Add check boxes and radio buttons Build a drop-down list Group drop-down.
Web Design and Development. World Wide Web  World Wide Web (WWW or W3), collection of globally distributed text and multimedia documents and files 
Web Server.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
27.1 Chapter 27 WWW and HTTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
©SoftMooreSlide 1 Introduction to HTML: Forms ©SoftMooreSlide 2 Forms Forms provide a simple mechanism for collecting user data and submitting it to.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
Feb 24-27, 2004ICDL 2004, New Dehli Improving Federated Service for Non-cooperating Digital Libraries R. Shi, K. Maly, M. Zubair Department of Computer.
Since you’ll need a place for the user to enter a search query. Every form must have these basic components: – The submission type defined with the method.
1 Chapter 22 World Wide Web (HTTP) Chapter 22 World Wide Web (HTTP) Mi-Jung Choi Dept. of Computer Science and Engineering
September 2003, 7 th EDG Conference, Heidelberg – Roberta Faggian, CERN/IT CERN – European Organization for Nuclear Research The GRACE Project GRid enabled.
Visual Basic.NET Comprehensive Concepts and Techniques Chapter 1 An Introduction to Visual Basic.NET and Program Design.
(class #2) CLICK TO CONTINUE done by T Batchelor.
The Web Web Design. 3.2 The Web Focus on Reading Main Ideas A URL is an address that identifies a specific Web page. Web browsers have varying capabilities.
1 Chapter 1 INTRODUCTION TO WEB. 2 Objectives In this chapter, you will: Become familiar with the architecture of the World Wide Web Learn about communication.
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
Development Environment
Take a REST from manual searching: PDBe, programmatically
WWW and HTTP King Fahd University of Petroleum & Minerals
The Development Process of Web Applications
Outline Introduction Standards Project General Idea
Platform as a Service.
Introduction What is a Database?.
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
PHP / MySQL Introduction
Cloud Computing Dr. Sharad Saxena.
Chapter 27 WWW and HTTP.
Introduction to Software Testing
Introduction to Servlets
JavaScript & jQuery AJAX.
Recitation on AdFisher
Web Servers (IIS and Apache)
TN19-TCI: Integration and API management using TIBCO Cloud™ Integration
Web Application Development Using PHP
Presentation transcript:

Dark Nebula: Using the Cloud to build a RESTful Web Service John Fisher, Robert Fisher, and Peter Bui Department of Computer Science With the emerging adoption of cloud computing systems, web sites are no longer just web pages, but also services that provide programmatic interaction. Cloud computing is becoming more integrated in industries and this demands web site evolution. To explore this topic, we developed Dark Nebula, a RESTful web service using Google App Engine, a cloud computing platform. Dark Nebula is a URL shortener which condenses lengthy URLs into shortened versions for ease of distribution. This project evaluates the performance of Dark Nebula as a web service and how it contributes to the growing cloud computing field. To evaluate Dark Nebula, we needed to analyze the underlying cloud’s behaviors and web service’s performance. To do so, we ran automated speed tests to compare with TinyURL.com, another URL shortening web service. Using the Dark Nebula module from the implementation section, we conducted various tests which detail the effects of URL transactions and input validation. We installed the Google App Engine SDK in a Linux development environment. Also, we programmed the web service in the Python programming language. Our system was implemented under four major design components. 1. Conversion Functions 2. Google NDB Datastore 3. Web Handlers 4. Program Modules The motivation of Dark Nebula is to understand how cloud platforms, like Google App Engine, are effected by web service integration. Based on our performance tests, our system demonstrates a balancing act of speed and correctness. Google App Engine makes it easy to take advantage of evolving cloud technologies. However, cloud resources are not a perfect solution for optimizing web service performance. Despite this, it can be easy for developers and users to take the cloud for granted. In other words, Dark Nebula proves how even the sky has its limits. 1. Send “long” URL: A URL is submitted into the Dark Nebula web service via its domain, either on a web page or by executing a POSTing script. 2. Check Datastore: Dark Nebula runs a query to validate URLs. If it finds a new long URL, the web service inserts the new entity into the Datastore. 3. Return “short” URL: The web service returns a short URL with a short URL identifier in hexadecimal following the domain’s prefix. Part 1: Part 2: 1. Share: The short URL is distributed with other users that need a condensed URL. 2. Send “short” URL: The short URL is sent to the web service as HTTP GET in a web browser’s address bar. 3. Check Datastore: Dark Nebula translates the short URL by querying and retrieving the corresponding long URL. 4. HTTP redirect: After the lookup, Dark Nebula automatically redirects to the long (original) URL page via HTTP 302. Design: “Cloud Condensation” Introduction Implementation Evaluation: “Partly Cloudy” Conclusion: “A Clouded Perspective” Python Module: URL shortener Web Page: Without validation, Dark Nebula demonstrated faster performance than TinyURL.com. This graph shows how cloud resources yield efficiency and consistency without client-side processing. Without Validation With Validation URL Transaction Statistics Function Description InputInitial Identifier Converted Identifier Output Long URL to Short ID Short ID to Long URL Conversion Functions def darknebula_shorten (long_url): #1. Specify the domain domain= ‘ #2. Define and encode the long_url and response_format values = {‘long_url’: long_url, ‘response_format’: ‘text’} data = urllib.urlencode(values) #3. POST data req = urllib2.Request(domain, data) #4. Open Dark Nebula (go.yld.me) response = urllib2.urlopen(req) #5. Retrieve the short_url short_url = response.read() return short_url When validation is implemented, Dark Nebula’s performance was significantly slowed down. This graph shows how client-side processing time can offset inherent cloud performance gains. URLsValidationDark Nebula Avg. Time (s) TinyURL Avg. Time (s) Avg. Ratio (DN/TU) Dark Nebula Std. Dev (s) TinyURL Std. Dev (s) 100No Yes Publications: Midwest Instruction & Computing Symposium 2014