ඔබ සතුව දැනටමත් ඔබේ මෘදුකාංගය ඇත, නමුත් ඔබට තවමත් ඔබේ තාක්ෂණික පරිශීලකයින්ට වේදිකාව පුළුල් කිරීමට වඩාත් ඵලදායී ක්රමයක් අවශ්ය වේ.
OSGi බොහෝ ජාවා සංවර්ධකයින් විසින් හොඳින් හඳුනන නමුත්, එය ඔබේ නිෂ්පාදනයට අනුකලනය කිරීම දුෂ්කර කාර්යයක් ලෙස පෙනේ. OSGi හි නිරවද්ය ක්රියාකාරිත්වය පිළිබඳ පැහැදිලි නොමැතිකම ඉදිරි මාවත තවදුරටත් අවුල් කරයි.
ඔවුන් අත්හදා බැලීමට කැමති ඕනෑම දෙයකට වෙනස්ව, බොහෝ ජාවා සංවර්ධකයින් වෙත පුළුල් මුහුදේ යාත්රා කිරීමට උත්සාහ කිරීමක් ලෙස OSGi හට හැඟේ.
මෙම ලිපිය ඔබට සරල වැඩසටහනක් භාවිතා කරමින් OSGi Felix වසන්ත නිබන්ධනය වෙත ඔබව හඳුන්වා දෙන අතර එහි වාසි සහ අනෙකුත් වැදගත් තොරතුරු හරහා යන්න.
ඉතින් OSGi යනු කුමක්ද?
මොඩියුල සහ සංරචක නිර්මාණය කිරීම සහ බෙදා හැරීම OSGi (Open Service Gateway Initiative) ලෙස හඳුන්වන ජාවා රාමුව මගින් සිදු කෙරේ.
එය ප්රභව කේත සහ නිමක් නැති පරායත්තතා අවශ්ය නොවන පරීක්ෂණ අතර පහසුවෙන් මාරු කළ හැකි මොඩියුලර් ක්රියාකාරීත්වය ඇතුළුව සංවර්ධකයින්ට වාසි කිහිපයක් ලබා දෙන ක්රියාකාරී සංග්රහය සහ ලිහිල් සම්බන්ධ කිරීම අවධාරණය කරයි.
OSGi ක්රියා කරන්නේ කෙසේද?
ජාවා සඳහා ගතික සංරචක පද්ධතියක් OSGi ලෙස හැඳින්වෙන පිරිවිතර සමූහයක් මගින් අර්ථ දැක්වේ. මෙම පිරිවිතර මඟින් යෙදුමක් කොටස් ගණනාවකින් ගොඩනගා පසුව මිටි බවට ඇසුරුම් කරන සංවර්ධන ප්රවේශයක් සක්රීය කරයි.
ප්රාදේශීය සහ ජාල පාදක සේවාවන් සන්නිවේදනය සඳහා මෙම සංරචක භාවිතා කරයි. වැඩසටහනේ මූලික කේතය හැකි තරම් සංයුක්ත කිරීම අරමුණයි. මෙම කේතය සහ සංරචක කිහිපයක් අතර ඉහළ සම්බන්ධ කිරීම කළ හැකිය.
යෙදුමේ නැවත භාවිතා කළ හැකි ගොඩනැඟිලි මූලද්රව්ය සංරචක ලෙස හැඳින්වේ. ඔබේ ඊ-වාණිජ්යය වෙබ් අඩවිය සඳහා සාප්පු කරත්තයක් හෝ ඔබේ කාර්ය මණ්ඩල කළමනාකරණ පද්ධතිය සඳහා වැටුප් අයැදුම්පතක් වැනි විශේෂාංග ගැන සිතන්න.
සංරචක වලට ඒවායේ ක්රියාත්මක කිරීම් වෙනත් සංරචක වලින් සැඟවීමට සහ අවශ්ය දත්ත සේවා හරහා පමණක් සැපයීමට OSGi භාවිතා කළ හැක.
මෙය සංරචක වලට ප්රවේශ නොවිය යුතු දත්ත නොදැනුවත්ව වෙනස් කිරීමෙන් වළක්වන අතර පරායත්තතා කළමනාකරණය කරයි.
OSGi යෙදුමක සංරචක අතර ඇති සියලුම සම්බන්ධතා පරමාදර්ශී ලෝකයක සේවා හරහා සිදු කෙරේ. ජාවා පැකේජයක සේවා සඳහා නිශ්චිතව දක්වා ඇති API අඩංගු වේ.
සේවා සපයන්නන් සහ පාරිභෝගිකයින් අතර සහයෝගීතාවයට API සෑදෙන පන්ති සහ/හෝ අතුරුමුහුණත් භාවිතා කිරීම අවශ්ය වේ.
සියලුම OSGi සංරචක මිටිවල එකට ඇසුරුම් කර ඇති අතර, ඒ සෑම එකක්ම ක්රියා කිරීමට අවශ්ය සම්පත් ඇතුළත් වේ. පරිසරයෙන් ඔවුන්ට අවශ්ය දේ සහ ඒවාට ඇති හැකියාව පිළිබඳව මිටි ඉතා පැහැදිලිය.
ප්රතිලාභ
- OSGi යෙදුම් වලට බාහිර බණ්ඩල් ගබඩා වෙත ප්රවේශය ඇත.
- රාමුව මොඩියුල මට්ටමින් සේවා-නැඹුරු නිර්මාණයට ඉඩ දෙයි.
- තෙවන පාර්ශවීය පුස්තකාල ප්රමිතිකරණයට සහ ඒකාබද්ධ කිරීමට පහසු කිරීමට අමතරව යෙදුම් මිටිවල අනුවාද සහ පරායත්තතා කළමනාකරණය කිරීමට එය හැකි වේ.
- යෙදුම් වෙනස්වන ඉල්ලීම් වලට වඩා අනුවර්තනය වේ, වඩා අතේ ගෙන යා හැකි සහ නැවත සකස් කිරීමට ඉක්මන් වේ.
- A වෙබ් යෙදුම Java EE ක්රමලේඛන ආකෘතිය සමඟ රාමුව ඒකාබද්ධ කිරීම හේතුවෙන් ගතික ආයුකාලයක් සහිත අනුවාදිත OSGi මිටි සමූහයක් ලෙස යෙදවිය හැක.
- යෙදුමේ කොටසක් ලෙස තෙවන පාර්ශ්ව පුස්තකාලයක් ලෙස ස්ථාපනය කිරීම වෙනුවට, රාමුව යෙදුම් සේවාදායක ධාවන කාලයෙහි කොටසක් ලෙස සපයනු ලබන ප්රමිතිගත ආකෘතියකින් වසන්ත රාමුවේ ප්රකාශන එකලස් කිරීම සහ විධිමත් ඒකක පරීක්ෂා කිරීම සපයයි.
- ගතික ජීවන චක්ර සහිත අනුවාද මිටි කිහිපයකින් සැදුම්ලත් ආයතනික යෙදුම් සඳහා, රාමුව හුදකලා කිරීම ලබා දෙයි.
- යෙදුම් කිහිපයක් භාවිතා කරන හවුල් පොදු සහ අනුවාදිත මිටි ගබඩා කළ හැකි ඒකාබද්ධ මිටි ගබඩාවක් එහි අඩංගු වේ, එක් එක් යෙදුම බෙදාගත් පුස්තකාලයේ වෙනම පිටපතක් යෙදවීමෙන් වළක්වයි.
OSGi Felix වසන්තය සමඟ ආරම්භ කිරීම
සම්පත් ලබා ගැනීම
Apache Karaf ගේ නවතම අනුවාදය බාගැනීමෙන් මේ වෙබ් අඩවිය, අපට අපගේ OSGi වික්රමය ආරම්භ කළ හැකිය.
Apache Felix මත පදනම්ව, OSGi පිරිවිතරයේ Apache ක්රියාත්මක කිරීම, Apache Karaf OSGi-පාදක යෙදුම් සඳහා වේදිකාවක් සපයයි.
වේදිකාව සමඟ සන්නිවේදනය කිරීමට අපට හැකි විධාන රේඛා අතුරුමුහුණතක් වැනි, OSGi සමඟ අපව හුරු කරවීමට Karaf විවිධ ප්රයෝජනවත් විශේෂාංග සපයයි.
මිටි සඳහා ඇතුල් වීමේ ස්ථානය
OSGi පරිසරයක ධාවනය කිරීමට පෙර යෙදුමක් OSGi බණ්ඩලයක් ලෙස ඇසුරුම් කළ යුතුය. අතිරේකව, අයදුම්පත් ඇතුළත් කිරීමේ ස්ථානය සඳහන් කළ යුතුය; එය සම්මත පොදු ස්ථිතික void main(String[] args) ශ්රිතය නොවේ.
එබැවින් අපි නිර්මාණය කිරීම ආරම්භ කරමු "හෙලෝ වර්ල්ඩ්OSGi මත පදනම් වූ යෙදුම.
අපි මූලික OSGi API පරායත්තතාවයක් පිහිටුවීමෙන් ආරම්භ කරමු:
OSGi ධාවන කාලයට පරායත්තතාවයට ප්රවේශය ඇත, එබැවින් මිටියට එය අඩංගු වීමට අවශ්ය නොවේ. එබැවින්, එය සපයා ඇති බව සලකුණු කර ඇත.
දැන් අපි සරල HelloWorld පන්තිය නිර්මාණය කරමු:
මිටි සඳහා ඇතුල් වීමේ ස්ථාන ලෙස ක්රියා කරන පන්ති OSGi-සපයා ඇති BundleActivator අතුරුමුහුණත ක්රියාත්මක කළ යුතුය.
මෙම පන්තිය අඩංගු බණ්ඩලය දියත් කරන විට, OSGi වේදිකාව ආරම්භක() ශ්රිතය අමතයි. අනෙක් පැත්තෙන්, බණ්ඩලය නතර කිරීමට ටික වේලාවකට පෙර, නැවතුම් () ශ්රිතය හැඳින්වේ.
සෑම බණ්ඩලයකම තිබිය හැක්කේ එක් BundleActivator එකක් පමණක් බව අමතක නොකළ යුතුය. මෙම මාර්ග දෙකටම ලබා දී ඇති BundleContext වස්තුව භාවිතයෙන් OSGi ධාවන කාලය සමඟ සන්නිවේදනය කළ හැක.
බණ්ඩලයක් නිර්මාණය කිරීම
අවශ්ය වෙනස්කම් සිදු කිරීමෙන් pom.xml සැබෑ OSGi මිටියක් බවට පත් කරන්න.
අපගේ ඉලක්කය මිටියක් නිෂ්පාදනය කිරීම බව අප මුලින්ම පැහැදිලිව ප්රකාශ කළ යුතුය.
පසුව, අපි Apache Felix ප්රජාවේ අනුග්රහය ඇතිව, HelloWorld පන්තිය OSGi බණ්ඩලයක් ලෙස ඇසුරුම් කිරීමට maven-bundle-plugin භාවිතා කරමු:
අපි බණ්ඩලයේ MANIFEST ගොනුවට ඇතුළත් කිරීමට බලාපොරොත්තු වන OSGi ශීර්ෂවල අගයන් උපදෙස් කොටසේ දක්වා ඇත.
Bundle-Activator යනු ඇත්ත වශයෙන්ම BundleActivator විසඳුමේ නිසි සුදුසුකම් ලත් නම වන අතර එය බණ්ඩලය ආරම්භ කිරීමට සහ නැවැත්වීමට භාවිතා කරනු ඇත. එය හුදෙක් නිර්මාණය කරන ලද පන්තියට අනුකූල වේ.
එය OSGi ශීර්ෂයක් නොවන අතර, පුද්ගලික පැකේජ ශීර්ෂය මඟින් පැකේජය බණ්ඩලයට එක් කරන ලෙස ප්ලගිනයට උපදෙස් දෙන නමුත් එය වෙනත් ප්ලගීනවලට ප්රවේශ විය නොහැක. bundle එක සෑදීමට mvn install විධානය භාවිතා කල යුතුය.
බණ්ඩලය ස්ථාපනය කිරීම සහ ධාවනය කිරීම
මෙම විධානය ක්රියාත්මක කිරීමෙන් Karaf ආරම්භ කරමු:
එහිදී "KARAF HOME" යන්නෙන් අදහස් කරන්නේ Karaf පිහිටුවා ඇති ෆෝල්ඩරයයි. Karaf කොන්සෝල විමසුම දිස්වන විට බණ්ඩලය ස්ථාපනය කිරීමට අපට පහත විධානය භාවිතා කළ හැකිය:
දේශීය Maven ගබඩාව භාවිතා කිරීම යනු Karaf හට බණ්ඩලය පැටවීමට පවසන ආකාරයයි.
බණ්ඩලයේ සංඛ්යාත්මක හැඳුනුම්පත ආපසු ලබා දෙමින්, කරෆ් එය ලියයි. මෙම හැඳුනුම්පත කලින් ස්ථාපනය කර ඇති මිටි ගණන අනුව වෙනස් විය හැක. බණ්ඩලය දැන් සාර්ථකව ස්ථාපනය කර ඇති අතර, එය දියත් කිරීමේ විධානය පහත පරිදි වේ:
ඔබ පැකේජය දියත් කරන මොහොතේ, "Hello World by Jay" දර්ශනය වේ. අපට දැන් භාවිතා කර බණ්ඩලය නවතා ඉවත් කළ හැක:
කොන්සෝලය "Goodbye World by Jay" පෙන්වයි.
නිගමනය
සංවර්ධකයින්ට OSGi භාවිතයෙන් ප්රධාන වැඩසටහනේ අනෙකුත් සංරචක වලින් ආරක්ෂිතව සහ හුදකලාව තබා ගනිමින් පවතින වෙබ් යෙදුමකට පහසුවෙන් නව ක්රියාකාරීත්වයක් එක් කළ හැකිය.
OSGi එය ක්රියා කරන ආකාරය, එහි වාසි සහ සරල වැඩසටහනක් ඇතුළුව අපි මෙම පෝස්ට් එකෙන් ඉගෙන ගෙන ඇත. ඔබේම යෙදුමට OSGi ඇතුළත් කිරීම අපහසු නැත.
සතුටු කේතනය!
ඔබමයි