در معماری توزیع شده یک سیستم نرمافزاری، باید مولفههای سیستم دقیقا مشخص شوند. هر یک از این مولفهها باید به گونهای تعریف شده باشند که بتوانند بر روی یک سیستم کامپیوتری مجزا قرار گیرند. اما نحوه توزیع این مولفهها در زمان کار و بر اساس میزان بار سیستم تعیین میگردد. مدیر سیستم در خصوص نحوه توزیع این مولفهها تصمیم گیری میکند. در صورتی که بار کاری یک ماشین پایین باشد، میتواند تعداد مولفههای بیشتری را درون خود جای داده و اجرا کند. بنابراین میتوان برخی از یا تمام مولفههای یک سیستم نرمافزاری را بر روی یک ماشین قرار داد. اما با وجود اینکه این مولفهها در کنار یکدیگر و بر روی یک سیستم قرار گرفته اند، باز هم برای برقراری ارتباط بین یکدیگر از ارتباطات شبکهای استفاده میکنند. در این مقاله روشی پیشنهاد میشود که بتوان بر اساس این که مولفههای یک سیستم نرمافزاری در کنار هم و بر روی یک ماشین قرار گرفته اند و یا از هم فاصله داشته و بر روی چند ماشین نشستهاند، سیاستی را اتخاذ کرد که برقراری ارتباط بین آنها با کمترین هزینه زمانی صورت پذیرد. این روش بر روی چند سیستم نرمافزاری پیاده سازی شده و نتایج خوبی را به دست آورده است، به گونهای که در زمانی که مولفههای سیستم بر روی ماشینهای مجزا قرار داشته باشند، سرعت اجرای کار تغییری نکرده و در زمانی که مولفهها در کنار هم و بر روی یک ماشین قرار گرفته باشند، سرعت ارتباط بین مولفهها نسبت به زمانی که از این روش استفاده نشده است، بیشتر میشود.