Compiler-Based Architecture for Context Aware Frameworks

Computers are being integrated in the various aspects of human every day life in different shapes and abilities. This fact has intensified a requirement for the software development technologies which is ability to be: 1) portable, 2) adaptable, and 3) simple to develop. This problem is also known as the Pervasive Computing Problem (PCP) which can be implemented in different ways, each has its own pros and cons and Context Oriented Programming (COP) is one of the methods to address the PCP. In this paper a design for a COP framework, a context aware framework, is presented which has eliminated weak points of a previous design based on interpreter languages, while introducing the compiler languages power in implementing these frameworks. The key point of this improvement is combining COP and Dependency Injection (DI) techniques. Both old and new frameworks are analyzed to show advantages and disadvantages. Finally a simulation of both designs is proposed to indicating that the practical results agree with the theoretical analysis while the new design runs almost 8 times faster.




References:
[1] P.J. Brown, J.D. Bovey, X. Chen, "Context-aware applications: from the
laboratory to the marketplace," IEEE Personal Communications, vol. 4,
no. 5, Oct. 1997, pp. 58-64.
[2] R. Keays, A. Rekotonirainy, "Context-Oriented Programming,"
International workshop on Data Engineering for Wireless and Mobile
Access, San Diego, USA, ACM Press, pp. 9-16, 2003.
[3] A.K. Dey, G.D. Abowd, "Towards a better understanding of context and
context-awareness," CHI 2000 workshop on the what, who, where,
when, and how of context-awareness, The Hague, The Netherlands
2000.
[4] G. Berhe, L. Brunie, J.M. Pierson, "Content adaption in distributed
multimedia systems," Journal of Digital Information Management 3 (2),
95- 100 (special issue on distributed data management)
[5] D. Gelernter, S. Jagannathan, T. London, Environments as First Class
Objects. POPL -87, Proceedings.
[6] S. Helal, "Pervasive Java," IEEE Pervasive Computing, vol. 1, no. 1, pp.
82-85, Jan.-Mar. 2002.
[7] M.L. Gassanenko, "Context-Oriented Programing: Evolution of
Vocabularies," Proc. of the euroFORTH'93 conference, Marianske
Lazne (Marienbad), Czech Republic, pp. 14, 1993.
[8] S. Pelc, "Programming Forth", MicroProcessor Engineering Limited, -
Copyright ┬® 2005. available:
www.mpeltd.demon.co.uk/arena/ProgramForth.pdf
[9] M. Lutz, Programming Python. O-Reilly and Associates. USA 1996.
[10] A. Sasikanth, "Enhancing the Bluetooth Service Discovery Protocol,"
Honours thesis, University of Maryland, 2001.
[11] J. Wang, B.A. Shapiro, D. Shasha, K. Zhang, K. M. Curre, "An
Algorithm for Finding the Largest Approximately Common
Substructures of Two Trees," IEEE Transactions on Pattern Analysis
and Machine Intelligence, vol. 20, no. 8, pp. 889-895, 1998.
[12] D. Shasha, J.T.-L. Wang, K. Zhang, F.Y Shih, "Exact and Approximate
Algorithms for Unordered Tree Matching," IEEE Trans. Systems. Man,
and Cybernetics, vol. 24, pp. 668-678, 1994.
[13] T. Berners-Lee, Semantic Web Road Map. W3C draft September 1998.
Available: http://www.w3.org/DesignIssues/Semantic.html
[14] F. Monala, E. Miller, "RDF Primer," W3C Working Draft 19 March
2002. Available: http://www.w3.org/TR/2002/WD-rdf-primer-
20020319/
[15] Apache Software Foundation. Available: http://avalon.apache.org
[16] M. Talevi, "container overview," 2006. available:
http://docs.codehaus.org/display/PICO/3.+PicoContainer
[17] M. Pollack, et al, "The Spring.NET Framework Reference
Documentation," Version 1.1.2, June 12, 2008. available:
http://www.springframework.net/doc-latest/reference/html/index.html
[18] D. Megginson's, SAX. 27-April 2004, available:
http://www.saxproject.org
[19] Java Script Kit - DOM (Document Object Model) Reference. available:
http://www.javascriptkit.com/domref/
[20] R. Johnson, et al, "Spring - Java/J2EE Application Framework
Reference Documentation," Version 1.2.9, 2008. Available:
http://static.springframework.org/spring/docs/1.2.x/reference/index.html