Canonical protocol pattern
કેનોનિકલ પ્રોટોકોલ એ ડિઝાઇન પેટર્ન છે, જે સર્વિસ-ઓરિએન્ટેશન ડિઝાઇન નમૂનાની અંદર લાગુ થાય છે, જે સર્વિસ ઇન્વેન્ટરીની અંદર, સેવાઓ દ્વારા ઉપયોગમાં લેવાતા સંચાર પ્રોટોકોલને પ્રમાણિત કરીને એકબીજા સાથે આંતરસંચાલિત સેવા બનાવવાનો પ્રયાસ કરે છે. જ્યારે સેવાઓ વિવિધ સંચાર પ્રોટોકોલનો ઉપયોગ કરે છે ત્યારે આ સંચાર પ્રોટોકોલને જોડવાની જરૂરિયાતને દૂર કરે છે. વિવિધ પ્રોજેક્ટ ટીમો દ્વારા વિકસાવવામાં આવેલી તર્કસંગત સેવાઓ વિવિધ સંચાર પદ્ધતિઓ પર આધારિત હોઈ શકે છે. પરિણામે, સર્વિસ ઇન્વેન્ટરીમાં સેવાઓના જુદા જુદા સેટ હોઈ શકે છે, દરેક પ્રોટોકોલના જુદા જુદા સેટને અનુરૂપ છે. જ્યારે વિવિધ સંચાર પ્રોટોકોલ ધરાવતી સેવાઓનો ફરીથી ઉપયોગ કરવાની વાત આવે છે, ત્યારે અમુક પ્રકારની સંચાર બ્રિજિંગ મિકેનિઝમ જરૂરી છે. ઉદાહરણ તરીકે, જેએમએસ મેસેજિંગ પ્રોટોકોલનો ઉપયોગ કરીને વિકસાવવામાં આવેલી સેવાઓ ડોટ નેટ રિમોટનો ઉપયોગ કરીને વિકસાવવામાં આવેલી સેવાઓ સાથે અસંગત છે, તેથી આ બે પ્રકારની સેવાઓનો ઉપયોગ કરવા માટે, કેટલીક મિડલવેર ટેકનોલોજી હોવી જરૂરી છે જે સંચાર પ્રોટોકોલની અસમાનતાને દૂર કરે. વધારાના ખર્ચ ઉપરાંત, આવી બ્રિજિંગ તકનીકનો ઉપયોગ વિલંબ અને સંદેશાવ્યવહાર ઓવરહેડ ઉમેરે છે. આ સેવાને ફરીથી વાપરી શકાય તેવું અને ફરીથી કમ્પોઝેબલ સંસાધનથી ઓછું બનાવે છે અને સર્વિસ કમ્પોઝેબિલિટી ડિઝાઇન સિદ્ધાંતની માર્ગદર્શિકાની વિરુદ્ધ છે. સર્વિસ ઇન્વેન્ટરી ડિઝાઇન કરવા માટે જ્યાં તમામ સેવાઓ એકબીજા સાથે આંતરસંચાલિત હોય જેથી તેઓ વિવિધ ઉકેલોમાં રચના કરી શકાય, કેનોનિકલ પ્રોટોકોલ પેટર્નનો ઉપયોગ સેવાઓ દ્વારા ઉપયોગમાં લેવાતા સંચાર પ્રોટોકોલને પ્રમાણિત કરે છે. જ્યારે બધી સેવાઓ સમાન સંદેશાવ્યવહાર પ્રોટોકોલનો ઉપયોગ કરે છે, ત્યારે બ્રિજિંગ તકનીકની જરૂરિયાત દૂર થાય છે અને સેવાઓ વચ્ચેનો સંદેશાવ્યવહાર વધુ સુવ્યવસ્થિત થાય છે. ઉપયોગ આ ડિઝાઇન પેટર્નના ઉપયોગ માટે એક તકનીકી માળખું પસંદ કરવાની જરૂર છે જે એક સામાન્ય સંચાર માળખું પ્રદાન કરે છે જેથી ઇન્વેન્ટરીમાંની તમામ સેવાઓ સમાન સંચાર પ્રોટોકોલનો ઉપયોગ કરીને એકબીજા સાથે વાતચીત કરી શકે. આ સર્વિસ ઇન્વેન્ટરીની અંદરની સેવાઓનો ઉપયોગ કેવી રીતે કરવામાં આવશે તેના પર નિર્ભર છે. જો સેવાઓ માત્ર સેવા રચનાઓનો ભાગ બનવા જઈ રહી છે જે હંમેશા ચોક્કસ સંચાર પ્રોટોકોલનો ઉપયોગ કરે છે (કાર્યક્ષમતા અને સુરક્ષા કારણોસર), તો તે સેવા સૂચિમાંની તમામ સેવાઓ આવા સંચાર પ્રોટોકોલ પર બનાવી શકાય છે, પછી ભલે તે સૌથી વધુ ઉપયોગમાં લેવાતા પ્રોટોકોલ ન હોય. થોમસ એર્લની કેનોનિકલ પ્રોટોકોલ પેટર્ન આ પ્રશ્નનો જવાબ આપે છેઃ "પ્રોટોકોલ બ્રિજિંગને ટાળવા માટે સેવાઓની રચના કેવી રીતે કરી શકાય?" સમસ્યા એ છે કે જે સેવાઓ વિવિધ સંચાર તકનીકોને ટેકો આપે છે તે આંતરસંચાલનક્ષમતા સાથે સમાધાન કરે છે, સંભવિત ગ્રાહકોની સંખ્યાને મર્યાદિત કરે છે અને અનિચ્છનીય પ્રોટોકોલ બ્રિજિંગ પગલાંની જરૂરિયાત રજૂ કરે છે. ઉકેલ એ છે કે સ્થાપત્ય માટે એકમાત્ર અથવા પ્રાથમિક માધ્યમ તરીકે એક જ સંચાર તકનીક સ્થાપિત કરવી કે જેના દ્વારા સેવાઓ ક્રિયાપ્રતિક્રિયા કરી શકે. તેથી, સર્વિસ ઇન્વેન્ટરી સીમાની અંદર ઉપયોગમાં લેવાતા સંચાર પ્રોટોકોલ (પ્રોટોકોલ આવૃત્તિઓ સહિત) તમામ સેવાઓ માટે પ્રમાણિત કરવામાં આવે છે (આકૃતિ જુઓ). સૌથી પરિપક્વ અને વ્યાપકપણે ઉપયોગમાં લેવાતી સંચાર પદ્ધતિઓમાંથી એક વેબ સેવા માળખા દ્વારા પ્રદાન કરવામાં આવે છે. સંદેશાવ્યવહાર માળખું પસંદ કરવા ઉપરાંત, વાસ્તવિક સંદેશ પ્રોટોકોલને પણ પ્રમાણિત કરવાની જરૂર છે. ઉદાહરણ તરીકે, શું વેબ સેવાઓ HTTP પર SOAP નો ઉપયોગ કરીને અથવા ફક્ત RESTful સેવાઓનો ઉપયોગ કરીને બનાવવામાં આવી છે. તેવી જ રીતે, જ્યારે એસ. ઓ. એ. પી. આધારિત વેબ સેવાઓ પર માનકીકરણ કરવામાં આવે છે, ત્યારે એસ. ઓ. એ. પી. પ્રોટોકોલના ચોક્કસ સંસ્કરણ પર પણ સંમતિ આપવાની જરૂર છે. એસ. ઓ. એ. પી. વી. 1.1 અથવા એસ. ઓ. એ. પી. વી. 1.2. વિચારણાઓ સંચાર પ્રોટોકોલને પ્રમાણિત કરવા માટે, પ્રોટોકોલની વિશેષતાઓને સુરક્ષા, કાર્યક્ષમતા અને વ્યવહાર સમર્થન સહિત સેવા ક્રિયાપ્રતિક્રિયાની જરૂરિયાતો સાથે સરખાવવાની જરૂર છે. વેબ સેવાઓના કિસ્સામાં, ઉદાહરણ તરીકે, જો સેવાની રચનાને સ્પષ્ટ વ્યવહાર સમર્થનની જરૂર હોય, તો RESTful સેવાઓનો ઉપયોગ કરતાં HTTP પર SOAP વધુ સારી પસંદગી હશે. કેટલાક કિસ્સાઓમાં, સેવાના નિર્માણ માટે ઉપયોગમાં લેવાતી તકનીકના આધારે, વિવિધ પ્રકારના સેવા ગ્રાહકો (ડ્યુઅલ પ્રોટોકોલ ડિઝાઇન પેટર્ન) માટે સેવાને સુલભ બનાવવા માટે પ્રોટોકોલના બે અલગ-અલગ સમૂહને ટેકો આપવાનું શક્ય બની શકે છે. ઉદાહરણ તરીકે, WCF નો ઉપયોગ કરીને, સમાન સેવાને એક જ સમયે HTTP અને TCP/IP પ્રોટોકોલનો ઉપયોગ કરવા માટે રૂપરેખાંકિત કરી શકાય છે. સંદેશાવ્યવહાર માળખું પસંદ કરતી વખતે, પરિપક્વતા, માપનીયતા અને કોઈપણ લાઇસન્સિંગ ખર્ચને ધ્યાનમાં લેવાની જરૂર છે કારણ કે નજીકના ભવિષ્યમાં અપ્રચલિત થવા જઈ રહેલા પ્રોટોકોલનો ઉપયોગ કરીને નિર્માણ સેવાઓ આવી સેવાઓના પુનઃઉપયોગને અસર કરશે અને સેવાને ફરીથી ડિઝાઇન કરવા માટે નોંધપાત્ર સમય અને પ્રયત્નોની જરૂર પડશે. સંદર્ભ નોંધો સ્ત્રોતો થોમસ એર્લ એટ અલ., (2009). એસ. ઓ. એ. ડિઝાઇન પેટર્ન. પ્રેન્ટિસ હોલ. . બાહ્ય લિંક્સ એસ. ઓ. એ. કન્સેપ્ટ્સ એસ. ઓ. એ. શરતો ગ્લોસરી એસ. ઓ. એ. ડિઝાઇન પેટર્ન સર્વિસ-ઓરિએન્ટેડ (બિઝનેસ કમ્પ્યુટિંગ)