该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-02-06
SDO
|
|
返回顶楼 | |
发表时间:2007-02-07
我是把它当作简化的SDO来用的。
|
|
返回顶楼 | |
发表时间:2007-02-09
没明白这个是干什么用的;(
|
|
返回顶楼 | |
发表时间:2007-02-12
SDO,楼主从自己的经历中发现了SDO规范中提出解决问题的方法.
|
|
返回顶楼 | |
发表时间:2007-02-20
基本上模糊了
其实没有源代码无所谓,甚至不用大量介绍哪些借口什么的,但是至少给出一个清晰的应用脉络,那样容易看明白 |
|
返回顶楼 | |
发表时间:2007-02-20
minimu:
引用 基本上模糊了 其实没有源代码无所谓,甚至不用大量介绍哪些借口什么的,但是至少给出一个清晰的应用脉络,那样容易看明白 很抱歉,让你感到困惑了。 我写那篇文章的初衷,是因为我认为DataSet的概念和相关的技术,具有比较普遍的意义,可以应用到许多领域。因为我相信它具有普遍的意义,我也相信它在数学上一定有它的道理。通过写那篇文章,我找到了一些数学上的解释,有些在文章里写了,有些没有写在文章里。 因为是具有普遍意义的东西,所以我没有选择从具象展开,而是从抽象入手。我给出的接口和罗列的类名,以及代码片断,是想给读者提供一个想象的空间。它的具体应用,取决于读者的阅历和想象力。熟悉FP的,也许可以看到一点FP的影子。做过分布系统和SOA项目的,和其它的方法比较一下,也许会同意这是一个非常简洁和高度一致的方法,高度一致意味着高度重用。 空对空的到此为止,下面来点实际的。DataSet,从Java角度看,可以把它看成Map,CachedResultSet,Java Bean,或者像ajoo指出的,看成DynaBean,DynaClass,等等。从XML的角度看,它是一个像DOM一样的数据模型(Data Model),我给它找了一个官方的模型--XDM (XQuery 1.0 and XPath 2.0 Data Model),我只支持Document Node,Element Node,Attribute Node,Text Node,不支持Processing Instruction Node和Comment Node。选这个模型是因为它和我的实现很接近,也是为了支持XPath和XQuery。XPath用JXPath来实现,很容易做到。XQuery的实现还不多,如果看见简单的XQJ的实现,我会把它集成进来。这个方向上再往下走一步,就是XQuery和XSLT的等价置换,比如将XQuery编译成XSLT。如果我能做到这一步,我就可以做许多LINQ可以做的事。这是我几天前看LINQ的视频演示时冒出来的想法。就是现在,我也可以用它做许多WebLogic Integration Server, IBM Message Broke,MS BizTalk可以做的事,用非常少的代码。 上面说的可能还是太宏观,我们再来点微观的。在我的Blog里,我开列了一个栏目--数据集用例。暂时只有一个用例。如果有人出题,或者我看见有合适的用例,我会不断地充实。我希望读者在阅读用例的时候,充分发挥你的想象力。现在的这个例子,它其实可以有许多变化。比如把输入端换成SQL,它就可以根据查询的结果生成网页。EndPoint是纯碎的申明,没有任何逻辑的,它可以是事先配置的,也可以是实时产生的。再把输出端换成HttpResponse,网页就到浏览器了,它就成了一个用XSLT作模版的Web"框架"。输入端还可以换成消息队列,代表异步处理的结果。不管你怎么换,代码还是那几句。像这样简灵活的应用,恐怕用Ruby也做不到吧。 |
|
返回顶楼 | |
发表时间:2007-02-20
为什么不直接使用DOM?
|
|
返回顶楼 | |
发表时间:2007-03-09
上午看了上篇,下午看了下篇,看完后对楼主的DateSet和DataSetMetadata两个接口感觉比较亲切,我可以想到接口里每一个方法的用途,甚至包括那个系统本身不是必须的columnLabel。不过因为我们的最终应用不同,后面的东西就大相径庭了。 看了各位的回复,感觉能够理解楼主本意的不是太多(我也不一定理解正确),觉得还是应该推广这个数据集的概念,因为它是非常有用的东西,而且它也是通用的,未来的编程中可能会处处用到它。 如果大家用过JDBC来实现一个通用的数据库管理程序(如SqlServer的查询分析器),那么一定会使用到Connection的Metaata和ResultSet的Metadata,通过Connection和ResultSet的元数据我们可以管理数据的任意一张表的任意一条数据。 不过数据库的表是二维的,同一张表里不能表示任意复杂数据,所以如果我们想保留通过元数据而操作任意一张表的数据的功能而且还能表示任意复杂的数据的话,那么我们可以把二维表扩展到树形结构当中,我们知道XML几乎可以表示任意一个你想要的复杂数据,所以如果ResultSet扩展到了树形结构中那么它也能表示任意复杂的数据。 有了以上的步骤后,那么就可以设计出类似楼主的DataSet和DataSetMetaData的两个接口了。有了接口那么就可以编写实际的应用了,这时你会发现你的程序似乎可以管理任何一个复杂的数据,而且更重要的是象实现一个通用数据管理这样的程序是不需要考虑数据所代表的含义的,也就是说可以不管这些数据的实际用途,不用去管它们是什么业务模型,所以这时完全可以为管理数据而做一套功能模块来,使用这个模块你可以忽略很多诸如数据转化和数据存储等方面的细节,你只需专心考虑最终如何处理这些数据就可以了,这样会大大提高程序的灵活性和开发效率。我想楼主的框架程序应该也是这样的。 |
|
返回顶楼 | |
发表时间:2007-05-11
我们是做银行业务的,楼主的这个思想与我们现在的系统中数据模型用xml来传递非常相象,我一直想从开源领域找到这样的产品,今天算了看到了,谢谢分享。
|
|
返回顶楼 | |
发表时间:2007-05-11
我们是做银行业务的,我们的系统中数据模型是定义在xml里,然后对xml进行实例化后,将这个对象在v层,c层,m层各个层进行传递,并能随时动态修改这个对象,或者添加一个对象节点。我一直欣赏这样的设计,试图在java开源领域找到这样的设计,今天算是头一次碰到了。
|
|
返回顶楼 | |