Web Services

Total Page:16

File Type:pdf, Size:1020Kb

Web Services Carnegie Mellon Web Services 15-213/18-243: Introduc3on to Computer Systems 23rd Lecture, 20 April 2010 Instructors: Bill Nace and Gregory Kesden (c) 1998 - 2010. All Rights Reserved. All work contained herein is copyrighted and used by permission of the authors. Contact [email protected] for permission or for more information. Carnegie Mellon Today HTTP and Sta4c Content Serving Dynamic Content Proxies Carnegie Mellon Client-server web communicaon Client Server Clients and servers communicate using the HyperText Transfer initiate TCP Protocol (HTTP) connection . Client and server establish TCP connec3on accept . Client requests content connection request . Server responds with requested content file . Client and server close connec3on send file (usually) Current version is HTTP/1.1 file . RFC 2616, June, 1999 received; close . hUp://www.ieW.org/rfc/rfc2616.txt connection closed Carnegie Mellon Web Content Web servers return content to clients . content: a sequence of bytes with an associated MIME (Mul3purpose Internet Mail Extensions) type Example MIME types . text/html HTML document . text/plain UnformaUed text . image/gif Binary image encoded in GIF format . image/jpeg Binary image encoded in JPEG format . video/mpeg Video encoded with MPEG Carnegie Mellon URL: Universal Resource Locator URL: A name to iden4fy an object managed by a server URLs for sta4c content: . http://www.cs.cmu.edu:80/index.html . http://www.cs.cmu.edu/index.html . http://www.cs.cmu.edu . Iden3fies a file called index.html, managed by a Web server at www.cs.cmu.edu that is listening on port 80 URLs for dynamic content: . http://www.imdb.com/find?s=all&q=the+net . Iden3fies an executable file called find, managed by a Web server at www.imdb.com, that has 2 input parameters: – s, which has a value of “all” – q, which has a value of “the net” (note whitespace changed to ‘+’ because of URL syntax rules) Carnegie Mellon Anatomy of an HTTP Transac4on unix> telnet www.aol.com 80 Client: open connection to server Trying 205.188.146.23... Telnet prints 3 lines to the terminal Connected to aol.com. Escape character is '^]'. GET / HTTP/1.1 Client: request line host: www.aol.com Client: required HTTP/1.1 HOST header Client: empty line terminates headers. HTTP/1.0 200 OK Server: response line MIME-Version: 1.0 Server: followed by five response headers Date: Mon, 08 Jan 2001 04:59:42 GMT Server: NaviServer/2.0 AOLserver/2.3.3 Content-Type: text/html Server: expect HTML in the response body Content-Length: 42092 Server: expect 42,092 bytes Server: empty line (“\r\n”) terminates hdr <html> Server: first HTML line in response body ... Server: 766 lines of HTML not shown. </html> Server: last HTML line in response body Connection closed by foreign host. Server: closes connection unix> Client: closes connection and terminates Carnegie Mellon HTTP Requests HTTP request is a request line, followed by zero or more request headers, followed by a blank line (CRLF), followed by an op=onal message body Request = Request-Line *(header CRLF) CRLF [message-body] Request line describes the object that is desired Request-Line = Method SP Request-URI SP HTTP-Version CRLF . Method is a verb describing the ac3on to be taken (details on next slide) . Request-URI is typically the URL naming the object desired . A URL is a type of URI (Uniform Resource Iden3fier) . See hUp://www.ieW.org/rfc/rfc2396.txt . HTTP-Version is the HTTP version of request (HTTP/1.0 or HTTP/1.1) Carnegie Mellon HTTP Requests (cont) HTTP methods: . GET: Retrieve an object (web page, etc) . Workhorse method (99% of requests) . “Condi3onal GET”if header includes If-Modified-Since, If-Match, etc. POST: Send data to the server (can also be used to retrieve dynamic content) . Arguments for dynamic content are in the request body . HEAD: Retrieve metadata about an object (validity, modifica3on 3me, etc) . Like GET but no data in response body . OPTIONS: Get server or object aUributes . PUT: Write a file to the server! . DELETE: Delete an object (file) on the server! Request = Request-Line . TRACE: Echo request in response body *(header CRLF) CRLF . Useful for debugging [message-body] Request-Line = Method SP Request-URI SP HTTP-Version CRLF Carnegie Mellon HTTP Requests (cont) Request Headers provide addi4onal informa4on to the server . Modify the request in some form header = Header-Name COLON SP Value Examples: . Host: www.w3.org . If-Modified-Since: Mon, 19 Aug 2010 19:43:31 GMT . User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_7...Safari/533.4 . Connecon: Keep-Alive . Transfer-Encoding: chunked Request = Request-Line *(header CRLF) CRLF Message Body contains data objects [message-body] . Data for POST, PUT, TRACE methods Carnegie Mellon HTTP Responses HTTP response format is similar to request, except first line is a “status line” Response = status-line *(header CRLF) CRLF [message-body] status-line = HTTP-Version SP Status-code SP Reason-Phrase CRLF . HTTP-Version is the HTTP version of request (HTTP/1.0 or HTTP/1.1) . Status-code is numeric status, Reason-Phrase is corresponding English . 200 OK Request was handled without error . 301 Moved Permanently Object is in new loca5on . 404 Not found Server couldn’t find the file Response headers, similar to request headers . Content-Type: text/html . Content-Length: 22629 (in bytes) . Location: new-folder/new-object-name.html Carnegie Mellon HTTP Versions HTTP/1.0 (1990) got the web up and running . HTTP/1.0 uses a new TCP connec3on for each transac3on (i.e. request-reply) HTTP/1.1 (1999) added performance features . Supports persistent connec3ons . Mul3ple transac3ons over the same connec3on, amor3zing TCP startup . Connection: Keep-Alive . Supports pipelined connec3ons . Mul3ple transac3ons at the same 3me over single a TCP connec3on . Requires HOST header . Host: www.chatroulette.com . Supports chunked encoding (described later) . Transfer-Encoding: chunked . Adds addi3onal support for caching web objects Carnegie Mellon GET Request to www.cmu.edu from Safari Request-URI is just the suffix, not the en0re URL GET /index.shtml HTTP/1.1 Host: www.cmu.edu Referer: http://www.cmu.edu/index.shtml User-Agent: Mozilla/5.0 (Macintosh...Safari... Accept: */* Accept-Language: en-us Accept-Encoding: gzip, deflate Cookie: __unam=74ba...webstats-cmu=cmu128.2... Connection: keep-alive CRLF (\r\n) Carnegie Mellon GET Response From www.cmu.edu Server HTTP/1.1 200 OK Date: Tue, 20 Apr 2010 12:50:27 GMT Server: Apache/1.3.39 (Unix) ... mod_ssl/2.8.30 OpenSSL/0.9.6m+ Keep-Alive: timeout=5, max=99 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html CRLF (\r\n) <!DOCTYPE html PUBLIC ...> <html xmlns="http://www.w3.org/1999/xhtml"> <head> ... <title>Carnegie Mellon University</title> </head> <body> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td align="left" class="home_leftnav_bg" valign="top" width="252"> ... </body> </html> Carnegie Mellon Today HTTP and Sta4c Content Serving Dynamic Content Proxies Serving Dynamic Content Client sends request to GET /cgi-bin/env.pl HTTP/1.1 server. If request URI contains the Client Server string “/cgi-bin”, then the server assumes that the request is for dynamic content. – – 15-213, Fʼ09 Serving Dynamic Content (cont) The server creates a child process and runs the Client Server program identified by the URI in that process fork/exec env.pl – – 15-213, Fʼ09 Serving Dynamic Content (cont) The child runs and Client Server generates the dynamic Content content. Content The server captures the content of the child and env.pl forwards it without modification to the client – – 15-213, Fʼ09 Issues in Serving Dynamic Content How does the client pass program Request arguments to the server? Client Content Server How does the server pass these arguments to the child? Content Create How does the server pass other info relevant to the request to the env.pl child? How does the server capture the content produced by the child? These issues are addressed by the Common Gateway Interface (CGI) specification. – – 15-213, Fʼ09 CGI Because the children are written according to the CGI spec, they are often called CGI programs. Because many CGI programs are written in Perl, they are often called CGI scripts. However, CGI really defines a simple standard for transferring information between the client (browser), the server, and the child process. – – 15-213, Fʼ09 add.com: THE Internet addition portal! Ever need to add two numbers together and you just canʼt find your calculator? Try Dr. Daveʼs addition service at “add.com: THE Internet addition portal!” Takes as input the two numbers you want to add together. Returns their sum in a tasteful personalized message. After the IPO weʼll expand to multiplication! – – 15-213, Fʼ09 The add.com Experience input URL host port CGI program args Output page – – 15-213, Fʼ09 Serving Dynamic Content With GET Question: How does the client pass arguments to the server? Answer: The arguments are appended to the URI Can be encoded directly in a URL typed to a browser or a URL in an HTML link http://add.com/cgi-bin/adder?1&2 adder is the CGI program on the server that will do the addition. argument list starts with “?” arguments separated by “&” spaces represented by “+” or “%20” Can also be generated by an HTML form <form method=get action="http://add.com/cgi-bin/postadder"> – – 15-213, Fʼ09 Serving Dynamic Content With GET URL: http://add.com/cgi-bin/adder?1&2 Result displayed on browser: Welcome to add.com: THE Internet addition portal. The answer is: 1 + 2 = 3 Thanks for visiting! – – 15-213, Fʼ09 Serving Dynamic Content With GET Question: How does the server pass these arguments to the child? Answer: In environment variable QUERY_STRING A single string containing everything after the “?” For add.com: QUERY_STRING = “1&2” /* child code that accesses the argument list */ if ((buf = getenv("QUERY_STRING")) == NULL) { exit(1); } /* extract arg1 and arg2 from buf and convert */ ..
Recommended publications
  • Linuxvilag-21.Pdf 12131KB 44 2012-05-28 10:16:00
    Töprengõ Nyíltan vagy zártan? programok fejlesztése rendkívüli iramban gyorsul: gombamód szaporodnak a jobbnál jobb programok, rengeteg bõvítmény készül minden operációs rend- Aszerhez. Azt hiszem, mindezt a Linux és más nyílt forrású rendszerek térnyerésének köszönhetjük. A forráskód hozzáfér- hetõsége nagyon sok embert arra ösztönöz, hogy saját „gondo- latkísérleteiket” is közzétegyék benne, ezzel is javítva a prog- ram minõségét, és esetleg bõvítve a felhasználási területét. Egyes programokra sokan azt mondják, hogy „halvaszületet- tek”, a nyílt forrású világban azonban nem egyszer láthattuk, © Kiskapu Kft. Minden jog fenntartva hogyan is támad fel halottaiból, ha nem is azonos néven és azonos feladattal, de a forráskód szintjén mindenképpen hasz- nosan egy-egy ilyen projekt! Ha nincs a Linux, valószínûleg senki nem kezdett volna bele az OpenBeOS fejlesztésébe; a Linux sikerei ösztönzõen hatnak az emberekre, a BeOS-ra- jongók pedig nem tétlenkednek, úgy döntöttek, hogyha a ked- venc rendszerük fejlesztése megszûnik, készítenek maguknak egy nyílt forrásút. Gondoljunk csak bele, hol tartanánk ma a nyílt forráskód nélkül? A Microsoft operációs rendszerei teljes- séggel eluralkodtak volna kicsiny bolygónkon, mindenki az önzõ harácsoló programírási gyakorlatnak behódolva alkotna nap mint nap, és bizony kemény pénzeket kellene leszurkolni minden egyes programért. Azt hiszem, a Linux mindenki számára hatalmas nyereség. A mostani programozópalánták ebbe a szabad világba születnek, így számukra már természetes lesz a forráskódok megosztása (hacsak el nem szegõdnek a sötét oldalra). E szabadság egyik nagy kérdése és veszélye a töredezettség. Hogy mire is gondolok: Linux-változatból nagyon sok van, a http://linuxlinks.com adatai szerint a Linuxnak 285 változata létezik – ezek vagy egyedi területet fednek le, vagy „csak” egyszerû Linux-kiadások.
    [Show full text]
  • Telecentro Comunitario Agroindustrial Piloto En El Municipio De Silvia
    TELECENTRO COMUNITARIO AGROINDUSTRIAL PILOTO EN EL MUNICIPIO DE SILVIA ANEXO G: PLATAFORMAS DE DESARROLLO OPENACS Y dotLRN Contrato 420/2003 Colciencias - Universidad del Cauca. UNIVERSIDAD DEL CAUCA FACULTAD DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES FACULTAD DE CIENCIAS AGROPECUARIAS GRUPO I+D NUEVAS TECNOLOGÍAS EN TELECOMUNICACIONES GNTT GRUPO DE INGENIERIA TELEMATICA GIT DEPARTAMENTO DE AGROINDUSTRIA POPAYAN, 2004 INTRODUCCIÓN Mediante la implementación del Telecentro Agroindustrial Piloto se busca generar capacidades locales, conocimiento y brindar desarrollo agroindustrial en las zonas rurales, lo que permitirá un mejoramiento en las condiciones de la región. El Telecentro tiene como finalidad fortalecer social y económicamente a la comunidad de Silvia, ampliando espacios de participación y adaptando nuevos medios de capacitación (local y virtual), acceso a servicios de información y de desarrollo de actividades productivas y de comercialización. Este informe de carácter técnico presenta las tecnologías potenciales que permitirán ofrecer el servicio de tele-capacitación y tele-comercio (vitrina de productos). Estos servicios serán soportados a través de las plataformas de código abierto OpenACS y dotLRN disponibles bajo licencia Licencia Publica General GNU (GPL, General Public License). OpenACS es una plataforma para aplicaciones web orientadas a comunidades virtuales, permite divulgar gran variedad de información, realizar foros sobre temas específicos, servicios de encuestas, galerías de imágenes y una serie de aplicaciones orientadas a la participación de comunidades en línea. DotLRN es una plataforma de tele-educación que incluye los módulos más usuales de este tipo de entornos de enseñanza/aprendizaje: gestión de ficheros, foros, calendario, asignación de tareas, etc. Además, ofrece funcionalidades de trabajo y creación de documentos en grupo.
    [Show full text]
  • User's Guide to Aolpress
    User’s Guide to AOLpress 2.0 Do-it-Yourself Publishing for the Web 1997 America Online, Inc. AOL20-040797 Information in this document is subject to change without notice. Both real and fictitious companies, names, addresses, and data are used in examples herein. No part of this document may be reproduced without express written permission of America Online, Inc. 1997 America Online, Inc. All rights reserved. America Online is a registered trademark and AOLpress, AOLserver, PrimeHost, AOL, the AOL triangle logo, My Place, Netizens, and WebCrawler are trademarks of America Online, Inc. GNN is a registered trademark, and Global Network Navigator, GNNpress, and GNNserver are trademarks of Global Network Navigator, Inc. MiniWeb, NaviLink, NaviPress, NaviServer, and NaviService are trademarks of NaviSoft, Inc. Illustra is a trademark of Illustra Information Technologies, Inc. All other brand or product names are trademarks or registered trademarks of their respective companies or organizations. Author: Yvonne DeGraw Cover Art and Illustrations: Amy Luwis Special Thanks To: Thomas Storm, Cathe Gordon, Angela Howard, George W. Williams, V, Dave Long, Dave Bourgeois, Joel Thames, Natalee Press-Schaefer, Robin Balston, Linda T. Dozier, Jeff Dozier, Doug McKee, and Jeff Rawlings. Quick Table of Contents Contents Part 1: Getting Started Welcome! 11 Chapter 1 Installing AOLpress 17 Chapter 2 Create a Web Page in 10 Easy Steps 21 Chapter 3 Browsing with AOLpress 33 Part 2: Creating Pages Chapter 4 Web Pages and What to Put in Them 45 Chapter 5 Creating
    [Show full text]
  • 공개sw 솔루션 목록(2015.6.30)
    OS/DBMS/WEB/WAS 공개SW 솔루션 목록(2015.6.30) 순번 분류 솔루션명 라이선스 기술지원 홈페이지 제품개요 1 DBMS C-JDBC LGPL community http://c-jdbc.ow2.org/ 데이터베이스 클러스터 2 DBMS DB4 오브젝트(db4o) GPL & dOCL prof/community http://www.db4o.com 객체지향 메모리 데이터베이스 엔진 GPL v2, GPL v3, 3 DBMS Drizzle community http://www.drizzle.org/ MySQL 6.0에서 파생된 RDBMS BSD 4 DBMS H2 EPL, MPL community http://www.h2database.com/ 자바기반 RDBMS HSQLDB 5 DBMS (Hyper Structured Query BSD community http://www.hsqldb.org 경량의 Java 기반 관계형 데이터베이스 Language Database) 데이터 웨어하우스, OLAP서버, BI 시스템 운용을 목적으 6 DBMS LucidDB GPL v2, LGPL v2 community http://luciddb.sourceforge.net 로 개발된 오픈소스 DBMS GPL v3, AGPL v3, 7 DBMS Neo4j community http://www.neo4j.org 그래프 데이터베이스 commercial AGPL v3, 8 DBMS VoltDB Proprietary prof/community http://voltdb.com/ 인메모리기반 RDBMS License 오픈소스 관계형 데이터베이스 관리 시스템. 9 DBMS 마리아DB(MariaDB) GPLv2, LGPL prof/community https://mariadb.org/ MySQL과 동일한 소스 코드를 기반 세계에서 가장 널리 사용되고 있는 대표적인 10 DBMS 마이에스큐엘(MySQL) GPL v2 prof/community http://www.mysql.com 관계형 데이터베이스 ※ prof : Professional Support(전문업체 기술지원) ※ community : Community Support(커뮤니티 기술지원) OS/DBMS/WEB/WAS 공개SW 솔루션 목록(2015.6.30) 순번 분류 솔루션명 라이선스 기술지원 홈페이지 제품개요 IBM에서 기증한 cloudscape 소스 기반으로 11 DBMS 아파치 더비(Apache Derby) Apache v2 community http://db.apache.org/derby/ 개발된 Java 기반의 관계형 데이터베이스 Berkeley 오라클 버클리 DB Database License http://www.oracle.com/kr/products/database/ 슬리피캣을 인수한 오라클에서 제공하는 12 DBMS prof/community (Oracle Berkeley DB) or berkeley-db/index.html 고성능 임베디드 데이터베이스 Sleepycat License GPL or Postgresql 데이터베이스의 기반으로 상용화된 13 DBMS 잉그레스(Ingres) prof/community
    [Show full text]
  • Comparison of Web Server Software from Wikipedia, the Free Encyclopedia
    Create account Log in Article Talk Read Edit ViewM ohrisetory Search Comparison of web server software From Wikipedia, the free encyclopedia Main page This article is a comparison of web server software. Contents Featured content Contents [hide] Current events 1 Overview Random article 2 Features Donate to Wikipedia 3 Operating system support Wikimedia Shop 4 See also Interaction 5 References Help 6 External links About Wikipedia Community portal Recent changes Overview [edit] Contact page Tools Server Developed by Software license Last stable version Latest release date What links here AOLserver NaviSoft Mozilla 4.5.2 2012-09-19 Related changes Apache HTTP Server Apache Software Foundation Apache 2.4.10 2014-07-21 Upload file Special pages Apache Tomcat Apache Software Foundation Apache 7.0.53 2014-03-30 Permanent link Boa Paul Phillips GPL 0.94.13 2002-07-30 Page information Caudium The Caudium Group GPL 1.4.18 2012-02-24 Wikidata item Cite this page Cherokee HTTP Server Álvaro López Ortega GPL 1.2.103 2013-04-21 Hiawatha HTTP Server Hugo Leisink GPLv2 9.6 2014-06-01 Print/export Create a book HFS Rejetto GPL 2.2f 2009-02-17 Download as PDF IBM HTTP Server IBM Non-free proprietary 8.5.5 2013-06-14 Printable version Internet Information Services Microsoft Non-free proprietary 8.5 2013-09-09 Languages Jetty Eclipse Foundation Apache 9.1.4 2014-04-01 Čeština Jexus Bing Liu Non-free proprietary 5.5.2 2014-04-27 Galego Nederlands lighttpd Jan Kneschke (Incremental) BSD variant 1.4.35 2014-03-12 Português LiteSpeed Web Server LiteSpeed Technologies Non-free proprietary 4.2.3 2013-05-22 Русский Mongoose Cesanta Software GPLv2 / commercial 5.5 2014-10-28 中文 Edit links Monkey HTTP Server Monkey Software LGPLv2 1.5.1 2014-06-10 NaviServer Various Mozilla 1.1 4.99.6 2014-06-29 NCSA HTTPd Robert McCool Non-free proprietary 1.5.2a 1996 Nginx NGINX, Inc.
    [Show full text]
  • Delivering Web Content
    Delivering web content GET /rfc.html HTTP/1.1 Host: www.ie.org GET /rfc.html HTTP/1.1 User-agent: Mozilla/4.0 Host: www.ie.org GET /rfc.html HTTP/1.1 User-agent: Mozilla/4.0 Host: www.ie.org User-agent: Mozilla/4.0 GET /rfc.html HTTP/1.1 Host: www.ie.org GET /rfc.html HTTP/1.1 User-agent: Mozilla/4.0 Host: www.ie.org User-agent: Mozilla/4.0 CSCI 470: Web Science • Keith Vertanen • Copyright © 2011 Overview • HTTP protocol review – Request and response format – GET versus POST • Stac and dynamic content – Client-side scripIng – Server-side extensions • CGI • Server-side includes • Server-side scripng • Server modules • … 2 HTTP protocol • HyperText Transfer Protocol (HTTP) – Simple request-response protocol – Runs over TCP, port 80 – ASCII format request and response headers GET /rfc.html HTTP/1.1 Host: www.ie.org Method User-agent: Mozilla/4.0 Header lines Carriage return, line feed indicates end of request 3 TCP details MulIple Persistent Persistent connecIons and connecIon and connecIon and sequenIal requests. sequenIal requests. pipelined requests. 4 HTTP request GET /rfc.html HTTP/1.1 Host: www.ie7.org User-agent: Mozilla/4.0 POST /login.html HTTP/1.1 Host: www.store.com User-agent: Mozilla/4.0 Content-Length: 27 Content-Type: applicaon/x-www-form-urlencoded userid=joe&password=guessme 5 HTTP response • Response from server – Status line: protocol version, status code, status phrase – Response headers: extra info – Body: opIonal data HTTP/1.1 200 OK Date: Thu, 17 Nov 2011 15:54:10 GMT Server: Apache/2.2.16 (Debian) Last-Modified: Wed,
    [Show full text]
  • Backend and Frontend Strategies for Deployment of Webgis Services
    Towards We-Government: Collective and participative approaches for addressing local policy challenges Grant Agreement number: 693514 Backend and Frontend Strategies for Deployment of WebGIS Services Noskov A. and Zipf A. Corresponding author: Alexey Noskov, [email protected], Im Neuenheimer Feld 348 Raum 3 69120 Heidelberg, +49 6221 54-5525 Proc. SPIE 10773, Sixth International Conference on Remote Sensing and Geoinformation of the Environment (RSCy2018), 107730I (6 August 2018) https://doi.org/10.1117/12.2322831 http://ar.n-kov.com/i/Noskov2018fbsWebGIS.pdf Backend and Frontend Strategies for Deployment of WebGIS Services Alexey Noskov and Alexander Zipf Heidelberg University, Im Neuenheimer Feld 348, Heidelberg, Germany; ABSTRACT Nowadays, improving of accessibility of cloud computing services leads to increasing amount of WebGIS ap- plications. First, internet maps were managed as static files. Then, interaction was implemented by Common Gateway Interface and server-side programming languages. Currently, WebGIS are built on top of advanced Web 2.0 solutions. Geo-Spatial Data Repository (GSDR) is a web service developing for quality assessment of open geo-spatial data. GSDR is deployed in a computing cloud. A non-blocking web server allows handling multiple concurrent intensive requests. Requests can implement geoprocessing tasks required by users. Tasks are processed in- parallel using multiple CPUs. Utilization of Open Source GIS libraries enables to implement various geo-spatial algorithms. A central database allows multiple concurrent connections. One of the most important challenges for modern WebGIS applications is providing responsive design suitable for different devices, such as desktop computers, laptops, tablets and smart phones. GSDRs frontend provides a generic responsive web design solutions, which may be applied for other map-based applications.
    [Show full text]
  • Ben Adida Mountain View, CA 94043 T 415.683.1383 October 2010 B [email protected]
    100 N Whisman Rd #4311 Ben Adida Mountain View, CA 94043 T 415.683.1383 October 2010 B [email protected] Summary & Objective I am an experienced technologist with deep experience in web (15 years), secu- rity/cryptography (7 years), and medical informatics (5 years). I have a strong vision for architecting advanced web-based systems, experience leading multiple software de- velopment teams, and extensive experience analyzing and presenting complex technical topics to diverse audiences, both in business and academic settings. I want to provide technical leadership in a startup environment. Experience 2007-present Lead Software Architect / Research Faculty, Harvard Medical School, Boston, MA. Lead architect on major medical informatics software projects: Indivo (http:// indivohealth.org), Gene Partnership (http://genepartnership.org), and SMArt (http://smartplatforms.org). Focus on distributed web architectures, software modu- larity in medical IT, and personally-controlled health data. Designed a new personally controlled health record platform strategy and software for patient-directed innovation, including TuAna- lyze (http://tuanalyze.org) integration with patient social-networks. 2002 - present Technical Advisor and W3C Representative, Creative Commons, San Francisco, CA. Advisor on structured data and interoperability, specifically semantic web / linked open data, and more generally web technology. At W3C, co-founder and co-chair of the RDFa Task Force, co-author of the RDFa specifications, primer, and JavaScript reference library. RDFa forms the basis for embedding structured data in HTML, e.g. in Facebook’s Open Graph Protocol. 2006-2008 Postdoctoral Fellow, Harvard University, Cambridge, MA. Research on privacy and security, with a focus on web security & privacy, voting systems.
    [Show full text]
  • 7Th USENIX Tcl/Tk Conference February 14-18, 2000 Austin, Texas, USA
    7th USENIX Tcl/Tk Conference February 14-18, 2000 Austin, Texas, USA Technical Sessions Wednesday, Feb. 16 to Friday, Feb. 18 Wednesday, February 16 9:00 am - 9:15 am Opening Remarks & Best Paper Awards De Clarke, UCO Lick Observatory, and Tom Poindexter, Talus Technologies Inc., Program Co-Chairs 9:15 am - 10:30 am Keynote Address Tcl in AOL Digital City: The Architecture of a Multithreaded High-Performance Web Site Jim Davidson, America Online, Inc. Today's dynamic, high-performance, database-driven Web sites require a platform that is fast, scalable, and provides for rapid application development and publishing. To address these challenges, AOL's Digital City uses a Tcl-enabled multithreaded Web server called AOLserver. This talk will describe the collection of optimized AOLserver Tcl extensions and the flexible Tcl-embedded HTML template architecture which power the Digital City service and publishing environment. In particular, it will highlight the advantages and pitfalls of scalable, mulithreaded Tcl application development. Jim Davidson is Vice President of Technology at AOL's Digital City. Before he came to AOL, he was chief architect of Navisoft's Naviserver, the multithreaded, Tcl and database-driven Web server which has evolved into the latest AOLserver. He has a Bachelor's degree in Physics from the University of California, Santa Barbara. 10:30 am - 11:00 am Break 11:00 am - 12:30 pm Middleware Session Chair: Melissa Chawla, Scriptics Corp. Rapid CORBA Server Development in Tcl: A Case Study Jason Brazile and Andrej Vckovski, Netcetera AG AGNI: A Multi-threaded Middleware for Distributed Scripting M.
    [Show full text]
  • BTP Stage - I 4Th Report
    BTP Stage - I 4th Report Sandeep Prasad 03D05011 s [email protected] March 18, 2013 Introduction Two main components of Clicker architecture are web-server and database-server. For our architecture we will assume Linux as the operating system. In this report we will inspect various features of web-servers. Mapping of features of web-server and requirements of Clicker will assist in narrowing down of list of web-servers appropriate for Clicker software. Requirements of Clicker Software In current architecture the requirements that are taken accounted for are 1. Multiple concurrent sessions: One login and corresponding logout from web server is considered as one session, session is between user and web server. 2. Multiple concurrent connections: One login and corresponding logout from database server is considered as one connection. Connection is between web server and database server. Features of Web-Server Mentioned below are some of the features that a web-server is supposed to provide 1. basic access authentication: A method for HTTP user agent to provide a username and password when making a request 2. digest access authentication: applying function to password before sending it over the network, unlike basic access authentication which sends plain text 3. mode: Web-server can be either kernel-mode or user mode. 1 Kernel-mode Kernel mode web-server is implemented into OS kernel, servers like TUX on GNU/Linux or Microsoft IIS on windows are example of kernel-mode server. Ker- nel mode server can use all the hardware resources it needs such as non-paged memory, CPU time-slices, network adapters, buffer, etc directly, thus they usually work faster.
    [Show full text]
  • 1995 Cern School of Computing
    CERN 95-05 25 October 1995 • 7 ORGANISATION EUROPEENNE POUR LA RECHERCHE NUCLEAIRE CERN EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH 1995 CERN SCHOOL OF COMPUTING Aries, France 20 August - 2 September 1995 PROCEEDINGS Editor: C.E. Vandoni GENEVA 1995 2 7 fe M © Copyright CERN, Genève, 1995 Propriété littéraire et scientifique réservée Literary and scientific copyrights reserved in pour tous les pays du monde. Ce document ne all countries of the world. This report, or peut être reproduit ou traduit en tout ou en any part of it, may not be reprinted or trans- partie sans l'autorisation écrite du Directeur lated without written permission of the copy- général du CERN, titulaire du droit d'auteur. right holder, the Director-General of CERN. Dans les cas appropriés, et s'il s'agit d'utiliser However, permission will be freely granted for le document à des fins non commerciales, cette appropriate non-commercial use. autorisation sera volontiers accordée. If any patentable invention or registrable Le CERN ne revendique pas la propriété des design is described in the report, CERN makes inventions brevetables et dessins ou modèles no claim to property rights in it but offers it susceptibles de dépôt qui pourraient être for the free use of research institutions, man- décrits dans le présent document; ceux-ci peu- ufacturers and others. CERN, however, may vent être librement utilisés par les instituts de oppose any attempt by a user to claim any recherche, les industriels et autres intéressés. proprietary or patent rights in such inventions Cependant, le CERN se réserve le droit de or designs as may be described in the present s'opposer à toute revendication qu'un usager document.
    [Show full text]
  • Delivering Web Content
    Delivering web content GET /rfc.html HTTP/1.1 Host: www.ie.org GET /rfc.html HTTP/1.1 User-agent: Mozilla/4.0 Host: www.ie.org GET /rfc.html HTTP/1.1 User-agent: Mozilla/4.0 Host: www.ie.org User-agent: Mozilla/4.0 GET /rfc.html HTTP/1.1 Host: www.ie.org GET /rfc.html HTTP/1.1 User-agent: Mozilla/4.0 Host: www.ie.org User-agent: Mozilla/4.0 CSCI 470: Web Science • Keith Vertanen • Copyright © 2013 Overview • HTTP protocol review – Request and response format – GET versus POST • Stac and dynamic content – Client-side scripIng – Server-side extensions • CGI • Server-side includes • Server-side scripng • Server modules • Servlets • … 2 HTTP protocol • HyperText Transfer Protocol (HTTP) – Simple request-response protocol – Runs over TCP, port 80 – ASCII format request and response headers GET /rfc.html HTTP/1.1 Host: www.ie.org Method User-agent: Mozilla/4.0 Header lines Carriage return, line feed indicates end of request 3 TCP details MulIple Persistent Persistent connecIons and connecIon and connecIon and sequenIal requests. sequenIal requests. pipelined requests. 4 HTTP request GET /rfc.html HTTP/1.1 Host: www.ie7.org User-agent: Mozilla/4.0 POST /login.html HTTP/1.1 Host: www.store.com User-agent: Mozilla/4.0 Content-Length: 27 Content-Type: applicaon/x-www-form-urlencoded userid=joe&password=guessme 5 HTTP response • Response from server – Status line: protocol version, status code, status phrase – Response headers: extra info – Body: opIonal data HTTP/1.1 200 OK Date: Thu, 17 Nov 2011 15:54:10 GMT Server: Apache/2.2.16 (Debian) Last-Modified:
    [Show full text]