[Geoserver-devel] New community module: wps-remote

Hi,
on behalf of Alessio I would like to propose a new community module that allows
GeoServer WPS to discover, run and monitor processes running on one or more remote machines.

This setup is popular in scenarios where one has long lived and resource hungry processes that
require a dedicated machine to run (e.g., some large satellite imagery processes,
simulation or weather models, that can take hours and chew a lot of of memory per run),
as well as the “dockerization” trend in which algorithm providers are simply shipping a
docker container fully setup with the executable to be run and its specific environment
(in scientific apps that can be very specific), which regardless of the physical setup, effectively
makes it run on a separate node.

The module is easier to explain with a picture:

Inline image 1

Basically on the GeoServer side we have a custom process factory that discovers and exposes
processes, on the other end we have some support to describe and execute the processes, and
in the middle we have a XMPP server acting as the network protocol, plus eventual file system sharing
for large inputs/outputs.

XMPP was chosen as a suitable cross language communication mechanism, indeed, while the
GeoServer module is pure java (pull request in preparation here: https://github.com/geosolutions-it/geoserver/tree/wps-remote),
while the reference implementation of the other end is python based instead:
https://github.com/geosolutions-it/wps-remote-backend-XMPP

We’d like to contribute the GeoServer module, along with docs, as a community one, and if possible
add the reference python implementation as a new repository in the https://github.com/geoserver/ organization,
to stress its open status and encourage more people to take part.

As this is a community module there is no feature freeze rush, but I guess it would be nice to
have it in anyways in order to add it to the beta announcement

Feedback welcomed

Cheers
Andrea

···

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313

fax: +39 0584 1660272
mob: +39 339 8844549

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.


+1. That sounds like a great addition.

Python on the other end is a good match as Python is often used as a glue language for driving scientific code.

Could this module be used to implement a scientific workflow system like Kepler or Taverna?

One thing that many systems appear to lack is distributed authorisation (and accounting). Would a GeoServer client be able to specify their own, for example, oauth2 provider, to permit access to an arbitrary compute resource? Or do you anticipate that all compute resources are configured by the GeoServer owner?

Kind regards,
Ben.

On 16/02/16 23:07, Andrea Aime wrote:

Hi,
on behalf of Alessio I would like to propose a new community module that
allows
GeoServer WPS to discover, run and monitor processes running on one or more
remote machines.

This setup is popular in scenarios where one has long lived and resource
hungry processes that
require a dedicated machine to run (e.g., some large satellite imagery
processes,
simulation or weather models, that can take hours and chew a lot of of
memory per run),
as well as the "dockerization" trend in which algorithm providers are
simply shipping a
docker container fully setup with the executable to be run and its specific
environment
(in scientific apps that can be _very_ specific), which regardless of the
physical setup, effectively
makes it run on a separate node.

The module is easier to explain with a picture:

[image: Inline image 1]

Basically on the GeoServer side we have a custom process factory that
discovers and exposes
processes, on the other end we have some support to describe and execute
the processes, and
in the middle we have a XMPP server acting as the network protocol, plus
eventual file system sharing
for large inputs/outputs.

XMPP was chosen as a suitable cross language communication mechanism,
indeed, while the
GeoServer module is pure java (pull request in preparation here:
https://github.com/geosolutions-it/geoserver/tree/wps-remote),
while the reference implementation of the other end is python based instead:
https://github.com/geosolutions-it/wps-remote-backend-XMPP

We'd like to contribute the GeoServer module, along with docs, as a
community one, and if possible
add the reference python implementation as a new repository in the
https://github.com/geoserver/ organization,
to stress its open status and encourage more people to take part.

As this is a community module there is no feature freeze rush, but I guess
it would be nice to
have it in anyways in order to add it to the beta announcement

Feedback welcomed

Cheers
Andrea

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

--
Ben Caradoc-Davies <ben@anonymised.com>
Director
Transient Software Limited <http://transient.nz/&gt;
New Zealand

Hi Ben,
thanks for your interest.

This implementation is just a wrapper for the GeoServer WPS, i.e. it only allows you to create WPS processes on the fly which forwards the execution to a remote machine.

It is possible to automatically publish on GeoServer some of the computed resources as layers, but in this first implementation there is not support for distributed authorization nor support for grabbing intermediate results from the backend worflow.

That said, if the community will manifest a good interest on the module, there is place for further improvements.

The project was sponsored initially by the German Aerospace Center (DLR) and the Centre for Maritime Research and Experimentation (CMRE) which have interest to add more features in the future, like the support for the workflows and a better and more realiable load balancer for remote computation resource consuption.

···

On Tue, Feb 16, 2016 at 11:54 AM, Ben Caradoc-Davies <ben@anonymised.com> wrote:

+1. That sounds like a great addition.

Python on the other end is a good match as Python is often used as a
glue language for driving scientific code.

Could this module be used to implement a scientific workflow system like
Kepler or Taverna?

One thing that many systems appear to lack is distributed authorisation
(and accounting). Would a GeoServer client be able to specify their own,
for example, oauth2 provider, to permit access to an arbitrary compute
resource? Or do you anticipate that all compute resources are configured
by the GeoServer owner?

Kind regards,
Ben.

On 16/02/16 23:07, Andrea Aime wrote:

Hi,
on behalf of Alessio I would like to propose a new community module that
allows
GeoServer WPS to discover, run and monitor processes running on one or more
remote machines.

This setup is popular in scenarios where one has long lived and resource
hungry processes that
require a dedicated machine to run (e.g., some large satellite imagery
processes,
simulation or weather models, that can take hours and chew a lot of of
memory per run),
as well as the “dockerization” trend in which algorithm providers are
simply shipping a
docker container fully setup with the executable to be run and its specific
environment
(in scientific apps that can be very specific), which regardless of the
physical setup, effectively
makes it run on a separate node.

The module is easier to explain with a picture:

[image: Inline image 1]

Basically on the GeoServer side we have a custom process factory that
discovers and exposes
processes, on the other end we have some support to describe and execute
the processes, and
in the middle we have a XMPP server acting as the network protocol, plus
eventual file system sharing
for large inputs/outputs.

XMPP was chosen as a suitable cross language communication mechanism,
indeed, while the
GeoServer module is pure java (pull request in preparation here:
https://github.com/geosolutions-it/geoserver/tree/wps-remote),
while the reference implementation of the other end is python based instead:
https://github.com/geosolutions-it/wps-remote-backend-XMPP

We’d like to contribute the GeoServer module, along with docs, as a
community one, and if possible
add the reference python implementation as a new repository in the
https://github.com/geoserver/ organization,
to stress its open status and encourage more people to take part.

As this is a community module there is no feature freeze rush, but I guess
it would be nice to
have it in anyways in order to add it to the beta announcement

Feedback welcomed

Cheers
Andrea


Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140


Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Ben Caradoc-Davies <ben@anonymised.com>
Director
Transient Software Limited <http://transient.nz/>
New Zealand


Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140


Geoserver-devel mailing list
Geoserver-devel@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Best Regards,
Alessio Fabiani.

==
GeoServer Professional Services from the experts!
Visit http://goo.gl/it488V for more information.

Ing. Alessio Fabiani
@alfa7691
Founder/Technical Lead

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.


Sounds like a great plan to me +1

Ian

+1 here (although it is not needed)

Really looking forward to this, it helps to have an alternate process factory available in the codebase to see how the larger design fits together.

(attachments)

image.png

···

On 16 February 2016 at 02:07, Andrea Aime <andrea.aime@anonymised.com> wrote:

Hi,
on behalf of Alessio I would like to propose a new community module that allows
GeoServer WPS to discover, run and monitor processes running on one or more remote machines.

This setup is popular in scenarios where one has long lived and resource hungry processes that
require a dedicated machine to run (e.g., some large satellite imagery processes,
simulation or weather models, that can take hours and chew a lot of of memory per run),
as well as the “dockerization” trend in which algorithm providers are simply shipping a
docker container fully setup with the executable to be run and its specific environment
(in scientific apps that can be very specific), which regardless of the physical setup, effectively
makes it run on a separate node.

The module is easier to explain with a picture:

Inline image 1

Basically on the GeoServer side we have a custom process factory that discovers and exposes
processes, on the other end we have some support to describe and execute the processes, and
in the middle we have a XMPP server acting as the network protocol, plus eventual file system sharing
for large inputs/outputs.

XMPP was chosen as a suitable cross language communication mechanism, indeed, while the
GeoServer module is pure java (pull request in preparation here: https://github.com/geosolutions-it/geoserver/tree/wps-remote),
while the reference implementation of the other end is python based instead:
https://github.com/geosolutions-it/wps-remote-backend-XMPP

We’d like to contribute the GeoServer module, along with docs, as a community one, and if possible
add the reference python implementation as a new repository in the https://github.com/geoserver/ organization,
to stress its open status and encourage more people to take part.

As this is a community module there is no feature freeze rush, but I guess it would be nice to
have it in anyways in order to add it to the beta announcement

Feedback welcomed

Cheers
Andrea

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313

fax: +39 0584 1660272
mob: +39 339 8844549

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.



Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140


Geoserver-devel mailing list
Geoserver-devel@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Jody Garnett

On Thu, Feb 18, 2016 at 8:06 PM, Jody Garnett <jody.garnett@anonymised.com>
wrote:

+1 here (although it is not needed)

Really looking forward to this, it helps to have an alternate process
factory available in the codebase to see how the larger design fits
together.

You can also have a look at the sextante one, also meant to wrap
pre-existing processes:
https://github.com/geoserver/geoserver/tree/master/src/community/wps-sextante/src/main/java/org/geoserver/wps/sextante

Wondering about this one too, is it going to get into the main repo
sometimes?
https://github.com/jodygarnett/grass

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

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.

-------------------------------------------------------

The grass one died sadly :frowning:

···

On Thu, Feb 18, 2016 at 8:06 PM, Jody Garnett <jody.garnett@anonymised.com> wrote:

+1 here (although it is not needed)

Really looking forward to this, it helps to have an alternate process factory available in the codebase to see how the larger design fits together.

You can also have a look at the sextante one, also meant to wrap pre-existing processes:
https://github.com/geoserver/geoserver/tree/master/src/community/wps-sextante/src/main/java/org/geoserver/wps/sextante

Wondering about this one too, is it going to get into the main repo sometimes?
https://github.com/jodygarnett/grass

Cheers

Andrea

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313

fax: +39 0584 1660272
mob: +39 339 8844549

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.