Select a cataloging / metadata system? - metadata

We are setting up a GIS server based on qgis / postgresql-postgis and geoserver.
We are missing an important tool, the cataloging and metadata system.
Postgresql and geoserver are on a windows server 2019 virtual server.
We are GIS & geomatics people but not computer scientists. We are therefore looking for an opensource solution that is relatively easy to install and configure, which does not require extensive computer skills.
What solutions do you think would be suitable? We have identified :
Geonetwork,
Georchestra https://www.georchestra.org/software.html
Geonode
Are there others?
Among these 3 solutions, would there be one easier to set and use, which would be functional on both linux and windows?
Are there other criteria to take into account in our selection of technology?
Thank you very much for your help, recommendation and / or feedback.

GeoNetwork might be the silver bullet (though it tends to do more than the job, since it also features an integrated geodata viewer).
geOrchestra provides both GeoServer and GeoNetwork, and a Single Sign On feature. It also provides additional modules like a user management console, a data upload tool ("datafeeder"), analytics, mapstore and so on. It's very modular and leaves plenty of room for integration.
GeoNode provides a fully integrated environment. It's like a social network dedicated to data. It's also based on GeoServer and has a SSO.
None of the above are easy to setup & maintain if you do not have basic computer skills. With a docker composition, you may have one of them running pretty quickly though.

You may try to use Cartoview which is an extension of GeoNode, visualizing the layers and maps in geospatial apps. It can be used in different environments (Linux, Windows, macOS).
You can download the windows installer from the link above and give it a try!

Related

What are the top 5 deployment automation tools?

I am using IBM UrbanCode udeploy, great tool but afraid IBM will kill it sooner or later with their slow response in supporting. What are the other choices?
UCD isn't going anywhere. Its in high demand these days, and is gaining traction in z/OS shops as well.
However, there other popular tools are Chef and Puppet. Just be prepared for manual data entry and less friendly interface. They work, but are more work to use.

Change Control / Configuration Management

I am looking for some software to manage configuration data within an organisation.
The end result is to be able to answer the question "what breaks when I remove xyz component?"
We could write this ourselves but I am sure someone has done it already.
The software should answer questions such as:
- What software / systems access this data?
- Which server does this system reside on?
- What external data does this system require?
This is related to development in that to replace an existing system we must understand the interdependences and ensure that the solution does not unintentionally break other systems.
Is there a tool that shows a hierarchical tree of dependencies for a single piece of software or data repository and allows drill down?
There are a number of tools that seem to focus on hardware / OS / infrastructure configuration management using automated sniffing.
- CFEngine
- easycmdb
Any suggested CMS / CMDB?
Thank you
Yes, if you have the money, HP uCMDB is for you.
It allows you to discover hardware and processes on your infrastructure as well as the relationships between those based on TCP traffic. UNIX, Linux, Windows, z/OS, NonStop, Oracle, WebSphere, it gathers everything.
Based on the CI's collected it's possible (in uCMDB) to make models showing you those CI's you want to show plus related objects.
Also it's possible to federate/replicate external data, completing the CMS with non-discoverable items.
Afterwards it becomes possible to connect with Service Manager and roll up CMS objects into business services and processes.

Can I setup RavenDB on Windows to version/manage large binary files?

I'm trying to version control my system deployment bits: OS images, drivers, 3rd party installers, 1st party installers (our applications). I need to have everything in a coherent bundle (tags). And be able to get the entire bundle for any of our active releases.
I'm finding that no common version control system is going to fit the bill. And even the ones that have some capabilities (git media, annex, bup) will not run well on Windows. Digital Asset Management systems seem not entirely suited for this purpose and are very foreign to me.
I heard that people are building custom systems on document databases like MongoDB. I'm asking you for advice on how to build, structure, and maintain a system like this on RavenDB and the Windows server/client platform.
RavenDB has specific support for binary attachments, which is handled in an efficient manner.
You can handle things that way.
I'm not prepared to build a custom RavenDB app/instance for this purpose. After a lot of experimentation, I've settled on NuGet and Chocolatey, along with the original large binary data store, a network drive!

Installer capabilities, WIX vs InstallShield Express

Programmers that actually promote their products to production need an installer. (pre-emptive "programming related" justificaton.)
For deploying a new suite of internal corporate apps and services, I'm trying to decide between using WIX and the InstallShield Express edition that comes with Visual Studio 2010.
I've looked, but haven't found a feature matrix that highlights the features that are not in the express edition. I expect WIX to be generally quite capable, but more difficult to use, and have heard of situations that WIX doesn't support well.
Has anyone found a feature matrix, or have other recommendations on the long-term best way to manage internal deployments?
I find that wix is a great choice (in spite of the very very steep learning curve) if you need to manage installers in a complex environment because
setup definitions are stored in an XML format
it gives you full control to the underlying windows installer technology; the XML schema typically closely follows the windows installer database schema (which is also the main reason why the learning curve is so steep)
It is easy to integrate into your automated build
Parts of the setup can be generated automatically
It allows you to define small reusable modules and manage complex dependencies between them.
no cost or licensing issues (before wix we all had to use a single "Installshield PC")
Why the XML format is an advantage: this allows you to fully leverage code versioning systems like subversion or mercurial. Reviewing changes, examining history or even merging changes across branches is a breeze. Compare that to installshield projects which are opaque binary blobs.
What I mean by managing complex dependencies: in our case we have a big pool of reusable component libraries with a complex set of dependencies between them, and many applications that were build on top of that. Before wix, this was a nightmare when a new dependency was introduced somewhere: ALL setups had to be updated.
Now with wix, we have a ComponentGroup for each library, organized into a couple wixlibs. Each component group references other component groups that it depends on with a ComponentGroupRef. Application setup developers only need to reference the component groups of direct dependencies, and wix will do the rest by following the references. As a result, introducing a new dependency only requires making a single local change. Our automated builds and wix do the rest to regenerate all the setups.
InstallShield Express is for basic deployments (it's nothing but glorified WinZip). You can also check my favorite AdvancedInstaller. They have also free express edition but I think both of them will be no use to you, because if you need to do anything with IIS, MS SQL, Active directory, GAC etc, you will need "enterprise level" editions. WiX is free but learning curve is so steep, that it's not worth learning. I regret ever learning it.
If you need this just for internal deployments and cannot spend $1,000 on installer, just create your own "installation" project from scratch. System.EnterpriseServices.Internal namespace contains some useful wrappers for IIS, GAC etc. System.Configuration.Install.ManagedInstallerClass can help you deploy windows services. In other words, you can make your own program from scratch that can handle all necessary steps for deployment of your primary product. Many companies don't use for their flagship products commercial installers, they make their own.
The feature matrix for Install shield can be found here:
http://www.flexerasoftware.com/products/installshield/features.htm
However, for the IIS section (I assume you need IIS based on the link to my earlier question) all it says is "Limited". It is up to you to guess what Limited means, but I am betting it will not support an enterprise level deployment.

Software Deployment in a Virtual Environment

I'm looking for a way to give out preview or demo versions of our software to our customers as easy as possible.
The software we are currently developing is a pretty big project. It consists of a client environment, an application server, various databases, web services host etc.
The project is developed incrementally and we want to ship the bits in intervals of one to two months. The first deliveries will not be used in production. They have the puropse of a demo to encourage the customers to give feedback.
We don't want to put burden on the customers to install and configure the system. All in all we are looking for a way to ease the deployment, installation and configuration pain.
What I thought of was to use a virtualizing technique to preinstall and preconfigure a virtual machine with all components that are neccessary. Our customers just have to mount the virtual image and run the application.
I would like to hear from folks who use this technique. I suppose there are some difficulties as well. Especially, what about licensing issues with the installed OS?
Perhaps it is possible to have the virtual machine expire after a certain period of time.
Any experiences out there?
Since you're looking at an entire application stack, you'll need to virtualize the entire server to provide your customers with a realistic demo experience. Thinstall is great for single apps, but not an entire stack....
Microsoft have licensing schemes for this type of situation, since it's only been used for demonstration purposes and not production use a TechNet subscription might just cover you. Give your local Microsoft licensing centre a call to discuss, unlike the offshore support teams they're really helpful and friendly.
For running the 'stack' with the least overhead for your clients, I suggest using VMware. The customers can download the free VMware player, load up the machines (or multiple machines) and get a feel for the system... Microsoft Virtual PC or Virtual Server is going to be a bit more intrusive and not quite the "plug n play" solution that you're looking for.
If you're only looking to ship the application, consider either thinstall or providing Citrix / Terminal services access - customers can remotely login to your own (test) machines and run what they need.
Personally if it's doable, a standalone system would be best - tell your customers install vmware player, then run this app... which launches the various parts of your application stack (maybe off of a DVD) and you've got a fully self contained demo for the marketing guys to pimp out :)
You should take a look at thinstall(It has been bought by vmware and is called thinapp now), its an application virtualizer.
It seems that you're trying to accomplish several competing goals:
"Give" the customer something.
Simplify and ease the customer experience.
Ensure the various components coexist and interact happily.
Accommodate licensing restrictions, both yours and the OS vendor's.
Allow incremental and piecewise upgrades.
Can you achieve all of these by hosting the back end (database, web server, etc.) and providing your customers with a CD (or download) that contains the client? This will give them the "download/upgrade experience" that goes along with client software, without dealing with the complexity of administering the back end.
For a near plug-and-play experience, you might consider placing your demo on a live linux or Windows CD. Note: you need a licensed copy of Windows for the latter.
Perhaps your "serious" customers might be able to request their own demo copies of the back end as well; they'd be more amenable to the additional work on their part.
As far as OS licenses, if your vendor(s) of choice aren't helpful, you might consider free or open-source alternatives such as FreeDOS or linux.
Depending on if you can fit all the needed services into a single OS instance or not...
Vmware Ace or whatever they're calling it nowadays will let you deliver single virtual machines under strict control, with forced updates, expiration and whatnot. But it sounds easier to just set up a demo environment and allow remote access to it.
The issue here I guess is getting several virtual machines to communicate under unknown circumstances - if one is not enough?
An idea then is to ship a physical server preconfigured with virtualisation and whatever amount of virtual servers needed to demonstrate the system.
Using trial versions of the operating system might be good enough for the licensing dilemma - atleast Windows Server is testable for 60 days, extendable to 240 when registering.
Thinstall is great for single apps, but not an entire stack....
I didn't try it yet, but with the new version of thinstall you are able to let different thinstalled application communicate.
But I guess you're right a vm-ware image would be easier