We claim:
1. Process for the production and recovery of crystalline terephthalic acid containing less than about 150 parts per million by weight (ppmw) p-toluic acid, based on the weight of the terephthalic acid, by the steps comprising:
(1) feeding (i) a dialkyl benzene compound, (ii) aqueous acetic acid reaction medium having oxidation catalyst components dissolved therein, and (iii) an oxygen-containing gas to a first pressurized oxidation zone wherein liquid-phase, exothermic oxidation of the dialkyl benzene compound occurs, wherein the temperature and pressure within the first pressurized oxidation reactor are maintained at about 150 to 180 C. and about 3.5 to 13 bar absolutebara (about 50 to 189 pounds per square inchpsia);
(2) removing from the upper portion of the first reactor a vapor comprising vaporized aqueous, acetic acid reaction medium and oxygen-depleted gas comprising carbon dioxide, inert components, and less than about 9 volume percent, based on the non-condensable components of the vapor, oxygen;
(3) removing from the lower portion of the first reactor an oxidizer product comprising (i) solid and dissolved terephthalic acid and incomplete oxidation products and (ii) the aqueous, acetic acid reaction medium having the oxidation catalyst dissolved therein;
(4) feeding (i) the oxidizer product of step (3) and (ii) an oxygen-containing gas to a second pressurized oxidation zone wherein liquid-phase, exothermic oxidation of the incomplete oxidation products occurs, wherein the temperature and pressure within the second pressurized oxidation reactor are maintained at about 185 to 230 C. and about 4.5 to 18.3 bara (about 65 to 265 psia);
(5) removing from the upper portion of the second reactor a vapor comprising vaporized aqueous, acetic acid reaction medium and oxygen-depleted gas comprising carbon dioxide, inert components, and less than about 5 volume percent, based on the non-condensable components of the vapor, oxygen;
(6) removing from the lower portion of the second reactor a second oxidizer product comprising (i) solid and dissolved terephthalic acid and (ii) the aqueous, acetic acid reaction medium having the oxidation catalyst dissolved therein;
(7) separating terephthalic acid from the (ii) the aqueous, acetic acid reaction medium of step (6) to obtain terephthalic acid containing less than about 900 ppmw 4-carboxyaldehyde and p-toluic acid.
(8) dissolving the terephthalic acid obtained in step (7) in water to form a solution containing about 10 to 35 weight percent dissolved terephthalic acid having dissolved therein less than about 900 ppmw 4-carboxybenzaldehyde and p-toluic acid, based on the weight of the terephthalic acid present, at a temperature of about 260 to 320 C. and a pressure sufficient to maintain the solution in the liquid phase and contacting the solution with hydrogen in the presence of a hydrogenation catalyst to produce a hydrogenation product solution;
(9) feeding the solution of step (8) to a crystallization zone comprising a plurality of series-connected crystallizers wherein the solution is subjected to rate-controlled evaporative cooling by sequential reduction in pressure and temperature to cause crystallization of terephthalic acid, wherein the pressure of the solution at the end of the crystallization zone is about ambient pressure or less;
(10) condensing solvent evaporated from the crystallizers and returning the condensed solvent to the crystallization zone at a point subsequent to the crystallizer from which it was obtained; and
(11) recovering solid, crystalline terephthalic acid containing less than about 150 parts ppmw p-toluic acid, based on the weight of the terephthalic acid, by solid-liquid separation at ambient pressure.
2. Process according to claim 1 wherein steps (1)-(7) comprise:
(1) feeding (i) p-xylene, (ii) aqueous acetic acid reaction medium having oxidation catalyst components dissolved therein, and (iii) an oxygen-containing gas to a first pressurized oxidation zone wherein liquid-phase, exothermic oxidation of the dialkyl benzene compound occurs, wherein the temperature and pressure within the first pressurized oxidation reactor are maintained at about 150 to 180 C. and about 3.5 to 13 bar absolute (bara);
(2) removing from the upper portion of the first reactor a vapor comprising vaporized aqueous, acetic reaction medium and oxygen-depleted gas comprising carbon dioxide, methane, inert components, and less than about 9 volume percent, based on the non-condensable components of the vapor, oxygen;
(3) removing from the lower portion of the first reactor an oxidizer product comprising (i) solid and dissolved terephthalic acid and incomplete oxidation products and (ii) the aqueous, acetic acid reaction medium having the oxidation catalyst dissolved therein;
(4) feeding (i) the oxidizer product of step (3) and (ii) an oxygen-containing gas to a second pressurized oxidation zone wherein liquid-phase, exothermic oxidation of the incomplete oxidation products occurs, wherein the temperature and pressure within the second pressurized oxidation reactor are maintained at about 185 to 230 C. and about 4.5 to 18.3 bara;
(5) removing from the upper portion of the second reactor a vapor comprising vaporized aqueous, acetic acid reaction medium and oxygen-depleted gas comprising carbon dioxide, inert components, and 0 to about 1 volume percent, based on the non-condensable components of the vapor, oxygen;
(6) removing from the lower portion of the second reactor a second oxidizer product comprising (i) solid and dissolved terephthalic acid and (ii) the aqueous, acetic acid reaction medium having the oxidation catalyst dissolved therein; and
(7) separating the terephthalic acid from the (ii) the aqueous, acetic acid reaction medium of step (6) to obtain the terephthalic acid containing less than about 900 ppmw p-carboxyaldehyde and p-toluic acid.
3. Process according to claim 2 wherein step 1 is carried out at about 155 to 165 C. and about 5.2 to 6.9 bara in the presence of aqueous acetic acid reaction medium containing about 4 to 5 weight percent water having oxidation catalyst components comprising cobalt, manganese and bromine dissolved therein; the second pressurized oxidation zone of step (4) are maintained at a temperature and pressure of about 205 to 215 C. and about 13.4 to 17.2 bara; and the terephthalic acid of step (7) containing about 400 to 900 ppmw p-carboxyaldehyde and p-toluic acid.
4. Process according to claim 3 wherein the atomic ratio of Co:Mn:Br is about 5 to 40:1.0:4 to 40.
5. Process according to claim 1 wherein the second oxidizer product of step (6) is fed to a flash evaporation zone wherein the temperature and pressure of the second oxidizer product are reduced by flash evaporation.
6. Process according to claim 2 wherein the second oxidizer product of step (6) is fed to a flash evaporation zone comprising (i) a first flash vessel operated at a temperature of about 170 to 190 C. and a pressure of about 2.4 to 5.2 bara and (ii) a second flash vessel operated at a temperature of about 60 to 100 C. and a pressure of about 0.3 to 0.8 bara, wherein the temperature and pressure of the second oxidizer product are reduced by flash evaporation.
7. Process according to claim 1 wherein the solution of step (8) contains about 25 to 35 weight percent dissolved terephthalic acid; the hydrogenation product solution of step (8) has dissolved therein about 400 to 900 ppmw p-toluic acid, based on the weight of the terephthalic acid present, and the plurality of series-connected crystallizers consists of two to eight crystallizers.
8. Process according to claim 7 wherein the temperature of the first crystallizer is in the range of about 260 to 320 C. and the temperature of the last crystallizer is in the range of about 90 to 110 C. and the plurality of series-connected crystallizers consists of three to six crystallizers.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method for testing a software application, the software application executable at a predetermined logical position in a stack-based computing environment, the method comprising:
identifying an operation performed during execution of the software application;
identifying an expected result of the operation;
arranging for communication between the software application and a first set of computer-executable instructions at a first test position in the stack-based computing environment, the first test position logically above the predetermined logical position, the first set of computer-executable instructions executable to implement a first interaction with the software application;
arranging for communication between the software application and a second set of computer-executable instructions at a second test position in the stack-based computing environment, the second test position logically below the predetermined logical position, the second set of computer-executable instructions executable to implement a second interaction with the software application;
executing the software application to perform the operation using an input generated via execution of the first set of computer-executable instructions or the second set of computer-executable instructions;
identifying a test result of the operation via execution of the first set of computer-executable instructions or the second set of computer-executable instructions;
comparing the test result and the expected result; and
based on the step of comparing, determining whether a failure of the software application occurred.
2. The method according to claim 1, wherein
execution of the software application affects contents of a stack, the expected result associated with content at a predetermined position in the stack, and
execution of the first set of computer-executable instructions affects content at a first test position in the stack, and
execution of the second set of computer-executable instructions affects content at a second test position in the stack,
the test result based on content at the predetermined position in the stack after the operation is performed, the test result based on content at the first test position or the second test position or both.
3. The method according to claim 2, wherein the first test position is above or below the predetermined position in the stack, and wherein the second test position is above or below the predetermined position in the stack.
4. The method according to claim 2, wherein the stack comprises a protocol stack, and wherein
execution of the first set of computer-executable instructions affects information within a network packet transmitted or received by a software layer associated with the first test position, and
execution of the second set of computer-executable instructions affects information within a network packet transmitted or received by a software layer associated with the second test position.
5. The method according to claim 4, wherein the test result is selected from the group consisting of: information regarding the interoperability of the software application with another software layer at another logical position in the stack-based computing environment; information regarding statistical information, including information regarding load distribution performed by the software application; and information regarding performance of the software application.
6. The method according to claim 1, further comprising:
prior to executing the software application to perform the operation, identifying a configuration of the software application, the expected result based on the identified configuration.
7. The method according to claim 1, wherein the software application comprises a driver that links a peripheral device to an operating system of a computer.
8. The method according to claim 7, wherein the software application comprises a network filter driver.
9. The method according to claim 7, wherein
the first set of computer-executable instructions comprises a first filter driver that is used to simulate inputs to and validate outputs from a first interface of the software application, the first interface lying logically above the predetermined position in the stack, and
the second set of computer-executable instructions comprises a second filter driver that is used to simulate inputs to and validate outputs from a second interface of the software application, the second interface facing logically below the predetermined position in the stack.
10. The method according to claim 9, wherein the simulated inputs comprise invalid or corrupt inputs.
11. The method according to claim 1, wherein the first set of computer-executable instructions and the second set of computer-executable instructions comprise a single binary file that inserts itself at two different locations during runtime and dynamically determines its location.
12. The method according to claim 1, further comprising:
when it is determined that a failure of the software application occurred, identifying a programming error using the test result.
13. The method according to claim 1, wherein the step of identifying an operation performed during execution of the software comprises arranging for receipt of user input usable for identifying the operation.
14. The method according to claim 1, wherein the software application operates in a distributed client-server system.
15. The method according to claim 1, wherein the software application operates in a single-computer system.
16. A method for testing a software application, the software application executable at a predetermined position in a stack-based environment, the software application having a first interface and a second interface, the first interface lying logically above the predetermined position in the stack-based environment, the second interface facing logically below the predetermined position in the stack-based environment, the method comprising:
identifying an operation performed by the software application;
setting up a first software module logically above the predetermined position in the stack-based environment, the first software module operable to communicate with the software application via the first interface;
setting up a second software module logically below the predetermined position in the stack-based environment, the second software module operable to communicate with the software application via the second interface;
simulating an input to the software application using the first software module or the second software module or both; and
after the software application executes to perform the operation based on the simulated input, receiving a test output based on performance of the operation via the first software module or the second software module or both,
when the first software module is used for simulating the input, the second software module is used for receiving the test output, and
when the second software module is used for simulating the input, the first software module is used for receiving the test output,
the test output usable to identify a failure of the software application.
17. The method according to claim 16, wherein the simulated input comprises invalid or corrupt information.
18. The method according to claim 16, wherein the first software module and the second software module comprise a single binary file that inserts itself at two different locations during runtime and dynamically determines its location.