Hello Simone,
I understand your concern. I would also love to get rid of the various code with overlapping functionality and make the geoserver code base more elegant and robust.
In response to the approach "I'll add this one more thing because I need it." It is normal that economically speaking, additions are made to an open-source project on a need-to-have basis. The code I am writing needs to be written either way. So the only choices here are: keep the code private; create a separate (very small, unnoticed) open source project; or donate the code to the geoserver community so that other people who find it useful may use it. It was my choice to rather pick the latter.
That doesn't necessarily mean however that existing functionality should be duplicated, on the contrary. If new functionality is added, it should be optimally integrated with the old functionality.
I have thought about the overlap between importer and the new module. The only thing I see, is as you point out, the existence of a job queue. I would like to think about a way to integrate them, but there are a number of issues with that
* My job queue is far more general than importer, which only supports very specifically defined tasks. Therefore, logically, it would be importer that needs be modified to be built on top of my API rather than me building on top of importer.
* would it still make sense to have this job queue code that supports many kinds of tasks, in a module named "importer"? So then we get a new module on which importer depends rather than the other way around.
* my module will be database-driven, because my data model is far more complicated (there are tasks, batches, and configurations to organise the hundreds of tasks that may exist).
That would imply extra dependencies for hibernate. Same for the scheduler dependencies. Can I enforce these dependencies upon importer when it now works fine without?
* this can be avoided by adding extra abstraction for the job queue which may have a simple and more sophisticated implementation. Then we get two extra modules instead of one. Unless the abstraction and simple implementation could be added to one of the core modules. But then this will require a proposal etc..
So, in practice, this will mean quite a bit more work for me than if I just provide the code as a community module. But that is definitely negotiable. But I do wonder what the community thinks about the issues and options above.
Regards
Niels
On 26-05-17 16:20, Simone Giannecchini wrote:
Ciao Niels,
honestly from the description this seems to add a new module with
functionalities that should IMHO end up in the importer, possibly with
some modifications to the importer itself.
The importer is a small workflow engine and what you are trying to do
looks like an extension to the importer where, for example the ability
to run task periodically rather that on demand.
The importer already has a concept of task chain which could be extended.
As I said,I believe we are continuing to throw in new modules with
duplications and overlaps without trying to make geoserver more
robust:
- we have two mosaics with some overlaps
- we have N ways to do styling, with slight differences, why we don't
make a choice as a project we stick to that and we concentrate efforts
on implementing new feature for rendering and making the current
engine more performant/robust?
- we have 2 plugins for clustering with some overlaps
- we have N xml engines around
I would like to see some effort towards cleaning up duplications and
making geoserver a better product, but it looks like to me the
approach is rather the opposite: I'll add this one more thing because
I need it.
Btw Niels, this is not against you, it is something I have been
thinking about for a while.
According to the rules you are free to go and I won't object if you do.
That said, I think we might need to rethink the rules of comm modules
or at least to ask for a plan to be discussed a little because aside
from having a plethora of additional modules in the codebase so far I
have not seen much additional participation from outsiders (as in new
developers).
I think this is a good topic for a separate thread and a PSC meeting.
Regards,
Simone Giannecchini
GeoServer Professional Services from the experts!
Visit http://goo.gl/it488V for more information.
Ing. Simone Giannecchini
@simogeo
Founder/Director
GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 333 8128928
http://www.geo-solutions.it
http://twitter.com/geosolutions_it
-------------------------------------------------------
AVVERTENZE AI SENSI DEL D.Lgs. 196/2003
Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate.
Il loro utilizzo è consentito esclusivamente al destinatario del
messaggio, per le finalità indicate nel messaggio stesso. Qualora
riceviate questo messaggio senza esserne il destinatario, Vi preghiamo
cortesemente di darcene notizia via e-mail e di procedere alla
distruzione del messaggio stesso, cancellandolo dal Vostro sistema.
Conservare il messaggio stesso, divulgarlo anche in parte,
distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità
diverse, costituisce comportamento contrario ai principi dettati dal
D.Lgs. 196/2003.
The information in this message and/or attachments, is intended solely
for the attention and use of the named addressee(s) and may be
confidential or proprietary in nature or covered by the provisions of
privacy act (Legislative Decree June, 30 2003, no.196 - Italy's New
Data Protection Code).Any use not in accord with its purpose, any
disclosure, reproduction, copying, distribution, or either
dissemination, either whole or partial, is strictly forbidden except
previous formal approval of the named addressee(s). If you are not the
intended recipient, please contact immediately the sender by
telephone, fax or e-mail and delete the information in this message
that has been received in error. The sender does not give any warranty
or accept liability as the content, accuracy or completeness of sent
messages and accepts no responsibility for changes made after they
were sent or for other risks which arise as a result of e-mail
transmission, viruses, etc.
On Thu, May 25, 2017 at 12:09 PM, Niels Charlier <niels@anonymised.com> wrote:
Hello Simone, Alessio, and Jody
Thanks for your input.
I have assessed the overlap with other modules, and I don't think there is
much, if any. But I am open to suggestions as always.
As I understand it, the main purpose of the Importer is publishing many
layers at once. The workflow module will initially be focused on
single-layer configurations. Its main purpose is to be able to manage a flow
of data (and metadata) that runs over a series of servers, for example like
this:
ORIGINAL DB / HARD DRIVE --> WORK-GEOSERVER --> PUBLIC GEOSERVER
and to execute this or part of this, manually or automatically if possible
and desired.
In the future it could be interesting to connect the modules with each
other, through the creation of importer tasks and backup/restore tasks that
can be scheduled in the workflow module.
I don't think Spring batch is useful for me, because the idea is to allow
users to specify tasks and batches in a GUI, and store them in DB, rather
than hard-configuring the batches in the application context. Unless you
think spring batch offers some useful functionality in my case also?
I will be using Quartz as scheduler framework and Hibernate for the
database.
Kind Regards
Niels
On 24-05-17 15:57, Simone Giannecchini wrote:
I am not against this and you already have enough +1, however it would
good to hear your thoughts on the following points:
- did you assess the overlap with existing extensions like the Importer?
- which framework do you intend to use?
There is a huge number of modules in GeoServer with overlaps and we
keep on adding new ones without harmonizing...
Regards,
Simone Giannecchini
GeoServer Professional Services from the experts!
Visit http://goo.gl/it488V for more information.
Ing. Simone Giannecchini
@simogeo
Founder/Director
GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 333 8128928
http://www.geo-solutions.it
http://twitter.com/geosolutions_it
-------------------------------------------------------
AVVERTENZE AI SENSI DEL D.Lgs. 196/2003
Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate.
Il loro utilizzo è consentito esclusivamente al destinatario del
messaggio, per le finalità indicate nel messaggio stesso. Qualora
riceviate questo messaggio senza esserne il destinatario, Vi preghiamo
cortesemente di darcene notizia via e-mail e di procedere alla
distruzione del messaggio stesso, cancellandolo dal Vostro sistema.
Conservare il messaggio stesso, divulgarlo anche in parte,
distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità
diverse, costituisce comportamento contrario ai principi dettati dal
D.Lgs. 196/2003.
The information in this message and/or attachments, is intended solely
for the attention and use of the named addressee(s) and may be
confidential or proprietary in nature or covered by the provisions of
privacy act (Legislative Decree June, 30 2003, no.196 - Italy's New
Data Protection Code).Any use not in accord with its purpose, any
disclosure, reproduction, copying, distribution, or either
dissemination, either whole or partial, is strictly forbidden except
previous formal approval of the named addressee(s). If you are not the
intended recipient, please contact immediately the sender by
telephone, fax or e-mail and delete the information in this message
that has been received in error. The sender does not give any warranty
or accept liability as the content, accuracy or completeness of sent
messages and accepts no responsibility for changes made after they
were sent or for other risks which arise as a result of e-mail
transmission, viruses, etc.
On Wed, May 24, 2017 at 1:08 PM, Niels Charlier <niels@anonymised.com> wrote:
Hello,
I would like to create a new community module in geoserver called
"workflow".
The purpose of the module would be to create certain tasks and schedule
them in batches that are automatically executed.
Examples of tasks are:
- update layer data from a source to local
- synchronise data and metadata with other geoservers
- ...
and this can easily be extended upon of course.
Please let me know if this is OK.
Kind Regards
Niels
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel