Abstract
Call Level Interfaces (CLI) are low level API aimed at providing services to connect two main components in database applications: client applications and relational databases. Among their functionalities, the ability to manage data retrieved from databases is emphasized. The retrieved data is kept in local memory structures that may be permanently connected to the host database. Client applications, beyond the ability to read their contents, may also execute Insert, Update and Delete actions over the local memory structures, following specific protocols. These protocols are row (tuple) oriented and, while being executed, cannot be preempted to start another protocol. This restriction leads to several difficulties when applications need to deal with several tuples at a time. The most paradigmatic case is the impossibility to cope with concurrent environments where several threads need to access to the same local memory structure instance, each one pointing to a different tuple and executing its particular protocol. To overcome the aforementioned fragility, a Concurrent Tuple Set Architecture (CTSA) is proposed to manage local memory structures. A performance assessment of a Java component based on JDBC (CLI) is also carried out and compared with a common concurrent approach. The main outcome of this research is the evidence that in concurrent environments, components relying on the CTSA may significantly improve the overall performance when compared with solutions based on standard JDBC API.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
David, M.: Representing database programs as objects. In: Bancilhon, F., Buneman, P. (eds.) Advances in Database Programming Languages, pp. 377–386. ACM, N.Y (1990)
Cook, W., Ibrahim, A.: Integrating programming languages and databases: what is the problem? ODBMS.ORG, Expert Article (2005)
Eisenberg, A., Melton, J.: Part 1: SQL Routines using the Java (TM) Programming Language. In: American National Standard for Information for Technology Database Languages - SQLJ, International Committee for Information Technolgy (1999)
Kulkarni, D., et al.: LINQ to SQL: .NET Language-Integrated Query for Relational Data. Microsoft
ISO. ISO/IEC 9075-3:2003 (2003), http://www.iso.org/iso/catalogue_detail.htm?csnumber=34134 (May 2011)
Parsian, M.: JDBC Recipes: A Problem-Solution Approach. Apress, NY (2005)
Microsoft. Microsoft Open Database Connectivity (1992), http://msdn.microsoft.com/en-us/library/ms710252(VS.85).aspx (July 2012)
Christian, B., Gavin, K.: Hibernate in Action. Manning Publications Co. (2004)
Oracle. Oracle TopLink (October 2011), http://www.oracle.com/technetwork/middleware/toplink/overview/index.html
Oracle. Java Data Objects (JDO) (November 2011), http://www.oracle.com/technetwork/java/index-jsp-135919.html
Yang, D.: Java Persistence with JPA. Outskirts Press (2010)
IBM. Introduction to Service Data Objects (November 2011), http://www.ibm.com/developerworks/java/library/j-sdo/
Mead, G., Boehm, A.: ADO.NET 4 Database Programming with C# 2010. Mike Murach & Associates, Inc., USA (2011)
Oracle. ResultSet (July 2012), http://docs.oracle.com/javase/6/docs/api/java/sql/ResultSet.html
Microsoft. RecordSet (ODBC) (June 2012), http://msdn.microsoft.com/en-us/library/5sbfs6f1.aspx
Spring. Spring (November 2011), http://www.springsource.org/
Oracle Database (May 2010), http://www.oracle.com/us/products/database/index.html
Erik, M., Brian, B., Gavin, B.: LINQ: Reconciling Object, Relations and XML in the .NET framework. In: ACM SIGMOD Intl. Conf. on Management of Data. ACM, Chicago (2006)
Gomes, D., Pereira, Ó.M., Santos, W.: JDBC (Java DB connectivity) concorrente. In: DETI, p. 115. University of Aveiro: ria - institutional repository (2011), http://hdl.handle.net/10773/7359
Microsoft. [MS-TDS]: Tabular Data Stream Protocol Specification (July 2012), http://msdn.microsoft.com/en-us/library/dd304523(v=prot.13).aspx
Akşit, M., Tekinerdoğan, B.: Aspect-Oriented Programming Using Composition-Filters. In: Demeyer, S., Dannenberg, R.B. (eds.) ECOOP 1998 Workshops. LNCS, vol. 1543, pp. 435–435. Springer, Heidelberg (1998)
Laddad, R.: AspectJ in Action: Practical Aspect-Oriented Programming. Manning Publications, Greenwich (2003)
Fabry, J., D’Hondt, T.: KALA: Kernel Aspect Language for Advanced Transactions. In: Proceedings of the 2006 ACM Symposium on Applied Computing. ACM, Dijon (2006)
Dinkelaker, T.: AO4SQL: Towards an Aspect-Oriented Extension for SQL. In: 8th Workshop on Reflection, AOP and Meta-Data for Software Evolution (RAM-SE 2011), Zurich, Switzerland (2011)
Pereira, O.M., Aguiar, R.L., Santos, M.Y.: Assessment of a Enhanced ResultSet Component for Accessing Relational Databases. In: ICSTE-Int. Conf. on Software Technology and Engineering, Puerto Rico (2010)
Orcale. Call ReentrantLock (November 2012), http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/locks/ReentrantLock.html
Oracle. Synchronized Methods (November 2012), http://docs.oracle.com/javase/tutorial/essential/concurrency/syncmeth.html
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer International Publishing Switzerland
About this paper
Cite this paper
Pereira, Ó.M., Aguiar, R.L., Santos, M.Y. (2013). A Concurrent Tuple Set Architecture for Call Level Interfaces. In: Lee, R. (eds) Computer and Information Science. Studies in Computational Intelligence, vol 493. Springer, Heidelberg. https://doi.org/10.1007/978-3-319-00804-2_11
Download citation
DOI: https://doi.org/10.1007/978-3-319-00804-2_11
Publisher Name: Springer, Heidelberg
Print ISBN: 978-3-319-00803-5
Online ISBN: 978-3-319-00804-2
eBook Packages: EngineeringEngineering (R0)