[QGIS-Developer] QGIS Server 3 status

Tim Sutton tim at kartoza.com
Thu Oct 5 02:25:57 PDT 2017


Hi

> On 05 Oct 2017, at 10:09, David Marteau <dmarteau at 3liz.com> wrote:
> 
> Hi,
> 
> Thanks for the overview. 
> 
> We need more examples of embedding the server in python and I plan to publish some concrete examples from our use cases asap.

Thats great David! Looking forward to testing it out. Can you maybe publish your examples in the python cookbook?

Regards

Tim

> 
> David M.
> 
> 
>> Le 5 oct. 2017 à 09:34, Alessandro Pasotti <apasotti at gmail.com <mailto:apasotti at gmail.com>> a écrit :
>> 
>> Hi Règis,
>> 
>> thanks for the nice summary!
>> 
>> Maybe it would be interesting for python devs to stress out how QGIS server 3 brings the bindings and the plugins to a new level: while the original filter-style python plugins, are still available, the new service-oriented plugin-based architecture allows Python developers to create new services (for example WPS) by implementing a new `QgsService` directly in Python. Overriding existing services is also possible.
>> 
>> The server API has now full python bindings and a QGIS server can be easily implemented directly in Python and wrapped into your favourite framework (see this simple wsgi experiment: https://gist.github.com/elpaso/0cd7fb6a0518dc46c45557d9133438b8 <https://gist.github.com/elpaso/0cd7fb6a0518dc46c45557d9133438b8> ).
>> 
>> For more examples of the API, I think there are some basic examples in the official Python tests: https://github.com/qgis/QGIS/blob/master/tests/src/python/test_qgsserver_services.py#L79 <https://github.com/qgis/QGIS/blob/master/tests/src/python/test_qgsserver_services.py#L79> 
>> 
>> 
>> Cheers
>> 
>> 
>> 
>> 
>> 
>> On Wed, Oct 4, 2017 at 10:49 PM, Régis Haubourg <regis.haubourg at gmail.com <mailto:regis.haubourg at gmail.com>> wrote:
>> Well, from a user point of view, that's a bit hard since all this is 90 % refactoring.. which is supposed to be transparent for users. 
>> 
>> We have the trust and multithreaded features, that should (and early testers today found it slower today) and the ability to code new services using python.   
>> We can also show some numbers about OGC conformity tests and the goal of reaching OGC certification (WMS only by now). 
>> 
>> Alessandro, René-Luc and David, do you have some user oriented examples for the new modular API ? 
>> 
>> 
>> 
>> 2017-10-04 22:18 GMT+02:00 Anita Graser <anitagraser at gmx.at <mailto:anitagraser at gmx.at>>:
>> Great overview, thanks for drafting Régis!
>> 
>> Some additional ideas: Could we add a section with the key improvements from an user perspective? 
>> 
>> I'm particularly intrigued by the services / plugins part. Could you elaborate?
>> 
>> Regards,
>> Anita
>> 
>> 
>> 
>> On Wed, Oct 4, 2017 at 9:42 PM, Régis Haubourg <regis.haubourg at gmail.com <mailto:regis.haubourg at gmail.com>> wrote:
>> 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 <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 <http://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 <mailto:anitagraser at gmx.at>>:
>> 
>> 
>> On Wed, Oct 4, 2017 at 1:23 PM, Régis Haubourg <regis.haubourg at gmail.com <mailto:regis.haubourg at gmail.com>> wrote:
>> Hi 
>> 
>> Yes, refactoring is now complete! see : https://github.com/qgis/QGIS-Enhancement-Proposals/issues/74#issuecomment-334123595 <https://github.com/qgis/QGIS-Enhancement-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
>> 
>> 
>>  
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> QGIS-Developer mailing list
>> QGIS-Developer at lists.osgeo.org <mailto:QGIS-Developer at lists.osgeo.org>
>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer <https://lists.osgeo.org/mailman/listinfo/qgis-developer>
>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer <https://lists.osgeo.org/mailman/listinfo/qgis-developer>
>> 
>> 
>> 
>> -- 
>> Alessandro Pasotti
>> w3:   www.itopen.it <http://www.itopen.it/>_______________________________________________
>> QGIS-Developer mailing list
>> QGIS-Developer at lists.osgeo.org <mailto:QGIS-Developer at lists.osgeo.org>
>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> 
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20171005/2f7ea1fe/attachment-0001.html>


More information about the QGIS-Developer mailing list