Na Kika: Secure Service Execution and Composition in an Open Edge-Side Computing Network Robert Grimm, Guy Lichtman, Nikolaos Michalakis Amos Elliston,

Slides:



Advertisements
Similar presentations
Overview Environment for Internet database connectivity
Advertisements

Adding scalability to legacy PHP web applications Overview Mario A. Valdez-Ramirez.
1 Content Delivery Networks iBAND2 May 24, 1999 Dave Farber CTO Sandpiper Networks, Inc.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
1 Bringing P2P to the Web: Security and Privacy in the Firecoral Network Jeff Terrace Harold Laidlaw Hao Eric Liu Sean Stern Michael Freedman.
DotSlash – A Web Hotspot Rescue System Weibin Zhao Henning Schulzrinne Department of Computer Science Columbia University June 11, 2004.
Web Caching Schemes1 A Survey of Web Caching Schemes for the Internet Jia Wang.
PHP/ASP Robert Nelson & Will Vanlue BA370 November 4 th, 2005.
CSE 190: Internet E-Commerce Lecture 16: Performance.
Anycast Jennifer Rexford Advanced Computer Networks Tuesdays/Thursdays 1:30pm-2:50pm.
Copyright © 2002 Pearson Education, Inc. Slide 4-1 Choosing the Hardware for an E-commerce Site  Hardware platform  Refers to all the underlying computing.
Handling Web Hotspots at Dynamic Content Web Sites Using DotSlash Weibin Zhao Henning Schulzrinne Columbia University Dagstuhl.
1 CS6320 – Why Servlets? L. Grewe 2 What is a Servlet? Servlets are Java programs that can be run dynamically from a Web Server Servlets are Java programs.
Java Server Team 8. Overview What is a Java Server? History Architecture Advantages Disadvantages Current Technologies Conclusion.
Internet Information Server (IIS)
1 Web Content Delivery Reading: Section and COS 461: Computer Networks Spring 2007 (MW 1:30-2:50 in Friend 004) Ioannis Avramopoulos Instructor:
PORTIA Robert Grimm New York University Security Challenges for Rich-Media Educational Environments.
DotSlash: Providing Dynamic Scalability to Web Applications Weibin Zhao and Henning Schulzrinne Department of Computer Science, Columbia University More.
Web-Enabling the Warehouse Chapter 16. Benefits of Web-Enabling a Data Warehouse Better-informed decision making Lower costs of deployment and management.
IST346:  Web Services. Today’s Agenda  Learn the basics of how the Web works  Understand various web service architectures  Address scaling, security,
IBM User Technology March 2004 | Dynamic Navigation in DITA © 2004 IBM Corporation Dynamic Navigation in DITA Erik Hennum and Robert Anderson.
Platform as a Service (PaaS)
Norman SecureSurf Protect your users when surfing the Internet.
Christopher M. Pascucci Basic Structural Concepts of.NET Browser – Server Interaction.
1 Content Distribution Networks. 2 Replication Issues Request distribution: how to transparently distribute requests for content among replication servers.
Overview of JSP Technology. The need of JSP With servlets, it is easy to – Read form data – Read HTTP request headers – Set HTTP status codes and response.
BY- NIKHIL TRIPATHI 12MCMB10.  What is a FIREWALL?  Can & Can’t in Firewall perspective  Development of Firewalls  Firewall Architectures  Some Generalization.
IT 210 The Internet & World Wide Web introduction.
Web Servers Web server software is a product that works with the operating system The server computer can run more than one software product such as .
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Introduction to ASP.NET. Prehistory of ASP.NET Original Internet – text based WWW – static graphical content  HTML (client-side) Need for interactive.
Chapter 16 The World Wide Web Chapter Goals Compare and contrast the Internet and the World Wide Web Describe general Web processing Describe several.
Cloud Models – Iaas, Paas, SaaS, Chapter- 7 Introduction of cloud computing.
Chapter 16 The World Wide Web. 2 The Web An infrastructure of information combined and the network software used to access it Web page A document that.
Ladd Van Tol Senior Software Engineer Security on the Web Part One - Vulnerabilities.
An Introduction to Software Architecture
Overcast: Reliable Multicasting with an Overlay Network CS294 Paul Burstein 9/15/2003.
Web Application Firewall (WAF) RSA ® Conference 2013.
DotSlash An Automated Web Hotspot Rescue System Jonathan Bulava CSC8530 – Distributed Systems Dr. Paul Schragger.
Webcommerce Computer Networks Webcommerce by Linnea Reppa Douglas Martindale Lev Shalevich.
1 Emergency Alerts as RSS Feeds with Interdomain Authorization Filippo Gioachin 1, Ravinder Shankesi 1, Michael J. May 1,2, Carl A. Gunter 1, Wook Shin.
European Laboratory for Particle Physics NICE NT Web Services Alberto Di Meglio CERN IT/DIS/NCS.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Introducing ASP.NET 2.0. Internet Technologies WWW Architecture Web Server Client Server Request Response Network HTTP TCP/IP PC/Mac/Unix + Browser (IE,
Overview Web Session 3 Matakuliah: Web Database Tahun: 2008.
Server to Server Communication Redis as an enabler Orion Free
Server Performance, Scaling, Reliability and Configuration Norman White.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Module 7: Advanced Application and Web Filtering.
Empirical Quantification of Opportunities for Content Adaptation in Web Servers Michael Gopshtein and Dror Feitelson School of Engineering and Computer.
ASP (Active Server Pages) by Bülent & Resul. Presentation Outline Introduction What is an ASP file? How does ASP work? What can ASP do? Differences Between.
2007cs Servers on the Web. The World-Wide Web 2007 cs CSS JS HTML Server Browser JS CSS HTML Transfer of resources using HTTP.
6/23/2005 R. GARDNER OSG Baseline Services 1 OSG Baseline Services In my talk I’d like to discuss two questions:  What capabilities are we aiming for.
DotSlash – or how to deal with 15 minutes of fame Weibin Zhao Henning Schulzrinne Columbia University CATT/WICAT Annual Research Review November 14, 2003.
Web Design and Development. World Wide Web  World Wide Web (WWW or W3), collection of globally distributed text and multimedia documents and files 
 Web pages originally static  Page is delivered exactly as stored on server  Same information displayed for all users, from all contexts  Dynamic.
09/13/04 CDA 6506 Network Architecture and Client/Server Computing Peer-to-Peer Computing and Content Distribution Networks by Zornitza Genova Prodanoff.
Danilo Florissi, Yechiam Yemini (YY), Sushil da Silva, Hao Huang Columbia University, New York, NY 10027
Session 11: Cookies, Sessions ans Security iNET Academy Open Source Web Development.
Apache Cocoon – XML Publishing Framework 데이터베이스 연구실 박사 1 학기 이 세영.
Platform as a Service (PaaS)
Platform as a Service (PaaS)
Platform as a Service.
Processes The most important processes used in Web-based systems and their internal organization.
PHP / MySQL Introduction
Dynamic Web Pages (Flash, JavaScript)
Distributed Content in the Network: A Backbone View
Introduction to Servlets
DotSlash: An Automated Web Hotspot Rescue System
Presentation transcript:

Na Kika: Secure Service Execution and Composition in an Open Edge-Side Computing Network Robert Grimm, Guy Lichtman, Nikolaos Michalakis Amos Elliston, Adam Kravetz, Jonathan Miller, Sajid Raza New York University

Dynamic Content: Easy to Build Hard to Scale Dynamic content is increasingly popular, easy to create and publish Example: mash-ups chicagocrimes.org = Crime reports over Google Maps zillow.com = Real Estate stats over Microsoft Virtual Earth Easy to realize on a home server PHP, Python, ASP, JSP,... Collaborate, plug together Does not scale zillow.com + =

We Need a New Delivery Platform Need a platform that is scalable, extensible and secure Near the client, supports mixing/mashing, controls hosted code Clusters amplify resources, not necessarily near the client [TACC] Edge-side hosting targeted at big trusted sites [Akamai, ACDN, ColTrES, Tuxedo, vMatrix, WebSphere] P2P architectures limited to static content [Coral, CoDeeN, CobWeb] Some efforts provide containment but not composition [Active Cache, SDT] Na Kika reconciles extensibility with security

Na Kika Architecture DNS redirects clients to nearby proxies Proxies organized in structured overlay for caching static content Sites publish scripts that are treated like static content Scripts are executed and composed at the edge for serving dynamic content

Programming Model Write scripted code: Javascript Easy, already familiar Structure functionality inside event handlers onRequest handler onResponse handler Specify handlers as a Policy object Na Kika proxyClientServer p= new Policy(); p.onRequest = function(){... } p.onResponse = function(){... } p.register(); Policy Request Response

Service Modularity Leverage descriptive nature of HTTP messages Select handlers based on HTTP message properties URL Client IP address Method Headers Execute the most specific match Request p2= new Policy(); p2.url= [“*.zillow.com/*”]; p2.client= [“ /16”]; p2.method= [“GET”]; p2.onRequest = function(){... } p2.onResponse = function(){... } p2.register(); p1= new Policy(); p1.url= [“*.zillow.com/*”]; p1.client= [“ /0”]; p1.method= [“GET”]; p1.onRequest = function(){... } p1.onResponse = function(){... } p1.register();

Service Composition Event handler pair mimics proxy structure Compose handlers via the nextStages property. A series of event handlers is called a pipeline. Client Server P = new Policy(); p.nextStages = [“chicagocrime.org/map.js”, “chicagopolice.org/crime.js” ]; p.onRequest = function(){... } p.onResponse = function(){... } p.register();

Admission & Emission Control Reuse same mechanisms Handler selection Composition Insert two extra pipeline stages ClientWall near client ServerWall near server ClientWallServerWall... p = new Policy(); p.url = [“ ”]; p.method = [“GET”, “POST”]; p.onRequest = function(){ Request.terminate(ACCESS_DENIED); } p.register();

Containing Hosted Code Scripts are sandboxed Minimal runtime, less leaks to secure Select native libraries, no direct access to system No hard quota Hard to administer Control consumption only under congestion Suitable Solution: shared resources + collaborative effort If no congestion, do nothing (no hard limits) Otherwise, throttle requests Terminate largest consumers as a last resort.

Evaluation How does Na Kika compare to a single server? Wise-MD web-based learning application How easy is it to extend functionality/security? Examples of Na Kika extensions

Wise-MD Wise-MD is a web- based education tool developed at NYU medical (formerly known as SIMMs) Global participation U.S. + Australia Multimedia intensive 1 GB total content Dynamic HTML generated from XML and XSL stylesheet

Wise-MD on Na Kika 1 developer, lines of code, 2 days work Comparison between single server and Na Kika Clients and proxies run on 12 PlanetLab nodes each For multimedia content accessed by 240 clients Clients seeing more than 140Kbps bandwidth Failures seen by clients Single Server0%60% Na Kika Cold Cache 11.5%5.6% Na Kika Warm Cache 80.3%1.9%

Wise-MD on Na Kika (html) warm cache cold cache

Extensibility in Action Na Kika Pages Programming model extension similar to PHP, JSP, ASP Replace code in with result of execution Image transcoding Transforms images to JPG, scales them down Annotated Wise-MD Layer electronic post-it notes over Wise-MD Content blocking First additional stage creates policy based on blacklist Second new stage executes policy, rejecting illegal URLs

Annotated Wise-MD In Action

Extensibility in Action Na Kika Pages Programming model extension similar to PHP, JSP, ASP Replace code in with result of execution Image transcoding Transforms images to JPG, scales them down Annotated Wise-MD Layer electronic post-it notes over Wise-MD Content blocking First additional stage creates policy based on blacklist Second new stage executes policy, rejecting illegal URLs

Easy to build, Easy to Scale Less than 100 lines of code for each application Annotations relied on 180 lines of external code Less than 8 hours to write/debug/test Deployment at the edge scales

Limitations & On-going Work Source code must be made public Sites gain capacity, but lose control over performance Unsuitable for applications with large databases Better replication strategies Proxies assumed trusted Protection against misbehaving/malicious proxies Resource management as congestion control

Conclusions Na Kika scales dynamic content Focus on collaborative efforts Contributions Same mechanism for defining functionality and policies Congestion-Based Resource management

unused

Na Kika: Secure Service Execution and Composition in an Open Edge-Side Computing Network Robert Grimm, Guy Lichtman, Nikolaos Michalakis Amos Elliston, Adam Kravetz, Jonathan Miller, Sajid Raza Nikolaos Michalakis New York University

the octopus-god Na Kika: The octopus-god of the Gilbert Islands. His many arms served him well when he shoved up the earth from the bottom of the sea to form the islands, the beaches and the rocks... Encyclopedia Mythica™

We Need a New Delivery Platform Trusted deployments limited to amplifying existing sites. [Akamai, aCDN, ColTrES, Tuxedo, vMatrix, WebSphere] Open architectures limited to static content [Coral, CoDeeN, CobWeb] Some open architectures do provide code containment but no composition. [Active Cache, SDT] Need a platform that has it all: scalable move resources near clients. easily and openly extensible, composable secures the hosted code

extensibility The keys to Na Kika’s extensible architecture: Applications are built through pipelines. Pipeline stages are developed using Policy objects. Stages are selected by matching HTTP predicates (vertical extensibility). Policy URLs used for linking stages by different providers (horizontal extensibility).

edge-side scripting Javascript: easy, familiar to programmers. Access to HTTP requests and responses via Request and Response objects. Objects, called vocabularies, provide access to: soft state hard state content processing selected system functionality One object however is special... The Policy object serves as an application building block.

security challenges Secure the pipeline: client - Na Kika stage - stage Na Kika - server Secure script execution on Na Kika host: resource access control resource management ‣ without sacrificing extensibility

securing the host Pipeline isolation: pipeline = process access system through vocabularies only. Script isolation: stage = script execution context. scripting engine isolates contexts. But host resources can still be abused. vocabs

securing the host Scripting helps again: Easier to control a small execution engine. Only selected system functionality is exposed via platform libraries. Each script runs on its own isolated environment.

motivation An application such as the SIMMs: Delivers multimedia-heavy, personalized content. Scales to large, often global audience. Developed and used by a large, geographically diverse community. Has multiple content creators and service developers. High degree of collaboration among organizations. Can it be supported by current architectures?

single server bottleneck most common, inexpensive solution but it’s a bottleneck CPU, bandwidth are limited. administration requires a form of organization. same for collaboration/deve lopment.

layering still a bottleneck straightforward service layering helps with: administration collaboration/dev elopment still it’s a performance bottleneck (CPU, bandwidth)

Security Issues Servers and Clients are not trusted Control admission and emission in the pipeline Hosted scripts are not trusted Limit access to system resources Control resource consumption

Implementation Implementation based on Apache Event handlers = Apache input and output filters Pipeline isolation = Different processes Scripting on Apache via user-level threads Hide piecemeal content handling Isolate execution Resource Management = external process Tracks per process usage Signals throttling and termination

We Need a New Delivery Platform Need a platform that is Scalable amplify resources + collocate with clients Extensible allow composition, mixing, mashing Secure protected from untrusted code Clusters amplify resources but not near the client [TACC] Edge-side hosting targeted for trusted deployments [Akamai, ACDN, ColTrES, Tuxedo, vMatrix, WebSphere] P2P architectures limited to static content [Coral, CoDeeN, CobWeb] Some provide containment but not composition [Active Cache, SDT] Na Kika reconciles extensibility with security

Wise-MD on Na Kika (latency) warm cache cold cache single server < <