
Creo: Reduced Complexity Service Development Per-Olov Ostberg¨ and Niclas Lockner Dept. of Computing Science, Umea˚ University, Umea,˚ Sweden Keywords: Service-orientated Architecture, Service Development Tools. Abstract: In this work we address service-oriented software development in distributed computing environments, and investigate an approach to software development and integration based on code generation. The approach is illustrated in a toolkit for multi-language software generation built on three building blocks; a service descrip- tion language, a serialization and transport protocol, and a set of code generation techniques. The approach is intended for use in the eScience domain and aims to reduce the complexity of development and integration of distributed software systems through a low-knowledge-requirements model for construction of network- accessible services. The toolkit is presented along with a discussion of use cases and a performance evaluation quantifying the performance of the toolkit against selected alternative techniques for code generation and ser- vice communication. In tests of communication overhead and response time, toolkit performance is found to be comparable to or improve upon the evaluated techniques. 1 INTRODUCTION To illustrate these issues, we here take the per- spective of eScience application development. In eScience1, distributed computing techniques are used Cloud computing has in recent years evolved to an to create collaborative environments for large-scale established paradigm for provisioning of IT capacity. scientific computing. In comparison to commer- While this approach can offer several benefits com- cial software stacks, scientific computing tools are pared to traditional static provisioning, e.g., facilita- typically prototype-oriented, developed in projects tion of more flexible service types (Armbrust et al., with limited software development budgets, and of- 2010) and improvements in cost and energy efficiency ten composed of heterogeneous components devel- of large-scale computing (Walker, 2009; Berl et al., oped in multiple languages and environments. In ad- 2010), it also places focus on a current problem in dis- dition, eScience applications often use distributed or tributed computing: the increasing complexity of de- parallel programming techniques to exploit the inher- velopment and management of systems in distributed ent parallelism of computational problems. As many computing environments (Kephart and Chess, 2003). current eScience efforts are approaching construction Service-Oriented Computing (SOC) is a popular of virtual infrastructures using cloud technology, they approach to software development and integration in here serve as illustrative examples of the difficulties large-scale distributed systems. SOC is argued to be of developing multi-language software stacks in het- well suited for cloud environments as it places focus erogeneous distributed computing environments. on representation of logic components as network- In this work we address reduction of complexity accessible services, and aims to facilitate develop- in service-based software development, and present ment and integration of systems through coordination an easy-to-use toolkit for efficient cross-language in- of service interactions. At architecture level, Service- tegration of software services. The toolkit is based Oriented Architectures (SOAs) define service inter- on three core components: a simplified syntax service faces as integration points and address system compo- description language, a transparent data serialization sition at interface or protocol level. While a number of and transmission protocol, and a set of code genera- SOA techniques have emerged, service development tion tools designed to abstract complexity in service and integration are still complex issues and there ex- and service client development. ists a need for development tools that provide non- complex and low-learning-requirement environments 1Computationally intensive science carried out in highly for efficient development of service-based systems. distributed network environments. 230 Östberg P. and Lockner N.. Creo: Reduced Complexity Service Development. DOI: 10.5220/0004854902300241 In Proceedings of the 4th International Conference on Cloud Computing and Services Science (CLOSER-2014), pages 230-241 ISBN: 978-989-758-019-2 Copyright c 2014 SCITEPRESS (Science and Technology Publications, Lda.) Creo:ReducedComplexityServiceDevelopment The remainder of the paper is structured as fol- tomated generation of service interconnection code lows: Section 2 presents project background and a stubs, dynamic service discovery and invocation tech- brief survey of related work, Section 3 outlines the niques, and service coordination and orchestration proposed approach and toolkit, and Section 4 dis- models. SOAP-style web services are however of- cusses use cases for the approach. In the second half ten criticized for having overly complex development of the paper, Section 5 contains a performance evalu- models, inefficiencies in service communication, and ation quantifying toolkit performance against selected low load tolerances in servers (although developments alternative techniques for code generation and ser- in pull-based parser models have alleviated some of vice communication, followed by conclusions and ac- the performance issues (Govindaraju et al., 2004)). knowledgements in sections 6 and 7. The REpresentational State Transfer (REST) (Fielding, 2000) web service model is often seen as a light-weight alternative to the complexity of 2 RELATED WORK SOAP-style web service development. The REST ap- proach discourages standardization (of message for- mats), promotes (re)use of existing wide-spread tech- A number of tools for service development and mid- nology, and aims to give service developers more dleware construction exist, ranging in complexity and freedom in, e.g., choice of data representation formats abstraction levels from very simple fine-grained in- and API structures. While this approach facilitates a terprocess communication tools to advanced middle- development model well suited for smaller projects, ware construction tools featuring advanced data mar- it is sometimes argued to lead to more tightly coupled shalling, call translation, and remote reference count- service models (that require service client developers ing techniques. In general there exists trade-offs be- to have knowledge of service-side data structures) and tween complexity and efficiency that make service introduce technology heterogeneity in large systems. technologies more or less suitable for certain situa- tions, and many technologies have been developed for Although service models are considered suitable specific application scenarios. for large-scale system integration, and some under- For example, direct interprocess communication standing of the applicability of web services has technologies such as traditional remote procedure been gained (Pautasso et al., 2008), neither ap- calls (RPC) (Birrell and Nelson, 1984) and Java Ob- proach fully addresses the requirements of service- ject Serialization (JOS) (Oracle, 2005) (over sock- oriented software development and a number of ets) provide transparent development models but of- technologies for hybrid service-RPC mechanisms fer little in ways of complexity abstraction. Other have emerged. These include, e.g., interface def- approaches such as Java Remote Method Invocation inition language (IDL) based technologies such as (RMI) (Wollrath et al., 1996) and the Microsoft Win- Apache Thrift (Slee et al., 2007), an RPC frame- dows Communication Framework (WCF) (Mackey, work for scalable cross-language service develop- 2010) offer development models tightly integrated ment, Apache Avro (Apache, 2009), a data serial- into mature commercial software development en- ization system featuring dynamic typing, and Google vironments, but lose some applicability in multi- protocol buffers (Google, 2008), a method for seri- platform application scenarios. There exists also alizing structured data for interprocess communica- standardized approaches to multi-language and multi- tion. For high performance serialization and trans- platform service development, e.g., the Common Ob- mission, there also exists a number of non-IDL ject Request Broker Architecture (CORBA) (Vinoski, based serialization formats and tools such as Jack- 1993), but while such standardized approaches typi- son JSON (Jackson, 2009), BSON (MongoDB Inc., cally are very expressive and capable of application in 2007), Kryo (Kryo, 2009), and MessagePack (Fu- multiple programming styles, e.g., object-orientation ruhashi, 2011). and component-oriented development, this general In addition to trade-offs for technical performance applicability often comes at the price of very steep and applicability, tools and development models of- learning curves and high development complexity. ten impose high learning requirements in dimensions In service-oriented computing and architectures, orthogonal to the task of building distributed sys- programming models such as SOAP and REST-style tems. For example, the Distributed Component Ob- web services are widely used due to features such as ject Model (DCOM) requires developers to under- platform independence, high abstraction levels, and stand data marshalling and memory models, Java interoperability. The SOAP approach to web ser- RMI distributed garbage collection, CORBA portable vices favors use of
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages12 Page
-
File Size-