Highway: a Domain Specific Language for Enterprise Application Integration Vitomir Kovanovic School of Interactive Arts and Technology Simon Fraser University vitomir_kovanovic@sfu.ca Dragan Djuric Faculty of Organizational Sciences University of Belgrade dragan@dragandjuric.com ABSTRACT Highway is a domain-specific language for implementing en- terprise application integration solutions in a technology in- dependent and functional manner. As an internal DSL de- veloped on top of Clojure programming language, Highway uses functional programming techniques in order to simplify enterprise application integration development. In this paper we focus on abstractions and language con- structs that define Highway’s approach to integration. We also cover implementation of enterprise integration patterns using Highway since they represent various common situa- tions in enterprise application integration development. General Terms Languages Keywords Highway, Enterprise Application Integration, Domain Spe- cific Language 1. INTRODUCTION One of the central activities in enterprise software develop- ment is the continuous process of integration of various tech- nologically heterogeneous parts into an evolving system. En- terprise application integration (EAI) projects have a very high failure rate due not only to technological complexity, but because the systems being integrated are critically tied to the business process itself. The solutions to typical prob- lems in EAI have been continuously rediscovered and im- proved, and the most typical solutions are encoded as EAI patterns - descriptions of the tried and tested general solu- tions to typical recurring problems. However, the implementation of these patterns (solutions) is not an easy task itself and introduces its own share of complexity. General-purpose programming languages do not provide internal support for enterprise application integra- 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. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. ISEC’12, Feb 22-25, 2012, Kanpur, UP, India. Copyright 2012 ACM 978-1-4503-1142-7/12/02 ...$10.00. tion. Of course, it is possible to extend the grammar of a specific language to include such support. However, extend- ing grammars of widely used languages may not be easy and the relevant community may not adopt it easily. An alter- native is to develop and use special-purpose libraries, but it always adds complexity and keeps the impedance mismatch. Yet another alternative is to use meta-programming [9], a craft and a process of using tools and languages for creating, modifying, adapting, adjusting, and otherwise transform- ing other programs. Some programming languages support meta-programming on mainstream platforms in such a way that developers can extend the language/platform with the features they need and implement first-class support for en- terprise application integration. The result is Highway: an internal domain-specific language for implementing enterprise application integration solutions in a technology independent and functional manner. As an internal DSL developed on top of Clojure programming lan- guage Highway uses functional programming techniques in order to simplify enterprise application integration develop- ment. 2. THE FOUNDATIONS 2.1 Main Challenges in EAI Even more than typical software development projects, EAI projects have high failure rate - according to the EAI Con- sortium[2], around 70% of EAI projects have failed to deliver the desired goals, mainly due to the following challenges: • Enterprise integration requires changes in the company management. It is not only about communication be- tween software systems but also between different de- partments and business units. • EAI systems are critical for business because of their mediating role in the business process management. Failures in software integration are very expensive and represent a big threat to the stability of the business process. • For the most part, the developers of integration solu- tions do not have control over existing software sys- tems. Usually they are large legacy systems that were incorporated into the business process over the years, using various strategies that are often incompatible. Proceedings of ISEC '12, Feb. 22-25, 2012 Kanpur, UP, India 33