Distributed State Machine (DSM) a Java application framework that enables a powerful distributed computation model that uses a simple model of a distributed set of application peers, each maintaining and sharing its own local data that is particularlly relevant to ad hoc computing. Collaboration is enabled through the sharing of data among peers via synchronous or continuous queries between nodes. Additional features include brokerless semi-reliable message routing, discovery, distributed concurrency, network fault tolerance and multiple messaging protocols (tcp, udp, http, ssl, etc).
Spatiotemporal Toolkit is a framework for both Java and C++ supporting geospatial operations on an elliptical earth. It supports most geometry types and operations. A road network model is also provided for doing map matching. Spatial indexes and geohashing are supported. This is included in the Spatiotemporal Toolkit of IBM InfoSphere Streams.
Timeseries Toolkit is a framework for both Java and C++ providing a framework enabling online modeling and forecasting of time series data. Linear regression, segmented, ARIMA and Holt-Winters algorithms are included. This is included in the Time Series Toolkit of IBM InfoSphere Streams.
Policy TechnologiesIn 2008, I joined the Policy Technologies group where I have lead the development of the Policy Management Library as part of the International Technology Alliance transition projects. Here we are using policies (condition + action) to dynamically control MANET-based sensor networks.
Client Underpinnings and Design Analysis (CUDA) platform and performance improvements for the Eclipse RCP platform for small resource constrained devices. Much of the work focused on limiting Java class loading. My work on "cold method refactoring" was transferred to the japt tool, which is part of the IBM micro edition virtual machine.
Location-based Services - In 2005, I began working with a group on the application of position-determination technologies to new solutions for mobile users. Our focus was primarily on the enterprise user and established a Java library for OpenLS-based services and the JSR-179 location API. We also developed a novel prototype, called BlueBot, to locate RFID-tagged items in a warehouse. BlueBot was a Roomba vacuum equipped with self-locating technology and RFID reader, with which it could then locate and record RFID-tagged items. I remain interested in LBS, especially location-based situation and event detection.
Virtual Assistant (and variants) - as part of a mobile computing group, I lead a team to build first a natural language, voice-only and later a multi-modal interface to email and calendaring over a standard WML-enabled 3G phone. The architecture used both the voice and data streams available in 3G network to deliver multi-modal experience.
IBM Visualization Data Explorer - I joined IBM in 1992 out of NYU to work on a shared-memory parallel computing software tool that is used graphically build data visualizations using a data flow paradigm. Initially I worked on "modules" development and then focused on the user interface where I was first introduced to object-oriented programming through C++. Data Explorer went open source some years back at opendx.org.