| Writings |
Research and Project
- Quality for mass-market sofware (make software just work, from day 1, for millions of users)
- Social Networking
- Decentralized Systems
- Operating Systems
Assessing End User Reliability
reliability of software products is critical in today’s world.
We described an approach for assessing software reliability for
mass market products such as the Windows® operating system. The
approach described provides a good assessment of reliability in
a short period of time by collecting data from a relatively
small numbers of systems. The results of this approach have been
used to make ship decisions for Windows Vista™ throughout the
Related projects include: Reliability
Analysis Component, Windows Error
Peer-to-Peer Communities *Invited for publication in an International Journal
I investigated inherent and self-organizing structures in a populated peer-to-peer (P2P) space comprising computing elements called peers that form overlay links to other peers based on human factors, such as friendships.
I showed that such a P2P system forms a small world network, and furthermore, peers self-organize into inherent peer communities based on the declared interests of their human users. I have provided algorithms to discover these communities and help in the formation of more communities within the P2P system.
I also proposed certain rules to be enforced on new joining peers so that the P2P system is guaranteed to be a small-world network with scale-free properties. Because of these properties,
I was able to propose and demonstrate an efficient distributed discovery algorithm and a push-pull gossiping algorithm. Both these algorithms form the intra-community communication mechanism.
I further showed the benefits of a community-based searching technique by implementing an inter-community communication mechanism,
i.e. instead of propagating search queries to your friends / neighbors,
community-based search first identifies the nature of the query and then
propagates it within the appropriate community. Finally I introduced a model for
community-based trust management. The solution permits asymmetric trust
relationships that can be verified by any peer in the system through a simple,
Peer-to-Peer Collaborative Environment
Peer-to-peer systems function without any centralized control. We have designed and implemented a peer-to-peer system that allows files to be shared amongst distributed users in a synchronized and consistent manner. We enable participating peer nodes to initialize a peer-to-peer network, and exchange initial information about the names of files that they own and are willing to share with the other members. Thus we form a collaborative group that enables member peer nodes to view and use files that are owned by any participating peer node. In order to participate in a collaborative group we require a new peer node to know the identity of only one existing member peer node.
Peer nodes automatically keep track of the location of the latest version of a shared file. This is accomplished by assigning the responsibility to the peer node that owns the file, i.e. the peer node that introduced the file into the group. Peer nodes allow their users to read, write and commit changes made to any shared file. The user is also given a choice of valid replica locations from where to download a file from so that the location that is closest can be selected.
We optimize on the number of file transfers that occur between peer nodes by only performing a transfer after comparing the local replica of a file with the original file. Additionally, we increase concurrency by granting read requests for a file during a write operation on the same file. The requesting peer node is however warned that the file was being written to. Finally, the use of local synchronization objects ensures sequential operations when needed. (download paper)
Moneta: e-Cash Bank
This was an e-commerce concept that we built right from the idea, business feasibility analysis and implementation and testing. The basic algorithm was modification of the “PayWord and MicroMint” algorithm proposed by Dr. Rivest and Dr. Shamir. Our modification allowed a counterfeiter to be caught. The server-side program was deployed at a fictitious bank site and the client-side program was deployed on various client machines whose users used the program as a wallet for making e-cash payments to vendors over the Internet.
PIPES *3 National Awards at inter-college IEEE Student Chapter contest
Programmer's Interface for a Parallel Execution System (PIPES)
This project presents a strategy for designing an efficient and practical distributed system. The system can be created over a heterogeneous network of workstations running any version of the Windows operating system and the Distributed Component Object Model (DCOM). The novelty of our approach lies in the distribution algorithm, which schedules jobs on nodes that best match the job requirement. A Virtual Machine is enabled through a client-server model. PIPES offers routines that wrap the complexity of communication and load scheduling within a simple interface. The aim is to allow programmers to create and execute parallel programs or test parallel algorithms easily and over off-the-shelf platforms. The behavior of the virtual machine is similar to coarsely grained parallel computer where each node on the network performs an independent operation on its own data. The performance gained by our strategy was shown to be substantial. A Visual tool packaged along with the interface libraries helps programmers generate code that they can use in existing applications for less time consuming application development.