Abstract of 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.

Some relevant Key words: domain specific languages, Web 2.0 communities, end user programming, plugin architecture, smart devices, ubiquitous computing.

Our case study of smart devices helps to show the promise of separating functionality from the end user programming language in end user programming. Currently, web based artifacts are released together with a set of open APIs that can be used by their customers for building extensions. Our solution allows an efficient way of embedding these APIs into a customizable wed based end user programming environment. Based on this case study we note that:

  • The idea of adopting a plugin architecture introduces a tradeoff between (i) having a standardized and uniform access to different APIs and (ii) having a completely free set of methods. In the first case the realization of the Application Domains Library is simpler and portable. However, the introduction of domain dedicated features is more complex.
  • In the realized prototype we have considered the possibility of separating the functionality from the visualization. However, we could also embed in the APIs a set of metadata for the visualization of the instructions and this will result in a more uniform adoption across possible domain languages.
  • The end user programming language developed in this case study runs completely on the client side of the Web browser. By using JavaScript as the assembly language of the Web, the underlying compiler of the programming language compiles the visual language into the complete JavaScript application. Since JavaScript is an event-based programming language, the compiler is forced to map the visual programming language to an event-based language.
  • In our case study, the provided visual language consists of methods that can be treated as events and be triggered upon calling them; hence it is straightforward to map this language to an event-based language. However, in case of need for other programming paradigms, such as functional programming or data-flow programming, the mapping to an event-based language is more complex.
  • Server-side execution of end user developed applications creates a trade-off between flexibility and interactivity. Although server-side compilation and execution increases the flexibility on possible technologies and methods to be used for compilation and execution, it hampers interactivity during application execution, which is important in domains such as scientific simulations and games. A hybrid solution between client and server-side execution has to be chosen according to the domain.

In this paper we propose ULD, a Web-based architecture to separate the domain functionality from the programming language to support programming in the highly dynamic ecosystem of Web 2.0 communities. We devise a plugin architecture for an end user programming language to be used as a host language into which the functionality of multiple domains can be plugged. We apply our architecture in the context of smart devices. As a result, end users are provided with a visual programming environment to program different Lego Mindstorms devices. The visual programming interface is automatically generated from the device functionality and embedded into the programming environment. The adoption of the Web for end user programming opens new frontiers for collaborative developments. The developed case study will serve as a testbed where we will evaluate different collaborative end user programming tools and methods in order to assess the potential of end user programming in online social environments and understanding their challenges.

Full article available at the following link:

Supporting Domain-Specific Programming in Web 2.0: a Case Study of Smart Devices: https://doi.org/10.1109/ASWEC.2010.36

Read the paper at this link

Your help in sharing the idea is very welcome!

Cite this paper as:

N. Ahmadi, F. Lelli and M. Jazayeri Supporting Domain-Specific Programming in Web 2.0: a Case Study of Smart Devices, In proc of 21st Australian Software Engineering Conference (ASWEC), Auckland, New Zealand, April 2010

Related Article:

Supporting #domain Specific #programming in #Web 2.0: a #casestudy of #Smart Devices ( #IoT ). Click To Tweet

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.