Monday, May 8, 2017
Intelligent Bot and Machine Learning
For now I have not blogged a lot about it. I think the main reason is that it is a subject by itself more complicated than IoT, and I find more difficult to think about what could be covered in the short space of a blog's post.
But ML is really changing the way we use computer to create a simpler and better life. And it has cross junctions with IoT.
Many are working on the theme of developing a smart computer interface able to understand what the user wants and to answer or accomplish the tasks requested.
We have all a SmartPhone, and many of us know Siri or Google Assistant, or Alexa, or Cortana.
The nice idea I want to put here is that you can add to the site of your organization or your company a "smart chat", a new channel, that can help to quickly get "some" answers, without the need of a human ready to answer.
You will find some interesting sites, like
offering you a platform to build a Chatbot, where language comprehension is based on ML techniques.
Oracle is working on developing its Intelligent Bot platform, that will be included and integrated in its PaaS; It should be called Intelligent Bot Cloud Services (IBCS) and available in really few months.
I'm working on these building blocks to define the architecture of the solution for some customers, and I think that soon I'll have some interesting things to show.
In addition, in the free time, I'm working to add a Chatbot interface to my HomeAuto solution, giving me full control of my Home, using Telegram or Facebook Messenger. It will take some time, but I'm excited to test and try.
And, as soon it will be available in Italy, I'll add Alexa Voice Control.
Yes, a lot of things. Stay tuned.
Ah, one last things: maybe this is a post written by my Bot. Who knows.
Tuesday, February 21, 2017
New Oracle Team USA Boat, IoT
"It’s estimated that every time the yacht and its crew set sail, they generate as much as a terabyte of data, much of it video, collected from as many as 1,000 sensors attached to myriad boat and body parts and fed into a powerful Oracle Exadata database for analysis.
For example, about 400 aerodynamic pressure sensors have been added to the boat’s wing sail. Those Airbus-developed sensors, called MEMs (micro-electro-mechanical systems), provide ORACLE TEAM USA with important information on the flow around the rigid sail under various conditions, helping the crew further optimize performance and maneuvers."
Thursday, January 12, 2017
Oracle IoT CS: BI Integration
But the Real Value comes from what you do on data coming from devices, on these messages.
Oracle IoT Cloud Service provides you an easy path to integrate with other Oracle Cloud Services.
For example, you can easily integrate with Oracle Business Intelligence Cloud Service.
In this video on YouTube, you can see a short demo on how to integrate with Oracle BICS and how to enable predictive mainteinance,
Wednesday, November 30, 2016
Oracle Developer Gateway
It’s cool.
Here, in a single point, you find access to all the resources you need to develop with Oracle Technologies
(btw: as you probably already know, I do work for Oracle!)
Monday, November 7, 2016
Oracle IoT Cloud Service: Assett Monitoring
Oracle IoT Cloud Service will offer some "mini SaaS" applications, almost ready to use.
The first available is the Assett Monitoring Application.
If you have access to one instance of Oracle IoT CS you can easily create your own instance of the Assett Monitoring Application and start configuring it.
Inside the application, you can define your Assett Types and associated Devices.
You can define Places on a Map and define the assumed location for these assetts.
Then you can start monitoring these assett and define Rules; for example rules that are fired when an assett leaves a floor or when some value coming from devices rises above a defined threshold.
A nice video showing what and how you can do all these things is available here:
Wednesday, June 8, 2016
Oracle IoT Cloud Service: concepts and introduction.
Probably this will become a rather long blog post. I hope interesting too.
First of all, let’s recall what we commonly mean with the name “Thing”.
A “Thing” is a real-world (physical) object, that has attached a device, with:
- computing capability
- sensors
- actuators
- connectivity to the network
The last capability probably is considered the most important. Without network connectivity we can call it “an embedded device”, but we don’t use the term “Thing”, in the sense of IoT.
Now, with more and more “devices” capable of computing capabilities and connectivity, the set of solutions available in the industrial and “Makers” world is rapidly increasing.
One example? The first one that comes to my mind: imagine a fleet of trucks transporting food that needs to be kept at low temperature. Or maybe medicines.
You want to be able to:
- control the temperature inside the truck (the fridge)
- control the location of the truck (Is the driver taking a too long nap?)
- verify if the fridge is open and for how long
- A “computing board"
- A GPS sensor
- A temperature sensor
- A 4G shield, to connect through 4G network and send messages.
Well, you may have many different requirements.
I’ll try to list some:
- Security is important
- You want to register “devices” in order to avoid that “a fake” truck drive you mad
- Receive in a reliable way messages from devices with data
- Analyze in real time these data, in order to identify quickly that something wrong is happening (temperature is rising above threshold) and send a SMS alert to the driver
- reset a board.
You can use Oracle IoT Cloud Service.
It is a Cloud Service provided by Oracle, as part of its PaaS platform, with many interesting functionalities for IoT.
With Oracle IoT CS you can develop applications, running on the device, in Java, C, NodeJS. In the rest of the post I’ll consider Java development.
First of all, with Oracle IoT CS, you can register a device. Only registered (and activated devices) can send messages to the IoT CS.
You can register a single device, using the Web UI, or register many devices with a batch, using a csv file.
When you register a device, you associate an ID and a “secret” to the device. These will be used to uniquely identify a device and secure the communication.
Next step is to install, on the device, the Device Client Library, provided by Oracle. You can download it from the Oracle site. At the end, you will need to put in the classpath a single JAR file ( device-library.jar).
Afterwards you will need to generate “a trusted assets store”, that will contain the keys and certificates needed to protect, with TLS, the communication between the device and IoT CS. The trusted assets store (a keystore generated with a provided Oracle tool) is private to the single device.
After having registered the device (or the set of devices) you will need to define a “Device Model”. A Device Model defines the interface between your “Things” and Oracle IoT CS. Again, you do this using Oracle IoT Cs Web UI (or, as we will see in another post, calling a REST API).
The Device Model defines: format of messages exchanged, actions (methods) that you can call on the “Thing”, format of Alert messages.
A Device can have more than one Device Model attached.
Next step is to give a name to the IoT application you’re creating. You will associate the Device Model to the application and in this way you will be able to monitor the flow of messages from the IoT CS console.
Another step is to develop, compile and test the Java application that will run on the board. It will use a set of classes provided by the Device Client Library. For example the “Device Virtualization API”, that abstracts and simplifies the interactions between the devices and IoT CS. Behind the scene, the communication is based on messages exchanged through REST calls, protected by TLS.
At this point you’re able to start sending messages to Oracle IoT CS and monitor the flows of messages using the Web UI.
In the picture you see that the IoT application ApplicationEdison1 has received 12 messages.
And you can imagine 1000 connected devices sending their messages. Each one identified by the device id and some other metadata.
Now, the Analytics part: you want to analyze the streams and identify when some conditions are met (for example: temperature greater than 10 degree (10 C)).
Oracle IoT gives you an already configured and integrated instance of Oracle Stream Explorer.
You can define a Source of Data, starting from a Device Model, and can define an “Exploration”. In this exploration you can specify filters conditions and therefore you will define an output stream that will give only device-id and timestamp for those messages where the condition is met (temperature > 10 )
Lastly, you can define an action, and send the output stream to a Java app that expose a REST service. This Java app will receive a JSON message for each situation where the threshold is crossed (T > 10) and can trigger what you want (for example, send an SMS).
The Java App can be hosted in Oracle Java Cloud Services or Oracle Application Container Cloud Services (based on Docker).
Ok… this is only a first introduction to concepts and what you can do with Oracle IoT CS.
One last thing: as you can see from my Linkedin profile, I work for Oracle. But I’m interested in many (iot) things and, as I have a degree in Physics, I’m always happy when I have time to play with measures and electronics.
Stay tuned.
Monday, June 6, 2016
Working with Oracle IoT Cloud Service (1)
I have created a simple prototype in Java, using Oracle IoT SDK for Java SE.
In this prototype, I use UPM library (upm_grove) to read a temperature sensor, and I send the temperature readings to my instance of Oracle IoT CS using the Device Virtualization API from the SDK.
Not difficult. You need only to carefully configure the keystore in order to have TLS correctly working. More details in the next blog post.
8/11/2016: I have added more blog's posts on Oracle IoT CS... have a look!