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.
[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
[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
@article{"International Journal of Business, Human and Social Sciences:49280", author = "Hossein Nejati and Seyed H. Mirisaee and Gholam H. Dastghaibifard", title = "Compiler-Based Architecture for Context Aware Frameworks", abstract = "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.", keywords = "Dependency Injection, Compiler-based architecture,Context-Oriented Programming, COP, Pervasive ComputingProblem", volume = "2", number = "6", pages = "634-7", }