Azure Bot Service

In diesem Blogpost berichte ich über den Azure Bot Service. Bei den E-Days wurde ein Vortrag über die Azure Übersicht gehalten, wo dieser Service erwähnt wurde. 

Was ist ein Bot?

Ein Bot ist eine Software, die für bestimmte Aufgaben programmiert wurde.Diese Bots sind automatisiert, d.h. sie arbeiten nach Anleitung, ohne vom Benutzer gestartet zu werden. Das Nutzerverhalten wird oft von Bots nachgeahmt oder ersetzt. Sie führen auch häufig sich wiederholende Aufgaben aus, die sie viel schneller erledigen als Menschen.

Bots arbeiten im Allgemeinen in einem Netzwerk. Über die Hälfte des Internetverkehrs besteht aus Bots, die Inhalte analysieren, mit Webseiten interagieren, mit Benutzern chatten oder nach Angriffsziele suchen. Bestimmte Bots sind sehr nützlich und spielen eine große Rolle, wie z.B. Suchmaschinen-Bots bei der Indizierung für die Suche, oder Kundendienst-Bots, die Benutzer unterstützen. Bots können auch etwas Schlechtes sein. Sie können so programmiert werden, um in Benutzerkonten einzudringen, das Web nach Kontaktinformationen zum senden von Spam abzusuchen oder andere böswillige Tätigkeiten auszuführen. 

Was ist nun ein Bot Service?

Der Azure Bot Service ist ein Service im Cloud-Plattform “Azure”, mit der man Bots verwalten, deployen und hosten kann und Channels für sie verfügbar macht. Ein Channel ist eine Verbindung zwischen Kommunikationsanwendungen und einem Bot. Ein bei Azure registrierter Bot verwendet Kanäle, um die Kommunikation mit Benutzern zu erleichtern. Man kann einen Bot so konfigurieren, dass er sich mit einem der Standardkanäle wie Alexa, Facebook Messenger und Slack verbindet. Diese Bots können danach gebraucht werden um z.B. mit Benutzer zu interagieren, sei es durch Text, Grafiken, Sprache usw. 

Der Bot Framework Service, was ein Component des Azure Bot Service ist, sendet Informationen zwischen der mit dem Bot verbundenen App des Benutzers und dem Bot. Jeder Channel kann zusätzliche Informationen in die gesendeten Aktivitäten aufnehmen. Vor der Erstellung von Bots ist es wichtig zu verstehen, wie ein Bot activity objects verwendet, um mit seinen Benutzern zu kommunizieren.

Dieses Diagramm zeigt zwei activity types, ConversationUpdate und Message, die ausgetauscht werden können, wenn ein Benutzer mit einem einfachen Echo-Bot kommuniziert.

Der Bot Framework Service sendet ein ConversationUpdate, wenn ein neuer Benutzer die Konversation beitritt. Beim Starten einer Konversation werden hier zwei ConversationUpdate activities ausgeführt (der Benutzer und der Bot). Damit man diese beide activities unterscheiden kann, wird noch mitgegeben, wer genau die Konversation beitritt (user joins … bot joins …). 

Dann gibt es noch den Microsoft Bot Framework, die vom Azure Bot Service bereitgestellt wird und eine integrierte Umgebung für das Bot Development ist. Sie ist nicht mit Bot Framework Service zu verwechseln.

MS Bot Framework – besteht aus einem Open-Source-SDK und Tools für die End-to-End Bot Development.

Azure Bot Services – eine Cloud-Plattform, auf der Bots gehostet werden und einen bei der Verwaltung, Verbindung und Bereitstellung des Bots über Geräte und Channels unterstützt.

Bot Framework Service – ein Component von Azure Bot Service, die für das Senden der Informationen zwischen der App und dem Channel verantwortlich ist.

Entwickelt man nun z.B. ein Chatbot mit Microsoft Bot Framework wird die Chatbog Logik gekapselt und durch eine API offengelegt, die von einem externen Kanal wie z.B. eine Mobile App genutzt wird. Da es auf Azure Bot Service gehostet wird, ist es für den Chatbot einfacher, über andere Kanäle wie Slack, Facebook, Skype, Twilio und andere genutzt zu werden.