अक्का (टूलकिट): Difference between revisions
(Created page with "{{Short description|Open-source runtime}} {{About|the software library for application development||Akka (disambiguation){{!}}Akka}} {{Infobox software | title = Akka | name =...") |
No edit summary |
||
Line 1: | Line 1: | ||
{{Short description|Open-source runtime}} | {{Short description|Open-source runtime}} | ||
{{About| | {{About|अनुप्रयोग विकास के लिए सॉफ़्टवेयर लाइब्रेरी||अक्का (बहुविकल्पी){{!}}अक्का}} | ||
{{Infobox software | {{Infobox software | ||
| title = Akka | | title = Akka | ||
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> | ||
[[जावा (प्रोग्रामिंग भाषा)]] और [[स्काला (प्रोग्रामिंग भाषा)]] दोनों के लिए भाषा बाइंडिंग मौजूद हैं। अक्का स्काला में लिखा गया है, और स्काला 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 तक स्काला जटिल सर्वर अनुप्रयोगों में उपयोग के लिए ध्यान आकर्षित कर रहा था, लेकिन समवर्तीता अभी भी आम तौर पर थ्रेड बनाकर हासिल की जाती थी जो मेमोरी साझा करती थी और ताले का उपयोग करके आवश्यक होने पर सिंक्रनाइज़ होती थी। उस दृष्टिकोण की कठिनाइयों से अवगत और अत्यधिक समवर्ती, घटना-संचालित अनुप्रयोगों को लिखने के लिए एर्लांग | फिलिप हॉलर द्वारा लिखित एक अभिनेता कार्यान्वयन, स्काला 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 थी,<ref name=":0" /> जिसकी घोषणा जनवरी 2010 में की गई थी। अक्का अब [[प्ले फ्रेमवर्क]] और स्काला प्रोग्रामिंग भाषा के साथ लाइटबेंड प्लेटफॉर्म का हिस्सा है। | ||
सितंबर 2022 में, लाइटबेंड ने घोषणा की कि अक्का अपने लाइसेंस को [[सॉफ्टवेयर लाइसेंस|मुफ्त सॉफ्टवेयर लाइसेंस]], अपाचे लाइसेंस 2.0 से एक [[मालिकाना सॉफ्टवेयर]] स्रोत-उपलब्ध लाइसेंस में बदल देता है। जिसे [[ व्यवसाय स्रोत लाइसेंस |व्यवसाय स्रोत लाइसेंस]] (बीएसएल) के रूप में जाना जाता है। बीएसएल के तहत कोई भी नया कोड तीन साल के बाद अपाचे लाइसेंस के तहत उपलब्ध हो जाता है। | |||
==विशिष्ठ विशेषताएं== | ==विशिष्ठ विशेषताएं== | ||
अक्का अभिनेताओं पर आधारित अनुप्रयोगों को अलग करने वाले मुख्य बिंदु हैं: | अक्का अभिनेताओं पर आधारित अनुप्रयोगों को अलग करने वाले मुख्य बिंदु हैं: | ||
* समवर्ती संदेश-आधारित और अतुल्यकालिक है | * समवर्ती संदेश-आधारित और अतुल्यकालिक है, आम तौर पर कोई परिवर्तनशील डेटा साझा नहीं किया जाता है, और कोई सिंक्रनाइज़ेशन प्राइमेटिव का उपयोग नहीं किया जाता है, अक्का अभिनेता मॉडल लागू करता है। | ||
* अभिनेताओं के बातचीत करने का तरीका एक समान है, चाहे वे एक ही होस्ट पर हों या अलग-अलग होस्ट पर हों, सीधे संचार कर रहे हों या रूटिंग सुविधाओं के माध्यम से, कुछ थ्रेड्स या कई थ्रेड्स पर | * अभिनेताओं के बातचीत करने का तरीका एक समान है, चाहे वे एक ही होस्ट पर हों या अलग-अलग होस्ट पर हों, सीधे संचार कर रहे हों या रूटिंग सुविधाओं के माध्यम से, कुछ थ्रेड्स या कई थ्रेड्स पर होते है, इस तरह के विवरणों को कॉन्फ़िगरेशन तंत्र के माध्यम से तैनाती के समय बदला जा सकता है, जिससे अनुमति मिलती है, एक प्रोग्राम को बिना किसी संशोधन के बढ़ाया जाना चाहिए (अधिक शक्तिशाली सर्वरों का उपयोग करने के लिए) और बाहर किया जाता है (अधिक सर्वरों का उपयोग करने के लिए)। | ||
* कार्यक्रम विफलताओं के संबंध में अभिनेताओं को पदानुक्रमित रूप से व्यवस्थित किया जाता है, जिन्हें एक अभिनेता के पर्यवेक्षक द्वारा नियंत्रित की जाने वाली घटनाओं के रूप में माना जाता है (इस बात | * कार्यक्रम विफलताओं के संबंध में अभिनेताओं को पदानुक्रमित रूप से व्यवस्थित किया जाता है, जिन्हें एक अभिनेता के पर्यवेक्षक द्वारा नियंत्रित की जाने वाली घटनाओं के रूप में माना जाता है (इस बात की परवाह किए बिना कि किस अभिनेता ने विफलता को ट्रिगर करने वाला संदेश भेजा था)। एरलांग के विपरीत, अक्का माता-पिता की निगरानी को लागू करता है, जिसका अर्थ है कि प्रत्येक अभिनेता को उसके मूल अभिनेता द्वारा बनाया और पर्यवेक्षण किया जाता है। | ||
अक्का में एक मॉड्यूलर संरचना है, जिसमें एक कोर मॉड्यूल अभिनेता प्रदान करता है। अन्य मॉड्यूल अभिनेताओं के नेटवर्क वितरण, [[क्लस्टर (कंप्यूटिंग)]] समर्थन, कमांड और इवेंट सोर्सिंग, विभिन्न तृतीय-पक्ष सिस्टम (जैसे [[ अपाचे ऊँट ]], [[ज़ीरोएमक्यू]]) के साथ एकीकरण, और यहां तक | अक्का में एक मॉड्यूलर संरचना है, जिसमें एक कोर मॉड्यूल अभिनेता प्रदान करता है। अन्य मॉड्यूल अभिनेताओं के नेटवर्क वितरण, [[क्लस्टर (कंप्यूटिंग)]] समर्थन, कमांड और इवेंट सोर्सिंग, विभिन्न तृतीय-पक्ष सिस्टम (जैसे [[ अपाचे ऊँट |अपाचे ऊँट]], [[ज़ीरोएमक्यू]]) के साथ एकीकरण, और यहां तक कि फ्यूचर्स और एजेंटों जैसे अन्य समवर्ती मॉडल के लिए समर्थन जैसी सुविधाएं जोड़ने के लिए उपलब्ध हैं। | ||
==परियोजना संरचना== | ==परियोजना संरचना== | ||
विक्टर क्लैंग सितंबर 2011 में अक्का परियोजना के लिए तकनीकी प्रमुख बन | विक्टर क्लैंग सितंबर 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> | ||
* संस्करण 1.6 तक, [[ स्पार्क (क्लस्टर कंप्यूटिंग ढांचा) ]] नोड्स के बीच संचार के लिए अक्का का उपयोग | * संस्करण 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=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://scalatra.org/guides/2.8/async/akka.html|publisher=scalatra.org|accessdate=2022-10-06}}</ref> | ||
*[[ | *[[वाडिन]] वेब ऐप डेवलपमेंट फ्रेमवर्क अक्का के साथ एकीकृत हो सकता है।<ref>{{cite web|title=अक्का में वादिन|url=https://vaadin.com/blog/-/blogs/vaadin-in-akka|publisher=Vaadin.com|accessdate=26 April 2014}}</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> | ||
[[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> | ||
==लाइक के बारे में प्रकाशन== | ==लाइक के बारे में प्रकाशन== | ||
अक्का बारे में कई किताबें हैं जैसे: | |||
* | *अक्का एसेंशियल्स<ref>{{cite book|last=Gupta|first=Munish K.|title=आवश्यक चीजों की तरह|year=2012|publisher=Packt Publishing|isbn=978-1849518284|pages=334|url=http://www.packtpub.com/akka-java-applications-essentials/book}}</ref> | ||
*कोड | *अक्का कोड उदाहरण | ||
* | *अक्का कंकरेंसी<ref>{{cite book|last=Wyatt|first=Derek|title=कॉन्करेंसी की तरह|year=2013|publisher=Artima|isbn=978-0981531663|pages=521}}</ref> | ||
* | *जैएक्शन में अक्का<ref>{{cite book|last=Roestenburg|first=Raymond|title=जैसा कि एक्शन में है|year=2013|publisher=Manning Publications|isbn=978-1617291012|pages=475}}</ref> | ||
* प्रभावी | * प्रभावी अक्का<ref>{{cite book|last=Allen|first=Jamie|title=के रूप में प्रभावी|year=2013|publisher=O'Reilly Media|isbn=978-1449360078|pages=74}}</ref> | ||
*अक्का 2.0 के साथ कंपोजेबल फ्यूचर्स, जिसमें जावा, स्काला और अक्का कोड उदाहरण शामिल हैं<ref>{{cite book|last=Slinn|first=Michael|title=Composable Futures with Akka 2.0|year=2012|publisher=Micronautics Research|isbn=978-0984278923|pages=178}}</ref> | *अक्का 2.0 के साथ कंपोजेबल फ्यूचर्स, जिसमें जावा, स्काला और अक्का कोड उदाहरण शामिल हैं<ref>{{cite book|last=Slinn|first=Michael|title=Composable Futures with Akka 2.0|year=2012|publisher=Micronautics Research|isbn=978-0984278923|pages=178}}</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=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=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=Bernhardt|first=Manuel|title=Reactive Web Applications: Covers Play, Akka and Reactive Streams|year=2016|publisher=Manning Publications|isbn= 9781633430099|pages=328}}</ref> | ||
अक्का के व्यावसायिक उपयोग का वर्णन करने वाले कई वेब लेखों के अलावा,<ref>{{cite web|last=Darrow|first=Barb|title=जुनिपर नेटवर्क स्काला के साथ साइन इन करता है|date=25 June 2012|url=http://gigaom.com/2012/06/25/typesafe-pushes-scala-as-top-language-juniper-apparently-agrees/|publisher=gigaom.com|accessdate=8 June 2013}}</ref><ref>{{cite web|last=Ross|first=David|title=स्काला, अक्का और प्ले के साथ क्लाउट एपीआई को स्केल करना|url=http://corp.klout.com/blog/2012/10/scaling-the-klout-api-with-scala-akka-and-play/|accessdate=8 June 2013}}</ref> | अक्का के व्यावसायिक उपयोग का वर्णन करने वाले कई वेब लेखों के अलावा,<ref>{{cite web|last=Darrow|first=Barb|title=जुनिपर नेटवर्क स्काला के साथ साइन इन करता है|date=25 June 2012|url=http://gigaom.com/2012/06/25/typesafe-pushes-scala-as-top-language-juniper-apparently-agrees/|publisher=gigaom.com|accessdate=8 June 2013}}</ref><ref>{{cite web|last=Ross|first=David|title=स्काला, अक्का और प्ले के साथ क्लाउट एपीआई को स्केल करना|url=http://corp.klout.com/blog/2012/10/scaling-the-klout-api-with-scala-akka-and-play/|accessdate=8 June 2013}}</ref> इसके बारे में अवलोकन लेख भी हैं।<ref>{{cite web |last1=Haines |first1=Stephen |date=2013-05-08 |df=mdy |url=https://www.infoworld.com/article/2078775/open-source-java-projects-akka.html |title=Open source Java projects: Akka |work=[[JavaWorld]] |accessdate=2020-07-15}}</ref><ref>{{cite web|title=Java Magazin 6.13 |url=https://jaxenter.de/magazines/Java-Magazin-613 |publisher=jaxenter.de |accessdate=8 June 2013 |url-status=dead |archiveurl=https://web.archive.org/web/20130813144520/https://jaxenter.de/magazines/Java-Magazin-613 |archivedate=13 August 2013 }}</ref> | ||
इसके बारे में अवलोकन लेख भी हैं।<ref>{{cite web |last1=Haines |first1=Stephen |date=2013-05-08 |df=mdy |url=https://www.infoworld.com/article/2078775/open-source-java-projects-akka.html |title=Open source Java projects: Akka |work=[[JavaWorld]] |accessdate=2020-07-15}}</ref><ref>{{cite web|title=Java Magazin 6.13 |url=https://jaxenter.de/magazines/Java-Magazin-613 |publisher=jaxenter.de |accessdate=8 June 2013 |url-status=dead |archiveurl=https://web.archive.org/web/20130813144520/https://jaxenter.de/magazines/Java-Magazin-613 |archivedate=13 August 2013 }}</ref> | |||
==संदर्भ== | ==संदर्भ== |
Revision as of 23:22, 17 July 2023
File:Akka toolkit logo.svg | |
Original author(s) | Jonas Bonér |
---|---|
Developer(s) | Lightbend |
Initial release | July 2009 |
Stable release | 2.6.19
/ March 21, 2022[1] |
Written in | Scala |
Operating system | Cross-platform |
Platform | Java Virtual Machine |
License | multiple |
Website | akka |
अक्का एक स्रोत-उपलब्ध टूलकिट और रनटाइम है, जो जावा प्लेटफार्म पर समवर्ती और वितरित अनुप्रयोगों के निर्माण को सरल बनाता है। अक्का समवर्तीता के लिए कई प्रोग्रामिंग मॉडल का समर्थन करता है, लेकिन यह एर्लांग से प्रेरणा लेकर अभिनेता-आधारित समवर्ती पर जोर देता है।[2]
जावा (प्रोग्रामिंग भाषा) और स्काला (प्रोग्रामिंग भाषा) दोनों के लिए भाषा बाइंडिंग मौजूद हैं। अक्का स्काला में लिखा गया है, और स्काला 2.10 के अनुसार, स्काला मानक पुस्तकालय में अभिनेताओं को अक्का के पक्ष में पदावनत किया गया है।[3]
इतिहास
फिलिप हॉलर द्वारा लिखित एक अभिनेता कार्यान्वयन, स्काला 2.1.7 के भाग के रूप में जुलाई 2006 में जारी किया गया था।[4] 2008 तक स्काला जटिल सर्वर अनुप्रयोगों में उपयोग के लिए ध्यान आकर्षित कर रहा था, लेकिन समवर्तीता अभी भी आम तौर पर थ्रेड बनाकर हासिल की जाती थी, जो मेमोरी साझा करती थी और ताले का उपयोग करके आवश्यक होने पर सिंक्रनाइज़ होती थी। उस दृष्टिकोण की कठिनाइयों से अवगत और अत्यधिक समवर्ती, घटना-संचालित अनुप्रयोगों को लिखने के लिए एर्लांग प्रोग्रामिंग भाषा के पुस्तकालय समर्थन से प्रेरित होकर, स्वीडिश प्रोग्रामर जोनास बोनर ने स्काला और जावा में समान क्षमताओं को लाने के लिए अक्का बनाया, बोनर ने 2009 की शुरुआत में अक्का पर काम करना शुरू किया,[5] और उसी वर्ष जून में इसके लिए अपना दृष्टिकोण लिखा,[6] पहली सार्वजनिक रिलीज़ अक्का 0.5 थी,[6] जिसकी घोषणा जनवरी 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]
संदर्भ
- ↑ Akka Team. "Akka 2.6.19 Released". Retrieved 5 August 2022.
- ↑ Akka Team. "स्काला अभिनेता परिचय". Retrieved 17 September 2018.
- ↑ Jovanovic, Vojin. "स्काला एक्टर्स माइग्रेशन गाइड". Archived from the original on 5 December 2013. Retrieved 13 March 2013.
- ↑ "स्काला संस्करण इतिहास - पुराने संस्करण". scala-lang.org. 2009-02-16. Archived from the original on 2013-01-04.
- ↑ Jonas Bonér (2009-02-16). "init प्रोजेक्ट सेटअप". github.com.
- ↑ 6.0 6.1 Jonas Bonér (2009-07-12). "v0.5". github.com.
- ↑ "एक टीम के रूप में". akka.io. Retrieved 6 June 2013.
- ↑ "योगदानकर्ताओं की सूची के रूप में". github.com. Retrieved 6 June 2013.
- ↑ Doenitz, Mathias. "स्प्रे टूलकिट". spray.io. Retrieved 6 June 2013.
- ↑ "Play framework documentation: Integrating with Akka". playframework.com. Retrieved 6 June 2013.
- ↑ "स्पार्क परियोजना स्रोत". github.com. Retrieved 6 June 2013.
- ↑ "सोको वेब सर्वर". sockoweb.org. Retrieved 6 June 2013.
- ↑ "इवेंटसोर्स्ड लाइब्रेरी". eligosource. Retrieved 6 June 2013.
- ↑ "गैटलिंग तनाव परीक्षण उपकरण". github.com. Retrieved 6 June 2013.
- ↑ "जैसे-स्कैलाट्रा". scalatra.org. Retrieved 2022-10-06.
- ↑ "अक्का में वादिन". Vaadin.com. Retrieved 26 April 2014.
- ↑ "अपाचे फ्लिंक - जीत के लिए लाइक करें!". flink.apache.org. Retrieved 2 December 2015.
- ↑ "Apache Flink: Scala Free in One Fifteen". flink.apache.org. Retrieved 2022-04-22.
- ↑ "Lagom - Integrating with Akka".
- ↑ Tasharofi, Samira. "GitHub पर एक अभिनेता प्रोजेक्ट कॉर्पस के रूप में". cs.illinois.edu. Archived from the original on 2012-10-30. Retrieved 2013-06-06.
- ↑ Gupta, Munish K. (2012). आवश्यक चीजों की तरह. Packt Publishing. p. 334. ISBN 978-1849518284.
- ↑ Wyatt, Derek (2013). कॉन्करेंसी की तरह. Artima. p. 521. ISBN 978-0981531663.
- ↑ Roestenburg, Raymond (2013). जैसा कि एक्शन में है. Manning Publications. p. 475. ISBN 978-1617291012.
- ↑ Allen, Jamie (2013). के रूप में प्रभावी. O'Reilly Media. p. 74. ISBN 978-1449360078.
- ↑ Slinn, Michael (2012). Composable Futures with Akka 2.0. Micronautics Research. p. 178. ISBN 978-0984278923.
- ↑ Haller, Philipp (2012). स्काला में अभिनेता. Artima. p. 169. ISBN 978-0981531656.
- ↑ Raychaudhuri, Nilanjan (2013). एक्शन में स्काला. Manning Publications. p. 416. ISBN 978-1935182757.
- ↑ Wampler, Dean (2011). जावा डेवलपर्स के लिए कार्यात्मक प्रोग्रामिंग. O'Reilly Media. pp. 90. ISBN 978-1449311032.
- ↑ Alexander, Alvin (2013). स्काला कुकबुक. O'Reilly Media. p. 722. ISBN 978-1449339616.
- ↑ Subramaniam, Venkat (2011). Programming Concurrency on the JVM: Mastering Synchronization, STM, and Actors. Pragmatic Bookshelf. pp. 280. ISBN 978-1934356760.
- ↑ Bernhardt, Manuel (2016). Reactive Web Applications: Covers Play, Akka and Reactive Streams. Manning Publications. p. 328. ISBN 9781633430099.
- ↑ Darrow, Barb (25 June 2012). "जुनिपर नेटवर्क स्काला के साथ साइन इन करता है". gigaom.com. Retrieved 8 June 2013.
- ↑ Ross, David. "स्काला, अक्का और प्ले के साथ क्लाउट एपीआई को स्केल करना". Retrieved 8 June 2013.
- ↑ Haines, Stephen (May 8, 2013). "Open source Java projects: Akka". JavaWorld. Retrieved 2020-07-15.
- ↑ "Java Magazin 6.13". jaxenter.de. Archived from the original on 13 August 2013. Retrieved 8 June 2013.