First of all, let me explain why I used the term Intelligence as a Service in my title. As you might know, the abbreviation IaaS is already being used for Infrastructure as a Service. Therefore, you won't come across ‘Intelligence as a Service’ as often as you might expect. While I was writing this article, I came across an article about AI (Artificial Intelligence) as a Service. In my perception, not all services in this blog include an ‘artificial’ part. Therefore, I decided to keep the title as it is.
Most of the solutions I will be writing about are currently being sold as PaaS (Platform as a Service), SaaS (Software as a Service) or BIaaS (Business Intelligence as a Service). In my opinion, the way these services are provided (often by only using an API) and the combined compute, intelligence and storage capacity, make them a special kind of cloud service. Business Intelligence as a Service might fit this context, but this term is often highly associated with management information.
In this article, you will discover which services are currently available and why you should consider implementing them in your app. Especially if your company is already working with a multi-app license, I think it is a great investment to discover new business potential. In most cases, I will name services from specific cloud providers as an example. This does not necessarily mean that this is the best provider for your business.
1. Artificial Intelligence : An interesting and sexy business case
Phenomena like AI (Artificial Intelligence) and ML (Machine Learning) are quite new to businesses, and not everyone inside your company will know what is currently possible when using these ‘new’ techniques. Answering business requests by responding with an AI or ML solution will create more awareness and potentially means a more innovative way of thinking. Already available data has the potential to manage processes more efficiently and eventually generate more profit as well as a higher level of customer satisfaction.
Short example; The management department asks you to think about a solution for the decreasing customer satisfaction with regards to the support ticket handling. One of your suggestions could be the implementation of an intelligent API which determines the sentiment of all incoming support tickets. You can use the result of this action to prioritize the tickets based on the customers mood instead of only the urgency dropdown which may be part of your default ticket template.
Of course, everything comes with a price. Most cloud solutions can be implemented for a quite low and, most important, predictable cost. Especially when you are only evaluating the added value of a service, a free key is often available. In order to create a simple showcase app, the combination between the well documented API's and the Mendix platform is a very powerful one.
Because of the (often) clear pay-per-usage constructions, it is doable to estimate the ROI accurately. In addition to that, most services can be cancelled at any moment. Together with the fast, innovative and down-to-earth solutions, implementing Intelligence as a Service is an interesting business case.
2. Easy to implement
In the paragraph above, I mentioned the ease of creating a new account and retrieving new keys. Most cloud providers offer these constructions, which makes it easy for your Business- and Technical Engineers to experiment and eventually implement the available services. In addition, most cloud providers (Amazon, IBM, Microsoft, etc.) are offering well documented Java SDK's which can be used in Mendix as well. Both Amazon and IBM already have connectors available in the Mendix App Store, which makes it even easier to implement. As an example, you can use the IBM Watson Connector suite to use the Conversation services without the need to write one single line of code yourself. You can find more information about the available connectors on the Mendix website.
Quite some services do not have a Mendix connector available at this moment. One of the challenges I ran into, was the wide variation of authentication methods. It can be a challenge to build one authentication flow for several scenarios, but building it will help you understand the inner working of the service. If you have the knowledge available to use a Java SDK instead, it can save you several hours when developing your prototype.
3. Scalable Innovation
Imagine a scenario in which your smart app is accepted by the business. A small group of people see the business potential and they ask for the implementation of this feature. After the production release, more and more users are using the feature. As I mentioned before, several services are working with a ‘requests-per-month’ license. Question is, can this become a problem? If the service is not responding, because we used up our license, this could unnecessarily affect the end user experience.
Like most cloud services, many AI services are highly scalable as well. From my experience, especially Amazon has a very well managed scaling mechanism. For example, you can choose to automatically scale your license up and down. In addition to that, it is also possible to choose between a variety of redundancy settings. When the data you’re processing has a high business criticality, you may want to choose a geo-redundant setup. In that situation, the service or data is available, even if a specific datacenter is down.
If you’re interested in using a service which is being offered by multiple vendors, it is advisable to take this in to consideration too when comparing the selected providers.
4. Empowering your IoT
If you’re part of an already innovative organization, it is possible that IoT is already on the development roadmap. In most cases, this data is being used as an event trigger or in dashboards. The raw data can be displayed as a chart while the most recent value is displayed as a dynamic number.
In most scenario’s, only the raw sensor data doesn’t tell you anything valuable. Therefore, you need to aggregate this data first. Several cloud providers provide solutions for exactly this purpose. Some examples are IBM Stream Computing, Microsoft Azure Stream Analytics and Amazon Kinesis Analytics.
Most of the time, the basic configuration is simple and could be accomplished within a day. First, you’ll define your source. For now, this will be your sensor endpoint (for example: Microsoft Event Hub, Amazon Kinesis and the IBM Event Hub). After that, you can use your SQL knowledge for aggregating the incoming data by writing a query. Because it is possible to configure multiple endpoints, you can setup your own Lambda architecture with both a hot and cold stream. If you want to read more about a Lambda architecture, you can use this article as a starting point.
Figure 1 An example of a Lambda Architecture Source: https://github.com/awantik/pyspark-tutorial/wiki/Data-Processing-Architectures
Short example; When using Microsoft Stream Analytics, you can setup a hopping window to achieve a constant and aggregated dataset. If you have a changing number of input events per time unit, your SQL query can take the average value from the last X minutes and save this every minute. In addition to that, you may want to store the raw data in a NoSQL database.
Figure 2 Hopping Window Source: https://msdn.microsoft.com/nl-nl/library/azure/dn835041.aspx
5. Ongoing Improvements
Last but not least, your solutions will continue to advance without adding one line of code. One of the AI fundamentals is the fact that it gets better by learning. More organizations are using general available AI API’s, and as a consequence the model will become more accurate over time. This causes that, for example, Speech-to-Text services become more accurate every month.
If you think that the general available AI services does not fit your needs, you can also choose to build the model yourself. In most cases, you can use Machine Learning services in order to achieve this goal. Understanding Machine Learning is a discipline on its own.
Recently, Microsoft published a promotion video in which they showcase their new anomaly detection for Live Video’s. These features aren’t available yet, but it gives you a brief insight in the future possibilities.
To conclude this all; just give it a try! According to Gartner, AI, ML and Intelligent Apps are some of the top 10 technology trends for 2017. Also, Mendix itself is focusing more on smart apps in the future. Several weeks ago, they published a great blog about the usage of IBM Watson Conversation in a fully automated chatbot. Definitely worth reading if you’re interested in using AI in one of your projects.
Hopefully you now have a broader understanding of the possibilities and available solutions involving AI. Want to know more about the technical implementation of such services? Please let us know in the comments.