# dsb-template **Repository Path**: gvin_gui/dsb-template ## Basic Information - **Project Name**: dsb-template - **Description**: DSB (Dynamic Service Bean) 框架是基于JAVA反射 (Reflection) 、动态代理 (Proxy) 、Socket、RMI等技术实现的系统框架 (Framework), 基于DSB框架开发的功能扩展模块称为动态服务 (Dynamic Service), 在DSB内核的支撑下,遵循DSB规范的动态服务模块可以被动态加载、远程热部署、远程调用等。 基于DSB框架的软件系统具有良好的扩展性和伸缩性,系统模块耦合性很低、接口界限分明,实现系统各个模块的可插即可用(PnP)特性。基于DSB框架的系统无论在开发阶段还是在系统上线运行、系统维护、升级开发阶段都具有良好的扩展性和可维护性。并且支持集中式与分布式的部署方式,分布式部署时,系统任何一个模块(包含该模块所依赖的其他模块)可以很方便地分离出整个系统而独立部署,从而分散集中式部署时整个系统的运行负荷。 dsb-template是基于DSB框架构建的基本模板程序,以此模块程序为基础可以快速构建Java服务端应用。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-01-09 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 1.how to build this common project? answer: ant -f build-common.xml 1) DSB (Dynamic Service Beab) is a framework to manage it's dynamic service a dynamic service must have an interface to expose all it's functionalities, which can be called remotely or locally by other services. Dynamic service started or initialized by DSB framework, this means the lifecyle of all dynamic service is controlled by DSB framework 2) Dynamic services must have one ore more deployment descriptors, each service must have one bean desriptor ( refer to BeanDescriptor.xsd), bean deployment descriptor is a collection of bean descriptor (refer to BeanDeployment.xsd), which contains one ore more bean desriptor. 3) Dynamic service can have one or more i18n resource files(local i18n resource), services deployed into one bean descriptor(refer to BeanDeployment.xsd) can share the same i18n resource(global i18n resource). those i18n resource can be retived by call: ServiceContext.getString(String key) 4) Dynamic service can have one or more configuration files, those config files must place into folder config/service/{serviceName}, and can be retrived by call ServiceContext.getConfigFile(String fileName) 5) Dynamic service also can have one or more resource files, those resource files must pace into folder resource/service/{serviceName}, and can be retrived by call ServiceContext.getResourceFile(String fileName) 6) DSB (3.0) is only applicable for jre1.6 or higher version, while DSB (1.0) is only applicable for jre1.5 or lower version 7) compare to version 2.0, this version enable call forwarding as per service name or method name or method parameter value. 8) 改进了lookup机制(针对整个service的转发机制, 为了提高效率,不能根据方法名以及参数来转发) 9) 改进了service启动机制(dsb-conf.xml新增startupservices, 因为有些service必须优先启动, 系统启动时会忽略service的startup属性而强制启动) 10) 改进了service启动机制(dsb-conf.xml新增disabledservices,因为有些service只是作为调用引入的包而无需启动, 系统启动时会忽略service的startup属性而不启动) 11) 新增了查看service启动状态/启动(start)/关闭(close)/刷新(refresh)接口 3.2 新功能 (2014-12-7) 12) HA 特性: 在ServiceFactory新增方法: T lookup_ha(String serviceName, String haName) ServiceProxy lookup_ha(String haName) throws Exception; 实现方法调用的高可用性high availability (HA) 在调用上述方法前,需要在system properties中设置HA name,例如System.setProperty("dsb_ha_1", "localhost:20000,localhost:10000"); IP地址和端口之间通过分号":"连接,多个配置项目用逗号","分割,此项配置支持1~n个配置项,这意味着HA集群中可支持n个DSB服务热备,实际情况下,2个热备足够使用 13) 3.2版本中新增HA特性后, service forward功能暂不可用,因为forward有递归实现方式,存在一定风险 14) 3.5版本中除去了service forward功能 --最后更新时间为 2015-05-01 --jdk version: 1.6.0_45