应用架构设计模板.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
功能架构——子系统划分 对于任何系统而言,系统的架构都需要从对系统的分解入手。划分子系统的主要目的在于: 简化系统设计工作 提高并行开发效率 便于系统架构的扩展 功能架构——子系统划分分析 功能性划分——功能性组件 数据分析组件:提供数据分析基本服务,产生数据分析结果(图片,文件) 定时服务组件:提供定时机制,定时调用数据分析服务和订阅服务 订阅服务组件:提供订阅服务基本服务,(Mail,FTP) 管理控制台:系统服务配置设定(定时服务,订阅服务) 非功能性划分——非功能性组件 部署管理组件:运行时装载数据分析的模版,计算组件,数据源; 数据访问组件:提供访问数据源服务(数据库,文件) 外部交互适配器:提供支持多种交互协议的连接适配器(SOAP,RMI-IIOP) 通用与定制之分——定制性组件 JasperReport:提供基于JasperReport的数据分析服务 CrystalReport:提供基于水晶报表的数据分析服务 功能架构——子系统划分设计 根据原则划分好的子系统,需要有明确的接口定义,来代表其子系统提供的功能 DAO Service void insert() void update() void delete() Object findByPk() Schedule Service void executeSchedule() Subscription Service void notifySubscriber() J2EE Connector Crystal Report Service JasperReport Service OLAP Service Repporting Service byte[] loadReport(String reportId, Map context, int type) void deploy() Deployment Management Service 功能架构——子系统划分实现与验证 在系统实施过程中,一般子系统会使用 不同的工作目录来实现。每个工作目录会需要 包含下列信息: 源程序 组件依赖配置 部署脚本 测试程序 逻辑架构——系统分层 系统分层的主要目的在于: 细化子系统,确定子系统组件之间的协作关系 提高子系统的可重用性 提高子系统的可测试性 提高子系统的可维护性 提高子系统的可扩展性 逻辑架构——系统分层分析 定义分层边界划分原则 本系统按照服务消费者和服务提供者关系来划分层次 定义消费者和服务提供者关系 数据分析服务消费者 Browser,Java Client Application, C++ Client … 数据分析服务提供者 数据分析运算组件 数据源提供组件 协议适配器 数据分析资源 消费 服务 逻辑架构——系统分层设计 可扩展架构:支持资源扩展 数据分析资源包括各种数据分析实现技术。支持资源扩展的主要需求如下: 支持数据分析资源的可替换 支持数据分析资源的可升级 实现统一的数据分析服务接口 可扩展架构:支持资源扩展分析 通用性和定制性划分 特定数据分析资源需要定制 统一的数据分析接口代表通用行为 通用性和定制性结合 行为抽象,抽象特定数据分析资源的通用行为 实现独立,把特定数据分析资源的实现看成是行为抽象的一个特定实现 可扩展架构:支持的资源扩展设计 J2EE Pattern:策略模式 现流行方式是采用Spring的 ApplicationContext或者反射模式。 构造策略实现对象 策略行为接口 策略实现 可扩展架构:支持的资源扩展实现 定义接口 public interface ReportingServiceIF{ byte[] loadReport(String reportId, Map context, int binaryType); } 定义Spring配置 bean id=jasper class=com.wn.pce.reportingservice.platform.jasper.PCEReportingServiceJasperImpl destroy-method=close property name=dataSourceLoader ref=defaultSourceLoader/ /bean 通过制定BeanName来判断使用那个实现类 ReportingServiceIF service = (ReportingServiceIF) ApplicationCtx.getBean(serviceName); byte[] reportBinary = service.loadReport(reportId, context, binaryType); 外部接口架构

文档评论(0)

kch + 关注
实名认证
内容提供者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2023年10月08日上传了教师资格证

1亿VIP精品文档

相关文档