HiveMind是一个服务(services)和配置(configuration)的微内核。
服务:HiveMind的服务由一系列容易访问和组合的普通Java对象组成(Plain Old Java Objects)。每一个服务最好用一个被它实现了的接口进行定义(但是HiveMind现在并不强制这点)。在需要的时候HiveMind会负责实例化每一个服务并且进行必要的配置。另外,HiveMind可以通过依赖注入让服务协同工作。
配置:HiveMind允许你为你的服务提供一个由你规定格式的复杂配置信息。同时,也可以将在不同模块里申明(contribution)的配置信息集中起来,并将它们全部转化为对象数据。在HiveMind的配置支持下,服务的体系结构可以和数据驱动的解决方案,完美的,有效的无缝结合。
微内核:HiveMind是一个用于创建应用程序的框架,而不是一个应用程序或应用服务器。HiveMind的“核心”是启动逻辑。它知道如何解析和理解模块部署描述符,并使用它们去实例化并初始化所有的服务和配置。
在HiveMind里,一个服务是某个Java接口的实现。和其它框架,比如说SOAs(Service Oriented Architectures, 再比方SOAP或EJBs),不同的是HiveMind只关心组合处于同一个虚拟机上的Java代码。HiveMind通过描述符描述不同的服务、服务的生命周期和如何将服务组合在一起。HiveMind非常注意线程安全和单例服务对象的延迟创建。因此你不必在代码里面关心这些。
HiveMind is an services and configuration microkernel. Its features are also referred to as Inversion of Control (IoC) Container or Lightweight Container. The adoption of HiveMind in an application ensures the use of certain design principles which improve encapsulation, modularization, testability and reusability.
- Services: HiveMind services are POJOs (Plain Old Java Objects) that can be easily accessed and combined. Each service ideally defines a Java interface it implements (this is not mandatory). HiveMind takes care of the life cycle of services. It instantiates and finalizes services and configures each service just as necessary. HiveMind lets services collaborate with each other via dependency injection, so that the service code itself is released from the task of looking up dependencies.
- Configuration: HiveMind allows you to provide complex configuration data to your services in a format you define. HiveMind will integrate the contributions of such data from multiple modules and convert it all into data objects for you. HiveMind configurations allow for powerful, data-driven solutions which combine seemlessly with the service architecture.
Related projects and HiveMind Extensions
This section lists related projects and HiveMind extensions that have been created by third parties.
Tapestry | Web framework that uses HiveMind under the covers. |
HiveMind Utilities | Repository of HiveMind extensions for the support of transaction handling, security, remoting, events and rich clients. |
Crispy | Client for Remote Invocation for different kinds of services via proxies. Offers an extension for the invocation of HiveMind services. |
Mule | Enterprise Service Bus (ESB) messaging framework that supports HiveMind as object container. |