Important Information about 64-bit Software

Beginning with Version 2010 release 2, Altova offers both 32 and 64-bit versions of all applications included in Enterprise and Professional Editions of the Altova MissionKit, and in Enterprise Editions of Altova Authentic. This page provides important information about the advantages, differences, and dependencies of 64-bit software that you should consider as you decide whether a 64-bit or 32-bit version is best for your needs.

Why 64-bits?

Many modern software development and data processing environments are running up against a built-in memory limitation. Current and previous 32-bit versions of Microsoft Windows can only allocate a maximum of 2 GB of memory to each running process, regardless how much real or virtual memory is available on a particular machine. Translated to the real world of XML development, this means XML files larger than 100 to 200 MB (depending on complexity) can not be opened at all.

A 64-bit system is not subject to the same memory limitation. A 64-bit processor has a theoretical maximum addressable memory size so large it is measured in multiple petabytes (1 petabyte = 1 million gigabytes). Currently, 64-bit versions of Microsoft Windows 7 support up to 192 GB of installed memory. In practice, the maximum size XML file an individual user of a 64-bit application will be able to process is limited only by the amount of installed physical memory.

The screenshot below shows a 2.7GB file open in the 64-bit version of XMLSpy. This XML file contains the Wikipedia abstract XML feed and is over 35 million lines long.

The 64-bit version of XMLSpy opens a very large XML file

(Even without enough physical memory, very large files can be processed by 64-bit systems using virtual memory, although significantly more slowly.)

Additionally, files smaller than 100 MB can be processed more efficiently by a 64-bit system that has a large amount of physical memory, because the system can maintain a much larger cache of hard disk data in memory.

Frequently Asked Questions about 64-bit Software

Below are answers to the most frequently asked questions (FAQ) about 32-bit vs. 64-bit software.

Installation Options

Starting with version 2010 release 2, valid keycodes for Enterprise and Professional Editions of Altova applications support both 32-bit and 64-bit versions. This feature enables flexibility in several important ways:

Issues Inherent to 64-bit Software:
Memory Requirements

A 64-bit application will require more memory to open any particular file than a 32-bit application, because the address sizes of memory pointers and other structures automatically become larger. A rule of thumb for XML files is that memory consumption grows by about 50 to 60%. This means a user should have a minimum of 4 GB of memory installed to benefit from a 64-bit application.

Connectivity to Databases

In general, a 64-bit application requires a 64-bit driver for database connection. Here are some more specific concerns:

Source Control Systems

Altova has implemented the Microsoft Source Code Control Interface (MSSCCI) v1.1 – v1.3 in XMLSpy and UModel and has tested support with the many popular revision control systems (click here for the complete list). In addition, DiffDog can easily be configured to serve as the default diff/merge tool when a stand-alone versioning system is used.

Because most SCC clients do not have 64-bit versions, Altova delivers special SCC bridge software that allows 64-bit versions of Altova applications to use SCC 32-bit clients. This bridge is tightly integrated and works transparently from user’s perspective whenever a 64-bit SCC client is not available.

Browser Plugins

A 32-bit browser requires 32-bit plug-ins and a 64-bit browser requires 64-bit plug-ins. Currently only Internet Explorer is available in both versions, therefore Altova Authentic Browser Plug-ins for Internet Explorer are also available in both 32 and 64-bit versions. FireFox is currently only available as a 32-bit application. Sample HTML code is published in the documentation for the Authentic Browser Plug-in that shows how to embed instructions in an HTML page to download and install the correct version of the Authentic Browser Plug-in.

Visual Studio and Eclipse Integration

Visual Studio is only available as a 32-bit application. Therefore Altova Integration Packages for Visual Studio are also only available in 32-bit versions.

Since Visual Studio is only available in a 32-bit version, you must install the 32-bit version of XMLSpy, MapForce, StyleVision, UModel, or Authentic to run inside Visual Studio for seamless integration into the workflow of the IDE. You must also install the 32-bit version of the corresponding Integration Package, regardless whether you have a 32-bit or 64-bit version of Windows.

Eclipse is available as a 32-bit and a 64-bit application and requires a corresponding plug-in. Altova has offered 32-bit Eclipse Integration Packages for Eclipse since the release of Version 2007, and currently offers integration components for both the 32-bit and 64-bit versions.

Microsoft Word Integration

Microsoft Word is available in 32-bit and 64-bit versions. Altova StyleVision renders and displays advanced reports in Microsoft Word 2007+ (OOXML) and .rtf formats, among others. Altova DiffDog includes a special comparison feature for Microsoft Word 2003 and later documents.

To display Microsoft Word documents in either StyleVision or DiffDog, the version of Microsoft Word displayed on its Help screen must match the version of the installed Altova tool. In other words, if you're using a 32-bit of Microsoft Word, you must use a 32-bit version of StyleVision or DiffDog. If you're using a 64-bit version of Word, you must use a 64-bit Altova tool.

ActiveX Interfaces

An ActiveX interface can integrate the user interface and functionality of an Altova application in your own application. If your application is a 32-bit application, you will need to install a 32-bit version of Altova software. For your 64-bit application, a 64-bit version of the Altova software is required.

COM Interfaces

COM interfaces automate the functionality of Altova applications through the API without user interface integration. By default, Windows will make a 32-bit COM visible to a 32-bit application and 64-bit COM to a 64 application. A mixed use is possible, but requires some additional work: if, for example, you have only installed a 64-bit version of Altova software and want to use it from your 32-bit application, you need to do the following:

connect to an application:

	CComPtr < IUnknown > ipApplication;
	HRESULT hRes;
	DWORD dwClsContext = CLSCTX_ALL;
	hRes = ::CoCreateInstance( m_clsidOfApplication, NULL, dwClsContext, IID_IUnknown, 
		(void **)&ipApplication.p );
	if ( !SUCCEEDED( hRes ) )
	{
#if defined( _WIN64 )
		dwClsContext |= CLSCTX_ACTIVATE_32_BIT_SERVER, 
#else // _WIN64
		dwClsContext |= CLSCTX_ACTIVATE_64_BIT_SERVER, 
#endif // _WIN64
		hRes = ::CoCreateInstance( m_clsidOfApplication, NULL, dwClsContext, IID_IUnknown, 
			(void **)&ipApplication.p );
	}

	if ( SUCCEEDED( hRes ) )
	{
		// some code
		...
	}

	

open CLSID in correct view:
	
	LONG OpenCLSID( LPCTSTR  strCLSID, REGSAM samDesired, hObjCLSIDKey )
	{
		HKEY hCLSIDKey;
		LONG rc = RegOpenKeyEx( HKEY_CLASSES_ROOT,_T("CLSID"), 0, samDesired, &hCLSIDKey );
		if ( rc == ERROR_SUCCESS )
		{
			LONG lRet = RegOpenKeyEx( hCLSIDKey, strCLSID, 0, samDesired, &hObjCLSIDKey );
			RegCloseKey(hCLSIDKey);
			if ( lRet != ERROR_SUCCESS && samDesired == KEY_READ )
			{
#if defined( _WIN64 )
				samDesired |= KEY_WOW64_32KEY;
#else // _WIN64
				samDesired |= KEY_WOW64_64KEY; 
#endif // _WIN64
				// try other view
				rc = OpenCLSID( strCLSID, samDesired, hObjCLSIDKey );
			}
		}
		return rc;
	}

	...
	HKEY hObjCLSIDKey;
	if ( OpenCLSID( < a class id > , KEY_READ, hObjCLSIDKey ) == ERROR_SUCCESS )
	{
		// one can now open subkeys using this key as parent
		...
	}



Please note that when calling each other, Altova applications will try to call a corresponding version, but if the corresponding version is not found, the opposite one will be called when available. This means, for example, if you have installed a 64-bit version of MapForce and a 32-bit version of XMLSpy, they will be able to call each other in order to edit an XML Schema referenced in a MapForce mapping in XMLSpy, or to execute a MapForce transformation from within an XMLSpy project.

"I have learned that there is no substitute for quality tools. And truly, your MissionKit suite is a quality tool, easily the single best resource for enterprise development that I have ever encountered, and in itself a prime example of how software should be written. My sincere compliments on an excellent product."

Thomas D. Blersch
Senior Software Engineer, Exeter Government Services LLC