|
Lines 45-50
Link Here
|
| 45 |
margin-left: 25px; |
45 |
margin-left: 25px; |
| 46 |
margin-bottom: 5px; |
46 |
margin-bottom: 5px; |
| 47 |
} |
47 |
} |
|
|
48 |
|
| 49 |
.archiBlock { |
| 50 |
font-family: sans-serif; |
| 51 |
font-variant: small-caps; |
| 52 |
color: #FFF; |
| 53 |
padding: 5px; |
| 54 |
margin-bottom: 0.8em; |
| 55 |
margin-top: 1em; |
| 56 |
display: inline-block; |
| 57 |
border: solid 3px; |
| 58 |
display: inline-block; |
| 59 |
} |
| 60 |
|
| 61 |
#embdd { |
| 62 |
background-color: #A48FC0; |
| 63 |
border-color: #62457C; |
| 64 |
} |
| 65 |
|
| 66 |
#protocols { |
| 67 |
background-color: #51BBCE; |
| 68 |
border-color: #008498; |
| 69 |
} |
| 70 |
|
| 71 |
#server { |
| 72 |
background-color: #A8C377; |
| 73 |
border-color: #73903A; |
| 74 |
} |
| 75 |
|
| 76 |
#appModel { |
| 77 |
background-color: #FEA664; |
| 78 |
border-color: #C4782E; |
| 79 |
} |
| 48 |
</style> |
80 |
</style> |
| 49 |
|
81 |
|
| 50 |
<body> |
82 |
<body> |
|
Lines 93-105
Link Here
|
| 93 |
- Because it is very close to the underlying hardware, embedded |
125 |
- Because it is very close to the underlying hardware, embedded |
| 94 |
development can turn out to be a complex task, especially considering |
126 |
development can turn out to be a complex task, especially considering |
| 95 |
the fact that people developing M2M solutions are domain experts |
127 |
the fact that people developing M2M solutions are domain experts |
| 96 |
(healthcare, smart grid, ...), not necessarily software specialists.</li> |
128 |
(healthcare, smart grid, …), not necessarily software |
|
|
129 |
specialists.</li> |
| 97 |
<li><strong>Variety of M2M embedded modules</strong> - There are |
130 |
<li><strong>Variety of M2M embedded modules</strong> - There are |
| 98 |
many M2M-capable devices available on the market, and they all come |
131 |
many M2M-capable devices available on the market, and they all come |
| 99 |
with different operating systems (although Linux seems to become the |
132 |
with different operating systems (although Linux seems to become the |
| 100 |
norm), different APIs to communicate with a distant server (over |
133 |
norm), different APIs to communicate with a distant server (over |
| 101 |
HTTP, TCP, or whatever) or with a "local" asset (serial protocol, |
134 |
HTTP, TCP, or whatever) or with a "local" asset (serial protocol, |
| 102 |
Modbus, ZigBee®, ...). This fragmentation makes it very difficult |
135 |
Modbus, ZigBee®, …). This fragmentation makes it very difficult |
| 103 |
to come up with reusable, portable, software.</li> |
136 |
to come up with reusable, portable, software.</li> |
| 104 |
</ul> |
137 |
</ul> |
| 105 |
|
138 |
|
|
Lines 115-129
Link Here
|
| 115 |
Machine-to-Machine solutions developers with tools easing the |
148 |
Machine-to-Machine solutions developers with tools easing the |
| 116 |
development, simulation, testing/debugging and deployment of such |
149 |
development, simulation, testing/debugging and deployment of such |
| 117 |
solutions.</p> |
150 |
solutions.</p> |
|
|
151 |
<p>More specifically, Koneki aims at:</p> |
| 118 |
|
152 |
|
| 119 |
<ul> |
153 |
<ul> |
| 120 |
<li>Establish a programming component-based model for embedded |
154 |
<li>Enabling M2M development |
| 121 |
development</li> |
155 |
<ul> |
| 122 |
<li>Provide exemplary, model-based, tooling, giving developers |
156 |
<li>support for languages and runtimes used to develop M2M |
| 123 |
the ability to design (either using visual or "classical" |
157 |
applications, with a specific focus on Lua (ligthweight language, |
| 124 |
programming) embedded applications.</li> |
158 |
very well-suited for M2M applications)</li> |
| 125 |
<li>Provide support for M2M targets interactions: file |
159 |
<li>support for communication protocols used in M2M |
| 126 |
deployment, remote debugging, shell access, etc.</li> |
160 |
applications</li> |
|
|
161 |
<li>smooth integration of M2M servers</li> |
| 162 |
</ul> |
| 163 |
<li>Establishing an M2M application model</li> |
| 164 |
<li>Providing tooling built on top of this application model to |
| 165 |
improve M2M development experience.</li> |
| 166 |
<!-- <li>Providing application examples promoting</li> --> |
| 127 |
</ul> |
167 |
</ul> |
| 128 |
|
168 |
|
| 129 |
<p> |
169 |
<p> |
|
Lines 142-179
Link Here
|
| 142 |
--> |
182 |
--> |
| 143 |
|
183 |
|
| 144 |
<p>The Koneki project goal will be to deliver a first-class |
184 |
<p>The Koneki project goal will be to deliver a first-class |
| 145 |
development environment for M2M solutions developers</p> |
185 |
development environment for M2M solutions developers.</p> |
|
|
186 |
|
| 187 |
<p> |
| 188 |
<img src="images/koneki-architecture.png"> |
| 189 |
</p> |
| 190 |
|
| 146 |
<p>Here are the key features that the Koneki project aims at |
191 |
<p>Here are the key features that the Koneki project aims at |
| 147 |
providing: |
192 |
providing: |
| 148 |
<ul> |
193 |
<ul> |
| 149 |
<li><strong>M2M component model</strong> - The Koneki project |
194 |
<li><strong class="archiBlock" id="embdd">M2M Embedded |
| 150 |
will expose a data/event-driven component model allowing the |
195 |
Development</strong> |
| 151 |
programmer to design a modular application. The development |
196 |
<ul> |
| 152 |
environment will include the ability to validate the consistency of |
197 |
<li><strong>Language tools</strong> — Koneki will rely |
| 153 |
an M2M application according to the specification of the components |
198 |
on existing language development tools (CDT, JDT, DLTK-based |
| 154 |
it is made of.</li> |
199 |
editors, …) to give the M2M developer access to usual editing |
| 155 |
<li><strong>Lua language support</strong> - Several |
200 |
features (syntax highlighting, content assist, outlines, …).</li> |
| 156 |
Machine-to-Machine modules and devices available on the market are |
201 |
<li><strong>M2M embedded runtimes</strong> — Koneki will |
| 157 |
programmable using the Lua language. The Koneki project will provide |
202 |
ease the use of M2M embedded runtimes: remote configuration, remote |
| 158 |
the developer with Lua tooling (editor, content-assistance, outline, |
203 |
application deployment/debugging, shell access, …</li> |
| 159 |
...) based on DLTK.</li> |
204 |
<li><strong>M2M application generation</strong> — Koneki |
| 160 |
<li><strong>M2M and industrial protocols support</strong> - The |
205 |
will provide an extensible generation infrastructure built on top |
| 161 |
Koneki project will provide the user with utilities to manipulate M2M |
206 |
of the M2M application model.</li> |
| 162 |
& industrial protocols: encode/decode binary frames, perform |
207 |
<li><strong>Application examples</strong> — |
| 163 |
bandwidth usage simulation according to different communication |
208 |
Machine-to-Machine solution developers are not necessarily skilled |
| 164 |
scenarios, etc.</li> |
209 |
embedded developers (e.g. a solution to remotely control an |
| 165 |
<li><strong>M2M devices integration</strong> - In order to ease |
210 |
industrial equipment will likely be developed by a control |
| 166 |
the development of Machine-to-Machine applications, the proposed |
211 |
engineer), the Koneki project will therefore focus on providing the |
| 167 |
project will include a strong integration of the embedded device |
212 |
developer with embedded application templates and examples.</li> |
| 168 |
within the IDE, and will therefore allow easy shell access, remote |
213 |
</ul> |
| 169 |
file copy, and remote launch of M2M application using the Eclipse |
214 |
</li> |
| 170 |
"Launch Configuration" mechanism.</li> |
215 |
<li><strong class="archiBlock" id="protocols">Protocols</strong> |
| 171 |
<li><strong>User Assistance</strong> - Given that a person |
216 |
<ul> |
| 172 |
involved in the development of a Machine-to-Machine solution is not |
217 |
<li>Koneki project will provide the user with utilities to |
| 173 |
necessarily a skilled embedded developer (e.g. a solution to remotely |
218 |
manipulate M2M & industrial protocols: encode/decode binary |
| 174 |
control an industrial equipment will likely be developed by a control |
219 |
frames, perform bandwidth usage simulation according to different |
| 175 |
engineer), the Koneki project will focus on providing the user with |
220 |
communication scenarios, etc.</li> |
| 176 |
application templates, examples, ready-to-use libraries, etc.</li> |
221 |
<li><strong>Simulation</strong> — Koneki will provide |
|
|
222 |
extension points enabling the creation of a consistent UI on top of |
| 223 |
existing protocol simulators/emulators.</li> |
| 224 |
</ul> |
| 225 |
</li> |
| 226 |
<li><strong class="archiBlock" id="server">M2M Server |
| 227 |
Development</strong> |
| 228 |
<ul> |
| 229 |
<li>Koneki will define an abstraction (a la WST Server Adapter) |
| 230 |
of what an M2M server is. It will allow M2M services providers to |
| 231 |
implement their own connector, and developers to easily configure |
| 232 |
the server-side model of their application, discover the Web |
| 233 |
Services exposed by the server, etc.</li> |
| 234 |
<li><strong>Simulation</strong> — Koneki will provide a |
| 235 |
generic simulation infrastructure to allow developer to test |
| 236 |
different communication policies (and their consequences on |
| 237 |
bandwidth consumption), monitor data transfers, simulate |
| 238 |
communication failures, etc.</li> |
| 239 |
<li><strong>Application examples</strong> — Koneki may |
| 240 |
package exemplary end-user applications to illustrate the use of |
| 241 |
M2M server APIs.</li> |
| 242 |
</ul> |
| 243 |
</li> |
| 244 |
<li><strong class="archiBlock" id="appModel">M2M Model</strong> |
| 245 |
<ul> |
| 246 |
<li><strong>Application model</strong> — Koneki will |
| 247 |
implement an M2M application model allowing an M2M solution |
| 248 |
developer to create an abstract definition of the capabilities of |
| 249 |
an M2M application (communication capabilities, exposed variables, |
| 250 |
communication policy, supported remote commands, …).</li> |
| 251 |
<li><strong>Application editors</strong> — Koneki will |
| 252 |
provide high-level editors (forms, diagrams, DSL-based editors) of |
| 253 |
M2M application models, assisting the developer with the design of |
| 254 |
his/her embedded application.</li> |
| 255 |
</ul> |
| 256 |
</li> |
| 177 |
</ul> |
257 |
</ul> |
| 178 |
|
258 |
|
| 179 |
<h2>Why Eclipse?</h2> |
259 |
<h2>Why Eclipse?</h2> |
|
Lines 186-204
Link Here
|
| 186 |
of hosting at Eclipse Labs? |
266 |
of hosting at Eclipse Labs? |
| 187 |
--> |
267 |
--> |
| 188 |
|
268 |
|
| 189 |
<p>The Koneki project would benefit from being hosted at Eclipse |
269 |
<p>The Koneki project has relationships with many Eclipse projects |
| 190 |
Foundation in that:</p> |
270 |
and the Koneki team will closely collaborate with these projects |
|
|
271 |
since:</p> |
| 191 |
<ul> |
272 |
<ul> |
| 192 |
<li>it will closely collaborate with the teams of other Eclipse |
273 |
<li>Lua tooling relies on DLTK 2,</li> |
| 193 |
Projects (DLTK, TM, RSE, Linux Tools, ...),</li> |
274 |
<li>“EMF Forms” (PDE Incubator) is used for easing |
| 194 |
<li>an M2M Industry Working Group will likely be created to help |
275 |
the development of form-based editors,</li> |
| 195 |
industrial partners and tool vendors to come up with a reference |
276 |
<li>Tools TM (Terminal and RSE components) is used to communicate |
| 196 |
environment to develop M2M solutions. Having Koneki at eclipse.org is |
277 |
with embedded devices,</li> |
| 197 |
the best way to ensure a good collaboration between the Koneki team |
278 |
<li>Modeling projects (EMF, EMF Transaction, GMF) support the |
| 198 |
and the members of the Working Group in charge of identifying M2M |
279 |
M2M application model,</li> |
| 199 |
tooling requirements. |
|
|
| 200 |
</ul> |
280 |
</ul> |
| 201 |
|
281 |
|
|
|
282 |
<p>Koneki will work even more closely with eTrice (MDT project) and |
| 283 |
Yakindu (EclipseLabs project at the moment) teams to establish an M2M |
| 284 |
application/component model.</p> |
| 285 |
|
| 286 |
<p>In addition, an Eclipse M2M Industry Working Group will likely |
| 287 |
be created to help industrial partners and tool vendors to come up |
| 288 |
with a reference environment to develop M2M solutions. Having Koneki |
| 289 |
at eclipse.org is the best way to ensure a good collaboration between |
| 290 |
the Koneki team and the members of the Working Group in charge of |
| 291 |
identifying M2M tooling requirements.</p> |
| 292 |
|
| 202 |
<h2>Initial Contribution</h2> |
293 |
<h2>Initial Contribution</h2> |
| 203 |
|
294 |
|
| 204 |
<!-- |
295 |
<!-- |
|
Lines 214-225
Link Here
|
| 214 |
from Sierra Wireless in the form of the following tools:</p> |
305 |
from Sierra Wireless in the form of the following tools:</p> |
| 215 |
<ul> |
306 |
<ul> |
| 216 |
<li>A set of plug-ins to suppport the Lua language: editor, |
307 |
<li>A set of plug-ins to suppport the Lua language: editor, |
| 217 |
content-assist, packaging, ...</li> |
308 |
content-assist, packaging, …</li> |
| 218 |
<li>A set of plug-ins to ease Linux target communication: remote |
309 |
<li>A set of plug-ins to ease Linux target communication: remote |
| 219 |
project copy, remote application launch, debugging ...</li> |
310 |
project copy, remote application launch, debugging …</li> |
| 220 |
<li>A packaging mechanism of M2M applications examples,</li> |
311 |
<li>A packaging mechanism of M2M applications examples,</li> |
| 221 |
<li>A proposed component model for M2M applications, based on a |
312 |
<li>A prototype of a component model for M2M applications, based |
| 222 |
dataflow paradigm,</li> |
313 |
on a dataflow paradigm,</li> |
| 223 |
<li>A graphical editor on top of this component model to give the |
314 |
<li>A graphical editor on top of this component model to give the |
| 224 |
developer the ability to visualize and modify its application |
315 |
developer the ability to visualize and modify its application |
| 225 |
structure, and perform type and consistency checks.</li> |
316 |
structure, and perform type and consistency checks.</li> |
|
Lines 252-266
Link Here
|
| 252 |
|
343 |
|
| 253 |
<dl> |
344 |
<dl> |
| 254 |
<dt> |
345 |
<dt> |
| 255 |
<b>Benjamin Cabé</b>, Sierra Wireless |
346 |
<b>Benjamin Cabé</b>, Sierra Wireless (project co-lead) |
|
|
347 |
</dt> |
| 348 |
<dd>Benjamin is a long-time contributor on many Eclipse projects |
| 349 |
(Eclipse, PDE, EMF, ECF, …) and committer on e4 and PDE |
| 350 |
(inactive though). He loves spreading the good word about Eclipse |
| 351 |
awesomeness at various conferences and writing blogs and articles.</dd> |
| 352 |
<dt> |
| 353 |
<b>Gaétan Morice</b>, Sierra Wireless (project co-lead) |
| 256 |
</dt> |
354 |
</dt> |
| 257 |
<dd>Project co-lead.</dd> |
355 |
<dd>Gaétan leads the Embedded Tooling Development team at |
|
|
356 |
Sierra Wireless. The tools his team is developing will be built on |
| 357 |
top of Koneki components. On a side note, he is passionated by modern |
| 358 |
programming languages, and especially Clojure.</dd> |
| 258 |
<dt> |
359 |
<dt> |
| 259 |
<b>Gaétan Morice</b>, Sierra Wireless |
360 |
<b>Simon Bernard</b>, Sierra Wireless |
| 260 |
</dt> |
361 |
</dt> |
| 261 |
<dd>Project co-lead.</dd> |
362 |
<dd>Simon is the lead developer of Sierra Wireless Tools for |
| 262 |
<dt>Simon Bernard, Sierra Wireless</dt> |
363 |
Embedded Development. He has 5+ years of experience with Eclipse |
| 263 |
<dd></dd> |
364 |
development (RCP, EMF, GMF, CDT, …).</dd> |
|
|
365 |
<dt> |
| 366 |
<b>Kévin Kin-Foo</b>, Sierra Wireless |
| 367 |
</dt> |
| 368 |
<dd>Kévin is the developer behind LuaEclipse 2, which he |
| 369 |
has developed during an internship at Sierra Wireless, and improved |
| 370 |
on his spare time. He has been hired by Sierra recently and will be |
| 371 |
the lead developer for the Lua Development Environment.</dd> |
| 264 |
</dl> |
372 |
</dl> |
| 265 |
|
373 |
|
| 266 |
<p>We welcome additional committers and contributions.</p> |
374 |
<p>We welcome additional committers and contributions.</p> |
|
Lines 300-311
Link Here
|
| 300 |
have expressed interest in this project:</p> |
408 |
have expressed interest in this project:</p> |
| 301 |
|
409 |
|
| 302 |
<ul> |
410 |
<ul> |
| 303 |
<li>Kai Kreuzer, openHAB project</li> |
411 |
<li>Kai Kreuzer, openHAB project lead</li> |
| 304 |
<li>Kévin Kin-Foo, LuaEclipse 2 project</li> |
412 |
<li>Kévin Kin-Foo, LuaEclipse 2 project</li> |
| 305 |
<li>itemis AG</li> |
413 |
<li>itemis AG (Yakindu project)</li> |
| 306 |
<li>Protos Software GMBh</li> |
414 |
<li>Protos Software GMBh (eTrice project)</li> |
| 307 |
<li>Joe Biron, Axeda</li> |
415 |
<li>Joe Biron, Axeda</li> |
| 308 |
</ul> |
416 |
</ul> |
| 309 |
|
417 |
|
| 310 |
<h2>Tentative Plan</h2> |
418 |
<h2>Tentative Plan</h2> |
| 311 |
|
419 |
|
|
Lines 317-331
Link Here
|
| 317 |
--> |
425 |
--> |
| 318 |
|
426 |
|
| 319 |
<ul> |
427 |
<ul> |
| 320 |
<li>May 2011 – creation review and initial contribution</li> |
428 |
<li>May 2011 – Sierra Wireless initial contribution |
| 321 |
|
429 |
<ul> |
| 322 |
<li>Q3 2011 – first builds for early adopters</li> |
430 |
<li>“Enablers”</li> |
|
|
431 |
<li>Lua tooling</li> |
| 432 |
<li>Modeling environment prototype</li> |
| 433 |
</ul> |
| 434 |
</li> |
| 435 |
|
| 436 |
<li>June 2011 |
| 437 |
<ul> |
| 438 |
<li>Convert Koneki's build to Tycho</li> |
| 439 |
<li>Make Lua Tooling available at Eclipse Marketplace</li> |
| 440 |
</ul> |
| 441 |
</li> |
| 442 |
|
| 443 |
<li>Q3 2011 |
| 444 |
<ul> |
| 445 |
<li>Call for community participation to define an M2M |
| 446 |
application model</li> |
| 447 |
<li>Improve Lua Tooling: LuaRocks support</li> |
| 448 |
</ul> |
| 449 |
</li> |
| 450 |
|
| 451 |
<li>Q4 2011 |
| 452 |
<ul> |
| 453 |
<li>Communicate at EclipseCon Europe</li> |
| 454 |
<li>Setup M2M server simulation infrastructure</li> |
| 455 |
<li>Lua Tooling component to be moved to its own Technology |
| 456 |
project</li> |
| 457 |
</ul> |
| 458 |
</li> |
| 323 |
|
459 |
|
| 324 |
<li>Q4 2011 – improve Lua support, API stabilization</li> |
460 |
<li>Q2 2012 – First release of an “end-to-end” |
| 325 |
|
461 |
M2M IDE</li> |
| 326 |
<li>Q1 2012 – release a 0.9 version</li> |
|
|
| 327 |
|
| 328 |
<li>June 2012 – graduate</li> |
| 329 |
</ul> |
462 |
</ul> |
| 330 |
|
463 |
|
| 331 |
<h2>Changes to this Document</h2> |
464 |
<h2>Changes to this Document</h2> |
|
Lines 357-362
Link Here
|
| 357 |
<td>07-Apr-2011</td> |
490 |
<td>07-Apr-2011</td> |
| 358 |
<td>Added new Interested Parties and Mentors</td> |
491 |
<td>Added new Interested Parties and Mentors</td> |
| 359 |
</tr> |
492 |
</tr> |
|
|
493 |
<tr> |
| 494 |
<td>20-Apr-2011</td> |
| 495 |
<td>Detailed the functional architecture.<br /> Refined the |
| 496 |
project plan and relationships with other Eclipse projects.<br /> |
| 497 |
Added Kévin Kin-Foo to initial committers list.</td> |
| 498 |
</tr> |
| 360 |
</table> |
499 |
</table> |
| 361 |
</body> |
500 |
</body> |
| 362 |
</html> |
501 |
</html> |