Monday, June 12, 2017

BizTalk Server 2016 Feature Update: Management REST APIs. Great, but not enough

When Microsoft releases the BizTalk Server 2016 Feature Pack, I was very interested in the new Management REST APIs. My interest was because years ago, I developed a similar solution in a big customer, building some WCF services that allows manage and deploy on remote BizTalk Server artifacts.


That solution, saves me and my customer, a lot of time and avoid a lot of errors, managing and deploying BizTalk Server applications in several environments.
Now, with this feature pack and the new Management REST APIs, Microsoft provides new functionallity to manage BizTalk Server applications through REST methods.


Prerequisites


To enable this new feature, we need:
  • Install Feature Pack 1 on our BizTalk Server.
  • Install IIS on our BizTalk Server (maybe you have already installed)

Enable the REST APIs

  1. Run Windows PowerShell as Administrator (Start menu, type PowerShell, right click and select Run as administrator)
  2. Browse to the BizTalk folder (C:\Program Files (x86)\Microsoft BizTalk Server 2016 or where you have installed BizTalk)
  3. Run the following command:

In my case, I used:


This allows you to access the Management Service through: http://localhost/BizTalkManagementService/swagger

If you want to install Operational Data Service, you need to execute the same command, changing the argument Service, instead of Management, you have to use OperationalData:


Functionallity


After enable the REST API, we can navigate to http://localhost/BizTalkManagementService/swagger and get the full list of availble operations. Also we can try them from this page:


The artifacts that we can manage through this API are (see here for the API reference), here is a sample list of features:

Agreements

  • Get all agreements
  • Create an agreement
  • Get agreements between two partners
  • Delete an agreement
  • Get agreement by name
  • Update an agreement
Hosts
  • Get Hosts
Orchestrations
  • Get all Orchestrations
  • Update Orchestration. Allows us to Bind/Unbind Ports, Host and Change Tracking Options
  • Get Specific Orchestration
  • Enlist Orchestration
  • Unenlist Orchestration
  • Start Orchestration
  • Stop Orchestration
Pipelines
  • GET Pipelines
  • Get Details about a specific Pipeline
  • Update Tracking and Description of a Pipeline
SendPorts
  • Get Sendports
  • Create a send port
  • Delete send port
  • Get Sendport
  • Update Sendport
  • Unenlist Sendport
  • Start Sendport
  • Stop Sendport
  • Enlist Sendport
Transforms
  • Get all maps
  • Get details about a specific transform
  • Update Transform. Only Description can be edited.


My opinion


The new Management REST APIs are a great new feature for BizTalk developers and administrators, but I miss some functionallities:

1) Host Instances: There isn't any method for Host Instances. It would be very useful if with this new REST APIs we could start and stop remotely the instances.

2) Bindings: It's possible to bind/unbind orchestrations and ports, but I think that it would be useful be able to import/export bindings remotely. 

3) Assemblies: Wow, this it's what I was expecting with this new Management REST APIs and what I developed years ago, but there aren't any method that allow you to deploy remotely assemblies.

I need to investigate and do some more tests, but this is great step for the BizTalk management. Only I hope that in next releases, more complex functionallities will be added.


2 comments: