Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1109/ICPC.2019.00051acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Measuring interprocess communications in distributed systems

Published: 25 May 2019 Publication History

Abstract

Due to the increasing demands for computational scalability and performance, more distributed software systems are being developed than single-process programs. As an important step in software quality assurance, software measurement provides essential means and evidences in quality assessment hence incentives and guidance for quality improvement. However, despite the rich literature on software measurement in general, existing measures are mostly defined for single-process programs only or limited to conventional metrics. In this paper, we propose a novel set of metrics for common distributed systems, with a focus on their interprocess communications (IPC), a vital aspect of their run-time behaviors. We demonstrated the practicality of characterizing IPC dynamics and complexity via the proposed IPC metrics, by computing the measures against nine real-world distributed systems and their varied executions. To demonstrate the practical usefulness of IPC measurements, we extensively investigated how the proposed metrics may help understand and analyze various quality factors of distributed systems, ranging from maintainability and stability to security and performance, on the same nine distributed systems and their executions. We found that higher IPC coupling tended to be generally detrimental to most of the quality aspects while interprocess sharing of common functionalities should be promoted due to its understandability and security benefits.

References

[1]
D. Galin, Software quality assurance: from theory to implementation. Pearson Education India, 2004.
[2]
S. H. Kan, Metrics and models in software quality engineering. Addison-Wesley Longman Publishing Co., Inc., 2002.
[3]
N. Fenton and J. Bieman, Software Metrics: A Rigorous and Practical Approach. CRC Press, 2014.
[4]
A. Tahir and S. G. MacDonell, "A systematic mapping study on dynamic metrics and software quality," in Proceedings of IEEE International Conference on Software Maintenance. IEEE, 2012, pp. 326--335.
[5]
J. K. Chhabra and V. Gupta, "A survey of dynamic software metrics," Journal of Computer Science and Technology, vol. 25, no. 5, pp. 1016--1029, 2010.
[6]
B. Dufour, K. Driesen, L. Hendren, and C. Verbrugge, "Dynamic metrics for Java," in ACM SIGPLAN Notices, vol. 38, no. 11. ACM, 2003, pp. 149--168.
[7]
S. M. Yacoub and H. H. Ammar, "A methodology for architecture-level reliability risk analysis," IEEE Transactions on Software Engineering, vol. 28, no. 6, pp. 529--547, 2002.
[8]
A. Gosain and G. Sharma, "Predicting software maintainability using object oriented dynamic complexity measures," in International Conference on Smart Trends for Information Technology and Computer Communications. Springer, 2016, pp. 218--230.
[9]
T. Richner and S. Ducasse, "Recovering high-level views of object-oriented applications from static and dynamic information," in Proceedings of IEEE International Conference on Software Maintenance. IEEE, 1999, pp. 13--22.
[10]
R. Geetika and P. Singh, "Empirical investigation into static and dynamic coupling metrics," ACM SIGSOFT Software Engineering Notes, vol. 39, no. 1, pp. 1--8, 2014.
[11]
I. Beschastnikh, P. Wang, Y. Brun, and M. D. Ernst, "Debugging distributed systems," Queue, vol. 14, no. 2, p. 50, 2016.
[12]
G. Coulouris, J. Dollimore, T. Kindberg, and G. Blair, Distributed Systems: Concepts and Design, 5th ed. Addison-Wesley Publishing Company, 2011.
[13]
E. Arisholm, L. C. Briand, and A. Foyen, "Dynamic coupling measurement for object-oriented software," IEEE Transactions on Software Engineering, vol. 30, no. 8, pp. 491--506, 2004.
[14]
A. Gosain and G. Sharma, "Object-oriented dynamic complexity measures for software understandability," Innovations in Systems and Software Engineering, vol. 13, no. 2-3, pp. 177--190, 2017.
[15]
D. Wybranietz and D. Haban, "Monitoring and performance measuring distributed systems during operation," ACM SIGMETRICS Performance Evaluation Review, vol. 16, no. 1, pp. 197--206, 1988.
[16]
L. Wang and J. Kangasharju, "Measuring large-scale distributed systems: case of bittorrent mainline dht," in Peer-to-Peer Computing (P2P), 2013 IEEE Thirteenth International Conference on. IEEE, 2013, pp. 1--10.
[17]
W. Jin, T. Liu, Y. Qu, Q. Zheng, D. Cui, and J. Chi, "Dynamic structure measurement for distributed software," Software Quality Journal, pp. 1--27, 2017.
[18]
H. Cai and D. Thain, "Distea: Efficient dynamic impact analysis for distributed systems," arXiv preprint arXiv:1604.04638, 2016.
[19]
H. Cai and X. Fu, "D<sup>2</sup>ABS: A framework for dynamic dependence abstraction of distributed programs," Washington State University, technical report EECS-2019-01-19, January 2019.
[20]
Wikipedia, "Spearman's rank correlation coefficient," https://en.wikipedia.org/wiki/Spearman%27s_rank_correlation_coefficient, 2019.
[21]
X. Fu and H. Cai, "Artefact package on IPC measurement of distributed systems," https://www.dropbox.com/s/oddfgntbkjrf691/DistMeasure_artefact.zip?dl=0, 2019.
[22]
M. Sharifi, E. M. Khaneghah, M. Kashyian, and S. L. Mirtaheri, "A platform independent distributed ipc mechanism in support of programming heterogeneous distributed systems," The Journal of Supercomputing, vol. 59, no. 1, pp. 548--567, 2012.
[23]
J. Jenkins and H. Cai, "ICC-Inspect: supporting runtime inspection of Android inter-component communications," in Proceedings of the 5th International Conference on Mobile Software Engineering and Systems. ACM, 2018, pp. 80--83.
[24]
H. Cai and D. Thain, "DistIA: A cost-effective dynamic impact analysis for distributed programs," in Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, 2016, pp. 344--355.
[25]
H. Cai and R. Santelices, "Diver: Precise dynamic impact analysis using dependence-based trace pruning," in Proceedings of International Conference on Automated Software Engineering, 2014, pp. 343--348.
[26]
L. Lamport, "Time, clocks, and the ordering of events in a distributed system," Communications of the ACM, vol. 21, no. 7, pp. 558--565, 1978.
[27]
J. Jenkins and H. Cai, "Dissecting Android inter-component communications via interactive visual explorations," in 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME). IEEE, 2017, pp. 519--523.
[28]
Apache, "ZooKeeper," https://zookeeper.apache.org/, 2015.
[29]
H. Cai, "Hybrid program dependence approximation for effective dynamic impact prediction," IEEE Transactions on Software Engineering, vol. 44, no. 4, pp. 334--364, 2018.
[30]
P. V. Marsden, "Recent developments in network measurement," Models and Methods in Social Network Analysis, vol. 8, p. 30, 2005.
[31]
Bamberg University, "Open Chord," http://sourceforge.net/projects/open-chord/, 2015.
[32]
Apache, "Thrift," https://thrift.apache.org/, 2018.
[33]
Vice, "xSocket," http://xsocket.org/, 2018.
[34]
P. Hunt, M. Konar, F. P. Junqueira, and B. Reed, "Zookeeper: Wait-free coordination for internet-scale systems." in Proceedings of USENIX Annual Technical Conference, vol. 8, 2010, p. 9.
[35]
Apache, "Voldemort," https://github.com/voldemort, 2015.
[36]
Wikipedia, "Netty(software)," https://en.wikipedia.org/wiki/Netty_(software), 2018.
[37]
Wikipedia, "Apache Derby," https://en.wikipedia.org/wM/Apache_Derby, 2018.
[38]
Apache, "Apache Derby," https://db.apache.org/derby/, 2018.
[39]
Karaf, "Apache Karaf," https://karaf.apache.org/, 2019.
[40]
XNIO - JBoss Community, "XNIO," http://xnio.jboss.org/, 2012.
[41]
SourceForge, "Open Chord," https://sourceforge.net/projects/open-chord/files/Open%20Chord%201.0/, 2008.
[42]
Apache, "Index of /dist/thrift," http://archive.apache.org/dist/thrift/, 2018.
[43]
Apache, "Apache Derby," https://db.apache.org/derby/derby_downloads.html, 2019.
[44]
Maven Repository, "XSocket," https://mvnrepository.com/artifact/org.xsocket/xSocket, 2008.
[45]
Maven Repository, "Netty All In One," https://mvnrepository.com/artifact/io.netty/netty-all, 2019.
[46]
Maven Repository, "Apache Karaf," https://mvnrepository.com/artifact/org.apache.karaf/karaf, 2018.
[47]
Maven Repository, "XNIO API," https://mvnrepository.com/artifact/org.jboss.xnio/xnio-api, 2018.
[48]
Github, "Voldemort," http://https://github.com/voldemort/voldemort/releases, 2017.
[49]
Apache, "Apache Zookeeper," https://github.com/apache/zookeeper/releases, 2019.
[50]
SourceForge, "Open Chord bugs," https://sourceforge.net/p/open-chord/bugs/, 2008.
[51]
Maven Repository, "XSocket bugs," https://mvnrepository.com/artifact/org.xsocket/xSocket, 2008.
[52]
Apache, "Thrift bugs," http://archive.apache.org/dist/thrift/, 2018.
[53]
Apache, "Zookeeper bugs," https://github.com/apache/zookeeper/releases, 2019.
[54]
Apache, "Derby bugs," https://db.apache.org/derby/derby_downloads.html, 2019.
[55]
Maven Repository, "Apache Karaf bugs," https://mvnrepository.com/artifact/org.apache.karaf/karaf, 2018.
[56]
Github, "Voldemort bugs," http://https://github.com/voldemort/voldemort/releases, 2017.
[57]
Maven Repository, "Netty bugs," https://mvnrepository.com/artifact/io.netty/netty-all, 2019.
[58]
Maven Repository, "XNIO API bugs," https://mvnrepository.com/artifact/org.jboss.xnio/xnio-api, 2018.
[59]
G. A. Hall and J. C. Munson, "Software evolution: code delta and code churn," Journal of Systems and Software, vol. 54, no. 2, pp. 111--118, 2000.
[60]
T. J. McCabe, "A complexity measure," IEEE Transactions on Software Engineering, no. 4, pp. 308--320, 1976.
[61]
Y. Wang, L. Huang, X. Liu, T. Sun, and K. Lei, "Performance comparison and evaluation of websocket frameworks: Netty, undertow, vert. x, grizzly and jetty," in 2018 1st IEEE International Conference on Hot Information-Centric Networking (HotICN). IEEE, 2018, pp. 13--17.
[62]
M. Hammerton, J. Trevathan, T. Myers, and W. Read, "Optimising data transmission in heterogeneous sensor networks," International Journal of Information, vol. 7, no. 9, 2013.
[63]
K. Waagan, "Building a replicated data store using berkeley db and the chord dht," Master's thesis, Institutt for datateknikk og informasjonsvitenskap, 2005.
[64]
Github, "smallnest/RPC-TEST," https://github.com/smallnest/RPC-TEST, 2015.
[65]
"Project Voldemort," https://www.project-voldemort.com/voldemort/performance.html, 2017.
[66]
Confluence, "ServiceLatencyOverview," https://cwiki.apache.org/confluence/display/ZOOKEEPER/ServiceLatencyOverview, 2019.
[67]
D. Oracle Berkeley, "Java edition vs. apache derby: A performance comparison," 2006.
[68]
E. Medvedeva, "Performance comparison of jboss integration platform implementations," Ph.D. dissertation, Masarykova univerzita, Fakulta informatiky, 2014.
[69]
Wikipedia, "Kendall rank correlation coefficient," https://en.wikipedia.org/wiki/Kendall_rank_correlation_coefficient, 2018.
[70]
Wikipedia, "Pearson correlation coefficient," https://en.wikipedia.org/wiki/Pearson_correlation_coefficient, 2019.
[71]
I. Weir, "Spearmans correlation," vol. 29, 2016, http://www.statstutor.ac.uk/resources/uploaded/spearmans.pdf.
[72]
cloc.org, "Counting source lines of code," cloc.sourceforge.net/, 2019.
[73]
GNU, "compare files line by line," man7.org/linux/man-pages/man1/diff.1.html/, 2019.
[74]
X. Fu and H. Cai, "DistTaint: Application-level dynamic information flow analysis for distributed systems," Washington State University, technical report EECS-2019-02-20, February 2019.
[75]
"JavaNCSS - A Source Measurement Suite for Java," https://www2.informatik.hu-berlin.de/swt/intkoop/jcse/tools/JavaNCSS%20-%20A%20Source%20Measurement%20Suite%20for%20Java.html, 2012.
[76]
M. Perepletchikov and C. Ryan, "A controlled experiment for evaluating the impact of coupling on the maintainability of service-oriented software," IEEE Transactions on Software Engineering, vol. 37, no. 4, pp. 449--465, 2011.
[77]
W. Frakes and C. Terry, "Software reuse: metrics and models," ACM Computing Surveys (CSUR), vol. 28, no. 2, pp. 415--435, 1996.

Cited By

View all
  • (2024)M-score: An Empirically Derived Software Modularity MetricProceedings of the 18th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1145/3674805.3686697(382-392)Online publication date: 24-Oct-2024
  • (2020)SEADSACM Transactions on Software Engineering and Methodology10.1145/337934530:1(1-45)Online publication date: 31-Dec-2020
  • (2019)A dynamic taint analyzer for distributed systemsProceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3338906.3341179(1115-1119)Online publication date: 12-Aug-2019
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICPC '19: Proceedings of the 27th International Conference on Program Comprehension
May 2019
400 pages

Sponsors

Publisher

IEEE Press

Publication History

Published: 25 May 2019

Check for updates

Author Tags

  1. coupling
  2. distributed system
  3. dynamic measurement
  4. interprocess communication
  5. quality factors

Qualifiers

  • Research-article

Conference

ICSE '19
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)0
Reflects downloads up to 26 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)M-score: An Empirically Derived Software Modularity MetricProceedings of the 18th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1145/3674805.3686697(382-392)Online publication date: 24-Oct-2024
  • (2020)SEADSACM Transactions on Software Engineering and Methodology10.1145/337934530:1(1-45)Online publication date: 31-Dec-2020
  • (2019)A dynamic taint analyzer for distributed systemsProceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3338906.3341179(1115-1119)Online publication date: 12-Aug-2019
  • (2019)Towards scalable defense of information flow security for distributed systemsProceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3293882.3338988(438-442)Online publication date: 10-Jul-2019

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media