2012-04-11 17 views
6

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

मैं एक सीआरएम लागू करने की सोच रहा था जो एक साधारण एनालिटिक्स सेवा और ग्राहक देखभाल (उपयोगकर्ता भंडारण, व्यक्तिगत टिप्पणियां, और कुछ अन्य चीजें) प्रदान करता है।

वास्तुकला कि मैं डिजाइनिंग परिभाषित करता हूँ: - WebGUI (अन्य सेवाओं की एक ग्राहक) - AnalyticsService (एक सेवा है जो डेटा प्राप्त करता है, का विश्लेषण करती है और इसे इकट्ठा) - CustomerCareService (एक सेवा के लिए RESTful API का उपयोग करता सीआरयूडी परिचालन लागू करें)।

प्रत्येक सेवा का अपना डेटाबेस है, जो दूसरों से पूरी तरह से स्वतंत्र है। वे एक सार्वजनिक इंटरफ़ेस का पर्दाफाश करते हैं। अनौपचारिक अनुरोधों को अस्वीकार करने के लिए पाठ्यक्रम के इंटरफ़ेस को कुछ प्रकार का प्रमाणीकरण प्रदान करना होगा।

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

मुझे नहीं पता कि कुछ अच्छी प्रमाणीकरण विधि क्या है, जो कार्यान्वित करना आसान हो सकता है, मुझे यह भी सुनिश्चित नहीं है कि इस एपीआई को कैसे बनाया जाए (एक्सएमएल या सादे रीस्ट एपीआई का उपयोग जीईटी/पोस्ट डेटा के साथ करें)। मैंने अमेज़ॅन, पेपैल और अन्य कंपनी एपीआई के साथ काम किया है, वे आरईएसटी सेवाओं का उपयोग करते हैं (पेपैल एक बदसूरत _cmd जीईटी पैरामीटर का उपयोग करता है जबकि अमेज़ॅन बेहतर यूआरआई का उपयोग करता है) यह जानने के लिए कि क्या करना है, लेकिन एसओए के बारे में कुछ पढ़ना ऐसा लगता है कि लोग भी उपयोग करते हैं एक्सएमएल। निस्संदेह मुझे यह भी ध्यान रखना होगा कि वेब इंटरफ़ेस लॉग इन उपयोगकर्ता को पहचानने, अनुमतियां (टोकन या जो कुछ भी) प्राप्त करने में सक्षम होना चाहिए और जानकारी दिखाने के लिए सेवाओं के साथ इसका उपयोग करना चाहिए। तो मुझे यकीन नहीं है कि एसओए वास्तुकला का एक प्रकार है जिसे मैं वास्तव में बना रहा हूं ... क्या यह एसओए के बजाय सास है? मुझे लगता है कि जेएसओएन या इसे कार्यान्वित करने के लिए कुछ ऐसा करने के लिए रीस्टफुल एप्लिकेशन का उपयोग करना बेहतर होगा (मैं एक्सएमएल का बड़ा प्रशंसक नहीं हूं, मुझे यह भी वर्बोज़ लगता है)।

स्पष्टता के लिए मैं यहाँ लिस्टिंग कर रहा हूँ मेरे सवालों का:

  1. एसओए या सास (या दोनों) कहा जाता है वास्तुकला के इस प्रकार है?
  2. जो मैं प्राप्त करना चाहता हूं उसके लिए एक अच्छा कार्यान्वयन क्या है? (कृपया इसे जितना संभव हो उतना विस्तृत समझाएं)
  3. क्लाइंट के लिए किस प्रकार का प्रमाणीकरण अधिक उपयुक्त है (उपयोगकर्ता टोकन बनाम ओएथ या समान)
  4. क्या आपके पास इस तरह के प्रोजेक्ट के लिए कुछ सुझाव है?

मेरे पास ऐसा करने के लिए लगभग 3 महीने हैं, इसलिए मैं कुछ वास्तविक जटिल नहीं कर सकता (इस तथ्य के अलावा कि यह एक प्रोग्रामर के लिए यथार्थवादी नहीं होगा)।

मुझे पाइथन (डब्लूएसजीआई ढांचे), रूबी, सी/सी ++ और अन्य भाषाओं (.net को छोड़कर) पर रूबी पता है और मैं इसे एक लिनक्स पर्यावरण (MySQL या Postgres, या यहां तक ​​कि एक NoSQL के तहत भी विकसित करना चाहता हूं) सही विकल्प के लिए कोई सुझाव है), मैं इन सेवाओं को स्वतंत्र कार्यक्रमों के रूप में कई भाषाओं को भी जोड़ सकता हूं।

मैं यहां क्या चाहता हूं कि कुछ अच्छा दृष्टिकोण और कुछ अच्छा सुझाव हो।

धन्यवाद!

उत्तर

1

मैं सास को वास्तुकला के बजाए एक व्यावसायिक मॉडल के रूप में परिभाषित करता हूं; हालांकि सभी व्यावसायिक डोमेन आवश्यकताओं की तरह यह सिस्टम आर्किटेक्चर को प्रभावित करेगा लेकिन यह स्वयं नहीं है। आपने जो परिभाषित किया है वह एक सेवा उन्मुख वास्तुकला आवश्यक है।

आपका कथन "स्वतंत्र और नई सेवाओं की पेशकश करने के लिए उन्हें गठबंधन करने की क्षमता" आवश्यक गैर-कार्यात्मक डिज़ाइन आवश्यकता है जो एसओए का सुझाव देती है।

एसओए के लिए अच्छा कार्यान्वयन बहुत जिम्मेदारियों के स्पष्ट चित्रण के साथ अच्छी तरह परिभाषित और लचीला इंटरफेस रखने के बारे में है। हालांकि इसके बारे में अनुशासनिक होना मुश्किल है। सबूत खाने में है; क्या यह लचीला पुन: उपयोग प्रदान करता है। मेरा सुझाव एसओए डिजाइन पैटर्न संसाधनों को पढ़ने में समय व्यतीत करता है, और उपयोग के लिए उचित संदर्भ के संबंध में परिभाषित विशेषताओं को समझता है। फिर एकल जिम्मेदारी सिद्धांत लागू करने के उचित स्तर लागू करें। सी.एफ़ (Domain) Space Based Architecture एसओए मेटा-पैटर्न की तरह है।

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

मुख्य सुझाव अध्ययन किया जाता है और दूसरों के अनुभव से सीखते हैं:

+0

धन्यवाद, कमाल का जवाब! आपको यह सही मिला, कि संसाधन बहुत उपयोगी हैं, मैंने कुछ किताबें भी खरीदी हैं, यह एक बहुत ही रोचक व्यवसाय है! –

0

एसओए बलों एक्सएमएल उपयोग करने के लिए नहीं है।

वर्तमान में वेब तकनीकें हावी हैं, और भविष्य को परिभाषित करती हैं। इसलिए हमने अपनी कंपनी में जेएसओएन रीस्टफुल सेवाओं को नींव के रूप में चुना। और एसओए सिद्धांतों के रूप में। किसी भी भाषा या ढांचे

इस्तेमाल किया जा करने के लिए सक्षम करने के लिए (FYI हम वसंत MVC आधारित वेब सेवाओं के साथ जावा का उपयोग करें -

वहाँ क्योंकि SOA और अच्छा कार्यान्वयन के उद्देश्य के है, भाषाओं सुझाव देने के लिए कोई मतलब नहीं है नोड.जेएस, पीएचपी)

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