[QGIS-Developer] QGIS Server 3 status

Régis Haubourg regis.haubourg at gmail.com
Wed Oct 4 12:42:59 PDT 2017


Hi again,
here is my very first draft:

 Several images can be pulled from the joined slides given at Foss4G-EU
here
https://drive.google.com/file/d/0BzatQbprJ-hjWF95VzdHbGRsVEk/view?usp=sharing


René-Luc, David, Paul, don't hesitate to amend that!

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


*Qgis server refactoring is done!*
As you may know, QGIS is jumping to a new major version (yes!).
Doing so was made necessary because of the need to switch to python 3, QT5,
but also because we needed to break the QGIS API in several places.

A year ago, a tiny troll <https://github.com/qgis/qgis3.0_api/issues/63>from
switzerland rang a bell about the strong need for love server code base
required.

Indeed, the API was locked by some old methods of QGIS server. In short,
QGIS server was reparsing the qgs project file in his own way, and created
dependencies to part of QGIS we needed to drop.

As outsourcing the server code base was not an option, so we had to
refactor it.

The involved parties decided to get engaged in a code sprint
<https://github.com/qgis/QGIS/wiki/QGIS3---QGIS-Server-code-sprint-Notes> in
the city of Lyon , France dedicated to sharing their vision, planning the
work and finally making all the following
<https://github.com/qgis/QGIS-Enhancement-Proposals/issues/74> happen :



*# Deep, complex and unrewarding tasks:*

- Remove all singleton calls

- Cut all the dependencies to the old qgis project parser

- Minimize dependencies to GUI library. Since fonts are necessary to render
maps, totally removing them was not feasable.

*# Higher level refactoring*

All services (WMS GetMap, WFS GetFeature, GetLegendGraphics, WCS, GetPrint
etc..) have been rewritten. Some like WMS were entirely rewritten. Kudos to
the dev's


*# New features and architecture stuff*

- QGIS Server Services as plugins like providers. (slide 10 would be a nice
figure here)

- Multi-thread rendering  <https://github.com/qgis/QGIS/pull/3886>- like in
the desktop

- A new option to trust layer metadata
<https://github.com/qgis/QGIS/pull/5094> and speed up project loading


*# Infrastructure tasks*

- Build a OGC compliancy platform
<http://oslandia.com/en/2017/06/16/qgis-server-ogc-cite-compliance-testing/>
and
integrate it to a continuous integration platform. Conformity reports are
now pushed to tests.qgis.org *XXX waiting for Richard to expose them in the
website*

- Add unit tests... and again more unit tests

- Stress QGIS server against security leaks
<http://oslandia.com/en/2017/06/14/qgis-server-security-aspect/> (SQL
injections and other malicious attacks)

- Start profiling and bench marking performances. This work still need some
love - and funding - to be achieved


A presentation
<https://git.osgeo.org/gogs/foss4g-europe/foss4g-europe-2017-paris/src/master/presentations/2017-07-20/general_track/foss4g-europe-2017-QGIS_3_Refactoring_and_enhancement-DMarteau-PBlottiere.pdf>
was
given at FOSS4G-EU in July.

*Congratulations* to the developers who worked hard on that work.

Now this deserves to be well tested, please report back any issues!



2017-10-04 15:17 GMT+02:00 Anita Graser <anitagraser at gmx.at>:

>
>
> On Wed, Oct 4, 2017 at 1:23 PM, Régis Haubourg <regis.haubourg at gmail.com>
> wrote:
>
>> Hi
>>
>> Yes, refactoring is now complete! see : https://github.com/qgis/QGIS-E
>> nhancement-Proposals/issues/74#issuecomment-334123595
>>
>> Anita, I'll draft an article tonight if you still agree to review it,
>> that would be great!
>>
>
>
> ​Sure!
>
> Anita
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20171004/bec3aa08/attachment.html>


More information about the QGIS-Developer mailing list