உங்களிடம் ஏற்கனவே உங்கள் மென்பொருள் உள்ளது, ஆனால் உங்கள் தொழில்நுட்ப பயனர்கள் இயங்குதளத்தை விரிவுபடுத்துவதற்கு இன்னும் பயனுள்ள முறை உங்களுக்குத் தேவை.
பெரும்பாலான ஜாவா டெவலப்பர்களுக்கு OSGi நன்கு தெரிந்திருந்தாலும், அதை உங்கள் தயாரிப்பில் ஒருங்கிணைப்பது கடினமான பணியாகத் தோன்றலாம். OSGi இன் துல்லியமான செயல்பாடுகள் பற்றிய தெளிவின்மை முன்னோக்கி செல்லும் பாதையை மேலும் குழப்புகிறது.
அவர்கள் பரிசோதனை செய்ய விரும்பும் எதற்கும் மாறாக, OSGi பரந்த கடலில் பல ஜாவா டெவலப்பர்களிடம் பயணம் செய்ய முயற்சிப்பதைப் போல உணர்கிறது.
இந்தக் கட்டுரையானது OSGi Felix ஸ்பிரிங் டுடோரியலை நேரடியான நிரலைப் பயன்படுத்தி, அதன் நன்மைகள் மற்றும் பிற முக்கிய விவரங்களைப் பயன்படுத்தி உங்களுக்கு அறிமுகப்படுத்தும்.
எனவே OSGi என்றால் என்ன?
தொகுதிகள் மற்றும் கூறுகளை உருவாக்குவது மற்றும் விநியோகிப்பது OSGi (ஓபன் சர்வீஸ் கேட்வே முன்முயற்சி) எனப்படும் ஜாவா கட்டமைப்பால் சாத்தியமாகும்.
இது ஃபங்ஷன் என்காப்சுலேஷன் மற்றும் லூஸ் கப்ளிங் ஆகியவற்றை வலியுறுத்துகிறது, இது டெவலப்பர்களுக்கு பல நன்மைகளை வழங்குகிறது, மூல குறியீடுகள் மற்றும் முடிவில்லா சார்புகள் தேவையில்லாத சோதனைகளுக்கு இடையில் உடனடியாக மாற்றக்கூடிய மட்டு செயல்பாடு உட்பட.
OSGi எவ்வாறு செயல்படுகிறது?
ஜாவாவுக்கான டைனமிக் கூறு அமைப்பு OSGi எனப்படும் விவரக்குறிப்புகளின் தொகுப்பால் வரையறுக்கப்படுகிறது. இந்த விவரக்குறிப்புகள் ஒரு மேம்பாட்டு அணுகுமுறையை செயல்படுத்துகின்றன, அங்கு ஒரு பயன்பாடு பல பகுதிகளிலிருந்து உருவாக்கப்பட்டு பின்னர் மூட்டைகளாக தொகுக்கப்படுகிறது.
உள்ளூர் மற்றும் பிணைய அடிப்படையிலான சேவைகள் தொடர்பு கொள்ள இந்தக் கூறுகளால் பயன்படுத்தப்படுகின்றன. நிரலின் முக்கிய குறியீட்டை சாத்தியமான அளவுக்கு சுருக்கமாக உருவாக்குவதே நோக்கமாகும். இந்த குறியீடு மற்றும் பல கூறுகளுக்கு இடையே உயர் இணைப்பு சாத்தியமாகும்.
பயன்பாட்டின் மீண்டும் பயன்படுத்தக்கூடிய கட்டிட கூறுகள் கூறுகள் என்று அழைக்கப்படுகின்றன. உங்கள் இ-காமர்ஸ் இணையதளத்திற்கான ஷாப்பிங் கார்ட் அல்லது உங்கள் பணியாளர் மேலாண்மை அமைப்புக்கான ஊதிய விண்ணப்பம் போன்ற அம்சங்களைப் பற்றி சிந்தியுங்கள்.
கூறுகள் OSGi ஐப் பயன்படுத்தி மற்ற கூறுகளிலிருந்து அவற்றின் செயலாக்கங்களை மறைக்க முடியும் மற்றும் சேவைகள் மூலம் தேவையான தரவை மட்டுமே வழங்க முடியும்.
இது கூறுகளை அணுக முடியாத தரவை தற்செயலாக மாற்றுவதைத் தடுக்கிறது மற்றும் சார்புகளை நிர்வகிக்கிறது.
OSGi பயன்பாட்டில் உள்ள கூறுகளுக்கு இடையிலான அனைத்து இணைப்புகளும் சிறந்த உலகில் சேவைகள் மூலம் செய்யப்படுகின்றன. ஒரு ஜாவா தொகுப்பில் சேவைகளுக்காக குறிப்பிடப்பட்ட API உள்ளது.
சேவை வழங்குநர்கள் மற்றும் வாடிக்கையாளர்களுக்கு இடையேயான ஒத்துழைப்பிற்கு வகுப்புகள் மற்றும்/அல்லது இடைமுகங்களின் பயன்பாடு தேவைப்படுகிறது, இது API ஐ உருவாக்குகிறது.
அனைத்து OSGi கூறுகளும் மூட்டைகளில் ஒன்றாக தொகுக்கப்பட்டுள்ளன, அவை ஒவ்வொன்றும் செயல்படத் தேவையான ஆதாரங்களை உள்ளடக்கியது. சுற்றுச்சூழலில் இருந்து தங்களுக்கு என்ன தேவை மற்றும் அவற்றின் திறன் என்ன என்பதில் மூட்டைகள் தெளிவாக உள்ளன.
நன்மைகள்
- OSGi பயன்பாடுகளுக்கு வெளிப்புற தொகுப்பு களஞ்சியங்களுக்கான அணுகல் உள்ளது.
- கட்டமைப்பு மட்டத்தில் சேவை சார்ந்த வடிவமைப்பை அனுமதிக்கிறது.
- மூன்றாம் தரப்பு நூலகங்களைத் தரப்படுத்துதல் மற்றும் ஒருங்கிணைப்பதை எளிதாக்குவதுடன், பயன்பாட்டுத் தொகுப்புகளின் பதிப்புகள் மற்றும் சார்புகளை நிர்வகிப்பதை இது சாத்தியமாக்குகிறது.
- பயன்பாடுகள் மாறிவரும் தேவைகளுக்கு ஏற்றவாறு மாற்றியமைக்கக்கூடியவை, மேலும் எடுத்துச் செல்லக்கூடியவை மற்றும் மறுபொறியமைப்பிற்கு விரைவானவை.
- A வலை பயன்பாடு Java EE புரோகிராமிங் மாடலுடன் கட்டமைப்பின் ஒருங்கிணைப்புக்கு நன்றி, டைனமிக் வாழ்நாள் முழுவதும் பதிப்பு செய்யப்பட்ட OSGi தொகுப்புகளின் குழுவாகப் பயன்படுத்தப்படலாம்.
- பயன்பாட்டின் ஒரு பகுதியாக மூன்றாம் தரப்பு நூலகமாக நிறுவப்படுவதற்குப் பதிலாக, ஃபிரேம்வொர்க், ஸ்பிரிங் ஃபிரேம்வொர்க்கின் பிரகடன அசெம்பிளி மற்றும் நெறிப்படுத்தப்பட்ட யூனிட் சோதனையை தரப்படுத்தப்பட்ட வடிவத்தில் வழங்குகிறது, இது பயன்பாட்டு சேவையக இயக்க நேரத்தின் ஒரு பகுதியாக வழங்கப்படுகிறது.
- டைனமிக் லைஃப்சைக்கிள்களுடன் கூடிய பல பதிப்புத் தொகுப்புகளால் உருவாக்கப்பட்ட கார்ப்பரேட் பயன்பாடுகளுக்கு, கட்டமைப்பு தனிமைப்படுத்தலை வழங்குகிறது.
- பல பயன்பாடுகளால் பயன்படுத்தப்படும் பகிரப்பட்ட பொதுவான மற்றும் பதிப்பு செய்யப்பட்ட தொகுப்புகளை சேமிக்கக்கூடிய ஒரு ஒருங்கிணைந்த தொகுப்பு களஞ்சியத்தை இது கொண்டுள்ளது, ஒவ்வொரு பயன்பாடும் ஒவ்வொரு பகிரப்பட்ட நூலகத்தின் தனி நகலைப் பயன்படுத்துவதைத் தடுக்கிறது.
OSGi ஃபெலிக்ஸ் வசந்தத்துடன் தொடங்குதல்
வளங்களைப் பெறுதல்
Apache Karaf இன் மிகச் சமீபத்திய பதிப்பைப் பதிவிறக்குவதன் மூலம் இந்த தளம், நாங்கள் எங்கள் OSGi சாகசத்தைத் தொடங்கலாம்.
அப்பாச்சி ஃபெலிக்ஸ் அடிப்படையில், OSGi விவரக்குறிப்பின் அப்பாச்சி செயல்படுத்தல், அப்பாச்சி கராஃப் OSGi-அடிப்படையிலான பயன்பாடுகளுக்கு ஒரு தளத்தை வழங்குகிறது.
கராஃப், ஃபெலிக்ஸின் மேல் பல்வேறு பயனுள்ள அம்சங்களை வழங்குகிறது, இது OSGi உடன் நம்மைப் பழக்கப்படுத்திக்கொள்ள உதவுகிறது, கட்டளை வரி இடைமுகம் போன்ற தளத்துடன் தொடர்பு கொள்ள உதவுகிறது.
மூட்டைகளுக்கான நுழைவுப் புள்ளி
OSGi சூழலில் இயக்கப்படுவதற்கு முன், பயன்பாடு OSGi தொகுப்பாக தொகுக்கப்பட வேண்டும். கூடுதலாக, விண்ணப்ப நுழைவு புள்ளி குறிப்பிடப்பட வேண்டும்; இது நிலையான பொது நிலையான வெற்றிட முக்கிய (ஸ்ட்ரிங்[] ஆர்க்ஸ்) செயல்பாடு அல்ல.
எனவே உருவாக்குவதன் மூலம் தொடங்குவோம் "ஹலோ வேர்ல்ட்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 தலைப்பாக இல்லாவிட்டாலும், தனியார்-தொகுப்பு தலைப்பு, தொகுப்பில் தொகுப்பைச் சேர்க்குமாறு செருகுநிரலுக்கு அறிவுறுத்துகிறது, ஆனால் அதை மற்ற செருகுநிரல்களுக்கு அணுக முடியாது. தொகுப்பை உருவாக்க mvn நிறுவல் கட்டளை பயன்படுத்தப்பட வேண்டும்.
தொகுப்பை நிறுவுதல் மற்றும் இயக்குதல்
இந்த கட்டளையை இயக்குவதன் மூலம் Karaf ஐ ஆரம்பிக்கலாம்:
"KARAF HOME" என்பது கராஃப் அமைக்கப்பட்ட கோப்புறையைக் குறிக்கிறது. கராஃப் கன்சோல் ப்ராம்ட் தோன்றும் போது மூட்டை நிறுவ பின்வரும் கட்டளையைப் பயன்படுத்தலாம்:
உள்ளூர் மேவன் களஞ்சியத்தைப் பயன்படுத்துவது எப்படி கராஃப் மூட்டையை ஏற்றச் சொல்லப்படுகிறது.
தொகுப்பின் எண் ஐடியைத் திருப்பிக் கொடுத்து, கராஃப் அதை எழுதுகிறார். இந்த ஐடி முன்பு எத்தனை தொகுப்புகள் நிறுவப்பட்டுள்ளன என்பதைப் பொறுத்து மாறுபடலாம். தொகுப்பு இப்போது வெற்றிகரமாக நிறுவப்பட்டது, அதைத் தொடங்குவதற்கான கட்டளை பின்வருமாறு:
நீங்கள் தொகுப்பைத் தொடங்கும் தருணத்தில், "ஹலோ வேர்ல்ட் பை ஜே" காண்பிக்கப்படும். இப்போது இதைப் பயன்படுத்தி மூட்டையை நிறுத்தி அகற்றலாம்:
கன்சோல் "குட்பை வேர்ல்ட் பை ஜே" என்பதைக் காட்டுகிறது.
தீர்மானம்
டெவலப்பர்கள் OSGi ஐப் பயன்படுத்தி பிரதான நிரலின் பிற கூறுகளிலிருந்து பாதுகாப்பாகவும் தனிமைப்படுத்தப்பட்டதாகவும் வைத்திருக்கும் அதே வேளையில், ஏற்கனவே உள்ள இணையப் பயன்பாட்டிற்கு புதிய செயல்பாட்டை எளிதாகச் சேர்க்கலாம்.
இந்த இடுகையில் OSGi பற்றி அறிந்து கொண்டோம், அது எவ்வாறு செயல்படுகிறது, அதன் நன்மைகள் மற்றும் நேரடியான நிரல். உங்கள் சொந்த பயன்பாட்டில் OSGi ஐ இணைப்பது கடினம் அல்ல.
மகிழ்ச்சியான குறியீட்டு!
ஒரு பதில் விடவும்