Example 1.

Click this button to have the web page call a web service that will open the Urbemis.Infracture.dll and ask it what the current extension is for Urbemis Project files.

Example 2.

Click this button to have the web page call a web service that will open the Urbemis.Infracture.dll, set up a project, modify the units, make a run and return several specific results.

Set the Unit Amount for this run: (Please be patient, this may take a few moments.) Coming soon...This example will be modified to allow you to upload your own project.

What's so special about these examples?

Results obtained without a ".exe" Windows program

Urbemis 2007 was written in modules. All of the code for opening projects, processing Emfac and EMS databases, and calculating emissions is isolated in one module - Urbemis.Infrastructure.dll. This module in turn requires one additional .dll to read and write to the embedded databases. When these two modules (or .dll files) are placed on a web server, they can be used to handle requests from web pages to make Urbemis 2007 calculations.

Web Services, or SOA opens the door to chaining applications together and designing web-based Urbemis applications

Service Oriented Architecture (SOA, or simply "Web Services") is the industry-standard method of requesting information and receiving back replies from applications that reside on web servers. However, this call-and-response mechanism can also be used in a traditional Windows environment to chain applications together. For example, the results from an Urbemis run could be written out in a specific format, and read in by another application - all without the full Urbemis executable program being loaded.

Unix based web servers

One of the difficulties of web-based applications is that they need to run under the operating system of the web server. Many web servers run some flavor of the Unix operating system. Urbemis 2007 is written in C#, which is often considered a Windows only language. However, there is a compiler available - Mono - that will make a Unix based .dll, if the underlying C# adheres to some specific conventions. The Urbemis.Infrastructure.dll was written specifically with the idea that it would be compiled with Mono, so that it could be placed on Unix based web servers. To this end, the embedded database that is used in Urbemis was also selected on the basis of having a Mono compiled version available. So although this page is being served by a Windows IIS web server, a future example will demonstrate calling into the Urbemis Infrastructure module when it resides on a Unix based web server.