跨平台总动员!(续〕大家说的都挺好,孙老师为什么还不发言?(300分)

曹晓钢

Unregistered / Unconfirmed
GUEST, unregistred user!
看了各位大虾的发言,也来说两句。
1。是不是只要用了连接池,就算是解决了并发问题?
我现在用WebSphere,连接池用得很爽.
2.看起来Corba,EJB的着眼点不一样。EJB主要是为了商业逻辑开发的。
现在我们用java做class,jsp来调用,其实这个class应该做成EJB的,可是没有时间来学
习怎么做,先这样吧。普通的class变成EJB应该很容易吧?
不知道怎么做。WebSphere到是对EJB很看重,又针对它做了好多东西,Container之类的,
EJB可以独立Deploy.也可以在全局控制。
3.JSP真的快吗?我个人觉得不是非常快。
如果不是循环计算之类的处理器操作,jsp觉得并没有什么优势。
如果是说它做起来结构清晰,我倒是同意。做小东东,还是用php效率高。
说到结构,我现在是这么做的.
java class做商业逻辑,也就是主要的和数据库打交道的都让它去做。在Visual Age for
java里便于调试;
jsp做表现层,输出到xml;
用xsl渲染成html输出。
感觉还是不错的,就是比较繁,要是做小程序,有点得不偿失,好在我现在做的工程还算
合适。
4. 资料?....
jsp spec吧。
 
Y

yaojian

Unregistered / Unconfirmed
GUEST, unregistred user!
Actually yysun has said all details about these questions, but Crane and some other friend
still have some misunderstanding about it. Ok, let me "water" it. :)
1。三层结构真的能解决并发问题吗。
If we refer to '并发问题', we had better ask help from some system like MQ Series.
N-tier is an aspect of software engineering. I think we use it to solve 'huge' project
instead of '并发问题'.
The multi license share by utilizing pool technology is a trick to improve performance
and avoid waste of license. E.g. 100 workstation held 100 license is really stupid and
makes server busy on nothing. In JDBC2.0, source pool is automatical. But I have no chance
to test it.
Two-phase commit and Snap shot are two aspects ....
Ido
ubt maybe the '并发问题' you mentioned is not what I think of ... Would you please
talk about what '并发问题' you focus on??
2.听说JAVA也在向CORBA靠拢,是不是意味着放弃EJB呢?
As I know, CORBA is only a standard procotol, an agreement. So,Java is trying to
replace IIOP with IIOP2. EJB is using IIOP2.
EJB is a kind of architecture instead of protocol. But it is agreement. It makes sure
the roles and responsibilities. Ido
not know software engineering very mych. So,
in my opinion, EJB is event to make a project clearer and easier. At least, for me.
I think Java will insist EJB. You know, Java is so perfect since of EJB! Actually, EJB
is the essential of Java. EJB links all parts of Java!
BTW, EJB is another signal of more architecture less performace.
If once CORBA adopted IIOP-2, absolutly those functions like load-broker / ORB keep etc
could be implemented. You can utilize EJB in the way as CORBA worked. I think it is a time issue.
Days ago, another team leader in my company said EJB can be called by VB etc. I justdo
ubted
since I read some article which mentioned this, but I never find any test performance and
something like these. So I think it is "WILL" instead of "DID". If any friend has
finally suceessed in it, let me share the experience. Thanks.
3.JSP执行效率高的深层原因
JSP is a solution to devide the designer and developer. My opinion to Java is :do
not
think too much on performance. It is what the tools provides should worry about. Just to remember
do not use too much sub select in SQL, maybe you will benefit more.

4.大家齐心将收集的资料网址贴在下面
I also think java.sun.com is the best. Of course, they are some others. But when you
really want to learn something first, it is best. But after that, you begin
to be starved
by new ideas and details, other sites are more suitable. But Ido
not think I have enought
time to "study", since I was not a student any more. I like being a student.

My English sucks but my IME is more sick. :(
 
Y

yysun

Unregistered / Unconfirmed
GUEST, unregistred user!
Mr. yaojian, where are you? Toronto?
 

王福川

Unregistered / Unconfirmed
GUEST, unregistred user!
和你们比起来说,我是一个新手。我对CORBA略知一二。我不太清楚,你们所说的并发问题,我
也不太清楚。如果只是关于连接池,有很多手段都可以很好的解决。对于EJB,我倒是觉得不
错,不过,CORBA作为分布式计算,也很有前景。不过JAVA的发展,我觉得比CORBA快一些。
很多新的东西可以使JAVA程序变得更强大。
JSP执行效率高的原因,是因为它是编译,如果能够启用JIT的话,我想效率会更高。
我不知道服务器运行的时候是否使用了JIT。使用JIT,速度测试还是很快的。比C语言慢而已。
学习,先花三两天看看什么入门到精通,然后到java.sun.com。
 

小猪

Unregistered / Unconfirmed
GUEST, unregistred user!
用友财务软件v9.0 web版,
从安装时安装了jdk来看似乎是用jsp开发的
 
J

JJams_King

Unregistered / Unconfirmed
GUEST, unregistred user!
wow,高手多多!
不知道能不能帮个忙??
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=360804
孙老师,你说到:
〉。。。高级的服务器能够实现Server Cluster, load balance等高级功能
能不能给一些load balance的信息。例如成功案例,协议规范等资料。特别是能够直接
或间接知道它在那一层实现,通过什么机制实现的信息。谢谢先!
 
J

JJams_King

Unregistered / Unconfirmed
GUEST, unregistred user!
我也来谈谈我的看法:
1。真正的3层:
我觉得真正的3层结构应该是表现层,逻辑层和数据层。从这个角度看,用Delphi的
MIDAS并不是真正的解决方案。首先在客户端我们必须先对客户请求进行处理后才会
有SQL可以传到中间层。其次客户端得到的结果集并不一定就能直接使用,它往往必
须经过处理。从这两点就足以看出这种客户端并不是真正的瘦。真正的3层要求把大
部分业务逻辑放到中间层上。要实现3层结构,必须使用MVC模型把对象类分类。M对
应数据类对象,V对应各种对数据的视图,C对应长期的协调和控制过程。然后把V拉
长,GUI部分放在客户端,剩下的连同M,C一起放在服务端。简单的说,就是要用定义
接口连接客户和服务器端,这个接口只传送客户请求和客户必须看到的东西。客户端
就只简单发客户请求和显示结果。
这一点上面yysun和yaojian已经说得很清楚。
(待续)
 
J

JJams_King

Unregistered / Unconfirmed
GUEST, unregistred user!
2。CORBA的问题:
CORBA作为一个分布式对象技术,它解决了分布式系统中对象互发消息和数据传输
问题。CORBA定义了一个标准,只要符合这个标准,对象间就可以互相发消息和传
送原始类型数据。但是,CORBA有一个天生的缺陷,就是对数据传输支持不好。在
OO的世界里,数据都被封装在对象里面而CORBA天生就不能传送对象。若想传送这
些对象或数据,就得残酷的把数据从对象中拉出来。这意味着CORBA将成为对象世
界的边缘。我们将不得不在到达CORBA时结束一个对象的生命,然后在CORBA的另外
一端重新构造一个相应的对象。这种编程方法让我们觉得很不自然很不舒服。所以
解决这个问题成为CORBA的热门焦点。CORBA本身也意识到这个问题,因此在CORBA2.3
中出现了“按值传送”,而我想对此拍掌叫好的就只有java了。
 
J

JJams_King

Unregistered / Unconfirmed
GUEST, unregistred user!
3。目前对CORBA问题的解决:
i。数据连接对象,象Delphi的DatasetProvider,JDBC的XAConnection等等。他们
带来的问题是她们只关心数据,从而一部分业务逻辑被迫转移到客户端,破坏了
3层结构。
ii。RMI-IIOP。RMI使用Serialize技术,可以直接把对象Serialize然后用CORBA2.3
的“按值传送”方法传到客户端,然后Unserialize变成对对象。
iii。借助于另外的协议或者语言。如XML传送数据,然后由另外的语言解释。
以上三种方法前面都有提到。Crane和其他朋友提到Delphi的DatasetProvider。
yaojian提到:
〉If I developed this project, I would adopt two ways:
〉Pure Java: Java can make it on the GUI, if you have enough patience.
〉By XML: developed an XML Server to package the data and transfer to client.
〉 Both on server and on client will you find the finished API.
 
J

JJams_King

Unregistered / Unconfirmed
GUEST, unregistred user!
4。我的新技术——纯Java环境中传送对象!
CORBA本身不能传送对象,RMI使用Serialize技术在两端clone对象。RMI的clone技术
虽然看似把对象进行了传送,但纠其实质,它也只是一种数据传输。在OO世界里,对
象不仅仅包含数据,对象还包含了行为,方法。所以传送一个对象应该包括传送对象
的方法。RMI技术并没能够传送方法。(但是,有趣的是,如果类在客户端存在RMI能
够很好的指定应该是那个类。所以在这种情况下不用担心多态性问题。)为了把对象
的方法传送到客户端,对象类必须是可序列化的(Serializable)。这是RMI传数据
的要求。第二个要求是对象必须Host在我的远程对象中。也就是说,想传送对象,必
须a。在服务器端创建我的一个Corba对象,把要传送对象交给我的Corba对象。b。客
户端先取到我的Corba对象的引用,然后用Corba对象里面的方法拿到被传送对象。在
这个过程中,我的Corba对象将使用奇妙的方法将对象的.class文件也变成流传送到客
户端并在客户端的VM中建立起这个类。最后对象的数据被反序列化为这个对象的实例。
我的这种方法已经用在我的应用服务器的管理控制台里,所以我的管理控制台瘦得只
剩下骨头了。
 
J

JJams_King

Unregistered / Unconfirmed
GUEST, unregistred user!
5。CORBA和EJB
最近很多人在比较CORBA和EJB。但是,正如yysun和yaojian所说的,CORBA和EJB是
两个不同的技术,根本不能比较。CORBA是对象技术,它主要关心的是对象怎么互相
发消息和传送数据。EJB则是个组件技术,它关心的却是组件这些可重用代码怎么组
织,它们怎么被执行,怎么被实例化,它跟客户怎么接口,它怎么被管理等的问题。
至于会被实例化成什么对象,EJB根本就不理。从目前情况看,人们普遍看好CORBA,
所以EJB组件常常被实例化成CORBA对象。而我也觉得,EJB+CORBA将是一个圆满的结
局。
 
Y

yaojian

Unregistered / Unconfirmed
GUEST, unregistred user!
To JJams_King:
Oh, you demonstrate everything on so all-side!
I exchange some real project idea with you.
3-Tier:
每层都只负责自己的东东.
e.g. A web project, client request an image with his own requirement, project will generate the image.
GUI:得到输入/给上级/收到上级东东/表现
Web Project:It is a JSP: 负责Post/上级给村HTML/response.
特殊处理:如处理客户订制的图,这里有Bean处理所有可能的定之要素.name it: Web_Bean.(For JSP only)
JSP will send whole Web_Bean to 上级.

中间
1.(a session bean):得到web_bean,按他的要求处理(交互)Entity_bean,得到XML的要素
2.(another class):处理生成XML
GUI(JSP)
1.收到XML.用XSL解释成HTML
2.给JSP (in jsp: Web_bean.generate(Response).
层间联系:
GUI/中间层:
同一机可以直接用,但实际上各定义一个Interface, We named them Broker,他负责把数据
(Web_Bean and XML(Byte[]))传递. 在Project agreement中Web_Bean是可流华的,故我们采用socket.
结论:
1.我们看不到DB,since EJB处理一切,不管数据在几个不同的库,连接效率,多点提交,
2.我们看不到协议.CORBA也好IIOP2也好,那是JNDI的事
3.我们看不到物理机.我们甚至怀疑物理机发布在群求
4.每个层和对象有明确的丰功,小而有效
It is why we love Java so much.
补充:load balance.
在层间加Broker的另一大好处是随时可以加入load balance!
还有EJB,他已经把这都实现了,回头看看发现这个项目的处理方法完全是向EJB东施效颦学来的.




 
Y

yaojian

Unregistered / Unconfirmed
GUEST, unregistred user!
唧唧外外说了一沱,完全不理人家受得了受不了?
不管大家受得了受不了用,再加一沱先:
在讲效率的时候,开发效率,维护效率也是一种效率阿
 
J

JJams_King

Unregistered / Unconfirmed
GUEST, unregistred user!
6。上面这些只是我自己的一些想法而已,隐隐约约的。当我想把它们写出来时,我突然
觉得乱七八糟,词不达意。见笑了。
 
Y

yaojian

Unregistered / Unconfirmed
GUEST, unregistred user!
To: 孙老师
Yes, I live in T. Howdo
you guess out it? From my IP? Or I write it to the profile?
Thanks for your time and kindness. This BBS is really helpful.
James Yao.
 
B

bluepeach

Unregistered / Unconfirmed
GUEST, unregistred user!
太多高手了,我可是菜鸟,将我不懂的地方向大家请教以下,谢了先。
我仔细看了一下上面大家的发言,但由于我对EJB不怎么了解,所以也无法说出所以然来。
但我认为:dcom或者corba都是关于对象的,它们解决的是二进制数据的传送,
而xml是解决的半结构化文本型数据的传送。所以,如果是仅仅关于数据库的解决方案,
用xml是个很方便的办法。但是我不知道为什么要用EJB?EJB又解决了什么问题?
yaojian说到:结论:
》1.我们看不到DB,since EJB处理一切,不管数据在几个不同的库,连接效率,多点提交。
》2.我们看不到协议.CORBA也好IIOP2也好,那是JNDI的事
》3.我们看不到物理机.我们甚至怀疑物理机发布在群求
》4.每个层和对象有明确的丰功,小而有效
我不知道我的理解对不对,但我认为EJB只是解决了数据库透明性。而他的协议透明性和物理机透明性
应该是基于corba才可以做到吧。我想corba是做不到数据库透明性,但是corba可以做到协议透明,
编程语言透明(可以解决遗留系统的问题)等。另外,corba可以做到负载平衡,并有一系列的服务,
如事件服务(可以实现push或pull,可以主动服务),可以有交易服务,安全服务等。
所以,我现在正在作一个东西,想用corba来体现一下下这些东西。我不知道EJB可不可以?
现在我没有时间去看EJB的资料。我想我有空的话会去看的。
瞎说了一堆,也不知是否让大家见笑了。我不懂的,只是想听听大家的意见。
 

左轻侯

Unregistered / Unconfirmed
GUEST, unregistred user!
我晕
听听先
 

阿蒙

Unregistered / Unconfirmed
GUEST, unregistred user!
jsp 不如 asp 用的广泛,jave 只看了看不太熟悉没有媒体吹的那么好学
 
C

Crane

Unregistered / Unconfirmed
GUEST, unregistred user!
左轻侯,阿蒙:前辈也回来啦!以后常来呀!
总动员(续)写到这里,又可以再开续了,续二的议题我还没有想全,
希望大家提出好的议题。
本题下周内结束。
 
E

eguy

Unregistered / Unconfirmed
GUEST, unregistred user!
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部