{'fraction_non_alphanumeric': 0.02110091743119266, 'fraction_numerical': 0.0, 'mean_word_length': 5.612121212121212, '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}}
Structural Services: A New Approach to Enterprise Integration

This chapter compares the Service-Oriented Architecture (SOA) and Representational State Transfer (REST) architectural styles and contends that both have advantages and limitations for enterprise integration. SOA, based on behavior, has a lower modeling semantic gap for complex applications but lacks support for structured resources common in lower-grained applications. REST is based on structure and hypermedia but has a higher semantic gap in complex applications and, as this chapter contends, does not entail a lower resource coupling than SOA. A new architectural style, Structural Services, is proposed to get the best of both worlds, while reducing coupling with structural interoperability based on the concepts of compliance and conformance. Unlike REST, resources are able to offer a variable set of operations, and unlike SOA, services are allowed to have structure and use hypermedia. A distributed service programming language is briefly described to illustrate how this architectural style can be instantiated.