[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] New Tutorial ECF OSGI remote service zookeeper/generic

Hi Tobias,

On 4/27/2016 10:53 AM, Pyttel, Tobias Alexander wrote:

Hey everybody,

as mentioned in my last post in the forum I would like to share my experience with the ECF project in form of a tutorial. The post can be found hier.

So first of all I would like to thank you for that excellent project and implementation! Great work.

On behalf of the ECF committers...thank you.

And now after dealing with some problems everything works like charm and it is fun to integrate this framework in my product. I know that in open source projects resources are rare and so the documentation of ECF is expandable. That’s why I want to give back something -> my tutorial to show the possibilities of the framework. I didn’t check out every function (too much and in process of my start-up I have to focus sometimes on my business :P) but I would suggest you the content of the tutorial and I would discuss whether you agree or disagree with that.

Wonderful that you want to contribute.  As you indicated, ECF resources are limited, and so producing tutorial/usage description, experiences, etc is a terrific way to contribute.

In context of my daily operation concerning my start-up the ECF framework is one central player for the Internet of Things (IoT). Therefore, I would like to deal with following scenario:

There is a local network with one central (DSL)Router with DNS server. Furthermore, there is a central OSGI environment working as server. This server is responsible for device management in the network. A device is another machine on which also an OSGI environment is running. The server and the devices should automatically configure themselves in the network. So if a device is gone the server is aware of that and the other way round. So if the server comes online all services by the devices will be published to server automatically.

To do so I would like to show the whole project creation in ZooDiscovery/Generic configuration. I would like to show how to start with ECF and how to resolve necessary dependencies for configurations wanted. Furthermore, I would like to show the centralized mode of this configuration with an IP-Broadcaster. Another thing I would like to show is the machine configuration for using ECF. So especially IP settings (DNS should be used) for Unix and Windows system should be covered and a Util class for atomically handling OS settings on the device should be proposed. Next step would be the configuration of maven and the bundler plugin and the creation of standalone environment of the device and the server (system variables, folders…). So I would like to show how to build a new project form the beginning until the end with use of the example above. For detailed information on every step links to sources which helped me will be placed. All in all, there will be 3 bundles created for that example: DeviceServer, Dervice, DeviceAPI!

This sounds great to me.   I would suggest that we aim for putting the tutorial text in the ECF wiki alongside the other tutorials on the entry-point ECF wiki  page:   http://wiki.eclipse.org/ECF.   As for the code for the 3 bundles...it would be possible to either 1) create/add a new repo at the ECF github site (http://github.com/ECF); 2) contribute the code to the EF repo (http://git.eclipse.org/c/ecf/org.eclipse.ecf.git/ e.g. in examples); or 3) Host the code somewhere else (e.g. your own github repo).   It's your choice...which depends mostly on what you/your company are comfortable with disclosing publicly, and what license you wish to use for your tutorial code.  I'm happy to discuss/detail these options with you further if you wish.

A couple of technical/design questions to consider:  for the tutorial, do you intended to use declarative services (DS)?   Also...with your focus on device configuration, do you also plan to use OSGi configuration admin or perhaps even the remote management APIs recently created [1]?   If the answer is 'yes' or 'maybe', I would be happy to help with your use of any of these for the tutorial and/or your other development.

What do you thing? Can this be helpful for other people getting started with this framework?

I think it sounds terrific.  Thank you again...and inadvance...for your contribution.


[1] https://www.eclipse.org/ecf/NewAndNoteworthy.html