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 ScholarDigital Library
- J. Aldrich, J. Sunshine, D. Saini, and Z. Sparks. Typestate-oriented programming. In Proc. of OOPSLA, pages 1015--1022, 2009. Google ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital Library
- C. Elliott and P. Hudak. Functional reactive animation. In Proc. of ICFP, pages 263--273, 1997. Google ScholarDigital Library
- A. Fettig and G. Lefkowitz. Twisted network programming essentials. O'Reilly, 2005. Google ScholarDigital Library
- R. T. Fielding. Architectural Styles and the Design of Network-based Software Architectures. PhD thesis, University of California, Irvine, 2000. Google ScholarDigital 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 ScholarDigital Library
- P. Haller and M. Odersky. Scala actors: Unifying thread-based and event-based programming. Theor. Comput. Sci., 410: 202--220, February 2009. Google ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital Library
- K. Ostrowski, C. Sakoda, and K. Birman. Self-replicating objects for multicore platforms. In Proc. of ECOOP, pages 452--477, 2010. Google ScholarDigital Library
- K. H. Randall. Cilk: efficient multithreaded computing. PhD thesis, 1998. Google ScholarDigital 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 ScholarDigital Library
- R. Virding, C. Wikström, and M. Williams. Concurrent programming in ERLANG (2nd ed.). Prentice Hall International (UK) Ltd., 1996. Google ScholarDigital Library
- C. von Praun, L. Ceze, and C. Caşcaval. Implicit parallelism with ordered transactions. In Proc. of PPoPP, pages 79--89, 2007. Google ScholarDigital 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