अक्का (टूलकिट)
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 थी,[7] जनवरी 2010 में घोषणा की गई।[8] अक्का अब प्ले फ्रेमवर्क और स्काला (प्रोग्रामिंग भाषा) प्रोग्रामिंग भाषा के साथ लाइटबेंड प्लेटफॉर्म का हिस्सा है।
सितंबर 2022 में, लाइटबेंड ने घोषणा की कि अक्का अपने लाइसेंस को मुफ्त सॉफ्टवेयर सॉफ़्टवेयर लाइसेंस अपाचे लाइसेंस | अपाचे लाइसेंस 2.0 से एक मालिकाना सॉफ्टवेयर स्रोत-उपलब्ध सॉफ्टवेयर | स्रोत-उपलब्ध लाइसेंस में बदल देगा, जिसे व्यवसाय स्रोत लाइसेंस (बीएसएल) के रूप में जाना जाता है। बीएसएल के तहत कोई भी नया कोड तीन साल के बाद अपाचे लाइसेंस के तहत उपलब्ध हो जाएगा।[9]
विशिष्ठ विशेषताएं
अक्का अभिनेताओं पर आधारित अनुप्रयोगों को अलग करने वाले मुख्य बिंदु हैं:
- समवर्ती संदेश-आधारित और अतुल्यकालिक है: आम तौर पर कोई परिवर्तनशील डेटा साझा नहीं किया जाता है और कोई सिंक्रनाइज़ेशन प्राइमेटिव का उपयोग नहीं किया जाता है; अक्का अभिनेता मॉडल लागू करता है।
- अभिनेताओं के बातचीत करने का तरीका एक समान है, चाहे वे एक ही होस्ट पर हों या अलग-अलग होस्ट पर हों, सीधे संचार कर रहे हों या रूटिंग सुविधाओं के माध्यम से, कुछ थ्रेड्स या कई थ्रेड्स पर चल रहे हों, आदि। ऐसे विवरणों को कॉन्फ़िगरेशन तंत्र के माध्यम से तैनाती के समय बदला जा सकता है, किसी प्रोग्राम को बिना किसी संशोधन के स्केल अप (अधिक शक्तिशाली सर्वर का उपयोग करने के लिए) और आउट (अधिक सर्वर का उपयोग करने के लिए) की अनुमति देना।
- कार्यक्रम विफलताओं के संबंध में अभिनेताओं को पदानुक्रमित रूप से व्यवस्थित किया जाता है, जिन्हें एक अभिनेता के पर्यवेक्षक द्वारा नियंत्रित की जाने वाली घटनाओं के रूप में माना जाता है (इस बात पर ध्यान दिए बिना कि किस अभिनेता ने विफलता को ट्रिगर करने वाला संदेश भेजा था)। एरलांग के विपरीत, अक्का माता-पिता की निगरानी को लागू करता है, जिसका अर्थ है कि प्रत्येक अभिनेता को उसके मूल अभिनेता द्वारा बनाया और पर्यवेक्षण किया जाता है।
अक्का में एक मॉड्यूलर संरचना है, जिसमें एक कोर मॉड्यूल अभिनेता प्रदान करता है। अन्य मॉड्यूल अभिनेताओं के नेटवर्क वितरण, क्लस्टर (कंप्यूटिंग) समर्थन, कमांड और इवेंट सोर्सिंग, विभिन्न तृतीय-पक्ष सिस्टम (जैसे अपाचे ऊँट , ज़ीरोएमक्यू) के साथ एकीकरण, और यहां तक कि फ्यूचर्स जैसे अन्य समवर्ती मॉडल के लिए समर्थन जैसी सुविधाएं जोड़ने के लिए उपलब्ध हैं। और वादे और एजेंट।
परियोजना संरचना
विक्टर क्लैंग सितंबर 2011 में अक्का परियोजना के लिए तकनीकी प्रमुख बन गए। जब दिसंबर 2012 में विक्टर लाइटबेंड में इंजीनियरिंग के निदेशक बने, तो रोलैंड कुह्न अक्का के लिए तकनीकी प्रमुख बन गए। विकास का मुख्य भाग लाइटबेंड में कार्यरत एक कोर टीम द्वारा किया जाता है,[10] एक सक्रिय समुदाय द्वारा समर्थित।[11] वर्तमान जोर क्लस्टर (कंप्यूटिंग) समर्थन बढ़ाने पर है।
अन्य पुस्तकालयों से संबंध
अक्का के आसपास एक पारिस्थितिकी तंत्र बनाने के लिए अन्य रूपरेखाएँ और टूलकिट उभरे हैं:
- स्प्रे टूलकिट[12] अक्का का उपयोग करके कार्यान्वित किया गया है और इसमें एक वेब सर्वर के साथ-साथ संबंधित सुविधाएं भी शामिल हैं, जैसे कि RESTful अप्लिकेशन प्रोग्रामिंग अंतरफलक बनाने के लिए एक डोमेन-विशिष्ट भाषा (DSL)
- वेब अनुप्रयोग विकसित करने के लिए रूपरेखा खेलें अक्का के साथ एकीकरण प्रदान करता है[13]
- संस्करण 1.6 तक, स्पार्क (क्लस्टर कंप्यूटिंग ढांचा) नोड्स के बीच संचार के लिए अक्का का उपयोग करता था[14]
- सोको वेब सर्वर लाइब्रेरी अक्का अनुप्रयोगों के लिए REST API के कार्यान्वयन का समर्थन करती है[15]
- घटना स्रोत[16] लाइब्रेरी अक्का अभिनेताओं के लिए घटना-संचालित वास्तुकला (डोमेन-संचालित डिज़ाइन भी देखें) समर्थन प्रदान करती है
- लोड-टेस्टिंग वेब सर्वर के लिए गैटलिंग (सॉफ्टवेयर) स्ट्रेस टेस्ट टूल अक्का पर बनाया गया है[17]
- स्केलाट्रा वेब फ्रेमवर्क अक्का के साथ एकीकरण प्रदान करता है।[18]
- वादिन वेब ऐप डेवलपमेंट फ्रेमवर्क अक्का के साथ एकीकृत हो सकता है[19]
- अपाचे फ़्लैश (वितरित स्ट्रीम और बैच डेटा प्रोसेसिंग के लिए प्लेटफॉर्म) आरपीसी सिस्टम अक्का का उपयोग करके बनाया गया है [20] लेकिन v1.14 से पृथक किया गया है।[21]
- प्रतिक्रियाशील माइक्रोसर्विसेज के निर्माण के लिए लैगोम (फ्रेमवर्क) ढांचा अक्का के शीर्ष पर लागू किया गया है।[22]
GitHub पर 250 से अधिक सार्वजनिक परियोजनाएँ पंजीकृत हैं जो अक्का का उपयोग करती हैं।[23]
लाइक के बारे में प्रकाशन
इसके बारे में कई किताबें हैं जैसे:
- आवश्यक वस्तुओं की तरह[24]
- कोड उदाहरणों की तरह
- समान समवर्तीता[25]
- जैसा कि क्रिया में है[26]
- प्रभावी के रूप में[27]
- अक्का 2.0 के साथ कंपोजेबल फ्यूचर्स, जिसमें जावा, स्काला और अक्का कोड उदाहरण शामिल हैं[28]
जैसा कि इसमें भी विशेषताएं हैं:
- पी। स्केल में हॉलर के अभिनेता[29]
- एन। एक्शन में रायचौधरी का स्काला[30]
- डी। जावा डेवलपर्स के लिए वैम्प्लर की कार्यात्मक प्रोग्रामिंग[31]
- एक। अलेक्जेंडर की स्काला कुकबुक[32]
- वी. जेवीएम पर सुब्रमण्यम की प्रोग्रामिंग कॉनकरेंसी[33]
- एम। बर्नहार्ट के प्रतिक्रियाशील वेब अनुप्रयोग[34]
अक्का के व्यावसायिक उपयोग का वर्णन करने वाले कई वेब लेखों के अलावा,[35][36] इसके बारे में अवलोकन लेख भी हैं।[37][38]
संदर्भ
- ↑ 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.
- ↑ Bonér, Jonas. "एक अभिनेता कर्नेल के रूप में". scala-language@googlegroups.com. Archived from the original on 2016-03-04. Retrieved 2017-07-13.
- ↑ Jonas Bonér (2009-07-12). "v0.5". github.com.
- ↑ Jonas Bonér (2010-01-04). "अक्का का परिचय - अभिनेताओं के माध्यम से सरल स्केलेबिलिटी, दोष-सहिष्णुता, समवर्ती और रिमोटिंग". jonasboner.com.
- ↑ Bonér, Jonas. "हम अक्का के लिए लाइसेंस क्यों बदल रहे हैं?". Retrieved 7 September 2022.
- ↑ "एक टीम के रूप में". 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.