Leveraging interoperability based on language transformation
Sven De Labey, Eric Steegmans · Lirias · 2008
Frameworks and libraries aim at solving frequently occurring problems in software development. For the case of Java, several frameworks were developed to increase the interoperability of Java-based applications. These frameworks are extensively used in service-oriented architectures, where applications are typically built on different runtime platforms that communicate using heterogenous protocols. Such a configuration obviously creates a high need for enabling interoperable client-service interactions. Since interoperability is essentially a middleware issue, there is no reason why interoperability-related logic should appear in the source code of the application. The problem with frameworks, then, is that they confront software developers with an important tradeoff: they pay for the benefits of interoperability with the cost of code entanglement and reduced code comprehensibility. In our research, we try to eliminate this tradeoff by removing the need to explicitly depend on frameworks. We investigate how programming languages can be extended with new language concepts so as to transparently inject interoperability in service-oriented Java applications. Developers use these new language constructs to guide the compiler in in- jecting the code needed for leveraging interoperability. As such, the code remains clean and comprehensible, and interoperability issues are taken care of by the compiler.