Abstract
Web Operating Systems can be seen as an extension of traditional Operating Systems where the addresses used to manage files and execute programs (via the basic load/execution mechanism) are extended from local filesystem path-names to URLs. A first consequence is that, similarly as in traditional web technologies, executing a program at a given URL, can be done in two modalities: either the execution is performed client-side at the invoking machine (and relative URL addressing in the executed program set to refer to the invoked URL) or it is performed server-side at the machine addressed by the invoked URL (as, e.g., for a web service). Moreover in this context, user identification for access to programs and files and workflow-based composition of service programs is naturally based on token/session-like mechanisms. We propose a middleware based on client-server protocols and on a set primitives, for managing files/resources and executing programs (in the form of client-side/server-side components/services) in Web Operating Systems, based on (an extension of) the REST architecture. We formally define the semantics of such middleware by first introducing a process algebra for standard REST and then extending it to the whole middleware.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
For denotational convenience, in this paper we use backslashes in URLs instead of slashes, because we use slashes to represent replacements.
- 2.
Notice that, in RESTful Web Services, it is not mandatory for services to manage several resources: the pattern “\(\backslash pathname \backslash name\)” (or just “\(\backslash name\)”), not including “\(*\)”, can alternatively be used, which matches just a single resource.
- 3.
We use \(fr(E)\) to denote free names included in \(E\).
- 4.
This is analogous to the mechanism for determining the servlet to be executed in a Tomcat server.
- 5.
We assume that \(\varepsilon \) is returned (the smallest element in the prefix relation) if we have an emptyset.
- 6.
Client sessions are therefore not shared between components or between different execution of operations in the same component, differently from what happens, e.g., in a browser.
References
Boreale, M., Bruni, R., Caires, L., De Nicola, R., Lanese, I., Loreti, M., Martins, F., Montanari, U., Ravara, A., Sangiorgi, D., Vasconcelos, V., Zavattaro, G.: \(\sf {SCC}\): a service centered calculus. In: Bravetti, M., Núñez, M., Zavattaro, G. (eds.) WS-FM 2006. LNCS, vol. 4184, pp. 38–57. Springer, Heidelberg (2006)
Boreale, M., Bruni, R., De Nicola, R., Loreti, M.: Sessions and pipelines for structured service programming. In: Barthe, G., de Boer, F.S. (eds.) FMOODS 2008. LNCS, vol. 5051, pp. 19–38. Springer, Heidelberg (2008)
Bravetti, M.: File managing and program execution in web operating systems. CoRR abs/1005.5045 (2010)
Google Chromium OS Project. http://www.chromium.org/chromium-os
Cruz-Filipe, L., Lanese, I., Martins, F., Ravara, A., Vasconcelos, V.T.: The stream-based service-centered calculus: a foundation for service-oriented programming. Formal Aspects Comput. (2013)
Fielding, R.T.: Architectural styles and the design of network-based software architectures. Ph.D. Thesis, University of California, Irvine (2000) (Chapter 5 Representational State Transfer (REST))
Hernández, A.G., Moreno García, M.N.: A formal definition of RESTful semantic web services. In: First International Workshop on RESTful Design, WS-REST 2010, pp. 39–45. ACM (2010)
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)
Milner, R.: Communicating and Mobile Systems: the Pi-Calculus. Cambridge University Press, New York (1999)
Riely, J., Hennessy, M.: A typed language for distributed mobile processes (extended abstract). In: POPL 1998, pp. 378–390 (1998)
World Wide Web Consortium. SOAP Protocol Version 1.2. http://www.w3.org/TR/soap/
Vieira, H.T., Caires, L., Seco, J.C.: The conversation calculus: a model of service-oriented computation. In: Drossopoulou, S. (ed.) ESOP 2008. LNCS, vol. 4960, pp. 269–283. Springer, Heidelberg (2008)
Web Services Business Process Execution Language Version 2.0 OASIS Standard. http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.pdf
Wu, X., Zhang, Y., Zhu, H., Zhao, Y., Sun, Z., Liu, P.: Formal modeling and analysis of the rest architecture using csp. In: ter Beek, M.H., Lohmann, N. (eds.) WS-FM 2012. LNCS, vol. 7843, pp. 87–102. Springer, Heidelberg (2013)
Zuzak, I., Budiselic, I., Delac, G.: Formal modeling of RESTful systems using finite-state machines. In: Auer, S., Díaz, O., Papadopoulos, G.A. (eds.) ICWE 2011. LNCS, vol. 6757, pp. 346–360. Springer, Heidelberg (2011)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Science and Engineering Faculty
About this paper
Cite this paper
Bravetti, M. (2014). Formalizing RESTful Services and Web-OS Middleware. In: Tuosto, E., Ouyang, C. (eds) Web Services and Formal Methods. WS-FM 2013. Lecture Notes in Computer Science(), vol 8379. Springer, Cham. https://doi.org/10.1007/978-3-319-08260-8_4
Download citation
DOI: https://doi.org/10.1007/978-3-319-08260-8_4
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-08259-2
Online ISBN: 978-3-319-08260-8
eBook Packages: Computer ScienceComputer Science (R0)