Abstract
We examine the implications of end-to-end web application development, in the social web era. The paper describes a distributed architecture, suitable for modern web application development, as well as the interactivity components associated with it. Furthermore, we conducted a series of stress tests, on popular server side technologies. The PHP/Apache stack was found inefficient to address the increasing demand in network traffic. Nginx was found more than 2.5 times faster in input/output (I/O) operations than Apache, whereas Node.js outperformed both. Node.js, although excellent in I/O operations and resource utilization, was found lacking in serving static files using its built in HTTP server, while Nginx performed great at this task. So, in order to address efficiency, an Nginx server could be placed in-front and proxy static file requests, allowing the Node.js processes to only handle dynamic content. Such a configuration can offer a better infrastructure in terms of efficiency and scalability, replacing the aged PHP/Apache stack. Furthermore we have found that building cross platform applications based on web technologies, is both feasible and highly productive, especially when addressing stationary and mobile devices, as well as the fragmentation among them. Our study concludes that Node.js offers client-server development integration, aiding code reusability in web applications, and is the perfect tool for developing fast, scalable network applications.



















Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
http://groups.google.co.uk/group/alt.hypertext/msg/06dad279804cb3ba. Accessed 22 Mar 2014
Lueg C, Fisher D (2003) From Usenet to CoWebs: interacting with social information spaces. Springer, Berlin
Facebook Reports Fourth Quarter 2013 and Full Year 2013 Results. http://investor.fb.com/releasedetail.cfm?ReleaseID=821954. Accessed 22 Mar 2014
Holzinger A, Treitler P, Slany W (2012) Making apps useable on multiple different mobile platforms: on interoperability for business application development on smartphones. In: Multidisciplinary Research and Practice for Information Systems. Lecture Notes in Computer Science, vol 7465, pp 176–189
Cisco Visual Networking Index: Global Mobile Data Traffic Forecast Update (2012) 2017 http://www.cisco.com/en/US/solutions/collateral/ns341/ns525/ns537/ns705/ns827/white_paper_c11-520862.html. Accessed 22 Mar 2014
Amatya S, Kurti A (2014) Cross-platform mobile development: challenges and opportunities. In: ICT Innovations 2013, Advances in Intelligent Systems and Computing, Vol 231. Springer, New York, pp 219–229
Ericsson Traffic and Market Report (2012) http://www.ericsson.com/res/docs/2012/traffic_and_market_report_june_2012.pdf. Accessed 22 Mar 2014
Juwel R, Hallberg J, Synnes K, Kristiansson J (2010) Harnessing the cloud for mobile social networking applications. Int J Grid High Perform Comput 2(2):1–11
RFC 6455#section-1.7, http://tools.ietf.org/html/rfc6455. Accessed 22 Mar 2014
Web Server Survey, Netcraft (2013) http://news.netcraft.com/archives/2013/10/02/october-2013-web-server-survey.html. Accessed 22 Mar 2014
PHP just grows and grows, Netcraft (2013) http://news.netcraft.com/archives/2013/01/31/php-just-grows-grows.html. Accessed 22 Mar 2014
Kappel G et al (2004) Web engineeringold wine in new bottles?. Springer, Berlin Heidelberg
W3C, HTML5.1, http://www.w3.org/TR/html51/. Accessed 22 Mar 2014
Juntunen A, Jalonen E, Luukkainen S (2013) HTML 5 in mobile devices-drivers and restraints. System Sciences (HICSS), 46th Hawaii International Conference on IEEE
PhoneGap Framework, http://phonegap.com/. Accessed 22 Mar 2014
Appcelerator Platform, http://www.appcelerator.com/. Accessed 22 Mar 2014
IBM Worklight, http://www-03.ibm.com/software/products/en/worklight/. Accessed 22 Mar 2014
RhoMobile Suite, http://www.motorolasolutions.com/US-EN/Business+Product+and+Services/Software+and+Applications/RhoMobile+Suite. Accessed 22 Mar 2014
White Paper by RapidValue Solutions: How to Choose the Right Architecture For Your Mobile Application (2012)
Mikowski M, Powell J (2013) Single Page Web Applications: JavaScript end-to-end, Manning Publications (Sep 27, 2013, ISBN: 1617290750)
Janne L (2013) On the development of real-time multi-user web applications. Tampereen teknillinen yliopisto. Julkaisu-Tampere University of Technology (Publication 1167)
Antero T, Mikkonen T (2011) The web as an application platform: the saga continues. Software Engineering and Advanced Applications (SEAA), 37th EUROMICRO Conference on. IEEE
Shuang K, Kai F (2013) Research on server push methods in web browser based instant messaging applications. J Softw 8(10):2644–2651
Spyros X, Xinogalos S (2013) A comparative analysis of cross-platform development approaches for mobile applications. Proceedings of the 6th Balkan Conference in Informatics. ACM
Smutny P (2012) Mobile development tools and cross-platform solutions. Carpathian Control Conference (ICCC), 2012 13th International IEEE
Henning H, Hanschke S, Majchrzak TA (2013) Evaluating cross-platform development approaches for mobile applications. Web information systems and technologies. Springer, Berlin Heidelberg
http://nodejs.org/industry/. Accessed 22 Mar 2014
http://www.firebase.com/. Accessed 22 Mar 2014
Tornado: Facebook’s Real-Time Web Framework for Python, http://developers.facebook.com/blog/post/301/. Accessed 22 Mar 2014
Real-Time Delivery Architecture at Twitter, http://www.infoq.com/presentations/Real-Time-Delivery-Twitter. Accessed 22 Mar 2014
Web Server Survey, Netcraft (2013). http://news.netcraft.com/archives/2013/08/09/august-2013-web-server-survey.html. Accessed 22 Mar 2014
Simons P, Babel R (2001) FastCGI the forgotten treasure. ApacheCon Europe
Veal B, Foong A (2007) Performance scalability of a multi-core web server. Proceedings of the 3rd ACM/IEEE Symposium on Architecture for networking and communications systems. ACM
The Zettabyte EraTrends and Analysis. http://www.cisco.com/en/US/solutions/collateral/ns341/ns525/ns537/ns705/ns827/VNI_Hyperconnectivity_WP.html. Accessed 22 Mar 2014
IDC, Press Release. http://www.idc.com/getdoc.jsp?containerId=prUS24108913. Accessed 22 Mar 2014
Android Fregmentation Visualized (2013) http://opensignal.com/reports/fragmentation-2013/fragmentation-2013. Accessed 22 Mar 2014
XMLSocket, AS3. http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/XMLSocket.html. Accessed 22 Mar 2014
Wang V, Salim F, Moskovits P (2013) Deployment considerations. The definitive guide to HTML5 WebSocket, chapter 8. Apress, pp 149–162
Kaplan Andreas M, Haenlein Michael (2010) Users of the world, unite! the challenges and opportunities of social media. Bus horizons 53(1):59–68
Chaniotis IK, Kyriakou KID, Tselikas ND (2013) Proximity: a real-time, location aware social web application built with Node.js and AngularJS. Mobile Web and Information Systems. Springer, Berlin Heidelberg, pp 292–295
Lundar J, Grnli TM, Ghinea G (2013) Performance evaluation of a modern web architecture. Int J Inform Technol Web Eng (IJITWE) 8(1):36–50
Tom H-C, Mike W (2012) “Node: up and running”, O’Reilly Media, ISBN: 978-1-4493-9858-3
http://geohash.org/. Accessed 22 Mar 2014
Redis documentation, http://redis.io/documentation. Accessed 22 Mar 2014
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise. Accessed 22 Mar 2014
http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts. Accessed 22 Mar 2014
Mark Ethan Trostler (2013) “Testable JavaScript”, O’Reilly Media, ISBN: 978-1-4493-2339-4
ImageMagick, http://www.imagemagick.org. Accessed 22 Mar 2014
GraphicsMagick, http://www.graphicsmagick.org. Accessed 22 Mar 2014
Dabek F et al (2002) Event-driven programming for robust software. Proceedings of the 10th workshop on ACM SIGOPS European workshop. ACM
http://angularjs.org/. Accessed 22 Mar 2014
Stone P (2013) Pixel perfect timing attacks with HTML5. Context Information Security (White Paper)
/proc/sys/net/ipv4/* Variables, http://www.cyberciti.biz/files/linux-kernel/Documentation/networking/ip-sysctl.txt. Accessed 22 Mar 2014
IBM, International Technical Support Organisation Linux Performance and Tuning Guidelines (2007). http://www.redbooks.ibm.com/redpapers/pdfs/redp4285. Accessed 22 Mar 2014
Pache Multi-Processing Modules, http://httpd.apache.org/docs/2.2/mpm.html. Accessed 22 Mar 2014
Temme S (2007) Apache Performance Tuning Part One: Scaling Up
Apache MPM prefork. http://httpd.apache.org/docs/2.2/mod/prefork.html. Accessed 22 Mar 2014
Apache documentation. http://httpd.apache.org/docs/2.2/mpm.html. Accessed 22 Mar 2014
http://wiki.nginx.org/Main. Accessed 22 Mar 2014
http://php-fpm.org/. Accessed 22 Mar 2014
http://www.fastcgi.com/. Accessed 22 Mar 2014
https://code.google.com/p/v8/. Accessed 22 Mar 2014
http://nodejs.org/. Accessed 22 Mar 2014
http://nodejs.org/api/cluster.html. Accessed 22 Mar 2014
http://redmine.lighttpd.net/projects/weighttp/wiki. Accessed 22 Mar 2014
Johnson T, Seeling P (2013) Desktop and mobile web page comparison: characteristics, trends, and implications. arXiv preprint arXiv:1309.1792. Accessed 22 Mar 2014
Schneider F (2010) Analysis of new trends in the web from a network perspective. Ph.D thesis, TU Berlin
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Chaniotis, I.K., Kyriakou, KI.D. & Tselikas, N.D. Is Node.js a viable option for building modern web applications? A performance evaluation study. Computing 97, 1023–1044 (2015). https://doi.org/10.1007/s00607-014-0394-9
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00607-014-0394-9