A "best fit" optimization approach for component based software development

Morgan Ericsson
Division of Scientific Computing
Department of Information Technology
Uppsala University


My research began with a simple question that turned into an interesting optimization problem (and a philosophy). How do we make Web Services and SOAP usable on mobile phones? The solution involved finding the most effective and efficient compression algorithm based on the characteristics of the message. When later trying to apply the lessons learned from SOAP compression and mobile phones to an infrastructure inspired by computational Grids, I ran into another interesting problem involving the scheduling of tasks to nodes of the Grid. How can the Grid react to events where the reaction is predictable but the time when the event happens is not (such as a node failure, or a new programming being launched)?

The two problems might appear unrelated, but they are actually the same (optimization) problem. How can we prepare enough information beforehand to be able to make an informed decision as a response to some event? The solutions to the two problems were generalized into a development strategy, "context-aware composition" (CAC). Software is built from abstract building blocks, components, that each has a number of possible implementations. When the application is composed, the CAC engine will automatically create the best application according to some optimization goal.

The rest of the presentation will discuss my current research into development methodologies for educational software as well as my research plans into multicores and communication.