Creo: Reduced Complexity Service Development

Creo: Reduced Complexity Service Development

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

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    12 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us