Hi all
These are the minutes of the Hangout face-to-face yesterday. Please comment if I forgot something or a point is unclear!
---
1.
Architecture and interfaces between Connectors, CoAP stacks, and application logic
a.
element-connector
i. Is specific for UDP and DTLS transports for CoAP, not a generic interface
ii. CoapEndpoint is the proper interface for new transports, since they also affect the stack
iii. Fix README
iv. Maybe burry at some point
b.
Endpoint addressing in the API
i. URIs only
ii. Check java.net package for clean abstract mechanism to map to different transports
iii. Check options for “internal” API, which is currently used by Leshan
2.
Short-term Roadmap
a.
Californium 1.0 release end of August and Leshan 1.0 in September
i. API must be fixed, thus check API requirements of alternative transports. 1.x may only introduce (optional) additions, but no changes to the existing
signatures
ii. TCP binding not required to go into 1.0
iii. Leshan needs to check if LWM2M Queue Mode has implications for Cf 1.0
b.
Scandium 1.0 (as part of Californium 1.0 release)
i. Configuration API needs to stabilize; Kai will provide a draft of the AuthenticationProvider as common interface where Scandium polls
provider for info
ii. Convert to multi-module Maven project with examples as standalone artifacts
iii. Add more example projects for documentation purposes (source code should contain many comments)
c.
Documentation
i. Focus on Javadoc and executable example projects
ii. Ensure changes are propagated to other repos (e.g., Scandium changes affect californium and californium.tools
iii. Only have the “bootstrap” information in the README
iv. Only have a single slide deck (GoogleDoc that is useful for tutorials) in addition, since out-of-band documentation gets out-of-sync
too quickly
v. Repository clean-up might be required to make example projects more explicit; plugtest project could be moved to tools.
d.
Framework support
i. Repos can include configurations for several provisioning/execution frameworks---as long as they are purely optional (i.e., do not
affect the entry barrier for newcomers)
ii. Feel free to include Docker Maven goal/profile in POMs
iii. Check implications for Spring Boot and if such frameworks can be purely optional
3.
Long-term Roadmap (version 2.0)
a.
Make Californium more manageable for cloud environments
i. Mechanisms to limit resource consumption
ii. Ensure stable execution for all traffic scenarios
iii. Add monitoring support and metrics in additional modules (like californium-osgi), but keep mechanisms independent from specific
frameworks (still check JMX etc. to see how this can be done and provide example configurations (e.g., MessageInterceptors with JMX interfaces).
iv. Experiment with new patterns (e.g., reactor pattern, disruptor) and use benchmarks to evaluate impact
v. Find a good solution at ETH to provide benchmark environment used for IoT paper on scalability
b.
Scandium 2.0
i. Convert into layered architecture similar to californium-core; continue with experiments for new patterns from there
ii. Align AuthenticationProvider for all alternative transports (e.g., Netty TLS for coaps+tcp)
iii. Investigate AuthorizationProvider to enable per-resource authorization (check with ACE work)
4.
Release process
a.
Signing with dev-cf@eclipse PGP key
i. write down process in wiki
ii. put reference to process documentation in repo readme
iii. publish public key on key server
iv. all committers sign key
v. include comment for requesting central signing service
b.
Deploy JavaDoc somewhere, but where?