发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 SOA
1 2 下一页 Go 2

诚邀各位仁人志士加盟JWC(Java Web Component)开源组织

2006-01-23 13:46
赞助商链接

各位网友,您们好!

***这是JWC(Java Web Component)开源组织的公开信。

首先作自我介绍:组织名称------JWC(Java Web Component)

*************技术名称------DMVC(Double Model View Contraller)

*************创建组织的目的:推动IT技术的进步,为社会作做贡献。

***酬薪问题:因为本项目的公益性质,所以所有成员都没有薪水;但不

等于没有回报,成果实行公产主义分配策略。

***诚邀各位仁人志士加盟JWC(Java Web Component)开源组织。

组织机构:

(1)顾问团:由关注、指导、帮助这个项目的朋友组成。

(2)组长:一名,负责该项目开发的全面工作。

(3)副组长:两2,协助组长工作。

(4)框架设计师:10名,负责DMVC框架设计

(5)命名规范组:5名=1名组长+四名组员,负责命名规范规范的制定和

稽核<审核原代码 是否符合命名规范>。

(6)技术推广组:10名=1名组长+两名副组长+7名组员,负责将DMVC

技术推广到个Web应用开发商。

(7)资料组:3名=1名组长+两名组员,负责资料的收集维护

(8)程序设计组10个:作为DMVC框架的实现者,队伍必然是强大的。

由于系统各模块的工作量和劳动强度不同,每个程序设计组由1名

组长和若干名组员构成。并且程序设计组的个数会动态增加。

(9)人事组:5名=1名组长+四名组员,负责发现团结组织需要的人才。

纪律组:5名=1名组长+四名组员,无有规矩不成方圆。负责组织纪律和

制度的制定、监督、执行。

(10)测试组:10名=1名组长+两名副组长+7名组员,负责测试方法的

研究和测试。


报名方式:请将您的姓名、参考职务、电话、QQ号、Email、简介、代表

性作品发到JWC组织的电子邮箱:org_jwc@126.com ,备用邮箱:

org_jwc@56.com



*********************************技术概要摘录

***DMVC框架建立在J2EE架构的基础之上,是一个不错的企业级J2EE解决方案,DMVC充分吸收Strust 、extra 、Tapestry 、EOS 的MVC思想,利用Ajax 技术发展起来的。在传统的Web框架下,浏览器与服务器数据交互频繁,客户端一个小小的动作,页面不得不刷新,既影响了客户端的操作效果,同时也增大了网络流量、服务器负载。虽然可以使用隐含刷新技巧欺骗用户的眼睛,但数据在浏览器与服务器之间一个来回的路费还是少不了的。举一个购物车的实例吧:在传统模式下,用户每添加一个产品到购物车中,则必须向服务器发一个Http请求,更新Session Bean ,然后从服务器应答一个HttpServletResponse 来同步Session Bean 与浏览器视图的状态,这样才能在购物车中看到新添加的产品。在服务器应答浏览器(Response) 的过程中,那些构成界面元素的HTML标记被一次又一次的重复传输,增大了网络流量。并且要求给每一个购物车分配一个Session Bean ,在购物高峰期,EJB容器里一定创建了不少的Session Bean实例吧,是不是很耗资源,这就增大了服务器负载;而被分配出去的Session Bean 是否都很忙,得时时维护自己的状态。最糟糕的是下面两种情况,情况一、用户购了半天物,最后决定不要了,服务器白忙了一阵子,资源浪费呀!情况二、用户的购物车刚刚分配得到一个Session Bean 就有事离开了,而服务器必须等待Session Bean超时才能回收其资源,很郁闷吧!不用那么难过,DMVC 能为你解决以上烦恼。


*** DMVC 对界面和数据采用完全分离的解决方案,分别实现MVC模型。为了比较,还是举刚才购物车的例子吧。当用户添加一个产品到购物车中时,因为界面和数据完全分离,购物车的界面元素没有更改,所以浏览器不需要向服务器发送Http请求,服务器更不用重新生成界面应答浏览器,好处有以下几点:1、减轻服务器的负载。2、减轻网络流量。3、页面不用刷新。4、提高响应速度。那数据又是怎样运着的呢?首先,客户把数据添加到ESB(Enterprise Script Bean)容器中以XML数据岛的形式存形成ESB<说明:ESB是存在于客户端的数据组件>,ESB是DMVC中的数据模型(Data Model),当Data Model改变时,自动发送消息通知Data View 更新保持与DataModel同步。这样用户就在购物车中看到了刚才添加的产品。当必要的时候才进行Bean Bean(EJB and ESB)状态同步,什么时机才是必要的时候呢?当然是客户去收银台后将要把购物车中的数据持久化到数据库中时。这个Bean Bean同步的过程是这样的,首先由用户在Data view 上触发一个Bean Bean同步事件以消息的形式发送给Data Controller,Data Controller分析事件并作出决定,向服务器发出XmlHttp请求,要求同步Bean Bean 状态。这样EJB容器里只需要只需要少量的悠闲的EJB,他们可以在EJB Container 里玩、聊天、谈恋爱、睡觉都可以,当Bean Bean 同步的那一瞬间才给购物车分配一个Session Bean ,EJB持久化完毕后立刻回到EJB Container 容器待命,高效吧!


***DMVC为提高程序运行效率和编程效率,让程序做必要的事,程序员不做重复的事。这是DMVC的一大特色。举个树(tree)的实例吧:在传统模式下,要在浏览器中显示一棵树,得把树的子子孙孙<各节点、叶子>都从数据库中查询出来发到浏览器,而特定用户在一时间内不可能点击所有节点,程序做了些无用工,只是白白浪费服务器的CPU 、内存、网络带宽。 DMVC是这样提高效率的:因为HTML标记中无树标签,在DMVC中树(tree)是由节点数据在JavaScript控制下利用层标记<DIV>生成的。而树的显示期间树的界面元素不会改变,改变的只是节点的逐步增多。数据的流程是这样的,用户在地址栏敲入网址形成Http请求,请求中包含有树,服务器查询树的根和子节点<查询节点深度可指定>连同树的JavaScript 相对地址一起发到浏览器中。用户看到了树的根及子节点。 随着用户点击树节点对树的张开。在tree 的 data view 上不断形成树的张开事件,Data Controller 分析张开事件,若发现该节点的子节点不在ESB Container中则向服务器中发出XmlHttp请求,服务器查询子节点的结果形成XML格式的数据以HttpServletResponse应答浏览器,更新Data Model,当Data Model 更新后立即以消息的形式通知Data View 与其同步。用户看到了子节点。当用户再次点击相同的节点并形成张开事件发出消息时,Data Controller 分析张开事件发现该节点的子节点在ESB Container 中则不处理该事件,直接张开树节点。节点的增加、删除、更新,我就一笔概括了,由于用户对节点的增删改必然造成Bean Bean 状态不同步,我们把这个差值叫Δ(增量),EJB状态小于ESB状态时,Δvalue的取值为负,反之Δvalue的取值为正。当要对ESB状态持久化时,只需要Bean Bean状态同步<把Δ传到EJB中>,持久化EJB即可。


***把业务逻辑与界面显示层分离是设计模式的一大进步,而把数据与界面元素完全分离可谓百尺杆头 更进一步。 数据与界面元素完全分离表现在:1、数据格式不同,界面数据格式为超文本标记格式,而数据岛采用XML格式。2、传输协议不同,界面用HTTP协议,数据岛采用XmlHttp协议。3、界面元素与数据岛的更新不相互影响。


***用最少的代码实现复杂的功能是DMVC的又一特点。DMVC在最大程度上满足了当今应用大规定制时代的随需应变要求,符合应用平台化,功能构件化的要求。



―――――――――――――――――――――― 2006-01-18
―――――――――――――――――――――― jwc

2006-01-23 18:31

这才贴对地方,表示支持。

AJAX + 业务微容器(如HiveMind或Jdon Framework)是一个非常轻量的解决方案。

我已经一直在说,当我们将所有业务都集中在业务层后,表现层只剩余XML配置,甚至可以将表现层迁移到客户端。

无论任何框架,我们别忘记两个目标:开发快性能快;但是软件质量要高,松偶合,易于维护和拓展。

2006-01-23 18:35

想参加,怕自己实力不够啊。
不过如果能够尽到自己的力量,一定不惜力气啊。

2006-02-05 13:19

好主意
等我先把吃饭问题解决了 :)

2006-02-11 14:56

extra现在叫DRODO

我的理想与之类似,不过这要是在2000提出来的话,现在就因该收获了哦!呵呵

2Go 1 2 下一页

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com