An Abbreviated History of ACP, One of the Oldest Open Source Applications

If I asked you to tell me the first software that was made available as open source, you probably would point to something that came out of ARPAnet, such as TCP/IP; I dare say you would at least mention one of the fundamental pieces of the Internet. But I gently brushed against an earlier computing endeavor that might qualify as the first open source application: IBM's Airline Control Program, or ACP. If ACP was not among the first open source apps — assuming we use the definition, "of or relating to or being computer software for which the source code is freely available" — then it was certainly an influence. Yet, in my old fuddy-duddiness, I'm surprised by how few people actually know ACP even existed. Especially since I think a few tendrils of its source code helped you make it onto your airplane flight today.

[ See also: Convincing the Boss to Accept FOSS ]

I do not promise that this is an authoritative history of ACP; I don't have enough data for that, and most of what I can find online about the software is written in technical jargon and old-style IBM-ese. I half expected to find a mostly-blank web page that says only, "This page intentionally left blank." Or left-justified. Whatever. What I impart here is primarily from my memory, since I was (and am) married to someone who worked with ACP peripherally in the early 1980s, when it was still going strong. I'm sure others will correct me on both technical and process points. Please try to avoid the expression of too much pleasure as you rudely put me in my place? Thanks.

Anyway: the early ACP was an operating system to manage reservations for airlines and other businesses that relied on reservations (such as hotel chains). This was among the earliest definitions of business mission critical software; if a reservations system went down for an hour, the hotel chain was probably out of business. It dated from about 1967.

ACP ran on IBM 360 mainframes (you can read the March 25, 1977 IBM Data Processing Division Technical Press Release on the IBM 3033, wherein monthly hardware leases started at a mere $70,400) and also required DOS for source code library maintenance and other functions. No, not that DOS; I mean the IBM 360 Disk Operating System, the same one that inspired The Mythical Man Month. The end user — the reservation agent and travel agent — typed a cryptic set of characters onto a command line to indicate that she wanted to find two seats together on the first available flight to Chicago. I can almost remember some of the syntax, but I can assure you that it made a non-standard kernel recompile look pedestrian.

ACP was written wholly in Assembly Language. It was peculiar Assembly language, too; everything was in 4K blocks (that's K), and the ACP programmers I knew spent entirely too much time trying to shove 5K of functionality into a 4K bag. Not to mention drinking heavily.

What makes ACP interesting to open source supporters is that, while technically I suppose IBM "owned" it, the source code was completely available for any developer to change, fix, and enhance. You needed an IBM mainframe on which to run the code, which even the geekiest did not consider (those people were drooling over the DEC VAX back then), so availability is only a relative term. I don't remember exactly how the code was contributed back to IBM, which served largely as a code repository (and also sold high-priced technical consultants to help these large enterprises install, support, and deploy the software on IBM hardware — some things don't change). But I do know that it was done.

Reservations systems was a niche specialty (and I would guess it still is), so experienced ACP programmers regularly were recruited by competing hotels and airlines. The result was a lively community of developers who'd call each other to ask for advice about integrating ACP with other corporate software or about fixing the code itself. The developers' loyalty was to — in no particular order — code quality, the development community, and getting the best answer as soon as possible. Not to the corporate entity paying their salaries. Gosh. Does that sound familiar?

I see from my online research that ACP eventually became TPF (Transaction Processing Facility). (I have to wonder: Did someone think that was a more exciting name?) Parts of it are still in use, at least at United Airlines and Lufthansa, according to this undated press release (I warn you, it's full of the worst sort of IBMese, such as: "...its own continuous innovation capabilities could leverage common services, data, and functionality to create uniqueness and value" instead of saying, "Good grief, folks, it's 40 years old and time to upgrade!"). I even wrote about the transition of ACP to service-oriented architecture (SOA Migration: An Airline Keeping Its Feet on the Ground) largely because I liked how the project manager admitted ACP's legacy problems.

I don't know if anyone else is trying to collect the earliest examples of open source applications. I like to think so. But I would sure hate to think about this one's history fading out of memory.

Insider: How the basic tech behind the Internet works
Join the discussion
Be the first to comment on this article. Our Commenting Policies