Commit 4af61185 authored by Nagabhushan Mahadevan's avatar Nagabhushan Mahadevan
Browse files

minor edits

parent cbff7f73
Loading
Loading
Loading
Loading
+8 −8
Changes for README.md: 8 added lines, 8 removed lines.
Original line number Diff line number Diff line
# CAID-tools
The CAID-tools are a software-suite for tracking dependencies across different types of tools and storages. At the core is the depi-server which provides a protocol for viewing, adding and linking resources, reporting in updates in resources, etc. For the different supported tools there are user-interfaces (here implemented as vscode-extensions) and adapter/monitors that report in updates to the resources. The currently supported tools are `git`, `git-gsn` and `webgme`.
The CAID-tools are a software-suite for tracking dependencies across different types of tools and storages. At the core is the depi-server which provides a protocol for viewing, adding and linking resources (files, directories, models etc. in tools), reporting resource updates, etc. For each of the supported tools, there are user-interfaces (here implemented as vscode-extensions) and adapter/monitors that report resource updates. The currently supported tools are `git`, `git-gsn` and `webgme`.

In Depi, _Resources_ belong to a _Resource-Group_, and a _Resource-Group_ belongs to a _Tool_.
What exactly constitutes a _Resource-Group_ or a _Resource_ is specific to each individual _Tool_.
@@ -46,7 +46,7 @@ Visit `http://localhost:4000` from your browser.
### Docker Images
If you haven't already, [install docker](https://docs.docker.com/engine/install/ubuntu/) - this has been tested with `Docker version 25.0.3, build 4debf41` on `Ubuntu 22.04`.

The fasted way to get started is to use the monolithic docker image, `caid-tools`, that contains all the necessary back-end services for the provided example. For the user-interface you can either [install vscode](https://code.visualstudio.com/download) directly on your machine or use the `caid-front-end` docker image that is using [theia](https://theia-ide.org/) (a server/web-browser based version of vscode) and already prepared with the extensions. 
The fasted way to get started is to use the monolithic docker image, `caid-tools`, that contains all the necessary back-end services for the provided example. For the user-interface, you can either [install vscode](https://code.visualstudio.com/download) directly on your machine or use the `caid-front-end` docker image that is using [theia](https://theia-ide.org/) (a server/web-browser based version of vscode) and already prepared with the extensions. 

![Docker services](examples/images/docker-services.png)

@@ -61,11 +61,11 @@ The following services are running within the monolithic caid-tools container (s
- **git-monitor** is a small python server receiving webhook events from the git repositories and reports in the changes made to any git-resources in depi.
- **git-gsn-monitor** is similar to the git-monitor but instead of simply looking at the file changes, it builds up the models in memory and compares the ASTs between versions.
- **webgme-server** is a server for the metamodeling tool [WebGME](https://webgme.org/) that supports UML-like syntax for defining DSMLs such as SysML among other modeling languages.
- **webgme-monitor** small nodejs server receiving storage events from the webgme server. Just like the git based monitors it reports in any changes made to the, in this case webgme-resources, in depi.
- **webgme-monitor** is a small nodejs server receiving storage events from the webgme server. Just like the git based monitors it reports in any changes made to the, in this case webgme-resources, in depi.
- **gitea** is [a free, open source, git collaboration platform](https://about.gitea.com/) that hosts the git-repositories and manages the webhooks, etc.

### Front-end/User Interface
For the user interface you can either [install vscode](https://code.visualstudio.com/download) and then install the vscode extensions below (click link) or use the `caid-front-end` docker image below that is using [theia](https://theia-ide.org/) and already prepared with the extensions.
For the client user interface, you can either [install vscode](https://code.visualstudio.com/download) and then install the vscode extensions below (click link) or use the `caid-front-end` docker image below that is using [theia](https://theia-ide.org/) and already prepared with the extensions.

- [Depi Browser](vscode:extension/vu-isis.depi)
- [WebGME Client](vscode:extension/vu-isis.webgme-depi)
@@ -85,9 +85,9 @@ To install the extensions you can either [search for them from within vscode](ht

### Using the UI

Start out by cloning all the git-repositories that are part of this example. From the terminal in the bottom of the screen invoke the `clone_repos.sh` script. 
Start out by cloning all the git-repositories that are part of this example. From the terminal in the bottom of the screen, invoke the `clone_repos.sh` script. 
![Clone Repositories](examples/images/01-clone-repos.png)
This system consists of a system-model, modelled in webgme (where models are stored in a mongo-database), source code used by the blocks in the system-model, a few git-repositories with either test-scripts or generated data. Finally there is an assurance model modelled in GSN Assurance that is also stored under git (in the `ansr` folder in the `gsn` repository). However from a perspective of Depi, those files are managed slightly different than regular git files where instead of being treated as regular files - the resources are acutal interpreted models defined in the code.
This system consists of a system-model, modelled in webgme (where models are stored in a mongo-database), source code related to the blocks in the system-model, a few git-repositories with either test-scripts or generated data. Finally there is an assurance-model, modelled in GSN Assurance that is also stored under git (in the `ansr` folder in the `gsn` repository). However from Depi's perspective, these git-gsn files are managed slightly differently than regular git files where instead of being treated as regular files - the resources are acutal interpreted models defined in the code.

To view the current state of the example system press `Ctrl/Cmd + Shift + P` and start typing `Depi: Blackboard` and select the command. This will prompt you for a password to log into depi - the password for the `demo`-user is `123456`.
![Blackboard Command](examples/images/depi-blackboard-cmd.png)
@@ -99,12 +99,12 @@ To view the current state of the example system press `Ctrl/Cmd + Shift + P` and
#### Reveal Resources
With _Resources_ added to Depi, it is possible to navigate (granted the _Tool_ supports) to the actual implementation of that resource. For example, by selecting the Vehicle in the `webgme` _Resource Group_. 
![WebGME Reveal](examples/images/depi-blackboard-webgme.png)
Expanding the side-menu click the three lines to right-corner and then clicking the boxed arrow in the top right corner the Vehicle model is opened up in the WebGME model editor.
Expanding the side-menu, click the three lines to right-corner and then clicking the boxed arrow in the top right corner the Vehicle model is opened up in the WebGME model editor.
![WebGME Reveal](examples/images/webgme-model.png)
You can do the same thing for the git-based _Resources_ and if the repository is cloned locally it will open up the file in the vscode-editor (or expand and highlight the folder in the explorer).

#### Show evidence and dependency chain
With the `.gsn`-file opened in the editor presse `Ctrl/Cmd + Shift + P` and start typing `GSN: Graph View` and select the command. Expanded the tree and navigate to the `TestPlanner` solution node.
With the `.gsn`-file opened in the editor press `Ctrl/Cmd + Shift + P` and start typing `GSN: Graph View` and select the command. Expand the tree and navigate to the `TestPlanner` solution node.
![GSN Graph View](examples/images/02-gsn-graph-view.png)

Click on the `Show Dependency Tree` Button under the `State` section and the Depi Manager UI will opened up in a new tab displaying the