Skip to main content

2016 | OriginalPaper | Buchkapitel

Preserving Access to Previous System States in the Lively Kernel

verfasst von : Lauritz Thamsen, Bastian Steinert, Robert Hirschfeld

Erschienen in: Design Thinking Research

Verlag: Springer International Publishing

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

In programming systems such as the Lively Kernel, programmers construct applications from objects. Dedicated tools make it possible to manipulate the state and behavior of objects at runtime. Programmers are encouraged to make changes directly and receive immediate feedback on their actions. However, when programmers make mistakes in such programming systems, they need to undo the effects of their actions. Programmers either have to edit objects manually or reload parts of their applications. Moreover, changes can spread across many objects. As a result, recovering previous states is often error-prone and time-consuming. This report presents an approach to object versioning for systems like the Lively Kernel. Access to previous versions of objects is preserved using version-aware references. These references can be resolved to multiple versions of objects and, thereby, allow reestablishing preserved states of the system. We present a design based on proxies and an implementation in JavaScript.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Literatur
Zurück zum Zitat Appeltauer M, Hirschfeld R, Haupt M, Lincke J, Perscheid M (2009) A comparison of context-oriented programming languages. In: International workshop on context-oriented programming. COP’09. ACM, July 2009, 6:1–6:6 Appeltauer M, Hirschfeld R, Haupt M, Lincke J, Perscheid M (2009) A comparison of context-oriented programming languages. In: International workshop on context-oriented programming. COP’09. ACM, July 2009, 6:1–6:6
Zurück zum Zitat Borning A (1986) Classes versus prototypes in object-oriented languages. In: Proceedings of 1986 ACM fall joint computer conference. ACM’86. IEEE, November 1986, pp 36–40 Borning A (1986) Classes versus prototypes in object-oriented languages. In: Proceedings of 1986 ACM fall joint computer conference. ACM’86. IEEE, November 1986, pp 36–40
Zurück zum Zitat Cutsem T, Miller MS (2013) Trustworthy proxies: virtualizing objects with invariants. In: Proceedings of the 27th European conference on object-oriented programming. ECOOP’13. Springer, July 2013, pp 154–178 Cutsem T, Miller MS (2013) Trustworthy proxies: virtualizing objects with invariants. In: Proceedings of the 27th European conference on object-oriented programming. ECOOP’13. Springer, July 2013, pp 154–178
Zurück zum Zitat Denker M, Gîrba T, Lienhard A, Nierstrasz O, Renggli L, Zumkehr P (2007) Encapsulating and exploiting change with changeboxes. In: Proceedings of the 2007 international conference on dynamic languages. ICDL’07. ACM, August 2007, pp 25–49 Denker M, Gîrba T, Lienhard A, Nierstrasz O, Renggli L, Zumkehr P (2007) Encapsulating and exploiting change with changeboxes. In: Proceedings of the 2007 international conference on dynamic languages. ICDL’07. ACM, August 2007, pp 25–49
Zurück zum Zitat Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Reading, MA Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Reading, MA
Zurück zum Zitat Goldberg A, Robson D (1983) Smalltalk-80: the language and its implementation. Addison-Wesley, Reading, MA Goldberg A, Robson D (1983) Smalltalk-80: the language and its implementation. Addison-Wesley, Reading, MA
Zurück zum Zitat Hirschfeld R, Costanza P, Nierstrasz O (2008) Context-oriented programming. J Object Technol 7(3):125–151CrossRef Hirschfeld R, Costanza P, Nierstrasz O (2008) Context-oriented programming. J Object Technol 7(3):125–151CrossRef
Zurück zum Zitat Ingalls D, Wallace S, Chow Y-Y, Ludolph F, Doyle K (1988) Fabrik: a visual programming environment. In: Conference proceedings on object-oriented programming systems, languages and applications. OOPSLA’88. ACM, January 1988, pp 176–190 Ingalls D, Wallace S, Chow Y-Y, Ludolph F, Doyle K (1988) Fabrik: a visual programming environment. In: Conference proceedings on object-oriented programming systems, languages and applications. OOPSLA’88. ACM, January 1988, pp 176–190
Zurück zum Zitat Ingalls D, Kaehler T, Maloney J, Wallace S, Kay A (1997) Back to the future: the story of squeak, a practical smalltalk written in itself. In: Proceedings of the 12th ACM SIGPLAN conference on object-oriented programming systems, languages and applications. OOPSLA’97. ACM, October 1997, pp 318–326 Ingalls D, Kaehler T, Maloney J, Wallace S, Kay A (1997) Back to the future: the story of squeak, a practical smalltalk written in itself. In: Proceedings of the 12th ACM SIGPLAN conference on object-oriented programming systems, languages and applications. OOPSLA’97. ACM, October 1997, pp 318–326
Zurück zum Zitat Ingalls D, Palacz K, Uhler S, Taivalsaari A, Mikkonen T (2008) The Lively Kernel—a self-supporting system on a web page. In: Self-sustaining systems. S3. Springer, May 2008, pp 31–50 Ingalls D, Palacz K, Uhler S, Taivalsaari A, Mikkonen T (2008) The Lively Kernel—a self-supporting system on a web page. In: Self-sustaining systems. S3. Springer, May 2008, pp 31–50
Zurück zum Zitat Krahn R, Ingalls D, Hirschfeld R, Lincke J, Palacz K (2009) Lively wiki: a development environment for creating and sharing active web content. In: Proceedings of the 5th International symposium on wikis and open collaboration. WikiSym’09. ACM, October 2009, 9:1–9:10 Krahn R, Ingalls D, Hirschfeld R, Lincke J, Palacz K (2009) Lively wiki: a development environment for creating and sharing active web content. In: Proceedings of the 5th International symposium on wikis and open collaboration. WikiSym’09. ACM, October 2009, 9:1–9:10
Zurück zum Zitat Lewis B (2003) Debugging backwards in time. In: Proceedings of the fifth international workshop on automated debugging. AADEBUG’03. Springer, September 2003, pp 225–235 Lewis B (2003) Debugging backwards in time. In: Proceedings of the fifth international workshop on automated debugging. AADEBUG’03. Springer, September 2003, pp 225–235
Zurück zum Zitat Lieberman H (1986) Using prototypical objects to implement shared behavior in object-oriented systems. In: Conference proceedings on object-oriented programming systems, languages and applications. OOPLSA’86. ACM, June 1986, pp 214–223 Lieberman H (1986) Using prototypical objects to implement shared behavior in object-oriented systems. In: Conference proceedings on object-oriented programming systems, languages and applications. OOPLSA’86. ACM, June 1986, pp 214–223
Zurück zum Zitat Lienhard A (2008) Dynamic object flow analysis. Ph.D. thesis. University of Bern, December 2008 Lienhard A (2008) Dynamic object flow analysis. Ph.D. thesis. University of Bern, December 2008
Zurück zum Zitat Lienhard A, Gîrba T, Nierstrasz O (2008) Practical object-oriented back-in-time debugging. In: Proceedings of the 22nd European conference on object-oriented programming. ECOOP’08. Springer, July 2008, pp 592–615 Lienhard A, Gîrba T, Nierstrasz O (2008) Practical object-oriented back-in-time debugging. In: Proceedings of the 22nd European conference on object-oriented programming. ECOOP’08. Springer, July 2008, pp 592–615
Zurück zum Zitat Lincke J, Hirschfeld R (2012) Scoping changes in self-supporting development environments using context-oriented programming. In: Proceedings of the international workshop on context-oriented programming. COP’12. ACM, June 2012, 2:1–2:6 Lincke J, Hirschfeld R (2012) Scoping changes in self-supporting development environments using context-oriented programming. In: Proceedings of the international workshop on context-oriented programming. COP’12. ACM, June 2012, 2:1–2:6
Zurück zum Zitat Lincke J, Hirschfeld R (2013) User-evolvable tools in the web. In: Proceedings of the 9th international symposium on open collaboration. WikiSym’13. ACM, August 2013, 19:1–19:8 Lincke J, Hirschfeld R (2013) User-evolvable tools in the web. In: Proceedings of the 9th international symposium on open collaboration. WikiSym’13. ACM, August 2013, 19:1–19:8
Zurück zum Zitat Lincke J, Appeltauer M, Steinert B, Hirschfeld R (2011) An open implementation for context-oriented layer composition in ContextJS. Sci Comput Program 76(12):1194–1209CrossRef Lincke J, Appeltauer M, Steinert B, Hirschfeld R (2011) An open implementation for context-oriented layer composition in ContextJS. Sci Comput Program 76(12):1194–1209CrossRef
Zurück zum Zitat Lincke J, Krahn R, Ingalls D, Röder M, Hirschfeld R (2012) The lively partsbin—a cloud-based repository for collaborative development of active web content. In: Proceedings of the 2012 45th Hawaii international conference on system sciences. HICSS’12. IEEE, January 2012, pp 693–701 Lincke J, Krahn R, Ingalls D, Röder M, Hirschfeld R (2012) The lively partsbin—a cloud-based repository for collaborative development of active web content. In: Proceedings of the 2012 45th Hawaii international conference on system sciences. HICSS’12. IEEE, January 2012, pp 693–701
Zurück zum Zitat Maloney JH, Smith RB (1995) Directness and liveness in the morphic user interface construction environment. In: Proceedings of the 8th annual ACM symposium on user interface and software technology. UIST’95. ACM, December 1995, pp 21–28 Maloney JH, Smith RB (1995) Directness and liveness in the morphic user interface construction environment. In: Proceedings of the 8th annual ACM symposium on user interface and software technology. UIST’95. ACM, December 1995, pp 21–28
Zurück zum Zitat Maloney J, Resnick M, Rusk N, Silverman B, Eastmond E (2010) The scratch programming language and environment. Trans Comput Educ 10(4):16:1–16:15CrossRef Maloney J, Resnick M, Rusk N, Silverman B, Eastmond E (2010) The scratch programming language and environment. Trans Comput Educ 10(4):16:1–16:15CrossRef
Zurück zum Zitat Pluquet F, Langerman S, Wuyts R (2009) Executing code in the past: efficient in-memory object graph versioning. In: Proceedings of the 24th ACM SIGPLAN conference on object oriented programming systems languages and applications. OOPSLA’09. ACM, October 2009, pp 391–408 Pluquet F, Langerman S, Wuyts R (2009) Executing code in the past: efficient in-memory object graph versioning. In: Proceedings of the 24th ACM SIGPLAN conference on object oriented programming systems languages and applications. OOPSLA’09. ACM, October 2009, pp 391–408
Zurück zum Zitat Shavit N, Touitou D (1995) Software transactional memory. In: Proceedings of the fourteenth annual ACM symposium on principles of distributed computing. PODC’95. ACM, June 1995, pp 204–213 Shavit N, Touitou D (1995) Software transactional memory. In: Proceedings of the fourteenth annual ACM symposium on principles of distributed computing. PODC’95. ACM, June 1995, pp 204–213
Zurück zum Zitat Steinert B, Hirschfeld R (2014) How to compare performance in program design activities: towards an empirical evaluation of CoExist. In: Design thinking research. Understanding innovation. Springer, January 2014, pp 219–238 Steinert B, Hirschfeld R (2014) How to compare performance in program design activities: towards an empirical evaluation of CoExist. In: Design thinking research. Understanding innovation. Springer, January 2014, pp 219–238
Zurück zum Zitat Steinert B, Cassou D, Hirschfeld R. CoExist: overcoming aversion to change. In: Proceedings of the 8th symposium on dynamic languages. DLS’12. ACM, January 2012, pp 107–118 Steinert B, Cassou D, Hirschfeld R. CoExist: overcoming aversion to change. In: Proceedings of the 8th symposium on dynamic languages. DLS’12. ACM, January 2012, pp 107–118
Zurück zum Zitat Taivalsaari A (1992) Kevo, a prototype-based object-oriented language based on concatenation and modules operations. Technical report LACIR 92-02. University of Victoria Taivalsaari A (1992) Kevo, a prototype-based object-oriented language based on concatenation and modules operations. Technical report LACIR 92-02. University of Victoria
Zurück zum Zitat Taivalsaari A (1995) Delegation versus concatenation or cloning is inheritance too. In: SIGPLAN OOPS messenger 6.3, July 1995, pp 20–49. Issn: 1055-6400 Taivalsaari A (1995) Delegation versus concatenation or cloning is inheritance too. In: SIGPLAN OOPS messenger 6.3, July 1995, pp 20–49. Issn: 1055-6400
Zurück zum Zitat Taivalsaari A (1996) Classes vs. prototypes-some philosophical and historical observations. J Object Orient Prog 10(7):44–50 Taivalsaari A (1996) Classes vs. prototypes-some philosophical and historical observations. J Object Orient Prog 10(7):44–50
Zurück zum Zitat Ungar D, Smith RB (1987) Self: the power of simplicity. In: Conference proceedings on object-oriented programming systems, languages and applications. OOPSLA’87. ACM, December 1987, pp 227–242 Ungar D, Smith RB (1987) Self: the power of simplicity. In: Conference proceedings on object-oriented programming systems, languages and applications. OOPSLA’87. ACM, December 1987, pp 227–242
Zurück zum Zitat Ungar D, Smith RB (2007) Self. In: Proceedings of the third ACM SIGPLAN conference on history of programming languages. HOPL III. ACM, San Diego, CA, June 2007, 9:1–9:50 Ungar D, Smith RB (2007) Self. In: Proceedings of the third ACM SIGPLAN conference on history of programming languages. HOPL III. ACM, San Diego, CA, June 2007, 9:1–9:50
Zurück zum Zitat Van Cutsem T, Miller MS (2010) Proxies: design principles for robust object-oriented intercession APIs. SIGPLAN Not 45(12):59–72CrossRef Van Cutsem T, Miller MS (2010) Proxies: design principles for robust object-oriented intercession APIs. SIGPLAN Not 45(12):59–72CrossRef
Zurück zum Zitat Warth A (2009) Experimenting with programming language. Ph.D. thesis. University of California, Los Angeles, December 2009 Warth A (2009) Experimenting with programming language. Ph.D. thesis. University of California, Los Angeles, December 2009
Zurück zum Zitat Warth A, Ohshima Y, Kaehler T, Kay A (2011) Worlds: controlling the scope of side effects. In: Proceedings of the 25th European conference on object-oriented programming. ECOOP’11. Springer, July 2011, pp 179–203 Warth A, Ohshima Y, Kaehler T, Kay A (2011) Worlds: controlling the scope of side effects. In: Proceedings of the 25th European conference on object-oriented programming. ECOOP’11. Springer, July 2011, pp 179–203
Metadaten
Titel
Preserving Access to Previous System States in the Lively Kernel
verfasst von
Lauritz Thamsen
Bastian Steinert
Robert Hirschfeld
Copyright-Jahr
2016
DOI
https://doi.org/10.1007/978-3-319-19641-1_15

Premium Partner