Ph.D. dissertation research
I work under the supervision of professor Vijay Karamcheti. My Ph.D. thesis, titled "Exploiting Service Usage Information for Optimizing Server Resource Management", focuses on Internet-accessible services utilizing component frameworks (such as J2EE) as the underlying middleware platform.
It is difficult to provision and manage modern component-based Internet services so that they provide stable quality-of-service (QoS) guarantees to their clients, because: (1) such services exhibit complex structural organization with requests of different types accessing different components and data sources, which could be distributed and/or replicated for failover, performance, or business purposes; (2) component middleware are complex software systems that expose several independently tuned configurable application runtime policies and server resource management mechanisms; (3) session-oriented client behavior with complex data access patterns makes it hard to predict what impact tuning these policies and mechanisms has on application behavior.
My Ph.D. dissertation work attempts to alleviate this situation by targeting three interconnected goals: (1) providing improved QoS guarantees to the service clients, (2) optimizing server resource utilization, and (3) providing application developers with guidelines for natural application structuring, which enable efficient use of the proposed mechanisms for improving service performance. Specifically, I explore the thesis that exposing and using detailed information about how clients use component-based Internet services enables mechanisms that achieve the range of goals listed above. To validate this thesis I have shown its applicability to the following four problems: (1) maximizing reward brought by Internet services, (2) optimizing utilization of server resource pools, (3) providing session data integrity guarantees, and (4) enabling efficient service deployment and operation in distributed environments.
The techniques that I have proposed and evaluated are applicable at both the application structuring stage and the application operation stage, and range from automatic (i.e., performed by middleware in real time) to manual (i.e., involve the programmer, or the service provider). These techniques take into account service usage information exposed at different levels, ranging from high-level structure of user sessions to low level information about data access patterns and resource utilization by requests of different types. Some of this information can be automatically obtained by request profiling, some can be obtained by statically analyzing the application structure, while some needs to be specified by the service provider.
In the future, I would like to continue looking for ways to build efficient and manageable Internet-accessible services. Given that the internal complexity of these services and their hosting environments will likely only grow in the future, the only way to render efficient management and beneficial utilization of these systems is to curtail their external complexity, as it is exposed to the application developers and system administrators. One way to limit exposed complexity of the service is to automate some of the service building and management aspects, which contrasts with current primarily manual approaches for the same task. I believe that such automation is possible at different stages of service lifecycle: (1) structuring and development, (2) configuration and deployment, and (3) runtime management and optimization.
Research statement: [PDF]
Most recent projects I've been part of
I have worked on the application design rules and accompanying system-level support that would enable efficient distribution of component-based J2EE applications, especially in the wide area environments (WAN). Additional details about this work can be found in the following paper:
I have also participated in the development of the infrastructure for automatic dynamic deployment of J2EE applications, that specifically addresses the problems of (1) intercomponent connectivity specification and its effects on component configuration and deployment; and (2) application component dependencies on application server services, their configuration and deployment. Additional details about this work can be found in the following resources:
Past projects I worked on
In particular, I was involved in a software project to construct a scaled-down simulation model of local ATM network - I developed an ATM multiplexer (switch) analytical model, designed and implemented various prototype algorithms for network topology design and optimization. My contribution to another project was construction of a mathematical model for computing additional load on switching network and signaling system in Intelligent (Telecommunication) Networks.
Back to the Home Page
Last update: Sunday, November 5, 2006.