మీరు ఇప్పటికే మీ సాఫ్ట్వేర్ను కలిగి ఉన్నారు, కానీ ప్లాట్ఫారమ్ను విస్తరించడానికి మీ సాంకేతిక వినియోగదారులను ఎనేబుల్ చేయడానికి మీకు ఇంకా మరింత ప్రభావవంతమైన పద్ధతి అవసరం.
OSGi చాలా మంది జావా డెవలపర్లకు బాగా తెలిసినప్పటికీ, దాన్ని మీ ఉత్పత్తిలో ఏకీకృతం చేయడం చాలా కష్టమైన పనిగా అనిపించవచ్చు. OSGi యొక్క ఖచ్చితమైన పని గురించి స్పష్టత లేకపోవడం రహదారిని మరింత గందరగోళానికి గురి చేస్తుంది.
వారు ప్రయోగాలు చేయాలనుకుంటున్న వాటికి భిన్నంగా, OSGi చాలా మంది జావా డెవలపర్లకు విస్తృత సముద్రంలో ప్రయాణించడానికి ప్రయత్నిస్తున్నట్లు అనిపిస్తుంది.
ఈ కథనం మీకు OSGi ఫెలిక్స్ స్ప్రింగ్ ట్యుటోరియల్ని నేరుగా ప్రోగ్రామ్ని ఉపయోగించి పరిచయం చేస్తుంది మరియు దాని ప్రయోజనాలు మరియు ఇతర ముఖ్యమైన వివరాలను తెలియజేస్తుంది.
కాబట్టి OSGi అంటే ఏమిటి?
మాడ్యూల్స్ మరియు భాగాలను సృష్టించడం మరియు పంపిణీ చేయడం OSGi (ఓపెన్ సర్వీస్ గేట్వే ఇనిషియేటివ్) అని పిలువబడే జావా ఫ్రేమ్వర్క్ ద్వారా సాధ్యమవుతుంది.
ఇది ఫంక్షన్ ఎన్క్యాప్సులేషన్ మరియు లూజ్ కప్లింగ్ను నొక్కిచెబుతుంది, ఇది డెవలపర్లకు అనేక ప్రయోజనాలను అందిస్తుంది, సోర్స్ కోడ్లు మరియు టెస్టింగ్ మధ్య అంతులేని డిపెండెన్సీలు అవసరం లేని మాడ్యులర్ ఫంక్షనాలిటీతో సహా సులభంగా బదిలీ చేయబడుతుంది.
OSGi ఎలా పని చేస్తుంది?
జావా కోసం డైనమిక్ కాంపోనెంట్ సిస్టమ్ OSGi అని పిలువబడే స్పెసిఫికేషన్ల సెట్ ద్వారా నిర్వచించబడుతుంది. ఈ స్పెక్స్లు డెవలప్మెంట్ విధానాన్ని ప్రారంభిస్తాయి, ఇక్కడ అప్లికేషన్ అనేక భాగాల నుండి నిర్మించబడి, ఆపై బండిల్స్గా ప్యాక్ చేయబడుతుంది.
కమ్యూనికేట్ చేయడానికి ఈ భాగాలు స్థానిక మరియు నెట్వర్క్ ఆధారిత సేవలు ఉపయోగించబడతాయి. ప్రోగ్రామ్ యొక్క కోర్ కోడ్ను కాంపాక్ట్గా సాధ్యమయ్యేలా చేయడం లక్ష్యం. ఈ కోడ్ మరియు అనేక భాగాల మధ్య అధిక కలపడం సాధ్యమవుతుంది.
అప్లికేషన్ యొక్క పునర్వినియోగ నిర్మాణ మూలకాలను భాగాలు అంటారు. మీ ఇ-కామర్స్ వెబ్సైట్ కోసం షాపింగ్ కార్ట్ లేదా మీ స్టాఫ్ మేనేజ్మెంట్ సిస్టమ్ కోసం పేరోల్ అప్లికేషన్ వంటి ఫీచర్ల గురించి ఆలోచించండి.
భాగాలు వాటి అమలులను ఇతర భాగాల నుండి దాచడానికి OSGiని ఉపయోగించవచ్చు మరియు సేవల ద్వారా వారికి అవసరమైన డేటాను మాత్రమే అందించవచ్చు.
కాంపోనెంట్లకు యాక్సెస్ ఉండకూడని డేటాను అనుకోకుండా మార్చకుండా ఇది నిరోధిస్తుంది మరియు డిపెండెన్సీలను నిర్వహిస్తుంది.
OSGi అప్లికేషన్లోని భాగాల మధ్య అన్ని కనెక్షన్లు ఆదర్శవంతమైన ప్రపంచంలోని సేవల ద్వారా చేయబడతాయి. జావా ప్యాకేజీ సేవల కోసం పేర్కొన్న APIని కలిగి ఉంటుంది.
సేవా ప్రదాతలు మరియు కస్టమర్ల మధ్య సహకారానికి APIని రూపొందించే తరగతులు మరియు/లేదా ఇంటర్ఫేస్లను ఉపయోగించడం అవసరం.
అన్ని OSGi కాంపోనెంట్లు బండిల్స్లో కలిసి ప్యాక్ చేయబడతాయి, వీటిలో ప్రతి ఒక్కటి పని చేయడానికి అవసరమైన వనరులను కలిగి ఉంటాయి. బండిల్స్కు పర్యావరణం నుండి ఏమి అవసరమో మరియు వాటి సామర్థ్యం ఏమిటో చాలా స్పష్టంగా ఉన్నాయి.
ప్రయోజనాలు
- OSGi అప్లికేషన్లకు బాహ్య బండిల్ రిపోజిటరీలకు యాక్సెస్ ఉంది.
- ఫ్రేమ్వర్క్ మాడ్యూల్ స్థాయిలో సేవా-ఆధారిత రూపకల్పనను అనుమతిస్తుంది.
- ఇది థర్డ్-పార్టీ లైబ్రరీలను ప్రామాణీకరించడం మరియు సులభతరం చేయడంతో పాటు అప్లికేషన్ బండిల్ల సంస్కరణలు మరియు డిపెండెన్సీలను నిర్వహించడం సాధ్యం చేస్తుంది.
- అప్లికేషన్లు మారుతున్న డిమాండ్లకు మరింత అనుకూలంగా ఉంటాయి, మరింత పోర్టబుల్ మరియు రీఇంజనీర్కు వేగంగా ఉంటాయి.
- A వెబ్ అప్లికేషన్ Java EE ప్రోగ్రామింగ్ మోడల్తో ఫ్రేమ్వర్క్ యొక్క ఏకీకరణ కారణంగా డైనమిక్ జీవితకాలం కృతజ్ఞతలు కలిగిన సంస్కరణ OSGi బండిల్ల సమూహంగా అమలు చేయవచ్చు.
- అప్లికేషన్లో భాగంగా థర్డ్-పార్టీ లైబ్రరీగా ఇన్స్టాల్ చేయడానికి బదులుగా, ఫ్రేమ్వర్క్ స్ప్రింగ్ ఫ్రేమ్వర్క్ యొక్క డిక్లరేటివ్ అసెంబ్లీ మరియు స్ట్రీమ్లైన్డ్ యూనిట్ టెస్టింగ్ను ప్రామాణిక రూపంలో అందిస్తుంది, ఇది అప్లికేషన్ సర్వర్ రన్టైమ్లో భాగంగా అందించబడుతుంది.
- డైనమిక్ లైఫ్సైకిల్స్తో అనేక వెర్షన్ బండిల్లతో రూపొందించబడిన కార్పొరేట్ అప్లికేషన్ల కోసం, ఫ్రేమ్వర్క్ ఐసోలేషన్ను అందిస్తుంది.
- ఇది సమీకృత బండిల్ రిపోజిటరీని కలిగి ఉంది, ఇది అనేక అప్లికేషన్లు ఉపయోగించే భాగస్వామ్య సాధారణ మరియు సంస్కరణ బండిల్లను నిల్వ చేయగలదు, ప్రతి భాగస్వామ్య లైబ్రరీ యొక్క ప్రత్యేక కాపీని అమలు చేయకుండా ప్రతి అప్లికేషన్ను నిరోధిస్తుంది.
OSGi ఫెలిక్స్ స్ప్రింగ్తో ప్రారంభించడం
వనరులను పొందడం
నుండి Apache Karaf యొక్క అత్యంత ఇటీవలి సంస్కరణను డౌన్లోడ్ చేయడం ద్వారా ఈ స్థలం, మేము మా OSGi సాహసాన్ని ప్రారంభించవచ్చు.
Apache Felix ఆధారంగా, OSGi స్పెసిఫికేషన్ యొక్క Apache అమలు, Apache Karaf OSGi-ఆధారిత అప్లికేషన్ల కోసం ఒక వేదికను అందిస్తుంది.
కరాఫ్ ఫెలిక్స్ పైన వివిధ సహాయకరమైన ఫీచర్లను అందిస్తుంది, ఇది OSGiతో మనల్ని మనం పరిచయం చేసుకోవడంలో సహాయపడుతుంది, కమాండ్ లైన్ ఇంటర్ఫేస్ వంటిది ప్లాట్ఫారమ్తో కమ్యూనికేట్ చేయడానికి మాకు వీలు కల్పిస్తుంది.
బండిల్స్ కోసం ఎంట్రీ పాయింట్
OSGi వాతావరణంలో అమలు చేయడానికి ముందు అప్లికేషన్ తప్పనిసరిగా OSGi బండిల్గా ప్యాక్ చేయబడాలి. అదనంగా, అప్లికేషన్ ఎంట్రీ పాయింట్ తప్పనిసరిగా పేర్కొనబడాలి; ఇది ప్రామాణిక పబ్లిక్ స్టాటిక్ వాయిడ్ మెయిన్ (స్ట్రింగ్[] ఆర్గ్స్) ఫంక్షన్ కాదు.
కాబట్టి “ని సృష్టించడం ద్వారా ప్రారంభిద్దాంహలో వరల్డ్OSGi ఆధారంగా అప్లికేషన్.
మేము ప్రాథమిక OSGi API డిపెండెన్సీని ఏర్పాటు చేయడం ద్వారా ప్రారంభిస్తాము:
OSGi రన్టైమ్ డిపెండెన్సీకి యాక్సెస్ను కలిగి ఉంటుంది, కాబట్టి బండిల్ దానిని కలిగి ఉండవలసిన అవసరం లేదు. అందువల్ల, ఇది సరఫరా చేయబడినట్లు గుర్తించబడింది.
ఇప్పుడు నేరుగా HelloWorld తరగతిని సృష్టిద్దాం:
బండిల్లకు ఎంట్రీ పాయింట్లుగా పనిచేసే తరగతులు తప్పనిసరిగా OSGi అందించిన BundleActivator ఇంటర్ఫేస్ని అమలు చేయాలి.
ఈ తరగతిని కలిగి ఉన్న బండిల్ ప్రారంభించబడినప్పుడు, OSGi ప్లాట్ఫారమ్ ప్రారంభ() ఫంక్షన్ని పిలుస్తుంది. మరొక వైపు, బండిల్ ఆపివేయబడటానికి కొద్దిసేపటి ముందు, ఫంక్షన్ స్టాప్() అని పిలుస్తారు.
ప్రతి బండిల్లో ఒక బండిల్ యాక్టివేటర్ మాత్రమే ఉంటుందని మర్చిపోవద్దు. రెండు మార్గాలు ఇవ్వబడిన BundleContext ఆబ్జెక్ట్ని ఉపయోగించి OSGi రన్టైమ్తో కమ్యూనికేట్ చేయవచ్చు.
ఒక కట్టను సృష్టిస్తోంది
అవసరమైన మార్పులు చేయడం ద్వారా pom.xmlని నిజమైన OSGi బండిల్గా చేయండి.
ఒక కట్టను ఉత్పత్తి చేయడమే మా లక్ష్యం అని మనం మొదట స్పష్టంగా వ్యక్తపరచాలి.
అప్పుడు, మేము Apache Felix కమ్యూనిటీ సౌజన్యంతో HelloWorld తరగతిని OSGi బండిల్గా ప్యాకేజీ చేయడానికి maven-bundle-pluginని ఉపయోగిస్తాము:
మేము బండిల్ యొక్క MANIFEST ఫైల్లో చేర్చాలనుకుంటున్న OSGi హెడర్ల విలువలు సూచనల విభాగంలో పేర్కొనబడ్డాయి.
బండిల్-యాక్టివేటర్ అనేది బండిల్ యాక్టివేటర్ సొల్యూషన్ యొక్క సరైన అర్హత కలిగిన పేరు, ఇది బండిల్ను ప్రారంభించడానికి మరియు ఆపడానికి ఉపయోగించబడుతుంది. ఇది ఇప్పుడే సృష్టించిన తరగతికి అనుకూలంగా ఉంటుంది.
ఇది OSGi హెడర్ కానప్పటికీ, ప్రైవేట్-ప్యాకేజీ హెడర్ ప్యాకేజీని బండిల్కి జోడించమని ప్లగ్ఇన్కి నిర్దేశిస్తుంది కానీ ఇతర ప్లగిన్లకు దీన్ని యాక్సెస్ చేయదు. బండిల్ను సృష్టించడానికి mvn ఇన్స్టాల్ కమాండ్ ఉపయోగించాలి.
బండిల్ను ఇన్స్టాల్ చేయడం మరియు రన్ చేయడం
ఈ ఆదేశాన్ని అమలు చేయడం ద్వారా కరాఫ్ను ప్రారంభిద్దాం:
ఇక్కడ "KARAF HOME" అనేది కరాఫ్ సెటప్ చేయబడిన ఫోల్డర్ను సూచిస్తుంది. కరాఫ్ కన్సోల్ ప్రాంప్ట్ కనిపించినప్పుడు బండిల్ను ఇన్స్టాల్ చేయడానికి కింది ఆదేశాన్ని ఉపయోగించవచ్చు:
స్థానిక మావెన్ రిపోజిటరీని ఉపయోగించడం అనేది బండిల్ను లోడ్ చేయమని కరాఫ్కు ఎలా చెప్పబడింది.
బండిల్ యొక్క సంఖ్యా IDని తిరిగి ఇస్తూ, కరాఫ్ దానిని వ్రాస్తాడు. మునుపు ఎన్ని బండిల్లు ఇన్స్టాల్ చేయబడ్డాయి అనేదానిపై ఆధారపడి ఈ ID భిన్నంగా ఉండవచ్చు. బండిల్ ఇప్పుడు విజయవంతంగా ఇన్స్టాల్ చేయబడింది మరియు దానిని ప్రారంభించవలసిన ఆదేశం క్రింది విధంగా ఉంది:
మీరు ప్యాకేజీని ప్రారంభించిన క్షణం, "హలో వరల్డ్ బై జే" డిస్ప్లే అవుతుంది. మేము ఇప్పుడు వీటిని ఉపయోగించి బండిల్ను ఆపివేసి తీసివేయవచ్చు:
కన్సోల్ “గుడ్బై వరల్డ్ బై జే”ని ప్రదర్శిస్తుంది.
ముగింపు
డెవలపర్లు OSGiని ఉపయోగించడం ద్వారా ప్రధాన ప్రోగ్రామ్లోని ఇతర భాగాల నుండి సురక్షితంగా మరియు వేరుచేయబడినప్పుడు ఇప్పటికే ఉన్న వెబ్ అప్లికేషన్కు కొత్త కార్యాచరణను సులభంగా జోడించవచ్చు.
మేము ఈ పోస్ట్లో OSGi గురించి తెలుసుకున్నాము, దాని పనితీరు, దాని ప్రయోజనాలు మరియు సరళమైన ప్రోగ్రామ్తో సహా. మీ స్వంత అప్లికేషన్లో OSGiని చేర్చడం కష్టం కాదు.
హ్యాపీ కోడింగ్!
సమాధానం ఇవ్వూ