To confront the challenges opened-up by the rise of SOA, in the Eclipse OpenSmartCLIDE project we have developed a framework (a methodology and a platform) to aid software engineers in systematic and
more efficient (in terms of time, quality, defects, and process) reuse of services, when developing SOA-
based cloud applications.
In the following video, we present a use-case scenario of our platform that uses the Service Composition, Service Discovery, Service Creation, and Deployment components. Supposing that we want to get the Bitcoin price in USD at this moment, we could create a workflow that does exactly that.
We can take advantage of an existing service in order to get the Bitcoin price in Euro (Service Discovery), and create a service that changes the number of euros to USD (Service Creation). After having these two services we can create a workflow that connects them, so that we take the price in euro from the first one and we pass it to the second, to get the final value at the end (Service Composition). In the end, we can see the quality assessment of the created/used service or even of the workflow. Moreover, at the service level, we can also use some automated generated unit testing or use design patterns easier with the help of the appropriate extensions.
In more detail, each of the components that are being used in the video, and are part of OpenSmartCLIDE, are described in the flowing table in detail.
|The platform must be able to design SOA-based systems in drag ‘n drop manner to enable novice users to compose workflows, from deployed services or microservices. The composition of services and their visualization must rely on well-defined and -known standards or notations (e.g., UML, BPMN, etc.). In terms of reuse, this feature is the key for functional decomposition and the initial stage for identifying candidates for reuse.
|Workflow Quality Assessment
|The workflow (composition of services) is considered to represent the level of the system. Therefore, quality assessment at the level of the workflow must be facilitated. The platform must be able to assess the security and the maintainability of the workflow. In terms of reuse, it is of paramount importance of being able to monitor (in a high-level way) the quality of the target system, so as to accept reuse suggestions or decline them so as to develop from scratch a more high-quality level components’ solution (if not satisfactory).
|The platform must be able to support queries to external and internal records to identify services that can serve a given functionality. This feature is the heart of reuse in the Eclipse Open SmartCLIDE solution. The platform must be able to retrieve, store, classify, and recall services from: (a) open-source software; and (b) in-house repositories. These services must be recalled by functional relevance when requested by the workflow composition feature.
|The platform must provide a cloud-based IDE for developing services, if they cannot be reused. The IDE must provide support for managing a code repository, and seamlessly initialize a CI/CD process. The solution must be easy to use and hide the technical complexity of the aforementioned tools.
|Design Patterns Selection Assistant
|When developing services from scratch, the platform should support the decision-making of the software engineer in terms of object-oriented design. The system should provide some AI-based decision-support for instantiating GoF patterns, i.e., the most-known pattern catalogue. Other types of patterns, such as architectural patterns and security patterns will also be considered, but no instantiation mechanisms (i.e., code generation) will be offered.
|The platform must be able to provide AI-based support for testing. The platform must generate some (at least the basic) test cases for a service developed from scratch. The tests generated are in the form of Junit code.
|Service Quality Assessment
|The platform should be able to assess the quality of a software service. This service can either be a service developed from scratch or a service that has been discovered and cloned for modification in the Eclipse Theia project workspace (i.e., a local code repository). Similarly to the workflow level, the platform should assess security and maintainability. Since this feature is relevant only for the case of white-box reuse, reusability will also be assessed.
|The platform must be able to easily deploy and monitor both services and workflows. The deployment must rely on well-known and existing solutions, similar to service composition (technology reuse).