Skip to main content

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


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.

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18


  1. Latest versions of the IDL files specifying the Kurento RTC Media API in the kmd.json format can be found at the Kurento GitHub repository at the following locations:

  2. Latest versions of the IDL files specifying the Kurento RTC Media API extensions in the kmd.json format can be found at the Kurento GitHub repository in different locations, including the following:

  3. Demos showing different Kurento applications created using the Kurento RTC Media API implementations are accessible at the Kurento YouTube channel:


  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–307

  2. Afonso LM, Cerqueira RFG, de Souza CS (2012) Evaluating application programming interfaces as communication artefacts. System 100:8–31

    Google Scholar 

  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–173

    Article  Google Scholar 

  4. Allen IE, Seaman CA (2007) Likert scales and data analyses. Qual Prog 40(7):64

    Google Scholar 

  5. Alvestrand H (2015) Transports for WebRTC draft-ietf-rtcweb-transports-10. Accessed 20 Dec 2015

  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) 3435

  7. Andreessen M (2011) Why software is eating the world. Available online: , Wall Street Journal 20

  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

    Article  Google Scholar 

  9. Bajaj V (2004) JAIN MEGACO API Specification. Tech. rep., Java community process, java specification request (JSR) 79

  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–5

  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–41

    Article  Google Scholar 

  12. Bertoa MF, Troya JM, Vallecillo A (2006) Measuring the usability of software components. J Syst Softw 79(3):427–439

    Article  Google Scholar 

  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–341

  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–152

  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–507

  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. 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–309

    Google Scholar 

  18. Clarke S (2001) Evaluating a new programming language. In: 13th Workshop of the psychology of programming interest group, pp 275–289

  19. Cortina JM (1993) What is coefficient alpha? An examination of theory and applications. J Appl Psychol 78(1):98

    Article  Google Scholar 

  20. Cronbach LJ (1951) Coefficient alpha and the internal structure of tests. Psychometrika 16(3):297–334

    Article  Google Scholar 

  21. Daughtry III JM, Carroll JM (2012) Perceived self-efficacy and APIs. Programming interest group p 42

  22. Dey AK (2001) Understanding and using context. Pers Ubiquit Comput 5(1):4–7

    Article  Google Scholar 

  23. Downing SM (2003) Validity: on the meaningful interpretation of assessment data. Med Educ 37(9):830–837

    Article  Google Scholar 

  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–276

  25. Eckert C, Stacey M (2000) Sources of inspiration: a language of design. Des Stud 21(5):523–538

    Article  Google Scholar 

  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–312

  27. Ericson T, Brandt M (2009) Media server control API. Tech. rep., Java community process, Java specification request (JSR) 309

  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–210

  29. Ferry D, Lim S (2004) JAIN SLEE API specification. Tech. rep., Java community process, Java specification request (JSR) 22

  30. FIWARE Consortium (2015) Future internet core platform. Available online:, FP7-2011-ICT-FI (GA-285248))

  31. Fraternali P (1999) Tools and approaches for developing data-intensive web applications: a survey. ACM ComputSurv (CSUR) 31(3):227–263

    Article  Google Scholar 

  32. Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns. elements of reusable object-oriented software. Addison-Wesley

  33. Ganassali S (2008) The influence of the design of web survey questionnaires on the quality of responses. Surv Res Methods 2:21–32

    Google Scholar 

  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 51

  35. Green TR (1989) Cognitive dimensions of notations. People and computers V pp 443–460

  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–365

    Article  Google Scholar 

  37. Gualdi G, Prati A, Cucchiara R (2008) Video streaming for mobile video surveillance. IEEE Tran Multimedia 10(6):1142–1154

    Article  Google Scholar 

  38. Handley M, Perkins C, Jacobson V (2006) SDP: session description protocol. Tech. rep., internet engineering task force, request for comments (RFC) 4566

  39. Henning M (2007) API design matters. Queue 5(4):24–36

    MathSciNet  Article  Google Scholar 

  40. Hovemeyer D (2005) Simple and effective static analysis to find bugs. PhD thesis, College Park, MD, USA, AAI3184274

  41. Internet Engineering Task Force (2015) Real-time communication in web-browsers (rtcweb). Accessed 9 Dec 2015

  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. 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. Johnston AB, Burnett DC (2012) WebRTC: APIs and RTCWEB protocols of the HTML5 real-time web. Digital Codex LLC

  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. 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–220

    Article  Google Scholar 

  47. Kristensen A (2003) SIP Servlet API. Tech. rep., Java community process, Java specification request (JSR) 116

  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

    Article  Google Scholar 

  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. Melanchuk T (2009) An architectural framework for media server control. Tech. rep., internet engineering task force, Request for comments (RFC) 5567

  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–779

    Article  Google Scholar 

  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. O’Doherty P, Ranganathan M (2003) JAIN SIP API specification. Tech. rep., Java community process, Java specification request (JSR) 32

  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) 4585

  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–131

    Article  Google Scholar 

  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) 5761

  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–14

  58. Pickard A (2012) Research methods in information. Facet publishing, London

    Google Scholar 

  59. Prusty N (2015) Learning ECMAScript 6. Packt Publishing Ltd, Birmingham

  60. Reddy M (2011) API design for C++. Elsevier, Amsterdam

  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–53

    Article  MATH  Google Scholar 

  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) 5245

  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) 3261

  64. Saint-Andre P (2011) Extensible messaging and presence protocol (XMPP): Core. Tech. rep., internet engineering task force, request for comments (RFC) 6120

  65. Saleem A, Xin Y, Sharratt G (2010) Media server markup language (MSML). Tech. rep., internet engineering task force, request for comments (RFC) 5707

  66. Schulzrinne H (1998) Real time streaming protocol (RTSP). Tech. rep., internet engineering task force, request for comments (RFC) 2326

  67. Schulzrinne H (2003) RTP profile for audio and video conferences with minimal control. Tech. rep., internet engineering task force, request for comments (RFC) 3551

  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) 3550

  69. Schulzrinne H, Rosenberg J (1999) The IETF internet telephony architecture and protocols. IEEE Netw 13(3):18–23

    Article  Google Scholar 

  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–355

    Article  Google Scholar 

  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–295

  72. Taylor T (2000) Megaco/H.248: a new standard for media gateway control. IEEE Commun Mag 38(10):124–132

    Article  Google Scholar 

  73. Thom G et al (1996) H.323: the multimedia communications standard for local area networks. IEEE Commun Mag 34(12):52–56

    Article  Google Scholar 

  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

    Article  Google Scholar 

  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) 4722

  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–55

    Article  Google Scholar 

  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

    Article  Google Scholar 

  78. Wagner B (2010) Effective C# (Covers C# 4.0): 50 specific ways to improve your C#. pearson education

  79. Westerlund M, Burman B, Nandakumar S (2015) Using simulcast in RTP sessions draft-westerlund-avtcore-rtp-simulcast-04. Accessed 12 Dec 2015

  80. Westerlund M, Wenger S (2016) RTP internet draft topologies draft-ietf-avtcorertp-topologies-update-10. Accessed 7 Jan 2016

  81. Willmott S, Balas G (2013) Winning in the API economy. Available online:

  82. World Wide Web Consortium (2011) Web real-time communications working group. Accessed 11 Dec 2015

  83. World Wide Web Consortium (2015) WebRTC stats. Available online:

  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–202

  85. Zhu W, Luo C, Wang J, Li S (2011) Multimedia cloud computing. IEEE Signal Process Mag 28(3):59–69

    Article  Google Scholar 

Download references


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.

Author information

Authors and Affiliations


Corresponding author

Correspondence to Luis López-Fernández.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

López-Fernández, L., García, B., Gallego, M. et al. Designing and evaluating the usability of an API for real-time multimedia services in the Internet. Multimed Tools Appl 76, 14247–14304 (2017).

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI:


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