Abstract
Management is one of the main expenses of running the server farms that implement enterprise services, and operator errors can be costly. Our goal is to develop type-safe programming mechanisms for combining and managing enterprise services, and we achieve this goal in the particular setting of farms of virtual machines. We assume each server is service-oriented, in the sense that the services it provides, and the external services it depends upon, are explicitly described in metadata. We describe the design, implementation, and formal semantics of a library of combinators whose types record and respect server metadata. We describe a series of programming examples run on our implementation, based on existing server code for a typical web application.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
AppLogic: Grid Operating System for Utility Computing. 3TERA (September 2006), http://0301.netclime.net/1_5/8/A/8/3teraAppLogic0906.pdf
Amazon Elastic Compute Cloud (Amazon EC2) - Limited Beta. Amazon Web Services LLC (August 2006), http://aws.amazon.com/ec2
Anderson, P.: Towards a High-Level Machine Configuration System. In: Proceedings of the 8th Large Installations Systems Administration (LISA) Conference, Berkeley, CA, pp. 19–26 (1994)
Armstrong, B.: Professional Microsoft Virtual Server 2005. Wiley, Chichester (2007)
Barham, P., Dragovic, B., Fraser, K., Hand, S., Harris, T., Ho, A., Neugebauer, R., Pratt, I., Warfield, A.: Xen and the art of virtualization. In: Symposium on Operating Systems Principles (SOSP 2003), pp. 164–177 (2003)
Bavier, A., Chun, B., Culler, D., Karlin, S., Muir, S., Peterson, L., Roscoe, T., Spalink, T., Wawrzoniak, M.: Operating system support for planetary-scale network services. In: NSDI 2004 (2004)
Bhargavan, K., Fournet, C., Gordon, A.D., Tse, S.: Verified interoperable implementations of security protocols. In: 19th IEEE Computer Security Foundations Workshop (CSFW 2006), pp. 139–152 (2006)
Bhargavan, K., Gordon, A.D., Narasamdya, I.: Service combinators for farming virtual machines. Technical Report MSR–TR–2007–165, Microsoft Research (2007)
Box, D., Ehnebuske, D., Kakivaya, G., Layman, A., Mendelsohn, N., Nielsen, H., Thatte, S., Winer, D.: Simple Object Access Protocol (SOAP) 1.1 (2000)
Carpineti, S., Laneve, C., Padovani, L.: Piduce—a project for experimenting web services technologies (2006), http://www.cs.unibo.it/PiDuce/
Castagna, G., Vitek, J., Zappa Nardelli, F.: The seal calculus. Information and Computation 201(1), 1–54 (2005)
Christensen, E., Curbera, F., Meredith, G., Weerawarana, S.: Web Services Description Language (WSDL) 1.1 (2001)
Dean, J., Ghemawat, S.: MapReduce: simplified data processing on large clusters. In: Sixth Symposium on Operating System Design and Implementation (OSDI 2004), pp. 137–150 (2004)
Garfinkel, S.: Commodity grid computing with Amazon’s S3 and EC2. login, 7–13 (February 2007)
Goldsack, P., Guijarro, J., Lain, A., Mecheneau, G., Murray, P., Toft, P.: SmartFrog: Configuration and automatic ignition of distributed applications, 2003. In: Presented at 2003 HP Openview University Association conference (2003), http://www.hpl.hp.com/research/smartfrog/
Gordon, A.D.: V for Virtual. In: Algebraic Process Calculi: The First Twenty Five Years and Beyond, pp. 114–117 (2005) (Available as BRICS Note NS–05–3, University of Aarhus)
Hoykhet, A., Lange, J., Dinda, P.: Virtuoso: A system for virtual machine marketplaces. Technical Report NWU-CS-04-39, Northwestern University, URL (2004), http://virtuoso.cs.northwestern.edu/NWU-CS-04-39.pdf
Huang, L., Hudak, P., Peterson, J.: HPorter: Using Arrows to Compose Parallel Processes. In: Hanus, M. (ed.) PADL 2007. LNCS, vol. 4354, pp. 275–289. Springer, Heidelberg (2006)
Preboot Execution Environment (PXE) Specification. Intel Corporation and SystemSoft (1999), available at http://www.pix.net/software/pxeboot/archive/pxespec.pdf
Lapadula, A., Pugliese, R., Tiezzi, F.: A Calculus for Orchestration of Web Services. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 33–47. Springer, Heidelberg (2007)
Lienhardt, M., Schmitt, A., Stefani, J.-B.: OZ/K: A kernel language for component-based open programming. In: Generative Programming and Component Engineering (GPCE 2007) (2007)
Meyer, R.A., Seawright, L.H.: A virtual machine time-sharing system. IBM Systems Journal 9(3), 199–218 (1970)
Nagaraja, K., Oliveira, F., Bianchini, R., Martin, R.P., Nguyen, T.D.: Understanding and dealing with operator mistakes in internet services. In: OSDI 2004: Proceedings of the 6th Symposium on Operating Systems Design & Implementation, Berkeley, CA, USA, pp. 61–76, USENIX Association (2004)
Oppenheimer, D., Ganapathi, A., Patterson, D.A.: Why do Internet services fail, and what can be done about it? In: 4th Usenix Symposium on Internet Technologies and Systems (USITS 2003) (2003)
Pallmann, D.: Programming Indigo: The Code Name for the Unified Framework for Building Service-Oriented Applications on the Microsoft Windows Platform. Microsoft Press (2005)
Schmitt, A., Stefani, J.-B.: The Kell calculus: A family of higher-order distributed process calculi. In: Global Computing. LNCS, pp. 146–178. Springer, Heidelberg (2005)
Syme, D., Granicz, A., Cisternino, A.: Expert F#. Apress (2007)
Wolf, C., Halter, E.M.: Virtualization: from the desktop to the enterprise. Apress (2005)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bhargavan, K., Gordon, A.D., Narasamdya, I. (2008). Service Combinators for Farming Virtual Machines. In: Lea, D., Zavattaro, G. (eds) Coordination Models and Languages. COORDINATION 2008. Lecture Notes in Computer Science, vol 5052. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-68265-3_3
Download citation
DOI: https://doi.org/10.1007/978-3-540-68265-3_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-68264-6
Online ISBN: 978-3-540-68265-3
eBook Packages: Computer ScienceComputer Science (R0)