Community Application Editing (CAE) Services
Purpose
The Community Application Editor (CAE [1]) is used for modeling and generating widget-based, collaborative community Web applications. Based on a Web Engineering methodological approach, the services of CAE allow the design, model-based code generation and deployment of community tools running within a Layers Box. Thus, the CAE services offer cyclic development support for the complete application lifecycle, from design to deployment. Conceptually, it is an integrating part of the DevOpsUse lifecycle coined during the Learning Layers project duration [2] [3]. CAE is an important part of las2peer, as it assures rapid prototyping and compatibility between the different microservices implemented using the las2peer platform, as it is described on the las2peer framework page.
Description
CAE’s theoretical concept is based on methodological findings described in [2] and it represents an important part into building the scalable Layers infrastructure with respect to las2peer services. This is because using CAE, developers and non-technical members in communities of practice (e.g., employees or trainees in SMEs) can easily co-design applications composed from Web widgets as frontends and las2peer services in the backend using a modeling abstraction mechanism. Moreover, CAE ensures compatibility between different services and supports the orchestration of the various distributed las2peer nodes.
The focus in CAE is put on supporting CoPs (Communities of Practice) in the generation of community applications. CAE enables a cyclic process of collaborative modeling for the design of applications (frontends, services and their mashup) and live code editing for code refinements, followed by the code generation and deployment steps (c.f. Figure 1 [3]).
The architecture of the community applications is constructed with regard to the following three key aspects: RESTful microservice architecture back-end based on las2peer Web-services; Widget based frontends composed of multiple Web widgets; and finally NRT communication and collaboration support via the integration of collaboration frameworks such as Yjs [4].
Use Cases and Tool Support
The first step is the CoP identifying the need for a new application or the need to extend an existing application. All members of the community can be involved in this step. Requirements Bazaar can be used as a support platform for this social requirements engineering process. If the need for application development was identified, the modeling process begins. The process is split up into two phases, the first being the “collaborative application modeling” phase, where all members of a community are able to bring in their ideas by collaboratively modeling the application in CAE. The first phase then again can be roughly split up into first the refinement of the basic components the application should consist of, like which widgets and microservices should be created, and then defining their dependencies. When all members of the CoP working on the model are satisfied with the current state, the model is exported and the code generation process is started. Its outcome is a basic code framework reflecting the model. This code basis has then to be evaluated and compared to the requirements of the CoP and if they are fulfilled, the next phase of the modeling process starts. If not, the application and its model have to undergo an additional modeling phase, until they match the requirements. In the “code refinements” phase, members of the CoP experienced in the development of Web applications work collaboratively on the application’s source code, until it fully matches the needs of the community. Community members can preview live how the changes made by the developers will look like in the final application. This process can again be roughly split up into frontend (widget-related) work and back-end (microservice-related) work. In this phase, complex logic is implemented, which cannot be easily depicted in the application model itself. After this phase and eventual further iterations, the final application is ready to use and can be directly deployed in the Layers Box, at a custom URL.
The following points define the CAE implementation and its features:
- It is built upon SyncMeta, a novel framework for NRT collaborative (meta)modeling
- Can generate full-fledge widget-based Web applications
- Offers support during design, implementation and deployment of applications built for the Layers Box
- Helps in enforcing good development practices and up-to-date usage of las2peer microservices
- Can be used for collaborative model-based application design
- Features a collaborative code editor and live preview upon changes of the code (keeping track of the elements available in the model)
- Offers automatic deployment features using Docker and Jenkins for the generated applications
SyncMeta
SyncMeta [5] [6] [7] is a framework for near real-time collaborative (meta-)modeling. The framework enables the definition of the conceptual and visual aspects of a modeling language and allows generating model editors for these metamodels. The diagram editors used for modeling and metamodeling support synchronous, real-time collaborative creation of models. SyncMeta is built fully based on open source libraries, widely implemented protocols like XMPP and HTTP and open, well-supported formats like JSON and SVG. The SyncMeta framework implementation is offered as a widget-based application, where each widget offers a certain functionality (like modeling canvas, palette, awareness of remote edits, property editor, export scripting, etc.). The current version of SyncMeta is using our award-winning Yjs library for solving editing conflicts and managing the near real-time collaboration.
The CAE collaborative modeling can be leveraged by different stakeholders during the design phase of an information system. CAE services provide both non-technical users and software developers with an NRT collaborative editor for modeling and generating Web applications. In order to avoid end users perceiving parts of the model as too complicated or finding the representation not relevant or intuitive, SyncMeta was extended to reduce complexity of a model by only presenting relevant aspects. In the CAE specific case these are mostly considered to be HTML5 frontend elements, which are also reflected in the live preview functionality. Therefore, SyncMeta also offers the NRT collaborative definition of views through a metamodel-based approach and their usage in NRT collaborative modeling scenarios. The framework facilitates a collaborative, graphical definition of views on the metamodel layer. This allows metamodelers to redefine entities (e.g. objects and relationships of a metamodel) in custom viewpoints and then apply these viewpoints to the models resulting in customized views. More information is presented in the following slidedeck for [7], which has received the best paper award at the Advanced Information Systems Engineering (CAiSE) conference, Ljubljana, 2016:
Material
For detailed information on the CAE look and feel, please watch the following videos:
The following slidedeck gives more information related to the methodology used as a starting point in developing CAE [8]:
Links
Developers and Contributors
- Peter de Lange
- Petru Nicolaescu
- Thomas Winkler
- Jonas Koenning
References
- P. de Lange, P. Nicolaescu, M. Derntl, M. Jarke, and R. Klamma, “Community Application Editor: Collaborative Near Real-Time Modeling and Composition of Microservice-based Web Applications,” in Modellierung 2016 Workshopband, Karlsruhe, Germany, March 02-04, 2016, pp. 123–127.
- R. Klamma, I. Koren, P. Nicolaescu, D. Renzel, M. Kravčík, M. Shahriari, M. Derntl, G. Peffer, and R. Elferink, “DevOpsUse - Scaling Continuous Innovation,” Learning Layers Project, Deliverable D6.3/Report 4, 2015.
- P. de Lange, P. Nicolaescu, R. Klamma, and I. Koren, “DevOpsUse for Rapid Training of Agile Practices Within Undergraduate and Startup Communities,” in Adaptive and Adaptable Learning - 11th European Conference on Technology Enhanced Learning, EC-TEL 2016, Lyon, France, September 13-16, Berlin-Heidelberg, 2016, vol. 9891, pp. 570–574. DOI: 10.1007/978-3-319-45153-4_65
- P. Nicolaescu, K. Jahns, M. Derntl, and R. Klamma, “Near Real-Time Peer-to-Peer Shared Editing on Extensible Data Types,” in GROUP 2016, Sunibel, USA, November 13-16 (to appear), 2016, vol. 9891, pp. 570–574. DOI: 10.1145/2957276.2957310
- M. Derntl, S. Erdtmann, P. Nicolaescu, R. Klamma, and M. Jarke, “Echtzeitmetamodellierung im Web-Browser,” in Modellierung 2014, H.G. Fill, D. Karagiannis, and U. Reimer, Eds. Germany: Gesellschaft fur Informatik e.V., 2014, pp. 65–80.
- M. Derntl, P. Nicolaescu, S. Erdtmann, R. Klamma, and M. Jarke, “Near Real-Time Collaborative Conceptual Modeling on the Web,” in 34th International Conference on Conceptual Modeling (ER 2015), Cham, 2015, vol. 9381, pp. 344–357. DOI: 10.1007/978-3-319-25264-3_25
- P. Nicolaescu, M. Rosenstengel, M. Derntl, R. Klamma, and M. Jarke, “View-Based Near Real-Time Collaborative Modeling for Information Systems Engineering,” in Advanced Information Systems Engineering: CAISE 2016, Cham, 2016, vol. 9694, pp. 3–17. DOI: 10.1007/978-3-319-39696-5_1
- P. Nicolaescu and R. Klamma, “A Methodology and Tool Support for Widget-Based Web Application Development,” in Proceedings of the 15th International Conference on Engineering the Web in the Big Data Era - Volume 9114, New York, NY, USA, 2015, pp. 515–532 [Online]. Available at: http://dx.doi.org/10.1007/978-3-319-19890-3_33 DOI: 10.1007/978-3-319-19890-3_33