Posted on 2010-12-29 00:31
浩毛 阅读(2718)
评论(1) 编辑 收藏 引用 所属分类:
服务器开发
SOA:Service-oriented architecture
最近在做游戏服务器引擎,查了不少有关SOA的设计方面的资料。发现JAVA世界有相当多的技术标准。
其中比较好的是OSGi (
http://www.osgi.org/About/WhatIsOSGi),OSGi技术是面向Java的动态模型系统。OSGi服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选环境。Java提供在多个平台支持产品的可移植性。OSGi技术提供允许应用程序使用精炼、可重用和可协作的组件构建的标准化原语。这些组件能够组装进一个应用和部署中。
参考它的思路,结合C++语言的特点,我将一个服务器基础框架设计成了这样一种:
一个服务器应用,由多个组件组成,组件物理上可以是动态库,也可以是EXE里一段实际的代码,每个组件可以向ApplicationFramework注册多个服务(比如日志服务,网络服务等)。
ApplicationFramework启动时,通过配置文件,动态加载和启动组件,读取服务的可配置属性。Framework触发IComponentActivator的OnStart() 和OnStop()事件,在Start事件中,可以注册组件自己的服务,也可以加入一个服务监听器来监听关心的服务的注册,注销等事件。
我随便画了几个大概的接口: