Subscribe to this thread
Home - General / All posts - Please help me with these queries regarding serving WMS Tiles through Manifold
gk10892 post(s)
#12-Mar-18 07:54

Hi,

Even though I have been working in the GIS domain for more than a decade now, I truly learned about Manifold GIS through Dimitri's recent and expansive comments on a reddit.com/r/GIS thread. I have been underwhelmed with the, so called, updates by the big GIS companies in terms of 64bit and utilization of multiple cores. Thanks to him, I am exploring Manifold and from what I have seen so far, I am pumped up and want to get licenses for the software ASAP. But since I am in a govt. setup in a third world country, it is going to take a while, and that too if I play my cards well to convince them. That is why I am seeking your help.

While, the comments on reddit comments and the videos/examples/writeups on Manifold website are bullet proof arguments for switching to Manifold in general GIS workflow, I am more involved in the 'web' side of of the GIS. We carried out a project using ArcGIS server, beginning in 2009 when it proved to be a great choice in terms of the designing/publishing flexibility that it gave. In my current project, we are using GeoServer and doing just fine. With rising usage, we have to scale up our servers again and again.

After Dimitri's post, as I explored Manifold, I wanted to see if Manifold has similar magic packed up for the 'web' side of GIS too, especially the tile generation/updates/rendering for the WMS. But I was not able to find anything directly relevant. Maybe you can point me in the right direction.

Basically, what I want to ask is:

* Does Manifold workflow include generation/hosting of tiles for WMS?

* How does Manifold compare with GeoServer/MapServer in delivering WMS services, especially under heavy load? Have any benchmarking studies been done?

* Since GeoServer is pure Java, I think it would support 64bit architecture/parallel processing to the extent that Java natively supports it. Is there a way to incorporate Manifold (and other GPU/Parallel stuff) into the web-publishing/accessing workflow to make it more efficient.

I have come to you looking for insights that I am confident will lead me to create a much more robust WebGIS server/application than is otherwise possible. I look forward to learning in the fold of Manifold!

Cheers!

Gaurav

Dimitri

5,119 post(s)
#12-Mar-18 09:44

bullet proof arguments for switching to Manifold in general GIS workflow

That is a compliment for sure, but in truth our objective is more modest, for Manifold to earn a place in your GIS toolbox regardless of which tool you prefer for your primary GIS.

I think that's especially true for Release 9, which has just very recently been issued and is evolving very rapidly. Some people can already use 9 as their primary GIS but others will be using it to augment their other tools. Over the weeks and months ahead as 9 gets more and more features there will be less need to turn to other tools to do what 9 cannot, of course, but for now there are key areas yet to be integrated into 9. Web serving is one such area.

Release 8 has a spiffy web server, IMS, but 9 as yet does not. 9 will get a web server too, significantly better than that in 8 we all expect, and anybody who has a 9 license today will get that as part of a free update to their Release 9 Universal license. Once that web server comes out it is likely that versions of 9 licenses (as was the case with Release 8) will become available at "personal" or "professional" or whatever levels that do not include the web server as Universal licensing does. But for now, the only 9 licenses that are being sold are all Universal licenses so if you get 9 today when the web server comes out that will be part of your license as well.

To comment on your other questions (other folks on this forum who know more might want to pitch in...):

* How does Manifold compare with GeoServer/MapServer in delivering WMS services, especially under heavy load? Have any benchmarking studies been done?

MapServer is a fine product. For various technical reasons I expect anything in 9 would be the same or faster. There's no reason to believe that 9 would in any way be slower, whether 9 is running off native 9 project storage or 9 is running off data sources like Oracle or PostgreSQL.

* Since GeoServer is pure Java, I think it would support 64bit architecture/parallel processing to the extent that Java natively supports it. Is there a way to incorporate Manifold (and other GPU/Parallel stuff) into the web-publishing/accessing workflow to make it more efficient.

I think for now it would be most effective to let Manifold turn the crank on 9 features for the next few months to see what emerges for handling web serving.

You probably didn't mean it that way, but just in case for others who might not understand, it is worth mentioning that using Java in itself doesn't add parallel processing to anything. You have to write parallelized code to make what you do parallel, not an easy thing for most people to hand-code regardless of the language they use.

9, in contrast, is automatically parallel and whatever you write in SQL in 9 will automatically be parallelized. You don't have to code your own parallelized routines... just write ordinary SQL and 9 will make it parallel.

That brings up a speculative case for 9 in performance as compared to environments which are not automatically parallel. Sure, if all you are doing is serving tiles for a particular area of interest, well, that's not rocket science and whatever the WMS server you use does by default is probably going to work OK. But many people operate web servers where they want the server to alter what it serves based on user criteria.

They want servers, in effect, to create results that are based on queries, which in some cases might be queries that are way more complex than just showing those dots that represent houses for sale in Hermosa Beach, CA, that cost between $800K and $3 million. They might want the end result of several sophisticated operations, like topology overlays and spatial joins, all put together.

Such work is all about sophisticated DBMS queries, and usually those are best done in spatial SQL, not hand-coded in C++ or Java, since there is a really big amount of DBMS supporting work done for you automatically in SQL. To the extent you can use a highly optimized, fully parallel, spatial SQL instead of hand-coding something, the better performance you are likely to get as well.

It's been well over a year since the automatic optimizer within the Radian query engine used in 9 has started producing faster results in spatial SQL than most human programmers can hand-code in C++. These days you can use spatial SQL in 9 and be fairly confident no group of humans is going to be able to get better speed than your SQL by hand-coding. It's also highly unlikely that anybody's first or second cut at such things is going to be as totally bulletproof, or as maintainable or as updatable as the SQL result, either.

I guess the bottom line answer to your question is that using 9 as a web server right now is not yet an option, but that there is every reason to believe that what 9 does eventually deliver for that will be a good option.

Ah... one last thing. The nice thing about having quality software like MapServer as a point of comparison is that nothing stimulates immediate improvements within 9 as saying, "hey... this software over here works faster...".

The recent exploration of 9 speed with contours is a good example: any case where somebody finds any instance where something else is faster is going to get an immediate response. Such edge cases are really super for finding places to improve, and Manifold makes such improvements in days, not weeks or months.

With contours, I think today's build or tomorrow's will add tweaks that increase speed dramatically so the one or two examples where ESRI was found to do contours faster are now set right, so that Manifold runs significantly faster. Those improvements happened within two days after we first received the sample data required to run tests. You'll get that same response with any comparisons of 9 to MapServer as well. If 9 ain't at least as good or faster, Manifold will work night and day to get that improved right away.

gk10892 post(s)
#12-Mar-18 10:47

Thank you for your in-depth reply and I am quite loving the forthright approach towards answering the questions: bashing those that lag behind (I am looking at you ESRI) where nothing less would do, while frankly admitting the shortcomings (for now) of Manifold 9.

I shall really look forward to an integrated webgeoserver integrated with Manifold that can blow the expensive, market hoarding tools out of the water. Even if the base capabilities like serving of tiles are at par with those of GeoServer/Mapserver, I am certain Manifold 9 will easily find its way into the toolboxes of GIS developers based on the web APIs it exposes to leverage its performance at data-crunching. If Manifold can improve upon the tasks like generating/updating the tiles, especially with the use of radian database, I am sure it will see a mass adoption very soon.

In this regard, I shall try on my own and shall request the fellow developers to develop samples that can be stacked together to build a full fledged WebGIS application as and when more and more APIs are exposed.

I look forward to more comments from the other experts in the group. If there is a way to be a part of testing community for your upcoming improvements, please sign me up.

Dimitri

5,119 post(s)
#12-Mar-18 13:11

If there is a way to be a part of testing community for your upcoming improvements, please sign me up.

Easy to do: Manifold now uses an open beta process where about once a week a Cutting Edge build comes out via an announcement on the forum. Edge builds are stable, and most people use them, but they are beta builds and are subject to change. About once a month or so changes introduced in Edge builds get aggregated into the next "official" build. The current official build is 9.0.165, with the current Edge build 9.0.165.4, and the next Edge build coming out very soon.

Documentation is always behind the latest Edge build, so to work with those you have to go with what are sometimes terse comments in the release notes.

Manifold User Community Use Agreement Copyright (C) 2007-2017 Manifold Software Limited. All rights reserved.