Last week we had a brief discussion with the JON team about our future plans of a runtime management API. Where we were mostly discussion about the possibility of JON using a REST based API, so i want to briefly dump the notes i took.
- the actual xml-format of the exposed managed component will like be identical with the one used in the domain.xml. Where the question is if this has to be validateable against a schema as well?
- metadata surrounding properties - like: required, description, default values, ...
So some additional runtime metadata describing the exposed component model. At the moment this is used to create parts of the rhq-plugins descriptors - however this might also be possible offline using the schema (or annotations?). This could also be useful for other management client using this information during runtime.
- exposing state of components and deployments
- change notifications - i can't exactly remember what exactly we talked about here, but in e.g. AS5 we have the issue that the console does have a way to know when something changed on the server and constantly has to refresh it's view.
- metrics / operations
In general metrics and operations are not in the domain.xml so they either have to included in the exposed REST view. Or they might be complete separate. We also talked about the possibility to have a sort of hybrid approach where REST is used for configuration and JMX for metrics and maybe operations. Where one of the benefits of JMX is a "bulk get" of multiple metrics at the same time.
- We briefly discussed about AS maintaining a history of values over time? Although i'm not really sure if this is something the AS or the DomainController should do.
- DomainController vs. JON agents
Obviously one of the important changes with moving to the domain model is that there does not have be a jon-agent per host anymore. However while writing this point - my first question would be. Since AS is not going to do provisioning - it would still require a jon-agent per host then? So we might should discuss about this point a little more in detail.