From the course: Learning MapGuide Open Source

Understanding the components of MapGuide - MapGuide Tutorial

From the course: Learning MapGuide Open Source

Start my 1-month free trial

Understanding the components of MapGuide

- [Instructor] Understanding the components of MapGuide will be key to guiding you through the install process. We will look at the various components and the options with installing, configuring, and using MapGuide Open Source. First, let's look a little bit of history of MapGuide. It was first created back in 1995 by Argus Technologies in Calgary, Alberta, Canada. Autodesk acquired Argus and continued to develop MapGuide in Calgary. In 2002, MapGuide reached its limit of its development. You can only do so much with ActiveX and Java plugins. So once that was reached it was realized it had to be rebuilt. So in 2004, Argus rebuilt the product and it became MapGuide Open Source, eventually. Also, in 2004, Argus built FDO, which is a Feature Data Object, for directly connecting to like Oracle Spatial, SDF files, Shapefiles, ArcSDE, and AutoCAD Map. Also, in 2006, all that code was contributed to the OSGeo community. The FDO components, which is the data connection, also was contributed that year. Just a side note, all GIS related products at Autodesk, AutoCAD Map 3D, Infrastructure Map Server, actually that was retired back in 2018, Infoworks and Civil 3D all have hooks into FDO, which is an open source platform. Speaking of platform, MapGuide can be installed. It's a server, remember. It can be installed on Microsoft Windows Server or Linux Server. We can develop with any JavaScript library, .NET, PHP, or Java itself. We usually use two different types of web servers, IIS or Apache. We use sometimes Tomcat, if you're going to use Java. And any browser will work, Edge, Firefox, Safari, or Chrome. So it's very flexible. Now, when installing MapGuide server, there are three extensions, three hooks, so that you can do some server side development. We have the Java extension, the .NET extension, and the PHP extension. Now, what's interesting is that PHP is usually installed by default, but we'll get to that in a minute. So depending on what sort of applications you're building. If you're going to be writing in .NET, you're going to install that version, .NET version. If you're going to be writing JSP in Java, you're going to use the Java Edition. The most popular by far is the PHP Edition. If you use Java, it's very versatile. It can be used on Linux or Windows, but it needs the Tomcat hooked into Apache to be able to use that. I have to say by far, this is probably the least used extension but there's still a lot of people using it. The .NET, of course, this is the Microsoft one, you'd use IIS. Although... IIS, that's Internet Information Server. Although, Apache may also now support .NET on Linux. So that sort of a new development, I haven't tried it, but I read that it can be done. Now, if you're going to use .NET, you can use C# or VB.NET with the IIS. Now, if you're going to use PHP, this is a good option because MapGuide Site Administrator already runs with PHP and it's installed no matter what flavor you installed because it's required by some of the hooks inside the MapGuide. So no matter what other versions, whether you installed the .NET version or you installed the Java Edition, there are hooks to PHP for the MapGuide Site Administrator, for example. The other nice thing about PHP, it's open source. And you could read the syntax, it's a blend of Java, Perl, and C languages. You're still chasing semi-colons, that's what I always call it because at every line there's a semi-colon. And of course it can be used on Linux or Windows. So PHP is cross-platform. And is also could be used either web server, could be used an IIS or in Apache. So PHP is by far the most used. So for example, if you're using Windows Server, you can install Microsoft IIS and .NET. If you're using Centos or Ubuntu, you'll use Apache. Although, you can put Apache on Windows, but you can't put ISS on Ubuntu. So that's why I have a little overlap there. If you're going to use a Java web extension, you also have to put Tomcat. And again, the Java web can work on Windows or Linux, but the Tomcat is required. If you're going to use PHP, you could use PHP and IIS or Apache, and the PHP can work on Windows or Linux. So as you can see, the PHP web extension is by far the simplest process here. And of course the MapGuide Server Service's running on both as a daemon or a service. So what is MapGuide server anyway? Well, MapGuide server is a product that you install on Windows Server, Ubuntu, or Centos. Now, at the time of this release, we had the preview edition of MapGuide 4. MapGuide 4 should probably be out by the time you listen to this. There's not much difference between the preview and live, except for a few of the bugs. But at that time, it will be able to install Windows Server, Ubuntu, and Centos. Now, remember, MapGuide is strictly a server product. That means that's why we're talking about servers. You have to install it on a server. Now, for this course, we'll pretend our desktops are servers, but we're only pretending. MapGuide needs to be put on a proper computer that is a server. Now that server can be anywhere, could be in the cloud, it could be a virtual machine, it doesn't matter where. But remember MapGuide is a server product, not a desktop product. Okay. So what are parts of the MapGuide server? Well, the MapGuide server engine itself, it runs as a service or a daemon. It's always running, when the computer's on, when that server's running, MapGuide's running. So it's a little engine that keeps going. Then there's the web extensions. These are the API, these are the ways to talk to MapGuide server. And we already talked about this, we have a PHP, Java, and .NET. Those are the ways we talk to the server that's always running. There's also a library of data and all sorts of other things on the MapGuide server that we use these web extensions to talk to. And we also have the MapGuide Administrator, and that uses PHP as an engine. So MapGuides always running as three web extensions that you choose the time to install. And don't worry, you can go back and add it if you forget. So for example, you choose PHP but then someone will says, "You know what? "I want to build in .NEt." You can go back and add the .NET extension if you want later. So you don't have to be tied to any one thing. You can always go back and add that. And the MapGuide Administrator. This is a web base administrator that you can go in and tweak some things inside of MapGuide. So those are the main parts, the three parts, the server, the web extension you choose, and administrator. Now, remember, MapGuide can use two web servers. It can be installed on IIS or Apache. You really only have one choice if you're going to use IIS. It's usually built-in, but you have to install it first. So your web server doesn't necessarily always have IIS installed when you have Windows Server open. So we have to install that. We're actually going to be installing IIS on your desktop. And if you're running a Windows machine, you can do that without any trouble because even Windows 10 can support an IIS sort of light version, but MapGuide can handle it. Now, if you don't want to do that, we can use the other web server, Apache, and is automatically bundled when you install MapGuide. And you can actually get Apache running during the install. It'll actually install Apache for you. It'll put it on a certain port like 8008 or something and you have to tweak it if you want it to run as a website. But remember that you can install Apache automatically and not have to worry about all the configuration. Mind you, IIS is much easier to configure than Apache. There's a gooey, and you can go in and use it, whereas Apache doesn't have that. You have to go into all the INI files and tweak that, the COMP files and things like that. So the Apache isn't for the faint of heart, it's a powerful web server, but it's more complex than IIS. And I think for this course, we're going to be using IIS. It's a little bit upfront work before we even install MapGuide, but it'll make our life easy for tweaking. All right. You've learned about the main components of MapGuide and what features you need to install to publish your maps.

Contents