{'fraction_non_alphanumeric': 0.023679417122040074, 'fraction_numerical': 0.0, 'mean_word_length': 5.66060606060606, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Improving Application Integration by Combining Services and Resources

The main application integration approaches, the service-oriented architecture (SOA) and representational state transfer (REST) architectural styles, are rather different in their modeling paradigm, forcing application developers to choose between one and the other. In addition, both introduce more application coupling than required, since data schemas need to be common, even if not all instantiations of those schemas are used. This chapter contends that it is possible to improve this scenario by conceiving a new architectural style, structural services, which combines services and resources to reduce the semantic gap with the applications, allowing to tune the application integration between pure service-based and pure resource-based, or an intermediate mix. Unlike REST, resources are not constrained to offer a fixed set of operations, and unlike SOA, services are allowed to have structure. In addition, compliance is used to reduce coupling to the bare minimum required by the actually used application features.