This project is read-only.

WDAB components: runtimes, modules and service controllers


Runtime is the highest level component of WDAB. There is at most one runtime instance in one WDAB instance at any time. It is a logical container for all other components. RuntimeBase is responsible for starting and stopping modules and for communicating with service controllers to obtain proxies for services. It is also a base class for real runtimes. Currently, there are two concrete runtime classes:
  • FullRuntime which is the default one. It provides functionality for both hosting services and consuming services. A typical host for a full runtime WDAB is Windows service.
  • HttpRuntime which is the reduced version specially crafted for using in web environment. This runtime enables only service consumption. It is more lightweight and can be instantiated and disposed on a per-request basis.


Modules provide real functionality to WDAB. Their main reason is to create instances of service controllers according to current configuration. Currently there are two modules in WDAB:
  • RemoteServicesModule which enables WDAB runtime to consume services provided by other WDAB hosts.
  • LocalServicesModule which enabled WDAB runtime to host services and to consume localy hosted services.

Service controllers

Service controllers are responsible for providing proxies for service instances that are transparent in terms of localisation. Every module provides controllers of type specific to the module functionality. Local service controllers need only to instantiate a servant (using standard WCF mechanism). Remote service controllers handle load-balancing between instances of same service. They create proxy for the best-performing service at the moment of proxy request.

Last edited Nov 23, 2008 at 7:44 PM by SzymonPobiega, version 1


No comments yet.