また、テキストコミュニケーションを行うBotも、ルールベースで構築できるBot Frameworkが用意された。Build 2016のデモでは、Botに対してピザをオーダーして配達してもらうということを行っていた。ルールを書くだけなので、ある程度の決まった処理しか行えない。しかし、オーダーなどの定型作業なら問題なく使えるだろう。もし、ルールに外れた入力があった場合は、コールセンターを呼び出して、人が対応するというように設定できる。
現在、Bot Frameworkは、Skype、LINE、Slack(これらのサービスは、Conversation Canvasesに対応)などが対応している(Skype Bot PlatformはBuild2016で発表された)。Bot Frameworkでは、ルールを記述するのに、C#、 Node.jsなどを利用することができる。Cognitive Servicesなどは、JSONでデータをサービスに送り込むことで、処理を返してくれる(今後JSON以外の言語もサポートされる予定)。そして、これらのクラウドサービスは、トランザクション数/月間の料金で利用できるようになっている。現状では、多くのサービスがプレビューということで、トランザクション数が少なければ無料で提供されている。例えば、Face APIなどは、1カ月3万トランザクション以下なら無料だ。1秒間に10トランザクションという頻度で利用する場合、1000トランザクションで1.5ドルとしている。
今後、クラウドは単なる仮想マシンではなくさまざまなインテリジェントなサービスを提供する
現状では、Bot Frameworkにしても、Cognitive Serveciesに関しても、まだまだ発展途上といえる。しかし、多くのアプリやウェブサービスで利用されることで、バックグランドに蓄積される知識ベースが洗練され、多くのユーザーが使えば使うほど精度が上がっていくだろう(もちろん、Microsoft側のアルゴリズムの機能アップも必要になる)。将来的には、Windows 10で利用されているアカウントと連携して、それぞれ個人のパーソナルデータやパーソナルカスタマイズのデータが蓄積されることで、各サービスの結果が個人で異なるようになるかもしれない。ここまで来れば、パーソナルデジタルアシスタント(PDA)が本当に実現するのだろう。
Microsoftとしては、Azure上で構築された各種サービスを利用してもらうことで、トランザクション料金を得ようとしているのだろう。各サービスごとに膨大なトランザクションが発生するため、パッケージソフトやハードウェアの販売と異なり、継続的に利益を得ることが出来る。また、開発者が企業が使い易いサービスを構築することで、Azure上でいい循環のエコシステムを構築することができるだろう。
モバイルファーストというよりもオープンを目指す
Nadella氏は、モバイルファーストをキーワードにしてはいるが、各種の発表を見ていると、オープンとクロスプラットフォームが大きな目的のように思える。Ballmer氏の時代はWindows以外は認めないという頑なな態度を表していた。だからこそ、iOS向けのOffice、Android版のCortanなどはリリース出来ない状況だったのだろう。また、オープンソースに関しても敵対視していたため、Microsoftが開発したソフトウェアをオープンソース化するということも夢のまた夢だった。
しかしNadella氏は、Windowsプラットフォーム自体が市場の中心ではなく、他のプラットフォームと共存していかなければ市場がないと思っているのだろう。だからこそ、iOS、Android用のOfficeやCortanaの提供を始めている。
単にMicrosoft製のアプリやサービスをiOSやAndroidに移植するだけでなく、各プラットフォームでのアプリ開発を容易にするために、Xamarinを買収した。開発ツールのVisual StudioでXamarinが提供されることで、1つのコードをiOS用、Android用、Windows用などに水平展開することができる。今までは、個々のプラットフォーム向けにプログラム開発が必要だった。このため、複数のプラットフォーム用のアプリを開発するにはコストも時間もかかった。しかし、Xamarinを利用すれば、各プラットフォームで.NET Frameworkを動かし、C#ベースでのアプリ開発を可能にする。100%同じコードを利用することはできないが、各プラットフォームに独自機能の部分、ユーザーインターフェース部分だけを書き換えれば、ビジネス ロジックをそのまま利用することができる。
将来的には、ユーザーインターフェースなどが絡まないビジネスロジック部分は共通化され、個々のプラットフォームに合わせてユーザーインターフェースだけを書けばよくなる。さらに、ある程度オートマチックにユーザーインターフェースなどを変更してくれる機能なども用意されるだろう。