[Bernstein09] Bibliographic Notes

来源:百度文库 编辑:神马文学网 时间:2024/04/28 06:32:53

Bibliographic Notes

Thegoal of these bibliographic notes is to provide some historical contextand offer places to find additional material on each topic. It is notintended to be a comprehensive bibliography.

The definitive work on TP technology is Transaction Processing: Concepts and Techniques,by Jim Gray and Andreas Reuter (1992). Most of the topics in this bookare covered there in more detail, usually from the viewpoint of someonedeveloping a database system or transactional middleware. For thereader who wants to dig deeper into TP technology, this is an excellentplace to look. However, it is no longer the last word on some topics,since there has been technical progress since it was published. For amore up-to-date view on any particular topic, see the followingbibliographic notes.

Mostarticles on advanced transaction processing technology are published inthe database research field. A very complete bibliography search enginecalled DBLP is available at http://www.sigmod.org/dblp/db/index.html. Most of the relevant conference proceedings can be obtained from the ACM SIGMOD Anthology (http://www.sigmod.org/sigmod/anthology/index.htm) and the ACM Digital Library (http://portal.acm.org/dl.cfm).

More extensive bibliographic notes for Chapters 6 through 9 can be found in Bernstein et al. (1987) and for Chapters 6 through 8 in Weikum and Vossen (2002).These are academic-style textbooks that cover the material in moredepth. Other books on transaction processing are Claybrook (1992) and Lewis et al. (2002).

Chapter 1 Introduction

Theconcepts of transaction and TP monitor appeared in the early 1970s.There is a rich literature on the theory of transactions, starting fromthe mid 1970s (see Bernstein, Hadzilacos, and Goodman, 1987, forreferences), and on their implementation (first summarized in Gray,1978, and later in Gray and Reuter, 1992). SOA and Web Services are described in Newcomer and Lomow (2004). REST is described in Richardson and Ruby (2007). For references on transactional middleware, see the Bibliographic Notes for Chapter 3.

An early influential paper on the transaction concept was Eswaran et al. (1976), which includes some earlier references. The acronym ACID was coined in Härder and Reuter (1983). For references on the two-phase commit protocol, see the Bibliographic Notes for Chapter 7.

The most up-to-date information on TPC benchmarks can be found at the Transaction Processing Performance Council web site, http://www.tpc.org. A description of the evolution of TPC-A/B into TPC-C is in Levine et al. (1993). Articles about many database and TP benchmarks can be found in Gray (1993). Much of Section 1.6 on availability is from Gray (1986).

Chapter 2 Transaction Processing Abstractions

Thematerial on transaction bracketing is mostly from the authors’experience in designing and using transaction APIs. Descriptions of theuse of transaction attributes in object-oriented programming in .Netcan be found at the Microsoft web site, http://msdn.microsoft.com. For Java EE, see http://java.sun.com/javaee. The nested transaction model described here is from Moss (1985); see also Lynch et al. (1993) for a mathematical treatment and Liskov (1988)for a language that embodies the model. Details about threads can befound in any modern operating systems textbook, such as Silberschatz etal. (2008). The core material on RPC is from Birrell and Nelson (1984), the classic research paper on this topic.

Chapter 3 Transaction Processing Application Architecture

The three-tier TP application architecture model is from Bernstein (1990) and Bernstein et al. (1991). See also Gray and Edwards (1995) and Chapter 5 of Gray and Reuter (1992).The more up-to-date view of multitier TP application architecture isbased on the authors’ knowledge of current products. The RESTarchitectural pattern was introduced in Chapter 5 of Fielding (2000). Details of the Secure Socket Layer can be found in Rescorla (2001). Kaufman et al. (2002) give a general treatment of network security. Howard and LeBlanc (2003) give a more prescriptive view of how to ensure code is secure. See the Bibliographic Notes for Chapter 10 for specific product references.

Chapter 4 Queued Transaction Processing

Much of this chapter evolved from Bernstein et al. (1990), which in turn was influenced by many sources, such as Gray (1978) and Pausch (1988). A good place to find more details about the publish-subscribe paradigm is in books about the Java Messaging Service or at http://java.sun.com/products/jms/. Further information on Websphere MQ and Oracle Streams AQ can be found at http://www.ibm.com and http://www.oracle.com, respectively. The Advanced Message Queue Protocol is described at www.amqp.org.

Chapter 5 Business Process Management

Jajodia and Kerschberg (1997) is an anthology of business process models, written by many top researchers working in that field. Leymann and Roller (2000)present a broad overview of business process technology fromrequirements and design through runtime deployment. The WS-BPELstandard and associated documents are at http://www.oasis-open.org/. Wolter (2006)explains the technology of SQL Server Service Broker and how to use it.Documents about the Business Process Modeling Notation are at http://www.omg.org. WS-BPEL is described at http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsbpel. Other relevant material about business processes can be found at the web site of the Workflow Management Coalition (http://www.wfmc.org).

Chapter 6 Locking

Two-phase locking was introduced in Eswaran et al. (1976). The deadlock discussion is from Chapter 3 of Bernstein et al. (1987). The description of lock managers is from Gray (1978). The view of locking performance is from Tay (1987) and Thomasian (1996, 1998); for further reading, see Shasha and Bonnet (2002). Most of the hot spot methods originated in IMS Fast Path (Gawlick and Kinkade 1985). Degrees of isolation originated in Gray et al. (1976); see Berenson et al. (1995) for an updated presentation. Chan et al. (1982) describes an early implementation of multiversion data. The phantom problem was introduced in Eswaran et al. (1976). The use of index locking to avoid phantoms appears in Lomet (1993). Optimistic concurrency control was introduced in Kung and Robinson (1981).

B-trees were introduced in Bayer and McCreight (1972). There are many papers on B-tree variations and optimizations. An early survey is Comer (1979). The prefix B-tree optimization is in Bayer and Unterauer (1977). The lock coupling protocol is from Bayer and Schkolnick (1977) and Kedem and Silberschatz (1980). The B-link optimization is by Lehman and Yao (1981).

Multigranularity locking was introduced in Gray et al. (1975, 1976). The nested transaction model was introduced in Reed (1978). The locking protocol for nested transactions is from Moss (1985).

Timestamp ordering and serialization graph testing are described in Chapter 4 of Bernstein et al. (1987). Commit ordering is presented in Raz (1992).

Chapter 7 System Recovery

The introduction that summarizes causes of failure was inspired by Gray (1986). The explanation of recovery and checkpointing techniques in Section 7.2was developed for this book, but was heavily influenced by ideas inearly products from Tandem Computers. The model of recovery managementin Sections 7.4 and 7.5 is an expanded version of material in Chapter 6 of Bernstein et al. (1987), which was in turn heavily influenced by Gray (1978) and Härder and Reuter (1983). The shadow-paging algorithm in Section 7.6 is from Lorie (1977).

Many logging algorithms have been published, going back at least to Gray (1978). The use of LSNs in pages are discussed in Lindsay (1980). The ARIES algorithm is described in Mohan et al. (1992). Mohan (1999)gives a retrospective of ARIES and its variations with an extensivebibliography. Other details about logging can be found in Gray andReuter (1992), Lomet (1992), Lomet and Tuttle (2003), and Weikum and Vossen (2002). Kumar and Hsu (1998) is an anthology that includes many of these articles and others.

Disk failure rates are presented in Gray and Van Ingen (2005) and Pinheiro et al. (2007). RAID was introduced in Patterson et al. (1988).

Chapter 8 Two-Phase Commit

The two-phase commit protocol was first published in Lampson and Sturgis (1976) and explained further in Gray (1978) and Lampson (1981). The tree of processes model is from Lindsay et al. (1984) and the presumed abort optimization is from Mohan et al. (1986). This particular description borrows heavily from Chapter 7 of Bernstein et al. (1987).

The X/Open model is published in The Open Group (1992). For descriptions of particular products, see Laing et al. (1991) for Digital’s VMS transaction manager, and Microsoft (2000) for Microsoft’s Distributed Transaction Coordinator.

Chapter 9 Replication

One-copy serializability was introduced in Attar et al. (1984). The primary copy approach was first published in Stonebraker (1979). Majority consensus comes from Thomas (1979), and was extended in Gifford (1979) to quorum consensus. The behavior of timestamps is explained in Lamport (1978).

Thereare many articles on how to reach consensus, not limited to the problemof deciding which replicas are alive and which is primary. An earlysuch algorithm for data replication is the Virtual Partitions algorithmin El Abbadi et al. (1985) and El Abbadi and Toueg (1989). The algorithm for reaching consensus near the end of Section 9.4 is a variation of the Paxos algorithm in Oki and Liskov (1988) and Lamport (1998). An implementation is described in Chandra et al. (2007).

The CAP conjecture was posed in Brewer (2000). It was proved in Gilbert and Lynch (2002).

The multimaster implementation of Lotus Notes is described in Kawell et al. (1988). Early use of version vectors for replication are Fischer and Michael (1982) and Parker et al. (1983). A later algorithm is described in Ladin et al. (1992)with an extensive bibliography. The algorithms described here are basedon Microsoft’s WinFS and Sync Framework, described in Novik et al. (2006) and Malkhi et al. (2007). Terry (2008) presents an excellent survey of replication techniques for mobile computing. DeCandia et al. (2007) describes multimaster techniques used by Amazon.com.

The description of data sharing was modeled on Oracle’s Rdb/VMS, described in Lomet et al. (1992). Data sharing in IBM DB2 is described in Josten et al. (1997). Concurrency control for data sharing is also discussed in Mohan and Narang (1991) and Rahm (1993).

Chapter 10 Transactional Middleware Products and Standards

Primarysources were used for most of the information in this chapter. The mostsignificant web references are listed next. MSDN was our source of mostof the information about the.NET Framework. An excellent source ofgeneral information on Java EE and EJB3 is Burke and Monson-Haefel (2006). Java Swing is described in Loy et al. (2003). Further information about Java TP technologies, standards, and programming techniques are in Little et al. (2004).

SOAdesign principles and concepts, with case studies and a detaileddescription of the Credit Suisse SOA-based application, is in Krafziget al. (2004). Richardson and Ruby (2007) explore how to use REST/HTTP for web services and SOA. Another view of RESTful services is in Vinoski (2008a, b).

Alonso et al. (2004)give an overview of Web Services. Detailed descriptions of Web Servicesstandards and their relationships is in Werrawarana et al. (2005).

Thefollowing books were used for the first edition as source material onlegacy TP monitors, and much of the information remains relevant:Andrade et al. (1996), for Tuxedo; LeBert (1989), for CICS; UNIX International (1992), for Tuxedo and CICS; and Willis (1994), for OpenVMS.

Other general sources of product and standards information are http://www.infoq.com/, http://www.theserverside.com/, and of course http://www.wikipedia.org/.

Apache

General: http://www.apache.org/

Apache HTTP Server: http://httpd.apache.org/

Apache CXF: http://cxf.apache.org/

Apache OpenJPA: http://openjpa.apache.org/

Apache Tomcat: http://tomcat.apache.org/

Apache ActiveMQ: http://activemq.apache.org/

Eclipse

General: http://www.eclipse.org/

SOA Tools Platform Project BPMN Editor Screenshot examples: http://www.eclipse.org/projects/project_summary.php?projectid=stp.bpmnhttp://www.eclipse.org/bpmn/images/screenshots/

HP

ACMS: http://h71000.www7.hp.com/commercial/acms/index.html

NonStop Software/Pathway: http://h20219.www2.hp.com/NonStopComputing/cache/76380-0-0-230-470.html

IBM

IMS: http://www.ibm.com/software/data/ims/

CICS: http://www.ibm.com/software/htp/cics/

DB2: http://www.ibm.com/software/data/db2/

WebSphere: http://www.ibm.com/software/websphere/

Java Enterprise Edition (Java EE)

General: http://java.sun.com/javaee/

Enterprise Java Beans: http://java.sun.com/products/ejb/

J2EE Connector Architecture: http://java.sun.com/j2ee/connector/

Java Message Service: http://java.sun.com/products/jms/

Java Persistence API: http://java.sun.com/javaee/technologies/persistence.jsp

Java Server Faces: http://java.sun.com/javaee/javaserverfaces/

Java Server Pages: http://java.sun.com/products/jsp/

Java Servlets: http://java.sun.com/products/servlet/index.jsp

Java Swing: http://java.sun.com/javase/6/docs/technotes/guides/swing/

Java Transaction API: http://java.sun.com/javaee/technologies/jta/

JDBC: http://java.sun.com/products/jdbc/overview.html

REST- JAX-RS: http://jcp.org/aboutJava/communityprocess/final/jsr311/index.html

Web services- JAX-WS: http://jcp.org/en/jsr/detail?id=224

Microsoft

NET Framework Overview: http://msdn.microsoft.com/en-us/netframework/default.aspx

ADO.NET: http://msdn.microsoft.com/en-us/data/default.aspx

BizTalk Server: http://www.microsoft.com/biztalk/en/us/default.aspx

Host Integration Server: http://www.microsoft.com/hiserver/default.mspx

Internet Information Services: http://msdn.microsoft.com/en-us/library/aa737439.aspx

Open Database Connectivity (ODBC): http://msdn.microsoft.com/en-us/library/ms710252(VS.85).aspx

Silverlight: http://silverlight.net/

SQL Server: http://www.microsoft.com/sqlserver/2008/en/us/default.aspx

System.Transactions: http://msdn.microsoft.com/en-us/library/system.transactions.aspx

Visual Studio: http://msdn.microsoft.com/en-us/vstudio/default.aspx

Windows Communication Foundation: http://msdn.microsoft.com/en-us/library/ms735119.aspx

Windows Presentation Foundation: http://msdn.microsoft.com/en-us/netframework/aa663326.aspx

Windows Workflow Foundation: http://msdn.microsoft.com/en-us/netframework/aa663328.aspx

Oracle

Database: http://www.oracle.com/database/index.html

Tuxedo: http://www.oracle.com/products/middleware/tuxedo/tuxedo.html

WebLogic Server: http://www.oracle.com/appserver/weblogic/enterprise-edition.html

Red Hat

JBoss: http://www.jboss.com/

Object Management Group (OMG)

General: http://www.omg.org/

Object Transaction Service: http://www.omg.org/technology/documents/formal/transaction_service.htm

The Open Group

General: http://www.opengroup.org/

DTP Model: http://www.opengroup.org/pubs/catalog/c193.htm

XA: http://www.opengroup.org/onlinepubs/009680699/toc.pdf

Organization for the Advancement of Structured Information Standards (OASIS)

General: http://www.oasis-open.org/home/index.php

WS-Transactions: http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=ws-tx

OSGi Alliance

General: http://www.osgi.org/

Service Composition Architecture (SCA)

General: http://www.oasis-opencsa.org/sca

The Web Services Interoperability Organization (WS-I)

General: http://www.ws-i.org/

World Wide Web Consortium (W3C)

General: http://www.w3.org/

Web Services Activity: http://www.w3.org/2002/ws/