Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a way to add more transport Layer #1025

Open
sbernard31 opened this issue Jun 9, 2021 · 10 comments
Open

Add a way to add more transport Layer #1025

sbernard31 opened this issue Jun 9, 2021 · 10 comments
Labels
client Impact LWM2M client new feature New feature from LWM2M specification server Impact LWM2M server
Milestone

Comments

@sbernard31
Copy link
Contributor

sbernard31 commented Jun 9, 2021

In v1.0, LWM2M was only based CoAP(s).
In v1.1, LWM2M can be used over CoAP+TCP, CIoT or LoRaWAN
In v1.2, LWM2M can be used over MQTT and HTTP (theorically ... OpenMobileAlliance/OMA_LwM2M_for_Developers#520)

So at some time we will need to refactor the code to allow this kind of addition.

This issue is create to discuss/ start thinking about this.

Identified goals 🎯 are :

  • remove strong californium dependencies. (cf should only be used to implement an endpoints provider)
  • being able to add any number of endpoints. (not just 1 coap and 1 coaps)
  • being able to add more transport layer.
  • being able to have different implementation of same transport layer. (could be different underlying library or just same library with different configuration)
@sbernard31 sbernard31 added new feature New feature from LWM2M specification client Impact LWM2M client server Impact LWM2M server labels Jun 9, 2021
@sbernard31 sbernard31 added this to the 2.0.0 milestone Jul 1, 2021
@sbernard31
Copy link
Contributor Author

@sbernard31
Copy link
Contributor Author

This task should also aims to reduce dependency to Californium/Scandium project by making possible to implement CoAP or CoAP over DTLS layer based on another library.

@sbernard31
Copy link
Contributor Author

I started to explore about this at #1220.

@sbernard31
Copy link
Contributor Author

I created an issue about new Java Module architecture : #1295.

@sbernard31
Copy link
Contributor Author

A try for the new API : #1220 (comment)

@sbernard31
Copy link
Contributor Author

A cleaner version of the abstraction at server side is available at #1318.

@sbernard31
Copy link
Contributor Author

A cleaner version of the abstraction at client side is available at #1323 .

@sbernard31
Copy link
Contributor Author

A version of the abstraction at bootstrap server side is available at #1336

@sbernard31
Copy link
Contributor Author

sbernard31 commented Jan 6, 2023

First version of transport abstraction layer is now integrated in master.

🎯 Why a transport layer abstraction ?

This transport abstraction layer aims to allow to :

  • remove strong californium dependencies. (cf should only be used to implement an endpoints provider)
  • being able to add any number of endpoints. (not just 1 coap and 1 coaps)
  • being able to add more transport layer.
  • being able to have different implementation of same transport layer. (could be different underlying library or just same library with different configuration)

ℹ️ What is current state ?

See PRs below are now integrated in master.
See their description to have an overview of new API, what is remaining to do and what was removed or broken :**

🙏 How you could help ?

This new Transport Abstraction Layer comes with lot of changes. So we strongly encourage community to give us feedback about API, design and any regressions or missing features.

If you decide to tests master and you face any difficulties to migrate to the new API, do no hesitate to ask ! (by opening a new issue)

👷 What next ?

The next big step will be to apply a new module design (this will be mainly about project/package renaming):

Currently we are working on implementing a new transport layer based on something else than californium to test the API and ensure, it fits the need :

🙀 Any concerns ?

If you have any concerns let us know.
If this is about the changes itself : create a new issue our use this one.
If this is about the current organization about this changes, there is a dedicated issue : #1222

@sbernard31
Copy link
Contributor Author

sbernard31 commented Oct 19, 2023

Some news about that :

Next step try to implement :

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
client Impact LWM2M client new feature New feature from LWM2M specification server Impact LWM2M server
Projects
None yet
Development

No branches or pull requests

1 participant