Mary E. Shuman
A Database Service for Checking Invariants
When web services run collaboratively, concurrently executing processes may be accessing the same shared data. Assurance Points (APs) insure the consistency of data in service-oriented environments because they check user defined conditions, tracking pre and post conditions in-between the service calls of a process. An extension to APs is investigating the use of invariants, which are user-defined data correctness conditions that can be monitored between the APs of a process. To support the development of the invariant system, this research focused on the development of a web service for testing invariant conditions. The web service accepts as input the invariant identification number, an SQL query, and a list of tables associated with the query. The web service then executes the query to test the invariant condition. Since the invariant may need to be checked multiple times between the starting and ending APs of an invariant, a materialized view is constructed to improve the performance of re-checking the invariant, where the view is immediately refreshed when relevant data changes occur. Rechecking the invariant condition then uses a query that counts the tuples of the refreshed view rather than performing a complete re-execution of the query. The invariant-checking web service is being incorporated into the invariant monitoring extension to APs as a way to monitor the status of data correctness conditions during process execution.
Mary E. Shuman
Integration of a 3D Programming Environment with Robotics to Stimulate Interest in Computing
Many methods have been proposed to increase student enrollment and boost retention rates in Computer Science. Some of the most popular teaching tools have been based on 3D programming environments and robotics, which when interfaced together, reduces the syntax dependency for programming a robot and makes a programming environment tangible. This research project modified Alice, an existing 3D programming environment, to create a tool that can control sensing and actuation commands on multiple instances of robots. The user can create a virtual animation in Alice based on a sequence of actions, and simultaneously execute these actions on one or more physical robots. An interface comprising a dictionary data structure and a socket stream has been created to translate the action sequence from Alice to the corresponding robot commands and to communicate these commands to the robot. The dictionary data structure currently translates Alice's pseudo-java commands to the Python commands on a Fluke enhanced Scribbler robot. Since the socket communicators can be written in any programming language, the modified version of Alice can potentially be used to interface with other robots through extensions to the data dictionary. In the long-term, the tool and the robots will be used to teach core computing concepts to school students and undergraduates, thereby inspiring them to pursue advanced degrees and careers in STEM disciplines.