Abstract

There is an urgent need for novel programming abstractions to leverage the parallelism in modern multicore machines. We introduce S, a new domain-specific language targeting the server-side scripting of high-performance RESTful Web services. S promotes an innovative programming model based on explicit (control-flow) and implicit (process-level) parallelism control, allowing the service developer to specify which portions of the control-flow should be executed in parallel. For each service, the choice of the best level of parallelism is left to the runtime system. We assess performance and scalability by implementing two non-trivial composite Web services in S. Experiments show that S-based Web services can handle thousands of concurrent client requests on a modern multicore machine.
- HTTP protocol specification. URL http://www.w3.org/Protocols/rfc2616/rfc2616.html.Google Scholar
- G. Agha. Actors: a model of concurrent computation in distributed systems. MIT Press, Cambridge, MA, USA, 1986. Google Scholar
Digital Library
- J. Aldrich, J. Sunshine, D. Saini, and Z. Sparks. Typestate-oriented programming. In Proc. of OOPSLA, pages 1015--1022, 2009. Google Scholar
Digital Library
- J. Aldrich, R. Garcia, M. Hahnenberg, M. Mohr, K. Naden, D. Saini, S. Stork, J. Sunshine, E. Tanter, and R. Wolff. Permission-based programming languages: Nier track. In Proc. of ICSE, pages 828--831, 2011. Google Scholar
Digital Library
- E. D. Berger, T. Yang, T. Liu, and G. Novark. Grace: safe multithreaded programming for C/C++. In Proc. of OOPSLA, pages 81--96, 2009. Google Scholar
Digital Library
- C. Boyapati, R. Lee, and M. Rinard. Ownership types for safe programming: preventing data races and deadlocks. In Proc. of OOPSLA, pages 211--230, 2002. Google Scholar
Digital Library
- L. Dagum and R. Menon. Openmp: An industry-standard api for shared-memory programming. IEEE Comput. Sci. Eng., 5: 46--55, January 1998. Google Scholar
Digital Library
- C. Elliott and P. Hudak. Functional reactive animation. In Proc. of ICFP, pages 263--273, 1997. Google Scholar
Digital Library
- A. Fettig and G. Lefkowitz. Twisted network programming essentials. O'Reilly, 2005. Google Scholar
Digital Library
- R. T. Fielding. Architectural Styles and the Design of Network-based Software Architectures. PhD thesis, University of California, Irvine, 2000. Google Scholar
Digital Library
- E. Fortuna, O. Anderson, L. Ceze, and S. Eggers. A limit study of JavaScript parallelism. In Proc. of IISWC, pages 1--10, 2010. Google Scholar
Digital Library
- P. Haller and M. Odersky. Scala actors: Unifying thread-based and event-based programming. Theor. Comput. Sci., 410: 202--220, February 2009. Google Scholar
Digital Library
- I. Hickson. Web workers. World Wide Web Consortium, Working Draft WD-workers-20110310, March 2011.Google Scholar
- J. Hogg. Islands: aliasing protection in object-oriented languages. In Proc. of OOPSLA, pages 271--285, 1991. Google Scholar
Digital Library
- J. C. Jenista, Y. h. Eom, and B. C. Demsky. OoOJava: software out-of-order execution. In Proc. of PPoPP, pages 57--68, 2011. Google Scholar
Digital Library
- L. A. Meyerovich, A. Guha, J. Baskin, G. H. Cooper, M. Greenberg, A. Bromfield, and S. Krishnamurthi. Flapjax: a programming language for ajax applications. In Proc. of OOPSLA, pages 1--20, 2009. Google Scholar
Digital Library
- K. Ostrowski, C. Sakoda, and K. Birman. Self-replicating objects for multicore platforms. In Proc. of ECOOP, pages 452--477, 2010. Google Scholar
Digital Library
- K. H. Randall. Cilk: efficient multithreaded computing. PhD thesis, 1998. Google Scholar
Digital Library
- S. Tilkov and S. Vinoski. Node.js: Using JavaScript to build high-performance network programs. IEEE Internet Computing, 14: 80--83, November 2010. Google Scholar
Digital Library
- R. Virding, C. Wikström, and M. Williams. Concurrent programming in ERLANG (2nd ed.). Prentice Hall International (UK) Ltd., 1996. Google Scholar
Digital Library
- C. von Praun, L. Ceze, and C. Caşcaval. Implicit parallelism with ordered transactions. In Proc. of PPoPP, pages 79--89, 2007. Google Scholar
Digital Library
Index Terms
S: a scripting language for high-performance RESTful web services
Recommendations
S: a scripting language for high-performance RESTful web services
PPoPP '12: Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel ProgrammingThere is an urgent need for novel programming abstractions to leverage the parallelism in modern multicore machines. We introduce S, a new domain-specific language targeting the server-side scripting of high-performance RESTful Web services. S promotes ...
Integrating RESTful Service into BPEL Business Process on Service Generation System
SCC '13: Proceedings of the 2013 IEEE International Conference on Services ComputingNew value-added business, generated by Web service composition in BPEL, provides more powerful and flexible features. SOAP-based web services invoked in BPEL are heavy with redundant information and lower performance. RESTful Web service is brought ...
Towards Automated RESTful Web Service Composition
ICWS '09: Proceedings of the 2009 IEEE International Conference on Web ServicesEmerging as the popular choice for leading Internet companies to expose internal data and resources, Restful Web services are attracting increasing attention in the industry.While automating WSDL/SOAP based Web service composition has been extensively ...







Comments