Abstract
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.
Similar content being viewed by others
Notes
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:
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:
Demos showing different Kurento applications created using the Kurento RTC Media API implementations are accessible at the Kurento YouTube channel: https://www.youtube.com/channel/UCFtGhWYqahVlzMgGNtEmKug
References
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
Afonso LM, Cerqueira RFG, de Souza CS (2012) Evaluating application programming interfaces as communication artefacts. System 100:8–31
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
Allen IE, Seaman CA (2007) Likert scales and data analyses. Qual Prog 40(7):64
Alvestrand H (2015) Transports for WebRTC draft-ietf-rtcweb-transports-10. https://tools.ietf.org/html/draft-ietf-rtcweb-transports-10. Accessed 20 Dec 2015
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
Andreessen M (2011) Why software is eating the world. Available online: http://www.wsj.com/articles/SB10001424053111903480904576512250915629460 , Wall Street Journal 20
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
Bajaj V (2004) JAIN MEGACO API Specification. Tech. rep., Java community process, java specification request (JSR) 79
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
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
Bertoa MF, Troya JM, Vallecillo A (2006) Measuring the usability of software components. J Syst Softw 79(3):427–439
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
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
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
Bray T, Paoli J, Sperberg-McQueen CM, Maler E, Yergeau F (1998) Extensible markup language (XML). World Wide Web consortium recommendation REC-xml-19980210 http://www.w3.org/TR/1998/REC-xml-19980210
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
Clarke S (2001) Evaluating a new programming language. In: 13th Workshop of the psychology of programming interest group, pp 275–289
Cortina JM (1993) What is coefficient alpha? An examination of theory and applications. J Appl Psychol 78(1):98
Cronbach LJ (1951) Coefficient alpha and the internal structure of tests. Psychometrika 16(3):297–334
Daughtry III JM, Carroll JM (2012) Perceived self-efficacy and APIs. Programming interest group p 42
Dey AK (2001) Understanding and using context. Pers Ubiquit Comput 5(1):4–7
Downing SM (2003) Validity: on the meaningful interpretation of assessment data. Med Educ 37(9):830–837
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
Eckert C, Stacey M (2000) Sources of inspiration: a language of design. Des Stud 21(5):523–538
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
Ericson T, Brandt M (2009) Media server control API. Tech. rep., Java community process, Java specification request (JSR) 309
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
Ferry D, Lim S (2004) JAIN SLEE API specification. Tech. rep., Java community process, Java specification request (JSR) 22
FIWARE Consortium (2015) Future internet core platform. Available online: http://www.fiware.org, FP7-2011-ICT-FI (GA-285248))
Fraternali P (1999) Tools and approaches for developing data-intensive web applications: a survey. ACM ComputSurv (CSUR) 31(3):227–263
Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns. elements of reusable object-oriented software. Addison-Wesley
Ganassali S (2008) The influence of the design of web survey questionnaires on the quality of responses. Surv Res Methods 2:21–32
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
Green TR (1989) Cognitive dimensions of notations. People and computers V pp 443–460
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
Gualdi G, Prati A, Cucchiara R (2008) Video streaming for mobile video surveillance. IEEE Tran Multimedia 10(6):1142–1154
Handley M, Perkins C, Jacobson V (2006) SDP: session description protocol. Tech. rep., internet engineering task force, request for comments (RFC) 4566
Henning M (2007) API design matters. Queue 5(4):24–36
Hovemeyer D (2005) Simple and effective static analysis to find bugs. PhD thesis, College Park, MD, USA, AAI3184274
Internet Engineering Task Force (2015) Real-time communication in web-browsers (rtcweb). https://datatracker.ietf.org/wg/rtcweb. Accessed 9 Dec 2015
Ivov E, Marocco E, Holmberg C (2014) A session initiation protocol (SIP) usage for Trickle ICE draft-ietf-mmusic-trickle-ice-sip-03. https://tools.ietf.org/html/draft-ietf-mmusictrickle-ice-sip-03. Accessed 12 Dec 2015
Jennings C, Holmberg C, Alvestrand HT (2015) Negotiating media multiplexing using the session description protocol (SDP) draft-ietf-mmusic-sdp-bundle-negotiation-23. https://tools.ietf.org/html/draft-ietf-mmusic-sdp-bundle-negotiation-23. Accessed 12 Dec 2015
Johnston AB, Burnett DC (2012) WebRTC: APIs and RTCWEB protocols of the HTML5 real-time web. Digital Codex LLC
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
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
Kristensen A (2003) SIP Servlet API. Tech. rep., Java community process, Java specification request (JSR) 116
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
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
Melanchuk T (2009) An architectural framework for media server control. Tech. rep., internet engineering task force, Request for comments (RFC) 5567
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
NUBOMEDIA Consortium (2015) NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive social multimedia. Available online: http://www.nubomedia.eu, ICT-2013.1.6 (GA-610579)
O’Doherty P, Ranganathan M (2003) JAIN SIP API specification. Tech. rep., Java community process, Java specification request (JSR) 32
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
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
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
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
Pickard A (2012) Research methods in information. Facet publishing, London
Prusty N (2015) Learning ECMAScript 6. Packt Publishing Ltd, Birmingham
Reddy M (2011) API design for C++. Elsevier, Amsterdam
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
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
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
Saint-Andre P (2011) Extensible messaging and presence protocol (XMPP): Core. Tech. rep., internet engineering task force, request for comments (RFC) 6120
Saleem A, Xin Y, Sharratt G (2010) Media server markup language (MSML). Tech. rep., internet engineering task force, request for comments (RFC) 5707
Schulzrinne H (1998) Real time streaming protocol (RTSP). Tech. rep., internet engineering task force, request for comments (RFC) 2326
Schulzrinne H (2003) RTP profile for audio and video conferences with minimal control. Tech. rep., internet engineering task force, request for comments (RFC) 3551
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
Schulzrinne H, Rosenberg J (1999) The IETF internet telephony architecture and protocols. IEEE Netw 13(3):18–23
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
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
Taylor T (2000) Megaco/H.248: a new standard for media gateway control. IEEE Commun Mag 38(10):124–132
Thom G et al (1996) H.323: the multimedia communications standard for local area networks. IEEE Commun Mag 34(12):52–56
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
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
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
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
Wagner B (2010) Effective C# (Covers C# 4.0): 50 specific ways to improve your C#. pearson education
Westerlund M, Burman B, Nandakumar S (2015) Using simulcast in RTP sessions draft-westerlund-avtcore-rtp-simulcast-04. https://tools.ietf.org/html/draftwesterlund-avtcore-rtp-simulcast-04. Accessed 12 Dec 2015
Westerlund M, Wenger S (2016) RTP internet draft topologies draft-ietf-avtcorertp-topologies-update-10. https://tools.ietf.org/html/draft-ietf-avtcore-rtp-topologies-update-10. Accessed 7 Jan 2016
Willmott S, Balas G (2013) Winning in the API economy. Available online: http://www.3scale.net/wp-content/uploads/2013/10/Winning-in-the-API-EconomyeBook-3scale.pdf
World Wide Web Consortium (2011) Web real-time communications working group. http://www.w3.org/2011/04/webrtc/. Accessed 11 Dec 2015
World Wide Web Consortium (2015) WebRTC stats. Available online: http://w3c.github.io/webrtc-stats/
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
Zhu W, Luo C, Wang J, Li S (2011) Multimedia cloud computing. IEEE Signal Process Mag 28(3):59–69
Acknowledgments
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
Rights and permissions
About this article
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). https://doi.org/10.1007/s11042-016-3729-z
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11042-016-3729-z