International Business Machines Corporation (Hursley)

IBM is a multinational computer technology and consulting corporation with roots dating back to the nineteenth century.


IBM utilised our expertise in Microsoft technologies to port their WebSphere MQ product from Unix to Windows NT and then implement additional functionality in subsequent released.

Activities included the provision of system services, exploitation of event logs, internationalisation and bridging the MQ and Win32 security models. Later work required the provision of COM interfaces (MQAI), support for MSCS, integration with Active Directory and LDAP servers and XML based configuration. Members of our team acted as the interface between development and third-line support, which entailed liaison with customers and support staff worldwide to gather information to furnish solutions. Preparation and presentation of courses to IBM employees on COM, MQ, Windows NT internals and development tools.


Provision the Win32 knowledge required to port the MQSeries for UNIX product to Windows NT. The assignment involved extensive work with the Win32 API, using Microsoft Visual C++. Development took place within a team consisting of those knowledgeable in NT or the MQSeries product with members encouraged to transfer knowledge to others, providing a strong base for future developments. Areas of activity included:

  • The writing of an NT service to act as an interface between the NT Service Control Manager and the MQSeries components. This had to respond to start and stop requests, activating the appropriate MQSeries programs.
  • The design and development of an installation mechanism using the set-up API provided with the Microsoft software development kit. Besides the normal 'user intensive' method, there was a requirement for unattended installation to be available, where necessary onto remote systems. This program had to be capable of handling product fixes, applying only the patches appropriate to the installed product components.
  • Exception handling within the product was originally based on the UNIX methodology. With the move to Windows NT use could be made of the in-built structured exception handling. Besides capturing and logging exceptions, hooks to error recovery code had to be provided.
  • In order to support the word-wide presence of this product it was necessary to provide internationalised messaging services. This was achieved by storing them within a catalogue with access based on message and language identifiers. Besides producing code to retrieve these messages, an automated catalogue generation system was developed.
  • Errors that occur in the operation of the MQSeries code had to be stored to aid in later problem determination. These were placed into various files with the in-build NT event log being used to provide easy index and access mechanisms.
  • Addition of COM interfaces to provide access to MQSeries (MQAI).
  • Bridging the MQSeries and Win32 security models
  • Generation and appraisal of technical documentation.

With the introduction of Windows 2000 it was possible to exploit the new features offered by the operating system. Areas of activity included:

  • The design, development and documentation of support of the Active Directory Services Interface allowing MQSeries to be controlled via the Active Directory.
  • Implementation of LDAP update and query mechanisms allowing discovery and control of MQSeries by other directory products
  • Design and development within Xerces-C of XML based interface to MQSeries allowing configuration to take place via XML files.
  • Consultancy on the design and implementation of Microsoft Cluster Service (MSCS) support.

Further details on the project