Here are some programs I have developped or contributed to during the course of my research or that of my students.
Decentralized topology construction protocols organize nodes along a predefined topology (e.g. torus, ring, hypercube). Such topologies have been used in many contexts ranging from routing to storage systems, publish-subscribe to event dissemination. Since most topologies assume no correlation between nodes locations and their position in the topology, they do not handle well catastrophic failures in which a whole region of the topology disappears. When this occurs typically, the overall shape gets lost. Polystyrene (developped with Simon Bouget, Hoel Kervadec, and Anne-Marie Kermarrec) is a novel decentralized epidemic protocol that maintains the initial shape of a decentralized overlay topology even if a large (consecutive) portion of the topology fails. The code proposed here contains a Scala implementation of Polystyrene on top of the PeerSim P2P simulator.Download: peersim-polystyrene-4-Dec-2013.tgz (updated 4/12/2013)
The archive below contains a modified version of the original PAMPA ns2 implementation that provides different variants of the algorithm. The archive also contains a ruby script to easily run a large number of simulations, while keeping track of the results and of the parameter sets you have used. (The scripts are rather primitive, but hopefully useful.) You will need ns2 and NOAH to compile the modified PAMPA files. Detailed instructions on how to do this are available on Hugo Miranda's PAMPA page.Download: PAMPA-MMPAC-Code.zip (updated 18/09/2009)
PAMPA in the wild: a real-life evaluation of a lightweight ad-hoc broadcasting family (journal version)
Christopher Winstanley, Rajiv Ramdhany, François Taïani, Barry Porter, and Hugo Miranda, J. Internet Services and Applications, volume 5, issue 1, Springer, 2014 (16p.), abstract, bibtex, complete document, doi: 10.1186/1869-0238-5-5. (available in Open Access)
PAMPA in the Wild: A Real-life Evaluation of a Lightweight Ad-hoc Broadcasting Family
Christopher Winstanley, Rajiv Ramdhany, François Taïani, Barry Porter, and Hugo Miranda, Proceedings of the 7th International Workshop on Middleware Tools, Services and Run-Time Support for Sensor Networks (MidSens'12), Montreal, Quebec, Canada, pp. 3:1-3:6, ISBN 978-1-4503-1610-1, ACM, New York, NY, USA, 2012 (6p.), abstract, bibtex, complete document, doi: 10.1145/2405167.2405170. Best Paper Award
ACM Copyright Notice: © ACM, 2012. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in Proceedings of the 7th Workshop on Middleware Tools, Services and Run-time Support for Networked Embedded Systems (MidSens 2012, Montreal, Canada, December 4, 2012).
Count on me: lightweight ad-hoc broadcasting in heterogeneous topologies
Carl Ellis, Hugo Miranda, and François Taïani, Proceedings of the International Workshop on Middleware for Pervasive Mobile and Embedded Computing, in collocation with the ACM/IFIP/USENIX 10th Int. Middleware Conf. (Middleware 2009) (M-PAC'09), Urbana Champaign, Illinois, pp. 1:1-1:6, ISBN 978-1-60558-849-0, ACM, 2009 (6p.), abstract, bibtex, complete document, talk, doi: 10.1145/1657127.1657129.
ACM Copyright Notice: © ACM, 2009. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in Proceedings of the international Workshop on Middleware For Pervasive Mobile and Embedded Computing (Urbana Champaign, Illinois, November 30 - 30, 2009). M-PAC '09. ACM, New York, NY, p.1-6.
CosmOpen is a suite of reverse-engineering tools that helps developpers understand the complex behavioural relationships found in large software. CosmOpen allows users to navigate and mine otherwise intractable call graphes, and rapidly construct behavioural views of a complex system from a huge amount of dynamic data.
I have used CosmOpen to partially reverse-engineer an industry-grade CORBA implementation, Orbacus (Figure 1), and identify the key elements of a request lifecycle inside the ORB (Figure 2).
Figure 1 shows the interaction diagram that is obtained when directly observing Orbacus. This diagram is pretty much incomprehensible, whereas the filtered-out version of Figure 2, which was obtained with CosmOpen, clearly shows the different stages of a request's processing, from the socket connection ('accept'), up to the execution of the remote server method ('Hello_impl'), and through to the reply being sent ('send'). This second diagram also highlights the various threads involved and their relationships, something that is completely hidden by the original diagram's complexity.
The CosmOpen suite is made of three components: dyngdb, hydrogen, and OPSBrowser:
Right now, only OPSBrowser and dyngdb are available under the GNU General Public License.Download: cosmopen_1_2beta1.tar.gz (updated 03/04/2009)
COSMOPEN: dynamic reverse engineering on a budget. How cheap observation techniques can be used to reconstruct complex multi-level behaviour
François Taïani, Marc-Olivier Killijian, and Jean-Charles Fabre, Software: Practice and Experience, volume 39, issue 18, pp. 1467-1514, John Wiley & Sons, Ltd., 2009 (48p.), abstract, bibtex, doi: 10.1002/spe.943. This paper is an extended version of the technical report COMP-002-2008. You may also want to look at the slides of my corresponding talk.
CosmOpen: A Reverse-Engineering Tool for Complex Open-Source Architectures
François Taïani, DSN-03 supplemental volume, Student Forum of DSN'03, The International Conference on Dependable Systems and Networks, San Francisco, CA, June, pp. A49-A51, 2003 (3p.), abstract, bibtex, complete document.
Note Right now, the software has only be tested under Linux and Mac OS X. It should be fairly portable to other platforms, but this requires a little tuning. This is beta software, and there's certainly plenty of improvement room. If you need help or have suggestion, please contact me at firstname.lastname@example.org.