![]() ![]() Internet browsers are another common product example using the microkernel architecture: viewers and other plug-ins add additional capabilities that are not otherwise found in the basic browser (i.e., core system). However, once you start adding plug-ins, it becomes a highly customizable and useful product. Downloading the basic Eclipse product provides you little more than a fancy editor. Perhaps the best example of the microkernel architecture is the Eclipse IDE. When creating standard contracts (usually implemented through XML or a Java Map), it is important to remember to create a versioning strategy right from the start. In such cases, it is common to create an adapter between the plug-in contact and your standard contract so that the core system doesn’t need specialized code for each plug-in. Custom contracts are typically found in situations where plug-in components are developed by a third party where you have no control over the contract used by the plug-in. The contracts between the plug-in modules and the core system can range anywhere from standard contracts to custom ones. The architecture pattern itself does not specify any of these implementation details, only that the plug-in modules must remain independent from one another. The type of connection you use depends on the type of application you are building (small product or large business application) and your specific needs (e.g., single deploy or distributed deployment). Plug-in modules can be connected to the core system through a variety of ways, including OSGi (open service gateway initiative), messaging, web services, or even direct point-to-point binding (i.e., object instantiation). It might also contain a WSDL (Web Services Definition Language) if the plug-in is accessed through SOAP. For example, a plug-in for tax software that flags high-risk tax audit items might have a registry entry that contains the name of the service (AuditChecker), the data contract (input data and output data), and the contract format (XML). This registry contains information about each plug-in module, including things like its name, data contract, and remote access protocol details (depending on how the plug-in is connected to the core system). One common way of implementing this is through some sort of plug-in registry. The core system needs to know about which plug-in modules are available and how to get to them. Either way, it is important to keep the communication between plug-ins to a minimum to avoid dependency issues. Generally, plug-in modules should be independent of other plug-in modules, but you can certainly design plug-ins that require other plug-ins to be present. The plug-in modules are stand-alone, independent components that contain specialized processing, additional features, and custom code that is meant to enhance or extend the core system to produce additional business capabilities. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |