JiveJdon Community Forums
在线195人 Home | 论坛 | 培训咨询 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » J2EE/JavaEE/JEE/EJB/JSF等技术讨论
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 5 回复 / 1 页 [ ]  发表新帖子  回复该主题贴
chris.liao

发表文章: 17
注册时间: 2005年07月15日 19:58
给他发消息
对于jmservice 的几点设想 发表: 2007年03月13日 16:44 回复

对于jmservice 的几点设想

1:  介绍Jmservice 是一个面向服务域编程的架构(SOP),下面我们将介绍一些它涉及的概念!

1.1 什么是服务?
我们为什么要访问服务器呢? 望文生意,那是因为服务器能够提供一些有用的应用供客户端访问,这些应用能够处理来自客户的请求. 这一现象在客户端/服务器模式中非常普遍, 可能我们每天都好在享用这样的应用,但并没有关心它的内部运作.尽管它们务看上去非常复杂和异样, 但是如果你再细心点,也许你可以发现它们的一个共同点: 每个应用可以用代表一个领域(Domain),并对它的外界产生影响,如:处理来自外部的调用或者为外部完成一些用的任务.我们建议用”服务”这个词表这些具有共同点的应用. ”服务”是一个逻辑概念, 在它里面,一些其他对象可能会集成到一起去完成某些协作.从逻辑观点看,这些对象是逻辑集成,物理分离的.尽管有时”服务”没有出现在一些应用系统中,但从事实的角度上来看,它们都在做类似的概念.我们已经把”服务”抽象成一个接口了,并定义它在我们的框架规范中.

1.2 服务与域驱动
服务被设计用来帮助我们处理某些问题的. 一般来说,每个服务表达和处理某一个方面的问题,我们把这个方面定性为域,也就说,一个服务可以匹配一个域.服务的定义依赖于域,这个只是一个处理方式而已. 事实上,我们可以称成服务为逻辑方面,这点与面向切面的AOP有区别的.通常情况下,服务并不是孤立存在的,我们可以让一些组件运行在服务域中,并成为服务的组成部分.

1.3. 服务与客户端
如果可以供访问的服务是存在的,那么客户端是有可能可以访问它们.当然一些服务对客户端是不可见的,因此而无法访问到它们.例如: 我们定义一个初始化的内部服务,主要负责装载一些系统参数,它作用于其他服务.因此服务的存在不一定是为外部调用.服务的具体行为依赖它所的域,设计者可以自由设计它们的具体行为.

1.4. 服务与生命周期
服务的周期可能会不一样,比如有些是完成某些事情之后就死掉了,也有些可以一直伴随系统的而存在的..因次它们的生命周期有不定性..设计者可以自由设计它们的周期..

1.5. 服务与服务之间
服务被设计用来处理域问题,,因此从一个服务的外部来看,,它是有可能被其他服务所调用,所以服务之间是有能处在依赖关系.

1.6. 服务与组合
一些服务是可以组合在一起形成一个更大的域服务.

1.7. 服务与组件
服务是可以用来支撑一些组件的. 在软件业,服务与组件的技术目前非常流行:开发员可以设计开发他们自己的组件去完成某些业务操作的。仔细观察,这些组件还是可以划分到某些域中去,我们认为这就是服务域. 当我们调用这些组件的接口,事实上我们隐式使用它们的域服务.服务的概念是抽象的,不容易捕获。当然没有组件的服务也是可行的,具体完全决定于设计者。

1.8 组件与容器
服务如何去持有组件呢?容器是被期盼用来管理组件的,例如池化和生命周期。但是容器是如何感知组件的呢?我们觉得应该提供一种描述手段来让容器感知组件.

1.9. 组件与描述
在当前普遍的情况下,我们使用物理文件去存储组件和它们的描述,这些描述可能是XML的格式,也可能是properties 文件,还可能是EJB3.0所才采用的Annotation等等,不管采用何种方式,它们都属于描述的范畴。我们可以描述组件的名字,事物,安全等。但是组件一旦被需要装载到系统中,那么这些描述将发挥至关重要的作用。在我们框架中,我们定义了一个描述对象,采用对象描述对象方式,并将其他类型的描述方式转换为该方式:其他描述方式存在多样性,而这个对象描述只存在一个样式,我们认为这是可行的。尽管描述是一种好手段,但是它们毕竟有存储位置。

1.10 组件与部署
组件不会无缘无故跑进了服务的容器中的.我们需要将包含组件的源部署到制定的位置,这样服务才会装载这些外部的组件.在访问组件之前,它们应该是已经被装载了到容器中了,由于有各种各样的服务,那么它们的部署组件过程应该存在差异的。当部署组件时,组件描述是非常重要的。很多时候,我们可以把部署看成是组件的开始,很多其他事情都是包含在它的下面。

1.11. 组件源与发现机制
一旦组件源被部署到制定位置,那么我们应该提供一种机制去发现这些部署的组件源。例如:
部署,重部署. 一旦发现,那么该机制应该存在一种通知手段去通知部署控制器,这样控制器就可以决定部署的Happy-path.

1.12. 组件源与辨别
包含在组件源中组件是需要部署到某些service上的,由于service的差异,那么它们的组件描述是否也存在差异呢?一旦发现组件源,那么应该召集所有可以部署组件的服务来辨认这些source.如果找到匹配的服务,则该服务将部署这个组件源.

1.13. 组件源与解晰
当组件源应用到服务上时,它们应该被解晰:比如获取组件描述.我们定义了一个基本接口:Parser 去做这方面的事情。

附:jmservice是由一些没有定性的规范接口构成。

2 : 应用的探讨:
我们对jmservice进行了扩展,并形成一个微内核框架,主要应用于j2ee的服务,并在该微内核框架之上,我们尝试去架构一个简单的j2ee server(jmin),以此显示它的特性。
1:组织结构
2:部署控制
3: 容器的探讨

详细信息,请访问http://jmin.dev.java.net ,希望有您的参与!

Chris liao

2007年3月13日于深圳!





banq

发表文章: 9114
注册时间: 2002年08月03日 17:08
给他发消息
re:对于jmservice 的几点设想 发表: 2007年03月15日 10:39 回复
非常有意义的探索和学习。让大家了解了服务和组件的一些概念。

由于文档不是非常丰富,好像还没有看到与J2EE服务器及其一些框架的区别和特点,定位需要更清楚一些。
chris.liao

发表文章: 17
注册时间: 2005年07月15日 19:58
给他发消息
回复:re:对于jmservice 的几点设想 发表: 2007年03月15日 11:04 回复
部分已经更新!

JmService-cn.rar


[该贴被chris.liao于2007年03月15日 16:37修改过]
[该贴被chris.liao于2007年03月15日 16:37修改过]
[该贴被chris.liao于2007年03月15日 16:37修改过]
chris.liao

发表文章: 17
注册时间: 2005年07月15日 19:58
给他发消息
回复:回复:re:对于jmservice 的几点设想 发表: 2007年03月16日 10:04 回复
来在美国Sun的Cheng Fang 对Jmin service 的评论

Hi Chris,

你分析的很好。好多想法都是和 JavaEE, JBI (Java Business家Integration) 一致的,也是以后 JAVAEE 服务器应该支持的。我的基本想法是,实现一个服务器是 一个巨大的工程,哪怕微型的服务器或框架。这些服务器或框架都是给企业级应用的,如果足够的市场或 ISV 支持,许多好的想法都不能起飞。如果是我,我会通过一些已经很成功的开源项目来逐步实现这些想法。如果愿意加入 glassfish 的话,我们会非常欢迎。

我是在美国,所以打中文不熟练,不能写太多,还请原谅。
-cheng(Cheng.Fang@Sun.COM)

banq

发表文章: 9114
注册时间: 2002年08月03日 17:08
给他发消息
回复:回复:回复:re:对于jmservice 的几点设想 发表: 2007年03月16日 10:30 回复
非常棒!

我以前在一篇文章里说过:现在Java走在两个方向上:一个是简单易用的透明框架;一个是继续庞大的分布式服务器;

所以,你必须确定你的方向,如果你决定走SOP/JBI服务器,那么单个力量肯定不够,需要加入glassfish队伍。

方向很重要,否则后果很严重噢....呵呵。
zuly

发表文章: 57
注册时间: 2007年03月29日 11:42
给他发消息
re:对于jmservice 的几点设想 发表: 2007年03月29日 17:00 回复
SOP是什么东西?

SOA - services origned architecture!

我没有专门专注过!但是SOA从设计角度和j2ee的初衷是一样的,只是j2ee单纯从软件角度建模,而SOA结合需求建模!
这个主题有 5 回复 / 1 页 [ ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam