Scalable Programming Abstractions for XML Services

  • Burak Emir
  • Sebastian Maneth
  • Martin Odersky
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4028)


Traditional programming paradigms and styles do not lend themselves easily to XML services. This has led to engineered systems that are characterized by a mix of special purpose and general purpose languages. Such systems are brittle, hard to understand and do not scale well – hence they are not dependable. We describe some facets of the Scala programming language targeted at XML services that unify the disparate worlds through a judicious combination of existing and new programming language constructs. More concretely, we describe use cases of case classes, regular pattern matching and comprehensions. Programs that use these abstractions can deliver XML services in a scalable and manageable way. We discuss the essential design decisions we took, the experience we gained during development, and identify directions of further research.


Case Class Pattern Match Common Gateway Interface Document Object Model Unranked 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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Armstrong, J., Virding, R., Wikström, C., Williams, M.: Concurrent Programming in Erlang, 2nd edn. Prentice-Hall, Englewood Cliffs (1996)Google Scholar
  2. 2.
    Atkins, D., Ball, T., Bruns, G., Cox, K.: Mawl: a domain-specific language for form-based services. IEEE Trans. Software Eng. 25(3), 334–346 (1999)CrossRefGoogle Scholar
  3. 3.
    Benton, N., Cardelli, L., Fournet, C.: Modern concurrency abstractions for C#. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, p. 415. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  4. 4.
    Bierman, G., Meijer, E., Schulte, W.: The essence of data access in Cω. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 287–311. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  5. 5.
    Brabrand, C., Møller, A., Schwartzbach, M.I.: The bigwig project. ACM Transactions on Internet Technology 2(2), 79–114 (2002)CrossRefGoogle Scholar
  6. 6.
    Christensen, A.S., Møller, A., Schwartzbach, M.I.: Extending Java for high-level web service construction. ACM Transactions on Programming Languages and Systems 25(6), 814–875 (2003)CrossRefGoogle Scholar
  7. 7.
    Cremet, V., Odersky, M.: piLib: A hosted language for pi-calculus style concurrency. In: Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds.) Domain-Specific Program Generation. LNCS, vol. 3016, pp. 180–195. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  8. 8.
    Emir, B.: Extending pattern matching with regular tree expressions for XML processing in Scala. Master’s thesis, Rheinisch-Westfählische Technische Hochschule Aachen (2003)Google Scholar
  9. 9.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Wesley, Reading (1995)Google Scholar
  10. 10.
    Gapeyev, V., Levin, M.Y., Pierce, B.C., Schmitt, A.: The Xtatic experience. In: Workshop on Programming Language Technologies for XML (PLAN-X) (January 2005); University of Pennsylvania Technical Report MS-CIS-04-24 (October 2004)Google Scholar
  11. 11.
    Harren, M., Raghavachari, M., Shmueli, O., Burke, M.G., Bordawekar, R., Pechtchanski, I., Sarkar, V.: Xj: facilitating XML processing in Java. In: Proc. of the 14th International Conference on World Wide Web (2005)Google Scholar
  12. 12.
    Oasis. RELAX NG, see:
  13. 13.
    Odersky, M., Altherr, P., Cremet, V., Emir, B., Maneth, S., Micheloud, S., Mihaylov, N., Schinz, M., Stenman, E., Zenger, M.: An overview of the scala programming language. Technical Report IC/2004/64, Ecole Polytéchnique Fédérale de Lausanne (2004)Google Scholar
  14. 14.
    Odersky, M., Zenger, M.: Scalable component abstraction. In: Proc. of the 20th Annual Conference on Object-Oriented Programming, Systems, Languages and Applications (2005)Google Scholar
  15. 15.
    Quiennec, C.: The influence of browsers on evaluators or, continations to program web servers. In: Proc. of the 5th ACM SIGPLAN International Conference on Functional Programming (2000)Google Scholar
  16. 16.
    World wide web committee,
  17. 17.
    Wallace, M., Runciman, C.: Haskell and XML: Generic combinators or type-based translation? In: Proc. of the 4th International Conference on Functional Programming (1999)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Burak Emir
    • 1
  • Sebastian Maneth
    • 1
  • Martin Odersky
    • 1
  1. 1.School of Computer and Communication Sciences, EPFLLausanneSwitzerland

Personalised recommendations