Railo features Part II

Since I posted a blog yesterday, with my personal Top 5 (in fact there were 6) improvements in Railo I will continue by posting some other new features invented by Railo. I will make a small series out of it, so that you guys have more reason to visit us again :-)

Railo architecture

Lets start with the Railo architecture. A lot of people asked us why Railo has two administrators and what they are good for. Well other CFML engines allow many webroots to be part of one single CFML engine instance. For many reasons this is not adviseable.

  1. You can not separate Resources from one webroot (We call them webs) to another. If one web has access to a datasource, then every other web of this instance has access to it too. Of course you can define the datasource with a username and a password to prohibit access to other webs, but you can not do this with customtags, mappings, Cache settings etc.
  2. If you use more than one instance, you spoil a lot of ressources, since all the libraries of the engine are instanciated more than once
  3. If you would like to use global resources for all webs over all instances you have to define them in every instance
  4. You can not specify different rights for the single webs in your instance
  5. Settings you make in your Administrator affect all webs inside your instance

I'm sure you can find more reasons why sharing webs is not a good idea. Hosters will agree to that. So what's the main difference in Railo?

Railo separates webs logically from the beginning. One web does not know anything about the other web. Datasources, mappings and all other settings are separated logically. So in one Web you can turn on debugging and use a certain debugging template and in the other the debugging is turned off. If you define a datasource in one web, the other web does not know anything about the datasource you have defined. And even programatically you have no way of accessing the datasource of another web.

You can notice the difference by taking a look at the WEB-INF folder in each webroot. In the folder WEB-INF/railo/ you will find a file named railo-web.xml containing all the settings for this particular web. Each web has its own railo-web.xml. The common ground of all webs is only the server administrator. In there you can define the security settings for each single web. The security settings define what a local administrator is allowed to change. You can prohibit nearly everything for the local administrator. In addition to that you can define global resources (datasources, mappings) that are available to all local webs. These resources can not be deleted in the local administrator, only overwritten using the same resource name.
You also can restrict the use of Railo in the local webs by prohibiting several tags, functions or functionalities. These are:
  • <cfexecute>
  • <cfimport>
  • <cfobject> and function createObject()
    But this does not influence the creating of components. You will only not be able to create java objects.
  • <cfregistry>
  • <cfx_*> tags
  • file access
    can be restricted to the webroot or completely prohibited
  • direct java access
    prohibits the usage of java objects

Furthermore you can set defaults for all local administrators by setting default values in the corresponding sections. And all this is done by sharing the same server resources.

And if this is all not enough you still can create further instances of Railo in order to meet your objectives.

Comments (Comment Moderation is enabled. Your comment will not appear until approved.)
BlogCFC was created by Raymond Camden. This blog is running version 5.9.1.002. Contact Blog Owner