Advertisement

Composing Message Translators and Inferring Their Data Types Using Tree Automata

  • Emil Andriescu
  • Thierry Martinez
  • Valérie Issarny
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9033)

Abstract

Modern distributed systems and Systems of Systems (SoS) are built as a composition of existing components and services. As a result, systems communicate (either internally, locally or over networks) using protocol stacks of ever-increasing complexity whose messages need to be translated (i.e., interpreted, generated, analyzed and transformed) by third-party systems such as services dedicated to security or interoperability. We observe that current approaches in software engineering are unable to provide an efficient solution towards reusing message translators associated with the message formats composed in protocol stacks. Instead, developers must write ad hoc “glue-code” whenever composing two or more message translators. In addition, the data structures of the output must be integrated/harmonized with the target system.

In this paper we propose a solution to the above that enables the composition of message translators according to a high-level user-provided query. While the composition scheme we propose is simple, the inference of the resulting data structures is a problem that has not been solved up to now. This leads us to contribute with a novel data type inference mechanism, which generates a data-schema using tree automata, based on the aforementioned user query.

Keywords

Type Inference Tree Automaton Message Format XPath Query Abstract Syntax Tree 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. 1.
    Basten, H.: Ambiguity detection methods for context-free grammars. Master’s thesis, Universiteit van Amsterdam (2007)Google Scholar
  2. 2.
    Benzaken, V., Castagna, G., Frisch, A.: Cduce: An xml-centric general-purpose language. In: Proc. of ACM SIGPLAN ICFP 2003 (2003)Google Scholar
  3. 3.
    Blair, G.S., Bennaceur, A., Georgantas, N., Grace, P., Issarny, V., Nundloll, V., Paolucci, M.: The role of ontologies in emergent middleware: Supporting interoperability in complex distributed systems. In: Kon, F., Kermarrec, A.-M. (eds.) Middleware 2011. LNCS, vol. 7049, pp. 410–430. Springer, Heidelberg (2011)Google Scholar
  4. 4.
    Cardelli, L., Matthes, F., Abadi, M.: Extensible grammars for language specialization. In: DBPL (1994)Google Scholar
  5. 5.
    Castagna, G., Im, H., Nguyen, K., Benzaken, V.: A core calculus for XQuery 3.0 (2013), http://www.pps.univ-paris-diderot.fr/~gc/papers/xqueryduce.pdf
  6. 6.
    Chappell, D.: Enterprise service bus. O’reilly Media (2004)Google Scholar
  7. 7.
    Comon, H., Dauchet, M., Gilleron, R., Löding, C., Jacquemard, F., Lugiez, D., Tison, S., Tommasi, M.: Tree Automata Techniques and Applications (2007), http://tata.gforge.inria.fr/ (release October 12, 2007)
  8. 8.
    DeRose, S., Clark, J.: XML Path Language (XPath) Version 1.0. W3C recommendation, W3C (1999)Google Scholar
  9. 9.
    Gallaher, M., O’Connor, A., Dettbarn, J., Gilday, L.: Cost Analysis of Inadequate Interoperability in the U.S. Capital Facilities Industry. U.S. Department of Commerce, Technology Administration, NIST (2004)Google Scholar
  10. 10.
    Joachims, T.: Text categorization with suport vector machines: Learning with many relevant features. In: Nédellec, C., Rouveirol, C. (eds.) ECML 1998. LNCS, vol. 1398, pp. 137–142. Springer, Heidelberg (1998)Google Scholar
  11. 11.
    Merten, M., Steffen, B., Howar, F., Margaria, T.: Next Generation LearnLib. In: Abdulla, P.A., Leino, K.R.M. (eds.) TACAS 2011. LNCS, vol. 6605, pp. 220–223. Springer, Heidelberg (2011)Google Scholar
  12. 12.
    Milo, T., Suciu, D.: Type inference for queries on semistructured data. In: PODS (1999)Google Scholar
  13. 13.
    Moors, A., Piessens, F., Odersky, M.: Parser combinators in Scala. KU Leuven, CW Reports vol:CW491 (2008)Google Scholar
  14. 14.
    Murata, M.: Hedge automata: a formal model for XML schemata (1999), http://www.xml.gr.jp/relax/hedge_nice.html
  15. 15.
    Murata, M., Lee, D., Mani, M., Kawaguchi, K.: Taxonomy of XML schema languages using formal language theory. In: ACM TOIT (2005)Google Scholar
  16. 16.
    Narayanan, V.: Why I quit writing internet standards (2014), http://gigaom.com/2014/04/12/why-i-quit-writing-internet-standards/
  17. 17.
    Papakonstantinou, Y., Vianu, V.: DTD Inference for Views of XML Data. In: PODS (2000)Google Scholar
  18. 18.
    Schwentick, T.: Automata for XML—A Survey. JCSS (2007)Google Scholar
  19. 19.
    Schwerdfeger, A.C., Van Wyk, E.R.: Verifiable Composition of Deterministic Grammars. In: PLDI (2009)Google Scholar
  20. 20.
    Schwerdfeger, A.C., Van Wyk, E.R.: Verifiable Parse Table Composition for Deterministic Parsing. In: SLE (2010)Google Scholar
  21. 21.
    Shaw, M.: Architectural issues in software reuse: It’s not just the functionality, it’s the packaging. ACM SIGSOFT Software Engineering Notes (1995)Google Scholar
  22. 22.
    Swierstra, S.D.: Combinator parsers - from toys to tools. ENTCS 41 (2000)Google Scholar
  23. 23.
    Tozawa, A.: Towards Static Type Checking for XSLT. In: ACM DocEng (2001)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2015

Authors and Affiliations

  • Emil Andriescu
    • 1
  • Thierry Martinez
    • 1
  • Valérie Issarny
    • 1
  1. 1.Inria Paris-Rocquencourt, Domaine de VoluceauParisFrance

Personalised recommendations