તમારી પાસે તમારું સૉફ્ટવેર પહેલેથી જ છે, પરંતુ તમારે હજી પણ તમારા તકનીકી વપરાશકર્તાઓને પ્લેટફોર્મને વિસ્તૃત કરવા માટે સક્ષમ કરવાની વધુ અસરકારક પદ્ધતિની જરૂર છે.
OSGi મોટાભાગના Java વિકાસકર્તાઓ માટે જાણીતું હોવા છતાં, તેને તમારા ઉત્પાદનમાં એકીકૃત કરવું મુશ્કેલ કાર્ય જેવું લાગે છે. OSGi ની ચોક્કસ કામગીરી વિશે સ્પષ્ટતાનો અભાવ આગળના રસ્તાને વધુ ગડબડ કરે છે.
તેઓ જે કંઈપણ પ્રયોગ કરવા માગે છે તેનાથી વિપરીત, OSGiને ઘણા જાવા વિકાસકર્તાઓ માટે વિશાળ સમુદ્રમાં સફર કરવાનો પ્રયાસ કરવા જેવું લાગે છે.
આ લેખ તમને સીધા પ્રોગ્રામનો ઉપયોગ કરીને OSGi ફેલિક્સ સ્પ્રિંગ ટ્યુટોરીયલ સાથે પરિચય કરાવશે અને તેના ફાયદા અને અન્ય મહત્વપૂર્ણ વિગતોને પસાર કરશે.
તો OSGi શું છે?
OSGi (ઓપન સર્વિસ ગેટવે ઇનિશિયેટિવ) તરીકે ઓળખાતા જાવા ફ્રેમવર્ક દ્વારા મોડ્યુલો અને ઘટકોનું નિર્માણ અને વિતરણ શક્ય બન્યું છે.
તે ફંક્શન એન્કેપ્સ્યુલેશન અને લૂઝ કપ્લીંગ પર ભાર મૂકે છે, જે વિકાસકર્તાઓને ઘણા ફાયદાઓ પ્રદાન કરે છે, જેમાં મોડ્યુલર કાર્યક્ષમતાનો સમાવેશ થાય છે જે સ્રોત કોડ્સ અને પરીક્ષણ વચ્ચે સરળતાથી ટ્રાન્સફર કરી શકાય છે જેને અનંત નિર્ભરતાની જરૂર નથી.
OSGi કેવી રીતે કામ કરે છે?
જાવા માટે ગતિશીલ ઘટક સિસ્ટમને OSGi નામના વિશિષ્ટતાઓના સમૂહ દ્વારા વ્યાખ્યાયિત કરવામાં આવે છે. આ સ્પેક્સ વિકાસ અભિગમને સક્ષમ કરે છે જ્યાં એપ્લિકેશન સંખ્યાબંધ ભાગોમાંથી બનાવવામાં આવે છે અને પછી બંડલમાં પેક કરવામાં આવે છે.
સ્થાનિક અને નેટવર્ક-આધારિત સેવાઓનો ઉપયોગ આ ઘટકો દ્વારા વાતચીત કરવા માટે કરવામાં આવે છે. પ્રોગ્રામના મુખ્ય કોડને શક્ય તેટલો કોમ્પેક્ટ બનાવવાનો હેતુ છે. આ કોડ અને કેટલાક ઘટકો વચ્ચે ઉચ્ચ જોડાણ શક્ય છે.
એપ્લીકેશનના ફરીથી વાપરી શકાય તેવા બિલ્ડીંગ તત્વોને ઘટકો કહેવામાં આવે છે. તમારી ઈ-કોમર્સ વેબસાઇટ માટે શોપિંગ કાર્ટ અથવા તમારી સ્ટાફ મેનેજમેન્ટ સિસ્ટમ માટે પેરોલ એપ્લિકેશન જેવી સુવિધાઓ વિશે વિચારો.
ઘટકો અન્ય ઘટકોથી તેમના અમલીકરણને છુપાવવા માટે OSGi નો ઉપયોગ કરી શકે છે અને ફક્ત સેવાઓ દ્વારા તેમને જરૂરી ડેટા પ્રદાન કરી શકે છે.
આ ઘટકોને અજાણતા ડેટા બદલવાથી અટકાવે છે જેની તેમને ઍક્સેસ ન હોવી જોઈએ અને નિર્ભરતાનું સંચાલન કરે છે.
OSGi એપ્લિકેશનમાં ઘટકો વચ્ચેના તમામ જોડાણો આદર્શ વિશ્વમાં સેવાઓ દ્વારા કરવામાં આવે છે. Java પેકેજ એ API ધરાવે છે જે સેવાઓ માટે ઉલ્લેખિત છે.
સેવા પ્રદાતાઓ અને ગ્રાહકો વચ્ચેના સહયોગ માટે વર્ગો અને/અથવા ઇન્ટરફેસનો ઉપયોગ જરૂરી છે, જે API બનાવે છે.
તમામ OSGi ઘટકોને બંડલમાં એકસાથે પેક કરવામાં આવે છે, જેમાંના દરેકમાં તેમને કાર્ય કરવા માટે જરૂરી સંસાધનો શામેલ છે. બંડલ્સ પર્યાવરણમાંથી તેમને શું જોઈએ છે અને તેઓ શું સક્ષમ છે તે વિશે તદ્દન સ્પષ્ટ છે.
લાભો
- OSGi એપ્લીકેશન પાસે બાહ્ય બંડલ રીપોઝીટરીઝની ઍક્સેસ છે.
- ફ્રેમવર્ક મોડ્યુલ સ્તરે સેવા-લક્ષી ડિઝાઇનને મંજૂરી આપે છે.
- તે તૃતીય-પક્ષ પુસ્તકાલયોને પ્રમાણિત કરવા અને તેને સરળ બનાવવા ઉપરાંત એપ્લિકેશન બંડલ્સના સંસ્કરણો અને નિર્ભરતાને સંચાલિત કરવાનું શક્ય બનાવે છે.
- એપ્લિકેશનો બદલાતી માંગ માટે વધુ અનુકૂલનક્ષમ છે, વધુ પોર્ટેબલ છે અને પુનઃએન્જિનિયર કરવા માટે ઝડપી છે.
- A વેબ એપ્લિકેશન જાવા EE પ્રોગ્રામિંગ મોડલ સાથે ફ્રેમવર્કના સંકલનને કારણે ગતિશીલ જીવનકાળ સાથે આવૃત્તિવાળા OSGi બંડલ્સના જૂથ તરીકે તૈનાત કરી શકાય છે.
- એપ્લિકેશનના ભાગ રૂપે તૃતીય-પક્ષ લાઇબ્રેરી તરીકે ઇન્સ્ટોલ થવાને બદલે, ફ્રેમવર્ક ઘોષણાત્મક એસેમ્બલી અને સ્પ્રિંગ ફ્રેમવર્કનું સુવ્યવસ્થિત એકમ પરીક્ષણ પ્રમાણિત સ્વરૂપમાં પ્રદાન કરે છે જે એપ્લિકેશન સર્વર રનટાઇમના ભાગ રૂપે પ્રદાન કરવામાં આવે છે.
- ડાયનેમિક લાઇફસાઇકલ્સ સાથે અનેક વર્ઝન બંડલ્સથી બનેલી કોર્પોરેટ એપ્લિકેશન્સ માટે, ફ્રેમવર્ક આઇસોલેશન ઓફર કરે છે.
- તેમાં એક સંકલિત બંડલ રીપોઝીટરી છે જે દરેક એપ્લીકેશનને દરેક શેર્ડ લાઇબ્રેરીની અલગ કોપી જમાવવાથી અટકાવીને, ઘણી એપ્લિકેશનો દ્વારા ઉપયોગમાં લેવાતા શેર કરેલ સામાન્ય અને વર્ઝન કરેલ બંડલ્સને સ્ટોર કરી શકે છે.
OSGi ફેલિક્સ વસંત સાથે પ્રારંભ કરવું
સંસાધનો મેળવવી
પરથી Apache Karaf નું સૌથી તાજેતરનું વર્ઝન ડાઉનલોડ કરીને આ સાઇટ, અમે અમારા OSGi સાહસ શરૂ કરી શકીએ છીએ.
Apache Felix પર આધારિત, OSGi સ્પષ્ટીકરણના અપાચે અમલીકરણ, Apache Karaf OSGi-આધારિત એપ્લિકેશનો માટે પ્લેટફોર્મ પૂરું પાડે છે.
Karaf ફેલિક્સની ટોચ પર વિવિધ ઉપયોગી સુવિધાઓ પ્રદાન કરે છે જે અમને OSGi સાથે પરિચિત થવામાં મદદ કરશે, જેમ કે કમાન્ડ લાઇન ઇન્ટરફેસ જે અમને પ્લેટફોર્મ સાથે વાતચીત કરવામાં સક્ષમ બનાવશે.
બંડલ્સ માટે એન્ટ્રી પોઈન્ટ
એપ્લિકેશનને OSGi પર્યાવરણમાં ચલાવી શકાય તે પહેલાં તેને OSGi બંડલ તરીકે પેક કરવી આવશ્યક છે. વધુમાં, એપ્લિકેશન એન્ટ્રી પોઈન્ટનો ઉલ્લેખ કરવો આવશ્યક છે; તે પ્રમાણભૂત સાર્વજનિક સ્થિર રદબાતલ મુખ્ય(સ્ટ્રિંગ[] args) ફંક્શન નથી.
તો ચાલો એક બનાવીને શરૂઆત કરીએહેલો વર્લ્ડOSGi પર આધારિત એપ્લિકેશન.
અમે મૂળભૂત OSGi API નિર્ભરતા સ્થાપિત કરીને પ્રારંભ કરીએ છીએ:
OSGi રનટાઈમ પાસે નિર્ભરતાની ઍક્સેસ હશે, તેથી બંડલમાં તેને સમાવવાની જરૂર નથી. તેથી, તે પૂરા પાડવામાં આવેલ તરીકે ચિહ્નિત થયેલ છે.
ચાલો હવે સીધો હેલોવર્લ્ડ ક્લાસ બનાવીએ:
વર્ગો કે જે બંડલ માટે એન્ટ્રી પોઈન્ટ તરીકે કાર્ય કરે છે તેઓએ OSGi દ્વારા પ્રદાન કરેલ BundleActivator ઈન્ટરફેસનો અમલ કરવો આવશ્યક છે.
જ્યારે આ વર્ગ ધરાવતું બંડલ લોન્ચ કરવામાં આવે છે, ત્યારે OSGi પ્લેટફોર્મ start() ફંક્શનને કૉલ કરે છે. બીજી બાજુ, બંડલ અટકી જાય તેના થોડા સમય પહેલા, ફંક્શન stop() કહેવાય છે.
ચાલો એ ન ભૂલીએ કે દરેક બંડલમાં માત્ર એક બંડલ એક્ટીવેટર હોઈ શકે છે. બંને રીતે આપેલ BundleContext ઑબ્જેક્ટનો ઉપયોગ કરીને OSGi રનટાઇમ સાથે વાતચીત કરી શકે છે.
બંડલ બનાવી રહ્યા છીએ
જરૂરી ફેરફારો કરીને pom.xml ને સાચા OSGi બંડલ બનાવો.
આપણે સૌ પ્રથમ સ્પષ્ટપણે વ્યક્ત કરવું જોઈએ કે અમારું ધ્યેય બંડલ બનાવવાનું છે.
તે પછી, અમે Apache Felix સમુદાયના સૌજન્યથી HelloWorld ક્લાસને OSGi બંડલ તરીકે પેકેજ કરવા માટે maven-bundle-plugin નો ઉપયોગ કરીએ છીએ:
અમે બંડલની મેનિફેસ્ટ ફાઇલમાં જે OSGi હેડરોનો સમાવેશ કરવા ઈચ્છીએ છીએ તેના મૂલ્યો સૂચના વિભાગમાં ઉલ્લેખિત છે.
બંડલ-એક્ટિવેટર એ બંડલ એક્ટિવેટર સોલ્યુશનનું યોગ્ય રીતે યોગ્ય નામ છે જેનો ઉપયોગ બંડલ શરૂ કરવા અને બંધ કરવા માટે કરવામાં આવશે. તે હમણાં જ બનાવેલ વર્ગ સાથે સુસંગત છે.
જ્યારે તે OSGi હેડર નથી, ખાનગી-પેકેજ હેડર પ્લગઇનને પેકેજને બંડલમાં ઉમેરવા માટે સૂચના આપે છે પરંતુ તેને અન્ય પ્લગઇન્સ માટે સુલભ બનાવતું નથી. mvn install આદેશનો ઉપયોગ બંડલ બનાવવા માટે થવો જોઈએ.
બંડલ ઇન્સ્ટોલ કરવું અને ચલાવવું
ચાલો આ આદેશ ચલાવીને Karaf શરૂ કરીએ:
જ્યાં "KARAF HOME" એ ફોલ્ડરનો ઉલ્લેખ કરે છે જ્યાં Karaf સેટ કરવામાં આવ્યું હતું. જ્યારે Karaf કન્સોલ પ્રોમ્પ્ટ દેખાય ત્યારે અમે બંડલ ઇન્સ્ટોલ કરવા માટે નીચેના આદેશનો ઉપયોગ કરી શકીએ છીએ:
સ્થાનિક માવેન રિપોઝીટરીનો ઉપયોગ કરીને કેરાફને બંડલ લોડ કરવાનું કહેવામાં આવે છે.
બંડલની સંખ્યાત્મક ID પરત કરીને, Karaf તેને લખે છે. અગાઉ કેટલા બંડલ ઇન્સ્ટોલ કરવામાં આવ્યા છે તેના આધારે આ ID અલગ હોઈ શકે છે. બંડલ હવે સફળતાપૂર્વક ઇન્સ્ટોલ થઈ ગયું છે, અને તેને લોન્ચ કરવાનો આદેશ નીચે મુજબ છે:
જે ક્ષણે તમે પેકેજ લોંચ કરો છો, "હેલો વર્લ્ડ બાય જય" પ્રદર્શિત થાય છે. હવે આપણે આનો ઉપયોગ કરીને બંડલને રોકી અને દૂર કરી શકીએ છીએ:
કન્સોલ "ગુડબાય વર્લ્ડ બાય જય" દર્શાવે છે.
ઉપસંહાર
વિકાસકર્તાઓ OSGi નો ઉપયોગ કરીને તેને સુરક્ષિત રાખીને અને મુખ્ય પ્રોગ્રામના અન્ય ઘટકોથી અલગ રાખીને હાલની વેબ એપ્લિકેશનમાં સરળતાથી નવી કાર્યક્ષમતા ઉમેરી શકે છે.
અમે આ પોસ્ટમાં OSGi વિશે શીખ્યા છીએ, જેમાં તે કેવી રીતે કાર્ય કરે છે, તેના ફાયદા અને એક સરળ પ્રોગ્રામનો સમાવેશ થાય છે. OSGi ને તમારી પોતાની એપ્લિકેશનમાં સામેલ કરવું મુશ્કેલ નથી.
હેપી કોડિંગ!
એક જવાબ છોડો