My interests lie primarily in distributed systems and
networks, and developing software applications for enterprise computing.
Areas of interest include:
- Web and Application servers
- Middleware technologies
- RFID software applications
- Distributed Caching
- Content distribution and management
Software development experience
includes Java (J2SE, J2EE) and C/C++ mostly in a *NIX platform, with
some exposure to the Windows platform, along with associated tools,
utilities and IDEs.
- August 2003 - January 2004
I interned at SAP Labs, Palo Alto, developing a
test tool for RFID-based
supply chain auto-monitoring software.
Such software monitors items, such as cases and pallets equipped with
RFID tags, through special RFID tag sensors, as these items move through
the supply chain. The information is transferred to a backend system
over the Internet. This gives a real-time view of the supply chain and
inventory information, which can be leveraged to make intelligent
business decisions.
The test tool that I developed simulated
the behavior and the web-traffic generated by RFID tag sensors, based on
a supply chain scenario defined by an XML script. The tool was used by
the development team to perform functional,
stress and performance testing. I also got to play around and
experiment with the different tag sensor hardware provided by vendors
such as Philips, Matrics, Alien, Intermec.
- June 2002 - September 2002
Summer job at Center for
Image Processing and Integrated Computing Interface Laboratory,
CIPIC-UCDAVIS
The research activities at the laboratory focuses on spatial hearing
and three-dimensional sound synthesis, and speech, audio and image
processing. My work here involved evaluating SLAB, a real-time
virtual acoustic environment rendering software library, for potential
application in a custom sound rendering software being developed at the
laboratory. Most of the work involved writing test scripts and
proof-of-concept applications for the different library features, as
well as documenting the results.
Upto March 2004, I was a
graduate student in
Computer Science at the
University of California-Davis.
For my graduate thesis, I proposed a new
framework, PAES, which allows evolution
of applications in the context of sensor networks.
To summarize my
work:
the
framework leverages an existing wireless network to update an
application running on a sensor node
with a new version, or another application,
while exhibiting good reliability, scalability and efficiency
characteristics.
Abstract
There is
increasing interest in the wide range of applications for sensor
networks. Continuing advances in communication and computing will lead
to increasingly sophisticated applications, which change and evolve
over the lifetime of the network. The current method for updating
sensor applications requires physical access to the nodes. This gives
rise to the need for a model that supports the evolution of sensor
applications. In this thesis, we present PAES : A Two-Phase Protocol
for Application Evolution in Sensor Networks. PAES is a protocol that
leverages the wireless network for updating applications in a sensor
environment. The main idea is to distribute the new application over
the network while minimizing the number of retransmitting nodes. The
protocol uses a decision function for identifying nodes that take part
in the update operation, and then uses the resulting infrastructure to
distribute the application in the form of network packets. The packet
structure encapsulates an application naming mechanism, which we
exploit to identify the nodes that must be be updated. Unlike most
existing sensor network protocols, which concern with node-to-base
station communication, we focus on base station-to-node communication.
We analyze the behavior of the protocol and show that the protocol is
efficient regarding overhead and node coverage, reliable for data
transmissions, and allows sensor nodes to be updated in a finite time.
Let me know if you are interested in
reading this thesis. I'll be glad to give you a copy.
- DNA Computing - A Look at
Emerging Technologies
Rishikesh Tembe, Vivek Sundaram, Vishal Shah
First Prize, CSI-WRITECH, Mumbai, India,1999
- Fractal Theory and Applications
Rishikesh Tembe, Vivek Sundaram, Vishal Shah
First Prize, IEEE Paper Contest,
Mumbai, India, 1999
- Code Obfuscation for Software
Security
Rishikesh Tembe
Finalist, CSI-eSense,
Mumbai, India, 2001
- The Inverse of Compiling
Rishikesh Tembe
Article in IEEE Synergy,
2000
Send me an
email
if you need a copy of the papers.
- Enterprise Java Bean middleware
components for distributed transaction processing on a car resale portal
This was my senior year project
(2000-2001). The project was based on the EJBCar
application developed by Sun Microsystems Inc. The EJBCar
application was designed to offer a car brokerage service to prospective
clients and customers who wanted to purchase a car. It represented a
single dealer and allowed the customer to search for a car of his
preference, and buy it if it was in stock. If the required car wasn't in
the inventory of the dealer, the customer could not buy the car. My
team (Myself, Vivek Sundaram, Madhup Gulati, Sumit Gwalani) worked on an
extension, which represented several dealers. If the car that the
customer wanted to purchase wasn't available with one dealer, then our
application transparently searched the inventory databases of the other
customers. If the car was found, the customer could but it without
having to go explicitly through the other dealer.
Project Report (PDF)
- Checkpoint extension of Java
Recovery in computer systems is a complicated process. The ideal
approach is to resume execution of the failed process by using checkpoints. Our work focuses on adding this capability
to Java. Using inner classes to capture the state, we describe three
possible schemes for implementing a checkpoint facility, two of which we
have implemented. The common approach is to capture the state within a
class and propagate it as required. One scheme exploits the Java
Exception mechanism, while the other maintains a trace of the changing
state. However, the current implementation is primitive and suffers from
certain drawbacks. The goal of this project has been
- Explore the feasibility of checkpointing in Java
- Provide a mechanism for accessing the heap and
combining it with the stack, without touching the JVM.
- Design & Implementation of
the Semantics of a Programming Language in ML
The
programming language to be included the basic expressions and commands, I/O through
"read" and "write" commands, Block nesting, and Procedures,
including recursive calls. The main tasks involved were:
- Write the abstract syntax
grammar
- Create concrete syntax for
the language, using BNF notation
- Write a pretty-printer
that converts a program expressed in abstract syntax to the concrete
syntax.
- Implement a static
semantics checker
- Implement the dynamic
semantics for the language. (The semantics were based on the
denotational equations for the language)
The project was implemented in ML - a functional
language.