标题：KOOF
公司简介
北京世纪金政信息技术有限公司作为一家应用软件开发商和应用系统集成商，本着高技术、高起点、高要求的发展原则，发扬信息产业的独特优势，致力于信息产业领域产品的研制、开发、工程调试和售后服务。主要业务集中在电子政务和电子商务应用领域，以自主开发的应用软件产品为基础，针对政府和企业网络建设的实际需求，推出多个专业领域的解决方案。公司正朝着以技术创新为基础，迅速形成产业优势的方向发展。                              
前言
1.1. 开发者的挑战伴随着信息管理系统的发展，它所需要解决的问题也越来越复杂，变化成为它最主要的特性之一。这种变化包含以下几个方面
● 基本商业规则的变化
各行各业为了在竞争中立于不败之地，都千方百计的细分市场，不断变化自身的业务规则以满足不同的市场需要。
● 基础IT设施的变化
从操作系统的变化到数据库的变化到应用服务器的变化，这种变化会经常发生。
● 使用涉众的变化
从当地到本国到全球，目标涉众在不断增加。1.2. 开发平台的现状为了解决开发者面临的挑战，不同的商业公司提出了自己的解决方案，这类平台主要分成两种：
● 开发型平台
这类平台为开发者提供了以组件为单位的开发支持，它们一般认为自己的组件技术能够基本解决开发者90%以上的应用，但是使用这类组件的学习成本较高。平台的开发商一般都试图屏蔽底层实现细节，但是这样会导致另外一些细节问题的产生。另一方面，开发者将会被绑定在这类平台上从而失去了主动开发的能力，自身的核心价值只能通过该平台体现。
● 配置型平台
这类平台一般是为某类专用系统而定制的，平台提供商提供了应用的配置能力，但是这类平台对扩展开发不能提供有力的支持，并且不支持多人的协同开发，因此导致系统开发商花费很大的成本在定制开发上，最终得不偿失。1.3. KOOF 3.0的核心价值KOOF 3.0开发平台是一款以开发为基础，以配置为手段的可扩展的业务应用开发平台。管理软件的核心价值是用户的需求，当开发商能够以工具的形式积累自身多年的用户需求，其核心价值是显而易见。KOOF 3.0正是以这个出发点为主旨而设计开发的，它使得任何一个开发商都可以自己来开发用于开发应用的工具。
另一方面，KOOF 3.0是完全基于开源软件的一个平台，其本身并不试图封装过多的开发细节，而是依靠开源社区的力量，提供对软件的最大支持。这使得开发商可以很轻易的找到适合的人员使用KOOF 3.0进行开发或对KOOF 3.0进行开发。
再次，KOOF 3.0以不同的形式对多操作系统、多数据库、多应用服务器和多语言提供了支持，使得开发商可以无任何后顾之忧的来面对形形色色的用户。
KOOF 3.0开发平台简介
2.1. KOOF 3.0的设计思路KOOF 3.0认为设计是因地制宜的，是随需应变的。它不试图将用户固化在所谓的三层结构或者是MVC框架下。它相信设计模式的存在，而每个“两阶段组件”都是用户定义的一种模式。它希望开发商能够以最简单的设计完成用户的需求，因此在KOOF 3.0中我们可以看到SPRING、看到HIBERNATE、看到STRUTS。
KOOF 3.0不认为目前存在任何一种形式或者结构能够真正意义上冲破“银弹理论”，任何认为开发软件如同搭积木的理论其本质只能是金玉其外。软件理论的发展和其它任何领域的理论发展都是一样的，是需要经过漫长的岁月沉淀而逐步形成的，是必须经过一个否定再否定的过程而日臻完善的。当然，我们不反对真正意义上的天才的存在，他们能够从宏观上定义一种思想，一套理论。但是让这些空中楼阁真正落地的是实干家，而所有这些实干家没有哪个不是经历数载甚至一生的拼搏才能对其毕生追寻的信仰有所诠释。因此，从这个意义上看，KOOF 3.0并不承诺它能对某种开发带来多少百分比的效率的提升，它要求使用者本身和KOOF 3.0一样去积累、去实践。2.2. KOOF 3.0的设计结构KOOF 3.0是以微内核思路建构的一个业务应用运行平台，它以容器的形式提供了组件在应用级的运行和管理环境，这些基础服务环境包括：
● 可插拔的应用设计时IDE；
● 纯JAVA的J2EE运行时应用；
● 基础WEB层权限校验；
● 应用展现界面，
● 包括基本登陆过程、树形功能展现界面和应用展现界面；
● 基本应用的部署和缓存机制；多语言环境的自动侦测和转换；
● 多数据库访问的架构策略。
平台通过以上服务解决了一般性应用的基础结构，达到了对于多操作系统、多数据库、多应用服务器和多语言的支持。
平台是基础、是框架、是环境，但是在其上工作的组件是真正的主角，平台和组件共同组成我们需要的开发工具，在KOOF 3.0平台上可以运行如下三类组件：
● KOOF 3.0两阶段组件
KOOF 3.0两阶段组件是平台的核心组件。这种组件以工程的方式定义一类对象，并设定了这类对象的两个阶段－设计阶段和运行阶段。在设计阶段，通过对业务对象的展现和保存完成设计活动，通过对它的校验和发布完成部署。在运行阶段，它可以选择性接受平台提供的各种服务，并完成指定的功能。
这类组件的核心思想是设计器建模驱动运行期的运行，支持无代码开发和使用代码的调整。目前平台中提供的这些组件体现了KOOF 3.0对于应用开发的模型构造思路，即对于一般性管理软件的解决方案。但同时这些组件还只能覆盖部分管理软件的解决方案，不能满足所有的需求。KOOF 3.0对此的解决方案就是开放，以开放的心态接受各种形式的模型。而这点正是它协助开发商积累模型经验的主要优势。
● KOOF 3.0基础数据组件
基础数据组件指的是维护一组数据关系的组件，这类组件包括被优化过的数据库结构、对于数据关系的维护界面和一套设计完善的对于数据关系的访问接口。KOOF 3.0把这类组件称为基础数据组件，为应用系统提供数据支持。
●  KOOF 3.0应用开发组件
应用开发组件指对于开发应用的常见行为、方式提供封装、从而完成特定功能的一类组件。
通过三类组件从不同维度完成对于系统的分割，并且以自身的方式提供对于应用开发的支持。2.3. KOOF 3.0的主要用途KOOF3.0适合以下几种用户进行系统规划和构造：
● 基本的企业化信息系统的构造人员
KOOF 3.0的三类组件提供了基本的企业信息化构造的能力，构造人员可以通过配置完成流程建立，协同工作，信息检索和权限控制。
● 随需应变的系统开发团队
为开发团队提供基本的开发框架，伴随着三类组件的合理运用，以及在组件中注入的个性化代码，确保团队具有即使响应和随需应变的能力。
● 在垂直行业建立核心价值的开发团队
以两阶段组件为基础，建立可以对特定行业进行覆盖的KOOF 3.0扩展系统，进一步降低开发成本，确保一致性的软件开发质量。
KOOF 3.0基础平台简介
正如前文提到，KOOF3.0平台在设计之初，其着眼点就是要构造一个可扩展、可持续开发的平台，平台本身是提供了一个用于运行组件的基本环境，并且完成一类基础功能。
● KOOF 3.0两阶段组件设计IDE
  图：集成的IDE环境，可在IDE中直接调式开发的应用
它是基本的两阶段组件的设计平台，提供了组件显示、保存、校验和部署的框架，并且为组件的配置管理信息和调试方式提供了支持。它使用ECLIPSE RCP的形式开发，运行在其上的插件系统根据自身需要完成模型数据的设计和部署。两阶段组件的核心意图是将可以参数化的系统通过配置的方式在系统中建立，并且运行在J2EE的环境中，这使得软件最大限度的保证了一致性的质量。当然，它需要设计者对需要建立的系统有深刻的认识和全面的分析，并且能够熟练的利用J2EE的各种标准完成各种形式的部署。目前对于两阶段组件，开发平台提供数据库访问、修改资源文件、生成JAVA字节码并拷贝到服务器端、向服务器端拷贝文件、部署HIBERNATE HBM文件，部署SPRING配置文件等工具协助两阶段组件完成部署。当然，用户自定义的两阶段组件还可以根据需要自定义部署过程。
● 纯JAVA的J2EE运行应用
在服务器端KOOF 3.0是一个标准的J2EE的应用程序，它使用的全部是于容器无关的轻量级组件技术，从而保证它可以被部署到多种应用服务器上，并且运行到多个操作系统中。
● 基础WEB层权限校验
权限问题是任何应用系统必然需要考虑的问题，目前平台上实现了基于一维角色的权限管理系统，并且提供了ACL访问控制的API接口。在权限系统之上，提供了对于WEB资源的认证和授权。
● 应用展现界面
  图：应用展现界面
一个基本的WEB显示界面，包括基本登陆过程、树形功能展现界面，功能选择列表（可配置、带权限授权）、一个可定制的快捷方式桌面、一个显示系统概要信息的顶部标题栏。
  图：流程监控
● 平台级数据的部署和缓存机制
平台级数据目前包括权限信息、菜单信息，平台提供统一的缓存机制，提高系统的响应速度。同时，这个机制是可以扩展的，用户可以通过注册添加其它的平台级数据，完成数据的缓存。另一方面，考虑到数据迁移的问题，平台集数据支持导入和导出功能，方便平台的使用者在不同的服务器上部署应用。
● 多语言环境的自动侦测和转换
  多语言环境有两种形式，一种是使用第三方语言建立应用系统，另一种是应用系统需要工作在多国语言的环境下。无论在那种形式下，对于多语言开发的一个主要难题就是开发商都会被陷入翻译的汪洋之中。对于这种问题，KOOF 3.0提出了单一语言版本，结合编码翻译工具和翻译替换工具解决多语言环境的方案。在这个方案中，开发商只要在开发前遵循几个很简单的规则来进行开发，所有的编码转换和翻译过程可以交给KOOF 3.0来完成（当然，KOOF 3.0需要用户提供语言的对照翻译字典）。另一方面，对于多语言的应用系统，资源文件的翻译只是一方面，还有很多其它需要考虑的问题，例如人员姓名信息的处理、JS文件中文的处理等等，所有这些KOOF3.0都会提供解决方案。
● 多数据库访问的架构策略
平台底层使用HIBERNATE完成对于持久化信息的保存，基本的多数据库策略也是基于它完成的。但是，由于HIBERNATE的局限性，对于复杂的查询支持不十分完备，因此，系统使用了一套基于SPRING的数据库分离结构，完成对于HIBERNATE方案不足的补充，并且经过测试，这种结构和原有的HIBERNATE的方式可以很好的协同工作。