.comment-link {margin-left:.6em;}

Tech Scribes

This is a forum for posting articles discussing your Master's or PhD research. The aim of this website is to help you get intelligent feedback and help you view the problem from a different perspective. If you wish to post on the site, please e-mail caveman(at)gmail(dot)com or mailsunildsouza(at)yahoo(dot)com with the article which you want to post.

Wednesday, August 25, 2004

A Stock Trading System

Can we replace a legacy mainframe-based stock trading system with personal computers running J2EE? Advantages include cheap, easier maintenance, more server varieties and maybe, faster transactions.

I assume here that most of us have some understanding of what J2EE is. It is the enterprise platform of JAVA for building applications in various domains. I may add another blog on J2EE later on for further understanding. Let me give a brief overview of the stock trading system though my knowledge about it is very limited. It is a complex system and I can only cover the core and basic components.

There are two main data categories in a stock trading system - data about the securities and the brokers. Brokers have access to buy, sell trade orders of different securities. The security data is stored in a Security Master and brokers' data is stored in a Trade Master. When a broker places a trade order for a particular security, the system should validate the order and then do a order matching with the information stored in the Security Master. If a match does occur, and without violating the ACID (Atomic Consistent Isolated Durable) properties, the correct number of shares are bought or sold by that broker and the data is updated in those tables in the database. This is one of the basic transactions taking place in a stock trading system. Now imagine thousands of such operations occur every minute. We need a system which should handle such traffic without causing much delays.

The project involves a 3-tier architecture. A front-end, middleware and a backend. Backend consists of a database and front-end involves Swing applications or JSP based interface for the brokers to place orders. Middleware would be where the business logic would lie. One of the core components of the business logic is order matching. It needs to be done really quick otherwise it can become the bottleneck. After working for a couple of months, I came out with a dynamic data structure using core JAVA which can handle order matching. Our goal was to handle 100 requests per second and the data structure was giving me that performance. In fact, the performance of this data structure was tested and proved to be better than the one that was created using JAVA's own TreeMap data structure.

Entity Beans are needed for maintaining the Security Master and Trade Master. They need to be mapped with the respective tables in the database. Session beans can handle the authentication of the user, validation of requests, buy and sell trade order processing and broadcast data generation. Broadcasting the data is like a ticker that shows the latest status of each security on every frontend. The front-end module posts a request to servlets/JSP pages, which in turn call the Session Beans. A queueing mechanism like MQ Series can be used to create message queues to constantly sent data to the Broadcast server, which in turn takes care of the broadcast of the trading details.

So, what can the stock exchange achieve from this system? An increase in growth of users, handle heavy trading activity with less delays, deliver responses to users within a few seconds and a huge reduction of infrastructure costs.

Tuesday, August 24, 2004

ROBO FLY

Will discuss Robo Fly which is being developed at University of California, Berkeley

Known affectionately as "robofly," the gadget is exactly what its name implies: a flying robot about the size of a housefly. It even looks a bit like a fly, although it will have four wings instead of two and one glassy eye instead of two beady ones. Uncle Sam, who is bankrolling the project to the tune of $2.5 million, wants to see robofly airborne by 2004


why are fly robots creating such a buzz?
Flies, for all their faults, are outstanding pilots. They can take off and land in any direction, even upside down. They can change course in just 30-thousandths of a second. And they process information at speeds that make a supercomputer look like an abacus.


Specifications
Robofly will weigh about 43 milligrams -- roughly the weight of a fat housefly. Its body will be made of paper-thin stainless steel and its wings of Mylar, which looks and feels a lot like Saran Wrap. Robofly will be powered by the sun, and a tiny device called a piezoelectric actuator will flap its four puny wings 180 times a second.


How does it fly?
Dickinson discovered that insects use three different wing motions that, taken together, create backspin and air vortices that create lift. The complexity of the movement means robofly will need four wings to do what flies do with two.


Present work
Controlling the robofly once its airborne.


Future
California Institute of Technology in Pasadena who are developing tiny gyroscopes just one millimeter in diameter. Caltech researcher Kris Pister is developing for "smart dust" which will pack sensors, communicators and computing power onto tiny silicon motes


To learn more go here http://ist-socrates.berkeley.edu/~flymanmd/

P2P cooperative proxy cache system

Recently many schemes have been proposed to organize the proxy servers into a cooperative proxy cache system. However most of the existing proxy cache schemes require manual configuration of the cooperative proxies based on the network architecture. Due to the size and the complexity of network structure and the nature of the existing caching protocols, complex organization and management decisions are often left to the institutions and the system administrators. Besides manual configuration, there are other problems in existing proxy caching schemes. These problems include complexity, load balance, hit ratio exaggeration, cooperation misuse, scalability, data replication, availability, and adaptability. The objective of this proposed research is to reduce the complexity of managing the distributed proxies using a novel cooperative proxy caching scheme. Each proxy in this proposed proxy cache system makes its own caching decision based on an individual-based cache model. The Web documents are automatically replicated in the proxy cache system based on demand. The cumulative results of the individual caching actions by all proxies automatically distribute the data closer to the clients. These caching actions create artificial life for the cooperative proxies and hence build a self-configured, self-managed, and self-stabilized cooperative P2P proxy cache system.

Parking Availability Using Image Processing

Parking in major cities is a big problem with the exponential growth of car owners and limited space availability. Finding parking space in parking lots in and around places of high activity like downtown or stadiums during games is a big problem. A lot of time and effort is wasted by drivers in actually navigating the whole parking lot looking for space. This problem can be solved by using image processing techniques.

PROPOSED ACTIVITY

We propose setting up a parking availability determination system based on image processing. The system will consist of a camera network in a parking lot which provides live image feeds to a hub. The parking lot will be mapped and the occupancy of parking spaces will be determined. The entrance of the parking lot will have a display which would show the driver a map of empty spaces. This saves the driver the trouble of actually searching for empty spaces by driving through the parking lot. The parking lot availability can also be displayed on cell phones using an application so real time occupancy can be determined. We propose parallel image processing of images of parking lots obtained by two or more cameras on a single hub thus making it cost effective.

EMPTY SPACE DETECTION

The whole parking lot is mapped with specific block of pixels in the input image assigned a parking spot. When a parking spot is occupied by a car its presence can be detected by applying image segmentation algorithm and it can be further verified by taking the color and intensity differential for edge extraction and recognition of vehicle occupancy. Now cars being driven on the aisle could be either be one needing a parking spot or one on its way out. The obvious problem in such a system would be reserving spots for vehicles being driven on the aisle so that the correct availability is determined. This problem can be solved by tracking the cars entering the parking lot and tagging them. Tracking these cars would be a trivial problem since these cars move linearly and with a slow constant velocity. For the cars that have been tagged the nearest parking spot in its path will be reserved.

Monday, August 23, 2004

Gesture Recognition

Humans have always wanted to interact with their environment. Humans communicate with other people as well as objects daily to get work done. Computers and machines have become important elements in our society. We use them to perform various tasks. Humans still rely on keyboards, mouse or buttons to interact with machines. This has tremendously affected the naturalness of interaction. Humans interact with each other using speech and gestures and it would be great if we can do the same with machines. Recently a lot of research has been done for using speech as input for systems. Interaction using only speech has some drawbacks. The speech recognition system has to be trained by the user and even then they are not accurate enough. Also designing speech input based systems that can be operated by just one user don’t make sense.

Gesture recognition has been used to complement speech recognition. Gesture recognition can be done by interpreting the motion of a human arm. E.g. a hello wave. Gesture recognition was initially done using glove based techniques. These gloves had mechanical sensors to measure the arm and finger joint angles. The user has to wear a mechanical glove and carry the load of wires attached to it. This method of gesture recognition defeats the purpose (naturalness of interaction) itself. Researchers have now tried gesture recognition using visual sensors. Presently common human hand gestures like pointing, wave, and stop as well as American Sign Language gestures can be recognized using vision. Further research is needed to understand more complex human gestures and use both hand tracking for gesture recognition. I am presently working on a gesture recognition system.

PROPOSAL:

We plan to develop a gesture recognition system which permits a human user wearing a specially marked glove to command a computer system to carry out predefined gesture action commands. Here they basically get the initial and the final position of the points of interest (markers) on the glove and extract their motion vector, since different gestures have different sets of motion vectors for the markers they can be discriminated. After solving the static gesture recognition problem we plan to form a library of simple dynamic human gestures which can be recognized and be used for intelligent control of machines. This would require tracking the human hand. Such gestures would consist of discrete abrupt motions and a multi modal particle filter would be needed to track it using a library of motion models. Bandwidth limitation is a major concern in video tele-conferencing. Our system can be used to for video coding: image sequence are described by states (position, scale and orientation) of all objects in the scene and only change in model parameters are sent instead of the whole sequence of images.