{'fraction_non_alphanumeric': 0.01906318082788671, 'fraction_numerical': 0.0, 'mean_word_length': 5.704379562043796, '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}}
Penttinen Service Oriented Architecture in Mobile Devices : Protocols and Tools

Service Oriented Architecture (SOA) represents a new way to build loosely coupled distributed systems. It emphasises well-defined interfaces and coarse-grained data transfer to be able to operate in network environments with heterogeneous clients and decoupled client and service development. Mobile devices that are highly portable, always turned on and being able to run modern operating systems are becoming increasingly common, increasingly affordable and increasingly capable of running complex software. However, size, battery power and cost place limits on device capabilities, so that being able to distribute computing effort and use remote software is desirable. Combining the concept of SOA with mobile devices promises to deliver convenient, easily extendable and quick to implement distributed computing applications. This thesis attempts to answer whether implementing SOA-conformant software on mobile devices is feasible, what the required and current level of language and tool support is, how the current implementation technologies such as protocols are suited for mobile devices and how various architectural views such as Representational State Transfer (REST) should be taken into account in designing services. To assess the situation, Web service technologies for describing service interfaces, data formats and for transporting data are discussed. Web service and XML-technology support is evaluated in the C ++ , Python and Java programming languages for mobile devices. A REST-compliant client and a Web service client are implemented using various tools and performance measurements are made. Implementing SOA-conformant software proves possible, but there remains substantial work in improving tool and specification maturity.