[mapguide-internals] Future Development Options for Web Server Extensions and new High Performance Viewer

carlj carl at jokl.co.uk
Wed Dec 23 09:36:44 EST 2009


I am trying to be diplomatic here but it seems like there is a conflict of
interest between two different development worlds. Autodesk is a C++
dominated world. It deals with 3D Modeling software and its core product
portfolio consists of traditional desktop applications. With MapGuide it is
pushing out to the Web which is not really its core area of expertise. As a
C++ dominated company it has stuck to its core skill based and endeavoured
to use C++ as much as possible.

Who are the customers and users of MapGuide? Web development companies. What
technologies do they use? Many diverse web oriented technologies. One thing
which no web development organisation of which I am aware uses is C++. The
development speed and productivity of C++ does not suit the web. Autodesk as
a C++ dominated company didn't use C++ to power its own website. I notice
"Servlet" in the url of the Autodesk website which I am viewing which is a
clue to me what technology Autodesk used to power its own website.

The two development cultures are really in conflict. Pushing web developers
to have to constrain doing web development in a heavily C++ way is
unwelcome. Using SWIG means that while development may be done using
something like Java or C# that development still has to care about whether
memory is being leaked by objects not being properly disposed of on the
native side. Some of that isn't even properly within the web developers
control and yet they still have to suffer the consequences. 

MapGuide is open source and yet probably doesn't get the development support
it could have for a similar issue to above. This community is pushing for
people to help out and fix issues in MapGuide using C++ but unless I am
mistaken those actually using the software are generally companies which
develop with some other technology. Those companies may simply not have the
expertise to contribute C++ development.

I think that Autodesks customers would rather use an implementation of the
Web Server Extensions which more seamlessly integrates with their chosen
technology stack. Having personally been involved in such a project I know I
would have preferred a pure implementation over a SWIG generated one. 

I understand that compromises have been made to accommodate the available
resources. I don't believe Autodesk on its own currently has the resources
to port and maintain different implementations of the extensions. It would
require help from outside. 

The current development arrangement really suits Autodesk much more than
Autodesks customers. I am trying to asses whether there is a willingness to
try and change things to better suit the customers. 

I have the knowledge to be able to port source code from C++ to Java and
.Net (and possibly PHP). The problem is that I am just one developer and it
would take a prohibitive amount of time to attempt to do it on my own. If
there are others who like me would prefer to see the web server extensions
ported then a team of individuals may be able to work on porting the web
server extensions. The work on the Maestro API for example has already
worked on the principle of deserializing C++ object to .Net. However the
Maestro API is an external effort. I would prefer something which could be
used as a drop in replacement for the existing Web Server Extensions. The
ported libraries created in the process could be used in Java/JavaFX and/or
Silverlight based viewers. 

As time goes on I suspect Autodesk is not interested in developing with
anything other than C++. However the broader community might be.

For my part I am assessing interest as if there really isn't any interest I
might as well just walk away.

I am no longer going to be working with MapGuide as such anyway however some
of the things which MapGuide does are applicable to the Research project
which I am going to be carrying out. My research involves using the open
source Virtual World "Project Wonderland". This virtual world is Java based.
It has been developed by Sun Labs. The problem is that Sun is being acquired
by Oracle which raises the question as to whether the project would continue
to be funded under Oracle. As my research uses the project then I have a
interest to try and prove the value of Wonderland to Oracle. To that end I
want to implement a Wonderland Module which can render spatial data from
Oracle Spatial. It would demonstrate Project Wonderland being used as a
complementary technology to Oracle's database (their most core product). 

MapGuide already deals with getting data from a spatial data source and then
rendering it. In that sense MapGuide already involves transforming spatial
data into triangles to be rendered. 

My thinking was that I could try and kill several birds with one stone. Port
some of the Web Server Extensions to Java (and I could also port to C# at
the same time as the two are similar enough to make doing so
straightforward). By having the ability to desearialize MapGuide C++ objects
to Java I then have the data in Java without native encumbrances ready to be
rendered. Then I have to deal with algorithms and logic for taking these
objects and rendering them. This logic would be reusable in Wonderland to
render data from Oracle spatial. MapGuide would again have a high
performance viewer. For the first time MapGuide would be able to deliver
hardware accelerated 3D Graphics in the browser as well as hardware
accelerated 2D rendering. 

It was a thought.
-- 
View this message in context: http://n2.nabble.com/Future-Development-Options-for-Web-Server-Extensions-and-new-High-Performance-Viewer-tp4208470p4208864.html
Sent from the MapGuide Internals mailing list archive at Nabble.com.


More information about the mapguide-internals mailing list