“…Particularly, the application programming model [3,5,10] (context-aware, service-oriented, user-centric, environment-centric, taskoriented, etc) is important for software planning and development phases. Roman et al [12] have identified six patterns that were required for all applications: multi-device utilization, user-centrism, run-time adaptation, mobility, contextsensitivity, and ubiquitous computing environment independence; and have identified five design guidelines: low-level system support, boot-strapping, scripting, application development and management support, and end-user support, which were considered essential to support ubiquitous computing environments and to increase number of application developers.…”