<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rock Sun's Blog &#187; java</title>
	<atom:link href="http://rocksun.cn/category/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://rocksun.cn</link>
	<description>Blogger's Blog</description>
	<lastBuildDate>Wed, 16 May 2012 13:01:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>自由软件当崛起</title>
		<link>http://rocksun.cn/to-free-middleware/</link>
		<comments>http://rocksun.cn/to-free-middleware/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 12:36:51 +0000</pubDate>
		<dc:creator>rocksun</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[tomcat]]></category>
		<category><![CDATA[WebLogic]]></category>
		<category><![CDATA[websphere]]></category>

		<guid isPermaLink="false">http://rocksun.cn/to-free-middleware/</guid>
		<description><![CDATA[


还记得我们的dev2dev.us吗？开始时我并不太清楚该做什么，本以为提供更多的原厂资料，提供一些原厂的小礼品，就能笼络一批开发者关注。但是渐渐的我觉得，与WebLogicFans比这个，没有必要，也很没意思。
关注我的人也一定发现，我经常会有些唠叨，会有些不满。最近我会对每个认识的人&#8212;-无论是刚认识的，还是老朋友，讲述CCAV上的一些欺骗，跟他们说真相是怎样的，教他们翻墙。很多人会很装B的跟我回答：“我都知道，我知道的更黑，能怎么样呢？”每当听到这种回答，我也确实无言以对。
是的，我一直不知道在这个世道我能做什么？我不想与这个社会同流合污，也不想逃避。因为工作的关系，看到过不少政府部门、垄断企业在IT领域的投资，我知道之后有许许多多黑暗的东西，那些国外的巨无霸公司不知道通过中国赚取了多少不义之财？另一方面，我们的中小企业，利润被盘剥的所剩无几，IT投资除了盗版，几乎为0。我们身在其中，难道不能做点什么呢？
也许，确实可以做点什么。就从目前我所做的事情开始吧。dev2dev应该变成一个更开放的中间件社区，从商业中间件开始，提高大家的能力，然后逐渐的走向软件的希望之地&#8212;-自由软件，让更多的人可以享受更专业的中间件支持，不再受商业软件许可证的束缚。
希望有这样一天，但我知道靠我一个人是不可能的。也许，你也有这样的想法，你也愿意为此而努力，请你来帮我吧。
现在，我知道dev2dev的方向了，尽管具体的步骤还不是那么清晰，但我清楚，我们的未来是在开源&#8212;-学习商业，成为专业的开源中间件服务社区。


Related posts:银行综合大前置平台民主的细节-中超联赛缘起Oracle AS



Related posts:<ol><li><a href='http://rocksun.cn/bank-big-front-system/' rel='bookmark' title='Permanent Link: 银行综合大前置平台'>银行综合大前置平台</a></li><li><a href='http://rocksun.cn/csl-minzhu/' rel='bookmark' title='Permanent Link: 民主的细节-中超联赛'>民主的细节-中超联赛</a></li><li><a href='http://rocksun.cn/relation-to-oracleas/' rel='bookmark' title='Permanent Link: 缘起Oracle AS'>缘起Oracle AS</a></li></ol>

]]></description>
			<content:encoded><![CDATA[<p>还记得我们的<a href="http://dev2dev.us/bbs/index.php">dev2dev.us</a>吗？开始时我并不太清楚该做什么，本以为提供更多的原厂资料，提供一些原厂的小礼品，就能笼络一批开发者关注。但是渐渐的我觉得，与WebLogicFans比这个，没有必要，也很没意思。</p>
<p>关注我的人也一定发现，我经常会有些唠叨，会有些不满。最近我会对每个认识的人&#8212;-无论是刚认识的，还是老朋友，讲述CCAV上的一些欺骗，跟他们说真相是怎样的，教他们翻墙。很多人会很装B的跟我回答：“我都知道，我知道的更黑，能怎么样呢？”每当听到这种回答，我也确实无言以对。</p>
<p>是的，我一直不知道在这个世道我能做什么？我不想与这个社会同流合污，也不想逃避。因为工作的关系，看到过不少政府部门、垄断企业在IT领域的投资，我知道之后有许许多多黑暗的东西，那些国外的巨无霸公司不知道通过中国赚取了多少不义之财？另一方面，我们的中小企业，利润被盘剥的所剩无几，IT投资除了盗版，几乎为0。我们身在其中，难道不能做点什么呢？</p>
<p>也许，确实可以做点什么。就从目前我所做的事情开始吧。dev2dev应该变成一个更开放的中间件社区，从商业中间件开始，提高大家的能力，然后逐渐的走向软件的希望之地&#8212;-自由软件，让更多的人可以享受更专业的中间件支持，不再受商业软件许可证的束缚。</p>
<p>希望有这样一天，但我知道靠我一个人是不可能的。也许，<font color="#ff0000">你</font>也有这样的想法，<font color="#ff0000">你</font>也愿意为此而努力，请你来帮我吧。</p>
<p>现在，我知道dev2dev的方向了，尽管具体的步骤还不是那么清晰，但我清楚，我们的未来是在开源&#8212;-学习商业，成为专业的开源中间件服务社区。</p>


<p>Related posts:<ol><li><a href='http://rocksun.cn/bank-big-front-system/' rel='bookmark' title='Permanent Link: 银行综合大前置平台'>银行综合大前置平台</a></li><li><a href='http://rocksun.cn/csl-minzhu/' rel='bookmark' title='Permanent Link: 民主的细节-中超联赛'>民主的细节-中超联赛</a></li><li><a href='http://rocksun.cn/relation-to-oracleas/' rel='bookmark' title='Permanent Link: 缘起Oracle AS'>缘起Oracle AS</a></li></ol></p>
<p></p>]]></content:encoded>
			<wfw:commentRss>http://rocksun.cn/to-free-middleware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>开了一个Dev2Dev.us</title>
		<link>http://rocksun.cn/dev2dev-us/</link>
		<comments>http://rocksun.cn/dev2dev-us/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 16:59:13 +0000</pubDate>
		<dc:creator>rocksun</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[dev2dev]]></category>

		<guid isPermaLink="false">http://rocksun.cn/?p=737</guid>
		<description><![CDATA[顾名思义，我建立了我们自己的Dev2Dev，暂时还未开放注册，征求有识之士加盟，共探未来发展的道路。
有兴趣的朋友请给我留言，我会发送邀请到您的邮箱。


No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>顾名思义，我建立了<a href="http://dev2dev.us">我们自己的Dev2Dev</a>，暂时还未开放注册，征求有识之士加盟，共探未来发展的道路。</p>
<p>有兴趣的朋友请<a href="http://rocksun.cn/contact/">给我留言</a>，我会发送邀请到您的邮箱。</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://rocksun.cn/dev2dev-us/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebLogic Web开发</title>
		<link>http://rocksun.cn/weblogic-web-development/</link>
		<comments>http://rocksun.cn/weblogic-web-development/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 07:45:40 +0000</pubDate>
		<dc:creator>rocksun</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[WebLogic]]></category>

		<guid isPermaLink="false">http://rocksun.cn/?p=711</guid>
		<description><![CDATA[WebLogic Web开发，虽然足够老，但是老问题总还是老问题。下载：WebLogic Web开发
1    Java基础    2
1.1    axman考验你的Java基础    2
1.2    如何获得客户端的MAC地址？    6
1.3    axman对equal的深入研究    7
1.4    为什么要始终使用PreparedStatement代替Statement?    12
1.5    一个利己线程调度实例？    14
1.6    GBK与GB2312字符集的问题    15
1.7    怎样制作ear,war文件？    15
1.8    乱码问题    16
2    Servlet&#38;JSP    19
2.1    加载和启动servlet后，为一个servlet创建了一个还是多个实例？    19
2.2    WebLogic里面的一个class修改了，需要重新启动WebLogic吗？    19
2.3    Tomcat关于UTF-8JSP文件的BUG    20
2.4    使用FileUpload组件上传文件？    22
2.5    session中存放数据库connection的问题    24
2.6    如果防止JSP页面刷新    25
2.7    JSP在I/O方面的一些问题    25
2.8    文件下载的时候为什么finally里面的代码没有执行？    26
2.9    请问web server怎么将配置文件参数在web application启动的时候读进内存    27
2.10    如何设置并且访问环境变量？    28
2.11    中文URL该怎么写    29
3    前台表现层    31
3.1    用JFreeReport生成PDF报表    31
3.2    POI介绍    38
3.3    使用POI创建Excel格式数据    41
4   [...]


Related posts:<ol><li><a href='http://rocksun.cn/weblogic-admin/' rel='bookmark' title='Permanent Link: WebLogic管理精华'>WebLogic管理精华</a></li><li><a href='http://rocksun.cn/relation-to-oracleas/' rel='bookmark' title='Permanent Link: 缘起Oracle AS'>缘起Oracle AS</a></li><li><a href='http://rocksun.cn/to-free-middleware/' rel='bookmark' title='Permanent Link: 自由软件当崛起'>自由软件当崛起</a></li></ol>

]]></description>
			<content:encoded><![CDATA[<p>WebLogic Web开发，虽然足够老，但是老问题总还是老问题。下载：<a href="http://dev2dev.us/docs/weblogic/WebLogicWebDevelopment.doc">WebLogic Web开发</a></p>
<p>1    Java基础    2<br />
1.1    axman考验你的Java基础    2<br />
1.2    如何获得客户端的MAC地址？    6<br />
1.3    axman对equal的深入研究    7<br />
1.4    为什么要始终使用PreparedStatement代替Statement?    12<br />
1.5    一个利己线程调度实例？    14<br />
1.6    GBK与GB2312字符集的问题    15<br />
1.7    怎样制作ear,war文件？    15<br />
1.8    乱码问题    16<br />
2    Servlet&amp;JSP    19<br />
2.1    加载和启动servlet后，为一个servlet创建了一个还是多个实例？    19<br />
2.2    WebLogic里面的一个class修改了，需要重新启动WebLogic吗？    19<br />
2.3    Tomcat关于UTF-8JSP文件的BUG    20<br />
2.4    使用FileUpload组件上传文件？    22<br />
2.5    session中存放数据库connection的问题    24<br />
2.6    如果防止JSP页面刷新    25<br />
2.7    JSP在I/O方面的一些问题    25<br />
2.8    文件下载的时候为什么finally里面的代码没有执行？    26<br />
2.9    请问web server怎么将配置文件参数在web application启动的时候读进内存    27<br />
2.10    如何设置并且访问环境变量？    28<br />
2.11    中文URL该怎么写    29<br />
3    前台表现层    31<br />
3.1    用JFreeReport生成PDF报表    31<br />
3.2    POI介绍    38<br />
3.3    使用POI创建Excel格式数据    41<br />
4    应用服务器特殊问题    43<br />
4.1    Tomcat中的Web应用迁移到Weblogic 8.1    43<br />
4.2    weblogic7.0中怎样实现定时执行程序?    43<br />
4.3    养成使用在web.xml里配置引用资源的习惯    44<br />
4.4    关于web-inf下的JSP的引用问题    45<br />
4.5    WebLogic7关于JSP编译的一个BUG    45<br />
4.6    如何让一个扩展名的文件在下载时提示下载而不是打开    46<br />
4.7    在weblogic6.1下调试时如何保留系统编译jsp文件所生成的.java文件？    46<br />
5    其他资料    47</p>


<p>Related posts:<ol><li><a href='http://rocksun.cn/weblogic-admin/' rel='bookmark' title='Permanent Link: WebLogic管理精华'>WebLogic管理精华</a></li><li><a href='http://rocksun.cn/relation-to-oracleas/' rel='bookmark' title='Permanent Link: 缘起Oracle AS'>缘起Oracle AS</a></li><li><a href='http://rocksun.cn/to-free-middleware/' rel='bookmark' title='Permanent Link: 自由软件当崛起'>自由软件当崛起</a></li></ol></p>
<p></p>]]></content:encoded>
			<wfw:commentRss>http://rocksun.cn/weblogic-web-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebLogic管理精华</title>
		<link>http://rocksun.cn/weblogic-admin/</link>
		<comments>http://rocksun.cn/weblogic-admin/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 07:32:49 +0000</pubDate>
		<dc:creator>rocksun</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[Admin]]></category>
		<category><![CDATA[WebLogic]]></category>

		<guid isPermaLink="false">http://rocksun.cn/?p=708</guid>
		<description><![CDATA[因为现在有了更多关于中间件的工作，所以会增加一些中间件的文章。这是以前我在dev2dev社区中WebLogic Admin管理的一些精华贴总结的目录，好早之前的文章了，唤起了我的很多记忆。完整的文档可以从这里下载: WebLogic管理精华。
1	日常管理	1
1.1	WebLogic Platform 8.1 永不过期的开发版license	1
1.2	如何远程启动WebLogic服务?	1
1.3	控制台左边的树结构看不见？	1
1.4	WebLogic 配置出来的各种域有什么区别？	2
1.5	Too many open files错误的处理	3
1.6	Apache2和weblogic7实现虚拟主机	4
1.7	如何限制公网用户访问WebLogic的控制台呢？	6
1.8	开机自动启动oracle和weblogic	6
1.9	如何测试虚拟主机	8
1.10	WebLogic的Startup Class应该放在那个目录里	8
1.11	如何停止WebLogic服务？	8
2	应用管理	9
2.1	JNDI里面加和不加java:comp/env/前缀有什么区别？	9
2.2	如何更改默认打开主页？如何设置虚拟目录？	9
2.3	WebLogic Builder使用简介	10
2.4	WebLogic部署应用的方式简明列表	10
2.5	WebLogic如何设置session超时时间	11
3	监控调优	13
3.1	理解JVM的垃圾收集机制	13
3.1.1	简述	13
3.1.2	下面列举一些JVM使用的GC	13
3.1.3	Sun Hotspot 1.4.1 JVM堆大小的调整	14
3.1.4	从JVM中获取信息以助于调整方案	15
3.1.5	BEA JRockit JVM的使用	15
3.2	WebLogic Server Hang产生的一般原因	16
3.2.1	系统内存不足	16
3.2.2	系统CPU忙	17
3.2.3	系统文件描述符数目不足	17
3.2.4	线程死锁	17
3.3	&#8220;指定的网络名不再可用&#8221;错误	18
4	集群配置	19
4.1	集群简明配置过程	19
4.2	WebLogic应用在集群环境下的一些基本知识	20
4.2.1	基本概念	20
4.2.2	集群规划	21
4.2.3	服务器配置任务列表	21
5	安全管理	25
5.1	WebLogic AD ldap 配置方法	25
5.2	口令的保护	26
6	其它资源	29
6.1	dev2dev 学堂	29
6.2	WebLogic代码库和CodeShare	29
6.3	在线论坛Dev2dev	30
6.4	学习WebLogic起步过程	30


Related posts:WebLogic Web开发缘起Oracle AS自由软件当崛起



Related posts:<ol><li><a href='http://rocksun.cn/weblogic-web-development/' rel='bookmark' title='Permanent Link: WebLogic Web开发'>WebLogic Web开发</a></li><li><a href='http://rocksun.cn/relation-to-oracleas/' rel='bookmark' title='Permanent Link: 缘起Oracle AS'>缘起Oracle AS</a></li><li><a href='http://rocksun.cn/to-free-middleware/' rel='bookmark' title='Permanent Link: 自由软件当崛起'>自由软件当崛起</a></li></ol>

]]></description>
			<content:encoded><![CDATA[<p>因为现在有了更多关于中间件的工作，所以会增加一些中间件的文章。这是以前我在dev2dev社区中WebLogic Admin管理的一些精华贴总结的目录，好早之前的文章了，唤起了我的很多记忆。完整的文档可以从这里下载: <a href="http://dev2dev.us/docs/weblogic/WebLogicAdmin.doc">WebLogic管理精华</a>。</p>
<p>1	日常管理	1<br />
1.1	WebLogic Platform 8.1 永不过期的开发版license	1<br />
1.2	如何远程启动WebLogic服务?	1<br />
1.3	控制台左边的树结构看不见？	1<br />
1.4	WebLogic 配置出来的各种域有什么区别？	2<br />
1.5	Too many open files错误的处理	3<br />
1.6	Apache2和weblogic7实现虚拟主机	4<br />
1.7	如何限制公网用户访问WebLogic的控制台呢？	6<br />
1.8	开机自动启动oracle和weblogic	6<br />
1.9	如何测试虚拟主机	8<br />
1.10	WebLogic的Startup Class应该放在那个目录里	8<br />
1.11	如何停止WebLogic服务？	8<br />
2	应用管理	9<br />
2.1	JNDI里面加和不加java:comp/env/前缀有什么区别？	9<br />
2.2	如何更改默认打开主页？如何设置虚拟目录？	9<br />
2.3	WebLogic Builder使用简介	10<br />
2.4	WebLogic部署应用的方式简明列表	10<br />
2.5	WebLogic如何设置session超时时间	11<br />
3	监控调优	13<br />
3.1	理解JVM的垃圾收集机制	13<br />
3.1.1	简述	13<br />
3.1.2	下面列举一些JVM使用的GC	13<br />
3.1.3	Sun Hotspot 1.4.1 JVM堆大小的调整	14<br />
3.1.4	从JVM中获取信息以助于调整方案	15<br />
3.1.5	BEA JRockit JVM的使用	15<br />
3.2	WebLogic Server Hang产生的一般原因	16<br />
3.2.1	系统内存不足	16<br />
3.2.2	系统CPU忙	17<br />
3.2.3	系统文件描述符数目不足	17<br />
3.2.4	线程死锁	17<br />
3.3	&#8220;指定的网络名不再可用&#8221;错误	18<br />
4	集群配置	19<br />
4.1	集群简明配置过程	19<br />
4.2	WebLogic应用在集群环境下的一些基本知识	20<br />
4.2.1	基本概念	20<br />
4.2.2	集群规划	21<br />
4.2.3	服务器配置任务列表	21<br />
5	安全管理	25<br />
5.1	WebLogic AD ldap 配置方法	25<br />
5.2	口令的保护	26<br />
6	其它资源	29<br />
6.1	dev2dev 学堂	29<br />
6.2	WebLogic代码库和CodeShare	29<br />
6.3	在线论坛Dev2dev	30<br />
6.4	学习WebLogic起步过程	30</p>


<p>Related posts:<ol><li><a href='http://rocksun.cn/weblogic-web-development/' rel='bookmark' title='Permanent Link: WebLogic Web开发'>WebLogic Web开发</a></li><li><a href='http://rocksun.cn/relation-to-oracleas/' rel='bookmark' title='Permanent Link: 缘起Oracle AS'>缘起Oracle AS</a></li><li><a href='http://rocksun.cn/to-free-middleware/' rel='bookmark' title='Permanent Link: 自由软件当崛起'>自由软件当崛起</a></li></ol></p>
<p></p>]]></content:encoded>
			<wfw:commentRss>http://rocksun.cn/weblogic-admin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java何去何从？</title>
		<link>http://rocksun.cn/where-java-go/</link>
		<comments>http://rocksun.cn/where-java-go/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 08:53:15 +0000</pubDate>
		<dc:creator>rocksun</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[sun]]></category>

		<guid isPermaLink="false">http://rocksun.cn/?p=602</guid>
		<description><![CDATA[本来还以为是谣传，但是现在看来是真的了，Oracle将会收购Sun。
我一直认为，Java能够获得如此的大的成绩，很大程度上源于Sun公司的弱势。Sun因为在各个方面经营上的失败，所以更早的追求变化和创新，在各个厂商中最先表现出了开放的经营策略。但是，作为Java的创造者，Sun没有能够从Java上获取到足够的利益，因此，它只能是尽力维护Java这个平台对于各个厂商的公平性。BEA和WebLogic的崛起，很大程度上得益于这种公平的环境中，而这些新兴的公司和组织与传统厂商共同建立起了一个平衡的java社区。
而开源世界另一个很大的支持者IBM，则更像一个搅局者。他们早早变建立了最完整的产品线，但是在这个产品线上总有一些缺失的环节，虽然不能获取到很大的利润，但是却影响着整个产品线，而且IBM庞大的身躯确实不方便与对手直接肉搏，便只好培植一个庞大的开源社区，蚕食对手的阵地。而IBM自己则通过强大的营销，兜售自己的全套方案。
而Oracle，一直很愉快的卖着自己的数据库，而且通过收购PeopleSoft，占据了ERP的很大市场份额。而他们的其他产品，似乎总是非常的失败，一直无法形成一股完整的力量。但是因为数据库和ERP的高额利润，Oracle始终保持着强势的发展。开源对于Oracle来说可有可无，既不能弥补他们的产品缺陷，也无法有效削弱对手，所以只能若即若离的参与着。
但是Java社区的平衡渐渐被打破，随着BEA和Sun归于Oracle，原本相对平衡，互相制约的Java社区已经成了两个巨头的对垒，以后Oralce和IBM如果发生很大的分歧，完全可以不顾社区的意见，去发展自己的Java，这必然会破坏Java社区的完整。当然，让Java社区分裂的可能性还很小，但是考虑到这两个公司以往的风格，我们以后再也买不到一个干净的产品了，他们会塞给你许多你一辈子都不知道有什么用处的产品。以后我们也很难看到真正的产品的竞争，而只是市场的拼杀，依稀感觉到企业级应用市场会变成微软操控的桌面市场。


Related posts:缘起Oracle AS小系统 大问题认证越来越复杂



Related posts:<ol><li><a href='http://rocksun.cn/relation-to-oracleas/' rel='bookmark' title='Permanent Link: 缘起Oracle AS'>缘起Oracle AS</a></li><li><a href='http://rocksun.cn/big-small-system/' rel='bookmark' title='Permanent Link: 小系统 大问题'>小系统 大问题</a></li><li><a href='http://rocksun.cn/authentication-methods/' rel='bookmark' title='Permanent Link: 认证越来越复杂'>认证越来越复杂</a></li></ol>

]]></description>
			<content:encoded><![CDATA[<p>本来还以为是谣传，但是现在看来是真的了，Oracle将会收购Sun。</p>
<p>我一直认为，Java能够获得如此的大的成绩，很大程度上源于Sun公司的弱势。Sun因为在各个方面经营上的失败，所以更早的追求变化和创新，在各个厂商中最先表现出了开放的经营策略。但是，作为Java的创造者，Sun没有能够从Java上获取到足够的利益，因此，它只能是尽力维护Java这个平台对于各个厂商的公平性。BEA和WebLogic的崛起，很大程度上得益于这种公平的环境中，而这些新兴的公司和组织与传统厂商共同建立起了一个平衡的java社区。</p>
<p>而开源世界另一个很大的支持者IBM，则更像一个搅局者。他们早早变建立了最完整的产品线，但是在这个产品线上总有一些缺失的环节，虽然不能获取到很大的利润，但是却影响着整个产品线，而且IBM庞大的身躯确实不方便与对手直接肉搏，便只好培植一个庞大的开源社区，蚕食对手的阵地。而IBM自己则通过强大的营销，兜售自己的全套方案。</p>
<p>而Oracle，一直很愉快的卖着自己的数据库，而且通过收购PeopleSoft，占据了ERP的很大市场份额。而他们的其他产品，似乎总是非常的失败，一直无法形成一股完整的力量。但是因为数据库和ERP的高额利润，Oracle始终保持着强势的发展。开源对于Oracle来说可有可无，既不能弥补他们的产品缺陷，也无法有效削弱对手，所以只能若即若离的参与着。</p>
<p>但是Java社区的平衡渐渐被打破，随着BEA和Sun归于Oracle，原本相对平衡，互相制约的Java社区已经成了两个巨头的对垒，以后Oralce和IBM如果发生很大的分歧，完全可以不顾社区的意见，去发展自己的Java，这必然会破坏Java社区的完整。当然，让Java社区分裂的可能性还很小，但是考虑到这两个公司以往的风格，我们以后再也买不到一个干净的产品了，他们会塞给你许多你一辈子都不知道有什么用处的产品。以后我们也很难看到真正的产品的竞争，而只是市场的拼杀，依稀感觉到企业级应用市场会变成微软操控的桌面市场。</p>


<p>Related posts:<ol><li><a href='http://rocksun.cn/relation-to-oracleas/' rel='bookmark' title='Permanent Link: 缘起Oracle AS'>缘起Oracle AS</a></li><li><a href='http://rocksun.cn/big-small-system/' rel='bookmark' title='Permanent Link: 小系统 大问题'>小系统 大问题</a></li><li><a href='http://rocksun.cn/authentication-methods/' rel='bookmark' title='Permanent Link: 认证越来越复杂'>认证越来越复杂</a></li></ol></p>
<p></p>]]></content:encoded>
			<wfw:commentRss>http://rocksun.cn/where-java-go/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>认证越来越复杂</title>
		<link>http://rocksun.cn/authentication-methods/</link>
		<comments>http://rocksun.cn/authentication-methods/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 05:48:42 +0000</pubDate>
		<dc:creator>rocksun</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[认证]]></category>

		<guid isPermaLink="false">http://rocksun.cn/?p=538</guid>
		<description><![CDATA[认证是啥？好多初学者往往说不清楚，一句话的解释就是证明自己是自己所声称的那个人。在Web应用里，认证过程通常就是在表单里输入用户名密码，提交到服务器上的过程。但是，认证过之后，服务器是怎么知道用户已经经过了认证呢？
我们知道，http协议本身没有所谓的会话概念，是无状态的，也就是说请求与请求之间互相并无联系。所以，我们需要一种辅助方法，建立一种会话的方 法。于是人们想到了使用cookie，当通过浏览器访问web服务器时，web服务器就发给客户端一个用作会话ID的cookie，例如 sessionid=718e498517d8cfe9，其中sessionid为cookie的名称，而后面的则是它的值。在浏览器之后的请求中，都会 将这个cookie值发送回web服务器，web服务器根据这个值就知道了，原来你是那个XXX阿。
通过共同保存一个会话id，建立起不同HTTP请求之间的联系，只要浏览器支持cookie，这个模式就没有问题。以前为一个客户做了个web系 统，客户以前还有个单独的小系统，运行在别的服务器上，他们希望登陆一次就能访问两个系统，这时cookie的模式有点问题。因为安全性的原因，浏览器不 允许跨域的cookie访问，例如IBM的网站，就访问不到Oracle网站的cookie，所以跨域情况下，cookie的模式被打破了。我们公司的一 位大哥，是典型的实干家，他很快找到了方案。因为那个小系统会嵌入我们程序的框架中，所以对那个小系统的访问都是通过我们的系统进行的，所以他把所有访问 的那个小系统的地方直接加上了用户名密码参数（那时，用户名密码真的都是明文），然后改造那个小系统，使之实现一个登陆过程，然后进入访问的页面。除此之 外，他还写了些触发器，可以同步了数据库里的用户名密码。
尽管解决了我们的客户，但是还有一些问题。例如我们的客户直接访问那个小系统，不 使用我们的框架，那么就还是会提示没有登陆；此外，直接传递给浏览器用户名密码实在不安全，好在我们的客户都还没觉得这有什么大不了的。尽管我这位同事的 方案有些缺陷，但是给了我们一些提示，尽管cookie无法跨域共享信息，可是url可以阿，这也是CAS许多单点登陆系统所采用的方式。
例 如有A和B两个系统，希望在一个地方登陆就可以访问另外一个，那我们便准备一个单点登陆的服务器，用户可以访问，作为A、B以及未来的系统的认证服务器。 当用户访问A系统时，A系统就会判断这个用户有没有登陆，如果没有，那么A会将用户转向到认证服务器上，因为这个用户从来没有登陆过，所以认证服务器上没 有任何记录，所以会提示输入用户名密码，如果正确，认证服务器便把将用户重定向会A系统，并且在url上附加一个类似 key=718e498517d8cfe9的东西，A系统根据这个key联系认证系统，就知道了这是哪个用户，并且经过了认证。然后用户访问B系统，这时 B系统也会将用户转到认证服务器，因为用户刚刚访问过认证服务器，cookie还在，所以认证服务器知道这个用户经过了认证，于是它便直接把 key=718e498517d8cfe9通过url传递给了B，然后B也就知道了用户经过了认证。
随着企业信息化建设的升级，系统越来越繁杂，各种各样的认证需求也不断出现，这也迫使我们需要结合更多的系统。原本的单点登陆系统往往都是为了针对特定问题实现的，使用了各种自定义的协议，之间并不兼容，将其结合在一起需要耗费大量的接口调整工作，所以我们需要一种规范来规定认证信息的交换协议，于是SAML出现了。和CAS不一样，SAML不是一个系统，而是一种规范，遵循SAML规范开发的产品，都使用了相同的认证信息交换接口，所以理论上就可以无缝的使用相同的认证方式。现在大家热谈的SOA，希望能灵活的配置web服务，而SAML无疑正是其中认证环节上的基础，虽然标准总是大厂商制定的，但无论如何，跟着大部队走，比自己发明轮子要好。
以下链接有最新ORACLE中间件的资料可以去看看：
http://wmdata.com.cn/oracle/iwom-OFM/index.asp?frm=rocksun


Related posts:缘起Oracle ASJava何去何从？



Related posts:<ol><li><a href='http://rocksun.cn/relation-to-oracleas/' rel='bookmark' title='Permanent Link: 缘起Oracle AS'>缘起Oracle AS</a></li><li><a href='http://rocksun.cn/where-java-go/' rel='bookmark' title='Permanent Link: Java何去何从？'>Java何去何从？</a></li></ol>

]]></description>
			<content:encoded><![CDATA[<p>认证是啥？好多初学者往往说不清楚，一句话的解释就是证明自己是自己所声称的那个人。在Web应用里，认证过程通常就是在表单里输入用户名密码，提交到服务器上的过程。但是，认证过之后，服务器是怎么知道用户已经经过了认证呢？</p>
<p>我们知道，http协议本身没有所谓的会话概念，是无状态的，也就是说请求与请求之间互相并无联系。所以，我们需要一种辅助方法，建立一种会话的方 法。于是人们想到了使用cookie，当通过浏览器访问web服务器时，web服务器就发给客户端一个用作会话ID的cookie，例如 sessionid=718e498517d8cfe9，其中sessionid为cookie的名称，而后面的则是它的值。在浏览器之后的请求中，都会 将这个cookie值发送回web服务器，web服务器根据这个值就知道了，原来你是那个XXX阿。</p>
<p>通过共同保存一个会话id，建立起不同HTTP请求之间的联系，只要浏览器支持cookie，这个模式就没有问题。以前为一个客户做了个web系 统，客户以前还有个单独的小系统，运行在别的服务器上，他们希望登陆一次就能访问两个系统，这时cookie的模式有点问题。因为安全性的原因，浏览器不 允许跨域的cookie访问，例如IBM的网站，就访问不到Oracle网站的cookie，所以跨域情况下，cookie的模式被打破了。我们公司的一 位大哥，是典型的实干家，他很快找到了方案。因为那个小系统会嵌入我们程序的框架中，所以对那个小系统的访问都是通过我们的系统进行的，所以他把所有访问 的那个小系统的地方直接加上了用户名密码参数（那时，用户名密码真的都是明文），然后改造那个小系统，使之实现一个登陆过程，然后进入访问的页面。除此之 外，他还写了些触发器，可以同步了数据库里的用户名密码。</p>
<p>尽管解决了我们的客户，但是还有一些问题。例如我们的客户直接访问那个小系统，不 使用我们的框架，那么就还是会提示没有登陆；此外，直接传递给浏览器用户名密码实在不安全，好在我们的客户都还没觉得这有什么大不了的。尽管我这位同事的 方案有些缺陷，但是给了我们一些提示，尽管cookie无法跨域共享信息，可是url可以阿，这也是CAS许多单点登陆系统所采用的方式。</p>
<p>例 如有A和B两个系统，希望在一个地方登陆就可以访问另外一个，那我们便准备一个单点登陆的服务器，用户可以访问，作为A、B以及未来的系统的认证服务器。 当用户访问A系统时，A系统就会判断这个用户有没有登陆，如果没有，那么A会将用户转向到认证服务器上，因为这个用户从来没有登陆过，所以认证服务器上没 有任何记录，所以会提示输入用户名密码，如果正确，认证服务器便把将用户重定向会A系统，并且在url上附加一个类似 key=718e498517d8cfe9的东西，A系统根据这个key联系认证系统，就知道了这是哪个用户，并且经过了认证。然后用户访问B系统，这时 B系统也会将用户转到认证服务器，因为用户刚刚访问过认证服务器，cookie还在，所以认证服务器知道这个用户经过了认证，于是它便直接把 key=718e498517d8cfe9通过url传递给了B，然后B也就知道了用户经过了认证。</p>
<p>随着企业信息化建设的升级，系统越来越繁杂，各种各样的认证需求也不断出现，这也迫使我们需要结合更多的系统。原本的单点登陆系统往往都是为了针对特定问题实现的，使用了各种自定义的协议，之间并不兼容，将其结合在一起需要耗费大量的接口调整工作，所以我们需要一种规范来规定认证信息的交换协议，于是SAML出现了。和CAS不一样，SAML不是一个系统，而是一种规范，遵循SAML规范开发的产品，都使用了相同的认证信息交换接口，所以理论上就可以无缝的使用相同的认证方式。现在大家热谈的SOA，希望能灵活的配置web服务，而SAML无疑正是其中认证环节上的基础，虽然标准总是大厂商制定的，但无论如何，跟着大部队走，比自己发明轮子要好。</p>
<p>以下链接有最新ORACLE中间件的资料可以去看看：</p>
<p><a href="http://wmdata.com.cn/oracle/iwom-OFM/index.asp?frm=rocksun">http://wmdata.com.cn/oracle/iwom-OFM/index.asp?frm=rocksun</a></p>


<p>Related posts:<ol><li><a href='http://rocksun.cn/relation-to-oracleas/' rel='bookmark' title='Permanent Link: 缘起Oracle AS'>缘起Oracle AS</a></li><li><a href='http://rocksun.cn/where-java-go/' rel='bookmark' title='Permanent Link: Java何去何从？'>Java何去何从？</a></li></ol></p>
<p></p>]]></content:encoded>
			<wfw:commentRss>http://rocksun.cn/authentication-methods/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>给谁充值了？</title>
		<link>http://rocksun.cn/where-is-my-money/</link>
		<comments>http://rocksun.cn/where-is-my-money/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 02:01:00 +0000</pubDate>
		<dc:creator>rocksun</dc:creator>
				<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://rocksun.cn/?p=549</guid>
		<description><![CDATA[有一次我在东莞，我的同事在去东莞的途中，手机没钱了，让我帮忙买两张充值卡，我便卖了两张100的并把卡号密码用短信发了过去。不久他就到了东莞，我才知道他要给自己和女朋友的手机充值，他的手机是广东的，充值没有问题，但是她女朋友的手机是江西的，则出了点问题。广东这边提示已经充值成功，那张卡也提示已经使用了，但是江西那边手机上根本没有收到钱。最离谱的是，这充值卡上本来就说明了只能给广东用户充值，不能异地充值。
我的同事去移动投诉，可是没有头绪，广东这边记录的是充上了，但是江西那边一无所知。其实有这样的结果我也有所预期，因为对于异地业务，移动是通过总公司的作为中转实现的，整个过程稍微有点复杂。对于上面说的异地缴费，首先是广东这边发起一个交易到总公司，然后总公司联系江西完成这个充值，然后和总公司确认，总公司再和广东确认。上述过程的每一步操作都是异步的，如果出现异常状况，就要靠事后比较日志进行核对。事实上，经常会有不一致的地方，需要事后处理。
根据一般用户的感觉一定会问，都是移动公司，怎么异地充值还这么麻烦啊？主要是各个省的系统都是独立的，具体为什么系统都是独立的呢，有很多原因，但是目前的局面有好处也有坏处，好处就是有广东和广西移动公司为了争取全国市场推出了许多漫游费很便宜的sim卡，坏处就是根本就不应该有的漫游费。但是对于这种跨地市的业务，总公司的做法是很正确的：制定统一的接口标准，建立一个总的服务，分发跨省的业务。这非常符合现代服务总线的要求，例如避免了各个省的集成（34!可不是小数目），虚拟的服务地址，各个省只需要和总公司打交道就行了。
不过在这种跨系统的事务处理上，我感觉还是有点问题。例如我朋友的这个充值，钱是交给了广东移动，而对应的江西移动应该办事（例如缴费开机），但现在的状况就是交钱了，但是没有业务，整个事务不一致了。这源于原来的架构并没有一个一致的事务处理机制，我们无法和本地系统编程一样声明一个事务，最后关掉了事，因为充值可能需要几分钟的延迟，我们不能锁定所有的资源等待事务完成。
类似的情况还有银行的转帐以及银行的中间业务。因为涉及到两个独立的系统，所有的操作需要有一个记录，如果没有得到正确的响应，则能够回退所作的操作。在以前，对此类问题的常见解决办法就是建立一个表，记录了所作的业务操作，并设置一个标记，根据具体情况确认业务或者回退。
但是，现在的业务越来越复杂，这类业务越来越多，编写这样的程序耗费了大量的精力。一旦发生错误，就会在处理错误时又造成了许多维护负担，所以非常需要一种一致性的处理方式。在BPEL中提出了异常和补偿处理，对于上述情况，也就是可以定义一个补偿事务，保证如果发生错误也可以象事务一样，将充值卡恢复到正常的状态。当然这种特性还正在摸索阶段，各个厂商处理的方式并不一样，但的确可以省掉许多自己处理的麻烦。如果我们的ESB或者其他服务能够顺畅的执行这种补偿服务，我们就可以放心的编写更多的跨系统的、需要事务的，但是时间较长的业务了，而无须小心谨慎的处理异常情况。关于这补偿事务的介绍可以看：

http://www.oracle.com/technology/global/cn/tech/soa/mastering-soa-series/part3.html
http://www.oracle.com/technology/global/cn/architect/soa-suite-series/wli-bpel-transactions.html

不过想了这么多，其实可能就是程序有问题，因为那个充值卡可能真的和广东移动所称的那样，只是一张本地的充值卡，所以不能给异地的手机充值，它的流程到营业厅所做的异地充值并不一样。不过，无论什么事情，一旦跨系统就会麻烦很多，这是不可避免的，只是希望现在的中间件能够最大程度的简化其中的复杂性。
以下链接有最新ORACLE中间件的资料可以去看看：

http://wmdata.com.cn/oracle/iwom-OFM/index.asp?frm=rocksun



Related posts:缘起Oracle AS银行综合大前置平台玩玩GoldenGate



Related posts:<ol><li><a href='http://rocksun.cn/relation-to-oracleas/' rel='bookmark' title='Permanent Link: 缘起Oracle AS'>缘起Oracle AS</a></li><li><a href='http://rocksun.cn/bank-big-front-system/' rel='bookmark' title='Permanent Link: 银行综合大前置平台'>银行综合大前置平台</a></li><li><a href='http://rocksun.cn/try-goldengate/' rel='bookmark' title='Permanent Link: 玩玩GoldenGate'>玩玩GoldenGate</a></li></ol>

]]></description>
			<content:encoded><![CDATA[<p>有一次我在东莞，我的同事在去东莞的途中，手机没钱了，让我帮忙买两张充值卡，我便卖了两张100的并把卡号密码用短信发了过去。不久他就到了东莞，我才知道他要给自己和女朋友的手机充值，他的手机是广东的，充值没有问题，但是她女朋友的手机是江西的，则出了点问题。广东这边提示已经充值成功，那张卡也提示已经使用了，但是江西那边手机上根本没有收到钱。最离谱的是，这充值卡上本来就说明了只能给广东用户充值，不能异地充值。</p>
<p>我的同事去移动投诉，可是没有头绪，广东这边记录的是充上了，但是江西那边一无所知。其实有这样的结果我也有所预期，因为对于异地业务，移动是通过总公司的作为中转实现的，整个过程稍微有点复杂。对于上面说的异地缴费，首先是广东这边发起一个交易到总公司，然后总公司联系江西完成这个充值，然后和总公司确认，总公司再和广东确认。上述过程的每一步操作都是异步的，如果出现异常状况，就要靠事后比较日志进行核对。事实上，经常会有不一致的地方，需要事后处理。</p>
<p>根据一般用户的感觉一定会问，都是移动公司，怎么异地充值还这么麻烦啊？主要是各个省的系统都是独立的，具体为什么系统都是独立的呢，有很多原因，但是目前的局面有好处也有坏处，好处就是有广东和广西移动公司为了争取全国市场推出了许多漫游费很便宜的sim卡，坏处就是根本就不应该有的漫游费。但是对于这种跨地市的业务，总公司的做法是很正确的：制定统一的接口标准，建立一个总的服务，分发跨省的业务。这非常符合现代服务总线的要求，例如避免了各个省的集成（34!可不是小数目），虚拟的服务地址，各个省只需要和总公司打交道就行了。</p>
<p>不过在这种跨系统的事务处理上，我感觉还是有点问题。例如我朋友的这个充值，钱是交给了广东移动，而对应的江西移动应该办事（例如缴费开机），但现在的状况就是交钱了，但是没有业务，整个事务不一致了。这源于原来的架构并没有一个一致的事务处理机制，我们无法和本地系统编程一样声明一个事务，最后关掉了事，因为充值可能需要几分钟的延迟，我们不能锁定所有的资源等待事务完成。</p>
<p>类似的情况还有银行的转帐以及银行的中间业务。因为涉及到两个独立的系统，所有的操作需要有一个记录，如果没有得到正确的响应，则能够回退所作的操作。在以前，对此类问题的常见解决办法就是建立一个表，记录了所作的业务操作，并设置一个标记，根据具体情况确认业务或者回退。</p>
<p>但是，现在的业务越来越复杂，这类业务越来越多，编写这样的程序耗费了大量的精力。一旦发生错误，就会在处理错误时又造成了许多维护负担，所以非常需要一种一致性的处理方式。在BPEL中提出了异常和补偿处理，对于上述情况，也就是可以定义一个补偿事务，保证如果发生错误也可以象事务一样，将充值卡恢复到正常的状态。当然这种特性还正在摸索阶段，各个厂商处理的方式并不一样，但的确可以省掉许多自己处理的麻烦。如果我们的ESB或者其他服务能够顺畅的执行这种补偿服务，我们就可以放心的编写更多的跨系统的、需要事务的，但是时间较长的业务了，而无须小心谨慎的处理异常情况。关于这补偿事务的介绍可以看：</p>
<ul>
<li>http://www.oracle.com/technology/global/cn/tech/soa/mastering-soa-series/part3.html
<p>http://www.oracle.com/technology/global/cn/architect/soa-suite-series/wli-bpel-transactions.html</li>
</ul>
<p>不过想了这么多，其实可能就是程序有问题，因为那个充值卡可能真的和广东移动所称的那样，只是一张本地的充值卡，所以不能给异地的手机充值，它的流程到营业厅所做的异地充值并不一样。不过，无论什么事情，一旦跨系统就会麻烦很多，这是不可避免的，只是希望现在的中间件能够最大程度的简化其中的复杂性。</p>
<p>以下链接有最新ORACLE中间件的资料可以去看看：</p>
<ul>
<li><a onclick="javascript:pageTracker._trackPageview('/outbound/article/wmdata.com.cn');" href="http://wmdata.com.cn/oracle/iwom-OFM/index.asp?frm=rocksun">http://wmdata.com.cn/oracle/iwom-OFM/index.asp?frm=rocksun</a></li>
</ul>


<p>Related posts:<ol><li><a href='http://rocksun.cn/relation-to-oracleas/' rel='bookmark' title='Permanent Link: 缘起Oracle AS'>缘起Oracle AS</a></li><li><a href='http://rocksun.cn/bank-big-front-system/' rel='bookmark' title='Permanent Link: 银行综合大前置平台'>银行综合大前置平台</a></li><li><a href='http://rocksun.cn/try-goldengate/' rel='bookmark' title='Permanent Link: 玩玩GoldenGate'>玩玩GoldenGate</a></li></ol></p>
<p></p>]]></content:encoded>
			<wfw:commentRss>http://rocksun.cn/where-is-my-money/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>银行综合大前置平台</title>
		<link>http://rocksun.cn/bank-big-front-system/</link>
		<comments>http://rocksun.cn/bank-big-front-system/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 01:56:21 +0000</pubDate>
		<dc:creator>rocksun</dc:creator>
				<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://rocksun.cn/?p=528</guid>
		<description><![CDATA[我最早供职的公司，是一个金融方面的小公司，我们为许多小银行（例如信用社）服务。那时我们国家的信用社还是以市为单位经营，每个地市都有自己的系统。我们公司的产品完完全全采用了自己的技术，没有使用任何其他中间件产品。因为信用社的资源有限，所以为了提供更好的性能，我们公司使用了许多优化的措施。例如数据库设计中使用了大量字段数量非常多的表，其中包含了许多冗余数据，避免复杂的关联查询。而在通讯和业务处理上，提出了前置机的概念，通过前置机为柜台终端提供界面，并将界面发送过来的数据，转化为实际的银行业务操作。当然，后来我知道，多数银行系统都是有前置机这个概念的。
后来，中国的信用社改革开始了，原来各个地市的信用社系统需要集中，数据量一下子增加了十几倍，公司发现原本的模式本已经在地市有限的硬件环境中达到了极限，原来的系统架构似乎难以满足性能的需要。另一方面，有了相对较好的硬件资源，促使着我们尝试一些变革。我们开始尝试用一些商用的中间件例如Tuxedo来改造我们的系统，发现Tuxedo能提供我们的系统类似的路由功能，而且在性能上得到了很大的提升。
除了数据和业务的集中，银行业也在慢慢发生变革。以前银行只关心存款贷款，而后来则更多的关注中间业务，例如代缴电费、水费，各种外围系统都需要和传统业务结合，出现了各种各样的接口。个人计算机的发展也让原来简单的终端变成了PC系统，所以出现了各种丰富的客户端需要应付。这让原来满足单一功能，面对单一类型业务的前置系统十分局促，不得不考虑综合前置的实现。
所以我们建立了一个更全面的前置系统，能够接入各个渠道以及第三方的应用，在系统之间转化数据格式；甚至可以整合各个系统之间的流程，动态监控业务执行的状况；同时这个系统还需要有良好的性能，还能够有良好的伸缩性，这一点对于财力有限的小银行尤为重要。所以最后，我们的产品基本上建立在了商业中间件产品的基础之上，因为这些产品提供了更好的性能和可伸缩性。此外，现代的应用基础架构也包含了了许多便利的工具，例如EIB、ESB以及BPM，这些东西比我们自己完成的基础架构更加方便和有效。不过，这也让我对原来那些前辈感到十分的敬意，他们太了不起了，仅仅使用纯C，就可以完成这整个底层架构，而我们却更偷懒的直接用了某个工具。
以下链接有最新ORACLE中间件的资料可以去看看：

http://wmdata.com.cn/oracle/iwom-OFM/index.asp?frm=rocksun



No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>我最早供职的公司，是一个金融方面的小公司，我们为许多小银行（例如信用社）服务。那时我们国家的信用社还是以市为单位经营，每个地市都有自己的系统。我们公司的产品完完全全采用了自己的技术，没有使用任何其他中间件产品。因为信用社的资源有限，所以为了提供更好的性能，我们公司使用了许多优化的措施。例如数据库设计中使用了大量字段数量非常多的表，其中包含了许多冗余数据，避免复杂的关联查询。而在通讯和业务处理上，提出了前置机的概念，通过前置机为柜台终端提供界面，并将界面发送过来的数据，转化为实际的银行业务操作。当然，后来我知道，多数银行系统都是有前置机这个概念的。</p>
<p>后来，中国的信用社改革开始了，原来各个地市的信用社系统需要集中，数据量一下子增加了十几倍，公司发现原本的模式本已经在地市有限的硬件环境中达到了极限，原来的系统架构似乎难以满足性能的需要。另一方面，有了相对较好的硬件资源，促使着我们尝试一些变革。我们开始尝试用一些商用的中间件例如Tuxedo来改造我们的系统，发现Tuxedo能提供我们的系统类似的路由功能，而且在性能上得到了很大的提升。</p>
<p>除了数据和业务的集中，银行业也在慢慢发生变革。以前银行只关心存款贷款，而后来则更多的关注中间业务，例如代缴电费、水费，各种外围系统都需要和传统业务结合，出现了各种各样的接口。个人计算机的发展也让原来简单的终端变成了PC系统，所以出现了各种丰富的客户端需要应付。这让原来满足单一功能，面对单一类型业务的前置系统十分局促，不得不考虑综合前置的实现。</p>
<p>所以我们建立了一个更全面的前置系统，能够接入各个渠道以及第三方的应用，在系统之间转化数据格式；甚至可以整合各个系统之间的流程，动态监控业务执行的状况；同时这个系统还需要有良好的性能，还能够有良好的伸缩性，这一点对于财力有限的小银行尤为重要。所以最后，我们的产品基本上建立在了商业中间件产品的基础之上，因为这些产品提供了更好的性能和可伸缩性。此外，现代的应用基础架构也包含了了许多便利的工具，例如EIB、ESB以及BPM，这些东西比我们自己完成的基础架构更加方便和有效。不过，这也让我对原来那些前辈感到十分的敬意，他们太了不起了，仅仅使用纯C，就可以完成这整个底层架构，而我们却更偷懒的直接用了某个工具。</p>
<p>以下链接有最新ORACLE中间件的资料可以去看看：</p>
<ul>
<li><a href="http://wmdata.com.cn/oracle/iwom-OFM/index.asp?frm=rocksun">http://wmdata.com.cn/oracle/iwom-OFM/index.asp?frm=rocksun</a></li>
</ul>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://rocksun.cn/bank-big-front-system/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>小系统 大问题</title>
		<link>http://rocksun.cn/big-small-system/</link>
		<comments>http://rocksun.cn/big-small-system/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 03:20:12 +0000</pubDate>
		<dc:creator>rocksun</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[esb]]></category>
		<category><![CDATA[soa]]></category>
		<category><![CDATA[tuxedo]]></category>

		<guid isPermaLink="false">http://rocksun.cn/?p=373</guid>
		<description><![CDATA[这些日子看了些SOA的文章，想起了以前做BOSS项目中遇到的一件事。
一个同事正在尝使用Java开发一个东西，因为他本来是做windows C++的，对于Java并不熟悉，所以向我请教，看了这个程序觉得有些蹊跷，因为这个程序既不是web应用，也不是图形化工具，而是一个要运行在Unix下的main程序，其中还有一个没有终止的循环。详细询问，才知道原来的营业系统有一个通告功能，可以向营业员说明一些重要注意事项，其中的很多通告也需要通知代理商，而代理商系统则是另一个系统，移动的管理员不希望同样的信息发送两遍，所以让我们开发一个同步的功能。
我的这位同事选择的方法让人很奇怪。他首先改造营业系统，在信息存放的表中添加了一个字段，表示信息是否发送到代理商系统，然后又去写那个程序，那个程序会一直循环，不断检测新到信息，如果发现新的信息，就存放到代理商的数据库中。
我们的BOSS使用tuxedo中间件，在处理系统间调用时需要配置tuxedo域，而且可能代理商系统那边的对应接口也需要进行调整，显然我的那位同事对于这种方式心存畏惧，所以决定用独立的小程序解决这个问题，而无需为此大动干戈。但实际上，他的这个方式虽然不需要去配置域，可是也有很多问题。原来的系统已经有了几十个这样的后台进程，又增加了一个这样的东西，也就增加了维护人员的负担。
这样的场景对我来说似曾相识，类似问题在以前参与的工商局的项目中也遇到过，为了实现考核系统，不得不和许多小系统的数据打交道，为了应付不同数据来源、不同格式的数据，必须去实现完整的导入导出功能，很多功能解决的问题涉及的数据量非常少，常常让我们有杀鸡用宰牛刀的感觉，有时候感叹还不如让勤劳的公务员手工录入呢。即使如此有时候也难以满足客户的要求，因为客户的许多细节都在不停的变化，所以我们就要不停的适应。
我为实现这么简单的功能而劳师动众感到遗憾，但是我想已经体现出了许多传统应用的主要问题。在系统间的调用还需要配置，一旦依赖的服务发生的迁移，那么也要修改对应的配置，日常维护的代价很大。
我想这也是SOA所要解决的问题，为此我们必须思考应该如何去做。首先SOA要有适合调用的服务，这就需要规划好需要调用的服务，诸如OSB之类的产品可以将Tuxedo的服务包装成WebService之类的接口，从而可以方便其他系统的调用。SOA过程中最复杂步骤应当就是对原有系统服务的规划上，原来跨系统的调用都是相当直接的，需要什么接口就做什么接口。而SOA化的服务应该更象一门语言，每个服务应当是一个函数，经过一定的组合就能完成非常复杂的业务。但是这种改造还要受到性能的制约，我们不太可能在一些高负荷的业务中使用WebService的技术。中国移动拥有全世界最大的用户量，大多数系统已经处在并不富裕的状况，所以改造只能是从那些数据量不大的业务和外围系统上开始。而对于一些电子政务之类的系统，只是需要能够灵活的定制服务并实现调用，对于性能则没有过高的要求，它们的目标就是尽可能的让流程顺畅。
其次我们要简化维护的工作量，要将服务的地址虚拟化，这样一旦真正的服务位置发生改变我们需要做的就是把导向改变，这对于电信系统尤其重要，例如我们帐务系统，营业、代理商、客服等多个系统都会调用它的服务，在换主机或者升级的时候必须改变所有的配置，然后还要不断地测试。采用ESB之类的系统，可以让我们将许多服务用代理服务代替，就避免了对于系统间的紧密耦合，提高系统的灵活性。
有了上述基础条件，就有机会实现更为复杂的能力。还是这个发消息的例子，现代ESB一个很重要的功能就是服务的组合重编，本来只是发到代理商的消息，如果其他系统也有类似的服务，在无需改动原来服务的情况，我们就可以实现到其他系统的消息发布。当然如果工具足够强大，即使服务接口并不一致，我们也能够通过参数转化完成这项工作。
最后，我想说系统的快速应变能力日益重要，越来越多的业务需要更加智能化，实时性要求也更高，所以系统间的业务集成也更加普遍，再去添加一个个小系统去完成各种各样的集成已经不能满足要求了，我们是应该建立一个更坚实的平台去实现这个目标。
此外，这里有ORACLE最新的中间件官方资料可以下载。


Related posts:Java何去何从？自由软件当崛起



Related posts:<ol><li><a href='http://rocksun.cn/where-java-go/' rel='bookmark' title='Permanent Link: Java何去何从？'>Java何去何从？</a></li><li><a href='http://rocksun.cn/to-free-middleware/' rel='bookmark' title='Permanent Link: 自由软件当崛起'>自由软件当崛起</a></li></ol>

]]></description>
			<content:encoded><![CDATA[<p>这些日子看了些SOA的文章，想起了以前做BOSS项目中遇到的一件事。</p>
<p>一个同事正在尝使用Java开发一个东西，因为他本来是做windows C++的，对于Java并不熟悉，所以向我请教，看了这个程序觉得有些蹊跷，因为这个程序既不是web应用，也不是图形化工具，而是一个要运行在Unix下的main程序，其中还有一个没有终止的循环。详细询问，才知道原来的营业系统有一个通告功能，可以向营业员说明一些重要注意事项，其中的很多通告也需要通知代理商，而代理商系统则是另一个系统，移动的管理员不希望同样的信息发送两遍，所以让我们开发一个同步的功能。</p>
<p>我的这位同事选择的方法让人很奇怪。他首先改造营业系统，在信息存放的表中添加了一个字段，表示信息是否发送到代理商系统，然后又去写那个程序，那个程序会一直循环，不断检测新到信息，如果发现新的信息，就存放到代理商的数据库中。</p>
<p>我们的BOSS使用tuxedo中间件，在处理系统间调用时需要配置tuxedo域，而且可能代理商系统那边的对应接口也需要进行调整，显然我的那位同事对于这种方式心存畏惧，所以决定用独立的小程序解决这个问题，而无需为此大动干戈。但实际上，他的这个方式虽然不需要去配置域，可是也有很多问题。原来的系统已经有了几十个这样的后台进程，又增加了一个这样的东西，也就增加了维护人员的负担。</p>
<p>这样的场景对我来说似曾相识，类似问题在以前参与的工商局的项目中也遇到过，为了实现考核系统，不得不和许多小系统的数据打交道，为了应付不同数据来源、不同格式的数据，必须去实现完整的导入导出功能，很多功能解决的问题涉及的数据量非常少，常常让我们有杀鸡用宰牛刀的感觉，有时候感叹还不如让勤劳的公务员手工录入呢。即使如此有时候也难以满足客户的要求，因为客户的许多细节都在不停的变化，所以我们就要不停的适应。</p>
<p>我为实现这么简单的功能而劳师动众感到遗憾，但是我想已经体现出了许多传统应用的主要问题。在系统间的调用还需要配置，一旦依赖的服务发生的迁移，那么也要修改对应的配置，日常维护的代价很大。</p>
<p>我想这也是SOA所要解决的问题，为此我们必须思考应该如何去做。首先SOA要有适合调用的服务，这就需要规划好需要调用的服务，诸如OSB之类的产品可以将Tuxedo的服务包装成WebService之类的接口，从而可以方便其他系统的调用。SOA过程中最复杂步骤应当就是对原有系统服务的规划上，原来跨系统的调用都是相当直接的，需要什么接口就做什么接口。而SOA化的服务应该更象一门语言，每个服务应当是一个函数，经过一定的组合就能完成非常复杂的业务。但是这种改造还要受到性能的制约，我们不太可能在一些高负荷的业务中使用WebService的技术。中国移动拥有全世界最大的用户量，大多数系统已经处在并不富裕的状况，所以改造只能是从那些数据量不大的业务和外围系统上开始。而对于一些电子政务之类的系统，只是需要能够灵活的定制服务并实现调用，对于性能则没有过高的要求，它们的目标就是尽可能的让流程顺畅。</p>
<p>其次我们要简化维护的工作量，要将服务的地址虚拟化，这样一旦真正的服务位置发生改变我们需要做的就是把导向改变，这对于电信系统尤其重要，例如我们帐务系统，营业、代理商、客服等多个系统都会调用它的服务，在换主机或者升级的时候必须改变所有的配置，然后还要不断地测试。采用ESB之类的系统，可以让我们将许多服务用代理服务代替，就避免了对于系统间的紧密耦合，提高系统的灵活性。</p>
<p>有了上述基础条件，就有机会实现更为复杂的能力。还是这个发消息的例子，现代ESB一个很重要的功能就是服务的组合重编，本来只是发到代理商的消息，如果其他系统也有类似的服务，在无需改动原来服务的情况，我们就可以实现到其他系统的消息发布。当然如果工具足够强大，即使服务接口并不一致，我们也能够通过参数转化完成这项工作。</p>
<p>最后，我想说系统的快速应变能力日益重要，越来越多的业务需要更加智能化，实时性要求也更高，所以系统间的业务集成也更加普遍，再去添加一个个小系统去完成各种各样的集成已经不能满足要求了，我们是应该建立一个更坚实的平台去实现这个目标。</p>
<p>此外，这里有<a onclick="javascript:pageTracker._trackPageview('/outbound/article/wmdata.com.cn');" href="http://wmdata.com.cn/oracle/iwom-OFM/index.asp?frm=rocksun">ORACLE最新的中间件官方资料可以下载</a>。</p>


<p>Related posts:<ol><li><a href='http://rocksun.cn/where-java-go/' rel='bookmark' title='Permanent Link: Java何去何从？'>Java何去何从？</a></li><li><a href='http://rocksun.cn/to-free-middleware/' rel='bookmark' title='Permanent Link: 自由软件当崛起'>自由软件当崛起</a></li></ol></p>
<p></p>]]></content:encoded>
			<wfw:commentRss>http://rocksun.cn/big-small-system/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>缘起Oracle AS</title>
		<link>http://rocksun.cn/relation-to-oracleas/</link>
		<comments>http://rocksun.cn/relation-to-oracleas/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 02:47:01 +0000</pubDate>
		<dc:creator>rocksun</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[recommend]]></category>
		<category><![CDATA[BEA]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[WebLogic]]></category>

		<guid isPermaLink="false">http://rocksun.cn/relation-to-oracleas/</guid>
		<description><![CDATA[大约4年前，一个客户可能是出于对oracle数据库的信任，选择了很少使用的Oracle AS作为应用服务器。我当时是BEA dev2dev的版主，所以领导便把研究Oracle AS这个重要任务交给了我。
拿着Oracle AS的一大堆光盘，还有一堆安装手册，我便在客户的安腾芯片的HP主机上开始了安装工作。不记得具体步骤了，总之是做了很多准备工作，到了最后真正的程序安装部分，却发生了错误，然后认真阅读了Oracle的文档，并和Oracle的客服联系后才确认，原来Oracle AS还不支持那个安腾芯片的HP系统，Oracle客服很热情，答应赶快发一个新版本。万恶的推销商啊，谁提供了这个解决方案。没办法，客户买的主机不能浪费，受客户指使，我只好在这个主机上安装了一个破解的WebLogic（被逼无奈啊，幸亏现在是一家了），先让我们的系统跑起来，而WebLogic安装过程异常简单，设置好用户，直接运行一个JAR就搞定了。

尽管那个HP主机暂时无法安装了，可是还是要用Oracle AS验证我们的程序，所以我在一个Windows主机安装了一个Oracle AS，作为我们的测试服务器。但是困难依然不断出现，其中一个就是将应用设置到根目录的问题。我们的应用写的很特别，只能跑在URI“/”下，所以这就成了我的第一个任务。
Oracle AS的配置界面上无法做出这个设置。我又看了很多文档，可是没有直接的答案。最后，经过反复验证，发现这个问题涉及Oracle AS的http server、web cache和orion（应用服务器），所以要实现我们的需求，需要配置上述三方面的信息，于是有了我在CNOUG论坛的这个回复。也许是我被Oracle AS折磨的实在太痛苦了，在看到了这篇置顶贴后，我便大发厥词，痛斥了这篇文章。
它应该表达了我对此问题的切身感受，当然出发点是开发者。当时的Oracle AS一开始就太复杂了，如果想做简单的事情，反而要深入了解才能办到。对于开发者来说，不可能投入很多，他们需要通过知觉就可行的方式。而对于管理员来说，从简单开始变得复杂，也比一开始就复杂更利于学习。
Oracle和IBM做产品都有一个特点，就是架构特别清晰。例如应用服务器需要分布式计算，他们就会要单独开发一个分布式运行的平台，而WebLogic则比较直接，可能会直接去实现。当然，有时候并不是他们有意去这样做，而是因为他们都有太重的历史，每当需要什么，他们就去会寻找自己的历史，然后找到一个合适的。所以许多开始感觉很不爽的产品，常常会在深入了解后发现一些优点，因为它建立在一个更坚实的平台上，可以更好的利用这个平台。
如今，WebLogic已经属于Oracle，我当年的大论看起来也不是那么激烈了，感谢当年的版主，公正的保留了那些内容，如今看来，让我感慨万分。BEA系列产品的简便，如果能够有更坚实的配套基础架构，就能够发挥更大的效力；而Oracle，也不必再为抢占市场，让我发出当年的感慨了。
此外，这里有ORACLE最新的中间件官方资料可以下载。


Related posts:玩玩GoldenGate认证越来越复杂给谁充值了？



Related posts:<ol><li><a href='http://rocksun.cn/try-goldengate/' rel='bookmark' title='Permanent Link: 玩玩GoldenGate'>玩玩GoldenGate</a></li><li><a href='http://rocksun.cn/authentication-methods/' rel='bookmark' title='Permanent Link: 认证越来越复杂'>认证越来越复杂</a></li><li><a href='http://rocksun.cn/where-is-my-money/' rel='bookmark' title='Permanent Link: 给谁充值了？'>给谁充值了？</a></li></ol>

]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignleft" style="width: 210px"><a href="http://wmdata.com.cn/oracle/iwom-OFM/index.asp?frm=rocksun"><img class=" " title="Oracle WebLogic" src="http://rocksun.cn/wp-content/uploads/oraclews104.jpg" alt="Oracle WebLogic" width="200" height="120" /></a><p class="wp-caption-text">Oracle WebLogic</p></div>
<p>大约4年前，一个客户可能是出于对oracle数据库的信任，选择了很少使用的Oracle AS作为应用服务器。我当时是BEA dev2dev的版主，所以领导便把研究Oracle AS这个重要任务交给了我。</p>
<p>拿着Oracle AS的一大堆光盘，还有一堆安装手册，我便在客户的安腾芯片的HP主机上开始了安装工作。不记得具体步骤了，总之是做了很多准备工作，到了最后真正的程序安装部分，却发生了错误，然后认真阅读了Oracle的文档，并和Oracle的客服联系后才确认，原来Oracle AS还不支持那个安腾芯片的HP系统，Oracle客服很热情，答应赶快发一个新版本。万恶的推销商啊，谁提供了这个解决方案。没办法，客户买的主机不能浪费，受客户指使，我只好在这个主机上安装了一个破解的WebLogic（被逼无奈啊，幸亏现在是一家了），先让我们的系统跑起来，而WebLogic安装过程异常简单，设置好用户，直接运行一个JAR就搞定了。</p>
<p><span id="more-170"></span></p>
<p>尽管那个HP主机暂时无法安装了，可是还是要用Oracle AS验证我们的程序，所以我在一个Windows主机安装了一个Oracle AS，作为我们的测试服务器。但是困难依然不断出现，其中一个就是将应用设置到根目录的问题。我们的应用写的很特别，只能跑在URI“/”下，所以这就成了我的第一个任务。</p>
<p>Oracle AS的配置界面上无法做出这个设置。我又看了很多文档，可是没有直接的答案。最后，经过反复验证，发现这个问题涉及Oracle AS的http server、web cache和orion（应用服务器），所以要实现我们的需求，需要配置上述三方面的信息，于是有了我在<a href="http://www.oracle.com.cn/">CNOUG论坛</a>的<a href="http://www.oracle.com.cn/redirect.php?fid=14&amp;tid=48232&amp;goto=nextnewset">这个回复</a>。也许是我被Oracle AS折磨的实在太痛苦了，在看到了<a href="http://www.oracle.com.cn/viewthread.php?tid=401&amp;extra=page%3D3">这篇置顶贴</a>后，我便大发厥词，<a href="http://www.oracle.com.cn/viewthread.php?tid=401&amp;page=1#pid310418">痛斥了这篇文章</a>。</p>
<p>它应该表达了我对此问题的切身感受，当然出发点是开发者。当时的Oracle AS一开始就太复杂了，如果想做简单的事情，反而要深入了解才能办到。对于开发者来说，不可能投入很多，他们需要通过知觉就可行的方式。而对于管理员来说，从简单开始变得复杂，也比一开始就复杂更利于学习。</p>
<p>Oracle和IBM做产品都有一个特点，就是架构特别清晰。例如应用服务器需要分布式计算，他们就会要单独开发一个分布式运行的平台，而WebLogic则比较直接，可能会直接去实现。当然，有时候并不是他们有意去这样做，而是因为他们都有太重的历史，每当需要什么，他们就去会寻找自己的历史，然后找到一个合适的。所以许多开始感觉很不爽的产品，常常会在深入了解后发现一些优点，因为它建立在一个更坚实的平台上，可以更好的利用这个平台。</p>
<p>如今，WebLogic已经属于Oracle，我当年的大论看起来也不是那么激烈了，感谢当年的版主，公正的保留了那些内容，如今看来，让我感慨万分。BEA系列产品的简便，如果能够有更坚实的配套基础架构，就能够发挥更大的效力；而Oracle，也不必再为抢占市场，让我发出当年的感慨了。</p>
<p>此外，这里有<a href="http://wmdata.com.cn/oracle/iwom-OFM/index.asp?frm=rocksun">ORACLE最新的中间件官方资料可以下载</a>。</p>


<p>Related posts:<ol><li><a href='http://rocksun.cn/try-goldengate/' rel='bookmark' title='Permanent Link: 玩玩GoldenGate'>玩玩GoldenGate</a></li><li><a href='http://rocksun.cn/authentication-methods/' rel='bookmark' title='Permanent Link: 认证越来越复杂'>认证越来越复杂</a></li><li><a href='http://rocksun.cn/where-is-my-money/' rel='bookmark' title='Permanent Link: 给谁充值了？'>给谁充值了？</a></li></ol></p>
<p></p>]]></content:encoded>
			<wfw:commentRss>http://rocksun.cn/relation-to-oracleas/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

