`
ske3
  • 浏览: 10496 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

我的两年研发工作之路(三)——CDF的诞生

阅读更多

    在确立了平台的基本特性之后,就开始具体的设计、开发工作了。当时,摆在我们面前的第一个问题就是:用什么东西来放展示层的扁平化的数据?如果是结构化的数据,我们可以使用对象来存放数据。那么扁平化的数据应该怎么处理呢?我第一个想到的就是.Net里的DataSet类型。因为我在大学里,以及刚毕业的时候,并不是从事JAVA的,而是从事.Net应用开发的,所以对.Net的一些特性比较清楚。

   乍看之下,用DataSet来作为扁平化数据存储的容器,没有什么问题。但是,与我们的整体架构一整合,就出了问题。

    因为,在整体架构里我们为客户端和服务端进行明确的职责分工,服务端只为客户端提供原始的数据,不因为客户端展示层渲染效果的不同而给不同的数据;而客户端的职责是获取服务端提供的原始数据,经过一定处理后,转化成不同的HTML代码,已各种方式进行渲染;客户端与服务端通过AJAX进行通信。这样的分工,导致各个层的职责很明确,服务端只负责根据业务抽取Service Interface(类似于SOA的设计理念,无非走的不是SOAP协议);而客户端只负责同一数据在不同页面上以不同的方式进行渲染。

    这样的架构就导致我们需要在页面层,通过javascript脚本语言去操作数据,那么DataSet在页面层的表现形式是什么?最终没有想通,就放弃了该方案。

    但是,在这样的分析过程中,我们确立了一点:在页面层使用JSON为数据承载的容器。想通这点,我们就全部清晰了。只要JSON对象能与JAVA层的对象进行自动转换不救可以了嘛!OK,一条路打通了。

    但是,这还不是我们最终的方案。因为,我们考虑:如果我们面向组件的方式进行软件开发,同时为提高组件的复用度,那么就要在开发组件时,抛开具体的业务;那么会有什么结果呢?结果只有一个,不同的组件会定义自己特有的对象;然后当我们将N个组件组装一起时,组件与组件之间的特有对象的转换将变得异常的复杂、繁琐。

    此时,我们就想起了Tibco公司的GUI组件中用的一个通用数据格式(CDF),它的英文全称是Common Data Format。如果,有人研究过这个格式的,就知道其实它就是用XML定义的一种格式。这种通用数据格式的做法,其实就是将强类型对象,转化为弱类型对象,然后在数据总线上使用弱类型对象,而对具体的组件来说,其中数据总线上获取弱类型对象,然后将弱类型对象转化成强类型对象之后,进行逻辑处理,最后再将逻辑处理的结果转化为统一格式的弱类型对象,再重新放到数据总线上,供其他组件使用。这种方式,规定了组件“吃”的和“拉”的东西在格式上的一致性,然后在通过数据总线进行传递。这样,就让组件集成的工作变得轻松、快乐,也极大的增强了组件的通用新。

   我们将Tibco的CDF进行一点的变化后,变成了我们的CDF格式。也定义以下规范:

   1、在页面层,使用javascript脚本语言操作对象时,使用JSON。

   2、在JAVA中,使用POJO。

   3、组件之间使用CDF进行通信。

   4、平台提供CDF、JSON、POJO之间自动转换的工具。

 

分享到:
评论

相关推荐

    IOS应用源码——Reinual-BingGaBong-7cdf1cf.rar

    【标题】"IOS应用源码——Reinual-BingGaBong-7cdf1cf.rar" 提供的是一份iOS应用程序的源代码,名为“Reinual-BingGaBong”。这个项目可能是一个iOS开发者的个人作品或者一个开源项目的特定版本,版本号为7cdf1cf,...

    iOS游戏应用源代码——Reinual-BingGaBong-7cdf1cf.zip

    《iOS游戏应用源代码解析——基于Reinual-BingGaBong项目》 在iOS开发领域,源代码是理解应用程序工作原理的关键。本篇将深入探讨名为“Reinual-BingGaBong-7cdf1cf”的游戏应用源代码,以此来揭示iOS游戏开发中的...

    计算CDF累加分布函数_Matlab程序_CDF

    资源名:计算CDF累加分布函数_Matlab程序_CDF 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合人群:新手及有一定...

    cdf97小波代码

    这有助于用户理解CDF97小波的工作原理和实际应用。 在压缩包中的`waveletcdf97`文件可能是包含上述步骤的MATLAB脚本或函数,用户可以通过运行这个文件来学习和应用CDF97小波。通过研究和修改这些代码,用户可以深入...

    路斯特 CDF3000 基于直流安全电压的伺服驱动器(英文).pdf

    路斯特CDF3000伺服驱动器是一款基于直流安全电压操作的高性能定位系统,适用于对成本和安全性有严格要求的自动化环境。它由路斯特公司推出,旨在提供高效、精准的运动控制解决方案。该伺服驱动器支持24至48伏直流...

    简单的绘制Cdf曲线程序

    简单的绘制Cdf曲线程序

    两种计算CDF累加分布函数的Matlab程序,可以选择使用 .rar

    这里我们将探讨两个Matlab程序——`cdftest.m`和`cdftestx.m`,它们是用来计算CDF的。 首先,`cdftest.m`可能是用于测试或演示如何计算CDF的基本脚本。这个脚本可能包含了创建随机数据、定义分布以及计算对应CDF的...

    CDF要求各种证书查询方法指导.pdf

    CDF要求各种证书查询方法指导.pdf

    Matlab_cdf插件安装笔记_V0.11

    ### Matlab_cdf插件安装与使用指南_V0.11 #### 一、插件简介与获取 在处理特定格式的数据文件时,如CDF (Common Data Format) 文件,我们需要使用相应的插件或工具箱来支持这些操作。对于MATLAB用户来说,安装CDF...

    cdf_vs_snr.rar_CDF SNR_CDF曲线_SNR 无线通信_matlab CDF曲线_通信CDF

    在无线通信领域,理解信号与噪声比(SNR, Signal-to-Noise Ratio)以及累积分布函数(CDF, Cumulative Distribution Function)是至关重要的。本文将深入探讨这些概念,并结合MATLAB编程环境,介绍如何利用提供的...

    Go-CDF–一种自动测试加密软件正确性和安全性的工具

    Go-CDF,全称为Cryptographic Distance Function,是一种利用Go语言开发的自动化测试工具,专门针对加密软件的正确性和安全性进行评估。它通过构建数学模型,分析加密算法在不同输入下的行为,来检测潜在的安全漏洞...

    C 代码 评估 F 和学生 T 累积密度函数 (CDF).rar

    在给定的“C代码 评估 F 和学生 T 累积密度函数(CDF).rar”压缩包中,我们有两份文件:`toms322`和`toms322_test`。这些文件显然是用C语言编写的源代码,用于计算统计学中的F分布和学生T分布的累积密度函数...

    leinan.zip_cdf图_single_三维single 模型_三维模型_转弯模型

    三维single模型和三维模型可能是指在三维空间中展示转弯模型的CDF图,使得观察者能从不同角度分析转弯过程中的概率分布。这不仅有助于更全面地理解数据的复杂性,而且对于预测系统行为和进行有效的决策制定也至关...

    C 代码 评估累积密度函数 (CDF)、逆 CDF、 和某些其他反函数,用于分布,包括 β, 二项式.rar

    本资源包含了一个C语言编写的库——"cdflib",以及对应的测试程序"cdflib_test",用于评估各种概率分布的CDF、逆CDF以及其他相关的反函数,特别是针对β分布和二项式分布。 1. **累积密度函数(CDF)**: CDF是...

    pdf-and-cdf.rar_CDF_CDF PDF_PDF CDF_cdf probability_pdf and cdf

    This is a simple script two illustrate the concepts of Probability density function(pdf) cumulative density function (cdf). Two help pdfs are also included to understand the pdf and cdf concepts.

    spiht CDF9/7.zip

    SPIHT(Set Partitioning in Hierarchical Trees,分层树集划分)是一种高效的图像压缩算法,由Sheikholeslam和Stockham在1996年提出。该算法基于小波分析,特别适合于高压缩比和高保真度的图像编码。在本案例中,...

    根据pdf或cdf生成随机数:根据用户定义的概率密度函数(pdf)或累积分布 函数(cdf)生成随机数- -mat lab开发

    根据pdf或cdf生成随机数:根据用户定义的概率密度函数(pdf)或累积分布 函数(cdf)生成随机数- -mat lab开发 句法y = randdf(S,D,F) S - 维度的大小,整数值。 示例:S=10 创建一个 10×1 数组示例:S=[10,2] 创建一个...

    beta_cdf.rar

    在MATLAB编程环境中,累积分布函数(Cumulative Distribution Function,CDF)是统计分析中的一个重要工具,用于计算变量小于或等于某一特定值的概率。本压缩包"beta_cdf.rar"聚焦于如何在MATLAB中实现对累积Beta...

    3相似三角形——小学生学习课件

    - 这是因为三角形内角和为180度,所以如果有两个角相等,第三个角也必然相等。 - 例如,在△ABC和△DEF中,如果∠A = ∠D且∠B = ∠E,则△ABC∽△DEF。 3. **三边对应成比例**: - 如果两个三角形的三条边对应...

Global site tag (gtag.js) - Google Analytics