公司平台架构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
公司技术平台架构
1.公司平台架构
1.1、背景
我们属于软件研发类型的公司,会遇到完全不同行业的定制需求。行业不同需求就千差万别,针对每个用户做一次定制级研发成本费用高昂。
我们需要一个平台为研发提供基础,提供公用组件集成共享、复用等等方面的支持,以提高研发效率,降低成本。
便于公司技术团队在技术方面的积累,并高速效应市场客户的需求。为此我们需要根据目前的情况和发展的需求构建公司自己的技术研发平台。
图1.1——业务与公司研发平台
1.2、概述
作为软件研发的基础平台,将作为研发人员工作的基础,也是各个软件产品的基础,需要具备:
A、功能可积累、组件可共享。即成功研发案例中研发出来的具有共用性质的功能,
可以依赖平台提升为平台级别的可共享共用组件,并可以在有相同需求的项目研
发中轻松的使用该组件,以提高工作效率降低成本。
B、稳定性。作为所有研发产品的基础,需要有高稳定性来支持各个产品的运营。
C、高扩展性。我们面对的是各个完全不同行业的业务软件定制需求,客户需求因为
行业不同而千差万别,平台需要有全方位的可延伸点以满足各行业的需求。
D、高兼容性。我们面对的是各个完全不同行业的业务软件定制需求,客户需求因为
行业不同而千差万别,平台需要兼容并蓄统一接口所有的行业定制软件。
E、高性能,处理大量并发的能力。
等主要的特性满足现在和将来发展的需要。
1.3、平台总体结构
根据总体对平台的要求,我们做如下的结构设计。
A、SOA总线
该平台上包含一组SOA的服务总线,并提供子系统的插拔接口,可以轻松的增加子系统或者停运子系统。如:总线内有教育局系统、同时也可以有ERP或者是其他系统,所有的系统都可以由总线拉起来,并受总线统一控制。
图1.2——SOA总线与业务系统关系图
说明:
1 、业务子系统包含公司承接的所有客户的系统平台,如图上的政务系统、家纺门店等等。这些业务类子系统都在SOA提供的平台上工作,SOA为各个业务子系统提供公共的系统功能,如登录授权、安全工作流程管理等等。
2、各个业务类子系统中的可为其他业务子系统使用的公共功能模块,也可以上升为SOA中的功能服务接口共享自己的功能,供给其他需要使用的业务系统使用。
从而使功能真正的模块化、共享化,提高研发的复用率,降低研发成本、提高工作效率。
3、数据库使用持久关系型数据库加内存数据库组合使用的模式,当然也可以根据情况单用。
内存数据库具有性能高、速度快、体积小的特性,在性能要求很高,并且数据量大于使用会话保存的情况下,可以考虑使用内存数据库。如:现在要做一个硬件监控平台,那么就需要做一个代理安装到硬件设备中,由该代理收集硬件信息并和管理端进行通信。在这个代理中收集的数据就可以使用内存数据库进行保存。这样可以将代理做成
一个独立的系统运行在硬件端不依赖外部数据库。具有独立、小巧、轻量级的特点。
B、平台技术架构
图1.3——平台技术架构图
说明:
1、展示层
展示层由两块组成,一块是传统技术,JSP和OSGI框架的组合,一块是最新技术FLEX,在使用的时候根据情况和客户的要求进行选择。
展示层负责将用户关注的信息人性化的展示给用户。
A、Cairngorm
是一个轻量级的Flex RIA程序开发框架,从而使程序可扩展性、可维护性都大大提高,其本身并不是一个完整的企业应用,它只是提供了一个开发骨架,Adobe 称之为体系。
B、Flex
Adobe最新出的WEB类技术,在展示方面具有传统技术不可比拟的优势。如可以为用户提供FLASH甚至是影片级的展示效果,使系统展示的东西更具有实效性。能做出不亚于C/S结构效果的界面的B/S技术,而有具备C/S全部的优点如:不用下载安装、不用更新等等。
C、blazeds-通道
BlazeDS是一个基于服务器的Java 远程控制(remoting)和Web消息传递(messaging)技术,它能够使得后端的Java应用程序和运行在浏览器上的Adobe Flex 应用程序相互通信。
D、MVC
MVC (Modal View Controler)本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。
分离之后的架构能使研发团队能很好的在一起配合工作,真正实现1+1大于2. E、Action Script
FLEX页面的后台语言,有支持FLEX特效、和JAVA进行信息交互等等功能。
F、OSGI框架
OSGi是基于Java的服务平台的规范;OSGi的本质是将Java面向对象的开发转向面向组件和服务的开发,OSGi框架提供了一套完善的机制用于管理和控制组件
(Bundle)、服务(Service)的生命周期,以及组件和服务在其生命周期内的交互。
由于具有服务组件模块化、动态加载应用等优点,OSGi技术正被越来越多的领域关注,如嵌入设备制造业、汽车制造业、企业应用等。
G、JSP页面、JS脚本、HTTP通道
传统的J2EE企业级解决方案的页面技术,可以为客户提供传统的系统研发页面服务。
2、业务层
A、Spring框架
Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框
架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,
同时为J2EE 应用程序开发提供集成的框架。
这里使用该框架作为整个平台的粘合剂,将FLEX和J2EE集成在一起,并集
成SOA总线。是平台的核心技术之一。
B、JBPM
jBPM,全称是Java Business Process Management,是一种基于J2EE的轻量级
工作流管理系统。可以支持研发人员甚至是用户自定义工作流程,能全方位
的管理流程,同时提供监控、通知、事件处理等等功能。
工作流业务流程管理技术是基于SOA技术实现的一个核心部分。使用工作流
能够在软件开发和业务两个层次受益:
1、方便开发
工作流管理系统能够简化企业级软件开发甚至维护。
◆降低开发风险- 通过使用状态和动作这样的术语,业务分析师和开发人员
使用同一种语言交谈。这样开发人员就不必将用户需求转化成
软件设计了。
◆实现的集中统一-业务流程经常变化,使用工作流系统的最大好处是:业务
流程的实现代码,不再是散落在各种各样的系统中。
◆加快应用开发- 你的软件不用再关注流程的参与者,开发起来更快,代码
更容易维护。