Customer applications
Customer applications
The defendants’ case is that the ICA terms and conditions do not apply to third party customer applications. If, and to the extent that, IBM modules, data and code fragments form part of compiled and link-edited load modules which originated from third party customers, rather than IBM, they do not constitute ICA Programs and therefore their use is not restricted under the ICA.
IBM’s case is that the ICA does not distinguish between ICA Programs provided by IBM and those obtained through other means. Therefore, if Winsopia obtains a copy of an ICA Program from a third party, it is subject to the ICA. IBM does not contend that a customer application becomes an ICA Program when compiled and link-edited. Rather, its case is that a compiled and link-edited customer application contains elements of ICA Program code, inserted or generated as a result of the compilation and link-editing process.
When considering this question, it is important to recognise that the court is not concerned with ownership of physical objects. The ICA is concerned with intellectual property rights and the terms on which permission is granted to use software. Whether a third-party customer application, or any part of it, becomes subject to the terms and conditions of the ICA depends on the use made of the application by Winsopia.
The starting point is to consider the process of creating an executable load module using a customer application.
The customer application is written by the customer in high level language source code or assembly code.
If the source code includes an EXEC CICS command, it is pre-processed by the CICS translator, which replaces each EXEC CICS statement by generating a sequence of language specific source code statements; those sequences invoke a CALL to a CICS routine called DFHEI1, with a particular parameter list.
An optimised version of the source code is compiled using an IBM compiler that: (a) translates the business logic of the source code into object code; (b) inserts data or other code invoked by copybook statements in the source code; and (c) generates initialisation code that sets up data structures in working memory and instructions for executing this sequence of code at runtime.
Where the customer application is written in assembly code, the assembler: (a) converts each assembler mnemonic instruction into its corresponding machine instruction; and (b) expands any macro by executing a call to the relevant macro library and inserting the code instructions or data from the macro definition.
The resulting executable machine code from the compiler or assembler is known as a “User CSECT”.
The User CSECT is link-edited (or bound) with other User CSECTs and IBM CSECTs, comprising additional executable machine code instructions invoking Language Environment runtime services and/or data to form an executable load module.
The load module is loaded into the storage area of the mainframe where it can be executed.
It is apparent from the above summary that IBM CSECTs, other code fragments and data are inserted into the customer application during the process of compilation and/or link-editing. They are machine-readable instructions and data generated by the ICA Programs; as such, they each fall within the definition of an ICA Program.
The process of compilation and link-editing does not transform a customer application into an ICA Program. However, the process adds or inserts into the customer application components that form part of the ICA Programs. Use of such ICA Program components is subject to the terms and conditions of the ICA.
Test applications written by, or on behalf of, Winsopia that are compiled and link-edited on the Winsopia mainframe contain IBM CSECTs that are subject to the restrictions on use in clause 4 of the ICA.
Likewise, third-party customer applications that are compiled and link-edited on third party mainframes and supplied to Winsopia contain IBM CSECTs that are subject to the permissions and restrictions on use in the relevant licence. The customer applications may be owned by the customer but such intellectual property rights in the application do not extend to the IBM CSECTs. As is made clear in clause 4.1 of the ICA, ICA Programs are copyrighted and licensed, not sold. In order to study, test and observe the load modules supplied by third-party customers, Winsopia must load them into memory and/or run them on the mainframe. The acts of loading, displaying, running and storage of applications containing IBM CSECTs involve reproduction of the IBM software and are subject to authorisation. Winsopia’s permission to do this derives only from the terms of the ICA. As explained above, permission to use the ICA Programs is subject to the restrictions in clause 4.
It does not follow that all IBM proprietary code in third-party customer applications will be subject to the ICA just because it passes through Winsopia’s possession. If Winsopia loads a third-party customer load module on its mainframe and packages or scrubs it using CPX, this invariably involves copying or reproduction of IBM code within the application. Further, any use of the runtime environment is subject to the terms and conditions of the ICA, as is any code inserted or generated at runtime. However, mere possession of an application does not necessarily convert all IBM code in the application into an ICA Program (although it is likely that such code will be subject to the terms of the licence under which it was originally generated, potentially imposing restrictions on use by the customer under its licence agreement). In each case, it is necessary to examine Winsopia’s actions in respect of the customer application, to determine whether they fell within or outside the scope of permitted use under the ICA.
- Heading
- Mrs Justice O’Farrell
- Section II - Background to the dispute
- The SDM
- Hercules
- Neon litigation
- Formation of LzLabs and Winsopia
- The ICA
- SDM development and the clean room procedures
- Launch of the SDM
- Project Eiger
- Further development of the SDM
- Audit request and termination
- Section III - The proceedings
- The Issues
- The factual witnesses
- Section IV - Construction of the ICA
- Approach to construction of the ICA
- Scope of licence
- The ICA Programs
- Customer applications
- Licensed Program Specifications
- Independent software vendors (ISVs)
- Debugging tools
- Restrictions on use of ICA Programs
- Legislative framework
- Berne Convention
- TRIPS
- WIPO
- Software Directive
- Copyright, Designs and Patents Act 1988 (CDPA)
- Applicable legal principles
- Conclusions on ICA
- Section V - Alleged breaches of the ICA
- Disassembly, decompilation and translation
- Item 2: Load Module Decompiler (“the LMD”) (Paragraph 11.2 of the Technical Particulars)
- Item 3: CICS Control Blocks Document (Paragraph 11.3 of the Technical Particulars)
- Item 4: EXEC DLI (Paragraphs 27.18 & 28.19 of RRRAPOC)
- Item 5: IBM Binder Software (Paragraph 11.4 of the Technical Particulars)
- Compiler listings – summary of the dispute
- Item 6: IGZCIVL COBOL runtime module (Paragraph 11.6 of the Technical Particulars)
- Item 7: CICS Translators (Paragraph 20.1-2 of the Technical Particulars)
- Item 8: Floating point rounding rules (Paragraph 20.3 of the Technical Particulars)
- Item 9: IBM PL/1 compiler (Paragraph 20.4 of the Technical Particulars & Paragraph 27 of the POC)
- Item 10: XML Parse statements (Paragraphs 33-38 of the Technical Particulars)
- Item 11: COBOL initialisation, branching and I/O declaratives (Paragraphs 27.4&27.5 RRRAPOC)
- Item 12: PL/I Condition handling (Paragraphs 27.10-27.12 of RRRAPOC)
- Reverse engineering through the systematic use of traces, dumps, slip traps, packet sniffing and other debugging tools techniques – summary of the dispute
- Item 13: CICS-to-CICS communications (Paragraph 28.1 of the Technical Particulars)
- Item 14: AMBLIST analysis of CICS Stubs (Paragraph 28.2 of the Technical Particulars)
- Item 15: Colesoft z/XDC and COBOL initialisation (Paragraph 28.3 of the Technical Particulars)
- Item 16: XDC and IMS (Paragraph 28.4 of the Technical Particulars)
- Additional examples
- Item 17: SLIP Traps and CICS (Paragraph 28.5 of the Technical Particulars)
- Item 18: SLIP Traps and COBOL (Paragraph 28.6 of the Technical Particulars)
- Macros and Copybooks - introduction
- Macros (Paragraphs 32.1-32.9 of the Technical Particulars) – summary of the dispute
- Item 19: DR-3246 (Paragraph 32.1 of the Technical Particulars)
- Item 20: DR-10237 (Paragraph 32.2 of the Technical Particulars)
- Item 21: DR-2753 (Paragraph 32.3 of the Technical Particulars)
- Item 22: DR-2771 (Paragraph 32.4 of the Technical Particulars)
- Item 23: DR-2796 (Paragraph 32.5 of the Technical Particulars)
- Item 24: DR-3280 (Paragraph 32.6 of the Technical Particulars)
- Item 25: DR-4281 (Paragraph 32.7 of the Technical Particulars)
- Item 26: DR-4322 (Paragraph 32.8 of the Technical Particulars)
- Item 27: DR-0847 (Paragraph 32.9 of the Technical Particulars)
- Macros - discussion
- Copybooks (Paragraphs 2.1.1.3 and 32.10-32.12 of the Technical Particulars) – nature of the dispute
- Item 28: DR-715 (Paragraph 32.10 of the Technical Particulars)
- Item 29: DR-753 (Paragraph 32.11 of the Technical Particulars)
- Item 30: DR-756 (Paragraph 2.1.1.3 of the Technical Particulars)
- Copybooks - discussion
- Transferring “unscrubbed” materials
- Item 31:Epiphany
- Item 32: Db2 Catalog table metadata
- Item 33: DSS dump
- Item 34: Kednos
- Item 35: CSECTs deliberately omitted from scrubbing
- Items 36 and 42: Unscrubbed CSECTs
- Items 37 and 40: IMS PROCLIB & DLIBATCH
- Item 38: DFHEI1 module
- Item 39: IGZXANE
- Item 41: IGZXNE3N
- Item 43: CEEBETBL, CEEBLLST, IBMPINPL & CEESG*
- Item 44: DR-4617
- Item 45: DR-171
- Item 46: Scrubbing failures
- Item 47: @@TRGLOC CSECT
- Item 48: PARMLIB & PROCLIB
- Use outside Enterprise and beyond Designated Machine
- Item 49: Brad Taylor (Paragraph 44.2 of the Technical Particulars)
- Item 50: Winsopia Pizzabox (Paragraph 44.5 of the Technical Particulars)
- Item 51: Justin Bendich (Paragraph 44.6 of the Technical Particulars)
- Conclusions on technical breaches
- Section VI - Wrongful procurement of breach
- Applicable legal principles
- LzLabs
- LzLabs UK
- Claims against the directors
- Mr Moores
- Summary on unlawful procurement
- Section VII - Unlawful means conspiracy
- Applicable legal principles
- Knowledge of unlawfulness
- Summary on unlawful means conspiracy
- Section VIII – Audit and Termination
- Validity of audit request
- Validity of termination
- Section IX - Limitation
- Contractual limitation
- Statutory Limitation
- Deliberate concealment
- Finding - section 32(1)(b)
- Finding - Section 32(2)
- Actual or constructive knowledge – legal principles
- Date of knowledge issues
- ICA 2013
- Mr Knight - 2017
- Mr Anzani - 2018
- Conclusions
![HT-2021-000363 - [2025] EWHC 532 (TCC)](https://backend.juristeca.com/files/emisores/logo_yJUntHA.png)