Multimedia Tools and Applications

, Volume 76, Issue 12, pp 14247–14304 | Cite as

Designing and evaluating the usability of an API for real-time multimedia services in the Internet

  • Luis López-Fernández
  • Boni García
  • Micael Gallego
  • Francisco Gortázar


In the last few years, multimedia technologies in general, and Real-Time multimedia Communications (RTC) in particular, are becoming mainstream among WWW and smartphone developers, who have an increasing interest in richer media capabilities for creating their applications. The engineering literature proposing novel algorithms, protocols and architectures for managing and processing multimedia information is currently overwhelming. However, most of these results do not arrive to applications due to the lack of simple and usable APIs. Interestingly, in this context in which APIs are the critical ingredient for reaching wide developer audiences, the scientific literature about multimedia APIs and their usability is scarce. In this paper we try to contribute to fill this gap by proposing the RTC Media API: a novel type of API designed with the aim of making simple for developers the use of latest trends in RTC multimedia including WebRTC, Video Content Analysis or Augmented Reality. We provide a specification of such API and discuss how it satisfies a set of design requirements including programming-language agnosticism, adaptation to cloud environments, support to multisensory multimedia, etc. After that, we describe an implementation of such an API that has been created in the context of the Kurento open source software project, and present a study evaluating the API usability performed in a group of more than 40 professional developers distributed worldwide. In the light of the obtained results, we conclude that the usability of the API is adequate across the main development activities (i.e. API learning, code creation and code maintenance), with an average usability score of 3.39 over 5 in a Likert scale, and that this result is robust with respect to developers’ profiles, cultures, professional experiences and preferred programming languages.


Media server Real-time multimedia communications Application Programming Interfaces WebRTC Multimedia processing Multimedia tools and applications Cognitive dimensions of notations 



This work has been supported by the European Commission under projects FI-WARE FP7-2011-ICT-FI GA-285248, FI-CORE FP7-2014-ICT-FI GA- 632893 and NUBOMEDIA FP7-ICT-2013-1.6 GA-610576; by Spanish Ministerio de Educación under project Reactive Media (TIN2013-41819-R); and by the Regional Government of Madrid (CM) under project Cloud4BigData (S2013/ICE-2894) co-funded by FSE & FEDER.


  1. 1.
    Abowd GD, Dey AK, Brown PJ, Davies N, Smith M, Steggles P (1999) Towards a better understanding of context and context-awareness. In: Handheld and ubiquitous computing. Springer, pp 304–307Google Scholar
  2. 2.
    Afonso LM, Cerqueira RFG, de Souza CS (2012) Evaluating application programming interfaces as communication artefacts. System 100:8–31Google Scholar
  3. 3.
    Ajanki A, Billinghurst M, Gamper H, Järvenpää T, Kandemir M, Kaski S, Koskela M, Kurimo M, Laaksonen J, Puolamäki K et al (2011) An augmented reality interface to contextual information. Virtual Reality 15(2–3):161–173CrossRefGoogle Scholar
  4. 4.
    Allen IE, Seaman CA (2007) Likert scales and data analyses. Qual Prog 40(7):64Google Scholar
  5. 5.
    Alvestrand H (2015) Transports for WebRTC draft-ietf-rtcweb-transports-10. Accessed 20 Dec 2015
  6. 6.
    Andreasen F, Arango M, Huitema C, Kumar R, Pickett S, Elliott I, Foster B, Dugan A (2003) Media gateway control protocol (MGCP) version 1.0. Tech. rep., internet engineering task force, request for comments (RFC) 3435Google Scholar
  7. 7.
    Andreessen M (2011) Why software is eating the world. Available online: , Wall Street Journal 20
  8. 8.
    Bainomugisha E, Carreton AL, Cutsem T, Mostinckx S, Meuter W (2013) A survey on reactive programming. ACM Comput Surv 45(4):52:1–52:34. doi: 10.1145/2501654.2501666 CrossRefGoogle Scholar
  9. 9.
    Bajaj V (2004) JAIN MEGACO API Specification. Tech. rep., Java community process, java specification request (JSR) 79Google Scholar
  10. 10.
    Bauer M, Kovacs E, Schülke A, Ito N, Criminisi C, Goix LW, Valla M (2010) The context API in the oma next generation service interface. In: Intelligence in next generation networks (ICIN), 2010 14th International Conference on, IEEE, pp 1–5Google Scholar
  11. 11.
    Becke M, Rathgeb EP, Werner S, Rungeler I, Tuxen M, Stewart R (2013) Data channel considerations for rtcweb. IEEE Commun Mag 51(4):34–41CrossRefGoogle Scholar
  12. 12.
    Bertoa MF, Troya JM, Vallecillo A (2006) Measuring the usability of software components. J Syst Softw 79(3):427–439CrossRefGoogle Scholar
  13. 13.
    Blackwell AF, Britton C, Cox A, Green TR, Gurr C, Kadoda G, Kutar M, Loomes M, Nehaniv CL, Petre M, et al (2001) Cognitive dimensions of notations: Design tools for cognitive technology. In: Cognitive technology: instruments of mind. Springer, pp 325–341Google Scholar
  14. 14.
    Blackwell AF, Green TR (2000) A cognitive dimensions questionnaire optimised for users. In: proceedings of the twelfth annual meeting of the psychology of programming interest group, pp 137–152Google Scholar
  15. 15.
    Bloch J (2006) How to design a good API and why it matters. In: Companion to the 21st ACM SIGPLAN symposium on object-oriented programming systems, languages, and applications. ACM, pp 506–507Google Scholar
  16. 16.
    Bray T, Paoli J, Sperberg-McQueen CM, Maler E, Yergeau F (1998) Extensible markup language (XML). World Wide Web consortium recommendation REC-xml-19980210
  17. 17.
    Catherine MR, Edwin EB (2013) A survey on recent trends in cloud computing and its application for multimedia. Int J Adv Res Comput Eng Technol (IJARCET) 2(1):304–309Google Scholar
  18. 18.
    Clarke S (2001) Evaluating a new programming language. In: 13th Workshop of the psychology of programming interest group, pp 275–289Google Scholar
  19. 19.
    Cortina JM (1993) What is coefficient alpha? An examination of theory and applications. J Appl Psychol 78(1):98CrossRefGoogle Scholar
  20. 20.
    Cronbach LJ (1951) Coefficient alpha and the internal structure of tests. Psychometrika 16(3):297–334CrossRefGoogle Scholar
  21. 21.
    Daughtry III JM, Carroll JM (2012) Perceived self-efficacy and APIs. Programming interest group p 42Google Scholar
  22. 22.
    Dey AK (2001) Understanding and using context. Pers Ubiquit Comput 5(1):4–7CrossRefGoogle Scholar
  23. 23.
    Downing SM (2003) Validity: on the meaningful interpretation of assessment data. Med Educ 37(9):830–837CrossRefGoogle Scholar
  24. 24.
    Duala-Ekoko E, Robillard MP (2012) Asking and answering questions about unfamiliar APIs: An exploratory study. In: proceedings of the 34th international conference on software engineering. IEEE Press, pp 266–276Google Scholar
  25. 25.
    Eckert C, Stacey M (2000) Sources of inspiration: a language of design. Des Stud 21(5):523–538CrossRefGoogle Scholar
  26. 26.
    Ellis B, Stylos J, Myers B (2007) The factory pattern in API design: a usability evaluation. In: Proceedings of the 29th international conference on software engineering, IEEE Computer Society, pp 302–312Google Scholar
  27. 27.
    Ericson T, Brandt M (2009) Media server control API. Tech. rep., Java community process, Java specification request (JSR) 309Google Scholar
  28. 28.
    Farooq U, Zirkler D (2010) API peer reviews: a method for evaluating usability of application programming interfaces. In: Proceedings of the 2010 ACM conference on computer supported cooperative work, ACM, pp 207–210Google Scholar
  29. 29.
    Ferry D, Lim S (2004) JAIN SLEE API specification. Tech. rep., Java community process, Java specification request (JSR) 22Google Scholar
  30. 30.
    FIWARE Consortium (2015) Future internet core platform. Available online:, FP7-2011-ICT-FI (GA-285248))
  31. 31.
    Fraternali P (1999) Tools and approaches for developing data-intensive web applications: a survey. ACM ComputSurv (CSUR) 31(3):227–263CrossRefGoogle Scholar
  32. 32.
    Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns. elements of reusable object-oriented software. Addison-WesleyGoogle Scholar
  33. 33.
    Ganassali S (2008) The influence of the design of web survey questionnaires on the quality of responses. Surv Res Methods 2:21–32Google Scholar
  34. 34.
    Gouveia F,Wahle S, Blum N, Magedanz T (2009) Cloud computing and EPC/IMS integration: new value-added services on demand. In: Proceedings of the 5th international ICST mobile multimedia communications conference, ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), p 51Google Scholar
  35. 35.
    Green TR (1989) Cognitive dimensions of notations. People and computers V pp 443–460Google Scholar
  36. 36.
    Green TR, Blandford AE, Church L, Roast CR, Clarke S (2006) Cognitive dimensions: achievements, new directions, and open questions. J Vis Lang Comput 17(4):328–365CrossRefGoogle Scholar
  37. 37.
    Gualdi G, Prati A, Cucchiara R (2008) Video streaming for mobile video surveillance. IEEE Tran Multimedia 10(6):1142–1154CrossRefGoogle Scholar
  38. 38.
    Handley M, Perkins C, Jacobson V (2006) SDP: session description protocol. Tech. rep., internet engineering task force, request for comments (RFC) 4566Google Scholar
  39. 39.
    Henning M (2007) API design matters. Queue 5(4):24–36MathSciNetCrossRefGoogle Scholar
  40. 40.
    Hovemeyer D (2005) Simple and effective static analysis to find bugs. PhD thesis, College Park, MD, USA, AAI3184274Google Scholar
  41. 41.
    Internet Engineering Task Force (2015) Real-time communication in web-browsers (rtcweb). Accessed 9 Dec 2015
  42. 42.
    Ivov E, Marocco E, Holmberg C (2014) A session initiation protocol (SIP) usage for Trickle ICE draft-ietf-mmusic-trickle-ice-sip-03. Accessed 12 Dec 2015
  43. 43.
    Jennings C, Holmberg C, Alvestrand HT (2015) Negotiating media multiplexing using the session description protocol (SDP) draft-ietf-mmusic-sdp-bundle-negotiation-23. Accessed 12 Dec 2015
  44. 44.
    Johnston AB, Burnett DC (2012) WebRTC: APIs and RTCWEB protocols of the HTML5 real-time web. Digital Codex LLCGoogle Scholar
  45. 45.
    Kambona K, Boix EG, De Meuter W (2013) An evaluation of reactive programming and promises for structuring collaborative web applications. In: Proceedings of the 7th workshop on dynamic languages and applications. ACM, New York, NY, USA, DYLA '13, pp 3:1–3:9. doi  10.1145/2489798.2489802
  46. 46.
    Koukoulidis V, Shah M (2006) The IP multimedia domain: service architecture for the delivery of voice, data, and next generation multimedia applications. Multimedia Tools Appl 28(2):203–220CrossRefGoogle Scholar
  47. 47.
    Kristensen A (2003) SIP Servlet API. Tech. rep., Java community process, Java specification request (JSR) 116Google Scholar
  48. 48.
    Laursen A, Olkin J, Porter M (1994) Oracle media server: providing consumer based interactive access to multimedia data. SIGMOD Rec 23(2):470–477. doi: 10.1145/191843.191933 CrossRefGoogle Scholar
  49. 49.
    Lienhart R, Maydt J (2002) An extended set of HAAR-like features for rapid object detection. In: Image processing. 2002. Proceedings. 2002 International Conference on, vol 1, pp I-900–I-903 vol. 1, doi:  10.1109/ICIP.2002.1038171
  50. 50.
    Melanchuk T (2009) An architectural framework for media server control. Tech. rep., internet engineering task force, Request for comments (RFC) 5567Google Scholar
  51. 51.
    Moody DL (2009) The physics of notations: toward a scientific basis for constructing visual notations in software engineering. IEEE Trans Softw Eng 35(6):756–779CrossRefGoogle Scholar
  52. 52.
    NUBOMEDIA Consortium (2015) NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive social multimedia. Available online:, ICT-2013.1.6 (GA-610579)
  53. 53.
    O’Doherty P, Ranganathan M (2003) JAIN SIP API specification. Tech. rep., Java community process, Java specification request (JSR) 32Google Scholar
  54. 54.
    Ott J, Wenger S, Sato N, Burmeister C, Rey J (2006) Extended RTP profile for real-time transport control protocol (RTCP)-based feedback (RTP/AVPF). Tech. rep., internet engineering task force, request for comments (RFC) 4585Google Scholar
  55. 55.
    Park S, Park NS, Kim JT, Paik EH (2009) Provision of the expressive multisensory adaptation platform for heterogeneous multimedia devices in the ubiquitous home. IEEE Transact Consum Electron 55(1):126–131CrossRefGoogle Scholar
  56. 56.
    Perkins C, Westerlund M (2010) Multiplexing RTP data and control packets on a single port. Tech. rep., internet engineering task force, request for comments (RFC) 5761Google Scholar
  57. 57.
    Piccioni M, Furia C, Meyer B, et al (2013) An empirical study of API usability. In: Empirical software engineering and measurement, 2013 ACM/IEEE International Symposium on, IEEE, pp 5–14Google Scholar
  58. 58.
    Pickard A (2012) Research methods in information. Facet publishing, LondonGoogle Scholar
  59. 59.
    Prusty N (2015) Learning ECMAScript 6. Packt Publishing Ltd, BirminghamGoogle Scholar
  60. 60.
    Reddy M (2011) API design for C++. Elsevier, AmsterdamGoogle Scholar
  61. 61.
    Roccetti M, Ghini V, Pau G, Salomoni P, Bonfigli ME (2001) Design and experimental evaluation of an adaptive playout delay control mechanism for packetized audio for use over the Internet. Multimedia Tools Appl 14(1):23–53CrossRefMATHGoogle Scholar
  62. 62.
    Rosenberg J (2010) Interactive connectivity establishment (ICE): a protocol for network address translator (NAT) traversal for offer/answer protocols. Tech. rep., internet engineering task force, request for comments (RFC) 5245Google Scholar
  63. 63.
    Rosenberg J, Schulzrinne H, Camarillo G, Johnston A, Peterson J, Sparks R, Handley M, Schooler E (2002) SIP: session initiation protocol. Tech. rep., internet engineering task force, request for comments (RFC) 3261Google Scholar
  64. 64.
    Saint-Andre P (2011) Extensible messaging and presence protocol (XMPP): Core. Tech. rep., internet engineering task force, request for comments (RFC) 6120Google Scholar
  65. 65.
    Saleem A, Xin Y, Sharratt G (2010) Media server markup language (MSML). Tech. rep., internet engineering task force, request for comments (RFC) 5707Google Scholar
  66. 66.
    Schulzrinne H (1998) Real time streaming protocol (RTSP). Tech. rep., internet engineering task force, request for comments (RFC) 2326Google Scholar
  67. 67.
    Schulzrinne H (2003) RTP profile for audio and video conferences with minimal control. Tech. rep., internet engineering task force, request for comments (RFC) 3551Google Scholar
  68. 68.
    Schulzrinne H, Casner S, Frederick R, Jacobson V (2003) RTP: A transport protocol for realtime applications. Tech. rep., internet engineering task force, request for comments (RFC) 3550Google Scholar
  69. 69.
    Schulzrinne H, Rosenberg J (1999) The IETF internet telephony architecture and protocols. IEEE Netw 13(3):18–23CrossRefGoogle Scholar
  70. 70.
    Seema A, Schwoebel L, Shah T, Morgan J, Reisslein M (2015) WVSNP-DASH name-based segmented video streaming. IEEE Trans Broadcast 61(3):346–355CrossRefGoogle Scholar
  71. 71.
    Tang X, Zhang F, Chanson ST (2002) Streaming media caching algorithms for transcoding proxies. In: Parallel processing, 2002. Proceedings. International Conference on, IEEE, pp 287–295Google Scholar
  72. 72.
    Taylor T (2000) Megaco/H.248: a new standard for media gateway control. IEEE Commun Mag 38(10):124–132CrossRefGoogle Scholar
  73. 73.
    Thom G et al (1996) H.323: the multimedia communications standard for local area networks. IEEE Commun Mag 34(12):52–56CrossRefGoogle Scholar
  74. 74.
    Tilkov S, Vinoski S (2010) Node.js: using javascript to build high-performance network programs. IEEE Internet Comput 14(6):80–83. doi: 10.1109/MIC.2010.145 CrossRefGoogle Scholar
  75. 75.
    Van Dyke J, Burger E, Spitzer A (2007) Media server control markup language (MSCML) and protocol. Tech. rep., internet engineering task force, request for comments (RFC) 4722Google Scholar
  76. 76.
    Vaquero LM, Rodero-Merino L, Caceres J, Lindner M (2008) A break in the clouds: towards a cloud definition. ACM SIGCOMM Comput Commun Rev 39(1):50–55CrossRefGoogle Scholar
  77. 77.
    Vogel A, Kerherve B, von Bochmann G, Gecsei J (1995) Distributed multimedia and QoS: a survey. IEEE MultiMedia 2(2):10–19. doi: 10.1109/93.388195 CrossRefGoogle Scholar
  78. 78.
    Wagner B (2010) Effective C# (Covers C# 4.0): 50 specific ways to improve your C#. pearson educationGoogle Scholar
  79. 79.
    Westerlund M, Burman B, Nandakumar S (2015) Using simulcast in RTP sessions draft-westerlund-avtcore-rtp-simulcast-04. Accessed 12 Dec 2015
  80. 80.
    Westerlund M, Wenger S (2016) RTP internet draft topologies draft-ietf-avtcorertp-topologies-update-10. Accessed 7 Jan 2016
  81. 81.
    Willmott S, Balas G (2013) Winning in the API economy. Available online:
  82. 82.
    World Wide Web Consortium (2011) Web real-time communications working group. Accessed 11 Dec 2015
  83. 83.
    World Wide Web Consortium (2015) WebRTC stats. Available online:
  84. 84.
    Zhou F, Duh HBL, Billinghurst M (2008) Trends in augmented reality tracking, interaction and display: A review of ten years of ISMAR. In: Proceedings of the 7th IEEE/ACM International Symposium on Mixed and Augmented Reality, IEEE Computer Society, pp 193–202Google Scholar
  85. 85.
    Zhu W, Luo C, Wang J, Li S (2011) Multimedia cloud computing. IEEE Signal Process Mag 28(3):59–69CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2016

Authors and Affiliations

  • Luis López-Fernández
    • 1
  • Boni García
    • 1
  • Micael Gallego
    • 1
  • Francisco Gortázar
    • 1
  1. 1.Universidad Rey Juan CarlosFuenlabradaSpain

Personalised recommendations