{"id":16906189,"url":"https://github.com/timkam/agent-based-process-orchestration-iot","last_synced_at":"2026-04-30T16:32:42.636Z","repository":{"id":44141294,"uuid":"188095109","full_name":"TimKam/agent-based-process-orchestration-iot","owner":"TimKam","description":"Proof-of-concept example: agent-based business process orchestration for IoT","archived":false,"fork":false,"pushed_at":"2022-12-09T03:50:59.000Z","size":126,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-13T06:56:02.953Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TimKam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-22T18:43:54.000Z","updated_at":"2019-05-27T14:51:19.000Z","dependencies_parsed_at":"2023-01-25T10:20:25.608Z","dependency_job_id":null,"html_url":"https://github.com/TimKam/agent-based-process-orchestration-iot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TimKam/agent-based-process-orchestration-iot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimKam%2Fagent-based-process-orchestration-iot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimKam%2Fagent-based-process-orchestration-iot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimKam%2Fagent-based-process-orchestration-iot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimKam%2Fagent-based-process-orchestration-iot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TimKam","download_url":"https://codeload.github.com/TimKam/agent-based-process-orchestration-iot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimKam%2Fagent-based-process-orchestration-iot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32470879,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T18:41:38.891Z","updated_at":"2026-04-30T16:32:42.601Z","avatar_url":"https://github.com/TimKam.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Agent-based Business Process Orchestration for IoT - Proof-of-Concept Example\nThis repository contains a proof-of-concept example implementation for the paper *Agent-based Business Process Orchestration for IoT*.\n\n## Scenario\nThe scenario the example covers deals with the semi-automatic procurement of wooden parts for specialist tools.\n\nThe process is triggered by an autonomous agent when the stock of this production input part is below a specified threshold.\nTo detect this, the agent can rely on a set of IoT sensors (cameras), that are *mocked* as an Node.js OM-I clients in this example.\nThe agent also uses heat and moisture sensors to inform the initial bid specification parameters accordingly.\nIt registers the bid specification with a business process execution engine (the specification triggers the process).\n\nThe bid specification is then reviewed and possibly enhanced by a human.\nSubsequently, the process execution engine starts a loop that automatically updates the bid specification based on the latest sensor data from storage and production environment, and then registers bids for the to-be-procured good with an external broker agent\\footnote{We assume the goods are hard to obtain and continuously placing bids is unlikely to cause over-procurement.}.\n\nIf the agent's sensors register an anomaly in the production line environment, the agent interprets the received sensor data to assess whether the bidding should be stopped. If so, the process is terminated.\n\n![Business Process View](./business_view.png)\n\nNote that we replaced the human task *Specify bid framework* with an automated task; absolving human tasks requires users to authenticate and open the GUI of the workflow engine.\nThis change enables you to run the full example straight from the command line.\n\n## Requirements\nThe the example requires the following software to be installed on your local machine:\n\n* [Java 8](https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html);\n\n* [Node.js](https://nodejs.org/en/);\n\n* [Docker](https://www.docker.com/).\n\nNote that in addition, the example interacts with a set of cloud applications:\n\n* [Signavio Workflow Accelerator](https://www.signavio.com/products/workflow-accelerator/), a *low code* business \nprocess execution engine;\n\n* [Google Spreadsheets](https://docs.google.com/spreadsheets/), which is used as a low-tech database.\n\nThe code/artifacts that have been deployed to these services are available in the [artifacts](./artifacts) folder of this repository.\n\n## Running the Example\nTo run the example, proceed as follows:\n\n1. Download the content of this repository, for example by executing ``git clone git@github.com:TimKam/agent-based-process-orchestration-iot.git``.\n\n2. Install the Node.js dependencies by executing ``npm install`` in the repository's root directory.\n\n3. Make sure Docker is running.\n\n4. Prepare the Docker container as follows:\n\n    a. Get the OM-I server's docker image:\n\n    ```\n    docker pull aaltoasia/o-mi\n    ```\n\n    b. Run the Docker image and expose it via your machine's IP address:\n\n    ```\n    docker run -d --net=host -p 127.0.0.1:8080:8080  aaltoasia/o-mi\n    ```\n\n    c. Get the Docker container's ID:\n\n    ```\n    docker ps -l\n    ```\n\n    Copy the container ID. We will refer to it in the instructions below as ``\u003ccontainer ID\u003e``.\n\n    d. Login to the container via the command line:\n\n    ```\n    docker exec -it \u003ccontainer ID\u003e bash\n    ```\n\n    e. Update the OM-I server's configuration:\n\n    ```\n    sed 's/\"call\"/\"call\", \"write\"/' conf/application.conf \u003e conf/application.conf.changed \u0026\u0026 mv conf/application.conf.changed conf/application.conf\n    ```\n\n    f. Check if the changes were actually saved to the file:\n    ```\n    cat conf/application.conf | grep -i allowRequestTypesForAll\n    ```\n\n    g. Leave the docker image by executing ``exit``.\n\n    h. Update the container image:\n\n    ```\n    docker commit \u003ccontainer ID\u003e aaltoasia/o-mi\n    ```\n\n    i. Restart the container:\n\n    ```\n    docker restart \u003ccontainer ID\u003e\n    ```\n\n5. Start the orchestrator by executing ``node orchestrator.js \u003cyour-docker-ip-address\u003e`` (replace ``\u003cyour-docker-ip-address\u003e`` with the IP address of your docker deamon) in the repository's root directory.\n\n6. Open the dashboard that visualizes the interaction between agents, IoT device mocks, and business process engine. The dashboard is available at [dashboard/index.html](./dashboard/index.html).\n\n## Authors\n\n* [Timotheus Kampik](https://scholar.google.se/citations?user=F8Z9QywAAAAJ) - [@TimKam](https://github.com/TimKam/)\n* [Avleen Malhi](https://scholar.google.se/citations?user=bMA1WcMAAAAJ)\n\n## Acknowledgements\nThis work was partially supported by the Wallenberg AI, Autonomous Systems and Software Program (WASP) funded by the Knut and Alice Wallenberg Foundation and partially funded by the German Federal Ministry of Education and Research (BMBF) within the Framework Concept ”Industrie 4.0 – Kollaborationen in dynamischen Wertschöpfungsnetzwerken (InKoWe)”.\n\n## License\nThis repository is made available under the [MIT license](./LICENSE).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimkam%2Fagent-based-process-orchestration-iot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimkam%2Fagent-based-process-orchestration-iot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimkam%2Fagent-based-process-orchestration-iot/lists"}