ematicians, scientists, or engineers but rather accountants. I am a case in point, having spent half of my career working either directly on account-ing/business applications or on the operating-system kernels underlying database servers.
Although the production of computer software does not typically resemble anything a mathematician would endorse or condone, it is nevertheless analogous to mathematics in that it serves as handmaiden to science, engineering, business, entertainment, and sometimes even mathematics. Therefore, the relationship between software engineering and the traditional engineering disciplines depends on which of these masters it happens to be serving, in other words, its context.
Paul e. mcKenney, Beaverton, OR
and requires only ordinary user and group privileges to run.
GT.M’s software transactional memory is a mature, proven technology, though more research is always welcome.
K.S. Bhaskar, Malvern, PA
authors’ Response:
Rather than take on the whole of software development, we restricted ourselves to whether software engineering is genuine engineering. Behind our question is the frequent sniping from other engineering fields that CS graduates cannot do basic engineering things (such as predict the failure modes of software and their attendant risks).
It is an interesting question whether augmenting software engineering with other aspects of software development would make it more like engineering. We doubt it would, but it is a great topic for a future column.
Peter J. Denning and Richard D. Riehle, Monterey, CA
crediting SaBRe’s Sources
The “Economic and Business Decisions” Viewpoint “The Extent of Glo-balization of Software Innovation” by Ashish Arora et al. (Feb. 2009) referred to “…IBM’s SABRE airline reserva-tion…” There is indeed no such entity. SABRE is software developed by American Airlines that runs (in part) on IBM’s Transaction Processing Facility operating system. TPF’s predecessor, the Airlines Control Program, was developed from work done at American Airlines (and other organizations, including United Airlines) where the reservation system is called APOLLO. So there is a close association between IBM and SABRE, but SABRE is not an IBM product and never has been.
John Schlesinger, London, U.K.
Praise for the Gt.m Database engine In his article “Parallel Programming with Transaction Memory” (Feb. 2009), Ulrich Drepper said that although transactions are familiar to database developers, their packaging is unfamiliar to systems programmers. Although he views software transactional memory (STM) as current research, the fact is that STM (embodied in the GT.M database engine, fis-gtm. com) is mature, proven technology in daily production use. GT.M provides so-called ACID, or atomic, consistent, isolated, and durable, transactions
but in a schema-less database engine packaged as scalar and multidimensional associative memory (arrays) familiar to systems programmers. As the platform for the Fidelity Information Services Profile banking application (fis-profile), GT.M has been available for years, notably in banking and finance (tens of millions of accounts worldwide), running one of the largest, if not the largest, real-time core processing system at any bank anywhere in the world ( tinyurl.com/asmque).
Drepper’ssamplefunctionf1 _ 1() he used to illustrate STM could be coded in GT.M in a procedural style familiar to systems programmers:
f11(r,t)
TStart ()
Set @t=timestamp1
Set @r=$Increment(counter1)
TCommit
Quit
For code bracketed by TStart/ TCommit commands, the GT.M runtime system ensures the ACID properties, no matter how many processes execute the code at the same time. At TCommit, if no variables accessed by the transaction have changed since TStart, the runtime system commits the updates. If one or more variables has changed, the code automatically restarts from Tstart. Except for a small critical section internal to the runtime during TCommit, the processes run in parallel; to prevent “live locks” in the event the updates cannot be committed on the third try, the entire transaction is executed within a critical section on the fourth try. In the SMP multicore environments on which we benchmark Profile/GT.M, we routinely observe linear to near-linear scalability (up to tens of proces-sors/cores and hundreds of concurrent processes).
GT.M includes a compiler and language environment for the M (or MUMPS) language, so M and C are able to call each other, and the top-level program can be a C main(). Since the software is freely available under the AGPL v3 FOSS license (sourceforge. net/projects/fis-gtm), no technical or licensing barriers prevent creation of a preferred API to expose the underlying engine to a C programmer. Also worth noting is that the database engine uses a daemonless architecture
authors’ Response:
Computer industry histories like
Martin Campbell-Kelly’s From Airline Reservations to Sonic the Hedgehog: A History of the Software Industry, MIT Press, 2004, show that the SABRE system was a joint IBM-American Airlines project, developing the airline industry’s first passenger-name record system. Similar systems were developed for other airlines by IBM. Our use of “IBM’s SABRE airline reservation” was informal and consistent with the intent of the paragraph, namely that development of innovative systems typically involves close collaboration with lead users.
ashish arora, Pittsburgh, PA matej Drev, Pittsburgh, PA chris forman, Atlanta, GA
Communications welcomes your opinion. to submit a letter to the editor, please limit your comments to 500 words or less and send to letters@cacm.acm.org.
© 2009 aCm 0001-0782/09/0500 $5.00
References:
Archives