XML Infinity Server Technology
The XML Infinity CMS is a bespoke software system built using our years of experience of working with a variety of CMS' and XML. In a nutshell it is actually a management system for making Content Management Systems.
It uses an underlying part of XML called "Schema Definition Language" or XSD. This language can be used to describe how XML documents should be constructed. It can specify items generically - for example that a "book" should have a "title" field or it can be very specific, indicating that a "book" has an "ISBN" field that is numeric and is constructed of 10 numbers.
XSD is used to provide an "information model" of your content and that is passed to our custom built software [using a combination of C++, VB and C#] that then provides an interface such that you or your users can manage your content within the system.
Your content is actually modelled in an "object oriented" fashion. Without getting too techie, this means that you can create "objects" or items that can then be reused to build up other "objects". Here's an example:
Imagine an average site and that site has "related information" on most pages that link to other sections of the site, to other sites or to downloadable information - all of which is related to that page, but may also appear on other pages through the site as well.
Historically the related information would probably have been put on every page individually. Not only does this take longer to do, but should one of the links change, you would then have to go through your entire site looking for the related items that also need to be changed. Needless to say this is where errors start occurring.
Using an object oriented approach, XML Infinity would define a "related item" object which in XSD describes what this item should contain [eg: a title, a piece of text and a link to the item]. Within the system you can then construct a set of "related item" objects and then you just call the required one into your "page" objects. This way if you change one, you change them all - thus your information is more robust and more likely to be correct across your site.
Each content "object" is saved as an XML file in a file system that looks identical to the way you want to organise your live site.
Translation and making your content "live"
So you have all your content in one place and it is being added, edited and deleted by your content managers, how does this produce a site?
XML has generated some spin off technologies all based upon it. We've talked about XSD above, and the other key component is called XSL [eXtensible Stylesheet Language] or XSLT [eXtensible Stylesheet Lnaguage for Transformations].
XSL describes the way your content should appear and can be used to convert your raw information into any other definable format. Generally we use this to make HTML pages to go on your website, or WML pages to display your site for mobile phones, but it can also be used to make offline content in Quark, or generate multiple versions of your site depending on where people come from, or the browser they use to access it.
XML Infinity will take your XML content and when required will apply the relevant XSLT template to it using our "Translation Engine" to then output the final files you need for your site. The XML Infinity CMS will then move the generated HTML [or WML etc] files from our staging server onto your live site [when you tell it to].
Why use output files? Why not just dynamically create my pages using the XML and XSLT as people request them?
There are several good reasons why we don't do this, and the primary one is speed. Web servers are fantastic at serving flat files - they aren't so good at chugging through hundreds of lines of code to then output dynamic content. Even though we have all seen this and use it every day online you will notice the difference between a site that has static "file-based" content and one that constructs a new page every time you see it.
Ask yourself this: Given an average information or product based web site [ie not a site where you can pick up your email etc like Hotmail for example] why does the page need to be constructed EVERY time a user visits it?
The answer; it doesn't - this is just the way it has to be with a database view of web development. Ultimately you pay for this as well in your hosting costs. Database servers and dynamic language web servers cost up to 30 or 40 times as much as a static web server in terms of hosting costs. The reason for this is processor load – if you build a page every time a user requests one then you need faster processors [to handle the hundreds and thousands of visitors you have to your site] and more memory - the two most expensive components of a computer.
ISPs can only put a finite number of web sites on a single computer as well and the more dynamic the sites, the fewer they can have on a high spec machine and therefore the more it costs.
Storage, however, is cheap [about 40p / megabyte at current prices] - so processing all of your files once in an environment where speed isn't important [as you are not doing this on your live site for your customers] means you can get the benefits of cheaper computing and lower costs for the maintenance of your web site.
Integration with other technologies
XML is gaining wider recognition and many mainstream commercial products including databases, CRM packages and booking and stock management systems are now using XML within them. Whilst many of them still don't use XML as a native format [though many Microsoft products now do] most can output XML to other systems.
As such information can generally be sent to or from many products so that it can be directly integrated within XML Infinity and templates be generated and put onto your site.
Where customers have already got existing Databases of CMS content we generally recommend that the data is run through an XML filter and re-incorporated into the main XML Infinity CMS such that it can all be managed within the single system for your site.
Your business will be different to everyone else's and as such integration with legacy or internal systems is something that needs to be done on a per-client basis. Please get in touch with us for any integration requirements.Find more about our working process.
Contact us for more info
We would be the first company to say that the Internet is making communications easier and making virtual teams of people more simple to manage, however there is something inherently "right" about sitting down with a client working through a strategy to solve a problem rather than doing it exclusively by phone and email. We pride ourselves on working with our clients in very close partnership - our "one size doesn't fit all" mantra isn't just to do with how a CMS functions, it's to do with the very nature of the way our client's organisations operate. Read more >>
This afternoon www.board-worx.com was launched after being developed using the XML Infinity Integral server. The Board Worx website is the most extended site currently managed by the XML Infinity System with over two dozen different product lines and over two thousand products currently managed within the system. This figure is set to grow significantly through 2008 as the summer season bring a constant stream of new products onto the site. Read more >>