Hi,
seeing proposals that do break backwards compatibility, I believe it's time
to make it clearer as to why backwards
compatibility in GeoServer is very important (and breaking it represents a
fatal mistake most of the time).
The common GeoServer deployment in public administrations is one or more
GeoServer installations
being accessed by a variety of internal and external clients. The range of
clients accessing the server
is vast and often completely out of control of the admins... because this
is the nature of an interoperable
service, it does not talk with a specific client, it's make to talk with
everybody.
To give a small summary:
- Internal users using one of the task specific web applications
- Internal users with desktop clients (often different types, different
departments might have different desktop clients, sometimes different
versions of them, especially if the desktop client in question does not
require a licence and the power user in question got the right to install
programs locally)
- Other internal services cascading or consuming the OGC service (SOA
like)
- External users, same as above but with a lot more variability
The admins every now and then need to upgrade the server, be it because of
security reasons, a critical bug fix, or because a new application requires
extra functionality provided by a newer version.
When they do so, they need to ensure that everything else keeps on
working... and that's a lot of pain, because most of the clients above are
_outside_ of their control, even the in house ones:
- Maybe a web application provided by a external vendor relies on some
extra flexibilty (e.g., not requiring the version or service), upgrading it
breaks it, but to fix the application a new contract with the provider
needs to be setup (administrative and econominal issues arise)
- Maybe an internal desktop client is in the same boat, but an upgrade
of the client might require contracts, or verification that plugin X custom
developed still works on the newer version, and so on.
Long story short, doing upgrades requires a lot of verification, and the
slightest backwards incompatibility just breaks havoc and makes the upgrade
impossible (which, in case of upgrades related to security fixes, makes the
situation untenable).
That's why I keep on using a hard line on backwards incompatible changes,
even when fixing a mistake: being "right" is not enough, operational
continuity is more important than that.
That does not mean we cannot change stuff, but at least a fallback option
to re-enable the previous behavior must be always provided.
Cheers
Andrea
PS: there is also a good read here
https://en.wikipedia.org/wiki/Robustness_principle
To it, I'd add that on day one it's good to be as strict as possible, but
once the deploys happen, whatever
flexibility remained should be kept.
--
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.
==
Ing. Andrea Aime
@geowolf
Technical Lead
GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549
http://www.geo-solutions.it
http://twitter.com/geosolutions_it
*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*
Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.
The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.
-------------------------------------------------------
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel