diff --git a/configure b/configure index 3a982decaf8626dc343f81d40e0955a0c358268f..bc58261c6ccb20580f1fd7f334e6db020d385804 100755 --- a/configure +++ b/configure @@ -1448,6 +1448,8 @@ done + + @@ -1502,13 +1504,14 @@ OUTERBOSS_NODENAME="" OUTERBOSS_XMLRPCPORT=3069 OUTERBOSS_SSLCERTNAME="/etc/outer_emulab.pem" PLABSUPPORT=0 +PUBSUPPORT=0 WIKISUPPORT=0 -TRACSUPPORT=0 BUGDBSUPPORT=0 OPSDBSUPPORT=0 MAILMANSUPPORT=0 WINSUPPORT=0 CVSSUPPORT=0 +TRACSUPPORT=0 CHATSUPPORT=0 STAMPS=0 ARCHIVESUPPORT=0 @@ -1740,7 +1743,6 @@ if test $ISOLATEADMINS -eq 1; then EOF fi - if test $DYNAMICROOTPASSWORDS -eq 1; then cat >> confdefs.h <<EOF #define DYNAMICROOTPASSWORDS 1 @@ -1866,6 +1868,8 @@ fi cat >> confdefs.h <<EOF #define TBBASE "$TBBASE" EOF + + if test -z "$THISHOMEBASE"; then THISHOMEBASE="Emulab.Net" fi @@ -2122,17 +2126,17 @@ for ac_hdr in ulxmlrpcpp/ulxr_config.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2114: checking for $ac_hdr" >&5 +echo "configure:2130: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2119 "configure" +#line 2135 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2124: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2140: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2171,17 +2175,17 @@ for ac_hdr in linux/videodev.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2163: checking for $ac_hdr" >&5 +echo "configure:2179: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2168 "configure" +#line 2184 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2173: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2189: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2214,7 +2218,7 @@ done # Extract the first word of "gtk-config", so it can be a program name with args. set dummy gtk-config; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2206: checking for $ac_word" >&5 +echo "configure:2222: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GTK_CONFIG'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2293,7 +2297,7 @@ fi # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:2285: checking for a BSD compatible install" >&5 +echo "configure:2301: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2354,7 +2358,7 @@ esac # Extract the first word of "rsync", so it can be a program name with args. set dummy rsync; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2346: checking for $ac_word" >&5 +echo "configure:2362: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_RSYNC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2811,8 +2815,8 @@ s%@OUTERBOSS_NODENAME@%$OUTERBOSS_NODENAME%g s%@OUTERBOSS_XMLRPCPORT@%$OUTERBOSS_XMLRPCPORT%g s%@OUTERBOSS_SSLCERTNAME@%$OUTERBOSS_SSLCERTNAME%g s%@PLABSUPPORT@%$PLABSUPPORT%g +s%@PUBSUPPORT@%$PUBSUPPORT%g s%@WIKISUPPORT@%$WIKISUPPORT%g -s%@TRACSUPPORT@%$TRACSUPPORT%g s%@MAILMANSUPPORT@%$MAILMANSUPPORT%g s%@BUGDBSUPPORT@%$BUGDBSUPPORT%g s%@OPSDBSUPPORT@%$OPSDBSUPPORT%g @@ -2850,9 +2854,8 @@ s%@FRISEBEEMCASTADDR@%$FRISEBEEMCASTADDR%g s%@FRISEBEEMCASTPORT@%$FRISEBEEMCASTPORT%g s%@WINSUPPORT@%$WINSUPPORT%g s%@CVSSUPPORT@%$CVSSUPPORT%g +s%@TRACSUPPORT@%$TRACSUPPORT%g s%@CHATSUPPORT@%$CHATSUPPORT%g -s%@ISOLATEADMINS@%$ISOLATEADMINS%g -s%@DYNAMICROOTPASSWORDS@%$DYNAMICROOTPASSWORDS%g s%@STAMPS@%$STAMPS%g s%@ARCHIVESUPPORT@%$ARCHIVESUPPORT%g s%@MIN_UNIX_UID@%$MIN_UNIX_UID%g @@ -2860,6 +2863,8 @@ s%@MIN_UNIX_GID@%$MIN_UNIX_GID%g s%@DELAYTHRESH@%$DELAYTHRESH%g s%@PELABSUPPORT@%$PELABSUPPORT%g s%@ELVIN_COMPAT@%$ELVIN_COMPAT%g +s%@ISOLATEADMINS@%$ISOLATEADMINS%g +s%@DYNAMICROOTPASSWORDS@%$DYNAMICROOTPASSWORDS%g s%@TBOPSEMAIL@%$TBOPSEMAIL%g s%@TBOPSEMAIL_NOSLASH@%$TBOPSEMAIL_NOSLASH%g s%@TBROBOCOPSEMAIL@%$TBROBOCOPSEMAIL%g diff --git a/configure.in b/configure.in index ea64662f5adb56e27bd47bcd66ae6ef5faa1fa82..59ea3e06beaa652dae8bea20ef16117dbe37ba0b 100755 --- a/configure.in +++ b/configure.in @@ -155,6 +155,7 @@ AC_SUBST(OUTERBOSS_NODENAME) AC_SUBST(OUTERBOSS_XMLRPCPORT) AC_SUBST(OUTERBOSS_SSLCERTNAME) AC_SUBST(PLABSUPPORT) +AC_SUBST(PUBSUPPORT) AC_SUBST(WIKISUPPORT) AC_SUBST(MAILMANSUPPORT) AC_SUBST(BUGDBSUPPORT) @@ -256,6 +257,7 @@ OUTERBOSS_NODENAME="" OUTERBOSS_XMLRPCPORT=3069 OUTERBOSS_SSLCERTNAME="/etc/outer_emulab.pem" PLABSUPPORT=0 +PUBSUPPORT=0 WIKISUPPORT=0 BUGDBSUPPORT=0 OPSDBSUPPORT=0 diff --git a/defs-default b/defs-default index 00d0f4012648c337a6811251ae37a657445ff81f..f3b929c16557bf474f8201ee994847095b299dd9 100644 --- a/defs-default +++ b/defs-default @@ -43,6 +43,7 @@ ELVIN_COMPAT=1 # # This next group will not work outside of Utah (yet). # +PUBSUPPORT=1 WIKISUPPORT=1 TRACSUPPORT=1 BUGDBSUPPORT=1 diff --git a/sql/database-fill.sql b/sql/database-fill.sql index 8138d9ad9124fef33ab13c04e5a726236271022c..af39995fd33c0f18eeb624773846b4257cbfdf9c 100644 --- a/sql/database-fill.sql +++ b/sql/database-fill.sql @@ -147,6 +147,8 @@ REPLACE INTO exported_tables VALUES ('state_triggers'); REPLACE INTO exported_tables VALUES ('table_regex'); REPLACE INTO exported_tables VALUES ('testsuite_preentables'); REPLACE INTO exported_tables VALUES ('webdb_table_permissions'); +REPLACE INTO exported_tables VALUES ('emulab_pubs_month_map'); + -- -- Dumping data for table `foreign_keys` @@ -944,6 +946,10 @@ REPLACE INTO table_regex VALUES ('user_pubkeys','verify','text','redirect','defa REPLACE INTO table_regex VALUES ('user_pubkeys','user','text','redirect','users:uid',0,0,NULL); REPLACE INTO table_regex VALUES ('user_pubkeys','keyfile','text','regex','^[-_\\w\\.\\/:+]*$',1,256,NULL); +REPLACE INTO table_regex VALUES ('default','tinytext_utf8','text','regex','^(?:[\\x20-\\x7E]|[\\xC2-\\xDF][\\x80-\\xBF]|\\xE0[\\xA0-\\xBF][\\x80-\\xBF]|[\\xE1-\\xEC\\xEE\\xEF][\\x80-\\xBF]{2}|\\xED[\\x80-\\x9F][\\x80-\\xBF])*$',0,256,'adopted from http://www.w3.org/International/questions/qa-forms-utf-8.en.php'); +REPLACE INTO table_regex VALUES ('default','text_utf8','text','regex','^(?:[\\x20-\\x7E]|[\\xC2-\\xDF][\\x80-\\xBF]|\\xE0[\\xA0-\\xBF][\\x80-\\xBF]|[\\xE1-\\xEC\\xEE\\xEF][\\x80-\\xBF]{2}|\\xED[\\x80-\\x9F][\\x80-\\xBF])*$',0,65535,'adopted from http://www.w3.org/International/questions/qa-forms-utf-8.en.php'); +REPLACE INTO table_regex VALUES ('default','fulltext_utf8','text','regex','^(?:[\\x09\\x0A\\x0D\\x20-\\x7E]|[\\xC2-\\xDF][\\x80-\\xBF]|\\xE0[\\xA0-\\xBF][\\x80-\\xBF]|[\\xE1-\\xEC\\xEE\\xEF][\\x80-\\xBF]{2}|\\xED[\\x80-\\x9F][\\x80-\\xBF])*$',0,65535,'adopted from http://www.w3.org/International/questions/qa-forms-utf-8.en.php'); + -- -- Dumping data for table `testsuite_preentables` -- @@ -1002,3 +1008,34 @@ REPLACE INTO webdb_table_permissions VALUES ('projects',1,1,0); REPLACE INTO webdb_table_permissions VALUES ('osidtoimageid',1,0,1); REPLACE INTO webdb_table_permissions VALUES ('table_regex',1,1,1); + +-- +-- Dumping data for table `emulab_pubs_month_map` +-- + +REPLACE INTO `emulab_pubs_month_map` VALUES (1,0.0,''); +REPLACE INTO `emulab_pubs_month_map` VALUES (2,1.0,'Jan'); +REPLACE INTO `emulab_pubs_month_map` VALUES (3,2.0,'Feb'); +REPLACE INTO `emulab_pubs_month_map` VALUES (4,3.0,'Mar'); +REPLACE INTO `emulab_pubs_month_map` VALUES (5,4.0,'Apr'); +REPLACE INTO `emulab_pubs_month_map` VALUES (6,5.0,'May'); +REPLACE INTO `emulab_pubs_month_map` VALUES (7,6.0,'Jun'); +REPLACE INTO `emulab_pubs_month_map` VALUES (8,7.0,'Jul'); +REPLACE INTO `emulab_pubs_month_map` VALUES (9,8.0,'Aug'); +REPLACE INTO `emulab_pubs_month_map` VALUES (10,9.0,'Sep'); +REPLACE INTO `emulab_pubs_month_map` VALUES (11,10.0,'Oct'); +REPLACE INTO `emulab_pubs_month_map` VALUES (12,11.0,'Nov'); +REPLACE INTO `emulab_pubs_month_map` VALUES (13,12.0,'Dec'); +REPLACE INTO `emulab_pubs_month_map` VALUES (14,1.5,'Jan-Feb'); +REPLACE INTO `emulab_pubs_month_map` VALUES (15,2.5,'Feb-Mar'); +REPLACE INTO `emulab_pubs_month_map` VALUES (16,3.5,'Mar-Apr'); +REPLACE INTO `emulab_pubs_month_map` VALUES (17,4.5,'Apr-May'); +REPLACE INTO `emulab_pubs_month_map` VALUES (18,5.5,'May-Jun'); +REPLACE INTO `emulab_pubs_month_map` VALUES (19,6.5,'Jun-Jul'); +REPLACE INTO `emulab_pubs_month_map` VALUES (20,7.5,'Jul-Aug'); +REPLACE INTO `emulab_pubs_month_map` VALUES (21,8.5,'Aug-Sep'); +REPLACE INTO `emulab_pubs_month_map` VALUES (22,9.5,'Sep-Oct'); +REPLACE INTO `emulab_pubs_month_map` VALUES (23,10.5,'Oct-Nov'); +REPLACE INTO `emulab_pubs_month_map` VALUES (24,11.5,'Nov-Dec'); +REPLACE INTO `emulab_pubs_month_map` VALUES (25,12.5,'Dec-Jan'); + diff --git a/sql/database-migrate.txt b/sql/database-migrate.txt index 8f3b23eb46faef536e4f2f1f48daa63b7902ced7..a9bc05642c3ab9fe1777e580d7444cc21ba4ff67 100644 --- a/sql/database-migrate.txt +++ b/sql/database-migrate.txt @@ -4545,3 +4545,8 @@ last_net_act,last_cpu_act,last_ext_act); alter table interfaces add `uuid` varchar(40) NOT NULL default ''; alter table interfaces add KEY `uuid` (`uuid`); update interfaces set uuid=UUID(); + +4.156: Create emulab_pubs and related tables. + Add support for UTF-8 fields in table_regex. + + mysql tbdb < emulab_pubs.sql diff --git a/sql/emulab_pubs.sql b/sql/emulab_pubs.sql new file mode 100644 index 0000000000000000000000000000000000000000..50a2b56f14e7f3de93891a55bf4c847ccaddc3f3 --- /dev/null +++ b/sql/emulab_pubs.sql @@ -0,0 +1,73 @@ +drop table if exists emulab_pubs; +create table `emulab_pubs` ( + `idx` int unsigned not null primary key auto_increment, + `uuid` varchar(40) not null unique, + `created` datetime not null, + `owner` mediumint(8) unsigned not null, + `submitted_by` mediumint(8) unsigned not null, + `last_edit` datetime not null, + `last_edit_by` mediumint(8) unsigned not null, + `type` tinytext not null, + `authors` tinytext not null, + `affil` tinytext not null, + `title` tinytext not null, + `conf` tinytext not null, + `conf_url` tinytext not null, + `where` tinytext not null, + `year` tinytext not null, + `month` float(3,1) not null, + `volume` tinytext not null, + `number` tinytext not null, + `pages` tinytext not null, + `url` tinytext not null, + `evaluated_on_emulab` tinytext not null, + `category` tinytext not null, + `project` tinytext not null, + `cite_osdi02` tinyint(1), + `no_cite_why` tinytext not null, + `notes` text not null, + `visible` tinyint(1) default 1 not null, + `deleted` tinyint(1) default 0 not null, + `editable_owner` tinyint(1) default 1 not null, + `editable_proj` tinyint(1) default 1 not null +); + +drop table if exists emulab_pubs_month_map; +create table `emulab_pubs_month_map` ( + `display_order` int unsigned not null unique auto_increment, + `month` float(3,1) not null primary key, + `month_name` char(8) not null +); + +insert into emulab_pubs_month_map (`month`, `month_name`) values + (0, ''), + (1, 'Jan'), + (2, 'Feb'), + (3, 'Mar'), + (4, 'Apr'), + (5, 'May'), + (6, 'Jun'), + (7, 'Jul'), + (8, 'Aug'), + (9, 'Sep'), + (10, 'Oct'), + (11, 'Nov'), + (12, 'Dec'), + (1.5, 'Jan-Feb'), + (2.5, 'Feb-Mar'), + (3.5, 'Mar-Apr'), + (4.5, 'Apr-May'), + (5.5, 'May-Jun'), + (6.5, 'Jun-Jul'), + (7.5, 'Jul-Aug'), + (8.5, 'Aug-Sep'), + (9.5, 'Sep-Oct'), + (10.5, 'Oct-Nov'), + (11.5, 'Nov-Dec'), + (12.5, 'Dec-Jan'); + + +REPLACE INTO table_regex VALUES ('default','tinytext_utf8','text','regex','^(?:[\\x20-\\x7E]|[\\xC2-\\xDF][\\x80-\\xBF]|\\xE0[\\xA0-\\xBF][\\x80-\\xBF]|[\\xE1-\\xEC\\xEE\\xEF][\\x80-\\xBF]{2}|\\xED[\\x80-\\x9F][\\x80-\\xBF])*$',0,256,'adopted from http://www.w3.org/International/questions/qa-forms-utf-8.en.php'); +REPLACE INTO table_regex VALUES ('default','text_utf8','text','regex','^(?:[\\x20-\\x7E]|[\\xC2-\\xDF][\\x80-\\xBF]|\\xE0[\\xA0-\\xBF][\\x80-\\xBF]|[\\xE1-\\xEC\\xEE\\xEF][\\x80-\\xBF]{2}|\\xED[\\x80-\\x9F][\\x80-\\xBF])*$',0,65535,'adopted from http://www.w3.org/International/questions/qa-forms-utf-8.en.php'); +REPLACE INTO table_regex VALUES ('default','fulltext_utf8','text','regex','^(?:[\\x09\\x0A\\x0D\\x20-\\x7E]|[\\xC2-\\xDF][\\x80-\\xBF]|\\xE0[\\xA0-\\xBF][\\x80-\\xBF]|[\\xE1-\\xEC\\xEE\\xEF][\\x80-\\xBF]{2}|\\xED[\\x80-\\x9F][\\x80-\\xBF])*$',0,65535,'adopted from http://www.w3.org/International/questions/qa-forms-utf-8.en.php'); + diff --git a/www/defs.php3.in b/www/defs.php3.in index 412f357c1e2ce27a194079e4faebe4cf2abb23fb..3d8af7ed7ca66622b80892bc7fbfa5215f1bcec9 100644 --- a/www/defs.php3.in +++ b/www/defs.php3.in @@ -25,6 +25,7 @@ $TBWWW = "@TBWWW@"; $THISHOMEBASE = "@THISHOMEBASE@"; $ELABINELAB = @ELABINELAB@; $PLABSUPPORT = @PLABSUPPORT@; +$PUBSUPPORT = @PUBSUPPORT@; $WIKISUPPORT = @WIKISUPPORT@; $TRACSUPPORT = @TRACSUPPORT@; $BUGDBSUPPORT = @BUGDBSUPPORT@; diff --git a/www/doc/docwrapper.php3 b/www/doc/docwrapper.php3 index 75bef77c7517e44569d30689dd50e2a9ea6d3277..2e7381ec5e5d3d83711ed0cce800efab658bfd1d 100644 --- a/www/doc/docwrapper.php3 +++ b/www/doc/docwrapper.php3 @@ -88,3 +88,8 @@ else { } ?> + + + + + diff --git a/www/doc/expubs.html b/www/doc/expubs.html index 33bb8c5dbe3b8287b886d50feded51a55f471562..4496a573b9ae5cbd145ec00f43258ccae01b3d17 100644 --- a/www/doc/expubs.html +++ b/www/doc/expubs.html @@ -1,535 +1,8 @@ <html> -<h3 align="center"><em>Please send updates or corrections to <a href="mailto:papers@emulab.net">papers@emulab.net</a>.</em></h3><h2>Active Networks</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/nodeos-jsac01-base.html">An OS Interface for Active Routers.</a> - Larry Peterson, Yitzchak Gottlieb, Mike Hibler, Patrick Tullmann, Jay Lepreau, Stephen Schwab, Hrishikesh Dandekar, Andrew Purtell, John Hartman. <em>IEEE Journal on Selected Areas of Communication</em>, Mar 2001</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/janos-jsac01-base.html">Janos: A Java-Oriented OS for Active Network Nodes.</a> - P. Tullmann, M. Hibler, J. Lepreau. <em>IEEE Journal on Selected Areas in Communications</em>, March 2001</li> -<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=945445.945447">Upgrading Transport Protocols using Untrusted Mobile Code.</a> - Parveen Patel, Andrew Whitaker, David Wetherall, Jay Lepreau, Tim Stack. <em>ACM Symposium on Operating Systems Principles </em>, pages 1-14, 2003</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/8518/26920/01196377.pdf?tp=&isnumber=&arnumber=1196377">Bees: A Secure, Resource-Controlled, Java-Based Execution Environment.</a> - Tim Stack, Eric Eide, Jay Lepreau. <em>IEEE Conference on Open Architectures and Network Programming</em>, pages 97-106, San Francisco, CA, Apr 2003</li> -<li style="margin-bottom: 10pt"><a href="ftp://ftp.cs.unc.edu/pub/publications/techreports/05-023.pdf">GAL: A Middleware Library for Multidimensional Adaptation.</a> - David Gotz, Ketan Mayer-Patel. Technical Report TR05-023, Oct 2005</li> -</ul> -<h2>Adaptive Traffic Equalization</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4288774">NATALIE: An Adaptive, Network-Aware Traffic Equalizer.</a> - Yihua He, Jack Brassil. <em>Proceedings of the IEEE International Conference on Communications (ICC)</em>, pages 595-602, Glasgow, Scotland, Jun 2007</li> -</ul> -<h2>Application and Experiment Support</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.cs.memphis.edu/~lanwang/paper/step-hercules.pdf">Hercules: An Environment for Large-Scale Enterprise Infrastructure Testing.</a> - Lan Wang, Charles Ellis, Wei Yin, Dung Dinh Luong., May 2007</li> -<li style="margin-bottom: 10pt"><a href="http://reports-archive.adm.cs.cmu.edu/anon/anon/usr0/ftp/2005/CMU-CS-05-117.pdf">Upgrading Distributed Applications with the Version Manager.</a> - Mukesh Agrawal, Suman Nath, Srinivasan Seshan. Technical Report CMU-CS-05-117, Mar 2005</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/joglekar-thesis.pdf">High Capacity Network Link Emulation Using Network Processors.</a> - Abhijeet A. Joglekar. Thesis, University of Utah, May 2004</li> -<li style="margin-bottom: 10pt"><a href="http://www.svs.informatik.uni-oldenburg.de/download/thesis/0043_DFSBechmark.pdf">An Environment for Benchmarking Distributed File Systems – Specifically for NFSv4Repli.</a> - André van Hoorn. Thesis, Carl von Ossietzky Universität Oldenburg, Dec 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.flux.utah.edu/~flikx/publications/Flickinger_Daniel_thesis_20071012.pdf ">Motion Planning and Coordination of Mobile Robot Behavior for Medium Scale Distributed Wireless Network Experiments.</a> - Daniel Montrallo Flickinger. Thesis, University of Utah, Dec 2007</li> -<li style="margin-bottom: 10pt"><a href="http://cs.ubc.ca/~anirbans/538/538_projreport.pdf">How good is Xen for simulating distributed applications? .</a> - Anirban Sinha, Gang Peng ., 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/~abhijeet/sd-proposal.pdf">A Scalable, Accurate and Extensible Network Emulation Platform using the IXP1200 Network Processor .</a> - Abhijeet Joglekar.</li> -</ul> -<h2>AQM Congestion Control</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4262447">PIQI-RCP: Design and Analysis of Rate-Based Explicit Congestion Control.</a> - S. Jain, D. Loguinov. <em>IEEE IWQoS</em>, Jun 2007</li> -<li style="margin-bottom: 10pt"><a href="http://irl.cs.tamu.edu/people/saurabh/papers/iwqos2008.pdf">Towards Experimental Evaluation of Explicit Congestion Control.</a> - S. Jain, Y. Zhang, D. Loguinov. <em>IEEE IWQoS</em>, Jun 2008</li> -</ul> -<h2>Databases</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.cnds.jhu.edu/pub/papers/cnds-2003-3.pdf ">On the Performance of Consistent Wide-Area Database Replication.</a> - Yair Amir, Claudiu Danilov, Michal Miskin-Amir, Jonathan Stanton, Ciprian Tutu. Technical Report CNDS-2003-3, Dec 2003</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.ubc.ca/grads/resources/thesis/Nov05/Elaine_Chang.pdf">Schema Mapping and Query Translation in Heterogeneous Peer-to-Peer XML Databases.</a> - Elaine Qing Chang. Thesis, Trent University (University of British Columbia), Oct 2005</li> -</ul> -<h2>Debugging Distributed Systems</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1314324">The effects of metadata corruption on NFS.</a> - Swetha Krishnan, Giridhar Ravipati, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau, Barton P. Miller. <em>Sigsacc: Workshop on Storage Security and Survivability</em> ISBN:978-1-59593-891-6, pages 37-41, Alexandria, Virginia, 2007</li> -<li style="margin-bottom: 10pt"><a href="http://reports-archive.adm.cs.cmu.edu/anon/2005/CMU-CS-05-190.pdf">Simplifying Distributed Application Upgrades with Simultaneous Execution.</a> - Mukesh Agrawal, Suman Nath, Srinivasan Seshan. Technical Report CMU-CS-05-190, Nov 2005</li> -</ul> -<h2>Declarative Networking</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-177.pdf">The Design and Implementation of Declarative Networks.</a> - Boon Thau Loo. Technical Report UCB/EECS-2006-177, Dec 2006</li> -</ul> -<h2>DHT & P2P</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.andrew.cmu.edu/user/dchheda/p2peur.pdf">Analysis of Erasure Coding in a Peer to Peer Backup System.</a> - Argyro Andreou, Deepti Chheda, Alexander Giamas, George Nychis.</li> -<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/osdi06/tech/li.html">BAR Gossip.</a> - Harry C. Li, Allen Clement, Edmund L. Wong, Jeff Napper, Indrajit Roy, Lorenzo Alvisi, Michael Dahlin. <em>OSDI '06</em>, pages 191-204, Seattle, WA, Nov 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.cmu.edu/~jeffpang/papers/icdcs07-defrag.pdf">Defragmenting DHT-based Distributed File Systems.</a> - Jeffrey Pang, Phillip B. Gibbons, Michael Kaminsky, Srinivasan Seshan, Haifeng Yu. <em>ICDCS '07</em>, 2007</li> -<li style="margin-bottom: 10pt"><a href="http://www.ece.gatech.edu/research/labs/agile_store/files/srds05.pdf">"Agile Store: Experience with Quorum-Based Data Replication Techniques for Adaptive Byzantine Fault Tolerance.".</a> - Lei Kong, Deepak J. Manohar, Arun Subbiah, Michael Sun, Mustaque Ahamad, Douglas M. Blough. <em>Proceedings of the 24th IEEE Symposium on Reliable Distributed Systems (SRDS)</em>, Oct 2005</li> -<li style="margin-bottom: 10pt"><a href="http://csdl2.computer.org/persagen/DLAbsToc.jsp?resourcePath=/dl/proceedings/icdcs/&toc=comp/proceedings/icdcs/2005/2331/00/2331toc.xml&DOI=10.1109/ICDCS.2005.38">Flexible Consistency for Wide area Peer Replication.</a> - Sai Susarla, John Carter. <em>ICDCS ’05</em>, pages 199-208, 2005</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.princeton.edu/~mfreed/docs/shark-nsdi05.pdf">Shark: Scaling File Servers via Cooperative Caching.</a> - Siddhartha Annapureddy, Michael J. Freedman, David Mazières. <em>Proc. 2nd USENIX/ACM Symposium on Networked Systems Design and Implementation (NSDI '05)</em>, May 2005</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4161621">Management and Service Discovery in Satellite and Avionic Networks.</a> - Todd Sproull, John W. Lockwood, John Meier . <em>Proceedings of the 2007 IEEE Aerospace Conference</em>, pages 1-13, Big Sky, Montana, Mar 2007</li> -<li style="margin-bottom: 10pt"><a href="http://www.eecs.harvard.edu/~jonathan/lb/">"Distributed, Secure Load Balancing with Skew, Heterogeneity, and Churn".</a> - Jonathan Ledlie and Margo Seltzer. <em>Proceedings of IEEE INFOCOM 2005</em>, Mar 2005</li> -<li style="margin-bottom: 10pt"><a href="http://www.eecs.harvard.edu/~jonathan/lb/kchoices05-tr.pdf">Distributed, Secure Load Balancing with Skew, Heterogeneity, and Churn.</a> - Jonathan Ledlie, Margo Seltzer. Technical Report TR-31-04, 2004</li> -<li style="margin-bottom: 10pt"><a href="http://www.cercs.gatech.edu/tech-reports/tr2007/git-cercs-07-12.pdf">CubeCache: Efficient and Scalable Processing of OLAP Aggregation Queries in a Peer-to-Peer Network.</a> - Sangeetha Seshadri, Brian F.Cooper, Ling Liu. Technical Report GIT-CERCS-07-12, 2005</li> -<li style="margin-bottom: 10pt"><a href="http://distribnet.sourceforge.net/thesis.pdf">DistribNet- A Global Peer-to-Peer Internet File System.</a> - Kevin Atkinson. Thesis, University of Maryland, 2005</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.princeton.edu/~mfreed/docs/freedman-thesis.pdf">Democratizing Content Distribution.</a> - Michael Joseph Freedman. Thesis, New York University , Sep 2007</li> -</ul> -<h2>Distributed Databases</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://smartech.gatech.edu/dspace/handle/1853/13180">Using Hierarchies for Optimizing Distributed Stream Queries.</a> - Sangeetha Seshadri, Vibhore Kumar, Brian F. Cooper. Technical Report GIT-CERCS-06-06, 2006</li> -</ul> -<h2>Distributed Middleware</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/4032454/4032455/04032480.pdf">PLATO: Predictive Latency-Aware Total Ordering.</a> - Mahesh Balakrishnan, Ken Birman, Amar Phanishayee. <em>SRDS 2006: 25th IEEE Symposium on Reliable Distributed Systems</em>, 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.emulab.net/doc/docwrapper.php3?docname=expubs.html">Distributed Quota Enforcement for Spam Control.</a> - Michael Walfish, J.D. Zamfirescu, Hari Balakrishnan, David Karger, Scott Shenker. <em>Proceedings of the Third Symposium on Networked Systems Design and Implementation (NSDI 2006</em>, May 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.ece.cmu.edu/~mead/middleware-2005.pdf">Fault-Tolerant Middleware and the Magical 1%.</a> - Tudor Dumitra? and Priya Narasimhan. <em>ACM/IFIP/USENIX Conference on Middleware</em>, Dec 2005</li> -<li style="margin-bottom: 10pt"><a href="http://www.cnds.jhu.edu/~wyvern/files/caudy-masters-report.pdf">Scalable Process Group Membership for the Spread Toolkit.</a> - Ryan W. Caudy. Thesis, Johns Hopkins University, Oct 2004</li> -</ul> -<h2>Distributed Systems and Networking</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.navigators.di.fc.ul.pt/papers_manager_free/abstract.php3?id=203">DepSpace: A Byzantine Fault-Tolerant Coordination Service.</a> - Alysson Neves Bessani, Eduardo Alchieri, Miguel Correia, Joni Silva Fraga. <em>Proceedings of the 3rd ACM SIGOPS/EuroSys European Systems Conference - EuroSys'08</em>, Apr 2008</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/index.html">Towards a High Quality Path-oriented Network Measurement and Storage System.</a> - David Johnson, Daniel Gebhardt, Jay Lepreau. <em>Proc. of the Ninth Passive and Active Measurement Conference (PAM 2008)</em>, Apr 2008</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/robots-infocom06-base.html">Mobile Emulab: A Robotic Wireless and Sensor Network Testbed.</a> - David Johnson, Tim Stack, Russ Fish, Daniel Montrallo Flickinger, Leigh Stoller, Robert Ricci, Jay Lepreau. <em>IEEE INFOCOM 2006</em>, Apr 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/linktest-icac06-base.html">Automatic Online Validation of Network Configuration in the Emulab Network Testbed.</a> - David S. Anderson, Leigh Stoller, Mike Hibler, Tim Stack, Jay Lepreau. <em>Third IEEE International Conference on Autonomic Computing (ICAC 2006)</em>, June 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/flexlab-hotnets06-base.html">Flexlab: A Realistic, Controlled, and Friendly Environment for Evaluating Networked Systems.</a> - Jonathon Duerig, Robert Ricci, Junxing Zhang, Daniel Gebhardt, Sneha Kasera, Jay Lepreau. <em>Fifth Workshop on Hot Topics in Networks (HotNets-V)</em>, Nov 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/elabfinger-worlds06-base.html">Towards Fingerpointing in the Emulab Dynamic Distributed System.</a> - Michael P. Kasick, Priya Narasimhan, Kevin Atkinson, Jay Lepreau. <em>Third USENIX Workshop on Real, Large Distributed Systems (WORLDS 2006)</em>, Nov 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/assign-ccr03-base.html">A Solver for the Network Testbed Mapping Problem.</a> - Robert Ricci, Chris Alfeld, Jay Lepreau. <em>ACM SIGCOMM Computer Communications Review</em>, Vol. 32(2), pages 65-81, Apr 2003</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/simem-tridentcom05a.pdf">Integrated Network Experimentation using Simulation and Emulation.</a> - Shashi Guruprasad, Rob Ricci, Jay Lepreau. <em>First International Conference on Testbeds and Research Infrastructures for the Development of Networks and Communities (Tridentcom 2005)</em>, Feb 2005</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/truemobile-ftn2005-02.pdf">TrueMobile: A Mobile Robotic Wireless and Sensor Network Testbed.</a> - David Johnson, Tim Stack, Russ Fish, Dan Flickinger, Rob Ricci, Jay Lepreau. Technical Report FTN-2005-02, Apr 2005</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/ipassign-ftn2005-04-base.html">Optimizing IP Address Assignment on Network Topologies.</a> - Jonathon Duerig, Robert Ricci, John Byers, Jay Lepreau. Technical Report FTN-2005-04, July 2005</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/guruprasad-thesis-base.html">Issues in Integrated Network Experimentation using Simulation and Emulation.</a> - Shashikiran B. Guruprasad. Thesis, University of Utah, Aug 2005</li> -</ul> -<h2>Dynamic Systems</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://lpd.epfl.ch/gramoli/php/pub_irisa_type.php?ref=GVBKR07#GVBKR07">Fast Distributed Slicing without Requiring Uniformity.</a> - Vincent Gramoli, Ymir Vigfusson, Ken Birman, Anne-Marie Kermarrec, Robbert van Renesse. Technical Report GVBKR07, Dec 2007</li> -</ul> -<h2>Emulation</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/joglekar-thesis-base.html">High Capacity Network Link Emulation Using Network Processors.</a> - Abhijeet A. Joglekar. Thesis, University of Utah, May 2004</li> -</ul> -<h2>File Transfer & Streaming</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.cs.cmu.edu/~dga/papers/nsdi2007-set.pdf">Exploiting Similarity for Multi-Source Downloads using File Handprints.</a> - Himabindu Pucha, David G. Andersen, Michael Kaminsky. <em>4th Symposium on Networked System Design and Implementation (NSDI '07)</em>, Apr 2007</li> -<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/nsdi07/tech/full_papers/pucha/pucha.pdf">Exploiting Similarity for Multi-Source Downloads Using File Handprints.</a> - Himabindu Pucha, David G. Andersen, Michael Kaminsky. <em>Proceedings of the Fourth USENIX Symposium on Networked Systems Design and Implementation (NSDI 2007)</em>, Apr 2007</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.cmu.edu/~dga/papers/">Adaptive File Transfers for Diverse Environments.</a> - Himabindu Pucha, Michael Kaminsky, David G. Andersen, Michael A. Kozuch. <em>Proc. USENIX Annual Technical Conference</em>, June 2008</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/8655/27437/01221618.pdf?tp=&isnumber=&arnumber=1221618">Better Audio Performance when Video Stream is Monitored by TCP Congestion Control.</a> - Longin Jan Latecki, Kishore Kulkarni, Jaiwant Mulik. <em>Proceedings of the 2003 International Conference on Multimedia and Expo (ICME)</em>, Vol. II No. 10.1109/ICME.2003.1221618, pages 321-324, Baltimore, MD, Jul 2003</li> -<li style="margin-bottom: 10pt"><a href="http://www.cis.temple.edu/~latecki/Papers/jit04.pdf">A Two-Stream approach for priority management and adaptive rate control in multimedia applications.</a> - Longin Jan Latecki, Tao Jin, Jaiwant Mulik. <em>Journal of Internet Technology</em>, pages 331-339, 2004</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/frisbee-usenix03-base.html">Fast, Scalable Disk Imaging with Frisbee.</a> - Mike Hibler, Leigh Stoller, Jay Lepreau, Robert Ricci, Chad Barb. <em>Proc. of the 2003 USENIX Annual Technical Conference</em>, June 2003</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/8838/27972/01249761.pdf?tp=&isnumber=&arnumber=1249761">Improving Startup Performance using Active Measurements: Algorithm and Evaluation.</a> - Ningning Hu, Peter Steenkiste. <em>Proceedings of the International Conference on Networking Protocol</em>, Vol. , pages 107-118, Nov 2003</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/7999/22121/01029937.pdf?tp=&isnumber=&arnumber=1029937">IQ-RUDP: Coordinating Application Adaptation with Network Transport.</a> - Qi He, Karsten Schwan. <em>Proceedings 11th IEEE International Synopsium on High Performance Distributed Computing</em> ISBN: 0-7695-1686-6, pages 369-378, 2002</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4228009">Optimizing Multiple Distributed Stream Queries Using Hierarchical Network Partitions.</a> - Sangeetha Seshadri, Vibhore Kumar, Brian F. Cooper, Ling Liu. <em>IEEE International Parallel and Distributed Processing Symposium</em>, pages 1-10, Mar 2007</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.umd.edu/projects/nice/papers/srms-nossdav04.pdf">Scalable Resilient Media Streaming.</a> - Suman Banerjee, Seungjoon Lee, Ryan Braud, Bobby Bhattacharjee, Aravind Srinivasan. <em>ACM NOSSDAV</em>, June 2004</li> -<li style="margin-bottom: 10pt"><a href="http://www.dsn.jhu.edu/pub/papers/voip_tmm_06.pdf">An Overlay Architecture for High Quality VoIP Streams.</a> - Yair Amir, Claudiu Danilov, Stuart Goose, David Hedqvist, Andreas Terzis . <em>IEEE Transactions on Multimedia</em>, pages 1250-1262, Dec 2006</li> -<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1180639.1180717">Scalable and adaptive streaming for non-linear media.</a> - David Gotz. <em>MULTIMEDIA '06</em>, pages 357-366, Santa Barbara, CA, Oct 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.andrew.cmu.edu/user/mchainan/FinalPaper.pdf">A Case for Small File Packing in Parallel Virtual File System (PVFS2).</a> - Faraz Shaikh and Mikhail Chainani. <em>Advanced and Distributed Operating Sytems Fall 07</em>, 2007</li> -<li style="margin-bottom: 10pt"><a href="http://www.emulab.net/doc/docwrapper.php3?docname=expubs.html">"MX: Mobile Object Exchange for Collaborative Applications".</a> - Liuba Shrira and Hong Tian. <em>European Conference on Object-Oriented Programming (ECOOP 2003)</em>, July 2003</li> -<li style="margin-bottom: 10pt"><a href="http://www.ists.dartmouth.edu/library/151.pdf">Application-Controlled Loss-Tolerant Data Dissemination.</a> - Guanling Chen, David Kotz. Technical Report TR2004-488, 2004</li> -<li style="margin-bottom: 10pt"><a href="http://www.emulab.net/doc/docwrapper.php3?docname=expubs.html">Scalable Resilient Media Streaming.</a> - Suman Banerjee, Seungjoon Lee, Bobby Bhattacharjee, Aravind Srinivasan, Ryan Braud. Technical Report CS-TR 4482, Apr 2003</li> -<li style="margin-bottom: 10pt"><a href="http://www.gotzfamily.org/~gotz/research/publications/gotz_dissertation2005.pdf">Channel Set Adaptation: Scalable and Adaptive Streaming for Non-Linear Media.</a> - David Gotz. Thesis, University of North Carolina at Chapel Hill , 2006</li> -</ul> -<h2>GRID Computing</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1336674">The File Mover: An Efficient Data Transfer System for Grid Applications.</a> - Cosimo Anglano, Massimo Canonico . <em>Proceedings of the IEEE International Symposium on Cluster Computing and the Grid (CCGrid)</em>, pages 625-634, Chicago, IL, Apr 2004</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1199411">Using Topology-Aware Communication Services in Grid Environments.</a> - Craig A. Lee, Eric Coe, B. Scott Michel, James Stepanek, Ignacio Solisy, J. Matt Clark, Brooks Davis. <em>Proceedings of the 3rd International Symposium on Cluster Computing and the Grid (CCGRID)</em>, pages 534-541, May 2003</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/4354089/4354090/04354137.pdf?tp=&isnumber=&arnumber=4354137">Log Summarization and Anomaly Detection for Troubleshooting Distributed Systems.</a> - Dan Gunter, Brian L. Tierney, Aaron Brown, Martin Swany, John Bresnahan, Jennifer M. Schopf. <em>Proceedings of the 8th IEEE/ACM International Conference on Grid Computing</em> 10.1109/GRID.2007.4354137, pages 226-234, Austin, TX, Sep 2007</li> -<li style="margin-bottom: 10pt"><a href="http://sc07.supercomputing.org/schedule/pdf/pap279.pdf">Anomaly Detection and Diagnosis in Grid Environments.</a> - Lingyun Yang, Chuang Liu, Jennifer M. Schopf, Ian Foster. <em>Proceedings of the 2007 ACM/IEEE Conference on Supercomputing (SC)</em>, Reno, NV, Nov 2007</li> -<li style="margin-bottom: 10pt"><a href="http://www.springerlink.com/content/lda5fja401y3t31b/fulltext.pdf">Topology-Aware Communication in Wide-Area Message-Passing.</a> - Craig A. Lee. <em>Proceedings of the 10th European PVM/MPI User’s Group Meeting</em>, Vol. LNCS 2840/2003, pages 644-652, Sep-Oct 2003</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.dartmouth.edu/reports/abstracts/TR2002-433/">Using the Emulab network testbed to evaluate the Armada I/O framework for computational grids.</a> - Ron Oldfield, David Kotz. Technical Report TR2002-433, Sep 2002</li> -</ul> -<h2>Internet Availability</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.cs.cmu.edu/~dga/papers/">Resilient Overlay Networks.</a> - David G. Andersen and Hari Balakrishnan and M. Frans Kaashoek, Robert Morris. <em>18th ACM Symp. on Operating Systems Principles (SOSP)</em>, Oct 2001</li> -</ul> -<h2>Measurements, Diagnosis, and Anomaly Detection</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.cs.wustl.edu/~schmidt/PDF/D&T-v13.pdf ">Controlling Quality-of-Service in a Distributed Real-time and Embedded Multimedia Application via Adaptive Middleware.</a> - Richard E. Schantz, Joseph P. Loyall, Craig RodriguesDouglas C. Schmidt.</li> -<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1323148">Architecture-Driven Diagnosis of Performance Failures in a Token Ring.</a> - Andrew Williams, Priya Narasimhan. <em>USENIX: Proceedings of the 3rd workshop on Hot Topics in System Dependability</em> Article No. 8, pages 1-4, Edinburgh, UK, 2007</li> -<li style="margin-bottom: 10pt"><a href="http://www.emulab.net/doc/docwrapper.php3?docname=expubs.html">"CCMPerf: A Bechmarking Tool for CORBA Component Model Implementations." .</a> - Arvind S. Krishna, Balachandran Natarajan, Aniruddha Gokhale, Douglas C. Schmidt, Nanbor Wang, Gautam Thaker. <em>Proceedings of the Tenth IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS 2004)</em>, pages 140-147, May 2004</li> -<li style="margin-bottom: 10pt"><a href="http://www-rp.lip6.fr/~augustin/augustin07measuring.pdf">Measuring Load-balanced Paths in the Internet.</a> - Brice Augustin, Renata Teixeira and Timur Friedman. <em>Internet Measurement Conference</em>, Oct 2007</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4362192">An Observation-Based Approach to Performance Characterization of Distributed n-Tier Applications.</a> - Calton Pu, Akhil Sahai, Jason Parekh, Gueyoung Jung, Ji Bae, You-Kyung Cha, Timothy Garcia,Danesh Irani, Jae Lee, Qifeng Lin. <em>Proceedings of the 10th IEEE International Symposium on Workload Characterization (IISWC)</em>, pages 161-170, Boston, MA, Sep 2007</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.washington.edu/research/security/webtripwires.html">Detecting In-Flight Page Changes with Web Tripwires.</a> - Charles Reis, Steven D. Gribble, Tadayoshi Kohno, Nicholas C. Weaver. <em>NSDI 2008</em>, Apr 2008</li> -<li style="margin-bottom: 10pt"><a href="http://www.emulab.net/doc/docwrapper.php3?docname=expubs.html">System Support for Bandwidth Management and Content Adaptation in Internet Applications.</a> - D. Andersen, D. Bansal, D. Curtis, S. Seshan, H. Balakrishnan. <em>Proceedings of the Fourth Symposium on Operating System Design and Implementation (OSDI 2000)</em>, Oct 2002</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.cmu.edu/~dga/papers/cm-osdi2000.pdf">System Support for Bandwidth Management and Content Adaptation in Internet Applications.</a> - David Andersen, Deepak Bansal, Dorothy Curtis, Srinivasan Seshan, Hari Balakrishnan. <em>Proc. USENIX OSDI Conf.</em>, Oct 2000</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1342511">Evaluating the Performance of Middleware Load Balancing Strategies.</a> - Jaiganesh Balasubramanian, Douglas C. Schmidt, Lawrence Dowdy, Ossama Othman. <em>Proceedings of the 8th IEEE International Enterprise Distributed Object Computing Conference (EDOC)</em>, pages 135-146, Monterey, CA, Sep 2004</li> -<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1282409">EtherFuse: An Ethernet Watchdog.</a> - Khaled Elmeleegy, Alan L. Cox, T.S. Eugene Ng. <em>Sigcomm</em> ISBN: 978-1-59593-713-1, pages 253-264, Kyoto, Japan, 2007</li> -<li style="margin-bottom: 10pt"><a href="http://doi.acm.org/10.1145/571825.571864">Evaluating the Running Time of a Communication Round over the Internet.</a> - Omar Bakr, Idit Keidar. <em>Proceedings of the 21st Annual Symposium on Principles of Distributed Computing (PODC)</em>, pages 243-252, Monterey, CA, Jul 2002</li> -<li style="margin-bottom: 10pt"><a href="http://pam2008.cs.wpi.edu/program.html">IMR-Pathload: Robust Available Bandwidth Estimation under End-Host Interrupt Delay.</a> - S.-R. Kang, D. Loguinov. <em>PAM</em>, Apr 2008</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.cmu.edu/~dga/papers/csamp-nsdi2008.pdf">cSamp: A System for Network-Wide Flow Monitoring.</a> - Vyas Sekar, Michael K. Reiter, Walter Willinger, Hui Zhang, Ramana Rao Kompella, David G. Andersen. <em>Proc. 5th USENIX NSDI</em>, Apr 2008</li> -<li style="margin-bottom: 10pt"><a href="http://www.imconf.net/imc-2005/papers/imc05efiles/liu_xiliang/liu_xiliang.pdf">Multi-Hop Probing Asymptotics in Available Bandwidth Estimation: Stochastic Analysis.</a> - X. Liu, K. Ravindran, D. Loguinov. <em>USENIX/ACM IMC</em>, Oct 2005</li> -<li style="margin-bottom: 10pt"><a href="http://irl.cs.tamu.edu/people/xiliang/papers/ton2008.pdf">A Stochastic Foundation of Available Bandwidth Estimation: Multi-Hop Analysis.</a> - Xiliang Liu, Kaliappa Ravindran, Dmitri Loguinov. <em>Transactions on Networking</em>, Vol. 16 No. 1, pages 130-143, Feb 2008</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/hourglass-usenix02/">Inferring Scheduling Behavior with Hourglass.</a> - John Regehr. <em>Proceedings of the USENIX 2002 Annual Technical Conference FREENIX track</em>, June 2002</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/49/4027709/04016144.pdf">Towards a Generalized Stochastic Model of End-to-End Packet-Pair Sampling.</a> - X. Liu, K. Ravindran, D. Loguinov., Dec 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.pdl.cmu.edu/PDL-FTP/stray/CMU-PDL-06-102.pdf">Challenges and Opportunities in Internet Data Mining.</a> - David G. Andersen, Nick Feamster. Technical Report CMU-PDL-06-102, Jan 2006</li> -<li style="margin-bottom: 10pt"><a href="http://reports-archive.adm.cs.cmu.edu/anon/2003/abstracts/03-218.html">RPT: A Low Overhead Single-End Probing Tool for Detecting Network Congestion Positions.</a> - Ningning Hu, Peter Steenkiste. Technical Report CMU-CS-03-218, Dec 2003</li> -<li style="margin-bottom: 10pt"><a href="http://www.nsl.cis.udel.edu/benchmark/thesis.pdf">Attack Profiling For DDOS Benchmarks.</a> - Erinc Arikan. Thesis, University of Delaware, 2006</li> -<li style="margin-bottom: 10pt"><a href="http://dspace.mit.edu/bitstream/1721.1/37095/1/84843065.pdf">Measuring the Performance of a Distributed Quota Enforcement System for Spam Control.</a> - John Dalbert Zamfirescu-Pereira. Thesis, Massachusetts Institute of Technology, Aug 2006</li> -<li style="margin-bottom: 10pt"><a href="http://reports-archive.adm.cs.cmu.edu/anon/anon/usr/ftp/2006/CMU-CS-06-122.pdf">Network Monitoring and Diagnosis Based on Available Bandwidth Measurement .</a> - Ningning Hu. Thesis, Carnegie Mellon University, May 2006</li> -<li style="margin-bottom: 10pt"><a href="http://web.cs.gc.cuny.edu/~xliu/index_files/thesis.pdf">A Stochastic Analysis of End-to-end Available Bandwidth Estimation.</a> - Xiliang Liu. Thesis, The City University of New York , May 2005</li> -<li style="margin-bottom: 10pt"><a href="http://arxiv.org/PS_cache/arxiv/pdf/0801/0801.0455v1.pdf">A System Theoretic Approach to Bandwidth Estimation.</a> - Jorg Liebeherr, Markus Fidler, Shahrokh Valaee., Jan 2008</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.umd.edu/users/pavlos/proposal/pavlos-proposal.pdf">The Measurement Manager: Modular End-to-End Measurement Services.</a> - Pavlos Papageorgiou., Apr 2007</li> -</ul> -<h2>Multicast and Broadcast</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://doi.acm.org/10.1145/1005847.1005860">Connectivity Restrictions in Overlay Multicast.</a> - Aditya Ganjam, Hui Zhang. <em>Proceedings of the 14th International Workshop on Network and Operating Systems Support for Digital Audio and Video (NOSSDAV)</em>, pages 54-59, Cork, Ireland, Jun 2004</li> -<li style="margin-bottom: 10pt"><a href="http://www.sosp.org/2001/papers/snoeren.pdf">Mesh-Based Content Routing using XML.</a> - Alex C. Snoeren, Kenneth Conley, and David K. Gifford. <em>SOSP '01</em>, Banff, Canada, Oct 2001</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/9031/28660/01284186.pdf?arnumber=1284186">Multicast TCP via Concast Merged Acknowledgements.</a> - Billy Mullins, Jim Griffioen, Ken Calvert. <em>ICCCN 2003</em>, Oct 2003</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.cornell.edu/~mahesh/publications/docs/ricochet-camera.pdf">Ricochet: Lateral Error Correction for Time-Critical Multicast.</a> - Mahesh Balakrishnan, Ken Birman, Amar Phanishayee, Stefan Pleisch. <em>NSDI 2007: Fourth Usenix Symposium on Networked Systems Design and Implementation</em>, 2007</li> -<li style="margin-bottom: 10pt"><a href="http://etrij.etri.re.kr/Cyber/servlet/BrowseAbstract?paperid=RP0705-0158">Realization of a Scalable and Reliable Multicast Transport Protocol for Many-to-Many Sessions.</a> - Seungik Lee, Yangwoo Ko, Dongman Lee. <em>ETRI Journal</em>, Vol. 29 No. 6, pages 745-754, Dec 2007</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1302968">Application-Perceived Multicast Push Performance.</a> - Wenhui Zhang, Wei Li, Vincenzo Liberatore. <em>Proceedings of the International Parallel and Distributed Processing Symposium</em>, Apr 2004</li> -<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1103543.1103556">A Cost-Benefit Flow Control for Reliable Multicast and Unicast in Overlay Networks.</a> - Yair Amir, Baruch Awerbuch, Claudiu Danilov, Jonathan Stanton. <em>ACM Transactions on Networking</em>, Vol. vol. XIII, pages 1094-1106, Oct 2005</li> -<li style="margin-bottom: 10pt"><a href="http://www.ee.technion.ac.il/people/idish/ftp/araneola-nca04.pdf">"Araneola: A Scalable Reliable Multicast System for Dynamic Environments".</a> - Roie Melamed and Idit Keidar. <em>rd IEEE International Symposium on Network Computing and Applications (IEEE NCA)</em>, Sept 2004</li> -<li style="margin-bottom: 10pt"><a href="http://ecommons.library.cornell.edu/bitstream/1813/5726/1/TR2006-2027.pdf">Chunkyspread: Heterogeneous Unstructured End System Multicast.</a> - Vidhyashankar Venkataraman, Kaoru Yoshida, Paul Francis. Technical Report TR2006-2027, May 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.ecse.rpi.edu/Homepages/shivkuma/research/papers/ormcc-ton2002.pdf">ORMCC: A Simple And Effective Single-Rate Multicast Congestion Control Scheme.</a> - Jiang Li, Shivkumar Kalyanaraman., 2002</li> -</ul> -<h2>Name Services</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.cs.ubc.ca/grads/resources/thesis/Nov05/Chamath_Keppitiyagama.pdf">A Framework for Multiparty Communication Types.</a> - Chamath Indika Keppitiyagama. Thesis, University of British Columbia, Jul 2005</li> -</ul> -<h2>Network Protocols</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.ecse.rpi.edu/Homepages/shivkuma/research/papers/acc-qos-cnj04.pdf">An Accumulation-based, Closed-loop Scheme for Expected Minimum Rate and Weighted Rate Services.</a> - David Harrison, Yong Xia, Shivkumar Kalyanaraman, Arvind Venkatesan. <em>Computer Networks</em>, Vol. 45 No. 6, pages 801-818, Aug 2004</li> -<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/osdi04/tech/full_papers/gunawi/gunawi.pdf">Deploying Safe User-Level Network Services with icTCP.</a> - Haryadi S. Gunawi, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau. <em>USENIX Association OSDI ’04: 6th Symposium on Operating Systems Design and Implementation</em>, pages 317-332, 2004</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.cornell.edu/~mahesh/">Maelstrom: Transparent Error Correction for Lambda Networks.</a> - Mahesh Balakrishnan, Tudor Marian, Ken Birman, Hakim Weatherspoon, Einar Vollset. <em>Accepted to NSDI 2008: Fifth Usenix Symposium on Networked Systems Design and Implementation</em></li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.kau.se/~johane/publ/Master_JE.pdf">Evaluation of Emulab as Experimental Platform by Comparing TCP and SCTP.</a> - Johan Eklund. Thesis, Karlstad University, Jul 2004</li> -</ul> -<h2>Overlay Networks</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1348102">MPAT: Aggregate TCP Congestion Management as a Building Block for Internet QoS.</a> - Manpreet Singh, Prashant Pradhan, Paul Francis. <em>Proceedings of the 12th IEEE International Conference on Network Protocols (ICNP)</em>, pages 129-138, Berlin, Germany, Oct 2004</li> -</ul> -<h2>Parallel Computing</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/formal_verification/papers/pdmc-submission.pdf">Partial Order Reduction Assisted Parallel Model-Checking.</a> - Robert Palmer and Ganesh Gopalakrishnan., Aug 2002</li> -<li style="margin-bottom: 10pt"><a href="http://www.eecs.harvard.edu/~stein/PAPERS/stein-harvard-dissertation-2007.pdf">Adaptive parallel computation for heterogeneous processors .</a> - Christopher Alexander Stein. Thesis, Harvard University, May 2007</li> -</ul> -<h2>Performance of Network Protocol</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.cs.kau.se/~johane/forskning/rapport_2005_48.pdf">Performance of Network Redundancy Mechanisms in SCTP.</a> - Johan Eklund, Anna Brunstrom. Technical Report 2005-48, 2005</li> -</ul> -<h2>Pub/Sub & Dissemination Systems</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.eecs.harvard.edu/~mdw/papers/cobra-nsdi07.pdf">Cobra: Content based Filtering and Aggregation of Blogs and RSS Feeds.</a> - Ian Rose, Rohan Murty, Peter Pietzuch, Jonathan Ledlie, Mema Roussopoulos, Matt Welsh. <em>Proceedings of the 4th USENIX Symposium on Networked Systems Design & Implementation (NSDI '07)</em>, Apr 2007</li> -<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/nsdi07/tech/full_papers/rose/rose.pdf">Cobra: Content-based Filtering and Aggregation of Blogs and RSS Feeds.</a> - Ian Rose, Rohan Murty, Peter Pietzuch, Jonathan Ledlie, Mema Roussopoulos, Matt Welsh. <em>Proceedings of the Fourth USENIX Symposium on Networked Systems Design and Implementation (NSDI 2007)</em>, Apr 2007</li> -<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/nsdi06/tech/walfish.html">Distributed Quota Enforcement for Spam Control.</a> - Michael Walfish, J.D. Zamfirescu, Hari Balakrishnan, David Karger, Scott Shenker. <em>NSDI '06</em>, pages 281–296, San Jose, CA, May 2006</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1317255">The Design and Performance of a Real-Time Notification Service.</a> - Pradeep Gore, Irfan Pyarali, Christopher D. Gill, Douglas C. Schmidt. <em>Proceedings of the Real-time and Embedded Technology and Applications Symposium</em>, pages 112-120, May 2004</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=1003507">SANDS: Specialized Active Networking for Distributed Simulation.</a> - S. Zabele, M. Dorsch, Z. Ge, P. Ji, M. Keaton, J. Kurose, J. Shapiro, D. Towsley. <em>DARPA Active NEtworks Conference and Exposition</em>, pages 356 - 365, May 2002</li> -</ul> -<h2>QoS</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1196376">User-specified Adaptive Scheduling in a Streaming Media Network.</a> - Michael Hicks, Adithya Nagarajan, Robbert van Renesse. <em>Proceedings of the 2003 IEEE Conference on Open Architectures and Network Programming (OPENARCH)</em>, pages 87-96, San Francisco, CA, Apr 2003</li> -<li style="margin-bottom: 10pt"><a href="http://www.rpi.edu/~xiay/pub/icc03.ps.gz">An Accumulation-based Congestion Control Model.</a> - Y. Xia, D. Harrison, S. Kalyanaraman, K. Ramachandran, A. Venkatesan. <em>IEEE International Conference on Communications</em>, May 2003</li> -</ul> -<h2>Resource Allocation</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/9204/29179/01317274.pdf?tp=&isnumber=&arnumber=1317274">Dynamic CPU Management for Real-Time, Middleware-Based Systems .</a> - Eric Eide, Tim Stack, John Regehr, Jay Lepreau . <em>RTAS '04</em>, pages 286-295, Toronto, Canada, May 2004</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/kaffeos-osdi00-base.html">Processes in KaffeOS: Isolation, Resource Management, and Sharing in Java.</a> - Godmar Back, Wilson C. Hsieh, Jay Lepreau. <em>Proceedings of the Fourth Symposium on Operating Systems Design and Implementation (OSDI 2000)</em>, Oct 2000</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=1388403">Integrated CORBA scheduling and resource management for distributed real-time embedded systems.</a> - Kevin Bryan, Lisa C. DiPippo, Victor Fay-Wolfe, Matthew Murphy, Jiangyin Zhangm, David T. Fleeman, David W. Juedes, Chang Liu, Lonnie R. Welch, Douglas Niehaus, Christopher D. Gill. <em>RTAS '05</em>, pages 375-384, San Francisco, CA, Mar 2005</li> -</ul> -<h2>Robust Scalable Services</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1217955">Context-Specific Middleware Specialization Techniques for Optimizing Software Product-line Architectures.</a> - Arvind S. Krishna, Aniruddha S. Gokhale, Douglas C. Schmidt. <em>ACM SIGOPS Operating Systems Review</em>, pages 205-218, 2006</li> -<li style="margin-bottom: 10pt"><a href="https://www.usenix.org/events/osdi06/tech/full_papers/cowling/cowling.pdf">HQ Replication: A Hybrid Quorum Protocol for Byzantine Fault Tolerance.</a> - James Cowling, Daniel Myers, Barbara Liskov, Rodrigo Rodrigues, Liuba Shrira . <em>OSDI '06</em>, pages 177-190, Seattle, WA, Nov 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.berkeley.edu/~demmer/papers/tierstore-fast08.pdf">TierStore: A Distributed Filesystem for Challenged Networks in Developing Regions.</a> - Michael Demmer, Bowei Du, Eric Brewer. <em>FAST '08</em>, San Jose, CA, Feb 2008</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/10345/32908/01541191.pdf?tp=&isnumber=&arnumber=1541191">Thema: Byzantine-Fault-Tolerant Middleware for Web-Service Applications.</a> - Michael G. Merideth, Arun Iyengar, Thomas Mikalsen, Stefan Tai, Isabelle Rouvellou, Priya Narasimhan. <em>Proceedings of the IEEE Symposium on Reliable Distributed Systems </em>, 2005</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.wustl.edu/~schmidt/PDF/adaptive_lb.pdf">The Design and Performance of an Adaptive Middleware Load Balancing and Monitoring Service.</a> - Ossama Othman, Jaiganesh Balasubramanian, Douglas C. Schmidt. <em>Proceedings of the 3rd International Workshop on Self-Adaptive Software (IWSAS)</em>, Arlington, VA, Jun 2003</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1424039">FlowMate: Scalable On-Line Flow Clustering.</a> - Ossama Younis, Sonia Fahmy. <em>ACM Transactions on Networking</em>, Vol. is. II vol. XIII, pages 288-301, Apr 2005</li> -<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=762485">Astrolabe: A Robust and Scalable Technology for Distributed Systems Monitoring, Management, and Data Mining.</a> - Robbert van Renesse, Kenneth P. Birman, Werner Vogels. <em>Transactions on Computer Systems</em>, Vol. 21 No. 2, pages 164-206, May 2003</li> -<li style="margin-bottom: 10pt"><a href="http://www.ece.cmu.edu/~mead/dsn-hotdep-2005.pdf">Handling Cascading Failures: The Case for Topology-Aware Fault-Tolerance.</a> - Soila Pertet, Priya Narasimhan. <em>HotDep '05</em>, Jun 2005</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.cornell.edu/~tudorm/publications/tempest.pdf">Tempest: Soft State Replication in the Service Tier.</a> - Tudor Marian, Mahesh Balakrishnan, Ken Birman, Robbert van Renesse. <em>DSN 2008</em>, Anchorage, AL, Jun 2008</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/10030/32175/01498048.pdf?tp=&arnumber=1498048&isnumber=32175">Distributed Stream Management using Utility-Driven Self-Adaptive Middleware.</a> - Vibhore Kumar, Brian F. Cooper, Karsten Schwan. <em>Proceedings of the 2nd International Conference on Autonomic Computing (ICAC)</em>, pages 3-14, Seattle, WA, Jun 2005</li> -<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1230080">Applying database replication to multi-player online games.</a> - Yi Lin, Bettina Kemme, Marta Patino-Martinez, Ricardo Jimenez-Peris. <em>NSSG: Proceedings of 5th ACM SIGCOMM workshop on Network and system support for games</em> Article No. 15; ISBN: 1-59593-589-4, 2006</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1605995">Disruption Tolerant Networking for Heterogeneous Ad-Hoc Networks.</a> - Kevin Fall. <em>Military Communications Conference</em>, Vol. vol. IV, pages 2195-2201, Oct 2005</li> -<li style="margin-bottom: 10pt"><a href="ftp://ftp.cs.princeton.edu/techreports/2007/801.pdf">Building Scalable Self-configuring Networks with SEIZE.</a> - Changhoon Kim, Matthew Caesar, Jennifer Rexford. Technical Report , 2007</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utexas.edu/ftp/pub/techreports/tr05-10.pdf">BAR Fault Tolerance for Cooperative Services Extended Technical Report TR0510.</a> - JeanPhilippe Martin, Amitanand S. Aiyer, Lorenzo Alvisi, Allen Clement, Michael Dahlin, Carl Porth. Technical Report TR-05-10, 2005</li> -<li style="margin-bottom: 10pt"><a href="http://www.dtnrg.org/docs/papers/demmer-irb-tr-04-020.pdf">Implementing Delay Tolerant Networking.</a> - Michael Demmer, Eric Brewer, Kevin Fall, Sushant Jain, Melissa Ho, Robin Patra . Technical Report IRB-TR-04-020, Dec 2004</li> -<li style="margin-bottom: 10pt"><a href="http://www.pdl.cmu.edu/PDL-FTP/stray/CMU-PDL-06-107.pdf">Group Communication: Helping or Obscuring Failure Diagnosis?</a> - Soila Pertet, Rajeev Gandhi, Priya Narasimhan. Technical Report CMU-PDL-06-107, Jun 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.intel-research.net/Publications/Pittsburgh/101220041252_263.pdf">Tolerating Correlated Failures in Wide-Area Monitoring Services.</a> - Suman Nath, Haifeng Yu, Phillip B. Gibbons, Srinivasan Seshan. Technical Report IRP-TR-04-09, May 2004</li> -<li style="margin-bottom: 10pt"><a href="http://www.cnds.jhu.edu/pub/papers/cnds-2002-4.pdf">On the Performance of Wide-Area Synchronous Database Replication .</a> - Yair Amir, Claudiu Danilov, Michal Miskin-Amir, Jonathan Stanton, Ciprian Tutu. Technical Report CNDS-2002-4, Nov 2002</li> -<li style="margin-bottom: 10pt"><a href="http://www.cnds.jhu.edu/pub/papers/cnds-2002-1.pdf">Practical Wide-Area Database Replication.</a> - Yair Amir, Claudiu Danilov, Michal Miskin-Amir, Jonathan Stanton, Ciprian Tutu. Technical Report CNDS-2002-1, Feb 2002</li> -<li style="margin-bottom: 10pt"><a href="http://www.dsn.jhu.edu/funding/tolerant_networks/Cost_Benefit_Final_Report.pdf">A Cost-Benefit Approach to Fault Tolerant Communication and Information Access.</a> - Yair Amir . Technical Report , Feb 2004</li> -<li style="margin-bottom: 10pt"><a href="https://www.lib.utexas.edu/etd/d/2005/yalagandulap16097/yalagandulap16097.pdf ">A Scalable Information Management Middleware for Large Distributed Systems.</a> - Praveen Yalagandula. Thesis, University of Texas at Austin, 2005</li> -<li style="margin-bottom: 10pt"><a href="http://reports-archive.adm.cs.cmu.edu/anon/anon/usr/ftp/2005/CMU-CS-05-166.pdf">Exploiting Redundancy for Robust Sensing.</a> - Suman Nath. Thesis, Carnegie Mellon University, Aug 2005</li> -</ul> -<h2>Routing</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.angelfire.com/magic/andreas/infocom2003.pdf">A Connectionless Approach to Intra-domain Traffic Engineering.</a> - Hema Tahilramani Kaur, Shivkumar Kalyanaraman, Shifalika Kanwar, Andreas Weiss, Niharika Mateti, Biplab Sikdar., 2003</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.princeton.edu/~mzhang/papers/thesis.pdf">Understanding Internet Routing Anomalies And Building Robust Transport Layer Protocols.</a> - Ming Zhang . Thesis, Princeton University, Sep 2005</li> -</ul> -<h2>Routing Overlay</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1095809.1095818">Implementing Declarative Overlays.</a> - Boon Thau Loo, Tyson Condie, Joseph M. Hellerstein, Petros Maniatis, Timothy Roscoe, Ion Stoica. <em>ACM SIGOPS Operating Systems Review</em>, pages 75-90, 2005</li> -<li style="margin-bottom: 10pt"><a href="http://www.nyman-workshop.org/2002/papers/2332.pdf">A Connectionless Approach to Intra- and Inter-Domain Traffic Engineering.</a> - Hema T. Kaur, Shivkumar Kalyanaraman. <em>New York Metro Area Networking Workshop</em>, 2002</li> -<li style="margin-bottom: 10pt"><a href="http://doi.acm.org/10.1145/1005847.1005857">Passive Inference of Path Correlation.</a> - Lili Wang, James N. Griffioen, Kenneth L. Calvert, Sherlia Shi . <em>Proceedings of the 14th International Workshop on Network and Operating Systems Support for Digital Audio and Video (NOSSDAV)</em>, pages 36-41, Cork, Ireland, Jun 2004</li> -<li style="margin-bottom: 10pt"><a href="http://usenix.org/publications/library/proceedings/usenix04/tech/general/zhang.html">A Transport Layer Approach for Improving End-to-End Performance and Robustness Using Redundant Paths.</a> - Ming Zhang, Junwen Lai, Arvind Krishnamurthy, Larry Peterson, Randolph Wang. <em>Proceedings of the USENIX 2004 Annual Technical Conference</em>, pages 99-112, Boston, MA, Jun-Jul 2004</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/8589/27228/01209961.pdf?tp=&isnumber=&arnumber=1209961">Reliable Communication in Overlay Networks.</a> - Yair Amir, Claudiu Danilov. <em>Proceedings of the 2003 International Conference on Dependable Systems and Networks (DSN)</em>, pages 511-520, San Francisco, CA, Jun 2003</li> -<li style="margin-bottom: 10pt"><a href="http://www.cis.upenn.edu/~boonloo/papers/dnmobile.pdf">The Case for a Unified Extensible Data-centric Mobility Infrastructure.</a> - Yun Mao, Boon Thau Loo, Zachary Ives, Jonathan M. Smith. <em>Proceedings of the 2nd ACM International Workshop on Mobility in the Evolving Internet Architecture (MobiArch)</em>, Kyoto, Japan, Aug 2007</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/search/srchabstract.jsp?arnumber=1652132&isnumber=34633&punumber=10993&k2dockey=1652132@ieeecnfs&query=%28%28zhongtang+cai%29%3Cin%3Emetadata%29&pos=0&access=n0">IQ-Paths: Predictably High Performance Data Streams across Dynamic Network Overlays.</a> - Zhongtang Cai, Vibhore Kumar, Karsten Schwan. <em>HPDC '06</em>, pages 18-29, Paris, France, Jun 2006</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4313167">A Multipath Flow Routing Approach for Increasing Throughput in the Internet.</a> - Brian L. Mark and Shidong Zhang . <em>IEEE Pacific Rim Conference on Communications, Computers and Signal Processing (PacRim)</em> 10.1109/PACRIM.2007.4313167, pages 21-24, Victoria, BC, Aug 2007</li> -<li style="margin-bottom: 10pt"><a href="http://www.dsn.jhu.edu/~yairamir/Claudiu_thesis.pdf">Performance and Functionality in Overlay Networks.</a> - Claudiu Danilov. Thesis, The Johns Hopkins University, Sep 2004</li> -<li style="margin-bottom: 10pt"><a href="http://nms.lcs.mit.edu/papers/hiro-thesis.pdf">Differential Bandwidth Allocation with Multiplexed TCP Connections.</a> - Hiroyoshi Iwashima. Thesis, MIT, Aug 2003</li> -</ul> -<h2>Security</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.sigcomm.org/sigcomm2007/lsad/fine-grained.pdf">Fine-Grained Capabilities for Flooding DDoS Defense Using Client Reputations .</a> - Maitreya Natu, Jelena Mirkovic ., 2007</li> -<li style="margin-bottom: 10pt">Exposing and Eliminating Vulnerabilities to Denial of Service Attacks in Secure Gossip-Based Multicast. - Gal Badishi, Idit Keidar, Amir Sasson. <em>IEEE Transactions on Dependable and Secure Computing </em>, Vol. vo. III, pages 45-61, Jan 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.navigators.di.fc.ul.pt/archive/veronese07finiteMemory.pdf">On the Effects of Finite Memory on Intrusion-Tolerant Systems.</a> - Giuliana Santos Veronese, Miguel Correia, Lau Cheuk Lung, Paulo Verissimo. <em>PRDC 2007</em>, pages 401-404, 2007</li> -<li style="margin-bottom: 10pt"><a href="http://www.navigators.di.fc.ul.pt/archive/moniz07wireless.pdf">Intrusion Tolerance in Wireless Environments: An Experimental Evaluation.</a> - Henrique Moniz, Nuno Ferreira Neves, Miguel Correia, Antonio Casimiro, Paulo Ver?ssimo. <em>Proceedings of the 13th Pacific Rim International Symposium on Dependable Computing (PRDC 2007)</em>, pages 357-364, Melbourne, Australia, Dec 2007</li> -<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1179579">Visual Toolkit for Network Security Experiment Specification and Data Analysis.</a> - L. Li, P. Liu, G. Kesidis. <em>Proceedings of the 3rd International Workshop on Visualization for Computer Security (VizSEC)</em>, pages 7-14, Alexandria, VA, Nov 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.cornell.edu/andru/papers/civitas-oakland08.pdf">Civitas: Toward a Secure Voting System.</a> - Michael R. Clarkson, Stephen Chong, Andrew C. Myers. <em>Proceedings of the 2008 IEEE Symposium on Security and Privacy</em>, May 2008</li> -<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1159913.1159948">DDoS Defense by Offense.</a> - Michael Walfish, Mythili Vutukuru, Hari Balakrishnan, David Karger, and Scott Shenker. <em>Sigcomm</em> ISBN: 1-59593-308-5, pages 303-314, Pisa, Italy, Sep 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/event/hotbots07/tech/full_papers/barford/barford.pdf">Toward Botnet Mesocosms.</a> - Paul Barford, Mike Blodgett. <em>Proceedings of the First Workshop on Hot Topics in Understanding Botnets (HotBots)</em>, Cambridge, MA, Apr 2007</li> -<li style="margin-bottom: 10pt"><a href="http://www.isi.edu/deter/mtg-jun06/presentations/DETER_WKSHOP-PROCEEDINGS-FINAL20060615.pdf">High Fidelity Denial of Service (DoS) Experimentation.</a> - Roman Chertov, Sonia Fahmy, Ness B. Shroff . <em>Proceedings of the DETER Community Workshop</em>, Arlington, VA, June 2006</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/search/srchabstract.jsp?arnumber=1649164&isnumber=34577&punumber=10972&k2dockey=1649164@ieeecnfs&query=%28chertov+%3Cin%3E+metadata%29+%3Cand%3E+%2834577+%3Cin%3E+isnumber%29&pos=0&access=no">Emulation versus Simulation: A Case Study of TCP-Targeted Denial of Service Attacks.</a> - Roman Chertov, Sonia Fahmy, Ness B. Shroff. <em>Proceedings of the 2nd International Conference on Testbeds and Research Infrastructures for the Development of Networks and Communities (TRIDENTCOM)</em>, Mar 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.purdue.edu/homes/fahmy/papers/tomacs.pdf">Fidelity of Network Simulation and Emulation: A Case Study of TCP-Targeted Denial of Service Attacks.</a> - Roman Chertov, Sonia Fahmy, Ness B. Shroff. <em>ACM Transactions on Modeling and Computer Simulation (TOMACS)</em>, TB</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1629453">Towards a framework for worm-defense evaluation.</a> - Senthilkumar G. Cheetancheri, Denys L. Ma, Karl N. Levitt, Todd L. Heberlein. <em>Proceedings of the 25th IEEE International Performance, Computing, and Communications Conference (IPCCC)</em> 10.1109/.2006.1629453, pages 559-565, Apr 2006</li> -<li style="margin-bottom: 10pt"><a href="http://doi.acm.org/10.1145/1162666.1162668">A Distributed Host-based Worm Detection System.</a> - Senthilkumar G. Cheetancheri, John Mark Agosta, Denver H. Dash, Karl N. Levitt, Jeff Rowe, Eve M. Schooler. <em>Proceedings of the 2006 SIGCOMM Workshop on Large-Scale Attack Defense (LSAD)</em>, pages 107-113, Pisa, Italy, Sep 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.arl.wustl.edu/~todd/sproull_iwan_05.pdf">Extensible Network Configuration and Communication Framework.</a> - Todd Sproull, John Lockwood. <em>Proceedings of the 7th Annual International Working Conference on Active and Programmable Networks (IWAN)</em>, Nov 2005</li> -<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/4271739/4271740/04271755.pdf?tp=&isnumber=&arnumber=4271755">A Comparison of SYN Flood Detection Algorithms.</a> - Matt Beaumont-Gay. <em>Proceedings of the Second International Conference on Internet Monitoring and Protection (ICIMP)</em> 10.1109/ICIMP.2007.1, Jul 2007</li> -<li style="margin-bottom: 10pt"><a href="http://www.eecis.udel.edu/~sunshine/publications/udel_tech_report_2005-02.pdf">Distributed Defense Against DDoS Attacks.</a> - Jelena Mirkovic, Max Robinson, Peter Reiher, George Oikonomou. Technical Report CIS-TR-2005-02, Feb 2005</li> -<li style="margin-bottom: 10pt"><a href="http://ecommons.library.cornell.edu/bitstream/1813/7875/3/civitas-tr.pdf">Civitas: A Secure Voting System.</a> - Michael R. Clarkson, Stephen Chong, Andrew C. Myers. Technical Report TR-2007-2081, May 2007</li> -<li style="margin-bottom: 10pt"><a href="http://sysnet.ucsd.edu/~amizrak/papers/dissertation07/Mizrak_dissertation.pdf">Detecting Malicious Routers.</a> - Alper Tugay M?zrak. Thesis, University of California, San Diego, 2007</li> -<li style="margin-bottom: 10pt"><a href="http://www.caip.rutgers.edu/TASSL/Thesis/Guangsen-phdthesis.pdf">Decentralized Information Sharing for Detection and Protection against Network Attacks.</a> - Guangsen Zhang. Thesis, Rutgers University, 2006</li> -</ul> -<h2>Simulation</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://doi.acm.org/10.1145/1190095.1190131">A Realistic Simulation of Internet-Scale Events.</a> - Songjie Wei, Jelena Mirkovic. <em>Proceedings of the 1st International Conference on Performance Evaluation Methodologies and Tools (VALUETOOLS)</em>, Pisa, Italy, Oct 2006</li> -</ul> -<h2>State Machines</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/hotdep06/tech/prelim_papers/slember/slember.pdf">Static Analysis Meets Distributed Fault-Tolerance: Enabling State-Machine Replication with Nondeterminism.</a> - Joseph G. Slember, Priya Narasimhan. <em>Proceedings of the Second Workshop on Hot Topics in System Dependability (HotDep '06)</em>, Nov 2006</li> -</ul> -<h2>Virtualization</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://research.microsoft.com/asia/dload_files/group/system/2007/stein-hpcvirt07.pdf">Can a file system virtualize processors?</a> - Lex Stein, David Holland, Margo Seltzer, Zheng Zhang., 2007</li> -<li style="margin-bottom: 10pt"><a href="http://emist.ist.psu.edu/psu_itc19.pdf">Emulation of “single-packet” UDP Scanning Worms in Large Enterprises.</a> - Lunquan Li, Soranun Jiwasurat, Peng Liu, George Kesidis. <em>Proceedings of the 19th International Teletraffic Congress (ITC19)</em>, Beijing, China, Aug 2005</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.washington.edu/homes/roxana/acads/projects/vmnfs/networkvm06.pdf">Study of Virtual Machine Performance over Network File Systems.</a> - Roxana Geambasu, John P John., Jun 2006</li> -</ul> -<h2>Vision & Architecture</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utexas.edu/users/dahlin/papers/ssr-preprint.pdf">Safe Speculative Replication.</a> - Mike Dahlin, Arun Iyengar, Ravi Kokku, Amol Nayate, Arun Venkataramani, Praveen Yalagandula., 2007</li> -<li style="margin-bottom: 10pt"><a href="http://doi.acm.org/10.1145/1159913.1159916">In VINI Veritas: Realistic and Controlled Network Experimentation.</a> - Andy Bavier, Nick Feamster, Mark Huang, Larry Peterson, Jennifer Rexford. <em>Proceedings of the 2006 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications (SIGCOMM)</em>, pages 3-14, Pisa, Italy, Sep 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/netbed-osdi02-base.html">An Integrated Experimental Environment for Distributed Systems and Networks.</a> - B. White, J. Lepreau, L. Stoller, R. Ricci, S. Guruprasad, M. Newbold, M. Hibler, C. Barb, A. Joglekar. <em>Proceedings of the 5th Symposium on Operating System Design and Implementation (OSDI 2002)</em>, Dec 2002</li> -<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1142473.1142485">Declarative Networking: Language, Execution and Optimization.</a> - Boon Thau Loo, Tyson Condie, Minos Garofalakis, David E. Gay, Joseph M. Hellerstein, Petros Maniatis, Raghu Ramakrishnan, Timothy Roscoe, Ion Stoica. <em>International Conference on Management of Data</em>, pages 97-108, 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/workbench-nsdi07-base.html">An Experimentation Workbench for Replayable Networking Research.</a> - Eric Eide, Leigh Stoller, Jay Lepreau. <em>Proceedings of the Fourth USENIX Symposium on Networked Systems Design and Implementation (NSDI 2007)</em>, Apr 2007</li> -<li style="margin-bottom: 10pt"><a href="http://doi.acm.org/10.1145/944759.944766">BANANAS: An Evolutionary Framework for Explicit and Multipath Routing in the Internet.</a> - H. Tahilramani Kaur, S. Kalyanaraman, A. Weiss, S. Kanwar, A. Gandhi. <em>Proceedings of the ACM SIGCOMM Workshop on Future Directions in Network Architecture (FDNA)</em>, pages 277-288, Karlsruhe, Germany, Aug 2003</li> -<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/osdi2000/yuvahdat.html">Design and Evaluation of a Continuous Consistency Model for Replicated Services.</a> - Haifeng Yu, Amin Vahdat. <em>OSDI '00</em>, pages 305-318, San Diego, CA, Oct 2000</li> -<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/osdi04/tech/full_papers/gunawi/gunawi.pdf">Deploying Safe User-Level Network Services with icTCP.</a> - Haryadi S. Gunawi, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau. <em>OSDI '04</em>, 2004</li> -<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/nsdi07/tech/yan.html">Tesseract: A 4D Network Control Plane.</a> - Hong Yan, David A. Maltz, T.S. Eugene Ng, Hemant Gogineni, Hui Zhang, Zheng Cai. <em>NSDI '07</em>, pages 369–382, Cambridge, MA, April 2007</li> -<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/event/deter07/tech/full_papers/sklower/sklower.pdf">Very Large Scale Cooperative Experiments in Emulab-Derived Systems.</a> - Keith Sklower, Anthony D. Joseph . <em>DETER Community Workshop on Cyber Security Experimentation and Test 2007</em>, Boston, MA, Aug 2007</li> -<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/nsdi06/tech/tolia.html">An Architecture for Internet Data Transfer.</a> - Niraj Tolia, Michael Kaminsky, David G. Andersen, Swapnil Patil. <em>NSDI '06</em>, pages 253–266, San Jose, CA, May 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/formal_verification/papers/cav02paper.pdf">Shared memory consistency protocol verification against weak memory models: refinement via model-checking.</a> - Prosenjit Chatterjee, Hemanthkumar Sivaraj, Ganesh Gopalakrishnan. <em>Proceedings of the 14th International Conference on Computer Aided Verification (CAV 2002)</em>, July 2002</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/flexlab-nsdi07-base.html">The Flexlab Approach to Realistic Evaluation of Networked Systems.</a> - Robert Ricci, Jonathon Duerig, Pramod Sanaga, Daniel Gebhardt, Mike Hibler, Kevin Atkinson, Junxing Zhang, Sneha Kasera, Jay Lepreau. <em>Proceedings of the Fourth USENIX Symposium on Networked Systems Design and Implementation (NSDI 2007)</em>, Apr 2007</li> -<li style="margin-bottom: 10pt"><a href="http://reports-archive.adm.cs.cmu.edu/anon/anon/usr0/ftp/2005/CMU-CS-05-112.pdf">A Distributed Architecture for Interactive Multiplayer Games.</a> - Ashwin R. Bharambe, Jeff Pang, Srinivasan Seshan. Technical Report CMU-CS-05-112, Jan 2005</li> -<li style="margin-bottom: 10pt"><a href="http://ftp.cs.umd.edu/~nspring/papers/PoMo_Proposal.pdf">Postmodern Internetwork Architecture.</a> - Bobby Bhattacharjee, Ken Calvert, Jim Griffioen, Neil Spring, James Sterbenz. Technical Report ITTC-FY2006-TR-45030-01, Feb 2006</li> -<li style="margin-bottom: 10pt"><a href="https://www.cylab.cmu.edu/files/cmucylab06005.pdf">FastPass: Providing First-Packet Delivery.</a> - Dan Wendlandt, David G. Andersen, Adrian Perrig. Technical Report CMU-CyLab-06-005, Mar 2006</li> -<li style="margin-bottom: 10pt"><a href="http://reports-archive.adm.cs.cmu.edu/anon/anon/home/ftp/2006/CMU-CS-06-114.pdf">OverDoSe: A Generic DDoS Protection Service Using and Overlay Network.</a> - Elaine Shi, Ion Stoica, David Andersen, Adrian Perrig. Technical Report CMU-CS-06-114, Feb 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.ecsl.cs.sunysb.edu/tr/TR219.pdf">A Networked Robot System for Wireless Network Emulation.</a> - Tzi-cker Chiueh, Rupa Krishnan, Pradipta De, Jui-Hao Chiang. Technical Report TR-219, Oct 2007</li> -<li style="margin-bottom: 10pt"><a href="http://reports-archive.adm.cs.cmu.edu/anon/2005/CMU-CS-05-133.pdf">Enabling Live Internet Broadcasting Using an Application Endpoint Architecture.</a> - Yang-hua Chu. Technical Report CMU-CS-05-133, May 2005</li> -</ul> -<h2>Wide-area Experiments</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/nsdi06/tech/full_papers/bharambe/bharambe.pdf">Colyseus: A Distributed Architecture for Online Multiplayer Games.</a> - Ashwin Bharambe, Jeffrey Pang, Srinivasan Seshan. <em>NSDI 2006</em>, pages 155-168, San Jose, CA, May 2006</li> -<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=502038">The Costs and Limits of Availability for Replicated Services.</a> - Haifeng Yu, Amin Vahdat. <em>SOSP '01</em>, pages 29-42, Banff, Canada, Oct 2001</li> -<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/nsdi06/tech/nath.html">Subtleties in Tolerating Correlated Failures in Wide-area Storage Systems.</a> - Suman Nath, Haifeng Yu, Phillip B. Gibbons, Srinivasan Seshan. <em>Proceedings of the Third Symposium on Networked Systems Design and Implementation (NSDI 2006</em>, May 2006</li> -<li style="margin-bottom: 10pt"><a href="http://www.emulab.net/doc/docwrapper.php3?docname=expubs.html">"Buddy-Cache, High Performance Object Storage for Collaborative Strong Consistency Applications in a WAN".</a> - Magnus Bjornsson and Liuba Shrira. <em>ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2002)</em>, Nov 2002</li> -<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/~sai/papers/uucs-04-017.pdf">Middleware Support for Locality-aware Wide area Replication.</a> - Sai Susarla, John Carter. Technical Report UUCS-04-017, Nov 2004</li> -</ul> -<h2>Wireless</h2> -<ul> -<li style="margin-bottom: 10pt"><a href="http://www.ieeexplore.ieee.org/xpls/abs_all.jsp?isnumber=4444646&arnumber=4444710&count=92&index=63">Efficient Packet Error Rate Estimation in Wireless Networks.</a> - Bo Han, Seungjoon Lee. <em>IEEE/Create-Net TridentCom</em>, May 2007</li> -<li style="margin-bottom: 10pt"><a href="http://www.ece.utah.edu/~gaines/urop/gnu.html">Entropic Analysis Of Spectrum Sensing For Cognitive Radio.</a> - J. Gaines and N. Patwari. <em>University of Utah Undergraduate Research</em>, Apr 2008</li> -<li style="margin-bottom: 10pt"><a href="https://drum.umd.edu/dspace/bitstream/1903/3867/1/umi-umd-3714.pdf">WISE Abstraction Framework For Wireless Networks.</a> - Seungjoon Lee. Thesis, University of Maryland, 2006</li> -</html> \ No newline at end of file +<p> +Moved to <a href="http://www.emulab.net/expubs.php">http://www.emulab.net/expubs.php</a>. +</p> +<p> +Please update your bookmarks. +</p> +</html> diff --git a/www/doc/users.html b/www/doc/users.html index e1234557bf4098a91e4cb2fdc987f1a2ab5ddc32..4d526e80ce801e76868cd8e91ec7b32f0140a65b 100644 --- a/www/doc/users.html +++ b/www/doc/users.html @@ -19,7 +19,7 @@ <br> <li> <font size="+1"> -<a href="docwrapper.php3?docname=expubs.html" +<a href="../expubs.php" >Published papers that have used Emulab</a> </font> </li> @@ -30,4 +30,5 @@ >Classes that have used Emulab</a> </font> </li> -</ul> \ No newline at end of file +</ul> + diff --git a/www/expubs.php b/www/expubs.php new file mode 100644 index 0000000000000000000000000000000000000000..ff189826ab2e6ae34eb54c2f09688b8a417aa27c --- /dev/null +++ b/www/expubs.php @@ -0,0 +1,80 @@ +<?php +include("pub_defs.php"); + +$optargs = OptionalPageArguments("printable", PAGEARG_BOOLEAN); + +if (!isset($printable)) + $printable = 0; + +$this_user = null; +$isadmin = null; + +if (!$printable && LoginStatus()) { + if (!$HTTPS) { + # redirect to secure site, otherwise CheckLoginOrDie will die + $new_url = "https://$WWWHOST$REQUEST_URI"; + header("Location: $new_url"); + PAGEHEADER("Bibliography"); + echo "<p>Please use $new_url when logged in.</p>"; + PAGEFOOTER(); + return; + } else { + $this_user = CheckLoginOrDie(); + $isadmin = ISADMIN(); + } +} + +# +# Standard Testbed Header +# +if ($printable) { + # + # Need to spit out some header stuff. + # + echo "<html> + <head> + <link rel='stylesheet' href='../tbstyle-plain.css' type='text/css'> + </head> + <body>\n"; +} else { + PAGEHEADER("Bibliography"); + echo "<b><a href=$REQUEST_URI?printable=1> + Printable version of this document</a></b><br>\n"; +} +?> + +<p> +This page summarizes publications about Emulab as well as publications +that used Emulab to validate research they present. For additional publications +see <a href="http://www.isi.edu/deter/publications.php" +>Publications Made Possible By DETERlab</a>. +<p> + +If you have a publications that used Utah's Emulab to validate your +research please use <a href="submitpub.php">this form</a> to add it. +For other updates or corrections please email +<a href="mailto:papers@emulab.net">papers@emulab.net</a>. + +</p> + +<?php + +$query_result = GetPubs("`visible`"); +echo MakeBibList($this_user, $isadmin, $query_result); + +if ($isadmin) { + echo '<p><a href="deleted_pubs.php">Show Deleted Publications</a></p>'; +} + +# +# Standard Testbed Footer +# +if ($printable) { + echo "</body> + </html>\n"; +} +else { + PAGEFOOTER(); +} +?> + diff --git a/www/form_defs.php b/www/form_defs.php index 637ec7950ac9ce0a51849955de9644e0b6d86662..ccb11c5d87bec49b2d341fc15ed86d36099d2e4d 100644 --- a/www/form_defs.php +++ b/www/form_defs.php @@ -98,12 +98,11 @@ function FormRenderTextField($name, $attrs) function FormRenderCheckBox($name, $attrs) { $html = "<input type=checkbox name=\"formfields[$name]\" "; - if (isset($attrs['#return_value'])) { - $html .= "value=\"" . $attrs['#return_value'] . "\" "; - if (isset($attrs['#value']) && - $attrs['#value'] == $attrs['#return_value']) { - $html .= "checked "; - } + $return_value = isset($attrs['#return_value']) ? $attrs['#return_value'] : 1; + $html .= "value=\"" . $return_value . "\" "; + if (isset($attrs['#value']) && + $attrs['#value'] == $return_value) { + $html .= "checked "; } if (isset($attrs['#class'])) { $html .= "class=\"" . $attrs['#class'] . "\" "; @@ -174,14 +173,20 @@ function FormRenderSelect($name, $attrs) } $html .= ">\n"; - if (isset($attrs['#default'])) - $default = $attrs['#default']; - else - $default = "Please Select"; - $html .= "<option value=''>$default  </option>\n"; + if (!@$attrs['#no_default']) { + if (isset($attrs['#default'])) + $default = $attrs['#default']; + else + $default = "Please Select"; + $html .= "<option value=''>$default  </option>\n"; + } if (isset($attrs['#options'])) { - while (list ($selectvalue, $selectlabel) = each ($attrs['#options'])) { + $options = $attrs['#options']; + if (isset($attrs['#value']) && $attrs['#value'] != '' + && !isset($options[$attrs['#value']])) + $options[$attrs['#value']] = $attrs['#value']; + foreach ($options as $selectvalue => $selectlabel) { $selected = ""; if (isset($attrs['#value']) && $attrs['#value'] == $selectvalue) { $selected = "selected"; @@ -217,6 +222,32 @@ function FormRenderFile($name, $attrs) return $html; } +function FormRenderTextArea($name, $attrs) +{ + $html = "<textarea name=\"formfields[$name]\" "; + if (isset($attrs['#javascript'])) { + $html .= $attrs['#javascript'] . " "; + } + if (isset($attrs['#class'])) { + $html .= "class=\"" . $attrs['#class'] . "\" "; + } + else { + $html .= "class=\"form-text\" "; + } + if (isset($attrs['#cols'])) { + $html .= "cols=" . $attrs['#cols'] . " "; + } + if (isset($attrs['#rows'])) { + $html .= "rows=" . $attrs['#rows'] . " "; + } + $html .= ">"; + if (isset($attrs['#value'])) { + $html .= htmlspecialchars($attrs['#value']); + } + $html .= "</textarea>\n"; + return $html; +} + function FormRenderSubmit($name, $attrs) { $html = ""; @@ -295,6 +326,23 @@ function FormRenderList($name, $attributes, $submitted) return $html; } +# Render a list of elements together, vertically +function FormRenderVList($name, $attributes, $submitted) +{ + $html = ""; + + while (list ($subname, $subattrs) = each ($attributes['#elements'])) { + if ($submitted && array_key_exists($subname, $submitted)) { + $subattrs['#value'] = $submitted[$subname]; + } + if (isset($subattrs['#label'])) + $html .= $subattrs['#label'] . ": "; + $html .= FormRenderElement($subname, $subattrs, $submitted); + $html .= "<br>"; + } + return $html; +} + function FormRenderElement($name, $attributes, $submitted) { $field_html = null; @@ -352,6 +400,15 @@ function FormRenderElement($name, $attributes, $submitted) case "list": $field_html = FormRenderList($name, $attributes, $submitted); break; + case "vlist": + $field_html = FormRenderVList($name, $attributes, $submitted); + break; + case "textarea": + $field_html = FormRenderTextArea($name, $attributes, $submitted); + break; + case "display": + $field_html = isset($submitted[$name]) ? $submitted[$name] : $attributes['#value']; + break; } return $field_html; } @@ -370,7 +427,7 @@ function FormRenderElements($fields, $submitted) continue; } $cols = ""; - if ($attributes['#type'] == "table") + if ($attributes['#type'] == "table" || $attributes['#type'] == "textarea") $cols = "colspan=2"; $mouseover = ""; @@ -402,6 +459,7 @@ function FormRenderElements($fields, $submitted) $html .= "<tr>"; if ($attributes['#type'] != "submit" && + isset($attributes['#label']) && !isset($attributes['#colspan'])) { $html .= "<td align=left $mouseover $cols>"; @@ -420,8 +478,9 @@ function FormRenderElements($fields, $submitted) $attributes['#description'] . ")"; if ($attributes['#type'] == "table") { $html .= "$field_html</td>"; - } - else { + } else if ($attributes['#type'] == "textarea") { + $html .= "<br>$field_html</td>"; + } else { $html .= "</td>"; $html .= "<td align=left>$field_html</td>"; } @@ -513,12 +572,22 @@ function FormRender($attributes, $errors, $fields, $submitted = null) echo "$html\n"; } -function FormValidateElement($name, &$errors, $attributes, &$submitted) +function CombineLabels($parent, $attributes) { + $res = ''; + $label = @$attributes['#label']; + $res .= $parent; + if ($parent != '' && $label != '') $res .= ', '; + $res .= $label; + return $res; +} + +function FormValidateElement($name, &$errors, $attributes, &$submitted, $parent_label) { + $error_label = CombineLabels($parent_label, $attributes); # Check for required fields not filled out if (isset($attributes['#required']) && $attributes['#required'] && !(isset($submitted[$name]) && $submitted[$name] != "")) { - $errors[$attributes['#label']] = "Missing required value"; + $errors[$error_label] = "Missing required value"; } elseif (isset($attributes['#checkslot']) && isset($submitted[$name]) && $submitted[$name] != "") { @@ -538,13 +607,13 @@ function FormValidateElement($name, &$errors, $attributes, &$submitted) $matches[1], $matches[2], TBDB_CHECKDBSLOT_WARN| TBDB_CHECKDBSLOT_ERROR)) { - $errors[$attributes['#label']] = TBFieldErrorString(); + $errors[$error_label] = TBFieldErrorString(); } } elseif (substr($check, 0, 1) == "/") { # Regular expression. if (!preg_match($check, $submitted[$name])) { - $errors[$attributes['#label']] = "Illegal characters"; + $errors[$error_label] = "Illegal characters"; } } else { @@ -555,10 +624,11 @@ function FormValidateElement($name, &$errors, $attributes, &$submitted) function FormValidateFileUpload($name, &$errors, $attributes) { + $error_label = CombineLabels($parent_label, $attributes); # Check for required fields not filled out if (isset($attributes['#required']) && $attributes['#required'] && !(isset($_FILES[$name]['name']) && $_FILES[$name]['size'] != 0)) { - $errors[$attributes['#label']] = "Missing required value"; + $errors[$error_label] = "Missing required value"; } elseif (isset($attributes['#checkslot'])) { $check = $attributes['#checkslot']; @@ -572,7 +642,7 @@ function FormValidateFileUpload($name, &$errors, $attributes) } } -function FormValidate($form, &$errors, $fields, &$submitted) +function FormValidate($form, &$errors, $fields, &$submitted, $parent_label = '') { while (list ($name, $attributes) = each ($fields)) { switch ($attributes['#type']) { @@ -583,29 +653,104 @@ function FormValidate($form, &$errors, $fields, &$submitted) case "checkbox": case "radio": case "select": - FormValidateElement($name, $errors, $attributes, $submitted); + case "textarea": + FormValidateElement($name, $errors, $attributes, $submitted, $parent_label); break; case "checkboxes": while (list ($subname, $subattrs) = each ($attributes['#boxes'])) { - FormValidateElement($subname, $errors, $subattrs, $submitted); + FormValidateElement($subname, $errors, $subattrs, $submitted, + CombineLabels($parent_label, $attributes)); } break; case "table": - FormValidate($form, $errors, $attributes['#fields'], $submitted); + FormValidate($form, $errors, $attributes['#fields'], $submitted, + CombineLabels($parent_label, $attributes)); break; case "list": + case "vlist": while (list ($subname, $subattrs) = each ($attributes['#elements'])) { - FormValidateElement($subname, $errors, $subattrs, $submitted); + FormValidateElement($subname, $errors, $subattrs, $submitted, + CombineLabels($parent_label, $attributes)); } break; case "file": - FormValidateFileUpload($name, $errors, $attributes); + FormValidateFileUpload($name, $errors, $attributes, $parent_label); break; + case "display": + break; default: $errors[$name] = "Invalid slot type: " . $attributes['#type']; break; } } } + +function FormTextDumpElement($name, $attributes, $values, $label_width, $parent_label) +{ + $res = ''; + if (!isset($values[$name]) || $values[$name] == '' || @$attributes['#nodump']) + return $res; + $label = CombineLabels($parent_label, $attributes); + $type = $attributes['#type']; + $value = $values[$name]; + if ($type == 'checkbox') + $value = $values[$name] ? 'true' : 'false'; + if ($type == 'select' && isset($attributes['#options'][$value])) + $value = $attributes['#options'][$value]; + if ($type == 'textarea') { + $res .= "$label: \n"; + $res .= $value; + } else { + $res .= sprintf("%-${label_width}s %s\n", "$label:", $value); + } + return $res; +} + +function FormTextDump($form, $fields, $values, $label_width = 20, $parent_label = '') +{ + $res = ''; + while (list ($name, $attributes) = each ($fields)) { + switch ($attributes['#type']) { + case "hidden": + case "textfield": + case "password": + case "submit": + case "checkbox": + case "radio": + case "select": + case "textarea": + case "display": + $res .= FormTextDumpElement($name, $attributes, $values, + $label_width, $parent_label); + break; + case "checkboxes": + while (list ($subname, $subattrs) = each ($attributes['#boxes'])) { + FormTextDumpElement($subname, $subattrs, $values, $label_width, + CombineLabels($parent_label, $attributes)); + } + break; + case "table": + $res .= FormTextDump($form, $attributes['#fields'], $values, $label_width, + CombineLabels($parent_label, $attributes)); + break; + case "list": + case "vlist": + while (list ($subname, $subattrs) = + each ($attributes['#elements'])) { + $res .= FormTextDumpElement($subname, $subattrs, $values, $label_width, + CombineLabels($parent_label, $attributes)); + } + break; + case "file": + # Skip for now + break; + default: + user_error("Invalid slot type \"". $attributes['#type'] ."\" in FormTextDump", + E_USER_NOTICE); + break; + } + } + return $res; +} ?> diff --git a/www/index.php3 b/www/index.php3 index 3e9e7bb2056d6f674715c8380a0d36fd1a035880..a46bed6b36d596bf350b3e25f75880be0014bd53 100755 --- a/www/index.php3 +++ b/www/index.php3 @@ -74,7 +74,7 @@ if ($message != "") { <a href="http://www.emulab.net/docwrapper.php3?docname=otheremulabs.html">two dozen sites</a> around the world, ranging from testbeds with a handful of nodes up to testbeds with hundreds of nodes. - Emulab is <a href="http://www.emulab.net/doc/docwrapper.php3?docname=expubs.html">widely used</a> + Emulab is <a href="http://www.emulab.net/expubs.php">widely used</a> by computer science researchers in the fields of networking and distributed systems. It is also used to <a href="http://www.emulab.net/doc/docwrapper.php3?docname=exclasses.html">teach diff --git a/www/menu.php3 b/www/menu.php3 index b247b0aad2b4f2d828b9da97c2dcde46d58bda4a..9c8f81949fefad59a70cb1d72bc8efdad1469cf5 100644 --- a/www/menu.php3 +++ b/www/menu.php3 @@ -1027,6 +1027,7 @@ function PAGEHEADER($title, $view = NULL, $extra_headers = NULL, $login_user = null; } + header('Content-type: text/html; charset=utf-8'); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); if (1) { diff --git a/www/policies.html b/www/policies.html index 133db649c8d061d2490611c52daae76ab0b60d9b..a248b9a7760d764d5aebfeb8a8b2b6a4637090af 100644 --- a/www/policies.html +++ b/www/policies.html @@ -55,7 +55,7 @@ Many development-oriented commercial experiments and evaluations will be allowed, but with lower priority. </p> -<h3>Reporting</h3> +<a name="reporting"></a><h3>Reporting</h3> <p> In order to assess the testbed's impact and report to our sponsors, we simply require notice of all publications or patents to which the testbed diff --git a/www/pub_defs.php b/www/pub_defs.php new file mode 100644 index 0000000000000000000000000000000000000000..3ca93408e1a5aced407b6c55dec73cee895b7a2e --- /dev/null +++ b/www/pub_defs.php @@ -0,0 +1,101 @@ +<?php + +include_once("defs.php3"); + +function MayEditPub($user, $isadmin, $row) { + global $TBDB_TRUST_LOCALROOT; + if ($isadmin) + return true; + if (!$user) + return false; + $uid_idx = $user->uid_idx(); + if ($uid_idx == $row['owner'] && $row['editable_owner']) + return true; + $pid = $row['project']; + if ($pid == '') + return false; + $proj = Project::LookupByPid($pid); + return TBMinTrust($proj->UserTrust($user), $TBDB_TRUST_LOCALROOT); +} + +function MakeBib($user, $isadmin, $r) { + $res = ''; + if ($r['url'] != '') + $res .= "<a href=\"" . $r['url'] . "\">"; + $res .= $r['title']; + #if row[3][-1] != '.' and row[3][-1] != '?' and row[3][-1] != '!': + $res .= "."; + if ($r['url'] != '') + $res .= "</a>"; + $res .= "\n"; + $res .= ' ' . $r['authors']; + $res .= '.'; + $type = $r['type']; + if ($type == "article") { + $res .= ' <em>' . $r['conf'] . '</em>'; + if ($r['volume'] != '') + $res .= ', Vol. ' . $r['volume']; + if ($r['number'] != '') { + if ($r['volume'] != '') + $res .= ' No.'; + $res .= ' ' . $r['number']; + } + if ($r['pages'] != '') + $res .= ', pages ' . $r['pages']; + if ($r['where'] != '') + $res .= ', ' . $r['where']; + # if Tech report + } else if ($type == 'techreport') { + $res .= ' Technical Report '. $r['number']; + # Affiliation here, but can't for techreports because of our data + # if Thesis + } else if ($type == 'thesis' || $type == 'ms thesis' || + $type = 'phd thesis' || $type = 'bs thesis') { + $res .= ' Thesis'; + if ($r['where'] != '') + $res .= ', ' . $r['where']; + } + # Not an Article/Tech report/Thesis? Add nothing special (for now) + + if ($r['month_name'] != '' || $r['year'] != '') + $res .= ', '; + if ($r['month_name'] != '') + $res .= $r['month_name'] . ' '; + $res .= $r['year']; + if (MayEditPub($user, $isadmin, $r)) { +# $res .= " <a href=\"submitpub.php?idx=". $r['idx'] . "\" style=\"background:#ffffaa \">Edit</a>"; + $res .= " <a href=\"submitpub.php?idx=". $r['idx'] . "\" style=\"background:yellow\">Edit</a>"; + } + return $res; +} + +function MakeBibList($user, $isadmin, $query_result) { + $res = ''; + $number = 1; + $category = "\n\t xyz"; + while ($r = mysql_fetch_array($query_result)) { + if ($category != $r['category']) { + if ($category != "\n\t xyz") { + $res .= "</ol>\n"; + } + $category = $r['category']; + if ($category == '') + $category = 'Uncategorized'; + $res .= "<h2>" . $category . "</h2>\n"; + $res .= "<ol>\n"; + $category = $r['category']; + } + $res .= "<li style=\"margin-bottom: 10pt\" value=$number>"; + $res .= MakeBib($user, $isadmin, $r); + $res .= "</li>\n"; + $number++; + } + $res .= "</ol>\n"; + return $res; +} + +function GetPubs($where_clause, $deleted_clause = '!`deleted`') { + return DBQueryFatal("select p.*,m.month_name,if(category = '',1,0) as category_sort from emulab_pubs as p natural join emulab_pubs_month_map as m where $where_clause and $deleted_clause order by category_sort,category,year desc,month desc,title"); +} + +?> diff --git a/www/showproject.php3 b/www/showproject.php3 index fce19836f0525862341b3622abf96421e1e636cc..78ee80cb6729b8d1bba29c92058d4a6684dda799 100644 --- a/www/showproject.php3 +++ b/www/showproject.php3 @@ -6,6 +6,8 @@ # include("defs.php3"); include_once("template_defs.php"); +if ($PAPERSUPPORT) + include_once("paper_defs.php"); # # Note the difference with which this page gets it arguments! @@ -97,6 +99,17 @@ if ($isadmin) { ob_end_clean(); } +$papers_html = null; +if ($PAPERSUPPORT) { + # + # List papers for this project if any + # + $query_result = GetPapers("`project` = \"$pid\""); + if (mysql_num_rows($query_result)) { + $papers_html = MakeBibList($this_user, $isadmin, $query_result); + } +} + # # Show number of PCS # @@ -182,6 +195,12 @@ if ($isadmin && $stats_html) { "id=\"li_stats\" onclick=\"Show('stats');\">". "Project Stats</a></li>\n"; } +if ($papers_html) { + echo "<li> + <a href=\"#G\" class=topnavbar onfocus=\"this.hideFocus=true;\" ". + "id=\"li_papers\" onclick=\"Show('papers');\">". + "Publications</a></li>\n"; +} echo "</ul>\n"; echo "</div>\n"; echo "<div align=center id=topnavbarbottom> </div>\n"; @@ -202,6 +221,9 @@ echo "<div class=invisible id=\"div_profile\">$profile_html</div>"; if ($isadmin && $stats_html) { echo "<div class=invisible id=\"div_stats\">$stats_html</div>"; } +if ($papers_html) { + echo "<div class=invisible id=\"div_papers\">$papers_html</div>"; +} SUBPAGEEND(); # diff --git a/www/showuser.php3 b/www/showuser.php3 index 52ccd12f21c169f1a8515811801f25859d647095..9e202f06f1b1314169897085aca8bdda589f5277 100644 --- a/www/showuser.php3 +++ b/www/showuser.php3 @@ -8,6 +8,7 @@ include("defs.php3"); include("showstuff.php3"); include_once("template_defs.php"); include_once("table_defs.php"); +include_once("pub_defs.php"); # # Only known and logged in users can do this. @@ -15,6 +16,7 @@ include_once("table_defs.php"); $this_user = CheckLoginOrDie(CHECKLOGIN_USERSTATUS| CHECKLOGIN_WEBONLY|CHECKLOGIN_WIKIONLY); $uid = $this_user->uid(); +$uid_idx = $this_user->uid_idx(); $isadmin = ISADMIN(); # @@ -66,6 +68,7 @@ else { $html_groups = null; $html_stats = null; $html_templates = null; +$html_pubs = null; # # See if any mailman lists owned by the user. If so we add a menu item. @@ -291,6 +294,21 @@ if ($isadmin) { "'>Experiment History</a>"; } +if ($PUBSUPPORT) { + # + # List pubs owned by user if any + # + $query_result = GetPubs("`owner` = $uid_idx"); + if (mysql_num_rows($query_result)) { + $html_pubs = MakeBibList($this_user, $isadmin, $query_result); + $html_pubs .= '<p><a href="deleted_pubs.php">Show Deleted Publications</a></p>'; + $html_pubs .= "\n"; + list ($html_pubs, $button_pubs) = + TableWrapUp($html_pubs, FALSE, FALSE, + "pubs_table", "pubs_button"); + } +} + # # Special banner message. # @@ -376,6 +394,12 @@ if ($isadmin && $html_stats) { "id=\"li_stats\" onclick=\"Show('stats');\">". "User Stats</a></li>\n"; } +if ($html_pubs) { + echo "<li> + <a href=\"#G\" class=topnavbar onfocus=\"this.hideFocus=true;\" ". + "id=\"li_pubs\" onclick=\"Show('pubs');\">". + "Publications</a></li>\n"; +} echo "</ul>\n"; echo "</div>\n"; echo "<div align=center id=topnavbarbottom> </div>\n"; @@ -393,6 +417,9 @@ echo $html_profile; if ($isadmin && $html_stats) { echo $html_stats; } +if ($html_pubs) { + echo $html_pubs; +} if ($html_experiments) { echo $html_experiments; } diff --git a/www/submitpub.php b/www/submitpub.php new file mode 100644 index 0000000000000000000000000000000000000000..fb76275015533edff3ac9dd7ee29d20199c7d8c6 --- /dev/null +++ b/www/submitpub.php @@ -0,0 +1,537 @@ +<?php +# +# EMULAB-COPYRIGHT +# Copyright (c) 2000-2008 University of Utah and the Flux Group. +# All rights reserved. +# + +include("pub_defs.php"); +include("form_defs.php"); + +# +# Only known and logged in users. +# +$this_user = CheckLoginOrDie(); +$uid = $this_user->uid(); +$uid_idx = $this_user->uid_idx(); +$isadmin = ISADMIN(); + +# +# Standard Testbed Header +# +PAGEHEADER("Submit Publication"); + +# +# Verify feature is enabled +# +if (!$PUBSUPPORT) + USERERROR("Publication support not enabled."); + +# +# Verify page arguments. +# +$optargs = OptionalPageArguments("submit", PAGEARG_STRING, + "idx", PAGEARG_INTEGER, + "formfields", PAGEARG_ARRAY); + +$also_required = array(); +$also_required['article'] = array('conf', 'month'); + +$typelist = array('article', 'phd thesis', 'masters thesis', 'bachelors thesis', + 'techreport', 'unpublished', 'talk', 'software', 'service'); + +$submit_url = isset($idx) ? CreateURL("submitpub", 'idx', $idx) : CreateURL("submitpub"); + +# +# Make Month List +# +$monthlist = array(); +$query_result = DBQueryFatal("select * from emulab_pubs_month_map order by display_order"); +while ($r = mysql_fetch_array($query_result)) { + $monthlist[$r['month']] = $r['month_name']; +} + +# +# Make Project List +# +$projectlist = array(); +if ($isadmin) { + $query_result = DBQueryFatal("select pid from projects order by pid"); +} else { + $query_result = DBQueryFatal("select distinct pid ". + " from group_membership ". + " where uid='$uid' order by pid"); +} +while ($r = mysql_fetch_array($query_result)) { + array_push($projectlist, $r[0]); +} +array_push($projectlist, "N/A"); + +# +# Make Category List +# +$categorylist = array(); +$query_result = DBQueryFatal("select distinct category ". + " from emulab_pubs order by category"); +while ($r = mysql_fetch_array($query_result)) { + if ($r[0] != "") + array_push($categorylist, $r[0]); +} +array_push($categorylist, "Other"); + +$form = array('#action' => $submit_url); +$default_textfield_size = 60; + +# +# Create Fields List +# +function WrapOptionsList($options) { + $res = array(); + foreach ($options as $o) { + $res[$o] = $o; + } + return $res; +} +$fields = array(); +if ($isadmin && isset($idx) && !isset($submit)) { + $fields['created'] = + array('#type' => 'display', + '#label' => 'Created'); + $fields['owner_name'] = + array('#type' => 'display', + '#label' => 'Owner'); + $fields['submitted_by_name'] = + array('#type' => 'display', + '#label' => 'Submitted By'); + $fields['last_edit'] = + array('#type' => 'display', + '#label' => 'Last Edit'); + $fields['last_edit_by_name'] = + array('#type' => 'display', + '#label' => 'Last Edit By'); +} +$fields['type'] = + array('#type' => 'select', + '#label' => 'Type', + '#required' => true, + '#checkslot' => 'default:tinytext', + '#options' => WrapOptionsList($typelist)); +$fields['authors'] = + array('#type' => 'textfield', + '#label' => 'Authors', + '#size' => $default_textfield_size, + '#required' => true, + '#checkslot' => 'default:tinytext_utf8', + '#description' => 'comma seperated list'); +$fields['affil'] = + array('#type' => 'textfield', + '#label' => 'Author Affiliations', + '#size' => $default_textfield_size, + '#required' => true, + '#checkslot' => 'default:tinytext_utf8', + '#description' => 'comma separated list, only list each institution once'); +$fields['title'] = + array('#type' => 'textfield', + '#label' => 'Title', + '#size' => $default_textfield_size, + '#required' => true, + '#checkslot' => 'default:tinytext_utf8'); +$fields['conf'] = + array('#type' => 'textfield', + '#label' => 'Conference/Journal', + '#size' => $default_textfield_size, + '#required' => false, + '#checkslot' => 'default:tinytext_utf8'); +$fields['where'] = + array('#type' => 'textfield', + '#label' => 'Conference Location', + '#size' => $default_textfield_size, + '#required' => false, + '#checkslot' => 'default:tinytext_utf8'); +$fields['year'] = + array('#type' => 'textfield', + '#label' => 'Year', + '#size' => 4, + '#maxlength' => 4, + '#required' => true, + '#checkslot' => '/^\d\d\d\d$/'); +$fields['month'] = + array('#type' => 'select', + '#label' => 'Month', + '#required' => false, + '#no_default' => true, + '#options' => $monthlist, + '#checkslot' => 'default:tinytext'); +$fields['volume'] = + array('#type' => 'textfield', + '#label' => 'Volume', + '#size' => $default_textfield_size, + '#required' => false, + '#checkslot' => 'default:tinytext'); +$fields['number'] = + array('#type' => 'textfield', + '#label' => 'Number', + '#size' => $default_textfield_size, + '#required' => false, + '#checkslot' => 'default:tinytext'); +$fields['pages'] = + array('#type' => 'textfield', + '#label' => 'Pages', + '#size' => $default_textfield_size, + '#required' => false, + '#checkslot' => 'default:tinytext'); +$fields['url'] = + array('#type' => 'textfield', + '#label' => 'Publication URL', + '#size' => $default_textfield_size, + '#required' => true, + '#checkslot' => 'default:tinytext'); +$fields['conf_url'] = + array('#type' => 'textfield', + '#label' => 'Conference URL', + '#size' => $default_textfield_size, + '#required' => false, + '#checkslot' => 'default:tinytext'); +$fields['category'] = + array('#type' => 'vlist', + '#label' => 'Category', + '#required' => true, + '#elements' => array( + 'category' => + array('#type' => 'select', + '#required' => true, + '#options' => WrapOptionsList($categorylist), + '#checkslot' => 'default:tinytext'), + 'category_other' => + array('#type' => 'textfield', + '#label' => 'If other specify', + '#size' => 50, + '#checkslot' => 'default:tinytext', + '#nodump' => true))); +if ($isadmin) { + $fields['evaluated_on_emulab'] = + array('#type' => 'textfield', + '#label' => 'Evaluated on emulab, or just cite?', + '#description' => '"Y" or "N"', + '#size' => $default_textfield_size, + '#required' => false, + '#checkslot' => 'default:tinytext'); +} +$fields['project'] = + array('#type' => 'select', + '#label' => 'Project', + '#required' => 'true', + '#size' => $default_textfield_size, + '#options' => WrapOptionsList($projectlist), + '#checkslot' => 'default:tinytext'); +$fields['cite_osdi02'] = + array('#type' => 'vlist', + '#label' => "Did you cite our OSDI'02 paper?", + '#link' => "docwrapper.php3?docname=policies.html#reporting", + '#required' => true, + '#elements' => array( + 'cite_osdi02' => + array('#type' => 'select', + '#required' => true, + '#options' => array(1 => 'yes', 0 => 'no'), + '#checkslot' => 'default:boolean'), + 'no_cite_why' => + array('#label' => 'If (no) why not', + '#type' => 'textfield', + '#size' => 50, + '#checkslot' => 'default:tinytext_utf8'))); +if ($isadmin) { + $fields['visible'] = + array('#type' => 'checkbox', + '#label' => "Visible in Public Bibliography", + '#checkslot' => 'default:boolean'); + $fields['editable_owner'] = + array('#type' => 'checkbox', + '#label' => "Editable by Owner", + '#checkslot' => 'default:boolean'); + $fields['editable_proj'] = + array('#type' => 'checkbox', + '#label' => "Editable by Project Members", + '#checkslot' => 'default:boolean'); + #TableRow("Take Ownership", "ownership", true, + # CheckBox("ownership") . "<br>". + # "<font size=-1><i>Show Publication in My Emulab Page?</i></font>"); +} +$fields['notes'] = + array('#type' => 'textarea', + '#label' => 'Additional Notes', + '#required' => false, + '#checkslot' => 'default:fulltext_utf8', + '#cols' => 78, + '#rows' => 2); +if (isset($idx)) { + $fields['deleted'] = + array('#type' => 'checkbox', + '#label' => 'Mark As Deleted'); +} + +$dbfields = array(); +foreach ($fields as $k => $v) { + if ($v['#type'] == 'display') continue; + array_push($dbfields, $k); +} +array_push($dbfields, 'no_cite_why'); + +if ($isadmin) { + $fields['allow_missing'] = + array('#type' => 'checkbox', + '#label' => 'Allow Missing Fields'); +} + +# +# Spit the form out using the array of data and error strings (if any). +# +function SPITFORM($formfields, $errors) +{ + global $form, $fields; + + echo "<center>"; + FormRender($form, $errors, $fields, $formfields); + echo "</center>"; +} + +# +# +# + +$defaults = array(); +$errors = array(); + +# +# Helper functions +# +function field_set($f) { + global $formfields; + return isset($formfields[$f]) && $formfields[$f] != ""; +} + +function GetName($what, $skip_if_same_as = null) { + global $fields; + global $defaults; + $field = $what . "_name"; + if ($skip_if_same_as != null && $defaults[$what] == $defaults[$skip_if_same_as]) { + unset($fields[$field]); + } else if ($defaults[$what] == 0) { + $fields[$field]['#value'] = 'Nobody'; + } else { + $user = new User($defaults[$what]); + $fields[$field]['#value'] = $user->name() . " (" . $user->uid() . ")"; + } +} + + +if (isset($idx)) { + + $query_result = DBQueryFatal("select * from emulab_pubs where idx=$idx"); + if (mysql_num_rows($query_result) < 1) { + echo "Pub #$idx does not exist\n"; + PAGEFOOTER(); + return; + } + $r = mysql_fetch_assoc($query_result); + if (!MayEditPub($this_user, $isadmin, $r)) { + echo "You Do Not Have Permission to Edit this Publication Submission\n"; + PAGEFOOTER(); + return; + } + + $defaults = $r; + + if ($isadmin && !isset($submit)) { + GetName('submitted_by'); + GetName('owner', 'submitted_by'); + GetName('last_edit_by', 'submitted_by'); + if ($defaults['created'] == $defaults['last_edit']) + unset($fields['last_edit']); + } + + $fields['submit'] = + array('#type' => 'submit', + '#value' => "Update"); + +} else { + + $defaults['project'] = $projectlist[0]; + $defaults['visible'] = true; + $defaults['editable_owner'] = true; + $defaults['editable_proj'] = true; + #$defaults['ownership'] = false; + + $fields['submit'] = + array('#type' => 'submit', + '#value' => "Submit"); + +} + +if (!isset($submit)) { + + SPITFORM($defaults, $errors); + + PAGEFOOTER(); + return; + +} + +# +# Verify Form +# +if (isset($formfields['allow_missing']) && $formfields['allow_missing']) { + # Hack, modify fields to unset required flag + foreach ($fields as $k => $v) { + unset($fields[$k]['#required']); + } + unset($fields['category']['#elements']['category']['#required']); + unset($fields['cite_osdi02']['#elements']['cite_osdi02']['#required']); +} + +FormValidate($form, $errors, $fields, $formfields); + +if (!(isset($formfields['allow_missing']) && $formfields['allow_missing'])) { + + $type = $formfields['type']; + if (isset($also_required[$type])) { + foreach ($also_required[$type] as $f) { + if (!field_set($f)) { + $errors[$fields[$f]['#label']] = "Required for $type type."; + } + } + } + + if (field_set('cite_osdi02') && !$formfields['cite_osdi02'] && !field_set('no_cite_why')) { + $errors[$fields['cite_osdi02']['#label']] = "Must specify reason."; + } +} + +if ($formfields['category'] == 'Other') { + if (field_set('category_other')) { + $formfields['category'] = $formfields['category_other']; + } else { + $errors[$fields['category']['#label']] = "Must specify."; + } +} + +$formfields['notes'] = str_replace("\r", "", $formfields['notes']); + +if ($errors) { + SPITFORM($formfields, $errors); + PAGEFOOTER(); + return; +} + +# +# +# +$formfields['month_name'] = $monthlist[$formfields['month']]; + +# +# Build DB Query and Send Mail to Testbed-ops +# + +$formdump = FormTextDump($form, $fields, $formfields, 30); + +function ConfirmationCommon($deleted = false) { + global $form, $fields, $formfields, $formdump, $idx; + + echo "<pre>\n". htmlspecialchars($formdump). "</pre>\n"; + + if (!$deleted) { + echo '<p>It will appear in the public <a href="expubs.php">Bibliography</a> '; + echo "under ". htmlspecialchars($formfields['category']) ." like this:</p>"; + + echo "<ul>\n<li>\n"; + echo MakeBib(NULL, 0, $formfields); + echo "</li></ul>\n"; + } + + echo "<a href=\"submitpub.php?idx=". $idx . "\" style=\"background:yellow\">Edit</a>"; +} + +if (!isset($idx)) { + + $cols = array('owner', 'submitted_by', 'last_edit_by', 'uuid', 'created', 'last_edit'); + #$owner = $isadmin && !$formfields['ownership'] ? 0 : $uid_idx; + $owner = $uid_idx; + $vals = array($owner, $uid_idx, $uid_idx, '"'.mysql_escape_string(NewUUID()).'"', "now()", "now()"); + foreach ($dbfields as $f) { + $dbname = $f; + $value = $formfields[$f]; + array_push($cols, '`'. $dbname . '`'); + array_push($vals, '"'. mysql_escape_string($value) . '"'); + } + + DBQueryFatal("insert into emulab_pubs (". + implode(",", $cols). ") values (". + implode(",", $vals). ")"); + + $idx = mysql_insert_id(); + + echo "<p>The following was Submitted: </p>"; + + ConfirmationCommon(); + + if (!$isadmin) { + TBMAIL("$TBMAILADDR_OPS", + "New Publication Submitted", + $formdump, + "From: ". $this_user->name() . "<" . $this_user->email() . ">"); + } + + PAGEFOOTER(); + +} else { + + $update_list = array("last_edit = now()", "`last_edit_by` = $uid_idx"); + $update_start = count($update_list); + + if (!isset($formfields['deleted'])) + $formfields['deleted'] = false; + + # determine what changed + foreach ($dbfields as $f) { + if ($defaults[$f] != $formfields[$f]) { + $dbname = $f; + $value = @$formfields[$f]; + array_push($update_list, + "`".$dbname."` = \"". + mysql_escape_string($value) . '"'); + } + } + + if (count($update_list) > $update_start) { + + DBQueryFatal("update emulab_pubs set ". + implode(",", $update_list). + " where idx = $idx"); + + if (!$formfields['deleted']) { + + echo "<p>The following publication was Updated:</p>\n"; + + ConfirmationCommon(); + + } else { + + echo "<p>The following publication was deleted. "; + echo "To undelete simply edit it again and unclick \"Mark As Deleted\"</p>\n"; + + ConfirmationCommon(true); + + } + + } else { + + echo "<p>Nothing has changed for the following pub:</p>"; + + ConfirmationCommon(); + + } + + PAGEFOOTER(); +} + +?> diff --git a/www/url_defs.php b/www/url_defs.php index 07d4781b3ca185b0d8871be4c243c12160149d95..1a958ae02ff989c30be0e6a349b5d3a1c369f375 100644 --- a/www/url_defs.php +++ b/www/url_defs.php @@ -112,6 +112,7 @@ $url_mapping["experimentrun_show"] = "experimentrun_show.php"; $url_mapping["instance_show"] = "instance_show.php"; $url_mapping["cvswebwrap"] = "cvsweb/cvswebwrap.php3"; $url_mapping["profile"] = "profile.php"; +$url_mapping["submitpub"] = "submitpub.php"; # # The caller will pass in a page id, and a list of things. If the thing