Hi,

As part of the ongoing partnership between INRIA and Mines Douai, we have a 
funding for a PhD student to work on hot software update.
You'll find below a description of the position.

Best,
Noury

—
Prof. Noury Bouraqadi
Ecole des Mines de Douai
http://car.mines-douai.fr/noury

---
CONTACT
Prof. S. Ducasse, stephane.ducasse AT inria.fr, INRIA, France
Prof. N. Bouraqadi, noury.bouraqadi AT mines-douai.fr, Mines Douai, France
Dr. M. Denker, marcus.denker AT inria.fr, INRIA, France
Dr. L. Fabresse, luc.fabresse AT mines-douai.fr, Mines Douai, France

CONTEXT
Building next generation systems that can not be stopped is an interesting 
challenge for industry.
Indded, when we need to replace current software for an upgrade or a bug fix, 
it is mandatory to stop the old running version, make the change and then 
restart the new version.
However, there are situations where a such process is either impossible or at 
least undesirable because of the costs resulting from a shutdown (e.g 
production line, robot on mars, ...).

We believe that software built with from the beginning the property to work 
indefinetly, will be by construction more robust to change, intrinsicly capable 
of evolution and more agile than traditional software.

Dynamic languages such as CLOS, Ruby, Python, and Pharo provide a support for 
updates that only involve code change. 
Even if they are more advanced compared to other languages, their solutions ar 
mainly ad hoc and deserve being rethought.
We believe it is important to have a mechanism and an infrastructure that allow 
adaptive and safe software updates.

By "safe" we mean that this solution should support different conditions, such 
as a series of updates performed in the wrong sequence.
In such situations, instances of changed classes should migrate in a 
satisfactory fashion.
Safety also means verifying loaded changes.
This means that changes should be checked and possibly rejected if they make 
the system instable or if they introduce errors.

SCINTIFIC GOALS
The questions we would like to target in this PhD are the following:

- What is a good inftrastructure to support a dynamic and reliable code update? 
Do we need to analyse changes?

- Does an infrastructure based on isolated environments is enough to ensure 
update safety? What atomicity level is required?

- Which meta-object protocol is required to migrate objets?

- Would it be interesting to have different version of a given class or package 
for the same software?


BIBLIOGRAPHY

.       D. Duggan. Type-based hot swapping of running modules. In Intl. Conf. 
on Functional Programming, pages 62–73, 2001. 
.        M. Denker, T. Gîrba, A. Lienhard, O. Nierstrasz, L. Renggli, and P. 
Zumkehr. Encapsulating and exploiting change with Changeboxes. In Proc. Int. 
Conference on Dynamic Languages, pages 25–49. ACM Digital Lib., 2007. 
.       M. Dmitriev. Safe Class and Data Evolution in Large and Long-Lived Java 
Applications. PhD thesis, University of Glasgow, 2001. 
.       M. Hicks and S. Nettles. Dynamic software updating. ACM Transactions on 
Programming Languages and Systems, 27(6):1049–1096, nov 2005. 
.       J. Kephart. Research challenges of autonomic computing. In ICSE 2005, 
pages 15–22, may 2005. 
.       G. Kniesel. Type-safe delegation for run-time component adaptation. In 
R. Guerraoui, editor, Proceedings ECOOP ’99, volume 1628 of LNCS, pages 
351–366, Lisbon, Portugal, June 1999. Springer-Verlag. 
.       I. Neamtiu, M. W. Hicks, G. Stoyle, and M. Oriol. Practical dynamic 
software updating for c. In PLDI, pages 72–83, 2006. 
.       G Polito, Stéphane Ducasse, N Bouraqadi, L Fabresse, M Mattone. 
Virtualization Support for Dynamic Core Library Update. Onward!, Oct 2015, 
Pittsburg, USA.
.         X. Ren, F. Shah, F. Tip, B. Ryder, and O. Chesley. Chianti: A tool 
for change impact analysis of Java programs. In Proceedings of OOPSLA 2004), 
pages 432–448, 2004. 









Reply via email to