Categories
Eclipse

Introducing MihiniIntroducing Mihini

About a month ago, Sierra Wireless proposed a new project under the umbrella of the M2M Industry Working Group that aims at delivering a crucial missing piece to the global architecture of the open source M2M stack this Group is trying to establish.

Mihini is a runtime technology that hides the complexity of the underlying hardware platform to a developer whose primary goal usually is pretty simple: connecting objects (power-meters, cars, digital photoframes, …) from the physical world to the Internet, therefore making their data available for consumption by web, mobile, or enterprise applications. Of course, sending data is not the only aspect of an M2M solution, and things such as being able to react to commands send from a server to the device, being able to remotely update an application, … are also important to the developer.

Mihini will allow to develop M2M applications by using the Lua programming language. We want the initial contribution to be something useful for the hackers and hobbyists community right from the beginning, by enabling M2M application development on prototyping platforms such as the BeagleBone and the RaspberryPi.

But in parallel of seeding Mihini with an initial set of features (interactions with physical ports of the system, communication using a GPRS/3G connection, …) that we think will increase the number of crazy DIY M2M solutions with Open Hardware platforms, we want to work on cleaning and establishing a solid API that addresses the recurrent pain points of M2M development. In particular, besides just enabling easy interaction with the physical inputs and outputs of a system, it is important to provide functionalities such as:

  • data management API, that allows to process data in a way that is independent from how it is being acquired from the physical devices, and from how it will eventually be transmitted on the wire. In an ideal world, reacting to the changes of a given input, consolidating its different states/values over a period of time, etc. should be more of a configuration process than writing what will very likely be boilerplate code.
  • application management API, that allows to remotely install, update and manage (stop, start, get the overall “health” by dumping some internal variables, …) applications on the field.
  • application settings management API, that allows a developer to code an application for which some parameters can be managed remotely.
  • etc.

Another kind of API that is very important when it comes to embedded/M2M frameworks is the one that third-party software can use to communicate with a running instance of the framework.
For that purpose, Mihini will expose a REST API for external applications such as (but not limited to) the Eclipse IDE to allow them to get some control on the framework in a simple manner (vs. using lower-level techniques such as e.g. RPC): what are the applications installed? how many of them are running? etc.
Besides allowing better IDE support, such an API enables the creation of administration GUIs (e.g. embedded web application run directly on the embedded device), batch provisioning tools, etc.

This diagram illustrates the high-level architecture of Mihini, and how it fits with Paho and Koneki.

.
If you are familiar with these two projects already, you’ll know that they both have a strong interest in Lua. Koneki is delivering an IDE for Lua, and Paho will soon provide an MQTT client written in Lua (currently available on Github) contributed by Andy Gelme.
Therefore it should be no surprise to you that Mihini applications will be developed using a Lua API: not only will it allow to leverage Koneki tooling and Paho communication libraries, but first and foremost we think that Lua is the best choice for developing M2M applications. It is easy to learn, easy to embed on constrained targets, and can interoperate with legacy C software very well (you might be interested in reading this excellent article from my Lua guru co-worker and future committer on Mihini, Fabien Fleutot). And there is also a pretty large community of Lua developers, with tons of available open source libraries ready to be reused! 🙂

More and more M2M at Eclipse!

You definitely should stay tuned, there is a lot to come regarding M2M in the next few weeks!
In particular, we will hold 4 webinars in September and October, we will deploy an M2M web portal on m2m.eclipse.org, … and of course we will create the Mihini project very soon, and start working on the initial contribution.

 

 

About a month ago, Sierra Wireless proposed a new project under the umbrella of the M2M Industry Working Group that aims at delivering a crucial missing piece to the global architecture of the open source M2M stack this Group is trying to establish.

Mihini is a runtime technology that hides the complexity of the underlying hardware platform to a developer whose primary goal usually is pretty simple: connecting objects (power-meters, cars, digital photoframes, …) from the physical world to the Internet, therefore making their data available for consumption by web, mobile, or enterprise applications. Of course, sending data is not the only aspect of an M2M solution, and things such as being able to react to commands send from a server to the device, being able to remotely update an application, … are also important to the developer.

Mihini will allow to develop M2M applications by using the Lua programming language. We want the initial contribution to be something useful for the hackers and hobbyists community right from the beginning, by enabling M2M application development on prototyping platforms such as the BeagleBone and the RaspberryPi.

But in parallel of seeding Mihini with an initial set of features (interactions with physical ports of the system, communication using a GPRS/3G connection, …) that we think will increase the number of crazy DIY M2M solutions with Open Hardware platforms, we want to work on cleaning and establishing a solid API that addresses the recurrent pain points of M2M development. In particular, besides just enabling easy interaction with the physical inputs and outputs of a system, it is important to provide functionalities such as:

  • data management API, that allows to process data in a way that is independent from how it is being acquired from the physical devices, and from how it will eventually be transmitted on the wire. In an ideal world, reacting to the changes of a given input, consolidating its different states/values over a period of time, etc. should be more of a configuration process than writing what will very likely be boilerplate code.
  • application management API, that allows to remotely install, update and manage (stop, start, get the overall “health” by dumping some internal variables, …) applications on the field.
  • application settings management API, that allows a developer to code an application for which some parameters can be managed remotely.
  • etc.

Another kind of API that is very important when it comes to embedded/M2M frameworks is the one that third-party software can use to communicate with a running instance of the framework.
For that purpose, Mihini will expose a REST API for external applications such as (but not limited to) the Eclipse IDE to allow them to get some control on the framework in a simple manner (vs. using lower-level techniques such as e.g. RPC): what are the applications installed? how many of them are running? etc.
Besides allowing better IDE support, such an API enables the creation of administration GUIs (e.g. embedded web application run directly on the embedded device), batch provisioning tools, etc.

This diagram illustrates the high-level architecture of Mihini, and how it fits with Paho and Koneki.

.
If you are familiar with these two projects already, you’ll know that they both have a strong interest in Lua. Koneki is delivering an IDE for Lua, and Paho will soon provide an MQTT client written in Lua (currently available on Github) contributed by Andy Gelme.
Therefore it should be no surprise to you that Mihini applications will be developed using a Lua API: not only will it allow to leverage Koneki tooling and Paho communication libraries, but first and foremost we think that Lua is the best choice for developing M2M applications. It is easy to learn, easy to embed on constrained targets, and can interoperate with legacy C software very well (you might be interested in reading this excellent article from my Lua guru co-worker and future committer on Mihini, Fabien Fleutot). And there is also a pretty large community of Lua developers, with tons of available open source libraries ready to be reused! 🙂

More and more M2M at Eclipse!

You definitely should stay tuned, there is a lot to come regarding M2M in the next few weeks!
In particular, we will hold 4 webinars in September and October, we will deploy an M2M web portal on m2m.eclipse.org, … and of course we will create the Mihini project very soon, and start working on the initial contribution.

 

 

Categories
Eclipse

Eclipse Day Toulouse 2012 – May 24, 2012 – Call for papersEclipse Day Toulouse 2012 – 24 mai 2012 – Appel à conférences

After the success of Eclipse Party 2011 last year, the Eclipse Foundation, Airbus, Obeo and Sierra Wireless invite you to Eclipse Day Toulouse, on May 24, 2012.

This year, we will have a full day event, with a particular focus on two topics for which Eclipse is an ecosystem of choice: embedded world, and Machine-to-Machine (M2M).

You should start thinking submitting your talk if you have interesting thoughts to share about:

  • Embedded & Modeling for embedded. Modeling technologies have a proven track record in terms of embedded and critical software development. Coupled with other tools and frameworks (ALM, requirements management, code analysis, …), they turn out to change the way software is being developed in the industry, and how it is being supported (usually for years, in e.g. the aircraft industry).
  • M2M & Internet of Things. According to analysts, there will literally be tens of billions of connected objects by the end of 2020! This proves to be a challenge in terms of new software engineering needs, of scalibility (Cloud computing and SaaS anyone? ;)), of management of these huge fleets of “objects” on the field… There are also many new use cases and business models around M2M and IoT that can, and will, benefit from Open Source ecosystems.

If you’d like to share an industrial use case, talk about a project you are working on, or anything related to these topics, you should submit your abstract by Apr. 15, 2012.

More information on the wiki page of the event…  and I am now looking forward to your proposals!

Photo credit: http://www.flickr.com/photos/benurs/5162576672Après le succès de l’Eclipse Party 2011, la Fondation Eclipse, Airbus, Obeo et Sierra Wireless vous invitent à participer à l’Eclipse Day Toulouse, le 24 mai 2012.

Cette année, l’évènement se déroulera sur une journée entière, et se focalisera plus particulièrement sur deux sujets pour lesquels Eclipse est une plateforme de premier choix : l’embarqué, et le Machine-to-Machine (M2M).
Aussi, nous vous invitons à soumettre dès aujourd’hui, vos propositions de sujets, en ciblant de préférence les thématiques suivantes:

  • Embarqué, et Modeling pour l’embarqué. Les approches MDA/MDD ont prouvé leur efficacité dans le domaine du développement de logiciel embarqué. Couplées à des outils de gestion des exigences, d’analyse de code, de simulation, … elles changent la donne dans le domaine du développement de logiciel industriel, et dans la manière dont ce logiciel est maintenu, souvent sur des périodes de plusieurs dizaines d’années.
  • M2M et Internet of Things. Les analystes s’accordent à dire que d’ici 2020, plusieurs dizaines de milliards d’objets seront connectés, plus ou moins indirectement, entre eux ! Cette perspective ouvre la porte à de nombreux défis en terme de développement, de scalabilité (qui a dit Cloud ? ;)), de gestion de flottes importantes “d’objets”… Ce sont aussi de nombreux business models jusqu’alors inaccessibles qui voient désormais le jour, et pour lesquels l’approche Open Source peut clairement rebattre les cartes.

Si vous souhaitez faire un retour d’expérience, présenter un projet sur lequel vous travaillez, ou quelque chose en relation avec ces sujets, nous attendons vos soumissions avant le 15 avril 2012.

Plus d’informations sur la page de wiki dédiée à l’évènement.

Crédit photo: http://www.flickr.com/photos/benurs/5162576672

Categories
Eclipse M2M

Machine-to-Machine contest at EclipseCon Europe!

In just about 10 days, EclipseCon Europe and its storm of great keynotes, awesome talks, and yummy frosty beverage will be all upon its lucky participants.
This year, two great programming contests will allow you to have fun doing what most of you do best: write code!

In this post, I am going to tell you a bit more about the Machine-to-Machine contest that Sierra Wireless has set up for you, in collaboration with freedroidz.

We have built a network of Arduino+Xbee routers that collect data out of sensors (temperature, ambient light, …) and a Lego Mindstorms, and send it to a NoSQL database (MongoDB, actually). Data is consolidated using MapReduce jobs (remember this EclipseCon US 2011 keynote?), and we want you to use all this information to build something innovative and interactive: smartphone application, augmented reality, cool data visualization… Unleash your creativity!
We also think that there are a few Eclipse technologies that you can bring into play to create something even cooler: BIRT charts, Nebula widgets, ECF XMPP provider to post notifications via Instant Messaging, …

The winner will get an iPad2 !

Simulated data is available if you want to start working on your application already. We will drop all the fake data just before the conference starts, and you will then have access to real, live data instead.
Also, keep looking at the contest documentation page to get the most up-to-date information. In particular, we are still polishing a few things regarding SMS interactions, and an RFID scanner that should allow you to come up with applications even more close to real-life use cases. Stay tuned!

For the record, here is how my desk looks like just now… 😀 My colleagues would certainly say it is just a little bit messier than usual, but…

Oh, and for all of you interested in geeky electronics stuff, Arduino, and Open Source Hardware, just don’t miss David Cuartielles keynote on Wednesday! But that’s a keynote, so you will be there anyway, right? 🙂