SDV-Developer Console(DCO) integrates all necessary sources for software lifecycle management and thereby optimizes the complete process from development to release of software. Our core of DCO includes services for development, testing, simulations, release and lifecycle management of software. Hereby, SDV-DCOs mission is to automize as much as possible by using different concepts of re-usability and standardization by connecting different business roles along the software lifecycle on one source. As our open-source contribution, we focus on simulation of services with SDV DCO - it includes
- Developer Console UI
- Track Management
- Scenario Library
- New Simulation
SDV- DCO enables the user with advanced user interface to plan, prepare, execute and monitor simulations of scenarios – from vehicle & fleet behaviour to services for software defined vehicles. Everyone, can create scenarios as well as simulations of these scenarios, with integrating third-party solutions and services for instance simulators, virtual vehicle repositories or simulations analysis and monitoring tools.
- Vehicle Simulations
- Simulate a vehicle for test activity
- Simulate a vehicle for non-regression
- Simulate a fleet of vehicle (e.g. with unitary behavior e.g. overload)
- Simulates basic vehicle functionalities
- Remote Control: Simulate answers to remote orders
- Data collect: Simulate data collection about the car status
- OTA: Simulates the interactions with the OTA server
- Device Management: Handles the basic connectivity with backend
- xCall: e.g. simulate emergency call
- Test Result Analysis
- Defect Tracking
- Reporting
Note: The Eclipse-SDV DCO consists of four micro-services such as DCO-UI, Track-Management-Service, Scenario-Management-Service, and Gateway-Service. These micro-services have been consolidated into the DCO-Mono-repo, named "developer-console" to simplify the deployment process for open source developers, eliminating the need for multiple deployment steps.
There are some pre-requisites. You should install java 17, spring-graphql, maven, nextjs, graphql, docker and docker compose on your local machine before getting started.
Technology/Tools | Version |
---|---|
Java | 17 |
Spring-Boot | 3.1.0 |
spring-graphql | 1.2 or Above |
Maven | 3.8 or Above |
nextjs | 12.1.0 or Above |
GraphQL | 16.4.0 or Above |
Docker | 20.10.17 or Above |
Docker Compose | v2.10.2 or Above |
Please ensure that all above softwares and listed versions are installed/available on your machine and can verify using below commands.
git version
java --version
node --version
mvn --version
docker --version
docker compose version
If you have all required tools and softwares installed on your machine then you are ready to start application installation. 😎
Clone the repository using below command. Use gitlab token if required.
# git clone
git clone https://gitlab.eclipse.org/eclipse/dco/developer-console.git
#change working directory
cd developer-console
Note: If you do not have docker and docker compose on your machine or you are using Windows machine then below automation scripts/steps will not work as it is. In that case you have to build and install dco micro-services manually, and you have to refer below steps and screenshots to understand the configuration. Remember, Minio is a pre-requisite for scenario-library-service. Also, you will get postgres sql scripts under postgres directory.
In this step, we are going to build all four micro-services and install Minio server as it is pre-requisite for scenario-library-service.
Note: If you have already followed below steps, please make sure you are using latest images and executables. On sefer side, you can simply execute clean up commands before you start with build and deploy steps.
# Change execution permission of build shell script
chmod +x 10-build-script.sh
# Build apps and install Minio.
sh 10-build-script.sh
Step 2: Create a new bucket named, dco-scenario-library-service and generate access-key and secret-key in Minio
A) Access Minio using http://localhost:9001 url. The admin user is "minioadmin" and default password is "minioadmin"
B) Create a bucket with name "dco-scenario-library-service"
C) Generate access key and secret key. Save both key values for future use as we need to pass both values as arguments while running deployment script.
After creating and configuring the dco-scenario-library-service bucket, access key and secret key in Minio, run deploy script to run all dockerized micro-services on local machine using docker compose.
Step 3: Deploy - Run all micro-services including postgres database and pgadmin client for database.
# Change execution permission of deploy shell script
chmod +x 20-deploy-script.sh
# Execute deploy script by passing newly generated minio access key and secret key
sh 20-deploy-script.sh <access-key> <secrete-key>
After successful execution of deploy step 3, you can use below urls to access web-application, playground and swagger for REST APIs.
- Developer Console UI: http://localhost:3000 The username is "developer" and password is "password"
- dco-gateway playground for REST APIs: http://localhost:8080/playground The username is "developer" and password is "password"
- tracks-management-service swagger for REST APIs: http://localhost:8081/openapi/swagger-ui/index.html The username is "developer" and password is "password"
- scenario-library-service swagger for REST APIs: http://localhost:8082/openapi/swagger-ui/index.html The username is "developer" and password is "password"
- pgadmin client url: http://localhost:5050 The username is "admin@default.com" and password is "admin"
a) Then click on Add New Server option and add server name as local.
b) Click on connection tab and provide below details. Host name/ Address : postgres
port : 5432
Maintenance Database: postgres
Username : postgres
Password : postgres
c) Click on Save button. You will see below screen after successful connection.
The steps involved in utilizing the SDV-Developer Console (DCO), specifically the SDV-DCO, Simulation platform :
-
Access the Developer Console UI:
- Log in to the DCO platform using the provided credentials.
- The Developer Console UI serves as the central hub for managing the Simulation platform.
-
Create Scenarios:
- In the Scenario section of DCO, click the "New Scenario" button to create and manage various scenarios.
- These scenarios simulate different aspects of software behavior, such as vehicle and fleet behavior or services for software-defined vehicles.
- These scenarios serve as a foundation for simulations and testing.
-
Create Track (Using Vehicle ID/Information )
- Navigate Track Management
- Within the Developer Console UI, locate the Track section.
- This feature allows you to define and organize different tracks or projects associated with different vehicles that are part of the new scenarios.
-
Plan New Simulations:
- While creating simulation we have to define a scenario with a track.
- Once you have created scenarios, use DCO's advanced user interface to plan “New simulations” by using New simulation button .
- Define simulation parameters, specify the scenarios to be simulated, and configure other relevant settings.
- Launch the simulations.
-
Iterate and Refine:
- Based on the insights gained from the simulation results, iterate and refine your software development and lifecycle processes.
- Adjust scenarios, simulation parameters, and integrated services as necessary to enhance the overall software quality and performance.
-
Monitor/View Simulation:
- During the execution of simulations, monitor the progress and gather relevant data using the Simulation view provided by DCO.
- This enables you to assess the behavior and performance of the software throughout the simulated scenarios.
-
Prepare and Execute Simulations: - (To be Planned)
- Before executing simulations, DCO prepares the necessary resources and configurations.
- It leverages reusability and standardization concepts to optimize the process and reduce manual effort.
- DCO allows integration of third-party solutions and services, such as simulators, virtual vehicle repositories, or simulation analysis and monitoring tools.
-
Analyze and Evaluate Results: - (To be Planned)
- Once the simulations are complete, analyze the gathered data and evaluate the results.
- This analysis helps in understanding the impact of different scenarios on the software and identifying areas for improvement or optimization.
By following these steps, you can leverage the SDV-Developer Console (DCO) platform, specifically the Simulation activities for multiple scenarios involving vehicles.
Once you are done with the exploring of SDV DCO, you can use below steps to simply delete all configured and installed services and tools from your machine.
# Change execution permission of destroy shell script
chmod +x 30-destroy-script.sh
# To remove all apps.
sh 30-destroy-script.sh
For people who want to make changes to this project, please refer CONTRIBUTING.md file for details.
For license details, please refer LICENSE.md file
SDV DCO Architecture
© T-Systems