Of course, people aren't computers and don't need to do those things, but computers need to do equivalent processes. Varadarajan has come up with a computer technology he calls "Weaves" that allows the programmer to use a code in any programming language and convert it to a form similar to object-oriented programming. Weaves teachnology is used to create a virtual world that tricks the software into thinking it is in the real world.
The global computer network--the Internet--has doubled every year for nearly 20 years. The problem is how to test new pieces of network software on such a grand scale. The traditional method is through computer simulation, such as the model of a jet cockpit in which beginning pilots start to learn how to fly a plane. But simulation requires rewriting the software in a different form to test it, as the original cannot be tested. That creates two different versions, and there is no formal mechanism to ensure the equivalence of the test with the real thing, Varadarajan said.
Another method is emulation, or the direct testing of the original software. That way, the programmer can write a piece of software once and not have to rewrite it for simulation testing. The main problem with emulation is a lower degree of control than simulation.
"Why not create a virtual world to make software think it is in the real world?" , Varadarajan asked.,
Weaves can support both simulation and emulation testing, which was Varadarajan's first goal. "You can't test a piece of network software on 200-million computers," he said. Or even 5,000 computers. "But we can create hundreds of thousands of virtual machines that make software think it's running on a very large-scale network. This leads to the creation of a virtual Internet."
Weaves can do all the things existing systems can do and more without asking software programmers to write code specifically for Weaves. "They just write it as they usually do and we take it," Varadarajan said. Then, through reverse analysis, Weaves can make any language look the same.
Also, Weaves allows for mistakes. "In each step in life, we take steps based on what we know," Varadarajan said. "If we realize we made a mistake and want to go back and undo it, we have to remember all the steps we took that caused the mistake." On the computer, the program must also remember all the steps made leading up to a mistake. "Trying to save all the information is very hard," Varadarajan said. "We are trying to make Netscape work without knowing the steps that lead up to the mistake. Weaves automatically does this. It records and saves data and shows what we need to go back in time to change." Thus the system allows for the weaving together of the languages and codes and for fast automatic checkpointing and recovery with no application support.
With a National Science Foundation CAREER award of $400,000 over five years for his proposal, "Weaving a Code Tapestry: A Compiler Directed Framework for Scalable Network Emulation," Varadarajan will continue his research, using "a novel vertical integration of the compiler-generated object framework, operating system and compiler support for fast and memory-efficient checkpointing, and a new adaptive time window based on parallel discrete event simulation algorithm, all of which work in conjunction."
"This synergy creates a new object-based framework for the development of large-scale simulations using code composition, without restricting the application programmer to any language or programming paradigm," Varadarajan said. This would be analogous to enabling a person to adapt a jet engine to work in a car or exchange parts in two fast-moving vehicles without stopping them.
As the educational component of the CAREER award, Varadarajan will develop learning modules to augment the simulation-based projects used in networking courses across the country to save students from spending an inordinate amount of time learning the intricacies of working in a simulation environment.
PR CONTACT: Sally Harris 540-231-6759 slharris@vt.edu
Researcher: Srinidhi Varadarajan, 540-231-5275, srinidhi@vt.edu