XRX (web application architecture)
સોફ્ટવેર વિકાસમાં XRX એ XForms, REST અને XQuery પર આધારિત વેબ એપ્લિકેશન આર્કિટેક્ચર છે. XRX એપ્લિકેશન્સ વેબ ક્લાયન્ટ અને વેબ સર્વર બંને પર XML ફોર્મેટમાં ડેટા સંગ્રહિત કરે છે અને ડેટા ફોર્મેટ વચ્ચે અનુવાદની જરૂર નથી. ક્લાયન્ટ અને સર્વર સિસ્ટમો વચ્ચે ડેટાના પરિવહન માટે જરૂરી અનુવાદોની ન્યૂનતમ સંખ્યાને કારણે XRX ને એક સરળ અને ભવ્ય એપ્લિકેશન આર્કિટેક્ચર માનવામાં આવે છે. ભવિષ્યમાં XRX કાર્યક્રમો મજબૂત બનશે તેની ખાતરી કરવા માટે XRX આર્કિટેક્ચરને W3C ધોરણો (CSS, XHTML 2, XPath, XML સ્કીમા) સાથે પણ ચુસ્ત રીતે જોડવામાં આવ્યું છે. કારણ કે XRX કાર્યક્રમો ક્લાયન્ટ પર આધુનિક ઘોષણાત્મક ભાષાઓ અને સર્વર પર કાર્યાત્મક ભાષાઓનો લાભ લે છે, તેઓ બિન-વિકાસકર્તાઓને સશક્ત બનાવવા માટે રચાયેલ છે જેઓ જાવાસ્ક્રિપ્ટ, જાવા અથવા. નેટ જેવી પરંપરાગત અનિવાર્ય ભાષાઓથી પરિચિત નથી. XRX XRX નું વિહંગાવલોકન એ શૂન્ય અનુવાદ એપ્લિકેશન આર્કિટેક્ચર છે જે ક્લાયન્ટ વેબ બ્રાઉઝરમાં, એપ્લિકેશન સર્વર પર અને ડેટાબેઝ સર્વરમાં ડેટા સંગ્રહિત કરવા માટે XML નો ઉપયોગ કરે છે. તે એટલા માટે છે કારણ કે આ દરેક સ્તરો એ જ માળખાકીય ડેટા મોડેલ તરીકે XML નો ઉપયોગ કરે છે જે XRX એપ્લિકેશનોને ઑબ્જેક્ટ અને રીલેશ્નલ ડેટા સ્ટ્રક્ચર્સ બંનેમાંથી ડેટા સ્ટ્રક્ચર્સનો અનુવાદ કરવાની જરૂર નથી. અનુવાદની જરૂરિયાતના અભાવને કારણે, XRX ને સ્વચ્છ અને ભવ્ય ડિઝાઇન માનવામાં આવે છે. XRX વેબ એપ્લિકેશન આર્કિટેક્ચર વિકાસકર્તાઓને અનુવાદની સમસ્યા પર નહીં પણ વ્યવસાયિક સમસ્યા પર ધ્યાન કેન્દ્રિત કરવાની મંજૂરી આપે છે. સોફ્ટવેર ટેકનોલોજીમાં ઘણી પ્રગતિઓથી એક્સઆરએક્સને ફાયદો થાય છેઃ ક્લાયન્ટ આર્કિટેક્ચરલ ફીચર્સ એક મોડેલ-વ્યૂ-કંટ્રોલર (એમવીસી) આર્કિટેક્ચર જે ડેટાને તેની પ્રસ્તુતિ અને વ્યવસાયિક તર્કથી અલગ કરે છે. બધા સર્વર સબમિશન માટે એક તત્વ (xf: સબમિશન). આ મોટાભાગના એજેએક્સ કાર્યક્રમોમાં જરૂરી મોટાભાગના જાવાસ્ક્રિપ્ટ કોડને બદલે છે. W3C ધોરણો સાથે સુસંગત એક અદ્યતન ઇવેન્ટ મોડેલ (XML ઇવેન્ટ્સ) જે એપ્લિકેશનોને વિક્રેતા-વિશિષ્ટ અને બ્રાઉઝર-વિશિષ્ટ ઇવેન્ટ હેન્ડલિંગ સાથે વ્યવહાર કરવાથી મુક્ત કરે છે. એક અવલંબન આલેખ જેનો ઉપયોગ ક્લાયન્ટ નિયંત્રકોના અવલંબન માળખાને સંગ્રહિત કરવા માટે થાય છે. આ વિકાસકર્તાને એપ્લિકેશનમાં ડેટા બદલાય ત્યારે મોડેલ અથવા દૃશ્યોને જાતે અપડેટ કરવાથી મુક્ત કરે છે. આ સ્પ્રેડશીટ જેવી એપ્લિકેશનોને ખૂબ જ ઓછા પ્રયત્નો સાથે ક્લાયન્ટ પર બનાવવાની મંજૂરી આપે છે. એક ઘોષણાત્મક પ્રોગ્રામિંગ શૈલી જે મોટાભાગના ક્લાયન્ટ XForms કાર્યક્રમોને આશરે 20 તત્વોના નાના સમૂહનો ઉપયોગ કરીને બનાવવાની મંજૂરી આપે છે. આ જાવાસ્ક્રિપ્ટ અથવા અન્ય પ્રક્રિયાગત સ્ક્રિપ્ટીંગ ભાષાઓના જ્ઞાન વિના સમૃદ્ધ ક્લાયન્ટ એપ્લિકેશનો બનાવવાની મંજૂરી આપે છે. એક્સ્ટેન્સિબલ બાઇન્ડિંગ્સ લેંગ્વેજનો ઉપયોગ કરીને નવા વપરાશકર્તા ઇન્ટરફેસ નિયંત્રણો બનાવવા માટે સરળ-થી-વિસ્તૃત સિસ્ટમ. આ વિકાસકર્તાઓને W3C ધોરણો સાથે અસંગતતાના ભય વિના કોઈપણ સમયે નવા નિયંત્રણો ઉમેરવાની મંજૂરી આપે છે. સર્વર આર્કિટેક્ચરની વિશેષતાઓ ઘણા મૂળ XML ડેટાબેઝમાં બિલ્ટ-ઇન REST ઇન્ટરફેસો હોય છે જે દરેક XQueryને સ્વાભાવિક રીતે RESTફુલ વેબ સર્વિસ બનાવે છે. એક કાર્યાત્મક પ્રોગ્રામિંગ મોડેલ જે આડઅસર મુક્ત પ્રણાલીઓને પ્રોત્સાહન આપે છે જે ડિબગ કરવા માટે સરળ હોય છે અને બહુવિધ પ્રોસેસરો પર ચલાવવા માટે સરળ હોય છે. XQuery કાર્ય અને મોડ્યુલોનો ઉપયોગ કરીને સરળ-થી-વિસ્તૃત સિસ્ટમ. ક્લાયન્ટ અને સર્વર બંને XRX ક્લાયન્ટ અને સર્વર ઘટકો બંને XML સંબંધિત ધોરણોની વિશાળ શ્રેણીને ટેકો આપે છે જેમ કે XPath, XML સ્કીમા અને XML નેમસ્પેસ ક્લાયન્ટ અને સર્વર વચ્ચે ડેટાના તમામ સ્થાનાંતરણ માટે ડેટાની આપ-લે કરવા માટે REST ઇન્ટરફેસનો સતત ઉપયોગ ડેટા ચેકિંગ અને સૂચનો કાર્યો સહિત W3C ધોરણોનું સુસંગત એકીકરણ જેમાં XPath અને XML સ્કીમા ડેટા પ્રકારોના ઉપયોગનો સમાવેશ થાય છે ક્લાયન્ટ અને સર્વર બંને પર ઉપયોગમાં લેવાતા કાર્યોની પ્રમાણભૂત લાઇબ્રેરી XRX ના એકંદર લાભો XRX આર્કિટેક્ચરનો એક મુખ્ય ફાયદો એ છે કે તે જટિલ ડેટા સ્ટ્રક્ચર્સને રીલેશ્નલ સ્ટ્રક્ચર્સમાં "શ્રેડ" કરવાની જરૂરિયાતને ટાળે છે અને પછી જ્યારે રેકોર્ડ કરવામાં આવે ત્યારે ડેટાને સ્ટ્રક્ચર્સમાં ફરીથી ગોઠવે છે. XRX વેબ એપ્લિકેશન આર્કિટેક્ચરનો બીજો ફાયદો એ છે કે તે ઑબ્જેક્ટ-રીલેશ્નલ ઇમ્પિડન્સ મિસમેચની આસપાસની મોટાભાગની સમસ્યાઓને ટાળે છે. બીજો ફાયદો એ છે કે ક્લાયન્ટ વિકાસકર્તાએ ક્લાયન્ટ પર જાવાસ્ક્રિપ્ટ શીખવાની જરૂર નથી. પરંપરાગત ઓબ્જેક્ટ/રીલેશ્નલ વેબ એપ્લિકેશન આર્કિટેક્ચર સાથે સરખામણી 1990 ના અંતમાં બનાવવામાં આવેલી ઘણી પરંપરાગત વેબ એપ્લિકેશન આર્કિટેક્ચર મધ્યમ ઓબ્જેક્ટ સ્તરો અને દ્રઢતા સ્તરો પર આધારિત હતી જે ટેબ્યુલર ડેટા સ્ટ્રીમ્સ અને રીલેશ્નલ ડેટાબેઝ સિસ્ટમ્સનો ઉપયોગ કરતી હતી. કારણ કે આ દરેક સ્તરોએ મોડેલોને સંગ્રહિત કરવા માટે વિવિધ માળખાઓનો ઉપયોગ કર્યો હતો, તેથી સિસ્ટમોને સ્તરો વચ્ચે અનુવાદ કરવા માટે ઘણી વધારાની જટિલતાની જરૂર હતી. બહુ-સ્તરીય પ્રણાલીઓમાં શૂન્ય-અનુવાદ માળખાનો ઉપયોગ કરવાના પ્રારંભિક ઉદાહરણો 1990ના દાયકામાં ઓબ્જેક્ટ-ઓરિએન્ટેડ ડેટાબેઝના ઉદયમાં શોધી શકાય છે. ઓ. ઓ. ડી. બી. એમ. એસ. નો ઇતિહાસ જુઓ માર્ક બિરબેકે સૂચવ્યું હતું કે સપ્ટેમ્બર 2006માં યુકે એક્સ. એમ. એલ. યુઝર ગ્રૂપ સાથેની બેઠકમાં બંને વચ્ચે આર. ઇ. એસ. ટી. ઇન્ટરફેસો સાથે એક્સફોર્મ્સ, એક્સક્વેરીના સંયોજનના ઘણા ફાયદા હતા. તેમની પ્રસ્તુતિ એ સૌપ્રથમ હતી જેણે ખાસ સૂચવ્યું હતું કે ત્રણ તકનીકોનું સંયોજનઃ REST ઇન્ટરફેસો સાથે XForms અને XQuery આશ્ચર્યજનક રીતે ફાયદાકારક અસરો ધરાવે છે. માર્કે આ પ્રક્રિયાને "સ્કિમિંગ" ગણાવી હતી પરંતુ તે શબ્દ ચેપી લાગતો ન હતો. ઓર્બિઓનના એરિક બ્રુચેઝે ડિસેમ્બર 2007માં બોસ્ટન પર એક્સ. એમ. એલ. 2007 પરિષદમાં વાત કરી હતી. તેમની પ્રસ્તુતિ "એક્સફોર્મ્સ અને એક્સિસ્ટ એક્સએમએલ ડેટાબેઝઃ એક સંપૂર્ણ દંપતી" માં, બ્રુચેઝે દર્શાવ્યું હતું કે ઘણા લોકો ક્લાયન્ટ પર એક્સફોર્મ્સ અને સર્વર પર એક્સક્વેરીના સહક્રિયાત્મક લાભો શોધી રહ્યા હતા. 14 ડિસેમ્બર, 2007ના રોજ ડેન મેકક્રેરી દ્વારા બ્લોગ પોસ્ટિંગ દ્વારા XRX માટેનું લેબલ સૂચવવામાં આવ્યું હતું. આ લેખમાં ડેનએ XRX આર્કિટેક્ચર પાછળના વિચારો માટે ચેપી મેમની જરૂરિયાત સૂચવી હતી. XRXનું સામાન્યીકરણ જોકે XRXનો મૂળ હેતુ ક્લાયન્ટ પર XForms, ઈન્ટરફેસ તરીકે REST અને સર્વર પર XQueryનો ઉપયોગ કરવાનો હતો, ક્લાયન્ટ અને સર્વર પર XMLના સમપ્રમાણિત ઉપયોગના અન્ય સમર્થકોએ કોઈપણ XML-કેન્દ્રિત વેબ ક્લાયન્ટ અને કોઈપણ સર્વર કે જે XML દસ્તાવેજોને સંગ્રહિત અને ક્વેરી કરી શકે છે તેને આવરી લેવા માટે આ શબ્દને સામાન્ય બનાવ્યો છે. XRXના આ ઉપયોગને સામાન્ય રીતે "છીછરા XRX" તરીકે ઓળખવામાં આવે છે. આ સામાન્યીકરણને સરળ શૂન્ય-અનુવાદ માળખાથી ફાયદો થાય છે પરંતુ ઘણાને REST ઇન્ટરફેસો, સુસંગત ડેટા પસંદગી માટે XPath, ક્લાયન્ટમાં ઘોષણાત્મક સિસ્ટમો અને સર્વર પર કાર્યાત્મક ભાષાઓ (XRX ના મુખ્ય પાસાઓમાંથી એક) થી ફાયદો થતો નથી. ત્રણેય તકનીકો (XForms, REST અને XQuery) નો ઉપયોગ "ડીપ XRX" તરીકે ઓળખાય છે. XRX આર્કિટેક્ચર XForms અને XQuery પર કેન્દ્રિત હોવા છતાં, તે XML ને મૂળ રૂપે હેરફેર કરતી અન્ય તકનીકોના ઉપયોગને અટકાવતું નથી, જેમ કે XSLT, XProc, અને XSL-FO. વેબ એપ્લિકેશન ફ્રેમવર્ક સંદર્ભો પણ જુઓ ડેન મેકક્રેરી દ્વારા એડિશનલ રિસોર્સ એક્સઆરએક્સઃ સિમ્પલ, એલિગન્ટ, ડિસરપ્ટિવ એક્સઆરએક્સ ડેવલપર્સ માટે ગૂગલ કોડ રીપોઝીટરી એક્સઆરએક્સ ડેવલપર્સ માટે મેટાફોરિકલ વેબ અને કર્ટ કેગલ દ્વારા એક્સઆરએક્સ પ્રશ્નો જેની ટેનિસન દ્વારા એક્સઆરએક્સ દ્વારા એક્સિસ્ટ ડેટાબેઝનો ઉપયોગ કરીને મેપિંગ યુઆરએલએસ જેની ટેનિસન દ્વારા ઓર્બિયન ફોર્મ્સ સાથે એક્સઆરએક્સ પરફોર્મિંગ અપડેટ્સ જેની ટેનિસન દ્વારા એક્સઆરએક્સ લોકિંગ ગ્રેન ડિઝાઇન ડેન મેકક્રેરી દ્વારા એક્સઆરએક્સ વિકિબૂક એક્સઆરએક્સ વિકિબૂક એક્સઆરએક્સ ડેટાબેઝનો ઉપયોગ કરીને સીઆરયુડીએસ એપ્લિકેશન બનાવવા માટેના ટ્યુટોરિયલ્સ સાથે જેસન મોનબર્ગ જેસી અલામાના બ્લોગ દ્વારા ચપળ સ્ટેક