--- a/introduction.tex Thu Aug 20 21:24:27 2009 +0200
+++ b/introduction.tex Fri Aug 21 10:18:32 2009 +0200
@@ -1,24 +1,10 @@
\begin{section}{Why yet another simulator ?}
-\begin{frame}{Back in the days (the 90's)}
+\begin{frame}{Recent history (1995-2005)}
\begin{itemize}
-\item Every paper has to include simulation results
-\item Tcp was all the rage
-\item Simulation = ns-2: other simulators had
-a negligible market share
-\end{itemize}
-
-\end{frame}
-
-\begin{frame}{More recently (early 2000)}
-
-\begin{itemize}
-\item Start using other simulators more heavily
-\item Search of ACM Digital Library papers citing simulation, 2001-04:
-\end{itemize}
-
-\vspace{1cm}
+\item ns-2 became the main choice for research usage. Search of ACM Digital Library papers citing simulation, 2001-04:\\
+\vspace{0.2cm}
\begin{tabular}{|c|c|c|c|}
\hline
& ns-2 & OPNET & QualNet/Glomosim \\
@@ -31,17 +17,26 @@
$\le$ layer 2 & 114 (43\%) & 96 (36\%) & 55 (21\%) \\
\hline
\end{tabular}
+\vspace{0.2cm}
+\item Funding for ns-2 development dropped in the early 2000's
+\end{itemize}
\end{frame}
\begin{frame}{What is wrong about ns-2 ?}
\begin{itemize}
-\item Lack of documentation for existing models
-\item Lack of validation of existing models
-\item Lack of verification of existing model implementations
-\item Dubious statistical relevance of simulation results
-\item Slow software decay: accretion of unmaintained models
+\item Split object model (OTcl and C++) and use of Tcl:
+ \begin{itemize}
+ \item Doesn't scale well
+ \item Makes it difficult for students
+ \end{itemize}
+\item Large amount of abstraction at the network layer and below leads to
+big discontinuities when transitioning from simulation to experiment
+\item Accretion of unmaintained and incompatible models
+\item Lack of support for creating methodologically sound simulations
+\item Lack of, and outdated, documentation
+\item In ns-2, \emph{validation} really means \emph{regression}: no documented validation of the models, outside of TCP
\end{itemize}
\end{frame}
@@ -62,12 +57,12 @@
\begin{frame}{A recurring misconception}
\begin{itemize}
-\item ns-2 sucks \pause
+\item Using ns-2 is actively harmful \pause
\vspace{1cm}
\item Simulation is ns-2 \pause
\vspace{1cm}
\end{itemize}
-Thus, simulation sucks
+Thus, simulation is actively harmful
\end{frame}
@@ -99,7 +94,7 @@
\end{itemize}
\pause
-There are lots of good things about simulation:
+However, there are lots of good things about simulation:
\begin{itemize}
\item Reproducibility
\item Easier to setup, deploy, instrument
@@ -133,16 +128,18 @@
\end{frame}
-\begin{frame}{What ns-3 is really about}
+\begin{frame}{Summary}
+We need simulations:
\begin{itemize}
-\item Improve model validation \\
-\vspace{1cm}
-\pause
-\item Improve model implementation verification \\
-\vspace{1cm}
-\pause
-\item Integrate with testbeds
+\item Easier to use, debug, reproduce than testbeds
+\item Not constrained by existing hardware/software
+\end{itemize}
+We need a special simulator:
+\begin{itemize}
+\item Improves model validation
+\item Improves model implementation verification
+\item Allow users to move back and forth between simulation and testbeds
\end{itemize}
\end{frame}
@@ -164,10 +161,14 @@
\item Most existing models lack validation, verification, maintenance
\item Bi-language system (C++/tcl) makes debugging complex: removing it
would mean dropping backward compatibility
-\item Core packet data-structure highly inapropriate for emulation
+\item Core packet data-structure:
+ \begin{itemize}
+ \item Inappropriate for emulation
+ \item Dragmentation unsupported
+ \end{itemize}
\end{itemize}
-Re-enginnering ns-2 to fix all these issues would make it
+Re-engineering ns-2 to fix all these issues would make it
a new different simulator: we would lose our existing userbase.
\end{frame}
@@ -182,7 +183,7 @@
\item etc.
\end{itemize}
-But terms of use and cost make them impractical to use
+But terms of use and/or cost make them impractical to use
for publicly-funded research
\end{frame}
@@ -191,6 +192,7 @@
\begin{itemize}
\item It was not clear in 2005 it would still be alive in 2009
\item Major worries over the bi-language architecture: learning curve, debugging, etc.
+\item Software structure did not seem to lend itself to the realism we sought.
\end{itemize}
\end{frame}
@@ -229,9 +231,9 @@
This is critical to allow:
\begin{itemize}
-\item the project to scale to many models
-\item the project to last beyond initial seed funding
-\item model/implementations reviews in the open: \\
+\item The project to scale to many models
+\item The project to last beyond initial seed funding
+\item Model/implementations reviews in the open: \\
\textbf{Given enough eyeballs, all bugs are shallow}
\end{itemize}
@@ -292,6 +294,23 @@
\end{frame}
+\begin{frame}{Summary}
+
+ns-3 has a strong focus on realism:
+\begin{itemize}
+\item Makes models closer to the real world: easier to validate
+\item Allows direct code execution: no model validation
+\item Allows robust emulation for large-scale and mixed experiments
+\end{itemize}
+
+ns-3 also cares about good software engineering:
+\begin{itemize}
+\item Single-language architecture is more robust in the long term
+\item Open source community ensures long lifetime to the project
+\end{itemize}
+
+\end{frame}
+
\end{section}
\begin{section}{What we learned along the way}
@@ -305,7 +324,7 @@
\begin{itemize}
\item Stole code and concepts from \emph{GTNetS} (applications)
\item Stole code and concepts from \emph{yans} (wifi)
-\item Stole code and concepts from \emph{ns-2} (olsr)
+\item Stole code and concepts from \emph{ns-2} (olsr, error models)
\end{itemize}
Even then, it took us 2 years to get to a useful state
@@ -314,13 +333,17 @@
\begin{frame}{Building an open source community is hard}
It's a lot of work to attract contributors and keep them: they want to
-have fun, they want to have impact on the project, they want to be part
-of a community:
+have fun, they want to have impact on the project:
\begin{itemize}
-\item Must always be nice (no flame wars, no stupid questions on mailing-lists)
+\item Never flame people on mailing-lists:
+ \begin{itemize}
+ \item Always answer questions kindly, point out manuals and FAQ
+ \item Don't answer provocative statements
+ \item English is not the native language of most users
+ \end{itemize}
\item We need to do the boring work (release management, bug tracking, server maintenance)
\item No discussion \emph{behind closed doors}: increases communication cost
-\item It's a meritocracy: only the best should have power to decide for the project
+\item It's a meritocracy: those who contribute the most should have power to decide for the project
\end{itemize}
\end{frame}
--- a/tutorial.tex Thu Aug 20 21:24:27 2009 +0200
+++ b/tutorial.tex Fri Aug 21 10:18:32 2009 +0200
@@ -92,8 +92,36 @@
\end{part}
+%% finished !
-%% finished !
+\begin{part}{Parting thoughts}
+
+\begin{frame}{Summary}
+
+\begin{itemize}
+\item Simulation is a key component of network research
+ \begin{itemize}
+ \item Debuggability
+ \item Reproducibility
+ \item Parameter exploration
+ \item No dependency on existing hardware/software
+ \end{itemize}
+\item ns-3 has a strong focus on realism:
+\begin{itemize}
+\item Makes models closer to the real world: easier to validate
+\item Allows direct code execution: no model validation
+\item Allows robust emulation for large-scale and mixed experiments
+\end{itemize}
+
+\item ns-3 also cares about good software engineering:
+\begin{itemize}
+\item Single-language architecture is more robust in the long term
+\item Open source community ensures long lifetime to the project
+\end{itemize}
+
+\end{itemize}
+
+\end{frame}
\begin{frame}[fragile]{Resources}
@@ -119,4 +147,7 @@
\end{frame}
+\end{part}
+
+
\end{document}