2010-03-28 22 views
5

प्रस्तावना के लिए मैं वेब विकास के लिए नया हूं। मैं एक मूल्यवान दस्तावेज़ लाइब्रेरी (प्रारंभिक सीआरयूडी क्षमताओं) के आसपास रीस्टफुल वेब सेवाओं का मूल सेट बनाने की सोच रहा हूं। ऐसा करने में मैं सैद्धांतिक रूप से भविष्य में अप्रत्याशित अनुप्रयोगों द्वारा उपयोग किए जाने वाले एक पूरी तरह से उपयोग करने योग्य और स्केलेबल बैक-एंड का निर्माण कर रहा हूं।वेब सेवाओं को बनाने के लिए सर्वोत्तम अभ्यास

मेरा प्रश्न यह करने के लिए सर्वोत्तम अभ्यास के आसपास केंद्रित है। मेरी प्रारंभिक आवश्यकता ने मुझे एक अद्वितीय फ्रंट एंड भी बनाया है। क्या मैं फिर से उपयोगिता को बढ़ाने के लिए फ्रंट एंड बैक एंड पूरी तरह से अलग परियोजनाओं को समाप्त कर दूंगा। यह ओवरहेड में वृद्धि होगी।

GWT, Restlet, और जावा ईई प्रौद्योगिकी ढेर का उपयोग कर यदि इस स्थापना पर सभी को प्रभावित करती है को देखते हुए।

उत्तर

2

सबसे महत्वपूर्ण एक स्वच्छ जावा एपीआई डिज़ाइन किया गया है - आरईएसटी, आरएमआई, या जो भी प्रोटोकॉल आप उपयोग करना चाहते हैं उससे स्वतंत्र है। एक स्वच्छ जावा एपीआई से, आप किसी भी एक्सेस विधि का समर्थन कर सकते हैं।

जब तक आप इन अन्य एक्सेस विधियों के लिए उपयोग केस नहीं रखते हैं, तो उन्हें अभी न बनाएं। जब आपको आवश्यकता हो तो आप इसे बना सकते हैं।

शुरू में जोड़ने के लिए सबसे आसान इंटरफेस एक वेब आधारित इंटरफेस जहां अपने वेब एप्लिकेशन अपने मूल एपीआई के रूप में ही JVM में चलाता है। अगर यह आपके उपयोग के मामले में काम करता है तो मैं ऐसा करूँगा। एक अलग सांत्वना अनुप्रयोग है कि एक बाकी (या जो भी) के माध्यम से अपने मूल API तक पहुँचता है प्रोटोकॉल एक बहुत अधिक काम है बिल्डिंग ..

+0

आप जावा परत के बारे में बात कर रहे हैं जो वास्तव में डेटाबेस के साथ सही इंटरैक्ट करता है? – Holograham

+0

सही।डेटाबेस के साथ इंटरैक्ट करता है और आपके व्यावसायिक तर्क, सत्यापन तर्क, आदि करता है –

+0

यह उत्तर एक अच्छा है। केवल एक चीज जो मैं जोड़ूंगा वह आपकी तैनाती/कार्यान्वयन चिंताओं पर विचार करना है - क्या आप अपने व्यूअर टियर को अपनी व्यस्तताओं/डेटा स्तर के समान JVM में चलने से खुश हैं? या, उदाहरण के लिए, क्या आपके डेटा स्तर को फ़ायरवॉल के पीछे बैठने की ज़रूरत है? यदि ये आपके लिए महत्वपूर्ण नहीं हैं, तो हर तरह से एक अच्छा एपीआई डिजाइन करने पर ध्यान केंद्रित करें और बाद में विदेशी सामान छोड़ दें। –

1

मार्टिन Fowler बाकी थोड़े समय पहले की मूल बातें के बारे में बहुत अच्छा लेख लिखा था: Richardson Maturity Model। आरईएसटी के सिद्धांतों को समझना बहुत उपयोगी पाया।

+0

धन्यवाद पढ़ा जाएगा ... हालांकि इसका मतलब यह है कि मैंने पूरी तरह से सवाल उठाया? – Holograham

+0

आह ठीक है: पी यह निश्चित रूप से एक अंतर्दृष्टि लेख था। – Holograham

0

यदि आप जानते हैं कि आप दृश्यपटल के लिए GWT का उपयोग किया जा रहे हैं GWT-RPC के बजाय बाकी उपयोग करने पर विचार कर सकते हैं। अधिक चर्चा here

हालांकि, अगर आपको लगता है कि आप अंत में एक बाकी एपीआई के माध्यम से अपने डेटा का पर्दाफाश, या दृश्यपटल पर एक अलग तकनीक का उपयोग करना चाह सकते हैं, बाकी एक बेहतर विकल्प हो सकता है।

gwt-rest प्रोजेक्ट भी सहायक हो सकता है।

+0

धन्यवाद, मैंने दोनों पर विचार किया है और पुन: उपयोगिता आवश्यकताओं के आधार पर आरईएसटी अंतिम निर्णय था। – Holograham

0

एक सहयोगी और मैं सामने के लिए और वापस समाप्त होता है अलग परियोजनाओं का उपयोग कर एक GWT प्रणाली लिखा है। कोड निष्पादित करने के बारे में चीजों को स्पष्ट रखने में मददगार रहा है। लेकिन मुझे यकीन नहीं है कि मैं भविष्य की व्यवस्था में चीजों को अलग करना परेशान करूंगा।

इसके अलावा, यह देखते हुए आप वेब विकास के लिए नए हैं, मुझे नहीं लगता कि आप एक पूरी तरह से फिर से प्रयोग करने योग्य बनाने के लिए बैकएंड उम्मीद की जानी चाहिए है। जैसे ही आप जाते हैं, आप बहुत सारी चीजें सीखेंगे। मुझे लगता है कि चुस्त कोडर (ए) एक छोटे पहलू को काम करने के एक पुनरावृत्ति दृष्टिकोण की सिफारिश करेंगे, और फिर (बी) इसे सुंदर बनाने के लिए इसे पुन: सक्रिय करना।

1

यदि आप आरईएसटी आधारित बैकएंड सेवाओं का उपयोग करना चाहते हैं, तो आपको RestyGWT प्रोजेक्ट का उपयोग करना चाहिए जो आपको अपने जेएसओएन आधारित आरक्षित सेवाओं तक पहुंचने के लिए एक जीडब्ल्यूटी-आरपीसी प्रोग्रामिंग शैली का उपयोग करने की अनुमति देता है।

परंपरागत जीडब्ल्यूटी-आरपीसी सेवाओं पर आरईएसटी आधारित जेएसओएन सेवाओं का उपयोग करने के बारे में अच्छी बात यह है कि उन सेवाओं का उपयोग अन्य ग्राहकों द्वारा या यहां तक ​​कि मैशप में भी आसानी से किया जा सकता है।

संबंधित मुद्दे