skip to main content
10.1145/1321631.1321671acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
research-article

Finding errors in components that exchange xml data

Published:05 November 2007Publication History

ABSTRACT

Two or more components (e.g., objects, modules, or programs) interoperate when they exchange data, such as XML data. Using Application Programming Interface (API) calls exported by XML parsers remains a primary mode of accessing and manipulating XML, and these API calls lead to various run-time errors in components that exchange XML data. Currently, no tool checks the source code of interoperating components for potential flaws caused by third-party API calls that lead to incorrect XML data exchanges and runtime errors, even when components are located within the same application

Our solution combines program abstraction and symbolic execution in order to reengineer the approximate schema of XML data that would be output by a component. This schema is compared using bisimulation with the schema of XML data that is expected by some other components. We describe our approach and give our error checking algorithm. We implemented our approach in a tool that we used on open source and commercial systems and discovered errors that were not detected during their design and testing.

References

  1. IEEE Standard Computer Dictionary: A Compilation of IEEE Standard Computer Glossaries. Institute of Electrical and Electronics Engineers, January 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Cost Analysis of Inadequate Interoperability in the U.S. Capital Facilities Industry, GCR 04-867. NIST, August 2004.Google ScholarGoogle Scholar
  3. Institute for Software Research, University of California, Irvine, xADL 2.0 project, Apigen for xArch schemas,. http://www.isr.uci.edu/projects/xarchuci/tools-apigen.html, 2004.Google ScholarGoogle Scholar
  4. Sun Microsystems, Java Architecture for XML Binding (JAXB),. http://java.sun.com/xml/jaxb, 2004.Google ScholarGoogle Scholar
  5. Castor XML databinding framework,. http://www.castor.org/xml-framework.html, 2005.Google ScholarGoogle Scholar
  6. S. Abiteboul, P. Buneman, and D. Suciu. Data on the Web: From Relations to Semistructured Data and XML. Morgan Kaufmann, October 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. G. Ammons, R. Bodik, and J. R. Larus. Mining specifications. In POPL, pages 4--16, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. G. M. Bierman, E. Meijer, and W. Schulte. The essence of data access in cmega. In ECOOP, pages 287--311, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. H. Chen and D. Wagner. MOPS: an infrastructure for examining security properties of software. In ACM Conference on Computer and Communications Security, pages 235--244, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. L. A. Clarke and D. J. Richardson, editors. Symbolic evaluation methods for program analysis. Prentice-Hall, 1981.Google ScholarGoogle Scholar
  11. B. Curtis, H. Krasner, and N. Iscoe. A field study of the software design process for large systems. Commun. ACM, 31(11):1268--1287, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. X. Fu, T. Bultan, and J. Su. Model checking XML manipulating software. In ISSTA, pages 252--262, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. Harren, M. Raghavachari, O. Shmueli, M. G. Burke, R. Bordawekar, I. Pechtchanski, and V. Sarkar. Xj: facilitating xml processing in java. In WWW, pages 278--287, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. D. Jackson and M. Vaziri. Finding bugs with a constraint solver. In ISSTA, pages 14--25, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. C. King. A program verifier. In IFIP Congress (1), pages 234--249, 1971.Google ScholarGoogle Scholar
  16. J. C. King. Symbolic execution and program testing. Commun. ACM, 19(7):385--394, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. C. Kirkegaard, A. Møller, and M. I. Schwartzbach. Static analysis of xml transformations in java. IEEE Trans. Software Eng., 30(3):181--192, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. A. J. Ko, B. A. Myers, and H. H. Aung. Six learning barriers in end-user programming systems. In VL/HCC, pages 199--206, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. D. Mandelin, L. Xu, R. Bodík, and D. Kimelman. Jungloid mining: helping to navigate the api jungle. In PLDI, pages 48--61, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. J. Meier, S. Vasireddy, A. Babbar, and A. Mackman. Improving .NET application performance and scalability. Microsoft Corporation, 2004.Google ScholarGoogle Scholar
  21. R. Schmelzer. Breaking XML to optimize performance. ZapThink LLC - special to SearchWebServices.com, Oct. 2002.Google ScholarGoogle Scholar
  22. D. Spinellis. A critique of the Windows application programming interface. Computer Standards & Interfaces, 20(1):1--8, Nov. 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Finding errors in components that exchange xml data

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            ASE '07: Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering
            November 2007
            590 pages
            ISBN:9781595938824
            DOI:10.1145/1321631

            Copyright © 2007 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 5 November 2007

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            Overall Acceptance Rate82of337submissions,24%

            Upcoming Conference

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader