Abstract
The continuous growth and increasing complexity of distributed systems software has produced a need for software development tools and techniques that reduce the learning requirements and complexity of building distributed systems. In this work we address reduction of complexity in service-oriented software development and present an approach and a toolkit for multi-language service development based on three building blocks: a simplified service description language, an intuitive message serialization and transport protocol, and a set of code generation techniques that provide boilerplate environments for service implementations. The toolkit is intended for use in the eScience domain and is presented along with a performance evaluation that quantifies toolkit performance against that of selected alternative toolkits and technologies for service development. Toolkit performance is found to be comparable to or improve upon the performance of evaluated technologies.
This is a preview of subscription content, log in via an institution.
Notes
- 1.
This paper is an invited extended version of the paper Creo: Reduced Complexity Service Development presented at CLOSER 2014.
- 2.
Computationally intensive science in highly distributed network environments.
References
Apache, Apache Web Services Project - Axis2, July 2014. http://ws.apache.org/axis2
Apache, Apache Avro, July 2014. http://avro.apache.org/
Apache, Apache Thrift, July 2014. http://thrift.apache.org/
Armbrust, M., Fox, A., Griffith, R., Joseph, A.D., Katz, R., Konwinski, A., Lee, G., Patterson, D., Rabkin, A., Stoica, I., et al.: A view of cloud computing. Commun. ACM 53(4), 50–58 (2010)
Berl, A., Gelenbe, E., Di Girolamo, M., Giuliani, G., De Meer, H., Dang, M.Q., Pentikousis, K.: Energy-efficient cloud computing. Comput. J. 53(7), 1045–1051 (2010)
Birrell, A.D., Nelson, B.J.: Implementing remote procedure calls. ACM Trans. Comput. Syst. (TOCS) 2(1), 39–59 (1984)
Esoteric Software, Kryo, July 2014. https://github.com/EsotericSoftware/kryo
Fielding, R.T.: Architectural styles and the design of network-based software architectures. Ph.D thesis, University of California (2000)
Furuhashi, S.: MessagePack, July 2014. https://github.com/msgpack/msgpack/
Google, Protocol Buffers, July 2014. https://developers.google.com/protocol-buffers/
Govindaraju, M., Slominski, A., Chiu, K., Liu, P., Van Engelen, R., Lewis, M.J.: Toward characterizing the performance of SOAP toolkits. In: Proceedings of the Fifth IEEE/ACM International Workshop on Grid Computing, pp. 365–372. IEEE (2004)
Jackson, July 2014. https://github.com/FasterXML/jackson
Kephart, J.O., Chess, D.M.: The vision of autonomic computing. Computer 36, 41–50 (2003)
Mackey, A.: Windows communication foundation. In: Introducing. NET 4.0, pp. 159–173. Springer (2010)
MongoDB Inc., BSON, July 2014. http://bsonspec.org
Oracle, Java Object Serialization, July 2014. http://docs.oracle.com/javase/7/docs/platform/serialization/spec/serialTOC.html
Östberg, P.-O., Elmroth, E.: Increasing flexibility and abstracting complexity in service-based grid and cloud software. In: Ivanov, I., Leymann, F., van Sinderen, M., Shishkov, B. (eds.) Proceedings of CLOSER 2011 - International Conference on Cloud Computing and Services Science, pp. 240–249. SciTePress, Noordwijkerhout (2011)
Östberg, P.-O., Espling, D., Elmroth, E.: Decentralized scalable fairshare scheduling. Future Gener. Comput. Syst. - Int. J. Grid Comput. eScience 29, 130–143 (2013)
Östberg, P.-O., Hellander, A., Drawert, B., Elmroth, E., Holmgren, S., Petzold, L.: Reducing complexity in management of escience computations. In: Proceedings of CCGrid 2012 - The 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing, pp. 845–852 (2012)
Pautasso, C., Zimmermann, O., Leymann, F.: Restful web services vs. big web services: making the right architectural decision. In: Proceedings of the 17th International Conference on World Wide Web, pp. 805–814. ACM (2008)
Restlet, Restlet Framework, July 2014. http://restlet.org
Slee, M., Agarwal, A., Kwiatkowski, M.: Thrift: scalable cross-language services implementation. Facebook White Pap. 5, 8 (2007)
Van Deursen, A., Klint, P., Visser, J.: Domain-specific languages: an annotated bibliography. sigplan Not. 35(6), 26–36 (2000)
Vinoski, S.: Distributed object computing with CORBA. C++ Rep. 5(6), 32–38 (1993)
Walker, E.: The real cost of a CPU hour. Computer 42(4), 35–41 (2009)
Wollrath, A., Riggs, R., Waldo, J.: A distributed object model for the Java system. Comput. Syst. 9, 265–290 (1996)
Acknowledgements
The authors acknowledge Mikael Öhman, Sebastian Gröhn, and Anders Häggström for work related to the project. This work is done in collaboration with the High Performance Computing Center North (HPC2N) and is funded by the Swedish Government’s strategic research project eSSENCE and the Swedish Research Council (VR) under contract number C0590801 for the project Cloud Control.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Östberg, PO., Lockner, N. (2015). Reducing Complexity in Service Development and Integration. In: Helfert, M., Desprez, F., Ferguson, D., Leymann, F., Méndez Munoz, V. (eds) Cloud Computing and Services Sciences. CLOSER 2014. Communications in Computer and Information Science, vol 512. Springer, Cham. https://doi.org/10.1007/978-3-319-25414-2_5
Download citation
DOI: https://doi.org/10.1007/978-3-319-25414-2_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-25413-5
Online ISBN: 978-3-319-25414-2
eBook Packages: Computer ScienceComputer Science (R0)