Programming for Context-based Adaptability: Lessons learned about OOP, SOA, and AOP

Holger Muegge, Tobias Rho, Daniel Speicher, Pascal Bihler, Armin Bernd Cremers · 2011

Context-sensitive applications are a key issue to exploit the benefits of mobile devices. For many applications planned adaptation starts to become status quo. However, the huge potential of adapting to unanticipated situations still remains a research issue. The general question “how to program for adaptivity” in a reasonable way is not answered yet. Current methods relying on statically typed languages either introduce a high level of complexity, or rely on detailed anticipation, or both. First, we describe how a statically typed Object-Oriented language can with the help of some design patterns to cope with basic requirements of adaptivity. Then, we show how adopting a Service-Oriented Architecture (SOA) can leverage coding. Finally, we present the Aspect-Oriented (AOP) language CSLogicAJ (compatible to AspectJ) which includes a logic notation and direct access to context data. We discuss how AOP on top of SOA can help to reduce the level of anticipation of runtime adaptation. Finally, we discuss which of the main obstacles can be overcome with our approach and what remains to be tackled in the future.

Read the paper · More papers on PaperTik