Browsing by Author "Vallejos, Jorge"
Now showing 1 - 3 of 3
Results Per Page
Sort Options
Item Bringing Scheme Programming to the iPhone - Experience(Software: Practice and Experience, 2012) Bainomugisha, Engineer; Vallejos, Jorge; Gonzalez Boix, Elisa; Costanza, Pascal; D'Hondt, Theo; De Meuter, WolfgangThe iPhone SDK provides a powerful platform for the development of applications that make use of iPhone capabilities such as sensors, GPS, Wi-Fi or Bluetooth connectivity. Thus far we observe that the development of iPhone applications is mostly restricted to using Objective-C. However, developing applications in plain Objective-C on the iPhone OS su ers from limitations such as the need for explicit memory management and lack of syntactic extension mechanism. Moreover, when developing distributed applications in Objective-C, programmers have to manually deal with distribution concerns such as service discovery, remote communication, and failure handling. In this paper, we discuss our experience on porting the Scheme programming language to the iPhone OS and how it can be used together with Objective-C to develop iPhone applications. To support the interaction between Scheme programs and the underlying iPhone APIs, we have implemented a language symbiosis layer that enables programmers to access the iPhone SDK libraries from Scheme. In addition, we have designed high-level distribution constructs to ease the development of distributed iPhone applications in an event-driven style. We validate and discuss these constructs with a series of examples including an iPod controller, a maps application and a distributed multiplayer Scrabble-like game. We discuss the lessons learned from this experience for other programming language ports to mobile platforms.Item Context-oriented Programming for Customizable SaaS Applications(Annual acm symposium on applied computing, 2012) Truyen, Eddy; Cardozo, Nicolás; Walraven, Stefan; Vallejos, Jorge; Bainomugisha, Engineer; Günther, Sebastian; D’Hondt, Theo; Joosen, WouterSoftware-as-a-Service (SaaS) applications are multi-tenant software applications that are delivered as highly configurable web services to individual customers, which are called tenants in this context. For reasons of complexity management and to lower maintenance cost, SaaS providers maintain and deploy a single version of the application code for all tenants. As a result, however, custom-made extensions for individual tenants cannot be efficiently integrated and managed. In this paper we show that by using a context-oriented programming model, cross-tier tenant-specific software variations can be easily integrated into the single-version application code base. Moreover, the selection of which variations to execute can be configured on a per tenant basis. Concretely, we provide a technical case study based on Google App Engine (GAE), a cloud platform for building multitenant web applications. We contribute by showing: (a) how ContextJ, a context-oriented programming (COP) language, can be used with GAE, (b) the increase in flexibility and customizability of tenant-specific software variations using ContextJ as compared to Google’s dependency injection framework Guice, and (c) that the performance of using ContextJ is comparable to Guice. Based on these observations, we come to the conclusion that COP can be helpful for providing software variations in SaaS.Item Flexub: Dynamic Subscriptions for Publish/Subscribe Systems in MANETs(Springer Berlin Heidelberg, 2012) Bainomugisha, Engineer; Paridel, Koosha; Vallejos, Jorge; Berbers, Yolande; De Meuter, WolfgangCurrent publish/subscribe systems provide very limited support to modify subscriptions dynamically. Consequently, they cannot efficiently control the flow of events between publishers and subscribers, which may lead to unnecessary network traffic. In addition, it is not possible to automatically subscribe or unsubscribe to a service depending on certain context of use. This implies for developers to manually manage subscriptions (e.g., taking care of when to cancel or re-issue a subscription), which may result in inappropriate subscription states (e.g., subscriptions that are cancelled too late). In this paper, we propose the concept of dynamic subscription mechanisms that improves the expressiveness and flexibility of subscriptions. We introduce a new dimension to a subscription that allows a subscriber to express the flow of matched events, and when a new subscription can be (re)issued. We validate our claims for improved flexibility and expressiveness by providing language abstractions and a prototype implementation of a dynamic subscription mechanism framework called Flexub that supports a variation of subscription mechanisms. When compared to existing subscription models, our experiment results show that the support for dynamic subscription mechanisms greatly reduces network traffic of events sent from publishers to the subscribers. In addition, our approach reduces the workload on the subscriber side.