अक्का (टूलकिट)

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

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

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

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

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

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

अन्य पुस्तकालयों से संबंध
अक्का के आसपास एक पारिस्थितिकी तंत्र बनाने के लिए अन्य रूपरेखाएँ और टूलकिट उभरे हैं: GitHub पर 250 से अधिक सार्वजनिक परियोजनाएँ पंजीकृत हैं जो अक्का का उपयोग करती हैं।
 * स्प्रे टूलकिट अक्का का उपयोग करके कार्यान्वित किया गया है और इसमें एक वेब सर्वर के साथ-साथ संबंधित सुविधाएं भी शामिल हैं, जैसे कि RESTful अप्लिकेशन प्रोग्रामिंग अंतरफलक बनाने के लिए एक डोमेन-विशिष्ट भाषा (DSL)
 * वेब अनुप्रयोग विकसित करने के लिए रूपरेखा खेलें  अक्का के साथ एकीकरण प्रदान करता है
 * संस्करण 1.6 तक, स्पार्क (क्लस्टर कंप्यूटिंग ढांचा)  नोड्स के बीच संचार के लिए अक्का का उपयोग करता था
 * सोको वेब सर्वर लाइब्रेरी अक्का अनुप्रयोगों के लिए REST API के कार्यान्वयन का समर्थन करती है
 * घटना स्रोत लाइब्रेरी अक्का अभिनेताओं के लिए घटना-संचालित वास्तुकला (डोमेन-संचालित डिज़ाइन भी देखें) समर्थन प्रदान करती है
 * लोड-टेस्टिंग वेब सर्वर के लिए गैटलिंग (सॉफ्टवेयर) स्ट्रेस टेस्ट टूल अक्का पर बनाया गया है
 * स्केलाट्रा वेब फ्रेमवर्क अक्का के साथ एकीकरण प्रदान करता है।
 * वादिन वेब ऐप डेवलपमेंट फ्रेमवर्क अक्का के साथ एकीकृत हो सकता है
 * अपाचे फ़्लैश (वितरित स्ट्रीम और बैच डेटा प्रोसेसिंग के लिए प्लेटफॉर्म) आरपीसी सिस्टम अक्का का उपयोग करके बनाया गया है लेकिन v1.14 से पृथक किया गया है।
 * प्रतिक्रियाशील माइक्रोसर्विसेज के निर्माण के लिए लैगोम (फ्रेमवर्क) ढांचा अक्का के शीर्ष पर लागू किया गया है।

लाइक के बारे में प्रकाशन
इसके बारे में कई किताबें हैं जैसे: जैसा कि इसमें भी विशेषताएं हैं: अक्का के व्यावसायिक उपयोग का वर्णन करने वाले कई वेब लेखों के अलावा, इसके बारे में अवलोकन लेख भी हैं।
 * आवश्यक वस्तुओं की तरह
 * कोड उदाहरणों की तरह
 * समान समवर्तीता
 * जैसा कि क्रिया में है
 * प्रभावी के रूप में
 * अक्का 2.0 के साथ कंपोजेबल फ्यूचर्स, जिसमें जावा, स्काला और अक्का कोड उदाहरण शामिल हैं
 * पी। स्केल में हॉलर के अभिनेता
 * एन। एक्शन में रायचौधरी का स्काला
 * डी। जावा डेवलपर्स के लिए वैम्प्लर की कार्यात्मक प्रोग्रामिंग
 * एक। अलेक्जेंडर की स्काला कुकबुक
 * वी. जेवीएम पर सुब्रमण्यम की प्रोग्रामिंग कॉनकरेंसी
 * एम। बर्नहार्ट के प्रतिक्रियाशील वेब अनुप्रयोग

बाहरी संबंध

 * Official website for Akka