Supporting Domain-Specific Programming in Web 2.0: A Case Study of Smart Devices

Web 2.0 communities emerge regularly with the growing need for domain-specific programming over Web APIs. Even though Web mashups provide access to Web APIs, they ignore domain-specific programming needs. On the other hand, developing domain-specific languages (DSLs) is costly and not feasible for such ad hoc communities. We propose User Language Domain (ULD): an intermediate Web-based architecture using a domain-specific embedded languages approach that reduces the cost of DSL development to plugging the Web APIs into a host end user programming language. We have implemented the proposed architecture in the context of smart devices, where we plug the functionality of different Lego Mindstorms devices into a Web-based visual programming language. We expect that several domains, such as smart homes or wearable computers can use the ULD architecture to reduce development effort.

[1]  Paul Hudak,et al.  Building domain-specific embedded languages , 1996, CSUR.

[2]  Alan F. Blackwell,et al.  AutoHAN: an architecture for programming the home , 2001, Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587).

[3]  T. V. Raman,et al.  Toward 2W, beyond web 2.0 , 2009, CACM.

[4]  Tim O'Reilly,et al.  What is Web 2.0: Design Patterns and Business Models for the Next Generation of Software , 2007 .

[5]  Jeffrey Nichols,et al.  End-user programming of mashups with vegemite , 2009, IUI.

[6]  Jason I. Hong,et al.  Marmite: end-user programming for the web , 2006, CHI EA '06.

[7]  Caitlin Kelleher,et al.  Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers , 2005, CSUR.

[8]  Raymond Yee Pro Web 2.0 Mashups: Remixing Data and Web Services , 2008 .

[9]  Stefanie N. Lindstaedt,et al.  From domain modeling to collaborative domain construction , 1995, Symposium on Designing Interactive Systems.

[10]  Jason I. Hong,et al.  Marmite: Towards End-User Programming for the Web , 2007, IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC 2007).

[11]  A. Blackwell,et al.  Towards Ubiquitous End-User Programming , 2003 .

[12]  Yanbo Han,et al.  Mashroom: end-user mashup programming using nested tables , 2009, WWW '09.

[13]  Gerhard Fischer,et al.  Metadesign: Guidelines for Supporting Domain Experts in Software Development , 2009, IEEE Software.

[14]  Cesare Pautasso,et al.  The Tiny Instrument Element , 2009, GPC.

[15]  James H. Aylor,et al.  Computer for the 21st Century , 1999, Computer.

[16]  E. Michael Maximilien,et al.  An Online Platform for Web APIs and Service Mashups , 2008, IEEE Internet Computing.

[17]  Salvatore Orlando,et al.  The many faces of the integration of instruments and the grid , 2007, Int. J. Web Grid Serv..

[18]  Marwan Sabbouh,et al.  Web mashup scripting language , 2007, WWW '07.

[19]  Gregory D. Abowd,et al.  CAMP: A Magnetic Poetry Interface for End-User Programming of Capture Applications for the Home , 2004, UbiComp.

[20]  Bonnie A. Nardi,et al.  A Small Matter of Programming: Perspectives on End User Computing , 1993 .

[21]  Pearl Brereton,et al.  Service-based software: the future for flexible software , 2000, Proceedings Seventh Asia-Pacific Software Engeering Conference. APSEC 2000.

[22]  M Mernik,et al.  When and how to develop domain-specific languages , 2005, CSUR.

[23]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

[24]  Gerhard Fischer,et al.  DOMAIN-ORIENTED DESIGN ENVIRONMENTS: SUPPORTING INDIVIDUAL AND SOCIAL CREATIVITY , 1998 .