አስቀድመው ሶፍትዌሮችዎን በቦታቸው አሎት፣ ነገር ግን አሁንም የቴክኒክ ተጠቃሚዎችዎ መድረኩን እንዲያስፋፉ ለማድረግ የበለጠ ውጤታማ ዘዴ ያስፈልግዎታል።
OSGi በአብዛኛዎቹ የጃቫ ገንቢዎች ዘንድ የታወቀ ቢሆንም፣ ወደ ምርትዎ ማዋሃዱ ከባድ ስራ መስሎ ሊታይ ይችላል። ስለ OSGi ትክክለኛ አሠራር ግልጽነት ማጣት መንገዱን የበለጠ ያጨልመዋል።
ሊሞክሩት ከሚፈልጉት ከማንኛውም ነገር በተቃራኒ OSGi ሰፊውን ባህር ለብዙ የጃቫ ገንቢዎች ለመርከብ የመሞከር ያህል ይሰማዋል።
ይህ መጣጥፍ ቀጥተኛ ፕሮግራምን በመጠቀም ከOSGi Felix spring አጋዥ ስልጠና ጋር ያስተዋውቀዎታል እና ጥቅሞቹን እና ሌሎች አስፈላጊ ዝርዝሮችን ያልፋል።
ስለዚህ OSGi ምንድን ነው?
ሞጁሎችን እና አካላትን መፍጠር እና ማሰራጨት የተቻለው OSGi (Open Service Gateway Initiative) በመባል በሚታወቀው የጃቫ ማዕቀፍ ነው።
እሱ የተግባር ማሸግ እና ልቅ ትስስር ላይ አፅንዖት ይሰጣል፣ ይህም ለገንቢዎች በርካታ ጥቅሞችን ይሰጣል፣ ሞጁል ተግባርን ጨምሮ በቀላሉ የሚተላለፍ የምንጭ ኮዶች እና የማያቋርጥ ጥገኞች የማይፈልጉ ሙከራዎች።
OSGi እንዴት ነው የሚሰራው?
ለጃቫ ተለዋዋጭ የመለዋወጫ ስርዓት OSGi በሚባል ዝርዝር መግለጫዎች ይገለጻል። እነዚህ ዝርዝሮች አንድ መተግበሪያ ከበርካታ ክፍሎች የተገነባ እና ከዚያም ወደ ጥቅል የታሸገበትን የእድገት አቀራረብን ያስችላሉ።
አካባቢያዊ እና አውታረ መረብ ላይ የተመሰረቱ አገልግሎቶች በእነዚህ ክፍሎች ለመግባባት ይጠቀማሉ። የፕሮግራሙን ዋና ኮድ በተቻለ መጠን የታመቀ እንዲሆን ማድረግ ዓላማው ነው። በዚህ ኮድ እና በበርካታ ክፍሎች መካከል ከፍተኛ ትስስር ማድረግ ይቻላል.
የመተግበሪያው እንደገና ጥቅም ላይ ሊውሉ የሚችሉ የግንባታ ክፍሎች ክፍሎች ይባላሉ። ለኢ-ኮሜርስ ድረ-ገጽዎ እንደ የግዢ ጋሪ ወይም ለሰራተኞች አስተዳደር ስርዓትዎ የደመወዝ ማመልከቻን ያስቡ።
አካላት OSGIን ተጠቅመው አፈፃፀማቸውን ከሌሎች አካላት ለመደበቅ እና አስፈላጊውን ውሂብ በአገልግሎቶች በኩል ብቻ ሊያቀርቡላቸው ይችላሉ።
ይህ አካላት ሳያውቁ መድረስ የማይገባቸውን ውሂብ እንዳይቀይሩ ይከላከላል እና ጥገኛዎችን ያስተዳድራል።
በOSGi አፕሊኬሽን ውስጥ ባሉ ክፍሎች መካከል ያሉ ሁሉም ግንኙነቶች ምቹ በሆነ ዓለም ውስጥ ባሉ አገልግሎቶች የተሰሩ ናቸው። የጃቫ ጥቅል ለአገልግሎቶች የተገለጸውን ኤፒአይ ይዟል።
በአገልግሎት አቅራቢዎች እና በደንበኞች መካከል ያለው ትብብር ኤፒአይን የሚያካትት ክፍሎችን እና/ወይም መገናኛዎችን መጠቀምን ይጠይቃል።
ሁሉም የOSGi ክፍሎች በአንድ ላይ በጥቅል የታሸጉ ናቸው፣ እያንዳንዱም ለመስራት የሚያስፈልጋቸውን ግብዓቶች ያካትታል። ቅርቅቦች ከአካባቢው ምን እንደሚፈልጉ እና ስለሚችሉት ነገር ግልጽ ናቸው።
ጥቅሞች
- የOSGi መተግበሪያዎች ወደ ውጫዊ የጥቅል ማከማቻዎች መዳረሻ አላቸው።
- ማዕቀፉ በሞጁል ደረጃ አገልግሎት ተኮር ዲዛይን ይፈቅዳል።
- የሶስተኛ ወገን ቤተ-መጻሕፍትን ለማዋሃድ ቀላል ከማድረግ በተጨማሪ የመተግበሪያ ቅርቅቦችን ስሪቶች እና ጥገኛዎች ማስተዳደር ያስችላል።
- አፕሊኬሽኖች ፍላጎቶችን ለመለወጥ የበለጠ የሚጣጣሙ፣ የበለጠ ተንቀሳቃሽ እና ፈጣን ዳግም ምህንድስና ናቸው።
- A የድር መተግበሪያ ማዕቀፉ ከጃቫ ኢኢ ፕሮግራሚንግ ሞዴል ጋር በመዋሃዱ ምክንያት እንደ ተለዋዋጭ የOSGi ጥቅሎች ቡድን ሊሰማራ ይችላል።
- እንደ የመተግበሪያው አካል እንደ የሶስተኛ ወገን ቤተ መፃህፍት ከመጫን ይልቅ፣ ማዕቀፉ የማወጃ ስብሰባ እና የተሳለጠ የSፕሪንግ ማዕቀፍ አሃድ ሙከራን እንደ የመተግበሪያ አገልጋይ የሩጫ ጊዜ አካል በሆነ መደበኛ ቅጽ ያቀርባል።
- ከተለዋዋጭ የህይወት ኡደቶች ጋር ከበርካታ የተሻሻሉ ጥቅሎች ላሉ የድርጅት መተግበሪያዎች፣ ማዕቀፉ ማግለልን ያቀርባል።
- በተለያዩ አፕሊኬሽኖች ጥቅም ላይ የዋሉ የጋራ የጋራ እና ስሪት ያላቸው ቅርቅቦችን ሊያከማች የሚችል የተቀናጀ የጥቅል ማከማቻ ይዟል፣ ይህም እያንዳንዱ መተግበሪያ የእያንዳንዱን የተጋራ ቤተ-መጽሐፍት የተለየ ቅጂ እንዳያሰማራ ይከላከላል።
በOSGi Felix spring መጀመር
ሀብቶቹን ማግኘት
የ Apache Karaf በጣም የቅርብ ጊዜውን ስሪት ከ በማውረድ ይህ ጣቢያየ OSGi ጀብዱ ልንጀምር እንችላለን።
በApache Felix ላይ በመመስረት፣ የOSGi ዝርዝር መግለጫ Apache ትግበራ፣ Apache Karaf OSGi ላይ ለተመሰረቱ መተግበሪያዎች መድረክን ይሰጣል።
ካራፍ ከኦኤስጂአይ ጋር ለመተዋወቅ የሚረዱን የተለያዩ አጋዥ ባህሪያትን በፊሊክስ ላይ ያቀርባል፣ ለምሳሌ ከመድረክ ጋር ለመነጋገር የሚያስችለን የትእዛዝ መስመር።
የመግቢያ ነጥብ ለቅርቅቦች
አንድ መተግበሪያ በOSGi አካባቢ ውስጥ ከመሄዱ በፊት እንደ OSGi ጥቅል መታሸግ አለበት። በተጨማሪም የመተግበሪያው መግቢያ ነጥብ መገለጽ አለበት; መደበኛው የህዝብ የማይንቀሳቀስ ባዶ ዋና(ሕብረቁምፊ[] args) ተግባር አይደለም።
ስለዚህ "" በመፍጠር እንጀምር.ሠላም ዓለምበ OSGi ላይ የተመሠረተ መተግበሪያ።
መሠረታዊ የOSGi API ጥገኝነት በማቋቋም እንጀምራለን፡-
የOSGi አሂድ ጊዜ የጥገኝነት መዳረሻ ይኖረዋል፣ ስለዚህ ጥቅሉ በውስጡ መያዝ አያስፈልገውም። ስለዚህ, እንደቀረበ ምልክት ተደርጎበታል.
አሁን ቀጥተኛውን የHelloWorld ክፍል እንፍጠር፡-
እንደ ጥቅሎች የመግቢያ ነጥብ የሚያገለግሉ ክፍሎች በOSGi የቀረበው BundleActivator በይነገጽን መተግበር አለባቸው።
ይህን ክፍል የያዘው ጥቅል ሲጀመር የOSGi መድረክ የጀምር() ተግባርን ይጠራል። በሌላ በኩል፣ ጥቅሉ ከመቆሙ ጥቂት ቀደም ብሎ፣ የተግባር ማቆሚያ () ይባላል።
እያንዳንዱ ጥቅል አንድ BundleActivator ብቻ ሊኖረው እንደሚችል መዘንጋት የለብንም ። የተሰጠውን BundleContext ነገርን በመጠቀም ሁለቱም መንገዶች ከOSGi Runtime ጋር መገናኘት ይችላሉ።
ጥቅል መፍጠር
አስፈላጊ ለውጦችን በማድረግ pom.xml እውነተኛ የOSGi ጥቅል ያድርጉት።
መጀመሪያ ግባችን ጥቅል ማምረት መሆኑን በግልፅ መግለጽ አለብን።
በመቀጠል፣ በApache Felix ማህበረሰብ ጨዋነት የHeloWorld ክፍልን እንደ OSGi ጥቅል ለማሸግ maven-bundle-pluginን እንጠቀማለን።
በጥቅሉ MANIFEST ፋይል ውስጥ ልናካትታቸው የምንፈልጋቸው የOSGi ራስጌዎች በመመሪያው ክፍል ውስጥ ተገልጸዋል።
ቅርቅብ-አክቲቪተር በእርግጥም ጥቅሉን ለመጀመር እና ለማቆም የሚቀጠረው የBundleActivator መፍትሄ ትክክለኛ ብቁ ስም ነው። ልክ ከተፈጠረ ክፍል ጋር ተኳሃኝ ነው።
የOSGi ራስጌ ባይሆንም፣ የግሉ-ጥቅል ራስጌ ፕለጊኑ ጥቅሉን ወደ ጥቅሉ እንዲጨምር ነገር ግን ለሌሎች ፕለጊኖች ተደራሽ እንዳያደርገው መመሪያ ይሰጣል። ጥቅሉን ለመፍጠር የ mvn መጫኛ ትዕዛዝ ጥቅም ላይ መዋል አለበት.
ቅርቅቡን መጫን እና ማስኬድ
ይህን ትዕዛዝ በማስኬድ ካራፍን እንጀምር፡-
"KARAF HOME" ካራፍ የተቀናበረበትን አቃፊ የሚያመለክትበት. የካራፍ ኮንሶል ጥያቄ ሲመጣ ጥቅሉን ለመጫን የሚከተለውን ትዕዛዝ መጠቀም እንችላለን፡-
የአካባቢውን Maven ማከማቻ መጠቀም ካራፍ ጥቅሉን እንዲጭን እንዴት እንደተነገረ ነው።
የጥቅል አሃዛዊ መታወቂያውን በመመለስ ካራፍ ጻፈው። ይህ መታወቂያ ከዚህ ቀደም ስንት ጥቅሎች እንደተጫኑ ሊለያይ ይችላል። ጥቅሉ አሁን በተሳካ ሁኔታ ተጭኗል፣ እና እሱን ለማስጀመር ትእዛዝው እንደሚከተለው ነው።
ጥቅሉን በከፈቱበት ቅጽበት፣ “Hello World by Jey” ያሳያል። አሁን የሚከተለውን በመጠቀም ጥቅሉን ማቆም እና ማስወገድ እንችላለን-
ኮንሶሉ “Goodbye World by Jey” ያሳያል።
መደምደሚያ
ገንቢዎች OSGiን በመጠቀም ደህንነቱ የተጠበቀ እና ከሌሎች የዋናው ፕሮግራም ክፍሎች እንዲገለሉ በማድረግ አሁን ባለው የድር መተግበሪያ ላይ አዲስ ተግባር ማከል ይችላሉ።
እንዴት እንደሚሰራ፣ ጥቅሞቹ እና ቀጥተኛ ፕሮግራምን ጨምሮ ስለ OSGi በዚህ ልጥፍ ውስጥ ተምረናል። OSGiን በራስዎ መተግበሪያ ውስጥ ማካተት ከባድ አይደለም።
መልካም ኮድ መስጠት!
መልስ ይስጡ