{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:16:50Z","timestamp":1750306610149,"version":"3.41.0"},"reference-count":13,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2015,4,3]],"date-time":"2015-04-03T00:00:00Z","timestamp":1428019200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["SIGSOFT Softw. Eng. Notes"],"published-print":{"date-parts":[[2015,4,3]]},"abstract":"<jats:p>XMPP (eXtensible Message and Presence Protocol) is a well structured and constantly evolving protocol that is being used for communication between a client and a server and from the server to one or a group of clients simultaneously. This protocol is being used in typical social networking applications such as Facebook, Google+, Google Hangouts, Twitter, etc. The client to server communication involves constructing long XML body for sending messages. Then the server adds more details in XML body and sends it to the appropriate client or a group of clients. At the receiving side parsing of XML body is more complex. At the client side, constructing the large XML body, which follows the protocol standards, is very difficult for a developer and blows up the development time. The developer not only has to know the protocol inside out but also has to write code that handles various cases. This calls for a simplified implementation of XMPP. The solution to this problem is to propose the design of an abstraction layer, which creates an object with which the developer interacts. The Object in turn handles the construction and parsing of the XML body. This object should also handle various connection issues gracefully and should be able to send the various presence stanzas, which the protocol requires. For using this object the developer imports the library and invokes the object and need not know any intricate details of the protocol. This idea of creating an object, which abstracts the XMP Protocol, is inspired by the MySQL JDBC (Java Database Connector), which is currently being used to connect to MySQL server. The proposed Abstraction Layer was developed using CoffeeScript and it was benchmarked using Chrome Developer Tools CPU Profiler.<\/jats:p>","DOI":"10.1145\/2735399.2754941","type":"journal-article","created":{"date-parts":[[2015,4,3]],"date-time":"2015-04-03T20:29:44Z","timestamp":1428092984000},"page":"1-4","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Design of an Abstraction Layer for Communication with BOSH XMPP Server"],"prefix":"10.1145","volume":"40","author":[{"given":"Vignesh","family":"P","sequence":"first","affiliation":[{"name":"National Institute of Technology, Tiruchirappalli, India Department of Electronics and Communication Engineering"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Selvakumar","family":"S","sequence":"additional","affiliation":[{"name":"National Institute of Technology, Tiruchirappalli, India Department of Computer Science and Engineering"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2015,4,3]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"Wikipedia http:\/\/en.wikipedia.org\/wiki\/XMPP  Wikipedia http:\/\/en.wikipedia.org\/wiki\/XMPP"},{"key":"e_1_2_1_2_1","unstructured":"XSF -- XMPP Standard Foundation http:\/\/xmpp.org\/  XSF -- XMPP Standard Foundation http:\/\/xmpp.org\/"},{"key":"e_1_2_1_3_1","unstructured":"BOSH - http:\/\/xmpp.org\/extensions\/xep-0124.html  BOSH - http:\/\/xmpp.org\/extensions\/xep-0124.html"},{"key":"e_1_2_1_4_1","unstructured":"XMPP over BOSH - http:\/\/xmpp.org\/extensions\/xep-0206.html  XMPP over BOSH - http:\/\/xmpp.org\/extensions\/xep-0206.html"},{"key":"e_1_2_1_5_1","volume-title":"published by Wrox , 1 edition (January 7","author":"Professional XMPP","year":"2010","unstructured":"Professional XMPP Programming with JavaScript and jQuery by Jack Moffitt , published by Wrox , 1 edition (January 7 , 2010 ) Professional XMPP Programming with JavaScript and jQuery by Jack Moffitt, published by Wrox , 1 edition (January 7, 2010)"},{"key":"e_1_2_1_6_1","unstructured":"XMPP\n  : The Definitive Guide by Peter Saint-Andre Kevin Smith and Remko Tron\u00e7on published by O'Reilly Media April 2009  XMPP: The Definitive Guide by Peter Saint-Andre Kevin Smith and Remko Tron\u00e7on published by O'Reilly Media April 2009"},{"key":"e_1_2_1_7_1","unstructured":"Jabber Developer's Handbook by William Wright and Dana Moore Sams Publishing; 1 edition (July 18 2003)  Jabber Developer's Handbook by William Wright and Dana Moore Sams Publishing; 1 edition (July 18 2003)"},{"key":"e_1_2_1_8_1","volume-title":"Published by O'Reilly Media","author":"Programming Jabber","year":"2002","unstructured":"Programming Jabber : Extending XML Messaging by DJ Adams , Published by O'Reilly Media ; 1 st edition ( January 14, 2002 ) Programming Jabber: Extending XML Messaging by DJ Adams, Published by O'Reilly Media; 1st edition (January 14, 2002)","edition":"1"},{"key":"e_1_2_1_9_1","unstructured":"StropheJS - http:\/\/strophe.im\/strophejs\/  StropheJS - http:\/\/strophe.im\/strophejs\/"},{"key":"e_1_2_1_10_1","unstructured":"Blather XMPP - https:\/\/github.com\/adhearsion\/blather  Blather XMPP - https:\/\/github.com\/adhearsion\/blather"},{"key":"e_1_2_1_11_1","unstructured":"Ejabberd Server - http:\/\/www.process-one.net\/en\/ejabberd\/  Ejabberd Server - http:\/\/www.process-one.net\/en\/ejabberd\/"},{"key":"e_1_2_1_12_1","unstructured":"XMPP Carbon Copy - xmpp.org\/extensions\/xep-0280.html  XMPP Carbon Copy - xmpp.org\/extensions\/xep-0280.html"},{"key":"e_1_2_1_13_1","unstructured":"Openfire - http:\/\/www.igniterealtime.org\/projects\/openfire\/index.jsp  Openfire - http:\/\/www.igniterealtime.org\/projects\/openfire\/index.jsp"}],"container-title":["ACM SIGSOFT Software Engineering Notes"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2735399.2754941","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2735399.2754941","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T06:17:02Z","timestamp":1750227422000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2735399.2754941"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2015,4,3]]},"references-count":13,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2015,4,3]]}},"alternative-id":["10.1145\/2735399.2754941"],"URL":"https:\/\/doi.org\/10.1145\/2735399.2754941","relation":{},"ISSN":["0163-5948"],"issn-type":[{"type":"print","value":"0163-5948"}],"subject":[],"published":{"date-parts":[[2015,4,3]]},"assertion":[{"value":"2015-04-03","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}