تضامنًا مع حق الشعب الفلسطيني |
ويب الأشياء
هذه المقالة بحاجة لمراجعة خبير مختص في مجالها. |
ويب الأشياء (بالإنجليزية: Web of Things (WoT)) هي أنماط معمارية للبرامج، وأنماط برمجية تسمح لكائنات العالم الحقيقي بأن تكون جزءً من شبكة الويب العالمية (www). وعلى نحو مشابه لمعرفة الويب (طبقة التطبيقات) على الإنترنت (طبقة الشبكة)، يوفر ويب الأشياء طبقة تطبيقية تبسط عملية إنشاء تطبيقات إنترنت الأشياء (IoT).[1][2][3]
بدلاً من إعادة اختراع معايير جديدة تماماً، تكمن مفاهيم ويب الأشياء في استخدام معايير الويب الحالية والمعروفة[2] المستخدمة في الويب القابل للبرمجة (على سبيل المثال، REST ،HTTP ،JSON)، والويب الدلالي (مثل JSON-LD ،Microdata، إلخ)، والويب في الوقت الراهن (على سبيل المثال، WebSockets) والويب الاجتماعي (على سبيل المثال، OAuth أو الشبكات الاجتماعية).
طبيعة الأشياء
البحوث الحالية في ويب الأشياء عادة ما تنظر في الأشياء بالمعنى الواسع للأشياء ومن نواحي مادية تقريباً. يمكن أن تشمل الأشياء هذه (على سبيل المثال لا الحصر) الكائنات ذات العلامات الواضحة مثل: RFID ،NFC، رموز QR، الرموز الشريطية، التعرف على الصور لشبكات الاستشعار اللاسلكية (WSN) والآلات والمركبات والالكترونيات الاستهلاكية.
العمارة والإطار
على الرغم من الجهود المستمرة لتوحيد مفاهيم ويب الأشياء،[4] فإن ويب الأشياء عبارة عن مجموعة من أفضل الممارسات التي يمكن تصنيفها وفقاً لهندسة وعمارة ويب الأشياء.[1]
تقترح البنية الخاصة بعمارة ويب الاشياء أربع طبقات (أو مراحل) رئيسية يتم استخدامها كإطارات لتصنيف الأنماط والبروتوكولات المختلفة المعنية.
طبقة الوصول
تتعامل هذه الطبقة مع وصول الأشياء (الكائنات الحقيقية) إلى الإنترنت والتأكد من أنها تعرض خدماتها عبر واجهات برمجية في تطبيقات الويب. هذه هي الطبقة الأساسية في WoT لأنها تضمن للأشياء واجهة برمجية وتطبيقات يمكن الوصول إليها عبر الويب، وتحويلها إلى أشياء قابلة للبرمجة.[2][3][5]
طبقة الوصول في WoT مبنية على نموذجين أساسيين:
أولاً: يجب أن تعرض كل الأشياء خدماتها من خلال واجهة برمجة تطبيقات RESTful (إما مباشرة أو عبر بوابة).[2] REST هو أسلوب معماري في جذر الويب القابل للبرمجة بفضل تنفيذه في HTTP 1.1. نتيجة لذلك، إذا كانت الأشياء توفر واجهات برمجة تطبيقات RESTful عبر HTTP، فإنها تحصل على عنوان URL وتندمج بسهولة مع الشبكة العالمية وأدواتها مثل المستعرضات وصفحات HTML ذات الارتباط التشعبي وتطبيقات JavaScript.
تم اقتراح العديد من التصميمات التي تصف كيفية الوصول إلى الخدمات التي تقدمها الأشياء عبر REST.[2]
ثانياً: غالباً ما يتم الاستشهاد بطبيعة طلب استجابة HTTP كواحد من قيود حالات استخدام إنترنت الأشياء لأنه لا يتطابق مع طبيعة التطبيقات المستندة إلى الأحداث الشائعة في شبكات الاستشعار اللاسلكية.[2] للتغلب على هذا القصور وللتركيز على تعزيز التكامل في الويب، اقترح العديد من المؤلفين استخدام HTML5 WebSockets إما أصلياً أو من خلال استخدام وسطاء الترجمة (على سبيل المثال، الترجمة من MQTT أو CoAP إلى WebSockets).[4][6] هذا من شأنه أن يكمل واجهة برمجة تطبيقات REST للأشياء بآلية اشتراك النشر التي تتكامل إلى حد كبير مع نظام الويب البيئي.
يمكن لبعض الأشياء الاتصال مباشرة بالإنترنت (على سبيل المثال، استخدام Ethernet أو WiFi أو GSM / 3G)، ولكن في حالات أخرى (على سبيل المثال عندما تكون الأجهزة تعمل بالبطارية) يمكن للأجهزة الوصول إلى الإنترنت عبر بوابات ذكية Smart Gateways. البوابات الذكية هي بوابات ترجمة البروتوكولات على حدود الشبكة.
طبقة البحث وسهولة العثور
تركز هذه الطبقة على توفير طريقة للعثور على الأشياء وتحديد موقعها على الويب وبالتالي فهي تتأثر بشدة بالويب الدلالي.[4]
تتمثل الطريقة هنا في إعادة استخدام معايير الويب الدلالية لوصف الأشياء وخدماتها. على وجه الخصوص، كان الناس يعملون على تكامل HTML5 Microdata وRDF / RDFa و JSON-LD و EXI.[4] يتيح ذلك البحث عن الأشياء من خلال محركات البحث وغيرها من فهارس الويب بالإضافة إلى تمكين التفاعل من آلة إلى أخرى بناءً على مجموعة صغيرة من التنسيقات والمعايير المحددة جيداً.
طبقة المشاركة
تعتمد Web of Things إلى حد كبير على فكرة دفع الأشياء للبيانات إلى الويب حيث يمكن تطبيق المزيد من أنماط الذكاء والبيانات الضخمة كمثال لمساعدتنا على إدارة صحتنا (Wearables)، وتحسين استهلاك الطاقة لدينا (الشبكة الذكية)، وما إلى ذلك، لا يمكن أن يحدث هذا إلا على نطاق واسع إذا كان يمكن مشاركة بعض البيانات بكفاءة عبر الخدمات. تضمن طبقة المشاركة إمكانية مشاركة البيانات الناتجة عن الأشياء بطريقة فعالة وآمنة.
تم اقتراح العديد من الأساليب تجاه المشاركة القائمة على السياق الاجتماعي والمحتوى الاجتماعي مثل استخدام الشبكة الاجتماعية لبناء شبكة اجتماعية للأشياء.[7]
طبقة التكوين
يتمثل دور الطبقة الأخيرة في دمج الخدمات والبيانات التي تقدمها الأشياء في أدوات الويب ذات المستوى الأعلى (برامج التحليل، تطبيقات المزج مثل IFTTT)، مما يجعل من الأسهل إنشاء تطبيقات تتضمن أشياء وخدمات ويب افتراضية.
تتراوح الأدوات الموجودة في طبقة التكوين من مجموعات أدوات الويب (على سبيل المثال، أدوات تطوير برامج جافا سكريبت SDK التي تقدم تجريدات عالية المستوى) إلى لوحات المعلومات التي تحتوي على عناصر واجهة برمجية قابلة للبرمجة وأدوات Mashup المادية، وهي مستوحاة من خدمات Web 2.0 التشاركية ولا سيما تطبيقات الويب الممزوجة، والتي تقدم المزج البدني بوجهة نظر موحدة للويب الكلاسيكي وشبكة الويب للأشياء، وتمكن الناس من بناء التطبيقات باستخدام خدمات ويب الأشياء دون الحاجة إلى مهارات البرمجة.
تم تطوير عدد من ويب الأشياء البدنية Mashup [8][9] وتم اقتراح أدوات ويجري تطويرها بنشاط.[10]
التاريخ
من المحتمل أن يكون العمل الرائد في توصيل الأشياء بالويب بدأ حوالي عام 2000. في عام 2002، قدمت ورقة علمية تمت مراجعتها من قبل النظراء بمشروع Cooltown.[11] استكشف هذا المشروع استخدام عناوين URL لمعالجة العنوان وتفاعل HTTP مع الكائنات المادية مثل الشاشات أو الطابعات العامة.
بعد هذا العمل المبكر، بدأ الاهتمام المتزايد بإنترنت الأشياء وتطبيقه يثيران بعض الأسئلة حول طبقة تطبيق إنترنت الأشياء، في حين أن معظم العمل في مجال إنترنت الأشياء يركز على بروتوكولات الشبكة، كانت هناك حاجة للتفكير في تقارب البيانات من أجهزة إنترنت الأشياء. على وجه الخصوص، بدلاً من النظر إلى «تطبيق واحد لجهاز واحد»، بدأ الباحثون والممارسون في تصور إنترنت الأشياء كنظام حيث يمكن لتطبيقات الويب استهلاك البيانات من أجهزة مختلفة لإنشاء حالات استخدام مبتكرة.
بدأت فكرة الويب كطبقة تطبيقية لإنترنت الأشياء في الظهور في عام 2007. بدأ العديد من الباحثين العمل بالتوازي مع هذه الفكرة. فيما بينهم، بدأ دومينيك غينارد وفلاد تريفا مجتمع الويب الخاص بالأشياء على الإنترنت ونشروا أول بيان من WoT، داعين إلى استخدام معايير الويب (REST، وعلم الدلالة الخفيف، إلخ) لبناء طبقة تطبيق IoT. تم نشر البيان مع تطبيق على منصة Sun SPOT. في الوقت نفسه، بدأ Dave Raggett من W3C الحديث عن شبكة من الأشياء في مختلف أحداث W3C و IoT. نشر إريك وايلد كتابه "Putting Things to REST"، وهي ورقة مفاهيم منشورة تبحث ذاتياً في الاستفادة من استشعار الأشياء المادية والتحكم فيها.[12] ظهرت الإشارات المبكرة لموقع الويب الخاص بالأشياء كمصطلح في مقال بقلم فلاد شتيربو (وآخرون معه أيضاً).
منذ عام 2007 وصاعداً، حاول كل من Trifa و Guinard و Wilde وغيرهم من الباحثين نشر أفكارهم ومفاهيمهم في مؤتمرات تمت مراجعتها من قِبل النظراء، ولكن تم رفض أوراقهم من قبل مجتمع أبحاث شبكات الاستشعار اللاسلكية على أساس أن بروتوكولات الإنترنت والويب كانت محدودة للغاية ومحدودة في سياق الأجهزة الواقعية،[13] حيث كان تحسين استخدام الذاكرة والحساب، أو عرض النطاق الترددي اللاسلكي، أو دورات العمل القصيرة جدًا أمراً ضرورياً.
ولكن مع كل ذلك، بدأ عدد من الباحثين في مجتمعات ومنتديات WSN النظر في هذه الأفكار بجدية أكبر. في أوائل عام 2009، قام عدد من الباحثين المحترمين من WSN مثل David Culler و Jonathan Hui و Adam Dunkels و Yazar Dogan بتقييم استخدام الإنترنت وبروتوكولات الويب لعقد مستشعرات الطاقة المنخفضة وأظهروا جدوى من هذا النهج.[14][15]
بعد ذلك، قدم كل من غينارد وتريفا تنفيذهما المفاهيمي للمفاهيم وقدموا في منشور تمت مراجعته من قِبل النظراء، حيث أنه تم قبوله في مؤتمر الشبكة العنكبوتية العالمية في عام 2009. بناءً على هذا التنفيذ وتوحيد الجهود، بنية وعمارة ويب الأشياء تم اقتراحها في عام 2010 من قبل جينارد وتريفا وايلد.[16] نظراً لتزايد الاهتمام الصناعي والأكاديمي لربط الأشياء بالويب، نظم كل من غينارد وتريفا ووايلد أول ورشة عمل دولية حول ويب الأشياء،[17] WoT 2010 التي تعمل سنويا منذ ذلك الحين. أصبحت ورش العمل هذه المنتدى الأول حيث يمكن لمجتمع متزايد من الباحثين والممارسين مناقشة أحدث النتائج والأفكار في شبكة الأشياء.
في عام 2011، تم تقديم اثنين من أطروحات الدكتوراه الأولى على شبكة إنترنت الأشياء في ETH زيوريخ، وتناقش هذه الاطروحات مايلي:
اللبنات الأساسية لشبكة من الأشياء القائمة على المشاركة: الأجهزة، والبنية التحتية، وأطر البرمجة من فلاد تريفا، وبنية تطبيق ويب الأشياء - دمج العالم الحقيقي في الويب من دومينيك جينارد.
في عام 2011، التقى دومينيك غينارد وفلاد تريفا مع نيال مورفي وآندي هوبسباوم وأسسوا شركة تدعى بـ EVRYTHNG،[18] وهي تعتبر واحدة من أولى شركات البرمجيات السحابية التي تستفيد بالكامل من شبكة ويب الأشياء لتلبية احتياجات الصناعة. بدأت العديد من شركات WoT الناشئة في هذا الوقت مثل Sensetecnic [19] أو Yaler.[20]
في عام 2014، أبدت W3C اهتماماً متزايداً بشبكة الويب للأشياء ونظمت ورشة عمل W3C على ويب الأشياء،[21] تحت قيادة ديف راجيت بالتعاون مع Siemens ومشروع COMPOSE European. تؤدي هذه الورشة إلى إنشاء مجموعة اهتمامات ويب الأشياء[4] وتقديم نموذج الويب.[22]
في نفس العام، أعلنت شركة سيمنز عن إنشاء مجموعة بحثية مخصصة لشبكة الأشياء.[23] في أكتوبر من عام 2014، أعلنت Google أيضاً عن اهتمامها بهذه الأفكار من خلال إطلاق مشروع Physical Web GitHub.[24]
أمثلة التطبيق
- أحد النماذج الأولية المبكرة لويب الأشياء هو مشروع " Energie Visible " الذي قدمت فيه أجهزة استشعار قادرة على مراقبة استهلاك الطاقة للأجهزة المنزلية والتحكم في وظائفها من خلال واجهة برمجة تطبيقات RESTful. ثم يتم استخدام واجهة برمجة التطبيقات هذه لإنشاء Mashup فعلي.[25]
- Nimbits [26] هو خادم مؤرخ بيانات مفتوح المصدر مبني على بنية الحوسبة السحابية ويوفر اتصال بين الأجهزة التي تستخدم نقاط البيانات.
- Xively (المعروف سابقاً باسم Pachube) هو عبارة عن شبكة تجارية تضم مجمعاً لبيانات الأشياء وموقع تنقيب وتعدين البيانات مدمجاً في كثير من الأحيان في شبكة الأشياء.
- ThingSpeak هي عبارة عن منصة مفتوحة المصدر لإنترنت الأشياء أنشأها Hans Scharler لجمع وتحليل والعمل على البيانات التي تم إنشاؤها بواسطة أجهزة الاستشعار والمحركات.[27]
- EVRYTHNG [28] هي عبارة عن منصة لجعل المنتجات غير المتصلة والأجهزة المتصلة جزءًا من الويب استناداً إلى بنية Web of Things.
- WeIO عبارة عن نظام أساسي مفتوح المصدر للأجهزة والبرامج من أجل النماذج الأولية السريعة وإنشاء كائنات تفاعلية متصلة لاسلكياً باستخدام لغات الويب الشائعة فقط مثل HTML5 أو Python.
- SMQ [29] هو بروتوكول pub-sub في الوقت الفعلي يجسر WoT مع IoT. يسهل البروتوكول تصميم واجهات المستخدم القائمة على الويب لإدارة الجهاز والإشراف عليه. خادم Mako،[30] والذي يمكن تجميعه لأي شيء من الأجهزة المدمجة إلى خوادم Linux الخاصة بالمؤسسات، يتضمن وسيط SMQ جاهز للاستخدام.
- تم البحث في تطبيق ويب الأشياء في المنازل الذكية،[31] لمعالجة مشكلة الأجهزة المنزلية غير المتجانسة من خلال إعادة استخدام تقنيات الويب.
- تركز Sense Tecnic Systems [32] على مجموعة أدوات خفيفة الوزن لتطوير تطبيقات إنترنت الأشياء وتهدف إلى التطوير السريع باستخدام تقنيات وبروتوكولات الويب. تم وصف مجموعة أدوات WoTKit في مؤتمر IoT لعام 2012 [9] وهي تستند إلى أبحاث من المركز متعدد التخصصات للوسائط والرسومات في UBC،[33] خاصةً العمل على MAGIC Broker كما تم نشره في IoT 2010.[34]
المناهج البديلة
تم اقتراح عدد من الطرق البديلة لمعايير الويب، مثل خدمات WS- *،[35] ولكن تم عرضها لاحقاً على أنها ليست مناسبة بالضرورة لأشياء واقعية.[15][36]
غالباً ما يتم ذكر بروتوكول التطبيق المقيد (CoAP) كنهج بديل أو مكمل للأجهزة محدودة الموارد.[37] تتقاسم CoAP أوجه التشابه مع هندسة Web of Things مثل استخدام الموارد RESTful.
انظر أيضاً
المراجع
- ^ أ ب ت
- Guinard، Dominique؛ Vlad، Trifa (2015). Building the Web of Things. Manning. ISBN:9781617292682. مؤرشف من الأصل في 2020-05-13.
- ^ أ ب ت ث ج ح Guinard، Dominique؛ Trifa، Vlad؛ Mattern، Friedemann؛ Wilde، Erik (2011). From the Internet of Things to the Web of Things: Resource Oriented Architecture and Best Practices (PDF). Springer. ص. 97–129. ISBN:978-3-642-19156-5. مؤرشف من الأصل (PDF) في 2018-06-21.
- ^ أ ب Guinard، Dominique؛ Trifa، Vlad؛ Pham، Thomas؛ Liechti، Olivier (2009). "Towards physical mashups in the Web of Things". 2009 Sixth International Conference on Networked Sensing Systems (INSS). ص. 1–4. DOI:10.1109/INSS.2009.5409925. ISBN:978-1-4244-6313-8.
- ^ أ ب ت ث ج "Web of Things Interest Group". مؤرشف من الأصل في 2017-07-18.
- ^ Duquennoy، Simon؛ Grimaud، Gilles؛ Vandewalle، Jean-Jacques (2009). "The Web of Things: Interconnecting Devices with High Usability and Performance". 2009 International Conference on Embedded Software and Systems. ص. 323–330. DOI:10.1109/ICESS.2009.13. ISBN:978-0-7695-3678-1.
- ^ "Connected devices, real-time push and the Web of Things". مؤرشف من الأصل في 29 نوفمبر 2014. اطلع عليه بتاريخ أغسطس 2020.
{{استشهاد ويب}}
: تحقق من التاريخ في:|تاريخ الوصول=
(مساعدة) - ^ Chung، Tein-Yaw؛ Mashal، Ibrahim؛ Alsaryrah، Osama؛ Huy، Van؛ Kuo، Wen-Hsing؛ Agrawal، Dharma P. (2013). "Social Web of Things: A Survey". 2013 International Conference on Parallel and Distributed Systems. ص. 570–575. DOI:10.1109/ICPADS.2013.102. ISBN:978-1-4799-2081-5.
- ^ Kovatsch، Matthias؛ Weiss، Markus؛ Guinard، Dominique (2010). "Embedding internet technology for home automation". 2010 IEEE 15th Conference on Emerging Technologies & Factory Automation (ETFA 2010). ص. 1–8. DOI:10.1109/ETFA.2010.5641208. ISBN:978-1-4244-6848-5.
- ^ أ ب Blackstock، M.؛ Lea, R. (أكتوبر 2012). "IoT Mashups with the WoTKit". Internet of Things 2012 (IEEE). In Press. مؤرشف من الأصل في 2019-05-19.
- ^ "NodeRed". مؤرشف من الأصل في 2019-08-23.
- ^ Kindberg، T.؛ Barton، J.؛ Morgan، J.؛ Becker، G.؛ Caswell، D.؛ Debaty، P.؛ Gopal، G.؛ Frid، M.؛ Krishnan، V. (2000). "People, places, things: Web presence for the real world". Proceedings Third IEEE Workshop on Mobile Computing Systems and Applications. ص. 19–28. DOI:10.1109/MCSA.2000.895378. ISBN:978-0-7695-0816-0.
- ^ "Putting things to REST" (PDF). مؤرشف من الأصل (PDF) في 2017-08-09.
- ^ "5 Years of Web of Things Workshops". 23 أكتوبر 2014. مؤرشف من الأصل في 2017-01-09.
- ^ Hui، Jonathan W.؛ Culler، David E. (2008). "IP is dead, long live IP for wireless sensor networks". Proceedings of the 6th ACM conference on Embedded network sensor systems - Sen Sys '08. ص. 15. DOI:10.1145/1460412.1460415. ISBN:9781595939906.
- ^ أ ب Yazar، Dogan؛ Dunkels، Adam (2009). "Efficient application integration in IP-based sensor networks". Proceedings of the First ACM Workshop on Embedded Sensing Systems for Energy-Efficiency in Buildings - Build Sys '09. ص. 43. DOI:10.1145/1810279.1810289. ISBN:9781605588247.
- ^ Guinard، Dominique؛ Trifa، Vlad؛ Wilde، Erik (2010). "A resource oriented architecture for the Web of Things". 2010 Internet of Things (IOT). ص. 1–8. DOI:10.1109/IOT.2010.5678452. ISBN:978-1-4244-7413-4.
- ^ "International Workshop on the Web of Things". مؤرشف من الأصل في 2016-10-14.
- ^ "EVRYTHNG". مؤرشف من الأصل في 2019-08-22.
- ^ "Sensetecnic". SenseTecnic. مؤرشف من الأصل في 2019-02-07. اطلع عليه بتاريخ 2012-08-05.
- ^ "Yaler". مؤرشف من الأصل في 2018-11-15.
- ^ "W3C Workshop on the Web of Things". مؤرشف من الأصل في 2019-02-09.
- ^ "Web Thing Model". مؤرشف من الأصل في 2018-03-21.
- ^ "Siemens Web of Things Research Group". مؤرشف من الأصل في 2018-01-28.
- ^ "The Physical Web". GitHub (بEnglish). Archived from the original on 2019-01-30. Retrieved 2017-02-08.
- ^ "Energie Visible Web of Things Project". مؤرشف من الأصل في 2016-03-06.
- ^ "free, social and open source internet of things". Nimbits. مؤرشف من الأصل في 2019-04-24. اطلع عليه بتاريخ 2012-05-10.
- ^ github README file
- ^ "making products smart". EVRYTHNG. مؤرشف من الأصل في 2019-08-22. اطلع عليه بتاريخ 2013-05-24.
- ^ "SMQ: Lightweight IoT protocol". Real Time Logic. مؤرشف من الأصل في 2018-08-17. اطلع عليه بتاريخ 2015-02-27.
- ^ "SMQ Broker: Ready to use SMQ Broker". Real Time Logic. مؤرشف من الأصل في 2019-05-10. اطلع عليه بتاريخ 2015-02-27.
- ^ Kamilaris A. Enabling Smart Homes using Web Technologies. PhD Thesis, University of Cyprus, Nicosia, Cyprus, December, 2012.
- ^ "WoTKit: Lightweight IoT toolkit". SenseTecnic. مؤرشف من الأصل في 2019-02-07. اطلع عليه بتاريخ 2012-08-05.
- ^ "Media and Graphics Interdisciplinary Centre, University of British Columbia". UBC. مؤرشف من الأصل في 2019-02-24. اطلع عليه بتاريخ 2012-08-05.
- ^ Blackstock، M.؛ Kaviani, N.؛ Lea, R.؛ Friday, A. (29 نوفمبر – 1 ديسمبر 2010). MAGIC Broker 2: An open and extensible platform for the Internet of Things (PDF). ص. 1–8. DOI:10.1109/IOT.2010.5678443. ISBN:978-1-4244-7413-4. مؤرشف من الأصل (PDF) في 2013-06-02.
{{استشهاد بكتاب}}
:|عمل=
تُجوهل (مساعدة) - ^ Carboni، Davide؛ Zanarini، Pietro (2007). "Wireless wires". Proceedings of the 6th international conference on Mobile and ubiquitous multimedia - MUM '07. ص. 169–175. DOI:10.1145/1329469.1329492. ISBN:9781595939166.
- ^ Guinard، Dominique؛ Ion، Iulia؛ Mayer، Simon (2012). In Search of an Internet of Things Service Architecture: REST or WS-*? A Developers' Perspective (PDF). Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering. ج. 104. ص. 326–337. DOI:10.1007/978-3-642-30973-1_32. ISBN:978-3-642-30972-4. ISSN:1867-8211. مؤرشف من الأصل (PDF) في 2017-08-10.
- ^ Kovatsch، Matthias (2013). "CoAP for the web of things" (PDF). Proceedings of the 2013 ACM conference on Pervasive and ubiquitous computing adjunct publication - Ubi Comp '13 Adjunct. ص. 1495–1504. DOI:10.1145/2494091.2497583. ISBN:9781450322157.