2005年09月
eWeek 权威测试显示 MySQL 4.0.1 可与 Oracle 9i 媲美阅读全文>
发表于 @ 2005年09月28日 13:37:00|评论(loading...)|编辑
近来TechRepublic开发者的一个调查显示参与调查的多于百分之55的开发者认为如果一个程序达到了预算,发布和商业需求的话它就是成功的。但是从开发到用户最终接受这个软件还有一段泥泞的路要走。
从将应用程序变为产品到确保用户已经训练妥当并完全的明白了这个程序的实现过程无疑是充满艰辛的。而且非常常见的是,这个过程总是有很多的压力和不眠之夜。下面是一些顺利的管理你应用程序的交付过程的技巧。
#1:检查硬件设备。确保可以获得适当的硬件设备而且已经被正确的配置了。确保你熟悉其它使用同一资源的程序,包括服务器和连接,并要明白这些程序如何占用了硬件的资源。
#2:确保服务器是相同的-或者尽可能的相同。尽量以熟悉的方式建立开发,质量保证(QA),和生产环境。记住所有的不同点,即使他们看起来很不重要。你有可能在实现的过程中因为很小的另人恼怒的配置问题而停滞不前,这可不好玩。
#3:善待管理人员。给他们提供正确的文档和培训。他们对于软件的交付是非常关键的,而且通常是用户群体中知识最丰富的人。他们能够向你反馈你用其它方式可能无法获得的信息。
#4:开发一个安全的安装程序。不阅读全文>
发表于 @ 2005年09月26日 10:49:00|评论(loading...)|编辑
How to get a BPEL process running with ServiceMix JBI Container and Fivesight's
PXE :
===
1) The first step is to create a BPEL process with the corresponding WSDL files.
Examples bundled with PXE can serve as a quickstart.
2) Remove any concrete bindings in the WSDL Files (
binding and service XML tags). Indeed, the endpoints are JBI proxies, so the
SOAP over HTTP bindings are useless here. PXE and ServiceMix will take care of
registering ports as JBI Service endopints.
3) Compil阅读全文>
发表于 @ 2005年09月21日 10:52:00|评论(loading...)|编辑
BPEL4WS和ESB不仅不是相互竞争的,反而是互补的。BPEL定义业务流程,而ESB提供BPEL执行过程中所有需要的服务。下面看一个PXE的BPEL过程无缝迁入到ServiceMix里面的例子
这是在PXE中独立执行时候的配置,我们看到ProcessSVC的Provider里面使用了Protocoladapter.soap这个协议提供。其实bpel更不需要关注提供协议的类型,这些服务全部交给ESB做就行了
阅读全文>
发表于 @ 2005年09月20日 16:19:00|评论(loading...)|编辑
JBI和ESB是互补的。JBI提供一个模型和将集成组件作为服务的标准接口。JBI
可以宿主在一个应用程序服务器环境或者在一个ESB容器中。ESB提供了一套基础架
构包括了事件驱动的SOA,高度分布的路由目的地命名,企业消息能力和分布管理
能力。
JBI允许应用程序和ESB无缝地加入可互操作,松散耦合的SOA。JBI在应用程序服
务器中宿主,提供应用逻辑。ESB提供数据移动,安排和宿主用于集成的中间服务
。
注:JBI定义的是服务的集成方法。ESB定义的是企业消息如何和各个系统交互和流动。ESB中一些服务例如转换,路由服务可以是JBI SE中的。ESB还提供了JMX管理以及安全事务等其他功能。
阅读全文>
发表于 @ 2005年09月19日 11:32:00|评论(loading...)|编辑
Lagecy webapp
|
Portlet bridge New Portlet App
| |
Portlet Container
|
Portal
Lagecy Service
|
JBI Component New JBI Component Service
| |
JBIContainer
|
ESB
Legecy Service是企业里面的各种服务。例如一个工作流引擎,一个xslt引擎,一个业务规则引擎。甚至一个员工信息查询服务。如果是现有的应用,就通过JBI C阅读全文>
发表于 @ 2005年09月18日 10:00:00|评论(loading...)|编辑
JBI就像一个标准化了的ESB,这时候,原有的ESB产品可以集成到标准的JBI里面,以JBI Component的形式被调用。
JBI的架构包括
1 JBI Container
2 JBI Components
2.1 Service components //例如工作流组件,规则引擎,转换引擎等都是JBI组件
例如ServiceMix里面的 WS-BPEL引擎就是用了PXE BPEL Engine。PXE 本身就有一个JBI component和 deployment unit , 因为遵循了JBI, 就可以自动部署在任何 JBI compliant container里面.
2.2 SOAP bindings/Transport Bindings //JBI 里面的Binding就是Mule里面的Connector。JBI支持更多Web Service相关的Bindings。把剩下的,例如File,Email,Ftp,jMS,TCP,EDI,JABBER统称为Transport Bindings
Mule 和 JBI:
阅读全文>
发表于 @ 2005年09月16日 17:18:00|评论(loading...)|编辑
1 Connectors :就是支持不同协议的连接器。例如:Http,FTP,Mail,Soap,JMS,MQ等等。通常连接器有三种类型:只用于接收,只用于发送和两者皆可。
2 EndPoints Address:终端地址,类似于jms://topic:myTopic这样的东西。前面的jms就是连接器的类型。后面是各个连接器能识别的地址。这个地址可以是接收器识别的地址,例如:jms://topic:myTopic表示对myTopic这个队列进行监听。也可以是发送器识别的地址。例如pop3://user:password@mail.mycompany.com将某一个消息发送到远程邮箱里面。
注意这里的地址是你自己命名的,通常不同的应用有不同的地址,例如某个应用是jms://topic:myTopic。另一个是jms://topic:myTopic2
3 UMO Components :可以想象成这是ESB总线上的一个个芯片,控制器。在Mule里面,他们是一些POJO,负责接收消息,然后进行处理,在发送出去。例如,一个UMO它的作用是监听jms://topic:myTop阅读全文>
发表于 @ 2005年09月16日 12:02:00|评论(loading...)|编辑
在http://raibledesigns.com/page/rd?entry=biled_again_this_time_because 这篇文章里面。Matt对OSS针对Appfuse的可用性的怀疑进行了反驳。他说他在开始一个项目的时候,只会用到Appfuse的20%-30%,然而一般的用户是不会知道如何灵巧的把不需要的部分去掉的。
所以我们今天在建立快速构建平台的时候,也应该考虑到企业应用的千变万化是不可能用一个平台,一个业务模型或者一套权限方案就能够满足。我们应该设计的是可以灵活插件的模型,然后设计不同的权限方案,根据具体的需要灵活的取舍。
在关于Struts上,Matt认为虽然Struts没有正式宣布死亡,但是和SpringMvc,Webwork比仍然相形见绌。但是因为Struts的用户数量已经很强大。没有必要去更换另一种功能相似的技术。
Matt还针对 Jetty 5.1.5rc1, Tomcat 5.5.9 and Resin 3.0.14 (OS version). 作了一组性能比较。
执行test-canoo测试用例,也就是appfus阅读全文>
发表于 @ 2005年09月16日 08:46:00|评论(loading...)|编辑
JBI component 就像portlet 一样,企业中每一种服务器产品,无论其接口是Webservice,XML-RPC,FTP,Http,Email都可以为他们夺身定制编写一个JBI Component,JBI用来接收自己的服务器发来的消息或者将消息发送给自己的服务器。
我们看看ServiceMix的几种JBI Component
JMS Component: 发送和接收JMS messages.
HTTP: 支持一个 HTTP 客户端(可以调用远程HTTP Servers) 和一个服务器端的HTTP 榜定(来将JBI
components 呈现为 HTTP)
File: 将消息存储成本地文件。或者监视本地文件里面的一组文件或者目录并将他们发送给JBI.
Jabber: 发送消息给Jabber或者从Jabber接收消息并通过NMR发送给JBI
Ftp: 将消息存储成FTP上的文件。或者监视FTP里面的文件或者目录并将他们发送给JBI.
每一种协议都有接收和发送两种component ,把这些组建都写好以后,接下来就是阅读全文>
发表于 @ 2005年09月15日 17:23:00|评论(loading...)|编辑
一个是Object Web的Celtix:它原来是一个商业软件,因为卖的不好,所以转到OW下面,想增加一点知名度。
第二个是codehaus的ServiceMix :它是真正意义上的兼容JSR208 JBI标准的ESB容器。它的主要特性包含:
JBI 容器
脚本支持
规则引擎
工作流引擎
BPEL 引擎
Web Services Notification 实现
第三个是codehaus的Mule :Mule不算真正意义上的JBI实现。它更像是一个对象代理。但是因为它先走一步,所以已经非常成熟。它对EIP 企业应用集成提供了一套完整的支持。另外他也提供了JBI的接口。
从应用角度来说,如果你现在要做企业应用集成的项目,Mule是可以最快上手的项目。
Mule和ServiceMix都支持Spring,Pico作为组件容器的容器。
阅读全文>
发表于 @ 2005年09月15日 16:02:00|评论(loading...)|编辑
这个版本的主要特性有:
1 JBI
Mule的传输、组件和变形可以用于任何JBI兼容的容器里面。此外,使用JBI榜定,Mule的组件可以和任何JBI容器交互
2 BPEL
继承了FiveSight's PXE WS-BPEL execution engine.
3 EJB
Mule的complonent可以是EJB的SessionBean
使用EJB传送器可以把事件分发给EJB
4 New Transports
RMI传送器
Quartz支持
FTP传送器
5Other Noteworthy Improvements
新增了Stock Quote Example
可以运行时增加,修改组件
阅读全文>
发表于 @ 2005年09月15日 12:11:00|评论(loading...)|编辑
Taco项目是Tapestry项目的控件http://tacos.sourceforge.net/index.html
现在这个项目可以运行在主流的javascript框架上: Prototype/Rico/以及Dojo
主要组件有
Components
Tree
AjaxDirectLink
AjaxForm
DirtyFormWarning
Autocompleter
ProgressBar
Refresh
阅读全文>
发表于 @ 2005年09月14日 16:59:00|评论(loading...)|编辑
Netbeans FormDesigner的确非常的强大。我现在的一个Swing项目采取的开发方法是,使用netbeans的form designer设计界面。当然设计出来的界面只包含组件的定义。也就相当于MVC的View,所有控制类放到一个Controller里面。阅读全文>
发表于 @ 2005年09月14日 11:58:00|评论(loading...)|编辑
Free Libraries/Tools for Sending/Receiving SMS with a Computer阅读全文>
发表于 @ 2005年09月13日 17:41:00|评论(loading...)|编辑
测试基本上和我想得一样。方法是修改webmin里面的lib一类的文件,把html相关的地方修改成xml,然后返回。也就是说,基本上还是webmin的代码,修改一下print里面的东西。我想找个本科生一个个改就OK的。以下是测试代码,有兴趣的朋友,可以联系我,我们一起把这个项目放到sourceforge上。阅读全文>
发表于 @ 2005年09月12日 11:08:00|评论(loading...)|编辑
这是最简单的一个helloworld的调用。xmlrpc服务器端的代码在前一个blog中。用perl写的。主要是为了测试不同语言的兼容性。阅读全文>
发表于 @ 2005年09月12日 09:28:00|评论(loading...)|编辑
不用多说了
#!/usr/bin/perl
use XMLRPC::Transport::HTTP;
XMLRPC::Transport::HTTP::CGI
-> dispatch_to('World')
-> handle;
package World;
sub new {
bless {}, shift;
};
sub HelloWorld {
my ($self) = @_;
return "Hello World\n";
};
sub GoodByeWorld {
my ($self,$adjective) = @_;
return "Goodbye $adjective World\n";
}
////////// 以下是客户端
#!/usr/bin/perl
use XMLRPC::Lite;
print "Content-type: text/html\n\n";
print XMLRPC::Lite
-> proxy('http://202.阅读全文>
发表于 @ 2005年09月11日 18:15:00|评论(loading...)|编辑
看到网上很多人说ajax的应用程序应该是One page one application。我觉得这种看法还不适合我目前的开发模式。
阅读全文>
发表于 @ 2005年09月11日 16:20:00|评论(loading...)|编辑
用VB,VBA或者其他支持old的组建导出excel文件的时候,通常需要对文件格式进行排版和美化。这里面有两种做法,一,事先用一个设计好格式的excel,打开它往里面付值。 二,使用ole自己的划线和边框调整工具。下面具体看看这种做法下的几个操作的代码阅读全文>
发表于 @ 2005年09月11日 16:06:00|评论(loading...)|编辑
最近要搞到webmin这个东西,仔细看了看代码,耦合的还真是紧密。既然要管理服务器。不可能自己重写一套方案了,于是乎还是修改webmin,取我所用的改写一些模块
1 使用SOAP::Lite这个包
这个包包含了xml-rpc,soap等常用的封装
2 apache+perl CGI 安装
在conf.php中加入
Options +ExecCGI
AddHandler cgi-script .cgi .pl
Alias /webmin-rpc/ "/usr/local/webmin-rpc/"
建立一个测试脚本
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello, World.";
赋予权限
chmod a+x first.pl
3 我的初步设想是
利用xml-rpc监调用linux端的perl脚本。基本上脚本还是web-lib.pl里面,其他模块下的cgi功能都很easy,反正把里面生成html的地方去掉。结阅读全文>
发表于 @ 2005年09月11日 15:46:00|评论(loading...)|编辑
目前网上大大小小的Ajax Framework已经计算不清了,但是基本实现形式都是,通过js响应客户端浏览器的某个事件,然后调用一个js函数,在此函数中使用servicecall之类的方法。
接下来的处理就见仁见智了,通常是两种:
1 返回的resultobject,可能是xml,html,或者其他自定义的格式,通过客户端设置一个responce handler来接受这个返回变量。解析,并更新到dhtml里面。
2 把这个responce handler的操作也封装起来。通过服务器端的函数,直接设置返回值,这当然就需要封装的函数里面对榜定的控件可以灵活的操作。
我想对于Ajaxian JSF第二种方法是必需的。因为jsf组件。例如一个文本框,在一个Form里面是有多个实例的,而这些实例得Id是jsf自动生成的。所以返回值得处理也应该是自动的。
xajax是一个php得ajax开发框架。它把客户端的响应也封装起来
客户端
php端
function multiply($x, $y)
{
$objResponse = new xajaxRes阅读全文>
发表于 @ 2005年09月09日 16:05:00|评论(loading...)|编辑
目前好像开源的项目里面还没有关于ajax-jsf结合的比较好的方案。
用标签库封装的最终目标应该是实现工业级的组件重用。模板语言里面在开发的时候不需要接触到复杂javascript代码。参考了两个php模板得ajax-tag项目ajaxac和xajax,都封装的非常干净。
阅读全文>
发表于 @ 2005年09月09日 12:16:00|评论(loading...)|编辑
朋友让我介绍Ajax的好处,我大概想了几点:
1 大大减少了服务器端和客户端的数据流量,不像submit-responce时代需要参杂大量的html脚本。
2 丰富了客户端的相应,例如表单子段的提示输入,数据验证。多级列表的实现。树桩菜单的动态加载等等
需要注意的事:Ajax设计时候一定要考虑用户界面事件触发的无序性。1 对一些有写操作的地方,要根据情况实行界面锁定功能,即提交完成前,不可以进行其他操作。2 任何操作都要给用户 Load... 这样的提示
Ajax的三种形式
1 最原始的XMLHTTPRepuest方式,访问任何通用网关接口,返回XML
2 Javascript封装好的函数库
RicoAjaxFramework 返回可以有两种形式1 htmlsnipper,2 xml object
Dojo 提供了大量的组件库,包括数据类型,极大丰富了javascript的操作,强烈推荐!
3 和某种脚本语言榜定的标签库,自动生成ajax的访问脚本,和服务器端交互
DWE java
Ajaxac php
阅读全文>
发表于 @ 2005年09月08日 16:31:00|评论(loading...)|编辑
最近刚发现原来netbeans一直有自己的profiler。 http://profiler.netbeans.org/screenshots_m7.html阅读全文>
发表于 @ 2005年09月05日 13:56:00|评论(loading...)|编辑
原文地址:http://java.sun.com/developer/technicalArticles/WebServices/become/?feed=JSC
1 Become.com准备开发他们的第二代搜索引擎。他们曾经花了一年的时间开发了一个C++版本的web crawler ,但是有明显的内存和线程问题。
阅读全文>
发表于 @ 2005年09月04日 09:44:00|评论(loading...)|编辑
spring-rcp里面简单到极点(相对)的就算是菜单和导航条的配置了,当然这里面吸收了eclipse,netbean等思想。做成这样的形式以后也许可以向vb的菜单编辑器一样图形化创建菜单栏吧。阅读全文>
发表于 @ 2005年09月03日 18:50:00|评论(loading...)|编辑
richclient-application-context.xml 上一节我们说到,这个文件是整个应用程序框架的核心,现在我们就来看这个文件。阅读全文>
发表于 @ 2005年09月03日 18:36:00|评论(loading...)|编辑
Swing桌面应用程序的开发一直以来都是Java桌面开发者心中的痛! 很多人说它过于复杂,布局过于繁琐。也有很多公司想了各种方法来简化swing的开发,包括,阅读全文>
发表于 @ 2005年09月03日 18:00:00|评论(loading...)|编辑
这个例子网上有很多版本,但是通常能发的,异常管理不是做的很好,这里的代码是我稍加整理的。包含了认证过程,我想现在SMTP一般都是要认证的吧。不要认证的只需把相应的行去掉即可。阅读全文>
发表于 @ 2005年09月03日 09:10:00|评论(loading...)|编辑
最近一些朋友谈到了系统性能分析的问题。想分析一个基于Java的系统为什么会慢最好的方法就是使用Profiler.
profiler的原理是通过一些驱动和jvm绑定来读取jvm的运行时的情况,得到从类的加载到执行到结束整个过程中时间情况,从而知道到底那些函数的那些方法让你的系统变的很慢。
阅读全文>
发表于 @ 2005年09月01日 17:58:00|评论(loading...)|编辑
软件开发是一个很特殊的行业,他不需要什么投入,不需要设备,资金,高深的技术。只要你有一台电脑,一个文本编辑器加上一些编译器,就可以进行从汇编语言到企业级应用的各种软件系统的开发了。这感觉很像游击队,只要拿把枪,就是游击队。当然队伍壮大了,就是正规军了。阅读全文>
发表于 @ 2005年09月01日 13:56:00|评论(loading...)|编辑