अक्का (टूलकिट): Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 17: Line 17:
}}
}}


'''अक्का (टूलकिट)''' एक स्रोत-उपलब्ध टूलकिट और रनटाइम है, जो [[जावा प्लेटफार्म]] पर कॉन्करेन्सी और डिस्ट्रीब्यूशन अनुप्रयोगों के निर्माण को सरल बनाता है। अक्का कॉन्करेन्सी के लिए कई प्रोग्रामिंग मॉडल का समर्थन करता है, लेकिन यह एर्लांग से प्रेरणा लेकर एक्टर-आधारित कॉन्करेन्सी पर जोर देता है।<ref>{{cite web|author=Akka Team|title=स्काला अभिनेता परिचय|url=https://doc.akka.io/docs/akka/current/actors.html#introduction|accessdate=17 September 2018}}</ref>
'''अक्का (टूलकिट)''' एक सोर्स-उपलब्ध टूलकिट और रनटाइम है, जो [[जावा प्लेटफार्म]] पर कॉन्करेन्सी और डिस्ट्रीब्यूशन अनुप्रयोगों के निर्माण को सरल बनाता है। अक्का कॉन्करेन्सी के लिए कई प्रोग्रामिंग मॉडल का सपोर्ट करता है, लेकिन यह एर्लांग से प्रेरणा लेकर एक्टर-आधारित कॉन्करेन्सी पर बल देता है।<ref>{{cite web|author=Akka Team|title=स्काला अभिनेता परिचय|url=https://doc.akka.io/docs/akka/current/actors.html#introduction|accessdate=17 September 2018}}</ref>


[[जावा (प्रोग्रामिंग भाषा)|जावा (प्रोग्रामिंग लैंग्वेज)]] और [[स्काला (प्रोग्रामिंग भाषा)|स्काला (प्रोग्रामिंग लैंग्वेज)]] दोनों के लिए लैंग्वेज बाइंडिंग उपस्थित हैं। अक्का स्काला में लिखा गया है, और स्काला 2.10 के अनुसार, स्काला स्टैंडर्ड लाइब्रेरी में एक्टर्स को अक्का के पक्ष में पदावनत किया गया है।<ref>{{cite web|last=Jovanovic|first=Vojin|title=स्काला एक्टर्स माइग्रेशन गाइड|url=http://docs.scala-lang.org/overviews/core/actors-migration-guide.html|accessdate=13 March 2013|archive-date=5 December 2013|archive-url=https://web.archive.org/web/20131205052405/http://docs.scala-lang.org/overviews/core/actors-migration-guide.html|url-status=dead}}</ref>
[[जावा (प्रोग्रामिंग भाषा)|जावा (प्रोग्रामिंग लैंग्वेज)]] और [[स्काला (प्रोग्रामिंग भाषा)|स्काला (प्रोग्रामिंग लैंग्वेज)]] दोनों के लिए लैंग्वेज बाइंडिंग उपस्थित हैं। अक्का स्काला में लिखा गया है, और स्काला 2.10 के अनुसार, स्काला स्टैंडर्ड लाइब्रेरी में एक्टर्स को अक्का के पक्ष में डेप्रिकेट किया गया है।<ref>{{cite web|last=Jovanovic|first=Vojin|title=स्काला एक्टर्स माइग्रेशन गाइड|url=http://docs.scala-lang.org/overviews/core/actors-migration-guide.html|accessdate=13 March 2013|archive-date=5 December 2013|archive-url=https://web.archive.org/web/20131205052405/http://docs.scala-lang.org/overviews/core/actors-migration-guide.html|url-status=dead}}</ref>
==इतिहास==
==इतिहास==
फिलिप हॉलर द्वारा लिखित एक एक्टर इम्प्लीमेंटेशन, स्काला 2.1.7 के भाग के रूप में जुलाई 2006 में जारी किया गया था।<ref>{{cite web|url=http://www.scala-lang.org/node/156 |title=स्काला संस्करण इतिहास - पुराने संस्करण|publisher=scala-lang.org |date=2009-02-16 |url-status=dead |archiveurl=https://web.archive.org/web/20130104213121/http://www.scala-lang.org/node/156 |archivedate=2013-01-04 }}</ref> 2008 तक स्काला काम्प्लेक्स सर्वर अनुप्रयोगों में उपयोग के लिए अट्रक्टिंग अटेंशन कर रहा था, लेकिन कॉन्करेन्सी अभी भी सामान्यतः थ्रेड बनाकर प्राप्त की जाती थी, जो मेमोरी साझा करती थी और लॉक का उपयोग करके आवश्यक होने पर सिंक्रनाइज़ होती थी। उस दृष्टिकोण की कठिनाइयों से अवगत और अत्यधिक कॉन्करेन्सी, घटना-संचालित अनुप्रयोगों को लिखने के लिए एर्लांग प्रोग्रामिंग लैंग्वेज के लाइब्रेरी समर्थन से प्रेरित होकर, स्वीडिश प्रोग्रामर [[जोनास बोनर]] ने स्काला और जावा में समान क्षमताओं को लाने के लिए अक्का बनाया, बोनर ने 2009 की प्रारंभिक में अक्का पर काम करना प्रारंभ किया था।<ref>{{cite web|author=Jonas Bonér |url=https://github.com/akka/akka/commit/0a31ad718883ef0314de6dc8c6c2c9699eadfdae |title=init प्रोजेक्ट सेटअप|publisher=github.com |date=2009-02-16}}</ref> और उसी वर्ष जून में इसके लिए अपना दृष्टिकोण लिखा,<ref name=":0">{{cite web|author=Jonas Bonér |url=https://github.com/akka/akka/tree/v0.5 |title=v0.5 |publisher=github.com |date=2009-07-12}}</ref> पहली सार्वजनिक रिलीज़ अक्का 0.5 थी, जिसकी घोषणा जनवरी 2010 में की गई थी। अक्का अब [[प्ले फ्रेमवर्क]] और स्काला प्रोग्रामिंग लैंग्वेज के साथ लाइटबेंड प्लेटफॉर्म का भाग है।
फिलिप हॉलर द्वारा लिखित एक एक्टर इम्प्लीमेंटेशन, स्काला 2.1.7 के भाग के रूप में जुलाई 2006 में ड्राईवेन किया गया था।<ref>{{cite web|url=http://www.scala-lang.org/node/156 |title=स्काला संस्करण इतिहास - पुराने संस्करण|publisher=scala-lang.org |date=2009-02-16 |url-status=dead |archiveurl=https://web.archive.org/web/20130104213121/http://www.scala-lang.org/node/156 |archivedate=2013-01-04 }}</ref> 2008 तक स्काला काम्प्लेक्स सर्वर अनुप्रयोगों में उपयोग के लिए अट्रक्टिंग अटेंशन कर रहा था, लेकिन कॉन्करेन्सी अभी भी सामान्यतः थ्रेड बनाकर प्राप्त की जाती थी, जो मेमोरी साझा करती थी और लॉक का उपयोग करके आवश्यक होने पर सिंक्रनाइज़ होती थी। उस दृष्टिकोण की कठिनाइयों से अवगत और अत्यधिक कॉन्करेन्सी, घटना-ड्राईवेन अनुप्रयोगों को लिखने के लिए एर्लांग प्रोग्रामिंग लैंग्वेज के लाइब्रेरी सपोर्ट से प्रेरित होकर, स्वीडिश प्रोग्रामर [[जोनास बोनर]] ने स्काला और जावा में समान क्षमताओं को लाने के लिए अक्का बनाया था, बोनर ने 2009 के प्रारंभिक में अक्का पर काम करना प्रारंभ किया था।<ref>{{cite web|author=Jonas Bonér |url=https://github.com/akka/akka/commit/0a31ad718883ef0314de6dc8c6c2c9699eadfdae |title=init प्रोजेक्ट सेटअप|publisher=github.com |date=2009-02-16}}</ref> और उसी वर्ष जून में इसके लिए अपना दृष्टिकोण लिखा,<ref name=":0">{{cite web|author=Jonas Bonér |url=https://github.com/akka/akka/tree/v0.5 |title=v0.5 |publisher=github.com |date=2009-07-12}}</ref> पहली पब्लिक रिलीज़ अक्का 0.5 थी, जिसकी घोषणा जनवरी 2010 में की गई थी। अक्का अब [[प्ले फ्रेमवर्क]] और स्काला प्रोग्रामिंग लैंग्वेज के साथ लाइटबैंड प्लेटफॉर्म का भाग है।


सितंबर 2022 में, लाइटबेंड ने घोषणा की कि अक्का अपने लाइसेंस को [[सॉफ्टवेयर लाइसेंस|फ्री सॉफ्टवेयर लाइसेंस]], अपाचे लाइसेंस 2.0 से एक [[मालिकाना सॉफ्टवेयर|प्रोप्रीएटरी सॉफ्टवेयर]] स्रोत-उपलब्ध लाइसेंस में परिवर्तित कर देता है। जिसे [[ व्यवसाय स्रोत लाइसेंस |बिज़नेस स्रोत लाइसेंस]] (बीएसएल) के रूप में जाना जाता है। बीएसएल के अनुसार कोई भी नवीनतम कोड तीन साल के पश्चात अपाचे लाइसेंस के अनुसार उपलब्ध हो जाता है।
सितंबर 2022 में, लाइटबैंड ने घोषणा की कि अक्का अपने लाइसेंस को [[सॉफ्टवेयर लाइसेंस|फ्री सॉफ्टवेयर लाइसेंस]], अपाचे लाइसेंस 2.0 से एक [[मालिकाना सॉफ्टवेयर|प्रोप्रीएटरी सॉफ्टवेयर]] सोर्स-उपलब्ध लाइसेंस में परिवर्तित कर देता है। जिसे [[ व्यवसाय स्रोत लाइसेंस |बिज़नेस सोर्स लाइसेंस]] (बीएसएल) के रूप में जाना जाता है। बीएसएल के अनुसार कोई भी नवीनतम कोड तीन साल के पश्चात अपाचे लाइसेंस के अनुसार उपलब्ध हो जाता है।
==विशिष्ठ सुविधाएं==
==विशिष्ठ सुविधाएं==
अक्का एक्टर्स पर आधारित अनुप्रयोगों को भिन्न करने वाले मुख्य बिंदु हैं:
अक्का एक्टर्स पर आधारित अनुप्रयोगों को भिन्न करने वाले मुख्य बिंदु हैं:
* कॉन्करेन्सी संदेश-आधारित और ऐसिंक्रोनोस है, सामान्यतः कोई म्यूटेबल डेटा साझा नहीं किया जाता है, और कोई सिंक्रनाइज़ेशन प्रिमिटिव का उपयोग नहीं किया जाता है, अक्का एक्टर मॉडल लागू करता है।
* कॉन्करेन्सी मैसेज-बेस्ड और ऐसिंक्रोनोस है, सामान्यतः कोई म्यूटेबल डेटा साझा नहीं किया जाता है, और कोई सिंक्रनाइज़ेशन प्रिमिटिव का उपयोग नहीं किया जाता है, अक्का एक्टर मॉडल लागू करता है।
* एक्टर्स के इंटरेक्ट करने का विधि एक समान है, चाहे वे एक ही होस्ट पर हों या भिन्न-भिन्न होस्ट पर हों, सीधे संचार कर रहे हों या रूटिंग सुविधाओं के माध्यम से, कुछ थ्रेड्स या कई थ्रेड्स पर होते है, इस प्रकार के विवरणों को कॉन्फ़िगरेशन तंत्र के माध्यम से तैनाती के समय परिवर्तिता किया जा सकता है, जिससे यह अनुमति मिलती है, कि एक प्रोग्राम को बिना किसी संशोधन के बढ़ाया जा सकता है (अधिक शक्तिशाली सर्वरों का उपयोग करने के लिए) तथा (अधिक सर्वरों का उपयोग करने के लिए) और बाहर किया जाता है।
* एक्टर्स के इंटरेक्ट करने की विधि एक समान है, चाहे वे एक ही होस्ट पर हों या भिन्न-भिन्न होस्ट पर हों, सीधे संचार कर रहे हों या रूटिंग सुविधाओं के माध्यम से, कुछ थ्रेड्स या कई थ्रेड्स पर होते हों, इस प्रकार के विवरणों को कॉन्फ़िगरेशन मैकेनिज्म के माध्यम से डिप्लॉयमेंट के समय परिवर्तिता किया जा सकता है, जिससे यह अनुमति मिलती है, कि एक प्रोग्राम को बिना किसी संशोधन के बढ़ाया जा सकता है (अधिक शक्तिशाली सर्वरों का उपयोग करने के लिए) तथा (अधिक सर्वरों का उपयोग करने के लिए) और बाहर किया जाता है।
* प्रोग्राम विफलताओं के संबंध में एक्टर्स को पदानुक्रमित रूप से व्यवस्थित किया जाता है, जिन्हें एक एक्टर के पर्यवेक्षक द्वारा नियंत्रित की जाने वाली घटनाओं के रूप में माना जाता है (इस बात की परवाह किए बिना कि किस एक्टर ने विफलता को ट्रिगर करने वाला संदेश भेजा था।) एरलांग के विपरीत, अक्का अभिभावकीय की निरीक्षण को लागू करता है, जिसका अर्थ है, कि प्रत्येक एक्टर को उसके मूल एक्टर द्वारा बनाया और पर्यवेक्षण किया जाता है।
* प्रोग्राम विफलताओं के संबंध में एक्टर्स को पदानुक्रमित रूप से व्यवस्थित किया जाता है, जिन्हें एक एक्टर के पर्यवेक्षक द्वारा नियंत्रित की जाने वाली घटनाओं के रूप में माना जाता है (इस बात की भरोसा किए बिना कि किस एक्टर ने विफलता को ट्रिगर करने वाला संदेश भेजा था।) एरलांग के विपरीत, अक्का अभिभावकीय की निरीक्षण को लागू करता है, जिसका अर्थ है, कि प्रत्येक एक्टर को उसके मूल एक्टर द्वारा बनाया और पर्यवेक्षण किया जाता है।


अक्का में एक मॉड्यूलर संरचना है, जिसमें एक कोर मॉड्यूल एक्टर प्रदान करता है। अन्य मॉड्यूल एक्टर्स के नेटवर्क वितरण, [[क्लस्टर (कंप्यूटिंग)|क्लस्टर (अभिकलन)]] समर्थन, कमांड और इवेंट सोर्सिंग, विभिन्न तृतीय-पक्ष सिस्टम (जैसे [[ अपाचे ऊँट |अपाचे कैमल]], [[ज़ीरोएमक्यू]]) के साथ एकीकरण, और यहां तक ​​कि फ्यूचर्स और एजेंटों जैसे अन्य कॉन्करेन्सी मॉडल के लिए समर्थन जैसी सुविधाएं जोड़ने के लिए उपलब्ध हैं।
अक्का में एक मॉड्यूलर संरचना है, जिसमें एक कोर मॉड्यूल एक्टर प्रदान करता है। अन्य मॉड्यूल एक्टर्स के नेटवर्क डिस्ट्रीब्यूशन, [[क्लस्टर (कंप्यूटिंग)|क्लस्टर (अभिकलन)]] सपोर्ट, कमांड और इवेंट सोर्सिंग, विभिन्न तृतीय-पक्ष सिस्टम (जैसे [[ अपाचे ऊँट |अपाचे कैमल]], [[ज़ीरोएमक्यू]]) के साथ एकीकरण, और यहां तक ​​कि फ्यूचर्स और एजेंटों जैसे अन्य कॉन्करेन्सी मॉडल के लिए सपोर्ट जैसी सुविधाएं जोड़ने के लिए उपलब्ध हैं।


==परियोजना संरचना==
==परियोजना संरचना==
विक्टर क्लैंग सितंबर 2011 में अक्का परियोजना के लिए तकनीकी प्रमुख बन गए, जब दिसंबर 2012 में विक्टर लाइटबेंड में इंजीनियरिंग के निदेशक बने, तो रोलैंड कुह्न अक्का के लिए तकनीकी प्रमुख बन गए, विकास का मुख्य भाग लाइटबेंड में नियोजित एक कोर टीम द्वारा किया जाता है,<ref>{{cite web|title=एक टीम के रूप में|url=http://akka.io/team/|publisher=akka.io|accessdate=6 June 2013}}</ref> जो एक सक्रिय समुदाय द्वारा समर्थित है।<ref>{{cite web|title=योगदानकर्ताओं की सूची के रूप में|url=https://github.com/akka/akka/contributors|publisher=github.com|accessdate=6 June 2013}}</ref> वर्तमान जोर क्लस्टर (अभिकलन) समर्थन बढ़ाने पर है।
विक्टर क्लैंग सितंबर 2011 में अक्का परियोजना के लिए तकनीकी प्रमुख बन गए, जब दिसंबर 2012 में विक्टर लाइटबैंड में इंजीनियरिंग के निदेशक बने, तो रोलैंड कुह्न अक्का के लिए तकनीकी प्रमुख बन गए, विकास का मुख्य भाग लाइटबैंड में नियोजित एक कोर टीम द्वारा किया जाता है,<ref>{{cite web|title=एक टीम के रूप में|url=http://akka.io/team/|publisher=akka.io|accessdate=6 June 2013}}</ref> जो एक सक्रिय समुदाय द्वारा समर्थित है।<ref>{{cite web|title=योगदानकर्ताओं की सूची के रूप में|url=https://github.com/akka/akka/contributors|publisher=github.com|accessdate=6 June 2013}}</ref> वर्तमान जोर क्लस्टर (अभिकलन) सपोर्ट बढ़ाने पर है।


==अन्य लाइब्रेरीों से संबंध==
==अन्य लाइब्रेरीों से संबंध==
अक्का के आसपास एक पारिस्थितिकी तंत्र बनाने के लिए अन्य रूपरेखाएँ और टूलकिट उभरे हैं:
अक्का के आसपास एक पारिस्थितिकी मैकेनिज्म बनाने के लिए अन्य रूपरेखाएँ और टूलकिट इमरज्ड् हैं:
*स्प्रे टूलकिट<ref>{{cite web|last=Doenitz|first=Mathias|title=स्प्रे टूलकिट|url=http://spray.io/|publisher=spray.io|accessdate=6 June 2013}}</ref> को अक्का का उपयोग करके इम्प्लिमेंटेडत किया गया है, और इसमें एक एचटीटीपी सर्वर के साथ-साथ संबंधित सुविधाएं भी सम्मलित हैं, जैसे कि [[रेस्टफुल]] [[अप्लिकेशन प्रोग्रामिंग अंतरफलक]] बनाने के लिए एक [[डोमेन-विशिष्ट]] लैंग्वेज (डीएसएल) होता है।
*स्प्रे टूलकिट<ref>{{cite web|last=Doenitz|first=Mathias|title=स्प्रे टूलकिट|url=http://spray.io/|publisher=spray.io|accessdate=6 June 2013}}</ref> को अक्का का उपयोग करके इम्प्लिमेंटेड किया गया है, और इसमें एक एचटीटीपी सर्वर के साथ-साथ संबंधित सुविधाएं भी सम्मलित हैं, जैसे कि [[रेस्टफुल]] [[अप्लिकेशन प्रोग्रामिंग अंतरफलक|अप्लिकेशन प्रोग्रामिंग इंटरफ़ेस]] बनाने के लिए एक [[डोमेन-विशिष्ट]] लैंग्वेज (डीएसएल) होता है।
*[[वेब एप्लिकेशन]] विकसित करने के लिए प्ले फ्रेमवर्क अक्का के साथ एकीकरण प्रदान करता है।<ref>{{cite web|title=Play framework documentation: Integrating with Akka|url=http://www.playframework.com/documentation/2.0/JavaAkka|publisher=playframework.com|accessdate=6 June 2013}}</ref>
*[[वेब एप्लिकेशन]] विकसित करने के लिए प्ले फ्रेमवर्क अक्का के साथ एकीकरण प्रदान करता है।<ref>{{cite web|title=Play framework documentation: Integrating with Akka|url=http://www.playframework.com/documentation/2.0/JavaAkka|publisher=playframework.com|accessdate=6 June 2013}}</ref>
* संस्करण 1.6 तक, [[ स्पार्क (क्लस्टर कंप्यूटिंग ढांचा) |स्पार्क (क्लस्टर अभिकलन फ्रेमवर्क)]] ने नोड्स के बीच संचार के लिए अक्का का उपयोग किया था।<ref>{{cite web|title=स्पार्क परियोजना स्रोत|url=https://github.com/apache/spark|publisher=github.com|accessdate=6 June 2013}}</ref>
* संस्करण 1.6 तक, [[ स्पार्क (क्लस्टर कंप्यूटिंग ढांचा) |स्पार्क (क्लस्टर कंप्यूटिंग फ्रेमवर्क)]] ने नोड्स के बीच संचार के लिए अक्का का उपयोग किया था।<ref>{{cite web|title=स्पार्क परियोजना स्रोत|url=https://github.com/apache/spark|publisher=github.com|accessdate=6 June 2013}}</ref>
*सोको वेब सर्वर लाइब्रेरी अक्का अनुप्रयोगों के लिए रेस्ट एपीआई के इम्प्लीमेंटेशन का समर्थन करती है।<ref>{{cite web|title=सोको वेब सर्वर|url=http://sockoweb.org/|publisher=sockoweb.org|accessdate=6 June 2013}}</ref>
*सोको वेब सर्वर लाइब्रेरी अक्का अनुप्रयोगों के लिए रेस्ट एपीआई के इम्प्लीमेंटेशन का सपोर्ट करती है।<ref>{{cite web|title=सोको वेब सर्वर|url=http://sockoweb.org/|publisher=sockoweb.org|accessdate=6 June 2013}}</ref>
*इवेंट स्रोत<ref>{{cite web|title=इवेंटसोर्स्ड लाइब्रेरी|url=https://github.com/eligosource/eventsourced|publisher=eligosource|accessdate=6 June 2013}}</ref> लाइब्रेरी अक्का एक्टर्स के लिए इवेंट-संचालित आर्किटेक्चर ([[डोमेन-संचालित डिज़ाइन]] भी देखें) समर्थन प्रदान करती है।
*इवेंट सोर्स<ref>{{cite web|title=इवेंटसोर्स्ड लाइब्रेरी|url=https://github.com/eligosource/eventsourced|publisher=eligosource|accessdate=6 June 2013}}</ref> लाइब्रेरी अक्का एक्टर्स के लिए इवेंट-ड्राईवेन आर्किटेक्चर ([[डोमेन-संचालित डिज़ाइन|डोमेन-ड्राईवेन डिज़ाइन]] भी देख सकते है) सपोर्ट प्रदान करती है।
* लोड-परीक्षण वेब सर्वर के लिए [[गैटलिंग (सॉफ्टवेयर)]] स्ट्रेस परीक्षण उपकरण अक्का पर बनाया गया है।<ref>{{cite web|title=गैटलिंग तनाव परीक्षण उपकरण|url=https://github.com/excilys/gatling/wiki/Underlying-Technologies|publisher=github.com|accessdate=6 June 2013}}</ref>
* लोड-परीक्षण वेब सर्वर के लिए [[गैटलिंग (सॉफ्टवेयर)]] स्ट्रेस परीक्षण उपकरण अक्का पर बनाया गया है।<ref>{{cite web|title=गैटलिंग तनाव परीक्षण उपकरण|url=https://github.com/excilys/gatling/wiki/Underlying-Technologies|publisher=github.com|accessdate=6 June 2013}}</ref>
*[[स्कालाट्रा]] वेब फ्रेमवर्क अक्का के साथ एकीकरण की प्रस्तुत करता है।<ref>{{cite web|title=जैसे-स्कैलाट्रा|url=https://scalatra.org/guides/2.8/async/akka.html|publisher=scalatra.org|accessdate=2022-10-06}}</ref>
*[[स्कालाट्रा]] वेब फ्रेमवर्क अक्का के साथ एकीकरण की प्रस्तुत करता है।<ref>{{cite web|title=जैसे-स्कैलाट्रा|url=https://scalatra.org/guides/2.8/async/akka.html|publisher=scalatra.org|accessdate=2022-10-06}}</ref>
Line 47: Line 47:
*[[अपाचे फ़्लिंक]] (डिस्ट्रीब्यूशन स्ट्रीम और बैच डेटा प्रोसेसिंग के लिए प्लेटफ़ॉर्म) आरपीसी सिस्टम अक्का का उपयोग करके बनाया गया है।<ref>{{cite web |title=अपाचे फ्लिंक - जीत के लिए लाइक करें!|url=https://cwiki.apache.org/confluence/display/FLINK/Akka+and+Actors |publisher=flink.apache.org |accessdate=2 December 2015}}</ref> लेकिन v1.14 से भिन्न किया गया है।<ref>{{Cite web |title=Apache Flink: Scala Free in One Fifteen |url=https://flink.apache.org/2022/02/22/scala-free.html |access-date=2022-04-22 |website=flink.apache.org}}</ref>
*[[अपाचे फ़्लिंक]] (डिस्ट्रीब्यूशन स्ट्रीम और बैच डेटा प्रोसेसिंग के लिए प्लेटफ़ॉर्म) आरपीसी सिस्टम अक्का का उपयोग करके बनाया गया है।<ref>{{cite web |title=अपाचे फ्लिंक - जीत के लिए लाइक करें!|url=https://cwiki.apache.org/confluence/display/FLINK/Akka+and+Actors |publisher=flink.apache.org |accessdate=2 December 2015}}</ref> लेकिन v1.14 से भिन्न किया गया है।<ref>{{Cite web |title=Apache Flink: Scala Free in One Fifteen |url=https://flink.apache.org/2022/02/22/scala-free.html |access-date=2022-04-22 |website=flink.apache.org}}</ref>
*प्रतिक्रियाशील माइक्रोसर्विसेज के निर्माण के लिए लैगोम फ्रेमवर्क अक्का के शीर्ष पर लागू किया गया है।<ref>{{Cite web|url=https://www.lagomframework.com/documentation/1.4.x/java/Akka.html|title = Lagom - Integrating with Akka}}</ref>
*प्रतिक्रियाशील माइक्रोसर्विसेज के निर्माण के लिए लैगोम फ्रेमवर्क अक्का के शीर्ष पर लागू किया गया है।<ref>{{Cite web|url=https://www.lagomframework.com/documentation/1.4.x/java/Akka.html|title = Lagom - Integrating with Akka}}</ref>
[[GitHub]] पर 250 से अधिक सार्वजनिक परियोजनाएँ पंजीकृत हैं, जो अक्का का उपयोग करती हैं।<ref>{{cite web|last=Tasharofi|first=Samira|title=GitHub पर एक अभिनेता प्रोजेक्ट कॉर्पस के रूप में|url=http://actor-applications.cs.illinois.edu/akka.html|publisher=cs.illinois.edu|access-date=2013-06-06|archive-url=https://web.archive.org/web/20121030173302/http://actor-applications.cs.illinois.edu/akka.html|archive-date=2012-10-30|url-status=dead}}</ref>
[[GitHub]] पर 250 से अधिक पब्लिक परियोजनाएँ पंजीकृत हैं, जो अक्का का उपयोग करती हैं।<ref>{{cite web|last=Tasharofi|first=Samira|title=GitHub पर एक अभिनेता प्रोजेक्ट कॉर्पस के रूप में|url=http://actor-applications.cs.illinois.edu/akka.html|publisher=cs.illinois.edu|access-date=2013-06-06|archive-url=https://web.archive.org/web/20121030173302/http://actor-applications.cs.illinois.edu/akka.html|archive-date=2012-10-30|url-status=dead}}</ref>
==अक्का के बारे में प्रकाशन==
==अक्का के बारे में प्रकाशन==
अक्का के बारे में कई किताबें हैं जैसे:
अक्का के बारे में कई किताबें हैं जैसे:
Line 59: Line 59:
*पी. हॉलर की "एक्टर्स इन स्काला"<ref>{{cite book|last=Haller|first=Philipp|title=स्काला में अभिनेता|year=2012|publisher=Artima|isbn=978-0981531656|pages=169}}</ref>
*पी. हॉलर की "एक्टर्स इन स्काला"<ref>{{cite book|last=Haller|first=Philipp|title=स्काला में अभिनेता|year=2012|publisher=Artima|isbn=978-0981531656|pages=169}}</ref>
*एन. रायचौधुरी की "स्काला इन एक्शन"<ref>{{cite book|last=Raychaudhuri|first=Nilanjan|title=एक्शन में स्काला|year=2013|publisher=Manning Publications|isbn=978-1935182757|pages=416}}</ref>
*एन. रायचौधुरी की "स्काला इन एक्शन"<ref>{{cite book|last=Raychaudhuri|first=Nilanjan|title=एक्शन में स्काला|year=2013|publisher=Manning Publications|isbn=978-1935182757|pages=416}}</ref>
*डी. वैम्पलर की "जावा डेवलपर्स के लिए कार्यात्मक प्रोग्रामिंग"<ref>{{cite book|last=Wampler|first=Dean|title=जावा डेवलपर्स के लिए कार्यात्मक प्रोग्रामिंग|url=https://archive.org/details/functionalprogra0000wamp/page/90|url-access=registration|year=2011|publisher=O'Reilly Media|isbn=978-1449311032|pages=[https://archive.org/details/functionalprogra0000wamp/page/90 90]}}</ref>
*डी. वैम्पलर की "जावा डेवलपर्स के लिए फंक्शनल प्रोग्रामिंग"<ref>{{cite book|last=Wampler|first=Dean|title=जावा डेवलपर्स के लिए कार्यात्मक प्रोग्रामिंग|url=https://archive.org/details/functionalprogra0000wamp/page/90|url-access=registration|year=2011|publisher=O'Reilly Media|isbn=978-1449311032|pages=[https://archive.org/details/functionalprogra0000wamp/page/90 90]}}</ref>
*ए अलेक्जेंडर की "स्काला कुकबुक"<ref>{{cite book|last=Alexander|first=Alvin|title=स्काला कुकबुक|year=2013|publisher=O'Reilly Media|isbn=978-1449339616|pages=722}}</ref>
*ए अलेक्जेंडर की "स्काला कुकबुक"<ref>{{cite book|last=Alexander|first=Alvin|title=स्काला कुकबुक|year=2013|publisher=O'Reilly Media|isbn=978-1449339616|pages=722}}</ref>
*वी. सुब्रमण्यम की "प्रोग्रामिंग कॉनकरेंसी ऑन द जेवीएम"<ref>{{cite book|last=Subramaniam|first=Venkat|title=Programming Concurrency on the JVM: Mastering Synchronization, STM, and Actors|url=https://archive.org/details/programmingconcu00subr_404|url-access=limited|year=2011|publisher=Pragmatic Bookshelf|isbn=978-1934356760|pages=[https://archive.org/details/programmingconcu00subr_404/page/n281 280]}}</ref>
*वी. सुब्रमण्यम की "प्रोग्रामिंग कॉनकरेंसी ऑन द जेवीएम"<ref>{{cite book|last=Subramaniam|first=Venkat|title=Programming Concurrency on the JVM: Mastering Synchronization, STM, and Actors|url=https://archive.org/details/programmingconcu00subr_404|url-access=limited|year=2011|publisher=Pragmatic Bookshelf|isbn=978-1934356760|pages=[https://archive.org/details/programmingconcu00subr_404/page/n281 280]}}</ref>

Revision as of 16:38, 23 July 2023

Akka
Original author(s)Jonas Bonér
Developer(s)Lightbend
Initial releaseJuly 2009 (2009-07)
Stable release
2.6.19 / March 21, 2022; 2 years ago (2022-03-21)[1]
Written inScala
Operating systemCross-platform
PlatformJava Virtual Machine
Licensemultiple
Websiteakka.io

अक्का (टूलकिट) एक सोर्स-उपलब्ध टूलकिट और रनटाइम है, जो जावा प्लेटफार्म पर कॉन्करेन्सी और डिस्ट्रीब्यूशन अनुप्रयोगों के निर्माण को सरल बनाता है। अक्का कॉन्करेन्सी के लिए कई प्रोग्रामिंग मॉडल का सपोर्ट करता है, लेकिन यह एर्लांग से प्रेरणा लेकर एक्टर-आधारित कॉन्करेन्सी पर बल देता है।[2]

जावा (प्रोग्रामिंग लैंग्वेज) और स्काला (प्रोग्रामिंग लैंग्वेज) दोनों के लिए लैंग्वेज बाइंडिंग उपस्थित हैं। अक्का स्काला में लिखा गया है, और स्काला 2.10 के अनुसार, स्काला स्टैंडर्ड लाइब्रेरी में एक्टर्स को अक्का के पक्ष में डेप्रिकेट किया गया है।[3]

इतिहास

फिलिप हॉलर द्वारा लिखित एक एक्टर इम्प्लीमेंटेशन, स्काला 2.1.7 के भाग के रूप में जुलाई 2006 में ड्राईवेन किया गया था।[4] 2008 तक स्काला काम्प्लेक्स सर्वर अनुप्रयोगों में उपयोग के लिए अट्रक्टिंग अटेंशन कर रहा था, लेकिन कॉन्करेन्सी अभी भी सामान्यतः थ्रेड बनाकर प्राप्त की जाती थी, जो मेमोरी साझा करती थी और लॉक का उपयोग करके आवश्यक होने पर सिंक्रनाइज़ होती थी। उस दृष्टिकोण की कठिनाइयों से अवगत और अत्यधिक कॉन्करेन्सी, घटना-ड्राईवेन अनुप्रयोगों को लिखने के लिए एर्लांग प्रोग्रामिंग लैंग्वेज के लाइब्रेरी सपोर्ट से प्रेरित होकर, स्वीडिश प्रोग्रामर जोनास बोनर ने स्काला और जावा में समान क्षमताओं को लाने के लिए अक्का बनाया था, बोनर ने 2009 के प्रारंभिक में अक्का पर काम करना प्रारंभ किया था।[5] और उसी वर्ष जून में इसके लिए अपना दृष्टिकोण लिखा,[6] पहली पब्लिक रिलीज़ अक्का 0.5 थी, जिसकी घोषणा जनवरी 2010 में की गई थी। अक्का अब प्ले फ्रेमवर्क और स्काला प्रोग्रामिंग लैंग्वेज के साथ लाइटबैंड प्लेटफॉर्म का भाग है।

सितंबर 2022 में, लाइटबैंड ने घोषणा की कि अक्का अपने लाइसेंस को फ्री सॉफ्टवेयर लाइसेंस, अपाचे लाइसेंस 2.0 से एक प्रोप्रीएटरी सॉफ्टवेयर सोर्स-उपलब्ध लाइसेंस में परिवर्तित कर देता है। जिसे बिज़नेस सोर्स लाइसेंस (बीएसएल) के रूप में जाना जाता है। बीएसएल के अनुसार कोई भी नवीनतम कोड तीन साल के पश्चात अपाचे लाइसेंस के अनुसार उपलब्ध हो जाता है।

विशिष्ठ सुविधाएं

अक्का एक्टर्स पर आधारित अनुप्रयोगों को भिन्न करने वाले मुख्य बिंदु हैं:

  • कॉन्करेन्सी मैसेज-बेस्ड और ऐसिंक्रोनोस है, सामान्यतः कोई म्यूटेबल डेटा साझा नहीं किया जाता है, और कोई सिंक्रनाइज़ेशन प्रिमिटिव का उपयोग नहीं किया जाता है, अक्का एक्टर मॉडल लागू करता है।
  • एक्टर्स के इंटरेक्ट करने की विधि एक समान है, चाहे वे एक ही होस्ट पर हों या भिन्न-भिन्न होस्ट पर हों, सीधे संचार कर रहे हों या रूटिंग सुविधाओं के माध्यम से, कुछ थ्रेड्स या कई थ्रेड्स पर होते हों, इस प्रकार के विवरणों को कॉन्फ़िगरेशन मैकेनिज्म के माध्यम से डिप्लॉयमेंट के समय परिवर्तिता किया जा सकता है, जिससे यह अनुमति मिलती है, कि एक प्रोग्राम को बिना किसी संशोधन के बढ़ाया जा सकता है (अधिक शक्तिशाली सर्वरों का उपयोग करने के लिए) तथा (अधिक सर्वरों का उपयोग करने के लिए) और बाहर किया जाता है।
  • प्रोग्राम विफलताओं के संबंध में एक्टर्स को पदानुक्रमित रूप से व्यवस्थित किया जाता है, जिन्हें एक एक्टर के पर्यवेक्षक द्वारा नियंत्रित की जाने वाली घटनाओं के रूप में माना जाता है (इस बात की भरोसा किए बिना कि किस एक्टर ने विफलता को ट्रिगर करने वाला संदेश भेजा था।) एरलांग के विपरीत, अक्का अभिभावकीय की निरीक्षण को लागू करता है, जिसका अर्थ है, कि प्रत्येक एक्टर को उसके मूल एक्टर द्वारा बनाया और पर्यवेक्षण किया जाता है।

अक्का में एक मॉड्यूलर संरचना है, जिसमें एक कोर मॉड्यूल एक्टर प्रदान करता है। अन्य मॉड्यूल एक्टर्स के नेटवर्क डिस्ट्रीब्यूशन, क्लस्टर (अभिकलन) सपोर्ट, कमांड और इवेंट सोर्सिंग, विभिन्न तृतीय-पक्ष सिस्टम (जैसे अपाचे कैमल, ज़ीरोएमक्यू) के साथ एकीकरण, और यहां तक ​​कि फ्यूचर्स और एजेंटों जैसे अन्य कॉन्करेन्सी मॉडल के लिए सपोर्ट जैसी सुविधाएं जोड़ने के लिए उपलब्ध हैं।

परियोजना संरचना

विक्टर क्लैंग सितंबर 2011 में अक्का परियोजना के लिए तकनीकी प्रमुख बन गए, जब दिसंबर 2012 में विक्टर लाइटबैंड में इंजीनियरिंग के निदेशक बने, तो रोलैंड कुह्न अक्का के लिए तकनीकी प्रमुख बन गए, विकास का मुख्य भाग लाइटबैंड में नियोजित एक कोर टीम द्वारा किया जाता है,[7] जो एक सक्रिय समुदाय द्वारा समर्थित है।[8] वर्तमान जोर क्लस्टर (अभिकलन) सपोर्ट बढ़ाने पर है।

अन्य लाइब्रेरीों से संबंध

अक्का के आसपास एक पारिस्थितिकी मैकेनिज्म बनाने के लिए अन्य रूपरेखाएँ और टूलकिट इमरज्ड् हैं:

  • स्प्रे टूलकिट[9] को अक्का का उपयोग करके इम्प्लिमेंटेड किया गया है, और इसमें एक एचटीटीपी सर्वर के साथ-साथ संबंधित सुविधाएं भी सम्मलित हैं, जैसे कि रेस्टफुल अप्लिकेशन प्रोग्रामिंग इंटरफ़ेस बनाने के लिए एक डोमेन-विशिष्ट लैंग्वेज (डीएसएल) होता है।
  • वेब एप्लिकेशन विकसित करने के लिए प्ले फ्रेमवर्क अक्का के साथ एकीकरण प्रदान करता है।[10]
  • संस्करण 1.6 तक, स्पार्क (क्लस्टर कंप्यूटिंग फ्रेमवर्क) ने नोड्स के बीच संचार के लिए अक्का का उपयोग किया था।[11]
  • सोको वेब सर्वर लाइब्रेरी अक्का अनुप्रयोगों के लिए रेस्ट एपीआई के इम्प्लीमेंटेशन का सपोर्ट करती है।[12]
  • इवेंट सोर्स[13] लाइब्रेरी अक्का एक्टर्स के लिए इवेंट-ड्राईवेन आर्किटेक्चर (डोमेन-ड्राईवेन डिज़ाइन भी देख सकते है) सपोर्ट प्रदान करती है।
  • लोड-परीक्षण वेब सर्वर के लिए गैटलिंग (सॉफ्टवेयर) स्ट्रेस परीक्षण उपकरण अक्का पर बनाया गया है।[14]
  • स्कालाट्रा वेब फ्रेमवर्क अक्का के साथ एकीकरण की प्रस्तुत करता है।[15]
  • वाडिन वेब ऐप डेवलपमेंट फ्रेमवर्क अक्का के साथ एकीकृत हो सकता है।[16]
  • अपाचे फ़्लिंक (डिस्ट्रीब्यूशन स्ट्रीम और बैच डेटा प्रोसेसिंग के लिए प्लेटफ़ॉर्म) आरपीसी सिस्टम अक्का का उपयोग करके बनाया गया है।[17] लेकिन v1.14 से भिन्न किया गया है।[18]
  • प्रतिक्रियाशील माइक्रोसर्विसेज के निर्माण के लिए लैगोम फ्रेमवर्क अक्का के शीर्ष पर लागू किया गया है।[19]

GitHub पर 250 से अधिक पब्लिक परियोजनाएँ पंजीकृत हैं, जो अक्का का उपयोग करती हैं।[20]

अक्का के बारे में प्रकाशन

अक्का के बारे में कई किताबें हैं जैसे:

  • अक्का एसेंशियल्स[21]
  • अक्का कोड उदाहरण
  • अक्का कंकरेंसी[22]
  • जैएक्शन में अक्का[23]
  • इफेक्टिव अक्का[24]
  • अक्का 2.0 के साथ कंपोजेबल फ्यूचर्स, जिसमें जावा, स्काला और अक्का कोड उदाहरण सम्मलित हैं[25]

अक्का इसमें भी सम्मलित हैं:

  • पी. हॉलर की "एक्टर्स इन स्काला"[26]
  • एन. रायचौधुरी की "स्काला इन एक्शन"[27]
  • डी. वैम्पलर की "जावा डेवलपर्स के लिए फंक्शनल प्रोग्रामिंग"[28]
  • ए अलेक्जेंडर की "स्काला कुकबुक"[29]
  • वी. सुब्रमण्यम की "प्रोग्रामिंग कॉनकरेंसी ऑन द जेवीएम"[30]
  • एम. बर्नहार्ट का "रिएक्टिव वेब एप्लिकेशन"[31]

अक्का के व्यावसायिक उपयोग का वर्णन करने वाले कई वेब लेखों के अतिरिक्त,[32][33] इसके बारे में अवलोकन लेख भी हैं।[34][35]

संदर्भ

  1. Akka Team. "Akka 2.6.19 Released". Retrieved 5 August 2022.
  2. Akka Team. "स्काला अभिनेता परिचय". Retrieved 17 September 2018.
  3. Jovanovic, Vojin. "स्काला एक्टर्स माइग्रेशन गाइड". Archived from the original on 5 December 2013. Retrieved 13 March 2013.
  4. "स्काला संस्करण इतिहास - पुराने संस्करण". scala-lang.org. 2009-02-16. Archived from the original on 2013-01-04.
  5. Jonas Bonér (2009-02-16). "init प्रोजेक्ट सेटअप". github.com.
  6. Jonas Bonér (2009-07-12). "v0.5". github.com.
  7. "एक टीम के रूप में". akka.io. Retrieved 6 June 2013.
  8. "योगदानकर्ताओं की सूची के रूप में". github.com. Retrieved 6 June 2013.
  9. Doenitz, Mathias. "स्प्रे टूलकिट". spray.io. Retrieved 6 June 2013.
  10. "Play framework documentation: Integrating with Akka". playframework.com. Retrieved 6 June 2013.
  11. "स्पार्क परियोजना स्रोत". github.com. Retrieved 6 June 2013.
  12. "सोको वेब सर्वर". sockoweb.org. Retrieved 6 June 2013.
  13. "इवेंटसोर्स्ड लाइब्रेरी". eligosource. Retrieved 6 June 2013.
  14. "गैटलिंग तनाव परीक्षण उपकरण". github.com. Retrieved 6 June 2013.
  15. "जैसे-स्कैलाट्रा". scalatra.org. Retrieved 2022-10-06.
  16. "अक्का में वादिन". Vaadin.com. Retrieved 26 April 2014.
  17. "अपाचे फ्लिंक - जीत के लिए लाइक करें!". flink.apache.org. Retrieved 2 December 2015.
  18. "Apache Flink: Scala Free in One Fifteen". flink.apache.org. Retrieved 2022-04-22.
  19. "Lagom - Integrating with Akka".
  20. Tasharofi, Samira. "GitHub पर एक अभिनेता प्रोजेक्ट कॉर्पस के रूप में". cs.illinois.edu. Archived from the original on 2012-10-30. Retrieved 2013-06-06.
  21. Gupta, Munish K. (2012). आवश्यक चीजों की तरह. Packt Publishing. p. 334. ISBN 978-1849518284.
  22. Wyatt, Derek (2013). कॉन्करेंसी की तरह. Artima. p. 521. ISBN 978-0981531663.
  23. Roestenburg, Raymond (2013). जैसा कि एक्शन में है. Manning Publications. p. 475. ISBN 978-1617291012.
  24. Allen, Jamie (2013). के रूप में प्रभावी. O'Reilly Media. p. 74. ISBN 978-1449360078.
  25. Slinn, Michael (2012). Composable Futures with Akka 2.0. Micronautics Research. p. 178. ISBN 978-0984278923.
  26. Haller, Philipp (2012). स्काला में अभिनेता. Artima. p. 169. ISBN 978-0981531656.
  27. Raychaudhuri, Nilanjan (2013). एक्शन में स्काला. Manning Publications. p. 416. ISBN 978-1935182757.
  28. Wampler, Dean (2011). जावा डेवलपर्स के लिए कार्यात्मक प्रोग्रामिंग. O'Reilly Media. pp. 90. ISBN 978-1449311032.
  29. Alexander, Alvin (2013). स्काला कुकबुक. O'Reilly Media. p. 722. ISBN 978-1449339616.
  30. Subramaniam, Venkat (2011). Programming Concurrency on the JVM: Mastering Synchronization, STM, and Actors. Pragmatic Bookshelf. pp. 280. ISBN 978-1934356760.
  31. Bernhardt, Manuel (2016). Reactive Web Applications: Covers Play, Akka and Reactive Streams. Manning Publications. p. 328. ISBN 9781633430099.
  32. Darrow, Barb (25 June 2012). "जुनिपर नेटवर्क स्काला के साथ साइन इन करता है". gigaom.com. Retrieved 8 June 2013.
  33. Ross, David. "स्काला, अक्का और प्ले के साथ क्लाउट एपीआई को स्केल करना". Retrieved 8 June 2013.
  34. Haines, Stephen (May 8, 2013). "Open source Java projects: Akka". JavaWorld. Retrieved 2020-07-15.
  35. "Java Magazin 6.13". jaxenter.de. Archived from the original on 13 August 2013. Retrieved 8 June 2013.


बाहरी संबंध