JSP model 2 architecture
જેએસપી મોડલ 2 એ જાવા વેબ એપ્લિકેશન્સની ડિઝાઇનમાં ઉપયોગમાં લેવાતી એક જટિલ ડિઝાઇન પેટર્ન છે જે સામગ્રીના પ્રદર્શનને સામગ્રી મેળવવા અને હેરફેર કરવા માટે ઉપયોગમાં લેવાતા તર્કથી અલગ કરે છે. કારણ કે મોડેલ 2 તર્ક અને પ્રદર્શન વચ્ચેના વિભાજનને ચલાવે છે, તે સામાન્ય રીતે મોડેલ-વ્યૂ-કંટ્રોલર (એમવીસી) દાખલા સાથે સંકળાયેલું છે. જ્યારે એમવીસી "મોડલ" નું ચોક્કસ સ્વરૂપ મોડલ 2 ડિઝાઇન દ્વારા ક્યારેય સ્પષ્ટ કરવામાં આવ્યું ન હતું, ત્યારે સંખ્યાબંધ પ્રકાશનો એમવીસી મોડલ કોડ સમાવવા માટે ઔપચારિક સ્તરની ભલામણ કરે છે. જાવા બ્લુપ્રિન્ટ્સ, ઉદાહરણ તરીકે, મૂળરૂપે એમવીસી મોડેલને સમાવવા માટે ઇજેબીનો ઉપયોગ કરવાની ભલામણ કરવામાં આવી હતી. મોડલ 2 એપ્લિકેશનમાં, ક્લાયન્ટ બ્રાઉઝરની વિનંતીઓ નિયંત્રકને મોકલવામાં આવે છે. નિયંત્રક પ્રદર્શન માટે યોગ્ય સામગ્રી મેળવવા માટે જરૂરી કોઈપણ તર્ક કરે છે. તે પછી સામગ્રીને વિનંતીમાં મૂકે છે (સામાન્ય રીતે જાવાબીન અથવા પી. ઓ. જે. ઓ. ના સ્વરૂપમાં) અને નક્કી કરે છે કે તે કયા દૃશ્યને વિનંતી પસાર કરશે. દૃશ્ય પછી નિયંત્રક દ્વારા પસાર કરવામાં આવેલી સામગ્રીને પ્રસ્તુત કરે છે. મધ્યમ અને મોટા કદના કાર્યક્રમો માટે મોડેલ 2 ની ભલામણ કરવામાં આવે છે. 1998માં, સન માઇક્રોસિસ્ટમ્સે જાવાસર્વર પેજ સ્પષ્ટીકરણનું પૂર્વ પ્રકાશન, આવૃત્તિ 0.92 પ્રકાશિત કર્યું હતું. આ સ્પષ્ટીકરણમાં, સનએ બે પદ્ધતિઓ રજૂ કરી હતી જેના દ્વારા જે. એસ. પી. પૃષ્ઠોનો ઉપયોગ કરી શકાય. પ્રથમ મોડેલ (દસ્તાવેજમાં તેના ક્રમને કારણે "મોડેલ 1" તરીકે ઓળખવામાં આવે છે) એક સરળ મોડેલ હતું જેમાં જે. એસ. પી. પૃષ્ઠો એકલ, અસંબદ્ધ અસ્તિત્વ ધરાવતા હતા. તર્કને પૃષ્ઠની અંદર જ સમાવી શકાય છે, અને પૃષ્ઠો વચ્ચે નેવિગેશન સામાન્ય રીતે હાયપરલિંક્સ દ્વારા પ્રાપ્ત કરવામાં આવતું હતું. આ ટેમ્પ્લેટ ટેકનોલોજીના તે સમયના સામાન્ય ઉપયોગ સાથે બંધબેસે છે. કોલ્ડફ્યુઝન અને સક્રિય સર્વર પૃષ્ઠો એ સમકાલીન તકનીકોના ઉદાહરણો છે જેણે આ મોડેલનો અમલ પણ કર્યો હતો. દસ્તાવેજ દ્વારા ઉલ્લેખિત બીજું મોડેલ (ક્રમમાં "મોડેલ 2") એક સુધારેલી પદ્ધતિ હતી જે જે. એસ. પી. તકનીક સાથે સર્વલેટ તકનીકને જોડે છે. સૂચિબદ્ધ ચોક્કસ તફાવત એ હતો કે સર્વલેટ વિનંતીને અટકાવશે, સામગ્રીને વિનંતી લક્ષણ (સામાન્ય રીતે જાવાબીન દ્વારા રજૂ કરાયેલ) માં રેન્ડર કરવા માટે મૂકશે, પછી સામગ્રીને ઇચ્છિત આઉટપુટ ફોર્મેટમાં રેન્ડર કરવા માટે JSP પર કૉલ કરશે. આ મોડેલ અગાઉના મોડેલથી અલગ હતું કારણ કે જે. એસ. પી. તકનીકનો ઉપયોગ શુદ્ધ નમૂના એન્જિન તરીકે કરવામાં આવ્યો હતો. તમામ તર્કને સર્વલેટમાં અલગ કરવામાં આવ્યો હતો, જે. એસ. પી. ને પૂરી પાડવામાં આવેલી સામગ્રી માટે આઉટપુટ પ્રસ્તુત કરવાની એકમાત્ર જવાબદારી સાથે છોડી દે છે. ડિસેમ્બર 1999માં, જાવાવર્લેડે ગોવિંદ શેષાદ્રીનો એક લેખ 'અન્ડરસ્ટેન્ડિંગ જાવાસર્વર પેજ મોડલ 2 આર્કિટેક્ચર "શીર્ષક સાથે પ્રકાશિત કર્યો હતો. આ લેખમાં ગોવિંદે "મોડલ 2" શબ્દના ઉપયોગમાં બે મુખ્ય સીમાચિહ્નો હાંસલ કર્યા છે. પ્રથમ સીમાચિહ્નરૂપ બે સંભવિત વિકલ્પોમાંથી એકને બદલે સ્થાપત્ય પેટર્ન તરીકે "મોડલ 2" શબ્દને ઔપચારિક બનાવવાનો હતો. બીજો સીમાચિહ્નરૂપ એવો દાવો હતો કે મોડલ 2 એ વેબ-આધારિત સોફ્ટવેર માટે એમવીસી આર્કિટેક્ચર પ્રદાન કર્યું હતું. ગોવિંદ માનતા હતા કે કારણ કે "મોડલ 2" આર્કિટેક્ચર તર્કને જે. એસ. પી. થી અલગ કરે છે અને તેને સર્વલેટમાં મૂકે છે, એમ. વી. સી. આર્કિટેક્ચરમાં બે ટુકડાઓને "વ્યૂ" અને "કંટ્રોલર" (અનુક્રમે) તરીકે જોઈ શકાય છે. એમવીસી આર્કિટેક્ચરનો "મોડેલ" ભાગ ગોવિંદ દ્વારા ખુલ્લો મૂકવામાં આવ્યો હતો, જેમાં એવું સૂચન કરવામાં આવ્યું હતું કે લગભગ કોઈપણ ડેટા-માળખું જરૂરિયાતોને પૂર્ણ કરી શકે છે. લેખમાં વપરાયેલ ચોક્કસ ઉદાહરણ વપરાશકર્તાના સત્રમાં સંગ્રહિત વેક્ટર સૂચિ હતી. માર્ચ 2000માં, અપાચે સ્ટ્રટ્સ પ્રોજેક્ટ રજૂ કરવામાં આવ્યો હતો. આ પરિયોજનાએ વ્યૂ અને કંટ્રોલર વચ્ચેના વિભાજનને ઔપચારિક બનાવ્યું અને "મોડલ 2" પેટર્નના અમલીકરણનો દાવો કર્યો. ફરી એકવાર, "મોડેલ" નું અમલીકરણ એ અપેક્ષા સાથે અવ્યાખ્યાયિત કરવામાં આવ્યું હતું કે સોફ્ટવેર વિકાસકર્તાઓ યોગ્ય ઉકેલ ભરશે. જે. ડી. બી. સી. અને ઇ. જે. બી. દ્વારા ડેટાબેઝ ક્રિયાપ્રતિક્રિયા એ સ્ટ્રટ્સ હોમપેજ પર સૂચવવામાં આવેલા વિકલ્પો હતા. તાજેતરમાં, હાઇબરનેટ, આઈબેટિસ અને ઓબ્જેક્ટ રીલેશ્નલ બ્રિજને વધુ આધુનિક વિકલ્પો તરીકે સૂચિબદ્ધ કરવામાં આવ્યા હતા જેનો ઉપયોગ મોડેલ માટે થઈ શકે છે. સ્ટ્રટ્સના પ્રકાશન પછી, સંખ્યાબંધ સ્પર્ધાત્મક માળખાઓ દેખાયા છે. આમાંના ઘણા માળખાઓ "મોડલ 2" અને "એમવીસી" ને અમલમાં મૂકવાનો પણ દાવો કરે છે. પરિણામે, વિકાસકર્તાઓના મનમાં આ બે શબ્દો સમાનાર્થી બની ગયા છે. આનાથી ટૂંકમાં "એમવીસી મોડલ 2" અથવા "એમવીસી 2" શબ્દનો ઉપયોગ થયો છે. ગેરસમજો એક સામાન્ય ખોટો ખ્યાલ એ છે કે મોડલ 2 અમલીકરણ હાંસલ કરવા માટે ઔપચારિક એમવીસી પેટર્ન જરૂરી છે. જો કે, જાવા બ્લુપ્રિન્ટ્સ ખાસ કરીને આ અર્થઘટન સામે ચેતવણી આપે છેઃ J2EE પ્લેટફોર્મમાં વેબ-ટાયર ટેકનોલોજી પરનું સાહિત્ય વારંવાર સમજૂતી વિના "મોડલ 1" અને "મોડલ 2" શબ્દોનો ઉપયોગ કરે છે. આ પરિભાષા જે. એસ. પી. સ્પષ્ટીકરણના પ્રારંભિક ડ્રાફ્ટ્સમાંથી ઉદ્ભવે છે, જેમાં જે. એસ. પી. પૃષ્ઠો માટે બે મૂળભૂત ઉપયોગ પેટર્નનું વર્ણન કરવામાં આવ્યું છે. જ્યારે શરતો સ્પષ્ટીકરણ દસ્તાવેજમાંથી અદૃશ્ય થઈ ગયા છે, ત્યારે તે સામાન્ય ઉપયોગમાં રહે છે. મોડેલ 1 અને મોડેલ 2 ફક્ત નિયંત્રક સર્વલેટની ગેરહાજરી અથવા હાજરી (અનુક્રમે) નો સંદર્ભ આપે છે જે ક્લાયન્ટ સ્તરમાંથી વિનંતીઓ મોકલે છે અને દૃશ્યો પસંદ કરે છે. વધુમાં, "એમ. વી. સી. 2" શબ્દ ઘણા લોકોને ખોટી માન્યતા તરફ દોરી ગયો છે કે મોડલ 2 આગામી પેઢીની એમ. વી. સી. પેટર્નનું પ્રતિનિધિત્વ કરે છે. હકીકતમાં, એમ. વી. સી. 2 એ ફક્ત "એમ. વી. સી. મોડલ 2" શબ્દનો ટૂંકસાર છે. "એમવીસી 2" શબ્દ પરની મૂંઝવણ મોડેલ 1 કોડ પર વધારાની મૂંઝવણ તરફ દોરી ગઈ છે, જેના પરિણામે અસ્તિત્વમાં ન હોય તેવા શબ્દ "એમવીસી 1" નો સામાન્ય ઉપયોગ થાય છે. એ પણ જુઓ કે અપાચે સ્ટ્રટ્સ એ મોડલ 2 આર્કિટેક્ચર પર આધારિત વેબ-એપ્લિકેશન્સના અમલીકરણ માટેનું એક ઓપન સોર્સ માળખું છે. સંદર્ભો બાહ્ય કડીઓ મોડલ 2 ASP.NET પ્રેઝન્ટેશન પેટર્ન સહિત એમવીસીનો ઇતિહાસ-આ લેખમાં ડિનો એસ્પોસિટો ચર્ચા કરે છે કે કેવી રીતે મોડલ 2 નો ઉપયોગ ASP.NET એમવીસીમાં પણ થાય છે. સોફ્ટવેર ડિઝાઇન પેટર્ન સોફ્ટવેર આર્કિટેક્ચર