SPLASH WorkshopsPub Date : 2011-10-23DOI: 10.1145/2095050.2095088
Alexandru Sorici, O. Boissier, Gauthier Picard, Andrea Santi
{"title":"Exploiting the JaCaMo framework for realising an adaptive room governance application","authors":"Alexandru Sorici, O. Boissier, Gauthier Picard, Andrea Santi","doi":"10.1145/2095050.2095088","DOIUrl":"https://doi.org/10.1145/2095050.2095088","url":null,"abstract":"Ambient Intelligent (AmI) applications are often meant to be used in complex and highly dynamic environments and are characterized by features such as context-awareness, personalisation, adaptivity and anticipation of user's desires. In this demo we focus on how the use of the high level of abstraction provided by multi agent-oriented technologies and related programming languages - and in particular of the ones rooted on a strong notion of agency - can ease the conceiving and realisation of AmI applications exhibiting such features. For doing this we present here an adaptive governance application, realised using the JaCaMo framework, for the dynamic management and allocation of rooms in the context of a smart co-working space.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116529041","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
SPLASH WorkshopsPub Date : 2011-10-23DOI: 10.1145/2095050.2095079
D. Harel, Assaf Marron, G. Wiener, Gera Weiss
{"title":"Behavioral programming, decentralized control, and multiple time scales","authors":"D. Harel, Assaf Marron, G. Wiener, Gera Weiss","doi":"10.1145/2095050.2095079","DOIUrl":"https://doi.org/10.1145/2095050.2095079","url":null,"abstract":"Behavioral programming is a recently proposed approach for non-intrusive incremental software development. We propose that behavioral programming concepts, such as behavioral decomposition, synchronized execution of independent behaviors, and event blocking, can help in the incremental and natural coding of complex decentralized systems, complementing actor-oriented and agent-oriented approaches. We also contribute to the existing research on behavioral programming a method for coordinating behaviorally-programmed components which, due to different time scales or interaction with the external environment, cannot synchronize and thus cannot employ event blocking. We show that the resulting decentralized system retains many of the advantages present in a purely behavioral, fully synchronized system.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122574532","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
SPLASH WorkshopsPub Date : 2011-10-23DOI: 10.1145/2095050.2095054
D. Abler, C. Crichton, James Welch, J. Davies, Steve Harris
{"title":"Models for forms","authors":"D. Abler, C. Crichton, James Welch, J. Davies, Steve Harris","doi":"10.1145/2095050.2095054","DOIUrl":"https://doi.org/10.1145/2095050.2095054","url":null,"abstract":"To make reliable, safe, and effective use of data outside the context of its collection, we require an adequate understanding of its meaning. In data-intensive science, as in many other applications of computing, this necessitates the association of each item of data with complex, detailed metadata. The most important, most useful piece of metadata is often a description of the form used in data acquisition. This paper discusses, with examples, the requirements for standard metamodels or languages for forms, sufficient for the automatic association of form data with a computable description of its semantics, and also for the automatic generation of form structures and completion workflows. It explains how form models in specific domains can be used to facilitate data sharing, and to improve data quality, and semantic interoperability.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122148098","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
SPLASH WorkshopsPub Date : 2011-10-23DOI: 10.1145/2095050.2095059
C. Petitpierre
{"title":"Bottom up creation of a DSL using templates and JSON","authors":"C. Petitpierre","doi":"10.1145/2095050.2095059","DOIUrl":"https://doi.org/10.1145/2095050.2095059","url":null,"abstract":"This paper proposes a concept and a workbench that allow developers to devise various kinds of applications with the help of templates. The workbench supports the development from the creation of the templates up to the (automatic) generation of a DSL (Domain Specific Language), providing developers with a bottom up support that mirrors the top down MDE (Model Driven Engineering) attempt to bolster application development.\u0000 Unlike usual RAD (Rapid Application Development) tools or wizards embedded in IDEs, the tool we propose is generic and independent of any platform (but of the IDE). By conception, it automatically takes into account the modifications and the new components into the subsequent phases of the development. These components are instantiated under the control of a specification structure (JSON objects, Javascript Standard Object Notation) from which the DSL and the corresponding compiler can be generated. The DSL can be used to extend the application, as well as to develop other applications that require similar presentations and operations.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130730514","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
SPLASH WorkshopsPub Date : 2011-10-23DOI: 10.1145/2095050.2095058
Christian Schäfer, T. Kuhn, M. Trapp
{"title":"A pattern-based approach to DSL development","authors":"Christian Schäfer, T. Kuhn, M. Trapp","doi":"10.1145/2095050.2095058","DOIUrl":"https://doi.org/10.1145/2095050.2095058","url":null,"abstract":"Tool support for the development of Domain-specific Languages (DSLs) is continuously increasing. This reduces implementation effort for DSLs and enables the development of rather complex languages within reasonable amounts of time. However, the lack of commonly agreed and applied language engineering processes, many times turns DSL development into a set of creative activities, whose outcomes depend on the experience of the developers involved. Consequently, outcomes of language engineering activities are unpredictable with respect to their quality, and are often not maintainable either. We have therefore developed an approach that transfers the concept of architecture and design patterns from software engineering to language development. In this paper, we propose this approach and evaluate its applicability in a case study.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127391054","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
SPLASH WorkshopsPub Date : 2011-10-23DOI: 10.1145/2095050.2095074
Eric C. Reed, Nicholas Chen, Ralph E. Johnson
{"title":"Expressing pipeline parallelism using TBB constructs: a case study on what works and what doesn't","authors":"Eric C. Reed, Nicholas Chen, Ralph E. Johnson","doi":"10.1145/2095050.2095074","DOIUrl":"https://doi.org/10.1145/2095050.2095074","url":null,"abstract":"Task-based libraries such as Intel's Threading Building Blocks (TBB) provide higher levels of abstraction than threads for parallel programming. Work remains, however, to determine how straightforward it is to use these libraries to express various patterns of parallelism. This case study focuses on a particular pattern: pipeline parallelism. We attempted to transform three representative pipeline applications - content-based image retrieval, compression and video encoding - to use the pipeline constructs in TBB. We successfully converted two of the three applications. In the successful cases we discuss our transformation process and contrast the expressivity and performance of our implementations to existing Pthreads versions; in the unsuccessful case, we detail what the challenges were and propose possible solutions.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127464260","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
SPLASH WorkshopsPub Date : 2011-10-23DOI: 10.1145/2095050.2095102
Andreas Sewe, J. Jochem, M. Mezini
{"title":"Next in line, please!: exploiting the indirect benefits of inlining by accurately predicting further inlining","authors":"Andreas Sewe, J. Jochem, M. Mezini","doi":"10.1145/2095050.2095102","DOIUrl":"https://doi.org/10.1145/2095050.2095102","url":null,"abstract":"Inlining is an important optimization that can lead to significant runtime improvements. When deciding whether or not to inline a method call, a virtual machine has to weigh an increase in compile time against the expected decrease in program time. To estimate the latter, however, state-of-the-art heuristics only use information local to the call-site in question. But inlining is a powerful enabling optimization; by eliminating the actual call it not only offers an obvious direct benefit but also indirect benefits, as information about the method's arguments is propagated from caller to callee. One such indirect benefit is the elimination of guards in case the callee inlines a method called on one of its arguments. In this paper, we show how to enhance an inlining heuristic by accurately predicting where this further inlining occurs--and where not. To do so, we only use information readily available to many virtual machines: the program's dynamic call graph. An implementation based on Jikes RVM demonstrates that this information can be used to successfully exploit inlining's indirect benefits while at the same time reducing compilation effort.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133000694","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
SPLASH WorkshopsPub Date : 2011-10-23DOI: 10.1145/2095050.2095056
Hyun Cho, J. Gray
{"title":"Design patterns for metamodels","authors":"Hyun Cho, J. Gray","doi":"10.1145/2095050.2095056","DOIUrl":"https://doi.org/10.1145/2095050.2095056","url":null,"abstract":"A metamodel is used to define the abstract syntax (i.e., entities, attributes, and relations) of a Domain-Specific Modeling Language (DSML). In addition, a metamodel also defines constraints and static semantics that provide additional information about the modeling language beyond the abstract syntax. In many cases, the specification of a new metamodel is highly dependent on the designer's background and experiences. Thus, metamodel designs often differ from designer to designer, even for recurring design problems (i.e., there is more than one way to specify a modeling language with a metamodel). The quality of a metamodel design may also vary according to the designer's domain knowledge and modeling language expertise. To provide consistent solutions for recurring metamodel design issues, design patterns applied to metamodels may offer key insights, especially to new language designers who have less experience. In this paper, we motivate the need for design patterns for metamodels and provide a few examples of the concept.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115508860","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
SPLASH WorkshopsPub Date : 2011-10-23DOI: 10.1145/2095050.2095064
Ajith Ranabahu, E. M. Maximilien, A. Sheth, K. Thirunarayan
{"title":"A domain specific language for enterprise grade cloud-mobile hybrid applications","authors":"Ajith Ranabahu, E. M. Maximilien, A. Sheth, K. Thirunarayan","doi":"10.1145/2095050.2095064","DOIUrl":"https://doi.org/10.1145/2095050.2095064","url":null,"abstract":"Cloud computing has changed the technology landscape by offering flexible and economical computing resources to the masses. However, vendor lock-in makes the migration of applications and data across clouds an expensive proposition. The lock-in is especially serious when considering the new technology trend of combining cloud with mobile devices.\u0000 In this paper, we present a domain specific language (DSL) that is purposely created for generating hybrid applications spanning across mobile devices as well as computing clouds. We propose a model-driven development process that makes use of a DSL to provide sufficient programming abstractions over both cloud and mobile features. We describe the underlying domain modeling strategy as well as the details of our language and the tools supporting our approach.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125144843","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
SPLASH WorkshopsPub Date : 2011-10-23DOI: 10.1145/2095050.2095080
Andi Bejleri, Andrew D. H. Farrell, P. Goldsack
{"title":"Cloudscape: language support to coordinate and control distributed applications in the cloud","authors":"Andi Bejleri, Andrew D. H. Farrell, P. Goldsack","doi":"10.1145/2095050.2095080","DOIUrl":"https://doi.org/10.1145/2095050.2095080","url":null,"abstract":"Cloud Computing is an innovative computing proposal, which key feature is the ease and effectiveness of providing a service. There are a number of challenges that a management system for the Cloud will need to address including: scale, reliability (fault-handling and high availability), security and service heterogeneity, to achieve effectiveness.\u0000 This paper proposes an agent-oriented language, called CLOUDSCAPE, to address coordination and control of components in a distributed computation to provide reliability and scalability of service in the context of the Cloud. Agents are modeled as objects extended with transitions and dependencies to describe the lifecycle state machines of components and constraints between lifecycle states. The problem context is further extended with component failure and dynamic addition of new components. The practical utility and effectiveness of this system is illustrated through a series of real-world examples. We then define a formal model of the language and prove that the operational semantics of the language holds a linear consistent shared memory property.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124071582","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}