Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 339398 | Differences between
and this patch

Collapse All | Expand All

(-)proposal.html (-70 / +209 lines)
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, &#8230;), 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&reg;, ...). This fragmentation makes it very difficult
135
			Modbus, ZigBee&reg;, &#8230;). 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> &mdash; 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, &#8230;) to give the M2M developer access to usual editing
155
		<li><strong>Lua language support</strong> - Several
200
					features (syntax highlighting, content assist, outlines, &#8230;).</li>
156
			Machine-to-Machine modules and devices available on the market are
201
				<li><strong>M2M embedded runtimes</strong> &mdash; 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, &#8230;</li>
159
			...) based on DLTK.</li>
204
				<li><strong>M2M application generation</strong> &mdash; 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
			&amp; industrial protocols: encode/decode binary frames, perform
207
				<li><strong>Application examples</strong> &mdash;
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 &amp; 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> &mdash; 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> &mdash; 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> &mdash; 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> &mdash; 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, &#8230;).</li>
251
				<li><strong>Application editors</strong> &mdash; 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>&#8220;EMF Forms&#8221; (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, &#8230;</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 &#8230;</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&eacute;</b>, Sierra Wireless
346
			<b>Benjamin Cab&eacute;</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, &#8230;) 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&eacute;tan Morice</b>, Sierra Wireless (project co-lead)
256
		</dt>
354
		</dt>
257
		<dd>Project co-lead.</dd>
355
		<dd>Ga&eacute;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&eacute;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, &#8230;).</dd>
365
		<dt>
366
			<b>K&eacute;vin Kin-Foo</b>, Sierra Wireless
367
		</dt>
368
		<dd>K&eacute;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&eacute;vin Kin-Foo, LuaEclipse 2 project</li>
412
		<li>K&eacute;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 &ndash; creation review and initial contribution</li>
428
		<li>May 2011 &ndash; Sierra Wireless initial contribution
321
429
			<ul>
322
		<li>Q3 2011 &ndash; first builds for early adopters</li>
430
				<li>&#8220;Enablers&#8221;</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 &ndash; improve Lua support, API stabilization</li>
460
		<li>Q2 2012 &ndash; First release of an &#8220;end-to-end&#8221;
325
461
			M2M IDE</li>
326
		<li>Q1 2012 &ndash; release a 0.9 version</li>
327
328
		<li>June 2012 &ndash; 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&eacute;vin Kin-Foo to initial committers list.</td>
498
		</tr>
360
	</table>
499
	</table>
361
</body>
500
</body>
362
</html>
501
</html>

Return to bug 339398