[Geoserver-devel] Specific documentation about GeoServer architecture

Hi

I'm doing a Master Thesis about GeoServer and how it can be optimized
for a cloud computing environment.

I have seen that in the page
http://geoserver.org/display/GEOS/Reference there is a schema that
represents the internal architecture of GeoServer, but I wanted to
know if it was available more specific documentation
that explains the task being performed by each module and how it
interfaces with the other.

For example, it would be useful to know where in the architecture of
GeoServer you place the module control-flow.

Sincerely
Thank you for your attention

--
Federico Cacco

This would be of interest to me too. If we go with GeoServer at some point we’ll have to have it vetted by security and this is the sort of thing they like.
Jonathan

On 22 January 2013 13:49, Federico Cacco <federico.cacco@anonymised.com3…> wrote:

Hi

I’m doing a Master Thesis about GeoServer and how it can be optimized
for a cloud computing environment.

I have seen that in the page
http://geoserver.org/display/GEOS/Reference there is a schema that
represents the internal architecture of GeoServer, but I wanted to
know if it was available more specific documentation
that explains the task being performed by each module and how it
interfaces with the other.

For example, it would be useful to know where in the architecture of
GeoServer you place the module control-flow.

Sincerely
Thank you for your attention


Federico Cacco


Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only – learn more at:
http://p.sf.net/sfu/learnnow-d2d


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

This transmission is intended for the named addressee(s) only and may contain sensitive or protectively marked material up to RESTRICTED and should be handled accordingly. Unless you are the named addressee (or authorised to receive it for the addressee) you may not copy or use it, or disclose it to anyone else. If you have received this transmission in error please notify the sender immediately. All email traffic sent to or from us, including without limitation all GCSX traffic, may be subject to recording and/or monitoring in accordance with relevant legislation.

On Tue, Jan 22, 2013 at 2:49 PM, Federico Cacco <federico.cacco@anonymised.com403…> wrote:

Hi

I’m doing a Master Thesis about GeoServer and how it can be optimized
for a cloud computing environment.

I have seen that in the page
http://geoserver.org/display/GEOS/Reference there is a schema that
represents the internal architecture of GeoServer, but I wanted to
know if it was available more specific documentation
that explains the task being performed by each module and how it
interfaces with the other.

This question gets asked every few months, the answer is always the same:
we don’t have such documentation.
The reason is simple, there is not enough people to maintain it, and GeoServer
API changes relatively frequently too

My last attempt a few years ago was to try and generate some class diagrams
automatically from the sources using UMLGraph (http://www.umlgraph.org/doc.html)
but that was not maintainable as well.

Every time someone ask I invite the person to build up and share such documentation,
if it’s high level enough it should hold up for a few years (detailed one will get out
of date very quickly, on the other hand), but… so far nobody ever did so

For example, it would be useful to know where in the architecture of
GeoServer you place the module control-flow.

The control-flow module uses the DispatcherCallback extension point to follow
and control the evolution of OGC requests, it gets a callback for every significant
state in which the OGC dispatch process steps into:
https://github.com/geoserver/geoserver/blob/master/src/ows/src/main/java/org/geoserver/ows/DispatcherCallback.java

Cheers
Andrea

==
Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


Just to point it out there is some stuff in the programming guide.

http://docs.geoserver.org/latest/en/developer/programming-guide/index.html

ALthough as Andrea says generally those docs are out of date a few weeks after being written.

···

On Tue, Jan 22, 2013 at 8:34 AM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Tue, Jan 22, 2013 at 2:49 PM, Federico Cacco <federico.cacco@anonymised.com> wrote:

Hi

I’m doing a Master Thesis about GeoServer and how it can be optimized
for a cloud computing environment.

I have seen that in the page
http://geoserver.org/display/GEOS/Reference there is a schema that
represents the internal architecture of GeoServer, but I wanted to
know if it was available more specific documentation
that explains the task being performed by each module and how it
interfaces with the other.

This question gets asked every few months, the answer is always the same:
we don’t have such documentation.
The reason is simple, there is not enough people to maintain it, and GeoServer
API changes relatively frequently too

My last attempt a few years ago was to try and generate some class diagrams
automatically from the sources using UMLGraph (http://www.umlgraph.org/doc.html)
but that was not maintainable as well.

Every time someone ask I invite the person to build up and share such documentation,
if it’s high level enough it should hold up for a few years (detailed one will get out
of date very quickly, on the other hand), but… so far nobody ever did so

For example, it would be useful to know where in the architecture of
GeoServer you place the module control-flow.

The control-flow module uses the DispatcherCallback extension point to follow
and control the evolution of OGC requests, it gets a callback for every significant
state in which the OGC dispatch process steps into:
https://github.com/geoserver/geoserver/blob/master/src/ows/src/main/java/org/geoserver/ows/DispatcherCallback.java

Cheers
Andrea

==
Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it



Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only – learn more at:
http://p.sf.net/sfu/learnnow-d2d


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


Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

Thanks for the answers!

I understood the situation,
but it is not possible to have a achema of architecture, where are
represented the basic modules of GeoServer?

It is not essential that it is updated to the latest version, but I
could use it as a starting point.

I tried to look for one in the documentation, but they all seem
incomplete and no one with an overview of the composition of
GeoServer.

2013/1/22 Justin Deoliveira <jdeolive@anonymised.com>:

Just to point it out there is some stuff in the programming guide.

  http://docs.geoserver.org/latest/en/developer/programming-guide/index.html

ALthough as Andrea says generally those docs are out of date a few weeks
after being written.

On Tue, Jan 22, 2013 at 8:34 AM, Andrea Aime <andrea.aime@anonymised.com>
wrote:

On Tue, Jan 22, 2013 at 2:49 PM, Federico Cacco <federico.cacco@anonymised.com>
wrote:

Hi

I'm doing a Master Thesis about GeoServer and how it can be optimized
for a cloud computing environment.

I have seen that in the page
http://geoserver.org/display/GEOS/Reference there is a schema that
represents the internal architecture of GeoServer, but I wanted to
know if it was available more specific documentation
that explains the task being performed by each module and how it
interfaces with the other.

This question gets asked every few months, the answer is always the same:
we don't have such documentation.
The reason is simple, there is not enough people to maintain it, and
GeoServer
API changes relatively frequently too

My last attempt a few years ago was to try and generate some class
diagrams
automatically from the sources using UMLGraph
(http://www.umlgraph.org/doc.html)
but that was not maintainable as well.

Every time someone ask I invite the person to build up and share such
documentation,
if it's high level enough it should hold up for a few years (detailed one
will get out
of date very quickly, on the other hand), but... so far nobody ever did so

For example, it would be useful to know where in the architecture of
GeoServer you place the module control-flow.

The control-flow module uses the DispatcherCallback extension point to
follow
and control the evolution of OGC requests, it gets a callback for every
significant
state in which the OGC dispatch process steps into:

https://github.com/geoserver/geoserver/blob/master/src/ows/src/main/java/org/geoserver/ows/DispatcherCallback.java

Cheers
Andrea

--

Our support, Your Success! Visit http://opensdi.geo-solutions.it for more
information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

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

------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

--
Federico Cacco

On Wed, Jan 23, 2013 at 9:40 AM, Federico Cacco <federico.cacco@anonymised.com403…> wrote:

Thanks for the answers!

I understood the situation,
but it is not possible to have a achema of architecture, where are
represented the basic modules of GeoServer?

It is not essential that it is updated to the latest version, but I
could use it as a starting point.

If you are not up to do it yourself, an option is to get a core developer
under contract and have him/her do the diagram for you.

Cheers
Andrea

==
Our support, Your Success! Visit http://opensdi.geo-solutions.it for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


Ok, thank you very much!

I have another question (I hope the last one for today).

I realized that GeoServer is composed of several modules that perform
various functions, including the one for the WMS service.
But I wanted to ask if that module also performs graphic rendering of
maps requested by the GetMap operation,
and if it takes care of all operations that involve the creation of a
graphical map.

In other words it is true that the WMS module takes care of all the
operations for the service WMS, that WFS module takes care of all the
operations for the service WFS etc. ?

2013/1/23 Andrea Aime <andrea.aime@anonymised.com>:

On Wed, Jan 23, 2013 at 9:40 AM, Federico Cacco <federico.cacco@anonymised.com>
wrote:

Thanks for the answers!

I understood the situation,
but it is not possible to have a achema of architecture, where are
represented the basic modules of GeoServer?

It is not essential that it is updated to the latest version, but I
could use it as a starting point.

If you are not up to do it yourself, an option is to get a core developer
under contract and have him/her do the diagram for you.

Cheers
Andrea

--

Our support, Your Success! Visit http://opensdi.geo-solutions.it for more
information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

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

--
Federico Cacco

On Wed, Jan 23, 2013 at 1:35 PM, Federico Cacco
<federico.cacco@anonymised.com> wrote:

Ok, thank you very much!

I have another question (I hope the last one for today).

I realized that GeoServer is composed of several modules that perform
various functions, including the one for the WMS service.
But I wanted to ask if that module also performs graphic rendering of
maps requested by the GetMap operation,
and if it takes care of all operations that involve the creation of a
graphical map.

In other words it is true that the WMS module takes care of all the
operations for the service WMS, that WFS module takes care of all the
operations for the service WFS etc. ?

It is true that each takes care of whatever the protocol demands, but lower
level operations such as painting the actual map, accessing raster
and vector data, reprojecting data if necessary and so on, those
are done by the GeoTools libraries.
Other specific needs are sometimes addressed by other external libraries,
e.g., SVG handling is done by Batik, GeoJSON is done by json-lib,
REST basic support is done by Restlet, and so on.

Cheers
Andrea

--

Our support, Your Success! Visit http://opensdi.geo-solutions.it for
more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

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

I put together a little Graphviz1 diagram which I hope captures what’s been discussed so far. Maybe it will be useful: http://dev.opengeo.org/~dwinslow/architecture.png

I made a Github gist with the Graphviz source: https://gist.github.com/4606384

Eventually it might be nice to include something like this diagram on the index page that Justin mentioned. We might be able to use the Sphinx plugin for embedded graphviz diagrams. http://sphinx-doc.org/ext/graphviz.html

···

On Wed, Jan 23, 2013 at 8:05 AM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Wed, Jan 23, 2013 at 1:35 PM, Federico Cacco
<federico.cacco@anonymised.com> wrote:

Ok, thank you very much!

I have another question (I hope the last one for today).

I realized that GeoServer is composed of several modules that perform
various functions, including the one for the WMS service.
But I wanted to ask if that module also performs graphic rendering of
maps requested by the GetMap operation,
and if it takes care of all operations that involve the creation of a
graphical map.

In other words it is true that the WMS module takes care of all the
operations for the service WMS, that WFS module takes care of all the
operations for the service WFS etc. ?

It is true that each takes care of whatever the protocol demands, but lower
level operations such as painting the actual map, accessing raster
and vector data, reprojecting data if necessary and so on, those
are done by the GeoTools libraries.
Other specific needs are sometimes addressed by other external libraries,
e.g., SVG handling is done by Batik, GeoJSON is done by json-lib,
REST basic support is done by Restlet, and so on.

Cheers
Andrea

Our support, Your Success! Visit http://opensdi.geo-solutions.it for
more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it



Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only – learn more at:
http://p.sf.net/sfu/learnnow-d2d


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

I’m sorry David Winslow

I forgot to thank you for the diagram that you prepared for me!
Your work is very useful to me…

Many thanks

2013/1/23 David Winslow <dwinslow@anonymised.com>

···

On Wed, Jan 23, 2013 at 8:05 AM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Wed, Jan 23, 2013 at 1:35 PM, Federico Cacco
<federico.cacco@anonymised.com> wrote:

Ok, thank you very much!

I have another question (I hope the last one for today).

I realized that GeoServer is composed of several modules that perform
various functions, including the one for the WMS service.
But I wanted to ask if that module also performs graphic rendering of
maps requested by the GetMap operation,
and if it takes care of all operations that involve the creation of a
graphical map.

In other words it is true that the WMS module takes care of all the
operations for the service WMS, that WFS module takes care of all the
operations for the service WFS etc. ?

It is true that each takes care of whatever the protocol demands, but lower
level operations such as painting the actual map, accessing raster
and vector data, reprojecting data if necessary and so on, those
are done by the GeoTools libraries.
Other specific needs are sometimes addressed by other external libraries,
e.g., SVG handling is done by Batik, GeoJSON is done by json-lib,
REST basic support is done by Restlet, and so on.

Cheers
Andrea

Our support, Your Success! Visit http://opensdi.geo-solutions.it for
more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it



Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only – learn more at:
http://p.sf.net/sfu/learnnow-d2d


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