• 沒有找到結果。

Integrating Transactional Rollback and Dynamic Reconfiguration

5. Conclusions and Future Work

5.2 Future Work

5.2.3 Integrating Transactional Rollback and Dynamic Reconfiguration

Most researches on dynamic reconfiguration are based on the notion of safe reconfiguration point. Although the safe reconfiguration point easily guarantees that a module could be safely reconfigured, there are still some disadvantages. For a transparent approach such as stack tracing, the system may be too busy to find the safe reconfiguration point. For a non-transparent approach, the programmer has to preserve the safe reconfiguration point by implementing a synchronization protocol or using synchronization mechanisms.

The safe reconfiguration point, however, is not needed by a dynamically reconfigurable system using transactional rollback. Transactional rollback (Rudys and Wallach 2002) is a facility that can roll back a system to a restartable state. If the underlying system supports transactional rollback, dynamic reconfiguration can start at any desired point. The code in execution can be rolled back to the restartable state, and before restarting the module can be replaced.

Current transactional rollback system for Java (Rudys and Wallach 2002) is not efficient because it is based on transforming the Java code. There still no transactional rollback facility directly built inside the Java virtual machine. Our future work is to develop a transactional rollback enabled Java virtual machine and then use this virtual machine to create a more flexible system for dynamic reconfiguration.

Bibliography

1. Aldrich, J., Chambers, C., and Notkin, D. "ArchJava: Connecting Software Architecture to Implementation." Proceedings of the 24th International Conference on Software

Engineering, 187-197.

2. Almeida, J. P. A. (2001). "Dynamic reconfiguration of object-middleware-based distributed systems," Master's Thesis, University of Twente, The Netherlands.

3. Ananthaswamy, A. (1995). Data Communications using Object-Oriented Design and C++, McGraw-Hill, New York.

4. Archer, T., and Whitechapel, A. (2002). Inside C#, Microsoft Press, Redmond, MA.

5. Arnold, B., Gosling, J., and D., H. (2000). The Java Programming Language, Addison-Wesley, Boston, MA.

6. Barr, M., and Eisenbach, S. "Safe upgrading without restarting." Proceedings of IEEE Conference on Software Maintenance, 129-137.

7. Bershad, B. N., Savage, S., Pardyak, P., Sirer, E. G., Fiuczynski, M. E., Becker, D., Chambers, C., and Eggers, S. "Extensibility, Safety and Performance in the SPIN Operating System." Proceedings of the 15th ACM Symposium on Operating System Principles, 267-284.

8. Bloom, T. (1983). "Dynamic module replacement in a distributed system," PhD Thesis, Massachusetts Institute of Technology.

9. Buschmann, F., Meunier, R., Rohnert, H., Sommerland, P., and M., S. (1996).

Pattern-Oriented Software Architecture: A System of Patterns, John Wiley, New York.

10. Clark, D. D. "The structuring of systems using upcalls." Proceedings of 10th ACM Symposium on Operating System Principles, 171-180.

11. Costanza, P. "The Programming Language Gilgul." OOPSLA 2001 Workshop on Engineering Complex Object-Oriented Systems for Evolution (ECOOSE).

http://www.dsg.cs.tcd.ie/ecoose/oopsla2001/papers.shtml/

12. Dmitriev, M. "Towards Flexible and Safe Technology for Runtime Evolution of Java Language Applications." OOPSLA 2001 Workshop on Engineering Complex

Object-Oriented Systems for Evolution (ECOOSE).

http://www.dsg.cs.tcd.ie/ecoose/oopsla2001/papers.shtml/

13. Dunkels, A. (2001). "Design and Implementation of the lwIP TCP/IP stack." Technical Report, Swedish Institute of Computer Science.

14. Engler, D. R., Kaashoek, M. F., and J. O'Toole, J. "Exokernel: An Operating System Architecture for Application-level Resource Management." Proceedings of the 15th ACM Symposium on Operating Systems Principles, 251-266.

15. ETSI. (1998). "Mobile Radio Interface Layer 3 Specification."

http://www.etsi.org/services_products/freestandard/home.htm

16. Fassino, J. P., Stefani, J. B., Lawall, J., and Muller, G. "THINK: A Software Framework for Component-based Operating System Kernels." Proceedings of the 2002 USENIX Annual Technical Conference, 73-86.

17. Ferber, J. "Computational reflection in class based object-oriented languages."

Proceedings of the 4th ACM Conference on Object-Oriented Programming, Systems, Languages and Applications, 317-326.

18. Gray, J., and Reuter, A. (1993). Transaction Processing: Concepts and Techniques, Morgan Kaufmann.

19. Hicks, M., Moore, J. T., and Nettles, S. "Dynamic Software Updating." Proceedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and

Implementation (PLDI), 13-23.

20. Hjalmtysson, G., and Gray., R. "Dynamic C++ classes: a lightweight mechanism to update code in a running program." Proceedings of the 1998 USENIX Annual Technical Conference, 65-76.

21. Keene, S. E. (1989). Object-Oriented Programming in Common LISP: A Programmer's Guide to CLOS, Addition-Wesley, Reading, MA.

22. Kniesel, G., J., N., and J., B. "Workshop Report." First International Workshop on Unanticipated Software Evolution (USE). http://joint.org/use/2002/sub/

23. Kramer, J., and Magee, J. (1985). "Dynamic configuration for distributed systems."

IEEE Transactions on Software Engineering, 11(4), 424-436.

24. Kramer, J., and Magee, J. (1990). "The Evolving Philosophers Problem: Dynamic Change Management." IEEE Transactions on Software Engineering, 16(11), 1293-1306.

25. Krasnyansky, M. "Universal TUN/TAP Driver." http://vtun.sourceforge.net/tun/

26. Krupczak, B., Calvert, K. L., and Ammar, M. "Implementing protocols in Java: the price of portability." Proceedings of the 17th Annual Joint Conference of the IEEE Computer and Communications Societies, 765-773.

27. Levine, J. R. (2000). Linkers and Loaders, Morgan Kaufmann, San Francisco, CA.

28. Liang, S. (1999). The Java Native Interface: Programmer's Guide and Specification, Addison-Wesley, Reading.

29. Lu, H. (1995). "ELF: From the Programmer's Perspective." NYNEX Science&

Technology Inc.

30. Maes, P. (1987). "Computational Reflection." Technical Report, Artificial Intelligence Laboratory, Vrieje University, Brussel.

31. Magee, J., Dulay, N., and J., K. (1993). "Structuring parallel and distributed programs."

IEE Software Engineering Journal, 8(2), 73-92.

32. Malabarba, S., Pandey, R., Gragg, J., Barr, E., and Barnes, F. "Runtime Support for Type-safe Dynamic Java Classes." Proceedings of the 14th European Conference on Object-Oriented Programming, 337-361.

33. McDirmid, S., Flatt, M., and Hsieh, W. "Jiazzi: New-Age Components for

Old-Fashioned Java." Proceedings of the 16th ACM SIGPLAN Conference on Object Oriented Programming Systems, Languages, and Applications, 211-222.

34. Morrisett, G., Walker, D., Crary, K., and Glew, N. (1999). "From System F to Typed Assembly Language." ACM Transactions on Programming Languages and Systems, 21(3), 527-568.

35. Orso, A., Rao, A., and Harrold, M. "A technique for dynamic updating of java software." Proceedings of the 18th IEEE International Conference on Software Maintenance, 649-658.

36. Plagemann, T., and Plattner, B. "Modules as building blocks for protocol configuration."

Proceedings of the 1993 International Conference on Network Protocols, 106-115.

37. Postel, J. B. e. (1981). "Transmission Control Protocol." RFC 793, IETF.

38. Ritchie, D. M. (1984). "A stream input-output system." AT&T Bell Labs. Technical Journal, 63(8), 311-324.

39. Rudys, A., and Wallach, D. S. "Transactional Rollback for Language-based Systems."

The 2002 International Conference on Dependable Systems and Networks, 439-448.

40. Schmidt, D. C., Box, D. F., and Suda, T. (1993). "Adaptive: a dynamically assembled protocol transformation, integration, and evaluation environment." Journal of

Concurrency: Practice and Experience, 5(4), 369-286.

41. Seco, J., and Caires, L. "A basic model of typed components." Proceedings of the 14th European Conference on Object-Oriented Programming, 108-128.

42. Segal, M. E. "Online Software Upgrading: New Research Directions and Practical Considerations." Proceedings of the 26th Annual International Computer Software and Applications Conference (COMPSAC), 977-981.

43. Seltzer, M., Endo, Y., Small, C., and Smith, K. (1994). "An Introduction to the Architecture of the VINO Kernel." Technical Report 34-94, Center for Research in Computing Technology, Harvard University.

44. Senert, A., Charra, O., and Stefani, J.-B. "Developing Dynamically Reconfigurable Operating System Kernels with the THINK Component Architecture." OOPSLA 2002

Workshop on Engineering Context-Aware Object-Oriented Systems and Environments (ECOOSE). http://www.dsg.cs.tcd.ie/ecoose/oopsla2002/papers.shtml

45. Soules, C. A. N., Appavoo, J., Hui, K., Wisniewski, R. W., Silva, D. D., Ganger, G. R., Krieger, O., Stumm, M., Auslander, M., Ostrowski, M., Rosenburg, B., and Xenidis, J.

"System Support for Online Reconfiguration." Proceedings of the 2003 USENIX Annual Technical Conference, 141-154.

46. Stevens, W. R. (1999). Unix Network Programming, Vol 2: Interprocess Communications, Prentice-Hall, Englewood Cliffs, NJ.

47. Sun Microsystems. (1997). "Java Core Reflection."

48. Sun Microsystems. (2001). "Java Object Serialization Specification." Revision 1.4.4.

49. Sun Microsystems. (2002). "Java Virtual Machine Debug Interface Reference." Sun Microsystems. http://java.sun.com/j2se/1.4.1/docs/guide/jpda/jvmdi-spec.html 50. Wilson, S., and Kesselman, J. (2000). Java Platform Performance: Strategies and

Tactics, Addison-Wesley, Boston.

51. Zitterbart, M., Stiller, B., and Tantawy, A. N. (1993). "A model for flexible high-performance communication subsystems." IEEE Journal on Selected Areas in Communications, 11(4), 507-518.

Vita

Yueh-Feng Lee was born on Nov 1, 1974. He received the B.S. and M.S. degrees in Computer Science from National Tsing Hwa University in 1997 and 1999, respectively. He is currently a Ph.D. candidate in the Department of Computer and Information Science at National Chiao Tung University. His research interests include operating systems, mobile communications, and Java.

相關文件