2012-07-16 26 views
8

जब गूगल के में लॉग इन किया है, कई अन्य सेवाओं के लिए Google मुखपृष्ठ लिंक (जैसे Gmail, प्ले, ड्राइव)।गूगल के एसओए वास्तुकला - गूगल के वेब यूजर इंटरफेस के लिए सामग्री को समेकित करना

प्रश्न 1) क्या कोई एसओए पैटर्न है जो इस तरीके का वर्णन करता है कि वे प्रत्येक सेवा के लिए यूआई को कम से कम जोड़ते हैं, लेकिन साथ ही साथ मानक मेनू बार, मानक रूप और अनुभव और उनके अनुप्रयोगों पर एकल साइन भी प्रदान करते हैं?

Q2) वहाँ किसी भी प्रलेखन उपलब्ध है कि यूआई सामग्री लिंक करने के कारण उनकी वास्तुकला का वर्णन करता है?

संपादित

मैं Firebug के साथ एक नज़र ले लिया है और ऐसा लगता है मेनूबार और आवेदन के बीच दोतरफा संबंध मौजूद है। मेनूबार में प्रत्येक एप्लिकेशन का एक लिंक है, लेकिन प्रत्येक एप्लिकेशन में मेन्यू बार भी शामिल है।

मैं इसे eclipse UI से जोड़ सकता हूं, जहां कोई एप्लिकेशन एप्लिकेशन मेनू में योगदान दे सकता है, लेकिन प्रत्येक मेनू ग्रहण अनुप्रयोग के संदर्भ में रहता है जो सभी अलग यूआई प्लगइन को जोड़ता है।

तो गूगल अपने UI में यह क्या करता है? ऐसा लगता है कि प्रत्येक जावा में मेन्यू बार इंजेक्शन के साथ कुछ जावास्क्रिप्ट जादूगर चल रहा है।

+0

, आप स्पष्ट या उसे संक्षिप्त कृपया सकता है? आपके प्रश्न उपयोगकर्ता इंटरफ़ेस पर ध्यान केंद्रित करने लगते हैं, लेकिन क्या यह वास्तव में आप चाहते हैं? बस फायरबग चला रहा है और यह पता लगा रहा है कि कौन सी फाइलें डाउनलोड की गई हैं और निष्पादित की गई हैं, इस बारे में बहुत कुछ पता चलता है कि उपयोगकर्ता इंटरफ़ेस संसाधन कहां से लोड किए गए हैं। उनके सिंगल-साइन ऑन समाधान पर कई पेपर प्रकाशित किए गए हैं (Google और अन्य दोनों द्वारा)। –

+0

मैं डेविड से सहमत हूं, प्रश्न अच्छे उम्मीदवार हैं, ताकि वे एक प्रश्न लिखने के बजाय एक किताब लिख सकें। –

+0

मैंने सवाल संपादित किया है, उम्मीद है कि यह अब थोड़ा और सटीक है? –

उत्तर

1

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

क्या होता है कि सीएमएस (.NET आधारित) कस्टम और उपयोगकर्ता नियंत्रण (.ascx) अंतिम aspx पेज रेंडर करने के लिए फ़ाइलों का उपयोग किया है। ये ascx फ़ाइलें (शीर्ष, पादुका और हिंडोला के लिए), सभी शैलियों और जावास्क्रिप्ट उन फ़ाइलों से संबंधित केन्द्र बनाए रखा जाता है और उसके बाद सभी स्थानीय वेबसाइटों के लिए दोहराया (है कि हमारे सम्मेलन के अनुसार _CSS और _JS चालाकी से नहीं कहा जा सकता है एक फ़ोल्डर में डाल) ।

सीएमएस उदाहरण - एक देश कार्यालय के लिए विशिष्ट - फिर अपने स्वयं के पेज बनाएगा लेकिन वे सभी केंद्रीय एप्लिकेशन द्वारा प्रदान किए गए इन सामान्य शीर्षकों और पाद लेखों का उपयोग करेंगे।

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

आर्किटेक्चरल पॉइंट व्यू से, मैं इसे UI के लिए प्लगइन आर्किटेक्चर के किसी प्रकार के रूप में देखता हूं, इसलिए आप इसे ग्रहण आर्किटेक्चर से जोड़ने का अधिकार रखते हैं। केंद्रीय सीएमएस एक इंटरफेस प्रदान करने वाला एक अमूर्त प्रकार है जो विशिष्ट साइट उदाहरणों का पालन करना और इसे लागू करना है।

abstract class GoogleSite 
{ 
    Control Header { get; set; } 
    Control Footer { get; set; } 

    public string Title { get { return "Default title"; } } 

    public abstract void ProvideContents(); 
} 

class Gmail: GoogleSite 
{ 
    //still using same header and footer but Title is different 
    override public string Title { get { return "Gmail"; } } 

    public override void ProvideContents() 
    { 

    } 
} 


class GPlus: CentralCMS 
{ 
    //Another CMS not overriding the title but Providing different contents 
    public override void ProvideContents() 
    { 

    } 
} 
+0

यह बहुत अच्छा है। क्या आपको पता है कि पैटर्न को क्या कहा जाता है, या कहा जा सकता है? शायद "यूआई योगदान पैटर्न"? एक बार इस पैटर्न का नाम हो जाने के बाद, अन्य क्षेत्रों से दृष्टिकोण दिखाना आसान होगा, उदाहरण के लिए: [virgo snaps] (http://www.eclipse.org/virgo/documentation/virgo-documentation-3.5.0.RELEASE/ डॉक्स/स्नैप्स-गाइड/एचटीएमएलएसलिंग/वर्गो-स्नैप्स-गाइड.html), या [मेवेन वॉर ओवरले] (http://maven.apache.org/plugins/maven-war-plugin/overlays.html) –

+1

मैं इसे मानता हूं एक प्लगइन पैटर्न। एमएसडीएन से: प्लग-इन पैटर्न एक ऐसा पैटर्न है जो कक्षाओं के व्यवहार को एक सार वर्ग में प्लग करने की इजाजत देता है, जो बदले में कोर क्लास में प्लग करता है। यह एक नया उप-वर्ग बनाता है जिसमें विशिष्ट संदर्भ में आवश्यक क्षमताओं को शामिल किया गया है। – kabaros

+0

गैर-वर्ग आधारित भाषाओं के साथ एक ही अंतिम परिणाम प्राप्त करना संभव है, इसलिए मैं चर्चा से उन दृष्टिकोणों को खत्म नहीं करना चाहता हूं। "यूआई प्लग-इन पैटर्न" के बारे में कैसे? –

3

गूगल खुद Closure Library का उपयोग करता है यूआई भाग के लिए:

बंद लाइब्रेरी क्या है?

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

[...]

कौन बंद लाइब्रेरी का उपयोग करता है?

खोजें, Gmail, नक्शे, डॉक्स, साइटों, किताबें, रीडर, ब्लॉगर, कैलेंडर, गूगल +, तस्वीरें

https://developers.google.com/closure/library/?hl=en

3

hawt.io परियोजना एक दिलचस्प दृष्टिकोण है:

इतना है कि यह वास्तव में क्या सेवाओं एक JVM के अंदर हैं की खोज और गतिशील रूप से सांत्वना उन्हें एक इंटरफेस प्रदान करने को अपडेट कर सकते

hawtio, अत्यधिक मॉड्यूलर है।

लिंक here

नहीं काफी क्या आप के लिए यहाँ पूछ रहे हैं पर स्पष्ट