سؤال

واحدة من مبادئ SOA هو: "هل الخدمات الذاتية". لقد 2 الخدمات. خدمة ليعتمد على خدمة B. خدمة للا يمكن خدمة العملاء ما لم يكن خدمة B وتشغيلها. هل تنتهك مبدأ هنا؟

وأو إذا المستقلة يجب أن يعني "تنفصل"، يمكنني تلبية تينيت إذا كان لدي المأمونة الجانب (قل مثيل آخر من الخدمة B تشغيل في مكان آخر أن متصلا إذا المثال الرئيسي هو أسفل.)؟ وهذا قد تلبية متطلبات توفر لي، لكنني لست متأكدا كيف أن هذا يمكن أن تقلل من بلدي التبعية. نعم، يمكن أن المأمونة الجانب حتى تكون الخدمة C من طرف ثالث وفي هذه الحالة أنا لا تحسين الحكم الذاتي بلدي.

وأم أن مبدأ تعني فقط أن الخدمات يجب أن تكون مصممة وفقا "fifedoms" مع واجهات واضحة المعالم للحصول على البيانات داخل وخارج. ومع ذلك، يبدو أن بعض المعلمون أن تعتقد أنك تحتاج حتى لتخزين هذه البيانات تظهر داخليا للحد من التبعية والحفاظ على الحكم الذاتي الخاص بك ...

هل من الخطأ إذا كان لي أن علاج الخدمات والمكونات مع الرسائل؟ :)

والأفكار؟

هل كانت مفيدة؟

المحلول

وانظر هذا الرد SOA العقيدة . انظر أيضا وكسورية كوكبة من الحكم الذاتي الخدمات .

و"يجب نشر الخدمات وإدارتها وإصداراتها بشكل مستقل من خدمات و / أو التطبيقات الأخرى التي تعتمد عليها."

والحكم الذاتي لا يعني معزولة أو قائمة بذاتها تماما.

وبدلا من ذلك، قد يكون لديك "كوكبة" من خدمتين. نعم، أنها تعتمد على بعضها البعض. لا، A لا يفطر عندما يتم نقل B أو ترقية. ولا يفعل كسر عندما يتم تغيير الداخلية غير واجهة ب.

وبالمثل - من وجهة B وجهة نظر - والترقية إلى الداخلية وللا تموج من خلال التغييرات في واجهة B والداخلية

وتتطور وAPI بشكل مستقل. مخطط، والرسائل، وتطبيقات مستقلة. حدوثها فقط أن أشير إلى بعضها البعض.

و"الخدمة لا يمكن خدمة العملاء ما لم يكن خدمة B وتشغيلها" - لا تقلق. لا يمكن خدمة لخدمة العملاء إذا كان لأسفل، إما. خدمة أسفل مشكلة. لا يهم من انها B (الذي يعتمد A) أو A. والتبعية له علاقة مع A أو B يجري موثوق به أو متاح شيء.

نعم، والخدمات ومحددة جيدا واجهات مستقلة. و<م> التنفيذ من A يعتمد على B، ولكن واجهة لا.


وتحرير.

و"يبدو أن بعض المعلمون أن تعتقد أنك تحتاج حتى لتخزين هذه البيانات تظهر داخليا للحد من التبعية والحفاظ على الحكم الذاتي الخاص بك ..."

لا يمكن رؤية هذه النقطة. إذا ويعتمد على B، والتغيرات الخوارزمية B، ونسخ من البيانات B هي - أيضا - القديمة. يعتمد على يعني عادة العيش، والعمل، ما يصل إلى المعاملة العلاقة.

والمشكلة هي أن B قد يكون بطيئا، مما يجعل وبطيئة، مما يجعل التطبيق الذي يستخدم وبطيئة. تلك هي المشكلة. ولكن هذا ليس دعوة لكسر قواعد الحكم الذاتي وجود حفاظ على مخبأ سري من البيانات القديمة من B.

نصائح أخرى

والحكم الذاتي الخاص بك هو فقط <م> تحسين من خلال وجود خدمة النسخ الاحتياطي. ما إذا كان كل من الخدمات B و C تنخفض؟ ثم يذهب الخدمة الخاص بك إلى أسفل. يمكنك تحسين الحكم الذاتي الخاص بك (وأدائك) إلى أبعد من ذلك من خلال التخزين المؤقت النتائج من الخدمات الخارجية. وبهذه الطريقة، إذا B و C تنخفض، يمكنك الاستمرار في خدمة بعض من العملاء مع النتائج المخبأة. طالما كنت تعتمد على الخدمات 3rd الطرف، على الرغم من أنك لن تحقيق الحكم الذاتي بنسبة 100٪.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top