Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Decouple BotManager and BotRuntime #1516

Closed
2 of 5 tasks
luhan2017 opened this issue Nov 6, 2019 · 6 comments
Closed
2 of 5 tasks

Decouple BotManager and BotRuntime #1516

luhan2017 opened this issue Nov 6, 2019 · 6 comments
Assignees
Labels
R8 Release 8 - March 16th, 2020 Type: Engineering

Comments

@luhan2017
Copy link
Contributor

luhan2017 commented Nov 6, 2019

Currently local bot runtime and bot manager are tightly coupled, Bot manager is another endpoint in bot runtime which accepts a post request from composer. The payload contains all the bot resource files, Composer saves it at a local tmp folder and Reload that new bot. Please refer to this doc to see more details. How to connect to BotRuntime

#483 is one issue which is caused by the current mechanisim.

We want to decouple the BotManager and BotRuntime and make BotManager a built in component in Composer.

Design Principles

  • Bot runtime should be a SDK bot template, which is deployable and runnable and independent which Composer.
  • Composer should start a bot by 1. copy the bot assets to ComposerDialogs folder. 2. just run a start script.

Design Doc

https://microsoft.sharepoint.com/:w:/t/ConversationalAI785/ET5w2rXKpldNvddO9447K3QBH9wfwbRPJM4DIGIRSUQHKg?e=rbymdb

BotManager

Implement BotManager within composer which have such functionalities:

  • Start a bot by endpoint and other parameters like secrects settings, returns a PID. needs to investigate the command line, for dotnet, dotnet clean & dotnet build & dotnet run & PID=$! should work.
  • Be able to start multiple bots and maintain the status. Using different endpoint.
  • Stop a bot by PID.
  • Check status of a bot. (Running, NotRuning)
  • List all bot status (for display)

BotManager maintains all the runtime status in Composer

BotName Bot Location EndPoint ProcessId Type(C#,JS,Others) Status

BotRuntime

Bot Runtime should be a stand alone SDK bot template.
BotRuntime will just follow the protocals and implemented a start script.

Exceptions

TBD, Need to figure out a way to catch the runtime exceptions and show that to user.

Bot Dashboard

Add another page in composer to show an overview of the Bot Runtime Dashboard.

@luhan2017 luhan2017 added the Needs-triage A new issue that require triage label Nov 6, 2019
@luhan2017 luhan2017 self-assigned this Nov 6, 2019
@luhan2017 luhan2017 added R7 Release 7 - December 10th, 2019 and removed Needs-triage A new issue that require triage labels Nov 6, 2019
@cwhitten
Copy link
Member

cwhitten commented Nov 6, 2019

@luhan2017 let's discuss the technical design and how this will map to the custom schema/custom runtime approach. We may not need a BotManager interface and want to understand concretely how this plays with our long term strategy.

@cwhitten
Copy link
Member

cwhitten commented Nov 7, 2019

@christopheranderson to provide some dotnet resources on process management

@cwhitten cwhitten added Type: Engineering R7 Release 7 - December 10th, 2019 and removed R7 Release 7 - December 10th, 2019 labels Nov 7, 2019
@hibrenda
Copy link
Contributor

hibrenda commented Nov 7, 2019

Decouple bot runtime item will be tracked here. so linked #883 #885 issues to this as well

@boydc2014
Copy link
Contributor

Follow up with today's discussion, here is the previous issues

@hibrenda hibrenda added the R8 Release 8 - March 16th, 2020 label Nov 13, 2019
@luhan2017
Copy link
Contributor Author

luhan2017 commented Nov 13, 2019

Follow up with today's discussion, here is the previous issues

More info in this PR #47
The issue in DotNet core dotnet/cli#7426

@boydc2014 , I am confused, seems the PR #47 already fixed the process can't be stopped issue. So we can just start and stop a bot by the mechanism in that PR, is this correct?

@hibrenda hibrenda removed the R7 Release 7 - December 10th, 2019 label Nov 14, 2019
@hibrenda
Copy link
Contributor

@sangwoohaan need your suggestion from UX experience . Attached the spec as below.
https://microsoft.sharepoint.com/:w:/t/ConversationalAI785/EfCWS6gMy_NEpOm8UAiQp3sB_1aEB-zH1Dz2MbFElzmasg?e=1Ln8BI

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
R8 Release 8 - March 16th, 2020 Type: Engineering
Projects
None yet
Development

No branches or pull requests

6 participants