<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
<channel>
 <title><![CDATA[新儒AS/400家园 - 论坛交流]]></title>
 <link><![CDATA[http://it.sinru.com/bbs]]></link>
 <description><![CDATA[Latest 20 article of all forums]]></description>
 <copyright><![CDATA[Copyright(C) 新儒AS/400家园 - 论坛交流]]></copyright>
 <generator><![CDATA[PHPWind BLOG by PHPWind Studio]]></generator>
 <lastBuildDate><![CDATA[Sat, 05 Jul 2008 03:21:57 +0800]]></lastBuildDate>
  <image>
 <url><![CDATA[http://it.sinru.com/bbs/image/rss.gif]]></url>
 <title><![CDATA[PHPWind Board]]></title>
 <link><![CDATA[http://it.sinru.com/bbs]]></link>
 <description><![CDATA[新儒AS/400家园 - 论坛交流]]></description>
  </image>
<item>
 <title><![CDATA[感谢jacksu]]></title>
 <description><![CDATA[  谢谢你的参与! [s:7]]]></description>
 <link><![CDATA[http://it.sinru.com/bbs/read.php?tid=4]]></link>
 <author><![CDATA[fh2002]]></author>
 <category><![CDATA[系统管理]]></category>
 <pubdate><![CDATA[Sun, 31 Oct 2004 23:20:38 +0800]]></pubdate>
</item>
<item>
 <title><![CDATA[求救：如何见AS/400的物理文件传送到PC上以文本格式存档]]></title>
 <description><![CDATA[  求救：如何见AS/400的物理文件传送到PC上以文本格式存档]]></description>
 <link><![CDATA[http://it.sinru.com/bbs/read.php?tid=5]]></link>
 <author><![CDATA[初学者]]></author>
 <category><![CDATA[系统管理]]></category>
 <pubdate><![CDATA[Wed, 24 Nov 2004 10:41:29 +0800]]></pubdate>
</item>
<item>
 <title><![CDATA[新发现一个400的家，感觉不错！]]></title>
 <description><![CDATA[  希望版主能将其发扬光大！
为400人提供更多新资讯！]]></description>
 <link><![CDATA[http://it.sinru.com/bbs/read.php?tid=6]]></link>
 <author><![CDATA[catfish]]></author>
 <category><![CDATA[系统管理]]></category>
 <pubdate><![CDATA[Fri, 17 Dec 2004 11:04:13 +0800]]></pubdate>
</item>
<item>
 <title><![CDATA[这里没人啊！]]></title>
 <description><![CDATA[  这里怎么没人啊！]]></description>
 <link><![CDATA[http://it.sinru.com/bbs/read.php?tid=7]]></link>
 <author><![CDATA[using_as400]]></author>
 <category><![CDATA[应用开发]]></category>
 <pubdate><![CDATA[Thu, 23 Dec 2004 13:13:40 +0800]]></pubdate>
</item>
<item>
 <title><![CDATA[发帖恭喜一下论坛开张。。。]]></title>
 <description><![CDATA[  万事开头难，需要持之以恒。

希望能够越办越好。。。]]></description>
 <link><![CDATA[http://it.sinru.com/bbs/read.php?tid=9]]></link>
 <author><![CDATA[qingzhou]]></author>
 <category><![CDATA[系统管理]]></category>
 <pubdate><![CDATA[Sun, 26 Dec 2004 08:29:07 +0800]]></pubdate>
</item>
<item>
 <title><![CDATA[Delphi400技术运用]]></title>
 <description><![CDATA[  Delphi for AS/400是Borland公司（现改为Inprise公司）专门为AS/400用户提供的用于开发AS/400应用程序的Delphi前端开发工具。除了具有 3.0的全部功能外，Delphi/400提供了与AS/400相兼容的三组元件－－SCD400 Data、SCD400 System和 DB。其中SCD400 Data和 DB两组元件与普通Delphi 3.0所属两组元件 Access和Data Controls中元件具有相同或类似的功能。在System元件组中，提供的元件，可以直接调用PGM程序和直接调用A/400 CL命令。 

[b]一、 在AS/400上编制实现打印货物舱单的RPG程序 [/b] 

为叙述方便，假设所需要用到的AS/400上的文件（在AS/400中称为对象－－Object）都放在TEST库（Library）中。DCPRTMF为打印文件，用来输出打印舱单的打印格式和内容。DCRPGMF为RPG程序，带两参数VSLCOD（船代码）和VOYNO（航次），用来生成舱单。 

[b]二、 在AS/400上将打印文件转化为AS/400的物理文件 [/b] 

在AS/400上建一物理文件MFPC（相当于其它数据库的Table），记录名为MP，字段名为MP198，长度为198字符。此物理文件用来保存货物舱单打印文件内容。这个过程用MFCPYSPL程序（CLP类型）来实现，程序如下： 

[quote]
***************Beginning of data*************** 
01.0 PGM PARM(STRJOB STRUSR STRNBR) 

0002.00 DCL VAR(STRJOB) TYPE(*CHAR) LEN(10) 
0003.00 DCL VAR(STRUSR) TYPE(*CHAR) LEN(10) 
04.0 DCL VAR(STRNBR) TYPE(*CHAR) LEN(6) 
0005.00 CPYSPLF FILE(DCPRTMF) TOFILE(TEST/MFPC) + 
0006.00 JOB(STRNBR/STRUSR/STRJOB) TOMBR(MFPC) + 
0007.00 MBROPT(*REPLACE) ① 
0008.00 DLTSPLF FILE(DCPRTMF) 
JOB(STRNBR/STRUSR/STRJOB) ② 
0010.00 ENDPGM 
****************** End of data ************** [/quote] 

上述文件定义了三个参数STRJOB、STRUSR和STRNBR，是与操作Spool File相关的参数。 

①将打印文件（Spool File）拷贝到物理文件MFPC；②删除打印文件。 

[b]三、 用Delphi/400将AS/400上的打印文件转化为微机的文本文件 [/b] 

在进行程序处理以前，先在Delphi的 Module进行如下VCL组件设置： 

1．AS400组件设置：name－－AS4001。 

2．Table组件设置：name－－MfpcTbl； 
tablename－－MFPC。与AS/400上的物理文件连接。 

3．Call400组件设置：name－－Call400PRTMF； 
AS400－－AS4001；LibraryName－－TEST； 
ProgramName－－DCRPGPC；Params定义对应VSLCOD和VOYNO。 

4．Call400组件设置：name－－Call400CPYSPL； 
AS400－－AS4001；LibraryName－－TEST； 
ProgramName－－MFCPYSPL；Params 
定义对应STRJOB、STRUSR和STRNBR。 

5．Cmd400组件设置：name－－Cmd400Addlible； 
AS400－－AS4001；CommandLine－－ADDLIBLE LIB(TEST) 
POSITION(*FIRST)。将TEST加入库表。 

6．Cmd400组件设置：name－－Cmd400Rtvjob；AS400－－AS4001； 
CommandLine－－RTVJOBA JOB(P.1) USER(P.2) 
NBR(P.3) USRLIBL(P.4)。用于获取运行MFCPYSPL程序所需要的参数。 

以下就是实现将AS/400上的打印文件DCPRTMF转化为微机的文本文件的源程序。 
[quote]
var 
F,ToF:TextFile; 
TempStr:String; 
Fname:String; 
Str_Job:String; 
Str_Usr:String; 
Str_Nbr:String; 
begin 
//获取运行将打印文件转换为物理文件程序的参数 
CommDtmFrm.Cmd400Rtvjoba.Execute; 
Str_Job:=CommDtmFrm.Cmd400Rtvjoba.Value[0]; 
Str_Usr:=CommDtmFrm.Cmd400Rtvjoba.Value[1]; 
Str_Nbr:=CommDtmFrm.Cmd400Rtvjoba.Value[2]; 

//增加库表 
CommDtmFrm.Cmd400Addlible1.Execute; 

//生成CARGO MENIFEST，其中StrVslcod、 
StrVoyage为打印舱单的参数 
CommDtmFrm.Call400PRTMF.Value[0]:=StrVslcod; 
CommDtmFrm.Call400PRTMF.Value[1]:=StrVoyage; 
CommDtmFrm.Call400PRTMF.Execute ; 

//转换为物理文件 
CommDtmFrm.Call400Cpyspl.Value[0]:=Str_Job; 
CommDtmFrm.Call400Cpyspl.Value[1]:=Str_Usr; 
CommDtmFrm.Call400Cpyspl.Value[2]:=Str_Nbr; 
CommDtmFrm.Call400Cpyspl.Execute ; 

//产生一个新文件 
Fname:=&#39;C:\Communication\Newmf.txt&#39;; 
AssignFile(F,Fname); 
ReWrite(F); 
if CommDtmFrm.MfpcTbl.Active=false then 
CommDtmFrm.MfpcTbl.Active:=True ; 

//将物理文件的数据读出保存为文本文件 
with CommDtmFrm.MfpcTbl do 
begin 
DisableControls; 
try 
First; 
while not EOF do 
begin 
{ Process each record here } 
TempStr:=CommDtmFrm.MfpcTblMP198.Value; 
writeln(F,TempStr); 
Next; 
end; 
finally 
EnableControls; 
end; 
end; 

if SaveDialog1.Execute then 
begin 
AssignFile(ToF, SaveDialog1.FileName); 
ReWrite(ToF); 
Reset(F); 
while not EOF(F) do 
begin 
{ Process each record here } 
Readln(F,TempStr); 
writeln(ToF,TempStr); 

end; 

end; 
CloseFile(F); 
CloseFile(ToF);
[/quote]]]></description>
 <link><![CDATA[http://it.sinru.com/bbs/read.php?tid=10]]></link>
 <author><![CDATA[qingzhou]]></author>
 <category><![CDATA[系统管理]]></category>
 <pubdate><![CDATA[Sun, 26 Dec 2004 08:57:10 +0800]]></pubdate>
</item>
<item>
 <title><![CDATA[人气少如何办?]]></title>
 <description><![CDATA[  1.耐心. 国内做AS/400的人少啊,这种纯技术网站积累人气当然慢.个人网站宣传少,实力弱,尽管内容贴近实际需要,但人们不知道啊.只有一点点形成人气.
2.恒心. 做这个网站的出发点并非急功近利,而是因站长对AS/400的爱好所致.为了某种爱好而持续付出,实际上也是人之常情. 
3.信心. 访问的人少,但国内的AS/400相关网站也少啊.AS/400人在网上很没有归宿感.有个CU好很多,但是还不够.CU是寄居形式的论坛,形式受限.而本站是AS/400人自已的网站,服务形式可以&quot;随需应变&quot;.( [s:2] 现在这词时髦),所以,相信会好起来的.

所以,人气倒不是最要紧的,你做的好,大家认可,人气会有的.
站长现在真正需要的是合作者,希望有更多的人加入到网站的管理者队伍.能够认可站长想法的人可能不少,但勇于参与者不多.一个网站的运行,只靠个人的力量是不够的,需要大家共同参与,群策群力.所以网站一直秉持开放与谦虚的心态, 希望这种情况也会好转.]]></description>
 <link><![CDATA[http://it.sinru.com/bbs/read.php?tid=11]]></link>
 <author><![CDATA[fh2001]]></author>
 <category><![CDATA[系统管理]]></category>
 <pubdate><![CDATA[Thu, 30 Dec 2004 09:26:06 +0800]]></pubdate>
</item>
<item>
 <title><![CDATA[祝贺using_as400担任本版版主]]></title>
 <description><![CDATA[  经论坛网友大力支持推荐,自即日起由using_as400担任本版版主.论坛新建,贴子尚不多,对版主而言任重而道远! 希望在using_as400的带领下[应用开发]栏目越办越兴旺.]]></description>
 <link><![CDATA[http://it.sinru.com/bbs/read.php?tid=14]]></link>
 <author><![CDATA[fh2001]]></author>
 <category><![CDATA[应用开发]]></category>
 <pubdate><![CDATA[Thu, 30 Dec 2004 18:05:04 +0800]]></pubdate>
</item>
<item>
 <title><![CDATA[Host On-Demand]]></title>
 <description><![CDATA[  备受赞誉的行业领先的IBM Host On-Demand让您获得安全的Web到主机访问和电子商务应用编程支持。为您所有的3270、5250、VT和CICS 应用都提供一个统一的接口。利用标准的台式机工具、文件传输和主机打印最大程度地提高您的工作效率。管理员可以为不同的用户和组创建定制的HTML文件。利用WebSphere Portal可创建定制的portlet，简便地访问主机！WebSphere Host On-Demand 无需在客户端安装或中间层服务器，并且支持您选择客户端和服务器平台！ 

特色一览 

IBM WebSphere Host On-Demand 版可通过IBM Host Access Client Package for Multiplatform来购买，它可以访问多个后端主机系统。对于仅需要访问iSeries 和AS/400 e-server的客户，IBM Host Access Client Package for iSeries 是更为适合的解决方案。 

Host On-Demand 的特性包括： 

利用一个支持Java&#8482;的Web浏览器安全访问您的主机应用 
在一个包中访问S/390、AS/400、DEC/UNIX 仿真 
集中式的部署和管理将传统的终端仿真与“瘦客户端”仿真器的控制和低成本融合在一起 
使您可并行访问多个主机，并且仍然使用您的浏览器在Internet上冲浪 
利用基于TLS和SSL的技术，可安全通过Internet进行访问 
安装在服务器上，简化了维护、发布和升级 
无需中间层，简化了部署，提高了可扩展性 
支持Java&#8482; 1 和Java&#8482; 2 环境 
利用WebSphere Portal创建一个定制的portlet 提供简单的主机访问，且无需编程 
更多信息

快速、方便地访问关键主机数据 ：

使用Web浏览器访问IBM WebSphere Host On-Demand 的功能，为您的用户提供了一个简单的获取关键主机数据的方法 – 无需在客户端上安装任何软件。WebSphere Host On-Demand 利用Java&#8482;技术的强大功能，为您打开了从浏览器通向您的主机数据的大门。只需点击一个超级连接，即可启动WebSphere Host On-Demand Java&#8482; applet。这个 Web到主机的连接解决方案可通过Web浏览器安全访问主机应用，使您无需编程，即可将现有的主机应用扩展到Web上。在对TN3270E，TN5250，VT52，VT100，VT220，VT320，VT420 和CICS Transaction Gateway 访问的支持帮助下，用户可以使用一个通向他们的关键主机数据的接口。因为WebSphere Host On-Demand 基于Java&#8482;技术，因此它的界面在不同的运行中都具有相同的观感。它还提供了缺省的GUI，帮助简化不熟悉传统的绿色界面的用户的使用体验。 

WebSphere Host On-Demand 利用以下功能，帮助您达到您的电子商务目标： 

利用基于Java&#8482;技术的主机访问，扩展您的企业主机应用的使用范围 ：

支持TN3270E，TN5250，VT52，VT100，VT220，VT320，VT420 和IBM CICS Transaction Gateway 访问 
使您可以使用Host Access Beans for Java&#8482;、Host On-Demand Connector、Java&#8482;Script API 和可复用的部件，快速构件新的电子商务应用
为通过Internet访问提供了多种安全选项 
允许安装在Web服务器上，便于集中管理和部署 
为不熟悉传统的主机界面的用户提供了一个缺省GUI 
支持主机访问IBM iSeries 和IBM zSeries 服务器 
可通过FTP和VT访问所有支持FTP和VT的服务器类型 

一个经济高效的方法 
利用WebSphere Host On-Demand ，将会节省您产品开发和维护的费用，不需要将软件部署到单个用户台式机上。用户可以直接连接到主机系统，例如IBM iSeries 系统或IBM zSeries 系统，无需在客户端和Telnet服务器之间使用额外的硬件和软件。您几乎可以在任意服务器平台上安装WebSphere Host On-Demand ，它使用各种规模的组织和部门办公室。 

随着软件的升级，最新版本的WebSphere Host On-Demand 将在用户每次访问软件的时候下载下来，无需在客户端工作站上安装代码。利用缓存客户端的特性，用户只要下载一次。以后的使用将在用户的硬盘上进行，同时通过缓存客户端在后台处理代码的更新。用户的效率不仅得到提高，而且拥有最新版本的代码，使您的企业的发行费用很低。 

直接连接到任意Telnet服务器 
在WebSphere Host On-Demand中，客户端applet中包含有模拟功能，从而不再需要中间层服务器 – 中间层会带来性能上的问题。一旦applet提供给客户端之后，就可以方便地直接连接到所有标准Telnet服务器，可出色地访问所需要的数据。您可以根据用户对新数据变化的需要，更改Telnet连接。您可以同时访问众多主机会话。创建新的电子商务应用。

它提供了一个丰富的Java&#8482;工具集—包括Host Access Beans for Java&#8482;，HACL API，Host On-Demand Connector 和Java&#8482;Script API — 使您可以快速创建定制的电子商务应用来获得竞争优势。因为WebSphere Host On-Demand 是WebSphere产品系列的成员之一，使用这个工具集开发的应用可以作为其它WebSphere软件项目的一部分来集成，帮助您保护在WebSphere Host On-Demand 上的投资，并提供了转向Web和电子商务的跳板。 

利用HACL API 可访问3270，5250 和VT 数据流。这个类库使您可以以新的方式来使用关键事务信息，包括将一个应用的数据与其它的应用集成在一起。 

Host Access Beans for Java&#8482; 通过简单的基于组件的开发工具，IBM WebSphere Studio Application Developer，提供主机连接和模拟器功能。使用Host Access Beans for Java&#8482;或Host on-Demand Connector ，快速创建定制应用，提供您希望在您的电子商务应用所需要的功能。使用Java&#8482;Script API，您可以利用集成在您的企业网页中的Host On-Demand 会话。 

提高了通过Internet访问数据的安全性 
WebSphere Host On-Demand 使用传输层安全（TLS）协议或SSL V 3.0，以更高的安全性使主机数据通过企业内部网、外部网和Internet上访问。移动工作者可以与企业主机建立安全性得到增强的通讯联系。利用客户端和服务器证书的支持下，WebSphere Host On-Demand 可以Telnet服务器 – 例如 IBM Communication Server for OS/390 –提供一个证书（X.509，V 3）进行认证。这些证书可以保存在客户端的浏览器，或是专用的安全设备 – 例如智能卡，或是本地或网络可访问的PKCS12或PFX格式的文件中（这个文件使用密码进行保护）。 

部署选择
WebSphere Host On-Demand 可通过浏览器访问主机应用。浏览器从Web服务器上下载WebSphere Host On-Demand Java&#8482; applet ，然后连接到标准Telnet服务器上访问主机应用。WebSphere Host On-Demand applet需要配置信息来确定连接到哪台主机和确定其它的主机会话属性。这个配置信息可以使用HTML文件或使用WebSphere Host On-Demand配置服务器提供给WebSphere Host On-Demand applet。 

灵活的配置模型为您独特的需要提供支持 
如果您不想管理WebSphere Host On-Demand，管理员可以使用配置向导来创建包含有主机会话的配置信息的HTML文件。这意味着您不必使用WebSphere Host On-Demand配置服务器来指定会话。如果您允许将变化保存到主机会话配置信息中，这些变化将被保存到浏览器所运行的系统的本地文件中。

如果您需要管理WebSphere Host On-Demand用户，则使用管理工具在配置服务器上维护主机会话。首选设置使用一个用户和组的结构来定义。配置服务器通常将它的数据保存在本地的WebSphere Host On-Demand服务器上，尽管它可以被配置为使用轻型目录访问协议（LDAP）。用户可以使用配置向导所创建的定制HTML文件或使用作为WebSphere Host On-Demand提供的众多HTML文件中的一个来访问配置信息。如果管理员允许用户保存设置，WebSphere 将根据用户的表示，把用户的首选设置保存在配置服务器上。

IBM WebSphere Portal中提供简单主机访问 
在WebSphere Portal中访问3270，5250或VT 应用无需编程。IBM通过将WebSphere Host On-Demand 和WebSphere Portal结合在一起，提供了一个“现成”的解决方案，使您可以创建一个定制的Host On-Demand portlet，简化了都主机应用的访问。用户现在可以使用Host On-Demand部署向导，或使用我们在服务Service Key上提供的四个portlet范例，来定制portlet。]]></description>
 <link><![CDATA[http://it.sinru.com/bbs/read.php?tid=15]]></link>
 <author><![CDATA[mujinshu]]></author>
 <category><![CDATA[主流应用解决方案]]></category>
 <pubdate><![CDATA[Wed, 05 Jan 2005 09:47:58 +0800]]></pubdate>
</item>
<item>
 <title><![CDATA[请问mujinshu,有没有试过把DOC6.5.1（中文版）在OS/400 V5R3上跑过？]]></title>
 <description><![CDATA[  知道WEB 目录可不可以建啊？]]></description>
 <link><![CDATA[http://it.sinru.com/bbs/read.php?tid=17]]></link>
 <author><![CDATA[fh2001]]></author>
 <category><![CDATA[主流应用解决方案]]></category>
 <pubdate><![CDATA[Wed, 05 Jan 2005 13:57:24 +0800]]></pubdate>
</item>
<item>
 <title><![CDATA[转贴：专家访谈: Keys Botzum 谈 WebSphere 安全性]]></title>
 <description><![CDATA[  Keys Botzum 
高级 I/T 咨询专家, IBM Software Services for WebSphere
2004 年 12 月 

在这篇一问一答式的文章中，WebSphere 咨询和安全性专家 Keys Botzum 回答了关于 WebSphere Application Server 和 WebSphere Portal 安全性的相关问题。

[b]问：[/b] 在 WAS 和 WP 中，更新密码的最佳实践是什么？在我们的环境中，强迫我们每隔 90 天就要把每个密码更新一次。在测试的时候，我们在 WAS 和 WP 上总是遇到问题。我们需要更改 WAS 用户的密码，DB2&reg; 用户的密码，每个管理密码。幸运地是，我们还没有部署。为了避免错误和维持计算机的正常运行，我们应该在哪里更改密码？以什么顺序？有没有一个清单或者脚本可以帮助我们？ 

[b]答： [/b] 对于 WebSphere&reg; Application Server（以后称为 Application Server），我推荐在 Application Server 运行的时候更改密码，接下来重新启动每个单元服务器。这是非常重要的。如果您在 Application Server 没有运行的时候更改注册密码，您将不能启动它。 

对于数据库，方法是类似的。在数据库中更改密码，接下来是在 Application Server 中，然后重新启动。在这里，顺序并不是要求的十分严格，因为在您更改密码的时候，Application Server 并不去校验密码。

在每种情况中，当密码处在前后不一致的短暂时期的时候，都存在一定的故障风险。这里没有办法避免这点，但是如果您有可复制的服务器并且快速的转移，将会降低风险。

对于 WebSphere Portal，还有其他需要考虑的密码。幸运的是，WebSphere Portal 支持站点包含了很多关于如何更改大部分密码的非常好的文档：

关于更改数据库密码，参阅 更改 WebSphere Portal 中使用的数据库密码。
对于更改 LDAP 密码，参阅 在 LDAP 中更改 WebSphere Application Server 管理员密码。
如果您编辑了任何一个密码，您可能还需要更新 &lt;WPS_ROOT&gt;/config/wpconfig.properties 文件。注意 wpconfig.properties 文件在 WebSphere Portal 运行期间并不使用。请注意我并不是在支持这点。在 wpconfig.properties 文件中存储密码并不是一个好主意。我们推荐您在实施安装的时候删除它们： 


WSPconfig cleanup-work-dir
WPSconfig delete-passwords

 

[b]问：[/b] 用我们内部的 CA 中的 key 来替换 DummyKeys 被证实是非常困难的。我们仍然有一个问题，当一个新的结点被添加并联合到 CELL 中时，在联合可以开始，并且部署管理器可以管理新的节点代理以前，需要做一些手动的更改。该问题的根本归因于指向 Dummy keys 的 DefaultSSL 指令，和在其配置中使用 DefaultSSL 指令的 SOAP JMX Administration 端口。有没有更加灵活的方式来将一个节点联合到 CELL 中去，而不用手动的更改配置？

[b]答：[/b] 很不幸，这些手动步骤是必须的，并且并没有灵活简单的解决方案来实现这一点。您需要单独安装新的节点，将 key 复制到机器中，使用这些新的 key 来更改该节点，接下来将该节点联合到 CELL 中。如果同步后正确的放置了复制的 key，该节点应该继续使用这些 key。如果您关心重复能力，您可以创建一个 wsadmin 脚本，该脚本配置该节点的 SSL，并且将复制 key，配置节点和联合的操作封装进一个 shell 脚本。

[b]问： [/b] 我是一名 IT 架构师，并且我正在为一个 WPS 共享环境设计解决方案。它的意思是使用一个单独的 WPS 安装，但是供许多公司来使用。在没有安全问题的条件下配置这样的环境是可能的。您能预见什么安全问题吗？

[b]答： [/b] 这里有许多问题，我很难一一列举：

WebSphere Portal 和 WebSphere Application Server 仅仅支持一个单独的注册表，因此您计划如何为多个公司管理用户？
您打算如何管理 ACL 来控制对 portlet 的访问？您可以通过代理下面的管理来帮助自己，但是我认为管理起来是非常困难的。
这些公司是否需要在公用的 WebSphere Portal 环境中部署他们自己的代码？如果是这样，您知道 WebSphere Portal 和 WebSphere Application Server 并不提供应用程序隔离吗？因此，一个应用程序可以伤害该 CELL，并且破坏其他相关的应用程序。
您想要确保不同的公司不能看到彼此的 portlet，您打算如何处理应用程序访问？

[b]问：[/b] 我希望通过 WAS 全局安全性来保护管理。但是我的应用程序并没有使用 J2EE 安全。我能够做些什么呢？

[b]答： [/b] 我们强烈建议所有的 WebSphere Application Server 用户使用全局安全。如果没有做这些，就意味着将应用服务器公开给众多种类的攻击，因为管理动作是非安全的。通常情况下，简单应用全局安全对于应用程序并没有任何负面的影响。然而，有一些可测量的性能指标和一些 API，比如 request.getRemoteUser()，在使用安全的情况下会表现出不同的行为。如果应用程序依赖 request.getRemoteUser() 来返回 Web CGI 变量 REMOTE_USER 的值（它不应该这样，因为在没使用安全的情况下这是不安全的），在开启安全的情况下它将崩溃。应用服务器将返回空值，除非用户具备认证属性。如果您处在这种情况下，您又不能改变应用程序，在 WebSphere Application Server 5.0 Network Deployment 中，当您应用全局安全时，您可以不再单独的应用服务器上应用安全。这在服务器级安全下面的管理控制台中，Servers -&gt; Application Servers -&gt; &lt;servername&gt; -&gt; Additional Properties -&gt; Server Security -&gt; Server Level Security。

这个选项只有在该节点被联合的情况下才会出现。通过这一操作，您已经确保了所有的内部管理通信是安全的（加密或授权），但是同时，您并没有在应用服务器中运行的应用程序上应用安全。注意我们强烈推荐应用程序利用 J2EE 安全并且不要禁用服务器级别的安全。

[b]问： [/b] 当在 WebSphere Application Server 中实现自定义用户注册表的时候，都需要考虑什么事情？ 

[b]答： [/b] 自定义用户注册表（UserRegistry 接口的一个实现）使客户使用他们自己的自定义注册表，而不是 WebSphere Application Server 中本来提供的两个：操作系统和 LDAP。第一个，也是最重要的，我们推荐如果您能避免的话尽量不要使用 CUR，因为这将限制同其他使用 LDAP 的应用程序的互操作性。然而，如果需要的话，您也可以编写一个 CUR。请注意，您自己的自定义注册表实现可能没有依赖任何 WebSphere Application Server J2EE 组件，诸如数据源，企业 Bean 等等。这是因为在启动时，安全是在其他大多数 WebSphere Application Server 组件之前初始化和可用的。如果您以前的实现（从 WAS 4.0）使用这些组件，需要做一个更改来消除依赖。比如，如果您的上一个实现用数据源来连接一个数据库，那么现在用 Java database connectivity（JDBC）来连接到数据库。注意在小心谨慎的情况下（和对初始化过程的良好理解），在 CUR 中使用 DataSource 也是可能的，但是仅仅在一个应用服务器内部（不是节点代理），并且仅仅在初始化结束以后。

[b]问： [/b] 为什么不鼓励使用 SWAM？

[b]答： [/b] SWAM 代表 Simple WebSphere Authentication Mechanism。SWAM 认证机制倾向于在简单的、非分布式的和独立应用服务器类型的运行时环境中使用。独立应用服务器的限制是因为 SWAM 不支持可转发的信任状。如果应用服务器进程 1 中的 servlet 或者企业 bean 调用应用服务器进程 2 中的企业 bean 的一个远程方法，进程 1 中调用者的身份并不会传输到服务器进程 2 中。真正传输的是一个未经认证的信任状态，其依赖于 EJB 方法中配置的安全许可，可能造成认证失败。

另外，SWAM 认证状态是通过 HTTPSession 来维护的，而不是像 LTPA 那样的单独 cookie。这就削弱了认证的安全性，因为 HTTPSession 并没有设计成安全的。比如，错误的 LTPA 令牌审查。

在 WebSphere Application Server（base）v5.0 中，您可以使用 SWAM 作为认证机制。在 WebSphere Application Server Network Deployment v5.0 中，SWAM 并不是一个被支持的选项，甚至在 base 版中，它的使用也是不鼓励的。 

[b]问： [/b] 在我的 WebSphere Application Server 应用程序中，在使用基于表单的登录时，为什么我必须使用 SSO？ 

[b]答：[/b] 原因是非常简单的。通过使用 SSO，WebSphere Application Server 在 Web 请求之间保留用户状态为 LTPA cookie。如果没有使用 SSO，每个单独的请求都需要认证。如果您选择基于表单的登录，一旦表单完成了用户的认证，它将重定向回原始请求的 URL。没有 SSO，用户的认证将丢失并且这些认证将失败。当使用基本的认证时并不会出现这种情况，因为认证信息包含在每个 HTTP 请求中，并且 WebSphere Application Server 在任何需要的时候都可以使用它（这并不影响安全和性能）。

[b]问：[/b] 在闲置超时后，我想要强迫我的用户重新登陆。WAS 如何使会话超时和 LTPA 超时起作用呢？

[b]答：[/b]WebSphere Application Server LTPA 是基于登陆会话的寿命来标记过期，而不是基于静止状态。因此，如果用户在一段时间内没有执行任何动作，WebSphere Application Server 登陆会话并不会过期。然而，HTTPSession 却是基于静止状态类决定过期。如果在您的应用程序中，您需要基于闲置来决定使用应用程序的过期，您必须在应用程序中明确的用代码写出来。当一个用户得到一个过期的会话时（其实是一个新的会话），您可以捕获并且如果需要的话，可以强迫用户重新登陆。请注意，这一点将破坏跨应用程序的单点登入。

[b]问：[/b] 我正在努力解决将我的对象绑定到 WebSphere Application Server 的命名目录的问题。在过去的一个星期，我已经与 IBM 技术支持人员进行了交谈，但是除了从他那里得到一堆红皮书的链接之外一无所获。我现在连接到 WAS 5.x 的 2809 端口，并且没有任何许可的异常。用户名和密码是我用来连接到管理控制台的用户名和密码，并且他们是我正在使用的 LDAP 的一部分。如果您能只给我一个简单的程序或者一些相关的东西，将对我非常的有帮助。

[u]环境：[/u]
WebSphere 5.0.2.6 （使用与 network 以及 base 产品）

[u]问题陈述：[/u]
当我们试图连接到运行在“全局安全”开启情况下的命名服务的时候，得到了一个 CORBA_NO_EXCEPTION 错误。
Naming Environment Settings:
ALL_AUTHENTICATED Cos Naming Read, Cos Naming Write, Cos Naming Create, Cos Naming Delete. EVERYONE Cos Naming Read 
该问题的步骤：

在管理控制台中，开启“Global Security”，并且关闭“Enforce Java 2 Security”。
活动用户注册表被设定为“Local OS” / “LDAP”，并且活动协议为“CSI and SAS”。
用新的“root”用户名和密码来重新启动 Deployment Manager，节点代理和应用程序节点。
运行一个程序（通过 servlet 调用），通过 2809 端口连接到本地命名服务。
在调用 amingcontext.rebind() 时抛出了异常。
程序生成了下面的错误：


try{env.put(InitialContext.PROVIDER_URL, &quot;iiop://dev.businessapp.com:2809&quot;);
// Greg: for the authentication type we have tried &quot;simple&quot; , &quot;strong&quot; and &quot;LTPA&quot; without any luck.
env.put(javax.naming.Context.SECURITY_AUTHENTICATION, &quot;simple&quot;);
env.put(javax.naming.Context.SECURITY_PRINCIPAL, &quot;root&quot;);
env.put(javax.naming.Context.SECURITY_CREDENTIALS, &quot;rootpassword&quot;);
ctxt = new javax.naming.InitialContext(env);
ctxt.rebind(&quot;aName&quot;, obj);
}catch(Exception e){
e.printStackTrace(System.out);
}

Exception printed by aforementioned printStackTrace is following:
&lt;&lt;&lt; Exception from SystemOut.log
[9/22/04 15:40:41:895 PDT] 7dc141 Helpers W NMSV0610I: A NamingException is being thrown from 
a javax.naming.Context implementation. Details follow:
Context implementation: com.ibm.ws.naming.jndicos.CNContextImpl
Context method: rebind
Context name: DEVNetwork/nodes/DEV/servers/nodeagent
Target name: server2-2809-NotificationImpl
Other data: Object to bind: com.inc.businessapp.system.NotificationImpl@15a15f
Exception stack trace: javax.naming.NoPermissionException: NO_PERMISSION exception caught. 
Root exception is org.omg.CORBA.NO_PERMISSION: 
Trace from server: 298002686 at host 192.168.2.159 &gt;&gt;
org.omg.CORBA.NO_PERMISSION: not authorized to perform rebind_corba_object operation. 
minor code: 0 completed: No
at com.ibm.ws.naming.cosbase.WsnOptimizedNamingImplBase.performAuthorizationCheck
(WsnOptimizedNamingImplBase.java:2716)
at com.ibm.ws.naming.cosbase.WsnOptimizedNamingImplBase.rebind_corba_object
(WsnOptimizedNamingImplBase.java:914)
at com.ibm.WsnOptimizedNaming._NamingContextImplBase._invoke(Unknown Source)
at com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java:615)
at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:468)
at com.ibm.rmi.iiop.ORB.process(ORB.java:396)
at com.ibm.CORBA.iiop.ORB.process(ORB.java:1608)
at com.ibm.rmi.iiop.Connection.doWork(Connection.java:2164)
at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:63)
at com.ibm.ejs.oa.pool.PooledThread.run(ThreadPool.java:95)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:672)
&lt;&lt; END server: 298002686 at host 192.168.2.159
minor code: 0 completed: No
at java.lang.reflect.Constructor.newInstance(Native Method)
at com.ibm.rmi.iiop.ReplyMessage._getSystemException(ReplyMessage.java:228)
at com.ibm.rmi.iiop.ReplyMessage.getSystemException(ReplyMessage.java:177)
at com.ibm.rmi.iiop.ClientResponseImpl.getSystemException(ClientResponseImpl.java:142)
at com.ibm.rmi.corba.ClientDelegate.intercept(ClientDelegate.java:906)
at com.ibm.rmi.corba.ClientDelegate.invoke(ClientDelegate.java:430)
at com.ibm.rmi.corba.ClientDelegate.invoke(ClientDelegate.java:703)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:454)
at com.ibm.WsnOptimizedNaming._NamingContextStub.rebind_corba_object(Unknown Source)
at com.ibm.ws.naming.jndicos.CNContextImpl.cosRebindCorbaObject(CNContextImpl.java:3332)
at com.ibm.ws.naming.jndicos.CNContextImpl.doRebind(CNContextImpl.java:2052)
at com.ibm.ws.naming.jndicos.CNContextImpl.rebind(CNContextImpl.java:636)
at com.ibm.ws.naming.util.WsnInitCtx.rebind(WsnInitCtx.java:184)
at javax.naming.InitialContext.rebind(InitialContext.java:361)
at com.ibm.ws.naming.util.CorbaURLContext.rebind(CorbaURLContext.java:245)
at javax.naming.InitialContext.rebind(InitialContext.java:361)
at com.inc.businessapp.system.NotificationImpl.(NotificationImpl.java:127)

 

[b]答： [/b] 您假设 WebSphere Application Server 使用 InitialContext 创建中指定的认证数据来进行认证。这并不是真正情况。WebSphere Application Server 安全是基于健壮的模型，在执行远程调用时，安全上下文信息承载在当前的线程中，并且通过 IIOP 来发送。如果要作为一个认证的用户来访问 JNDI，您必须在创建 InitialContext 之前通过您自己的代码来在 WebSphere Application Server 中进行认证。在您的示例中并不是很清楚，我假定您使用 Java&#8482; 客户端。您需要参考 WebSphere Application Server Information Center， 配置 Java Authentication 和 Authorization Service 登录 部分。

[b]问： [/b] 我们正在试图做一个 Client Certificate Authentication，但是至今没有任何输出。我们已经配置用户注册表为 Local OS。我翻阅了从 IBM Redbook 站点获取的 WebSphere 安全文档，但是它讨论了 LDAP 设置而并不是 Local OS。您能提供一个一步步的指导吗？

[b]答： [/b] 您并没有为我提供足够的细节，使我能确切理解您的问题。我只能说明下面这些：

当在基于 Web 的认证使用 Local OS 注册表时，并不支持客户端证书。参考 WebSphere Application Server Information Center， 本地操作系统用户注册表部分。 这里有一段摘录：“当使用本地操作系统用户注册表的时候，目前并不支持 Web 客户端证书认证。然而，Java 客户端证书认证对于本地操作系统用户注册表确实起作用。Java 客户端证书认证将证书域中的第一个属性映射到用户注册表中的用户 ID。”
同文档暗示的一样，在使用 LocalOS 注册表的时候，并没有与证书认证相关的可配置的注册表特性。对于 LDAP（或者自定义的），有更大的灵活性。
如果您希望使用客户端证书认证，我推荐您不要使用 Local OS 注册表。

[b]问：[/b] 我们使用 W2K 和 Web 下面的 MQ WorkFlow v3.5。我们想要使用 Workflow API 访问 staff/Person 属性，或者开始一个进程实例，但是并不 logon()。这种方式我们不必在 JSP 中提供 User 和 Password。

[b]答：[/b] 您的问题非常不清楚，并且和 WebSphere Application Server 没什么关系，但是下面这个答案可能与您的问题有些关系。我认为您想要做的是设立一个启动用户。这允许一个非 Workflow 用户开启一个 Workflow 进程而不用明确的登录到 Workflow 中（但是该用户不会被指派任何工作条目）。这在 WebCredit 例子中使用过（SupportPac WA82）。

编辑 /WebClient/WEB-INF/WebClient.properties 文件。
指定 StarterUserID、StarterPassword、StarterSystemGroup 和 StarterSystem。
重新启动 Web 客户端。
确保在 Workflow 中没有员工编写的 API。

[b]问：[/b] （Solaris WAS 5.1.05 Network Deployer Custom User Registry）我依照安装步骤直到“t”，使用这个名字，com.ibm.websphere.security.FileRegistrySample，仍然出现了“No Group was found in User Registry Repository”的错误，我需要编译这个文件吗？


# users.props
#
# Format:
# name:passwd:uid:gids:display name
# where name &nbsp; = userId/userName of the user
# &nbsp;  &nbsp;  passwd = password of the user
# &nbsp;  &nbsp;  uid &nbsp;  = uniqueId of the user
# &nbsp;  &nbsp;  gid &nbsp;  = groupIds of the groups that the user belongs to
# &nbsp;  &nbsp;  display name = a (optional) display name for the user.

wasadmin:wa:123:500:WAS_Admin_user
wasadmin1:wa_1:124:500:WAS_Admin_user1
wasoperator:wo:125:600:WAS_Operator_user
wasoperator1:wo1:126:600:WAS_Operator_user1
wasconfig:wc:127:700:WAS_Configurator_user
wasconfig1:wc1:128:700:WAS_Configurator_user1
wasmonitor:wm:129:800:WAS_Monitor_use
wasmonitor1:wm1:130:800:WAS_Monitor_user1

# groups.props
#
# Format:
# name:gid:users:display name
# where name &nbsp; = groupId of the group
# &nbsp;  &nbsp;  gid &nbsp;  = uniqueId of the group
# &nbsp;  &nbsp;  users  = list of all the userIds that the group contains
# &nbsp;  &nbsp;  display name = a (optional) display name for the group.

wasadmins_group:500:wasadmin,wasadmin1:WAS_Administrative_group
wasoperators_group:600:wasoperator,wasoperator1:WAS_Operators_group
wasconfigurators_group:700:wasconfig,wasconfig1:WAS_Configurator_group
wasmonitors_group:800:wasmonitor,wasmonitor1:WAS_Monitor_group

 

[b]答： [/b] 不用，用户文件并不需要编译。FileRegistry 已经被许多客户成功地使用，因此这里可能有一些配置错误。没有其它的细节，我不能提供答案。我建议您搜集 WebSphere Application Server 追踪并且联系 IBM 技术支持。

致谢
作者希望感谢下面这些 ISSW 顾问的帮助和为本文作的准备：

Saravana R. Chandran
Harold L. Creel
Paul Ilechko
Bruce Nuechterlein
Irina Singh
John Wang
参考资料


您可以参阅本文在 developerWorks 全球站点上的 英文原文。
WebSphere Application Server 安全： Presentation 系列
developerWorks WebSphere Application Server 专区
developerWorks WebSphere Portal 专区
IBM WebSphere 开发者技术期刊：WebSphere Application Server V5 高级安全和系统强化
用 WebSphere Studio 构建安全的 Web 服务
IBM WebSphere 开发者技术期刊：最好的 10 个（左右）J2EE 最佳实践
用 WebSphere 和 Secure Sockets Layer 来保护登录页面
IBM WebSphere V5.0 Security WebSphere Handbook Series （红皮书）
关于专家访谈
专家访谈 WSDD 上的一个很有特色的每月专栏。我们可以让您接触到有关 IBM WebSphere 的最好的思想、随时准备回答您问题的产品专家和执行人员。您来提出问题，我们将公布对最普遍问题的解答。 

[b]关于作者[/b]
Keys Botzum 是 IBM Software Services for WebSphere （ISSW）的一名高级 IT 咨询专家。他在大规模分布式系统上有超过 10 年的经验，并且在安全性上有专门的研究。Keys 已经研究过很多分布式技术，包括 Sun RPC、DCE、CORBA、AFS 和 DFS。最近，他专注于 J2EE 和相关的技术上。您可以在 [url]www.keysbotzum.com[/url] 和 IBM developerWorks WebSphere 上找到 Keys 撰写的其它文章和介绍。]]></description>
 <link><![CDATA[http://it.sinru.com/bbs/read.php?tid=18]]></link>
 <author><![CDATA[fh2001]]></author>
 <category><![CDATA[主流应用解决方案]]></category>
 <pubdate><![CDATA[Thu, 06 Jan 2005 13:49:26 +0800]]></pubdate>
</item>
<item>
 <title><![CDATA[提供一个资源连接]]></title>
 <description><![CDATA[  AS400 Resource Guide for Newbies:

[url]http://search400.techtarget.com/originalContent/0[/url],289142,sid3_gci958176,00.html]]></description>
 <link><![CDATA[http://it.sinru.com/bbs/read.php?tid=19]]></link>
 <author><![CDATA[chensan]]></author>
 <category><![CDATA[应用开发]]></category>
 <pubdate><![CDATA[Thu, 06 Jan 2005 17:03:11 +0800]]></pubdate>
</item>
<item>
 <title><![CDATA[修改缺省的登录画面]]></title>
 <description><![CDATA[  请教修改DEFAULT SIGNON画面的详细方法，本人能力有限，只能把QGPL/QDDSSRC下的MBR拷出到自己的库下，接下来对MBR使用EDIT功能时，就感觉无从下手，请斑竹指教，谢谢[b][/b] [s:2]]]></description>
 <link><![CDATA[http://it.sinru.com/bbs/read.php?tid=20]]></link>
 <author><![CDATA[justakid]]></author>
 <category><![CDATA[系统管理]]></category>
 <pubdate><![CDATA[Thu, 06 Jan 2005 20:48:51 +0800]]></pubdate>
</item>
<item>
 <title><![CDATA[求助ADDDIRE的用途]]></title>
 <description><![CDATA[  知道如何添加和删除，就是不知道是用来做什么的，在何种情况下需要用到DIRE呢，请指教一二，另外，有时候用UNC名方式访问400的 共享文件夹会提示找不到网络路径，是什么原因呢（就是\\IP这种方式）]]></description>
 <link><![CDATA[http://it.sinru.com/bbs/read.php?tid=21]]></link>
 <author><![CDATA[justakid]]></author>
 <category><![CDATA[系统管理]]></category>
 <pubdate><![CDATA[Fri, 07 Jan 2005 14:54:01 +0800]]></pubdate>
</item>
<item>
 <title><![CDATA[请教如何用PC配置成CONSOLE]]></title>
 <description><![CDATA[  使用PC作为CONSOLE，是不是只要求400上装有MODEM，并且PC上装有CILENT ACCESS就可以呢，请问具体该如何配置，这是我的新任务，最好能详细说明，谢谢斑竹]]></description>
 <link><![CDATA[http://it.sinru.com/bbs/read.php?tid=22]]></link>
 <author><![CDATA[justakid]]></author>
 <category><![CDATA[系统管理]]></category>
 <pubdate><![CDATA[Mon, 10 Jan 2005 09:09:42 +0800]]></pubdate>
</item>
<item>
 <title><![CDATA[9406系列常见硬件]]></title>
 <description><![CDATA[  以下为本人平时搜集，若有不对请斑竹指正：

6813 &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp; 8.58G 硬盘

4318 &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;   17.54G硬盘

6824 &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;   17.54G硬盘

4319 &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;   35.16G硬盘

3001 &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp; 32M内存

3002 &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp; 128M内存

3004 &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  256M内存

3006 &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  512M内存

9767 &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp; 磁盘控制卡

6382 &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp; 4G磁带机

6385 &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp; 13G磁带机

6533 &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp;  &nbsp; RAID卡]]></description>
 <link><![CDATA[http://it.sinru.com/bbs/read.php?tid=23]]></link>
 <author><![CDATA[justakid]]></author>
 <category><![CDATA[系统管理]]></category>
 <pubdate><![CDATA[Mon, 10 Jan 2005 09:17:36 +0800]]></pubdate>
</item>
<item>
 <title><![CDATA[我的FTP server为何启动不了？急救！]]></title>
 <description><![CDATA[FTP server不能启动，
无论是单独启FTP，或是启全所有TCP server,
均无错误的信息出现，
可是，用wrktcpsts未发现FTP的连接存在，
其他的TCP server没有问题，为何？急救！

 [s:8]]]></description>
 <link><![CDATA[http://it.sinru.com/bbs/read.php?tid=24]]></link>
 <author><![CDATA[mimix400]]></author>
 <category><![CDATA[系统管理]]></category>
 <pubdate><![CDATA[Mon, 10 Jan 2005 10:20:19 +0800]]></pubdate>
</item>
<item>
 <title><![CDATA[大家多介绍朋友或者志同道合者共同前来探讨问题吧，这里随时都欢迎你们来D！]]></title>
 <description><![CDATA[  大家多介绍朋友或者志同道合者共同前来探讨问题吧，这里随时都欢迎你们来D！ [s:5]]]></description>
 <link><![CDATA[http://it.sinru.com/bbs/read.php?tid=25]]></link>
 <author><![CDATA[using_as400]]></author>
 <category><![CDATA[应用开发]]></category>
 <pubdate><![CDATA[Tue, 11 Jan 2005 21:41:55 +0800]]></pubdate>
</item>
<item>
 <title><![CDATA[[转贴]做技术但不可沉湎于技术]]></title>
 <description><![CDATA[  大家好，这是一篇转载！希望给大家有所启发！

 &nbsp;  &nbsp;   诸位，咱当电子工程师也是十余年了，不算有出息，环顾四周，也没有看见几个有出息的！回顾工程师生涯，感慨万千，愿意讲几句掏心窝子的话，也算给咱们师弟师妹们提个醒，希望他们比咱们强！

 &nbsp;  可以做技术，切不可沉湎于技术。千万不可一门心思钻研技术！给自己很大压力，如果你的心思全部放在这上面，那么注定你将成为孔乙己一类的人物！适可而止为之，因为技术只不过是你今后前途的支柱之一，而且还不是最大的支柱，除非你只愿意到老还是个工程师！　　　 

 &nbsp;  不要去做技术高手，只去做综合素质高手！在企业里混，我们时常瞧不起某人，说他“什么都不懂，凭啥拿那么多钱，凭啥升官！”这是普遍的典型的工程师的迂腐之言。8051很牛吗？人家能上去必然有他的本事，而且是你没有的本事。你想想，老板搞经营那么多年，难道见识不如你这个新兵？人家或许善于管理，善于领会老板意图，善于部门协调等等。因此务必培养自己多方面的能力，包括管理，亲和力，察言观色能力，攻关能力等，要成为综合素质的高手，则前途无量，否则只能躲在角落看示波器！技术以外的技能才是更重要的本事！！从古到今，美国日本，一律如此！　　　 

 &nbsp;  多交社会三教九流的朋友！不要只和工程师交往，认为有共同语言，其实更重要的是和其他类人物交往，如果你希望有朝一日当老板或高层管理，那么你整日面对的就是这些人。了解他们的经历，思维习惯，爱好，学习他们处理问题的模式，了解社会各个角落的现象和问题，这是以后发展的巨大的本钱，没有这些以后就会笨手笨脚，跌跌撞撞，遇到重重困难，交不少学费，成功的概率大大降低！ 

 &nbsp;  知识涉猎不一定专，但一定要广！多看看其他方面的书，金融，财会，进出口，税务，法律等等，为以后做一些积累，以后的用处会更大！会少交许多学费！！　　　 

 &nbsp;  抓住时机向技术管理或市场销售方面的转变！要想有前途就不能一直搞开发，适当时候要转变为管理或销售，前途会更大，以前搞技术也没有白搞，以后还用得着。搞管理可以培养自己的领导能力，搞销售可以培养自己的市场概念和思维，同时为自己以后发展积累庞大的人脉！应该说这才是前途的真正支柱！！！　　　 

 &nbsp;  工作的同时要为以后做准备！建立自己的工作环境！及早为自己配置一个工作环境，装备电脑，示波器（可以买个二手的），仿真器，编程器等，业余可以接点活，一方面接触市场，培养市场感觉，同时也积累资金，更重要的是准备自己的产品，咱搞技术的没有钱，只有技术，技术的代表不是学历和证书，而是产品，拿出象样的产品，就可技术转让或与人合作搞企业！先把东西准备好，等待机会，否则，有了机会也抓不住！　　　 

 &nbsp;  要学会善于推销自己！不仅要能干，还要能说，能写，善于利用一切机会推销自己，树立自己的品牌形象，很必要！要创造条件让别人了解自己，不然老板怎么知道你能干？外面的投资人怎么相信你？提早把自己推销出去，机会自然会来找你！搞个个人主页是个好注意！！特别是培养自己在行业的名气，有了名气，高薪机会自不在话下，更重要的是有合作的机会...]]></description>
 <link><![CDATA[http://it.sinru.com/bbs/read.php?tid=26]]></link>
 <author><![CDATA[fh2001]]></author>
 <category><![CDATA[我的AS/400生活]]></category>
 <pubdate><![CDATA[Thu, 13 Jan 2005 14:32:43 +0800]]></pubdate>
</item>
<item>
 <title><![CDATA[fh2001,请问我还能不能兼其他版的版主？]]></title>
 <description><![CDATA[  如果可以的话我想兼“我的AS/400生涯”版版主！谢谢！]]></description>
 <link><![CDATA[http://it.sinru.com/bbs/read.php?tid=27]]></link>
 <author><![CDATA[using_as400]]></author>
 <category><![CDATA[应用开发]]></category>
 <pubdate><![CDATA[Thu, 13 Jan 2005 17:24:43 +0800]]></pubdate>
</item>
</channel></rss>