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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
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)