基于.net ,soa架构的协同oa 演示版本请访问:http://www.htrocket.com/htcsoa 业务联系:010-88515668-1289 张先生 e-mail:charlizhang@sohu.com QQ:79354259 msn:charlizhang@hotmail.com 根据客户需求,可以量身订制 航天协同软件平台(HTcs.Platform)特点 1.”信息共享”: 解决企事业单位中的“信息孤岛”、“应用孤岛”和“资源孤岛”,使所有信息可以统一管理、网状关联.在任何一点,可以快速得到相关的资源信息. 2.”业务畅通”: 可以根据企事业单位的工作流程灵活定制完整的业务流程,重新整合现有业务环节,最大利用一切资源提高效率.同时协同平台会根据定制的业务流程自动实现数据的平滑迁移和状态的变化. 3.”流程协同”: 体现一种”流程管理思想”,即企业以流程来划分责权,每个流程的终点就是这个流程需要达到的企业目标,而流程上的每个节点则是与这个流程相关的各业务部门、各人员。这些部门和人员为实现一致性的目标而突破组织的边界,相互之间紧密协作,发挥自己的能力,并接受统一的调配。 4.”灵活扩展”: 本平台采用SOA架构,按照服务功能划分模块, 可复用以往的信息化软件, 加快开发速度,并且减少了开发和维护的费用,管理信息由完全结构化的数据,拓展到非结构化信息数据. 服务之间的松耦合度,可以随需扩展服务. 二、航天协同软件平台总体架构虽然,我们以SOA的思想设计整个协同平台,但是考虑到系统效率性能.我们并不是所有的组件都是用WebServices实现. 我们关键是在整个协同平台的业务逻辑中采用以服务为中心的思想来设计.(协同用的业务需求驱动服务,而服务又相应驱动业务组件的设计) WebServices是起到承上启下的关键部分.Web服务只是对业务逻辑规则的更高层次的封装,以便更好的灵活、高性能的位协同应用提供支持. 此图是表述了航天协同软件平台的一个主要系统功能架构. 考虑系统的性能和开发的效率和灵活性,在此架构我们采用面向对象的系统分析方法和SOA(以服务为中心的架构)相结合. 面向对象的设计划分我们协同平台中各个层次的对象,是结构清晰、功能模块划分独立封装,更好易于开发和维护. SOA的架构设计主要针对平台的业务的设计.针对现实实施的协同应用的复杂和多样不可定性,我们采用SOAD来设计相对独立、松耦合的、粗力度的Web服务.这样更好为协同应用提供一个灵活扩展的协同平台. 图中协同应用部分是在协同平台的基础针对具体的业务进行协同应用开发(比如协同OA、财务管理、物流管理、进销存系统等等) 数据访问层:(HTcs.DBOperator.dll) 主要功能: 1.此层主要是负责是与协同平台数据中心(数据源)进行交互的 2.统一管理和建立系统与数据库的数据连接 3.统一的事务处理 4.维护数据库连接Spooling 对象结构: 1.DataOperator对象: 负责与SqlServer,Oracle、DB2等其他数据库服务器的交互(连接数据库、执行数据库、查询数据库以及数据库事务的处理) 2.SqlConstructor对象和ContConstructor对象: 这是协同平台的构造Sql的对象(对于系统开发中我们采用面向对象的开发,为了更好的维护和生成Sql,所以不允许之间的在代码中书写Sql语句) 3.DataAccessConfig对象: 主要是负责数据库访问配置文件HTCSDataConfig.xml的配置或者生成数据库配置文件 数据实体层(HTcs.EntityData.dll): 主要功能: 1.主要是实现系统业务中的数据实体的表现方式, 2.主要根据具体业务抽象的对象实体 3.该数据实体层是系统各层之间的数据交换载体DTO(Data Transfer Object)对象结构: 1.BaseEntiy:数据实体基类实体,必须将数据实体设为[Serializable],以便序列化为XMl进行数据传输. 2.其他具体业务实体对象比如(OrderDataInfo,UserDataInfo)必须都是继承BaseEntity 3.数据实体层可以根据具体的业务需求分成(财务实体、人事实体、物资实体等)相同层次的组件模块数据实体层的实现方案: 业务数据又是业务逻辑的核心,最终业务数据将以一种固定的格式表现于内存中,在系统的各个层次间传输,充当DTO角色。表达业务数据的方式一般分为两种Table Model和Domain Model。 1.Table Model是将数据库中的表直接映射成为业务数据对象,这样的优点是适合于机器操作,ADO.NET直接提供了这种操作的便利,但对于复杂业务关系的表达就很不直观。只适合于业务需求与数据表对应关系很直接的需要快速开发的情况。通常我们选用Dataset或者强类型Dataset(Strong Typed Dataset),强类型Dataset支持编译时的类型检查,效率上要略高于普通Dataset。Dataset有很多方便的特性:无需自己编写维护类,支持序列化,数据副本保存,支持数据集合,对控件绑定支持效果好,微软提供了相应的生成工具以及持久方案。但缺点也是明显,复杂数据表现不直观,做为DTO在各个层次间传输,尤其是分布式环境,庞大的体积,相对缓慢的实例化对于性能造成很大压力。 2.Domain Model则是根据实际业务按照现实方式用OO思想建模,这样很适合业务复杂的系统。通常采用自定义数据实体(Custom Data Entity)方式表达。自定义数据实体,有着良好的性能,编译时的类型检查,数据表现方式非常直观符合实际业务的操作方式等优点,但需要自己定义维护类,在分布式环境下需要自己编写序列化方法。综上所述,由于我们航天协同软件平台支持的协同应用将会是很复杂的企事业单位的信息管理和应用不确定及易变性,因此出于复用性,扩展性,性能等方面选用Domain Model建模为佳。 实体控制层(HTcs.EntityManager.dll): 主要功能: 1.实现业务数据实体对象持久化的功能(包括数据的增删查改) 2.主要是实现常规针对数据业务的各种数据操作 3.与业务数据实体层相结合实现最小的业务数据访问单元对象结构: 1.IEntityDAO:实体控制层接口,(包括一些InsertEntity、DeleteEntity、Update Entity、SelectEntity,FindEntity) 2.所有的实体控制对象必须实现IEntityDAO接口 3.实体控制对象也可根据具体的业务需求分成(财务实体、人事实体、物资实体等)相同层次的组件模块 业务规则层(HTcs. BusinessRules.dll): 主要功能: 1.完成具体协同应用系统的业务逻辑(如订单管理、人员管理) 2.为Web服务中心库提供业务操作独立完整的业务逻辑封装. 技术实现: 1.此层主要是针对具体业务逻辑实现相应的业务逻辑和业务规则,没有太多的逻辑可循,总之是根据具体的业务来划分业务逻辑对象以及实现相应的业务逻辑规则对象. 2.不过这层也不是凭空而出,他还是利用实体控制层相互交互而完成一套相应的业务逻辑规则 基础服务框架(HTcs.Foundation.dll): 主要功能: 1.这部分组件主要是为整个协同平台运行提供相应的基础服务(如:安全中心、日志中心、公共函数库、系统配置、系统信息编码库等) 对象结构: 1.HtcsSecurity: 此对象主要协同平台安全校验,加密解密等 2.HtcsSystemLog: 主要是协同平台的系统日志的管理 3.HtcsPub: 这部分是作为开发人员经常用到的公用一些公共函数库 4.HtcsSysConfig: 这是协同平台的系统配置中心 5.HtcsInfoLib: 这是平台的信息编码库,主要是对于协同应用的时候系统信息的维护 6.HtcsToolsCenter: 这是作为协同平台中心一些常用工具(如配置数据连接文件、生成数据实体等) Web服务中心库(HTcs.WebServices.dll): 主要功能: 1.这层是整个协同平台的相对比较核心的部分,他主要是采用SOA的架构设计实现针对具体协同应用的抽象、独立、松耦合的独立的业务逻辑封装服务. 2.整个SOA的核心层,它承上启下,对上响应业务模型,对下调用相关组件群完成业务需求,形成“业务驱动服务、服务驱动技术”的SOA事务处理格局。服务可以根据粒度分层。虽然细粒度提供了更多的灵活性,但同时也意味着交互的模式可能更为复杂。粗粒度降低了交互复杂性,但敏捷性却下降.一般对于与外部系统的信息集成尽量采用粗力度、对于平台企业内部可以采用细力度增加灵活性. 技术实现: 1.采用需求驱动服务进行服务的建模封装,使相对业务相关逻辑集中在一个服务中(如:企业人员资源管理) 2.一个成功的SOA总在变化之中。采用松耦合、粗力度的服务建模更有利于实现和扩展,也能应对协同应用的灵活性. 业务外观层(HTcs. BusinessFacade.dll): 主要功能: 1.是在协同平台的基础上,针对具体的协同应用可视业务逻辑的外观界面封装 2.为Web应用表现层提供业务封装的界面控件应用表现层(HTcs.OA、HTcs.ERP…): 主要功能: 1.这一层是在以上协同平台基础构建的协同应用的最终用户使用的界面Web展现层. 技术实现: 1.采用Asp.Net的Web窗体实现界面和C#实现背后代码隐藏文件实现事件控制相结合. 协同适配器(HTcs.DataAdapter.dll): 主要功能: 1.实现航天协同软件平台数据中心和其他非平台系统、其他数据中心的数据交换或者同步 2.也是使航天协同软件平台连接信息孤岛、实现信息共享的一个核心组件 工作流引擎(HTcs.WorkFlowEngine): 与传统的信息软件的不同,协同应用软件要求有一个统一的信息管理平台和畅通的信息互联通道,更好的协同工作的氛围.特别是将企业中常规的业务工作流,按照既定的流程规则和流程的线路顺利畅通的走下去.自动分发任务和传递消息,状态平滑迁移.一切以工作流为中心. 这也就是能够体现我们航天协同软件平台的核心竞争力,这就需要协同平台的工作流引擎的支持.所以工作流引擎是我们航天协同软件平台的灵魂所在.协同平台的发动机. 1.工作流管理器(HTcs.WorkflowManager): a)可以设定机构、角色、人员以及他们之间关系(和相应的协同应用软件的数据是共用的) b)进行工作流程定义: i.设定修改整个工作流的流程路线(流程名称)和相应的各个流程节点、流程开始节点、流程结束节点 ii.设定各个流程节点的启动条件、Action、完成后状态,link,相应流程工作信息表单、即流程变量,设定流程相关协同(结构、角色、人员)单位 iii.State、Action、Event、Variable、WorkSheet、Link、Condition iv.在流程定义完后可以存程流程定义库中 2.流程引擎(HTcs.WorkflowEngine): a)根据流程定义创建流程实例,启动流程实例、停止流程实例,结束一个流程实例 b)根据流程定义自动执行流程实例,自动分配任务,自动路由,多种消息提醒方式流转路径智能化,流程每一步的条件控制,自动判断,自动流转 c)当流程客户端进行流程任务的相应事件的处理 d)自动根据流程状态触发相应action e)以工作流客户端的动作(接收、拒收、完成)作为驱动流程引擎 f)管理相应流程实例库 3.流程客户端(HTcs.WorkflowClient): a)客户端能够根据当前登陆的角色、机构、人员自动列出由流程引擎根据流程定义自动分发的任务列表 b)各个协同节点可以从他们的各自的流程客户端看到自己的流程任务,并可以在此作出相应(接收、拒绝、提交) c)并且对将流程任务和相应的操作界面链接 d)可以查询工作历史 4.流程监控(HTcs.WorkflowMonitor): a)对当前工作流引擎运行的流程实例运行进行监控 b)监控当前业务流程的进度、状态 c)可以查看流程实例的统计
浙公网安备 33010602011771号