0
votes

Using MS Azure bot service, I would like to have the chatbot created using Java language to be hosted on Azure. Azure is giving three options for creating chatbot using Bot Service: bot service, function bot, and bot channels registrations. First two allow creating chatbot only using templates(c#, node js), but there is no Java available. The last one suggests having the chatbot registered using Azure Service, but hosted wherever.

Is there any way how I can have it done?

I would like to use the following technologies for development:

  • Microsoft Bot Framework
  • Microsoft Bot Framework REST APIs
  • Azure Bot Service
  • Azure App Service
  • Luis.ai
  • Java
2

2 Answers

3
votes

You have to be aware of the history and the architecture of the Bot Framework to understand what was / is currently / will be available.

In a few words:

Architecture

This is a good old picture, but interesting when you understand it:

architecture

The framework is based on several parts:

  • Your code (see language of development below), hosted in a web app because behind it is just an API. This part uses the (open-sourced) SDK to communicate with the Connector for example
  • The bot connector (not open-sourced, and hosted on Microsoft side), in charge of handling the communication with the "channels", that is to say where your bot will be exposed
  • The channels
  • Other things given your needs: custom API, cognitive services (for language comprehension with LUIS for example, etc)

These are what we could call the components. Those components need to run somewhere and you also have to give details about the channels you want to use, this is why we have the followings:

  • Azure Bot Service and Azure Functions bot are 2 resources that allow you to create everything you need to host your code. You use one or the other, but not both for one bot. The 1st one is for "classic" development, the 2nd one is if you are doing Azure Functions.
  • Bot Channel Registration is the mandatory resource used to setup your bot: in that resource you will indicate what is your code endpoint (so you will point to your Azure Bot Service or Azure Functions bot endpoint), and you will setup all the channels you need. There is also a quick tester provided.

Additional comment: Azure Bot Service and Azure Functions bot are a kind of "helper": at the beginning of the v3 framework, they were not existing and you could create a bot by creating directly an App Service + App Service Plan to host your code, and a Bot Channel Registration to define your channels.

Language of development

Up to version 3 (which was stable version up to September 2018), Bot Framework SDK was available in 2 languages: C# and Node.js

Version 4 of the SDK arrived in public in the beginning of 2018 and is switched to Stable version those days (at least for C# and js). It allows 4 languages of dev:

So for Java, have a look to the dedicated repository which is still in Preview but may change soon.