Creo: Reduced Complexity Service Development

Per-Olov Östberg, Niclas Lockner

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 description 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 service communication. In tests of communication overhead and response time, toolkit performance is found to be comparable to or improve upon the evaluated techniques.

References

  1. Apache (2005). Apache Web Services Project - Axis2, http://ws.apache.org/axis2, February 2014.
  2. Apache (2009). Apache Avro, http://avro.apache.org/, February 2014.
  3. Apache (2010). Apache Thrift, http://thrift.apache.org/, February 2014.
  4. Armbrust, M., Fox, A., Griffith, R., Joseph, A., Katz, R., Konwinski, A., Lee, G., Patterson, D., Rabkin, A., Stoica, I., et al. (2010). A view of cloud computing. Communications of the ACM, 53(4):50-58.
  5. Berl, A., Gelenbe, E., Di Girolamo, M., Giuliani, G., De Meer, H., Dang, M. Q., and Pentikousis, K. (2010). Energy-Efficient Cloud Computing. The Computer Journal, 53(7):1045-1051.
  6. Birrell, A. D. and Nelson, B. J. (1984). Implementing remote procedure calls. ACM Transactions on Computer Systems (TOCS), 2(1):39-59.
  7. Fielding, R. T. (2000). Architectural Styles and the Design of Network-based Software Architectures. PhD thesis, University of California.
  8. Furuhashi, S. (2011). MessagePack, https://github.com/ msgpack/msgpack/blob/master/spec.md, February 2014.
  9. Google (2008). https://developers.google.com/protocolbuffers/, February 2014.
  10. Govindaraju, M., Slominski, A., Chiu, K., Liu, P., Van Engelen, R., and Lewis, M. J. (2004). Toward characterizing the performance of soap toolkits. In Grid Computing, 2004. Proceedings. Fifth IEEE/ACM International Workshop on, pages 365-372. IEEE.
  11. Jackson (2009). https://github.com/FasterXML/jackson, February 2014.
  12. Kephart, J. O. and Chess, D. M. (2003). The Vision of Autonomic Computing. Computer, 36:41-50.
  13. Kryo (2009). https://github.com/EsotericSoftware/kryo, February 2014.
  14. Mackey, A. (2010). Windows communication foundation. In Introducing. NET 4.0, pages 159-173. Springer.
  15. MongoDB Inc. (2007). BSON, http://http://bsonspec.org, February 2014.
  16. Oracle (2005). Java Object Serialization, http://docs.oracle.com/javase/7/docs/platform/ serialization/spec/serialTOC.html, February 2014.
  17. O stberg, P.-O. and Elmroth, E. (2011). Increasing Flexibility and Abstracting Complexity in Service-Based Grid and Cloud Software. In F. Leymann, I. I., van Sinderen, M., and Shishkov, B., editors, Proceedings of CLOSER 2011 - International Conference on Cloud Computing and Services Science, pages 240- 249. SciTePress.
  18. O stberg, P.-O., Espling, D., and Elmroth, E. (2013). Decentralized scalable fairshare scheduling. Future Generation Computer Systems - The International Journal of Grid Computing and eScience, 29:130-143.
  19. O stberg, P.-O., Hellander, A., Drawert, B., Elmroth, E., Holmgren, S., and Petzold, L. (2012). Reducing complexity in management of escience computations. In Proceedings of CCGrid 2012 - The 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing, pages 845-852.
  20. Pautasso, C., Zimmermann, O., and Leymann, F. (2008). Restful web services vs. big web services: making the right architectural decision. In Proceedings of the 17th international conference on World Wide Web, pages 805-814. ACM.
  21. Restlet (2013). Restlet Framework, http://restlet.org, February 2014.
  22. Slee, M., Agarwal, A., and Kwiatkowski, M. (2007). Thrift: Scalable cross-language services implementation. Facebook White Paper, 5.
  23. Van Deursen, A., Klint, P., and Visser, J. (2000). Domainspecific languages: An annotated bibliography. Sigplan Notices, 35(6):26-36.
  24. Vinoski, S. (1993). Distributed object computing with corba. C++ Report, 5(6):32-38.
  25. Walker, E. (2009). The real cost of a CPU hour. Computer, 42(4):35-41.
  26. Wollrath, A., Riggs, R., and Waldo, J. (1996). A distributed object model for the java system. Computing Systems, 9:265-290.
Download


Paper Citation


in Harvard Style

Östberg P. and Lockner N. (2014). Creo: Reduced Complexity Service Development . In Proceedings of the 4th International Conference on Cloud Computing and Services Science - Volume 1: CLOSER, ISBN 978-989-758-019-2, pages 230-241. DOI: 10.5220/0004854902300241


in Bibtex Style

@conference{closer14,
author={Per-Olov Östberg and Niclas Lockner},
title={Creo: Reduced Complexity Service Development},
booktitle={Proceedings of the 4th International Conference on Cloud Computing and Services Science - Volume 1: CLOSER,},
year={2014},
pages={230-241},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0004854902300241},
isbn={978-989-758-019-2},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 4th International Conference on Cloud Computing and Services Science - Volume 1: CLOSER,
TI - Creo: Reduced Complexity Service Development
SN - 978-989-758-019-2
AU - Östberg P.
AU - Lockner N.
PY - 2014
SP - 230
EP - 241
DO - 10.5220/0004854902300241