Gerry Posted August 1, 2017 Posted August 1, 2017 INTEGRATION: Hornbill Open Integration Approach When I first conceived our Hornbill Platform I knew that the key to being successful was the ease in which it could be made to interoperate with other systems. In theory, the Hornbill Platform could be used to implement pretty much any business application with its many capabilities. However, for now at least, we have chosen to focus our go-to-market efforts on Collaboration, Service Management and Customer Management application areas. Any business system needs to be able to “play nice” with other systems, and not only should it work well but it should be easy to achieve comprehensive levels of integration without complexity. First of all, a little integration history. All systems have some form of API, everyone knows that, but APIs are generally not interoperable. In the enterprise world for example, an attempt by a working group sponsored by Microsoft to create a standard for exchanging information was created called SOAP, using XML technologies, specifically XML Schema to describe the information structure being exchanged. SOAP was adopted by Microsoft and Java SDKs and so the dream of seamless interoperability was being sold to the enterprise developers. Truth is though, the standard was too flexible, and too verbose in its representation, a classic outcome of a committee driven approach to standardise something. With the flexibility came interoperability issues as different systems took different approaches to represent data within the confines of the standard and it became clear that SOAP actually was not going to deliver on the promise of solving interoperability issues, it was actually going to create just as many. Since then, web technologies have really taken hold while browsers have never natively supported XML, instead a simple data representation scheme known as JSON (JavaScript Object Notation) which, along with REST has become the defacto standard for implementing API’s simply because its compact, easier to read and browsers support it natively. There are many variations of these schemes as well as some obscure schemes that use things like ASN.1 or other serializations so the integration landscape is not without its challenges. Now while we wanted to do as much of the heavy lifting as possible in terms of integrations so our customers don’t have to (see our iBridge for example), we also recognise that there will always be that one thing that we did not think of, integrating two systems always requires what I call “glue code” which is simple code that transforms a message from one format to another. So early on we adopted a strategy of providing a fully open and documented API for the Hornbill Platform and an open source integration approach. Every integration we build outside of our “everything is done for you” schemes are built and published as open-source projects under the Hornbill Community License, all projects we create are made available to our customers on GitHub, we fully support and maintain these projects, although our customers are also free to fork these projects and make them their own too. Here are some of the projects we have published with a brief description of their purpose dotNetApiLib – a library that makes integrating any .NET application with Hornbill simple and intuitive goApiLib – a library that makes talking to the Hornbill Platform easy from the Go Programming Language pythonApiLib – a library to use the Hornbill Platform API’s with Python phpApiLib – a library to enable you to integrate with the Hornbill Platform API from PHP goSWRequestImport - Supportworks Request Import Tool for Hornbill Service Manager written in Go goServiceNowRequestImporter – Import requests from a Servicenow instance into Hornbill Service Manager goDbAssetImport – A tool written in Go to import assets from a database source into Hornbill Service Manager CMDB goDb2HContactImport – A tool written in Go to import contacts from a database source into Hornbill goDb2HUserImport – A tool written in Go to import user accounts from a database into Hornbill goAzure2UserImport – A tool written in Go to import user accounts from Azure AD to Hornbill goLDAPUserImport – A tool written in Go to import user accounts from an LDAP source rPowerBIHornbillDataSources - Data Source scripts written in “R” that enable Power BI to use the Hornbill Reporting and Trend Engine APIs as data sources SCOrchHornbillIntegration – Runbooks that allows Microsoft System Center Orchestrator to integrate with Hornbill goApiScheduler – A simple tool written in Go that can be used to schedule the invocation of Hornbill APIs goHornbillCleaner – A tool to clear down test data in a Hornbill instance powershellHornbillAPIModule – A module that enables you to easily interact with your Hornbill Instance We are committed to providing a rich and diverse set of tools and integrations to enable our customers to gain the maximum value from using Hornbill in their organisations. All systems should be built to be interoperable but not all systems are built by people that understand this – I am pleased to say that at Hornbill we truly do understand this and embrace the idea of integrating with anything. 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now