2007/10/31

New Eclipse Feature GEF, JFaseDataBinding and EMF

I hadn't read the contents about eclipse rich client application utility recently.
There are something very interesting.

RCP, GEF, Visual Editor, JFase Data Binding and EMF

NetBean 6 GUI Builder seems good at database application

What's deselectBloggerImageGracefully() means?

I found when I add a image to blogger, the editor adds the following script to the onblur event of the link. Does anybody what's it mean?

< a onblur="try {parent. deselectBloggerImageGracefully();} catch(e) {}"
href="http://www.sun.com/images/ig/ig_javafx_architecture.jpg">
&ltimg style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;"
src="http://www.sun.com/images/ig/ig_javafx_architecture.jpg"
alt="" border="0" />

JavaFX another Applet? (Add proxy support to WeatherFX)


Sun provides a new Scripting Language though Sun call it JavaFX Framework. It targets the Rich Content market.

The demos are interesting, but other than Silverlight, I don't think it has something new compares Flash to Ajax. Maybe Adobe Java based Flash Player is better. I hope it don't become another Applet.

I tried and read the WeatherFX demo application. It's lack of component and original functions. So the code of application is very long. Without a good GUI IDE I cannot believe it is productive.

Btw, I found WeatherFX cannot support proxy. Because the key logic is based on Java Beans. I add the proxy support to it.


private static final InputStream getInputStreamFromURL(URL url) throws IOException {
Properties properties = System.getProperties();
properties.put("http.proxyHost", httpProxyHost);
properties.put("http.proxyPort", httpProxyPort);
//String encodedLogin = new BASE64Encoder().encodeBuffer(login.getBytes());
URLConnection con = url.openConnection();
//con.setRequestProperty("Proxy-Authorization", "Basic " + encodedLogin);
con.connect();
return con.getInputStream();
}

AJAX, Flash, Silverlight, or JavaFX - which will win?

AJAX, Flash, Silverlight, or JavaFX...
Must we choose?

By: Ric Smith
Sep. 26, 2007 07:30 PM
Digg This!


AJAX has forever altered user expectations regarding the experience delivered by the Web. In today's world, users sit at the edge of their seat waiting to see what scrumptious eye candy AJAX will serve them next. Some of the more notable visual effects and desktop-like interactions include Prototype-esque fades, Dojo style fisheyes, the near ubiquitous drag-and-drop, and, of course, who can live without the entertainment provided by the assortment of animated loading icons that now distract us while AJAX does its asynchronous "thing." Yes, it would appear that AJAX can do it all and that no desktop visual effect or gesture is safe from being outsourced to the Web.

High-Definition RIA Solutions: What Are They Good For?
This was my opinion, until I saw Apple's new Finder in the company's recently announced Leopard release of OSX. The Finder includes a file browsing feature called Cover Flow, which lets users page through previews of files that are displayed in a three-dimensional carousel. It is visual effects like this - effects that rely heavily on vector graphics - that are difficult to replicate with "pure" AJAX. In fact, competing technologies such as Adobe's Flex, Microsoft's Silverlight, and Sun's recently announced JavaFX render vector graphics substantially better than do AJAX frameworks such as Dojo or Yahoo! UI Library (YUI). Believe it or not, there is a significant business case mounting for Web-based vector graphics in terms of rich Internet application development that extends well beyond savory morsels of eye candy. This need is best represented by data visualization components that display business analytics (e.g., SAP and Oracle) as well as video playback and image editing software (e.g., YouTube and MixBook). Of course, RIA technologies that deliver vector graphics are not limited to the visualization domain; the Flex-based word processor BuzzWord provides a vivid example of one high-definition (HD) RIA solution delivering a complete Web application - one that is set to contend with a more popular application with AJAX roots, namely Google Docs. Thus, vector graphics are not the only thing HD RIA solutions bring to the table. Such frameworks also provide rich facilities for developing applications that deliver sound, sockets (pushing data), local storage, and video - areas where AJAX tends to lag behind.

Is the AJAX Revolution Over?
Does this mean AJAX has met its match? Not at all. It's true that Adobe Flash and similar technologies compete with AJAX, but there are certain limitations to these HD RIA frameworks that prevent them - for the time being - from being an out right replacement for AJAX without some considerable due diligence. Here are a few of the more notable things to consider when deciding between HD RIA solutions and AJAX:
• Plug-in required: HD RIA solutions require a browser plug-in. As of March 2007, 83.4% of PCs in the U.S., Canada, UK, Germany, France, and Japan have the Flash 9 player installed. Thus, it is arguable that Flash is virtually ubiquitous. However, even with a near universal install base, the need to upgrade a plug-in can be disruptive. More than half of users prompted to upgrade a plug-in upon visiting a site often abandon the redirect to download software and navigate to another site - possibly a competitor's site - in an effort to avoid the hassle of downloading and installing software. Note that neither JavaFX nor Sliverlight currently enjoy a fraction of the market share owned by the Adobe Flash Player. Also note that the 83.4% market share enjoyed by Flash 9 pales in comparison to the native AJAX support found in modern browsers such as IE 7.0, FireFox 2.0, and Safari 3.0.
• Lack of open standards: AJAX, unlike HD RIA solutions, is built on open standards such as (X)HTML, CSS, and JavaScript. HD RIA is traditionally proprietary with few open source options, much less standards. JavaFX, initially introduced as an open source effort, appears to be the leader at this time in terms of changing the status quo for HD RIA solutions, but it is by far the least evolved.
• Skills scarcity: Flex, Silverlight, and JavaFX each introduce its own respective language(s). AJAX on the other hand, relies on JavaScript, which is relatively well known, and is readily combined with other popular technologies such as Ruby-on-Rails, PHP, Java, and .NET.
• Does not play well with HTML: For new applications developed entirely with Flex this is not so much an issue, but for existing applications it can be a considerable problem. AJAX and, moreover, JavaScript, were created to complement HTML. The Flash runtime on the other hand lacks the flexibility to manipulate the structure of existing HTML pages with the ease that the JavaScript DOM object provides.
• Large download footprint: Flash-based RIA solutions tend to have a larger download footprint than solutions that rely on native AJAX support (e.g., Dojo, ICEFaces, Backbase, or Oracle ADF Faces Rich Client). The consequence of a larger download is a prolonged wait during application startup.
• Searchable, but not always found: In recent years, search engines have introduced the ability to index swf files into their respective Web crawlers. Yahoo and Google are the most well-advertised supporters of the file format, though the methodology used is not widely published or well understood. To optimize search results, Web designers often build both a Flash and a traditional HTML site or opt for embedded Flash movies within a traditional HTML site as an adornment to text-based content. Note that at the time of writing this article I could not procure information on how or when search engines will address this issue with emerging HD RIA technologies such as JavaFX and Silverlight.
• All clients are not created equal: With newer PCs, this concern is becoming less of a factor, but since HD RIA environments make heavy use of client resources to execute business logic as well as render visual effects, application performance is governed by the configuration of the client machine. Therefore, the user experience can vary from machine to machine. AJAX-based solutions that come with an inherited server-side component (e.g., Oracle ADF Faces Rich Client) can utilize server resources to off load both processing and rendering to ensure more uniform delivery to clients.

The reader should note that none of the considerations listed should prevent you from choosing Flash or similar products over AJAX. AJAX is certainly not without its own faults - many of which have, in recent years, had more visibility than those found in HD RIA solutions. Some of the more prominent issues that come to mind include slow JavaScript execution, memory leaks, numerous browser bugs, two connection limits, and CSS rendering issues. Simply put, to create an application on the order of Google Maps or GMail with AJAX, you must not be opposed to any manner of hackery. In addition, this article has already identified cases where HD RIA solutions outperform AJAX-based solutions, specifically in the realm of rendering vector graphics. But, at the other end of this equation it is apparent that AJAX is better suited for incremental updates to existing applications than say Flash or other HD RIA solutions, and AJAX is also better equipped to handle text-based content, which is currently the prominent medium for content on the Web - though, the more media-centric, real-time driven Web 3.0 might tip the scale to a richer format in the near future. Thus, currently no RIA solution on the market is absent of limitations.

Fortunately, the limiting factors of both AJAX and HD RIAs are - in general terms - mutually exclusive. Therefore, AJAX and technologies such Flash actually complement each other well and, as sites such as YouTube and SlideShare have proven, can be combined to create robust applications that provide both rich media and dynamic text. But, this introduces yet another dilemma and that is - not all developers are created equal, which conjures up the question of whether this concoction of RIA solutions is achievable by mere mortals?

The Best of Both Worlds, But Not Without Cost
The initial litmus test proves positive. Adobe Labs currently provides a Flex-AJAX Bridge that allows developers to manipulate a Flex application with JavaScript. In addition, the Silverlight DOM is accessible via JavaScript. Thus, HD RIA solutions are already looking to provide integration points for AJAX development. However, despite having APIs for integration, there are other complexities that lie a little further below the surface, namely the problem of finding skilled developers who have knowledge of Flash (or Silverlight and JavaFX), CSS, HTML, and JavaScript with a dash of PHP, Ruby-on-Rails, or Java. In addition, developers' skills are generally split between client and server functions, either being skilled in Flash and/or AJAX, but not server-side technologies. The inverse is also true. Therefore, you may need to hire one Flash and one AJAX guru rather than one or the other - doubling your expenditure on talent. Finally, there are few development tools, much less end-to-end development frameworks, that package all of these technologies into a single rapid application development environment. Ideally such an environment would include methods for visual development and other coding accelerators in addition to tools for declarative data binding. Thus, it would seem that productivity in terms of skills and tools is at a deficit for projects attempting to leverage both Flash and AJAX, or are they?

AJAX and Flash, Together at Last
In 2004, JavaServer Faces (JSF) set out to drastically simplify Web development and it appears that the standard, with the help of a few vendors, is looking to reinvigorate this effort once again. JSF is a server-side component framework that allows developers to use a single API to build Web-based applications that are capable of rendering to multiple devices. The key facet that enables such deployments is a highly flexible rendering engine or more specifically a render kit. Component frameworks such as Oracle ADF Faces have introduced render kits that not only render to HTML browsers, but also telnet clients, WML browsers, and ASK clients, creating multiple channels of delivery without the overhead of having to understand the nuances of the underlying technologies. You can easily see how this concept can be extended to AJAX and Flash. The idea being to create a set of components that render in AJAX as well as Flash, where AJAX is used to deliver enhanced forms, layouts, and data tables while Flash-based components serve more specialized purposes such as mapping, graphing charting, and other data visualization needs. Simply having a single API for development eliminates the need to understand JavaScript, (X)HTML, CSS, XML, JSON, and Flash (or any other RIA solution). Developers simply need to know the semantics of Java and the JSF API. Moreover, the need for deep understanding is lessened by the extensive tooling and visual design times (e.g., Oracle JDeveloper, NetBeans, Eclipse) currently available for JSF. The outcome is a development environment for creating and delivering highly interactive RIAs that are accessible to a broad range of developers with varying levels of skill.

However, despite an extensive choice of tools, there are few JSF component vendors that provide both Flash and AJAX-based components in a single framework. Some of the more notable JSF component vendors distributing AJAX-enabled frameworks include Backbase, ICEsoft, Oracle, JBoss, and ILOG. Presently, Oracle ADF Faces Rich Client represents one of the only frameworks that provides both AJAX- and Flash-enabled components. Moreover, to dispel any notion of proprietary intervention, Oracle recently announced at this year's JavaOne the contribution of Oracle ADF Faces Rich Client to the Apache Foundation as the MyFaces project Rich Client Framework (RCF). RCF demonstrates that JavaServer Faces can provide an open source solution, built on industry standards, that brings RIA developers the best of both worlds - HD RIA and AJAX - under one API.

Resources
• "How to Choose an RIA Path: AJAX or Adobe?" by Jeffrey Hammond http://ajax.sys-con.com/read/400296.htm
• "How to Design Flash Pages for Google" by James Gonzalez www.peachpit.com/articles/article.asp?p=454163&rl=1
• Apache MyFaces Rich Client Framework Proposal http://wiki.apache.org/myfaces/RCF_Proposal
• www.adobe.com
• http://labs.adobe.com
• www.microsoft.com/silverlight/
• www.sun.com/software/javafx/
Published Sep. 26, 2007 — Reads 7,577

CIO应通过数据向CEO提供解决问题的方法

CIO应通过数据向CEO提供解决问题的方法

发布时间:2007.10.29 09:44 来源:赛迪网-中国计算机用户 作者:夏冰

市场如战场一般残酷,领导决策会不会出问题,企业将来发展状况如何……参加ERP沙盘培训,一切将迎刃而解,失败不怕,还可以从头再来。

2007年8月31日《中国计算机用户》周刊联合沙盘培训公司沙窝管理咨询有限公司,通过企业信息化主管ERP沙盘演练这一形式展现了第11次富营活动。

本次演练的主讲是沙窝管理咨询公司首席架构师路晓辉,其在信息化领域有着丰富的实践经验和培训经验,在用友公司工作了12年,是用友顾问学院的院长,也是国内最权威的沙盘架构设计师和培训师。多年的大学从教经历及著名软件公司研发和咨询顾问的经历,以及为国内外知名企业举办的上百场沙盘点评经历,使得他在课程的点评上游刃有余。

本次ERP沙盘演练富营结合网络版沙盘分析工具软件、完整的企业模型和沙盘课程体系,来自各个单位的CIO等嘉宾分成A、B、C、D、E五个组经营各自的虚拟企业,亲身体会信息化在企业经营中的作用。

制定战略,规划发展

本次CIO富营—企业管理信息化(ERP)沙盘模拟训练,是根据一个制造型企业的所有运做,提炼出了一个非常简单的模型。CIO等嘉宾通过参与企业的全面经营,能更清晰、全面地理解一个企业完整的管理运营情况。该企业生产的P系列产品包括P1、P2、P3、P4,但目前公司只有生产P1产品的能力,P1产品现在市场上销路还不错。

参与沙盘模拟的嘉宾被分成五个团队,每个团队成员分别代表着首席执行官(CEO)、财务总监(CFO)、运营总监(COO)、营销总监(CMO)和商业间谍等角色。亲身体验一个企业管理的完整流程,包括:物流、资金流和信息流的协同,理解企业实际运做中各个部门和管理人员的相互配合。

沙盘平面的上部分模拟企业的经营管理部门,包括市场开拓、品牌建设、新产品研制,包括各种各样的费用开支等;中间部分类似水池出入口的形状,模拟企业的流动资金走向,来源主要靠把自己的产品和自己的服务销售出去。下部分模拟企业物流系统,从原材料的订购开始,到企业之后进原材料库房,变成产成品的过程。

五个小组由各组推选的CEO带领,经营五家起点一致的“公司”,连续从事4个会计年度的模拟经营活动后再看各小组经营业绩好坏。在经营决策中,学员们会遇到企业经营中常出现的各种典型问题,选手们必须一同发现机遇,分析问题,制定决策,公司才能保持成功及不断的成长。

训练一开始,各小组首先要根据市场信息和企业经营规则,研究并确定公司发展策略,制定公司的市场营销和业务经营计划。查看市场预测和P系列几种产品的走势、预测现金流、产品盈亏平衡计算,规划本公司在本地、区域、国内、亚洲、国际五大市场的定位,从而确定公司的战略发展方向。  

广告角逐,赢取订单搞生产

在目前的P系列产品中,P1产品由于技术水平低,虽然近几年需求较旺,但未来将会逐渐下降。P3产品是P1的技术改进版,前两年增长比较迅速,其后需求趋于平稳。P2、P4为全新技术产品,发展潜力很大。投资研发新产品应当是企业的当务之急。目前生产能力比较落后,P系列产品生产应采用更先进的设备,企业如果希望适应未来的发展,生产能力提升迫在眉睫。

本地市场需求将持续保持旺盛,但未来的区域市场、国内市场、亚洲市场也将有很大的需求增长量。在3年之后,国际市场的需求将非常诱人。企业如果希望有较大的发展,开拓其他市场刻不容缓。

目前在整个行业中,可以生产相同产品的企业共有5家,这些企业无论在资产规模、生产能力、市场占有、资金状况等方面都是不相上下。企业在未来发展的过程中,市场竞争将是十分残酷的。所以企业要参考专业机构做出的市场预测,结合本公司制定的战略发展方向,确定公司未来一年的产品战略,即生产什么产品,生产多少?该产品市场前景如何?需不需要研发新产品?如何与其它同行在即将举行的产品招标销售会议上争夺订单?

为避免采购的盲目性,在市场经济环境下,企业生产计划应当以销售订单、或者未来市场需求的预测为龙头。根据订单或者需求预测制定生产计划。计算目前的库存、核实产品的物料需求清单。根据生产能力,进行生产排程,计算原材料采购计划。并在此基础上制定公司的广告计划,毕竟广告打得多才能在各个市场上拿到更多的订单!

在产品招标销售会议上竞单是整个沙盘演练过程中气氛最为热烈的一个环节,各小组在CEO拍板确定了公司的广告策略后,纷纷派出自己的营销总监作为代表,参与产品订单争夺。整个会议室霎时变成了喧闹的拍卖场,主持人在大声吆喝:这个订单由某个小组获得,那个订单被某小组争去。最后有人欢喜有人摇头,订单各小组都有所得,不过多少而已。

拿回订单之后,公司就要开始正式的生产经营,通过直观的企业模拟沙盘教具,模拟企业实际运行状况,涉及到企业的整体战略、市场开发、绩效考核、产品研发、生产管理、市场营销、财务管理、团队协作等多个方面。这一套结合沙盘模拟训练开发的ERP产品,便于大家在学习中更深刻的领悟到了管理之道。

培训师提示:

由于目前这个游戏当中涉及了五个产品市场,本地市场、区域市场、国内市场、亚洲市场、国际市场,设计的产品线有4个,P1-P4,一个是五维,一个是四维,一共涉及到20维的空间,由于做不到一个组把所有的市场都包下来,那么就只能在这20维空间里占据其中一个或几个,因此企业必须进行定位。第一以生产什么产品为主,因为企业不可能从P1-P4都能生产,资源不够,生产线有限。第二、买入自动生产线之后,主要集中在哪几个市场?企业资源是有限的,市场开拓、打广告、做品牌认证、产品研发、生产线建设,半自动、全自动或柔性线,投资方向很多,有限资源如何进行匀称的投资分配? 

到底赚了多少钱?

在第三年的点评中,路老师认为C组虽然经营最好,但还有很多问题要考虑,他说:“这个组广告成本是5个组中最高的,投入产出比不太合适,说明在细分市场追求广告效益上欠考虑。财务问题比较大,利息和贴现高一些。拿到价格太低的订单,企业必须降低直接成本,要立刻进行改进”。他突然问C组的CEO一个问题,“经营3年,你们生产P1、P2两个产品,哪个赚钱?净利多少,毛利多少”。

CEO被问得支支吾吾,他才说:“按照你的考虑,两个小时之内很难算出。做为经营最好的C组领导也不能迅速知道每个产品赚了多少钱,问题出在哪里呢?因为没有有效地利用信息化手段,而凭借人的大脑显然不能和电脑相比”。他迅即给出产品成本核算,P2产品成本比较低,每销售1元产品的成本是0.88元,但P1不赚钱。向大家说明企业问题在哪,什么地方需要改进。

数据的应用在信息化建设决策中至关重要,企业数据的统计分析,是给企业的经营决策服务,获得数据是为了解企业经营状况,发现经营管理当中的问题。从而根据数据,扭转经营中失误,纠正管理当中的一些缺陷,从而使企业良性健康地发展。真正的现代化管理的企业是随时可以看到相关数据,这是企业信息化发展的一个理想的目标。

培训师提示:企业信息系统实施后只有应用而已,没有量化的绩效评价体系,没有实施后的优化改进过程,如何建立切实可行的信息系统绩效量化评价体系?

如果你能够给企业的老总展现:这个产品的成本结构,这个产品不赚钱,原因发生在什么地方?企业每年销售额的增长,利润,全年总成本的核算趋势,当你能够把这样的一些问题,给企业老总展现的时候,那一天就一定是你的出头之日!

经过教师引导年和企业4个财年的循环经营,终于到了评选最后优胜小组的时候,虽然C组在前几年业绩一直领先,但A组在CEO的带领下扭亏为盈,后来居上,获得了沙盘演练的总冠军。

CIO观点:一位学员谈到,ERP沙盘模拟训练,真是新奇又好玩,把企业管理完美地融合到了游戏般的培训当中,把管理方法成功地运用到了模拟的企业经营当中去。管理培训多以讲解为主,讲师靠一套PPT就全盘负责,学员忘得快,缺少动手实践。今天所学能记得牢。

另外一位学员也感慨到,今天真正体会到了如何在企业管理实践当中,用数据说话。企业的市场情况可以用数据考核优劣,企业的人员可以用数据考评奖惩,企业的成本可以用数据来科学测算,企业的现金流可以用数据精确预测……

ERP沙盘训练缘起军事

ERP沙盘培训是一种体验式的企业经营与信息化实战培训工具。该培训让企业管理者‘置身’于实物模拟环境下,通过经营实战和咨询顾问的点评,使接受培训的管理者不断明确企业在不同发展时期遇到的问题以及需要进行的重点思考,同时体会“计算”对于企业管理的重要作用,以及‘数据’对于企业经营决策的重要意义。

全球最知名的哈佛商学院在20世纪70年代就借鉴军事上沙盘推演的理念,逐渐完善了其享誉世界的“哈佛情景教学”模式,沙盘模拟训练的雏形应运而生。随着这种体验式培训教学方式的不断发展,角色扮演、情景模拟、工具软件和点评内涵等的不断完善,沙盘模拟训练在20世纪后期,已经风靡欧美和日本的的企业管理培训界和高等教育界,并已成为世界500强中80%的企业中高层管理人员首选的企业经营管理培训课程。

而为打赢伊拉克、科索沃等战争,美国军队都大量应用了高科技手段进行计算机仿真和沙盘演示。战争的结果也表明用信息化的手段进行沙盘模拟是一种比较好的控制方法,在战前就能对战争的后果进行充分的模拟,对可能出现的问题能够采取及时的预防措施。所以美国军队相继以较小的损失、较快的速度取得了这些战争的基本胜利。

俗话说不打无准备之仗,美军依靠沙盘预演对战争的后果有了充分认识,从而掌握了战争的主动权,企业要想在激烈的市场竞争中取得胜利也不能无准备就仓促登场。

培训师点评

沙盘模拟训练完全不同于传统的灌输方式授课,具有很强的参与性、互动性、实战性、竞争性和体验性。

企业信息化隶属于技术服务体系,在管理中没有太多发言权;而信息系统却是涉及企业全面管理的系统工程,如何提高信息化部门的地位?如何提高企业负责人尤其是一把手对信息系统的认识和重视程度?

作为信息化管理人员,如何能够主动规划和推动本企业的信息化建设,以适应企业业务部门及企业整体战略近期和远期的需求?在企业中处于执行部门地位的信息化部门,在业务部门领导重视不够的情况下,如何持续推进管理信息化建设?

在企业中,信息化建设部门该如何定位并发挥作用,以影响企业决策和管理?

学员在主导“企业”各项经营管理活动的训练过程中体验得失,总结成败,从而领悟科学管理规律,提高企业管理能力。企业的经营一定要有一定的战略,通过参与全面了解信息化建设对企业经营决策的意义;沟通企业各个业务部门在整体信息化建设上的共识;加强企业各级主管,特别是“一把手”对于企业管理信息化建设的重视程度。 理解企业的“神经系统”—各种基础数据信息的获得流程,以及信息流对企业决策的关键作用,企业进行信息化建设的必要性和急迫性。

作为CIO,你能够帮助老总,通过数据帮他提供他所需要的问题时,帮他提出企业经营当中问题的症结时,甚至提出这个企业的管理改进应该怎么做的时候,你做为CIO在企业当中的地位,在CEO的眼睛当中,自然就高了。(责任编辑:崔平)

CIO应怎样把握好集团企业系统集成的度?

CIO应怎样把握好集团企业系统集成的度?

发布时间:2007.10.29 09:38 来源:首席信息官 作者:首席信息官


  与早些年企业在信息化方面的一穷二白不同,最近两三年我所遇到的咨询客户,都有一些共性,一是已有多年的信息化应用基础,二是对信息化的困惑已经“升级”为管理和应用问题,这些问题不再停留在建设期的软件和技术层面,而是伴随企业高速发展而出现的信息化与管理的不匹配问题。正如本案例所述,这些问题突出表现为集团内部应用集成的矛盾。

  好在,像致远集团这类依靠相关多元化发展的企业,这几年规模和效益都在逐年增长,所有的问题都可以看作是“成长中的烦恼”。要解决问题是需要资金和实力来支持的。

  之所以这样说,是因为在已经上了信息化的企业,想做集成改造,是必须谨慎从事的。系统的增加、替换甚至是放弃,都是一件关系到上上下下、方方面面的大事。改造是有成本的,更是有风险的,搞不好影响到经营业务,甚至会成为公司发展的分水岭。我在往期《前沿论丛》中有一个HP和康柏并购的案例,就分析过这样情况。

  所以,联想的柳传志“不上ERP是等死,上ERP是找死”才变得如此有分量,就是这个道理。我们的观点是,集团企业考虑信息系统的集成,最关键的是把握集成的度!万事求个平衡,没有绝对的集成与分散,必须把这件复杂的事情拆开来看才能够更准确更全面。

  让我们看看哪些因素会影响集成的度?如图,集成可以分为三个层次。每个层次的目的和内容不尽相同。让我们先从中间的业务集成谈起。企业搞集成的目的并不是简单追求管理手段和工具的先进性,而是出于管理的目标。比如通过“钢性”的信息系统将管理模式输出到多个同类型的制造或者经营部门,做到作业标准化、工作模式化,实现管理的简单复制。

  其实,我们所用的不同系统都是用来解决管理的某些层面的,或者说处理某些层面的问题比较专业。比如要把从采购、制造到销售等企业内部价值链过程用一套系统联接起来,将物流、资金流、信息流统一起来,这便有了ERP(企业资源计划)。而PDM(产品数据管理软件)解决的是设计研发的问题,OA(办公自动化软件)解决的是办公的问题。

  当企业同时拥有ERP、PDM、OA等系统的时候,这就有了集成的需求。这些集成的本质是业务集成。正如案例中谈到的,同样是物料,“设计部门认为蓝色漆和绿色漆编码肯定应该不一样,但是在财务人员看来是相同的,因为价格相同;而财务人员认为金属漆与普通漆价格相差很大,编码肯定应该不同,但是设计人员认为两者差别不大。”其本质是两者关注的业务点不一样,一个是工艺,另一个是成本。解决业务集成,重在实现管理口径的一致性,这是信息交换和共享的基础。说白了,就是用相同的语言说话。

  业务集成通常会实现业务逻辑在多个信息系统之间的流转。技术实现并不是唯一有效的这手段,通过规范管理要素是更好的选择,即统一业务逻辑。再看上面的例子中,可以增加物料的附属信息,使之同时包含颜色、价格等多个独立属性,并在不同的系统引用这些属性以达成不同的管理目的。这样一来,物料编码的粗细程度就不会成为主要矛盾。

  数据集成是解决信息系统底层的数据同步性、时效性问题,其目的是解决数据来源的唯一性,真实性、时点性(数据是动态的,不同时点的数据有不同的状态)。

  数据集成是业务集成的技术基础,但对这种技术实现精度的要求可高可低,其衡量标准是紧急程度和代价的多少。比如,给手机充值要求金额实时到帐,不然会出现一卡反复充值或者出现充值后仍然不能使用的情况。而拨打手机的计费并不是实时到帐,而是数十小时甚至是月底才批量性结转的,因为如果实时处理,基站和计费系统的负荷会不堪重负。

  由于有更高的技术细节,数据集成是一件复杂的事情,在这里不展开论述。我发现这两年有越来越多的客户对这一块技术方案、实现技巧、切换方法感兴趣,而可以提供咨询和解决方案的顾问较少,究其原因,同时对技术和业务有深入理解的顾问很少。所以,这是一个又难又重要的领域,如果有需求,读者可根据文后的联系方式与我进一步交流。

  下面来谈谈最上层的企业集成。对于一个大型的集团企业,由于二级子公司业务的独立性、产业的多样性和历史的因素,各子公司使用不同信息系统的现象相当普遍。

  集团的信息部门总是在系统整合与分散之间左右为难。我接触到的大集团都有这样的困惑:整合意味放弃前期的系统投入,也意味着切换失败的管理和技术风险,不整合又可能意味着集团管理的乏力。

  是否进行企业集成,我们的评判标准与业务集成不同,主要看产业关联度和管理关联度。对于子公司之间产业相同或者产业关联度很高,可以用一套系统整合集中管理,提高集团子公司的业务协同,就应该在资金允许,准备充分的情况下对企业集成,彻底整合。但如果集团公司是以投资管理为重点,子公司之间是非相关产业多元化性质的,就没有必要做业务运营层面的系统集成。顶多是通过集团管控、合并报表、公文流转等系统应用来集成部分二级公司的数据。切忌用一套系统来管理多元化集团企业成员。前几年,国内有多个这种性质的集团企业,花了很多钱来统一系统平台,结果几年都不能实现,无功而返,还耽误了集团的管控进程。正确的做法是,集团收集二级单位的汇总管理信息,通过逐级上报软件和分析系统做管理决策。

  我们已经知道企业应用集成的三个层次,在具体的企业中如何用于行动呢?我们说评估、规划是应用集成的前提。

  首先进行公司业务定位、管理模式、管理基础、系统现状的评估。判断集成的风险,特别关注人的因素(包括观点、能力、执行力等)、财务因素(资金保障)、时间因素(集成实现和系统切换的时间点)。

  其次是发动业务和管理层,规划集成的目标、范围,明确重点和难点,找到管理上、技术上的解决方案。特别是实现的策略、步骤和过渡、切换方法。提交一两套方案供公司高层决策。企业应用集成是为了提高管理效益,而不是仅仅追求技术的先进性,只有把握集成的度,分层次考虑,才能提高集成的效益。

  案例:

  致远集团是一家以机械为主的集团公司,始创于二十世纪80年代,在二十世纪90年代上市,此后走上快速发展的征程。公司在股票市场上成功融资之后,先后收购了业内规模较小的机械企业,并开始了多元化之路,运用兼并、收购、重组等资本运作方式与国内优势企业强强联合,集汽车整车和零部件的研发、制造和销售为一体,与许多国际知名公司结成战略联盟。

  致远集团的龙头企业是致远机械有限公司,是国内知名的工程机械供应商,还有专门针对矿山机械、挖掘设备的致远重机有限公司,以及最近组建的致远汽车有限公司。致远集团旗下拥有30多个子公司,致远机械、致远重机、致远汽车是致远集团的三驾马车。

  全面开展企业资源管理

  在2002年左右,这个以机械、重机和汽车大亨却遇到了前进的障碍,随着生产经营规模的扩大,公司的多个业务环节的管理水平均呈现出力不从心的迹象。公司的总经理黄致远请教了国内的一些管理专家,最后得出的结论是企业资源缺乏科学的整合和配置,业务流程也需要进一步优化,而且期望用信息化的手段来解决这一系列问题,在2003年底打算实行全面企业资源管理(ERM, Enterprise Resource Management),就是在各子公司的部门之间形成协同,同时各子公司与集团之间的信息资源整合。

  对于信息化,致远集团并不陌生,在上马ERM之前,致远集团采用了财务软件规范了财务工作,在致远机械研发部门部署了P软件公司的产品数据管理 (PDM, Product Data Management)系统,而且还和一个国内的软件公司定制开发了营销管理系统。在系统运行过程中,确实发挥了的功效。然而,这些系统运行一段时间后,形成了大量的相关数据,由于这些数据具有相当程度的离散性,由于各部门之间的数据接口不畅,导致生产、采购、仓储和财务环节不能实现信息共享,必须依赖人工操作进行衔接,这样大量的数据处理,给各部门之间的造成了太多了麻烦,这样就产生了信息延迟的现象,管理者也不能对企业情况准确即时的进行判断和决策。

  黄致远觉得集团现在的情况是子公司之间的信息化能力差异比较大,尤其是一些下属公司内部信息化又不够彻底。现在推ERM就是为了整合和配置先有的资源,在这个过程中如何处理好业务流程也是关键问题。

  重担当然落到信息部门主管高卓身上,高卓原本是公司致远机械研发部门的产品数据管理工程师,后来被调到集团的信息部门。高卓对集团的信息化也很担忧,现在面临的最大问题就是给整个集团做一个信息化规划,而且解决集团内部所有公司的系统集成问题是整个ERM的关键。

  平台与实施服务选型

  高卓坦言:“由于集团IT部门人力有限,目前只能在总体规划的基础上先帮助分公司规划、统一应用系统(软件与服务器)平台,其他硬件选型、实施服务还要由分公司自己来做。”但这种方式并不是致远集团所希望的,高卓希望时机成熟时能够将硬件、软件选型、实施服务都由集团统一规划进行,并且,集团应建立更为完善的组织架构和风险防范体系,保障信息化项目的顺利实施。

  原来致远机械已经和A软件公司签定合同,但是还没有实施;致远重机使用B公司的ERP产品,而且已经使用了一年;致远汽车则在与名为C的ERP厂商进行谈判。

  但是,如果是这样的话,三家主要分公司即将出现的多系统平台将为致远集团统一、集中、精细化管理带来诸多困难,尤其是多套ERP系统间财务核算方式、报表生成数据以及系统管控能力均不相同,系统间的集成也将面临诸多困难。面对当前系统应用的混乱局面,致远集团信息化部门决定对ERP系统平台进行统一。

  纳入致远集团ERP统一平台选型的软件厂商有5家公司,在致远集团ERP选型小组的两轮竞标、评审后,致远集团、致远机械和致远汽车最终选择了S公司的系统平台,而且放弃了现有的A软件公司和C软件公司的ERP系统,致远重机仍使用B公司的ERP产品。在对实施公司的选择中,选择了I咨询公司作为实施公司。并且,计划先后分别在致远机械、致远重机和致远汽车三家公司实施。

  集团企业的系统集成

  进入实际实施阶段,致远机械很快就遇到了困难,即ERP同原来的PDM系统的集成。PDM是致远机械在2001年引进的系统,由于它和ERP系统所应用的范围不同,所关注的重点不同,造成两个系统的集成难度相当大。同时,这套系统在使用过程中积累了大量的产品数据,工人们对它比较熟悉,不愿意使用新的系统,导致整合后的系统运行初期不断报错,整个信息化进程受到阻碍。还有,原来按设计部门认为蓝色漆和绿色漆编码肯定应该不一样,但是在财务人员看来是相同的因为价格相同;而财务人员认为金属漆与普通漆价格相差很大,编码肯定应该不同,但是设计人员认为两者差别不大。即使研发部门和生产部门完成了系统集成,财务系统目前还处在并行阶段,那下一步怎么走呢?

  就在致远机械进行公司内部的系统集成时,致远集团刚收购了一家发电机制造企业,致远电机势必成为致远集团的“第四驾马车”,而该企业使用的系统是E公司的ERP系统,那么对于刚收购公司的系统与集团总部的系统集成是如何开展的呢?作为机械行业的领先企业,致远集团在信息化过程中所经历的一系列困难依然具有很强的行业代表性。集团企业的系统集成不光要考虑分公司内部的系统集成问题,还要考虑公司与集团总部的系统集成问题,那么如何有效解决集团公司系统集成的呢?

  对高卓来说,开展集团企业的系统集成确实是一个很大的挑战,高卓陷入了沉思……(责任编辑:罗洪泽)

中国制造业ERP中小国产厂商遭遇生存危机

中国制造业ERP中小国产厂商遭遇生存危机
http://www.sina.com.cn 2007年10月30日 00:54 信息时报
  时报记者 陆俊

  据《2006中国制造业ERP产业发展年度报告》表明,2006年中国制造业ERP软件市场为34.08亿人民币,较2005年增长22.37%,约占全球ERP市场份额的1.47%。

  对于ERP产业而言,制造业拥有如此广大的市场潜力,完全可以成为ERP产业快速发展的动力源,然而,记者发现,我国中小国产管理软件厂商却有不断被边缘化之危。专家把脉指出,中小国产管理软件厂商生存发展关键是集中优势资源,做精,做专。

  中小厂商遭遇生存危机

  尽管在市场整体占有率上压倒国外厂商,但这并不意味着国产管理软件厂商都活得不错。相反,对于众多中小国产厂商来说,他们正被边缘化。

  目前,用友和金蝶牢牢地盘踞着管理软件市场的半壁江山,根据统计,用友和金蝶分别占据了24.3%和14.9%的市场份额,这些国产巨头正续继向中小企业市场深拓。据悉,为了拓展中小企业市场,用友甚至把触角延伸到四、五级地区。另一方面,国外厂商也开始发力中国市场特别是中低端市场。SAP已与东软合作意欲切进中低端企业市场,而甲骨文也通过“瘦身”将目光转向了中低端市场。

  “中小ERP厂商们现在的压力非常之大,这其中既有同业竞争压力,也有来自互联网新模式的冲击,如果不做出改变,它们中很多将面临危险。”易观国际分析师梁新刚分析说。

  据悉,在短短一两年间,国外中小型管理软件厂商从数千家,变为一千来家,蒸发了近半数,而留下来了,也只是在生存边缘苦苦挣扎。现在中小ERP们,有的还在观望,还有一部分企业则迈出了寻找自救出路的艰难历程。ASP、开源、电子商务,每条路上都留下了它们足迹。这些"新出路"为中小ERP们带来了希望,同样也带来了不可避免的危险。

  分析师梁新刚就认为,分析师梁新刚就认为,厂商无论是选择ASP模式、开源模式还是电子商务平台模式,其成功都有赖于雄厚的资金和技术实力,很多小型ERP厂商盲目采用的话可能会死得更快。

  明确定位是当务之急

  对于中小管理软件厂商的出路,有专家指出绕开泛化”和“规模化扩张”,集中优势资源,做精,做专是中小管理软件厂商的生存发展之道。

  资深ERP专家陈启申认为,中国企业的行业很多,仅制造业行业就有几十个之多。同一个行业里面在产业链上的位置不一样,其管理需求、销售策略等方面都不一样。行业细分和需求各异,这就要求企业和供应商都必须有一个明确的定位。企业要清楚其在行业里面处在什么样的位置,需要怎样的解决方案和信息化系统;而供应商也要明确自己应该提供什么样的信息化系统才能满足这类企业的需求。

  “从细分市场来看,一是行业细分,例如制造业、医疗行业、金融行业等。供应商通过原有的优势领域来做到精细化,专门为某一行业的企业用户服务;一是产业链细分,对处于不同产业链位置的企业,就有可能从生产管理、财务管理、流程管理等各个方面实现专注化,实现产业链局部的专业性,为企业用户提供更好更优的服务。”陈启申说。

  此外,专家指出,加强服务能力也中小管理软件厂商需要恶补的方面,据悉,目前中小管理软件厂商大多以软件许可为盈利模式,由于在出售软件时,服务是以免费打包赠送,许多厂商忽视服务,导致用户流失。据计世资讯调查发现,半数以上的制造行业中小企业认为管理软件提供商是购买管理软件时的首选,并希望能提供从实施到后期技术支持的一系列服务。调查表明,70%以上的企业希望ISV厂商提供软件实施和技术支持服务。

2007/10/30

ソフトウェア開発データ白書2006

本書では、ソフトウェア開発プロジェクトの実態を分析。昨年2005年同時期に発行した第一版から、データ量や分析結果を大幅に充実させ、データの精度が大幅に高まりました。
 実際には、昨年2005年の1.5倍に相当する15社を超えるシステム・インテグレータから、およそ1400プロジェクト分の定量データを収集。内容は、2005年版に引き続き、システム開発における最大の課題である“QCD(品質、コスト、納期)”に焦点を当て、様々な開発指標(ソフトウェア・メトリクス)をクロス分析し、「適切な工期とは何か」や「品質と外注率の関係」など、これまで実証できなかったことを数値で証明しています。
 データの収集と分析は、情報処理推進機構内に2004年に設置された産官学協同のソフトウェア・エンジニアリング研究機関「ソフトウェア・エンジニアリング・センター」が実施しています。


1章 白書の背景と目的

2章 収集データについて
 2.1 2006年度のデータ収集のポイント
 2.2 データ提供状況

3章 分析について
 3.1 分析の考え方
 3.2 分析データの選定基準
 3.3 分析結果の見方

4章 主な収集データ
 4.1 データの表示方法と対象データ
 4.2 開発プロジェクトの全般的な特徴
 4.3 利用局面
 4.4 システム特性
 4.5 開発の進め方
 4.6 ユーザ要求管理
 4.7 要員等のスキル
 4.8 規模
 4.9 工期
 4.10 工数
 4.11 体制
 4.12 信頼性
 4.13 実施工程の組み合わせパターン
 4.14 プロジェクト成否

5章 プロジェクトの主要要素の統計
 5.1 この章でのデータの見方
 5.2 FP規模
 5.3 SLOC規模
 5.4 工期
 5.5 工数
 5.6 月あたりの要員数

6章 工数、工期、規模の関係の分析
 6.1 分析の概要と手順
 6.2 主な要素の分布
 6.3 工数と工期
 6.4 FP規模と工数
 6.5 FP生産性
 6.6 SLOC規模と工数
 6.7 SLOC生産性
 6.8 FP規模とSLOC規模の関係

7章 信頼性の分析
 7.1 信頼性:FP規模の場合
 7.2 信頼性:SLOC規模の場合

8章 工程別と予実の分析
 8.1 工程別の工期、工数
 8.2 工程別のレビューとテスト状況
 8.3 計画と実績の分析

9章 統計分析についての解説
 9.1 解説1:統計分析の読み方
 9.2 解説2:多変数データの統計分析

10章 組織的な取り組み事例
 10.1 取り組みのサマリ
 10.2 取り組み詳細

11章 まとめ

付録
 【付録A】 データ項目の定義
 【付録B】 データ収集フォーム Ver.2.0
 【付録C】 データ項目ごとの回答状況
 【付録D】 用語集
 【付録E】 参考文献・参考情報

物流IT情報フォーラム

多様化する就業形態 ~2006年版労働経済白書より~ 【10月30日】

今年8月、厚生労働省は「2006年版 労働経済白書」を発表しました。
サブタイトルは「就業形態の多様化と勤労者生活」で、増大している非正規雇用の背景や問題点を分析するとともに、「新しい日本型雇用システムの創造」を目指したこれからの取り組みについて提言しています。
今回は、2006年版労働経済白書(以下、白書)の概要を抜粋してご紹介しながら、多様化する就業形態の実態を考えてみます。

中小企業白書2002年 中小企業物流効率化対策

第2節 中小企業物流効率化対策


 中小企業が共同で行う物流効率化を図るための取組を支援するため、平成4年10月に施行された「中小企業流通業務効率化促進法」を柱とした支援措置を引き続き推進する。
(1)地域中小企業物流効率化推進事業(予算額71百万円)
 組合や任意の団体等が共同物流システムの構築、受発注・輸配送情報ネットワークの構築等のテーマに係る調査研究・基本計画策定事業、事業計画・システム設計事業、実験的運営事業について補助する。

(2)物流効率化専門指導員派遣事業(予算額31百万円)
 中小企業総合事業団において、中小企業が物流効率化を図るための検討を行う際に専門家を派遣しアドバイスを行う。

(3)広域中小企業等物流効率化・連携支援事業(予算額222百万円)
 全国又は地方単位の組合や任意の団体等が、共同物流システムの構築、受発注・輸配送情報ネットワークの構築等のテーマに係る調査研究・基本計画策定事業、事業計画・システム設計事業、実験的運営事業について補助する。

(4)中小企業物流情報化基盤整備事業(予算額145百万円)
 商品コード、標準情報システム開発等公共データベースの構築、維持、普及や物流効率化に有益な情報等をホームページにより提供するシステムの構築等の事業について補助する。


前へ 次へ

JISAの集計(特定サービス産業動態集計、海外取引及び外国人就労)

特定サービス産業動態統計・情報サービス業

* 平成19年(2007年)8月(確報)【前年同月比 5.1%増加】
* 平成18年(2006年)補正版
* 平成17年(2005年)補正版


DI値(売上の将来見通し,雇用判断)

* 平成19年(2006) 6月分(確報)【売上高予測DI値7月~9月、45.7ポイントプラス 】


特定サービス産業実態調査

* 売上高、従業者数等の年間推移(経済産業省のデータもとにJISAで作成)


JISA基本統計調査

※本調査の詳細については報告書/CD-ROMにて販売しています。ご購入に関しては刊行物ページをご覧ください。

* 2006年版 概要(2006年10月25日掲載)
* 2005年版 概要(2005年12月15日掲載)
* 2004年版 概要(2004年12月9日掲載)
* 2003年版 概要
* 2002年版 概要
* 2001年版 概要
* 2000年版 概要


海外取引および外国人就労等の実態調査(2005年実施)

* 調査結果

情報システム調達戦略 研究主旨 Information System Procurement Strategy Keynote

研究の由来



外部環境変化しつつある。企業は勝ち残るため、情報システムは単に戦術問題ではなくなる。戦略レベルで捉えなければならない時代である。

考えられる外部環境変化は:
グローバルビジネス進化
業界再編
エネルギーの問題
オープンソース
SaaS
新興国の参入
少子・老齢化

研究の主旨



情報システム調達について、グローバル的に戦略的に考えることで、新しい道を作って、常に競争優位を確保することが可能である。

情報システムは消極的に問題を解決だけでは足りない。
積極的に問題を予測し、戦略的に総合に企業内部・外部からリソースを合わせて調達しなければならない

パラドックスは下記の通り:
     コスト 時間 
外部調達 
 アウトソーシング
 外注
内部調達 
 新人
 中途
 派遣

SQL Relay - connection pool, proxy, and load balance

SQL Relay

2007/10/29

Good Dojo Examples

Ajax Frameworkを評価する

Ajax Frameworkを評価する

作者 Scott Delap, 翻訳者 松本 清一 投稿日 2007年9月4日 午前12時0分

コミュニティ
Java
トピック
Webフレームワーク

Dr. Dobbs氏は、T. Rowe Priceの開発チームで作業をする過程で選択したAjaxフレームワークのケーススタディについて書いている。そのチームは、次世代のアプリケーションに利用するために、次にあげる著名なAjaxフレームワークの評価を行った。

* Dojo 0.3.1 (dojotoolkit.org).
* Prototype and Scriptaculous 1.4 (www.prototypejs.org and script.aculo.us).
* Direct Web Reporting 1.0 (getahead.org/dwr).
* Yahoo! User Interface Library 0.11.1 (developer.yahoo.com/yui).
* Google Web Toolkit 1.0 (code.google.com/webtoolkit).

初めのレビューで、新たにJavaベースAPIを必要とするUIとバックエンドを開発するレガシーチームの部門があったことから、GWTを評価の対象から除外した。さらに、DWRについても、T. Rowe Priceで評価に使用したWebsphereアプリケーションサーバのバージョンでは、パッチが必要であったことから除外した。この結果、Dojo、Prototype、Yahoo UIの評価を行うことになった。

それぞれのフレームワークが、タブベースのAjaxの画面コンポーネントと動的に表示/非表示が切り替わるタイトルバーのついたハブコンポーネント (※1)を作成するのに必要となるものが十分に満たされているか、というケーススタディを行った。3つのフレームワーク全てがタブ画面に求められる機能を満たしていたが、特にDojoに関しては、型にとらわれず一番良いものを提供していた。T. Rowe Priceチームは、次にロード時間の評価を行った。

フレームワークがよりコンパクトなサイズであれば、パフォーマンスの低下を防ぐことができます。JavaScriptファイル全てを圧縮したサイズは、Yahoo UIが22K、Prototypeが32Kであり、Dojo単体でのファイルサイズだけで200Kもあることから比べると、とてもサイズが小さいと言えます。3つのライブラリ全てが、高帯域のネットワーク接続でスムーズに動作しますが、YUIとPrototype/Scriptaculous prototypesについては、56Kのダイアルアップ接続でも快適に動作しました。

最後に、T. Rowe Priceチームは、開発のしやすさについて評価した。Dojoについては、画面コンポーネントなど良いものを提供しているが、修正の際にいくつものファイルを修正しなければならないという点で、メンテナンスの面では難があるという意見で一致した。最終的には、YahooのWebサイトにコードを解説したドキュメントや詳細なチュートリアルが十分にあるという点で、 Yahoo UIが一番に選ばれた。

X-WebForm web based report format sdk

Aptana IDE all in one web application ide(Javascript, Ruby, Php...)

Chinese Succor Goalkeeper

可悲的人。性格决定命运。生活还是要乐观、豁达。
http://book.sina.com.cn/longbook/else/1100505485_sangjiaquan/39.shtml

http://book.sina.com.cn/longbook/else/1100505485_sangjiaquan/40.shtml

http://sports.sina.com.cn/c/2005-03-22/02131463126.shtml

http://sports.sohu.com/95/34/news209843495.shtml
守门员

2007/10/26

find and execute recursive

the following command is equal.
grep -rEHn *sv*

find . -exec grep -EHn *sv* {} \;

2007/10/25

javascript java style package and constructor demo

javascript java style package and constructor demo

//------------------------------------
// declaration
/** create package pkg. keep the exits package */
var pkg = (pkg) ? pkg : {};
/** create class Test */
pkg.Test = (pkg.Test) ? lgr.warn("pkg.Test already exists, ignore.") : function (str) {
/** private member */
var _str;
/** property get */
this.getStr = function () {
// not need "this." for the private variable
return _str;
}
/** property set */
this.setStr = function (str) {
// not need "this." for the private variable
_str = str;
// smalltalk style return this
return this;
}
}

//------------------------------------
// test pobject, load the package before execute
var test = new pkg.Test ("init test");
test.setStr("modified");
// another object
var test2 = new pkg.Test ("init test2");
test2.setStr("modified2");

// inspect second object, should display "test2"
alert("test2 is" + test2.getStr());
// inspect first object, should display "test"
alert("test is" + test.getStr());
// try to inspect private variable, should display "undefined"
alert("try to access private member _str from outside. result is" + test._str);

情報システムにおけるアウトソーシング

情報システムにおけるアウトソーシング
007381 脇川 章
2002 年 11 月 7 日
1
はじめに
1996 年から 2000 年の間に調査をおこなった,情報
システムにおけるアウトソーシングの利用率を表 1 に
示す [1].
表 1: アウトソーシング利用率の推移
西暦
利用企業の割合
1996 年 32 %
1997 年 38 %
1998 年 42 %
1999 年 47 %
2000 年 49 %

1996 年において,情報システムのアウトソーシング
を利用している企業は 32 %であった.1996 年に比べ
ると 2000 年には 17 %の増加があり,情報システムの
アウトソーシングを利用している企業は 49 %になっ
た.本発表では近年,利用が増加している情報システ
ムにおけるアウトソーシングの効果と課題について述
べていく.

2
アウトソーシングとは
情報システムとは組織または,社会に必要な情報の
収集・処理・蓄積・伝達利用にかかわる仕組みであり,
情報システムにおけるアウトソーシングは,広義のア
ウトソーシングとは異なる.アウトソーシングにおい
て業務を外部へ委託する企業を,ユーザ企業という.
また,アウトソーシングにおいて委託された業務を実
施する外部の企業を,アウトソーシングベンダという.
広義のアウトソーシングとは社内で調達していた機能,
あるいは,社内で調達することが当然だと思われてい
た機能を,外部の企業が提供することである.
 アウトソーシングにおける,ユーザ企業とアウトソー
シングベンダのやり取りを図 1 に示す.
図 1: アウトソーシングの構造

 広義のアウトソーシングに対して,情報システム
におけるアウトソーシングはユーザ企業が社内で調達
していた機能,あるいは,社内で調達することが当然
だと思われていた機能を,アウトソーシングベンダが
定常的にかつ,管理責任を持って提供することである.
 たとえば,情報システムの開発プロジェクトにおい
て,自社の開発力が不足するためにプログラムの作成
を外部の企業に委託することは,情報システムにおけ
るアウトソーシングと異なる.また,情報システムの
運用に際し,外部の企業から派遣されたきた人材を開
発のメンバに加えるようなケースもアウトソーシング
ではない.業務を委託された企業は人材を派遣するだ
けで,管理責任を受託したわけではないからである [2].

3
アウトソーシングの効果
アウトソーシングベンダから人材,資産を提供され
ることにより,ユーザ企業は自社で業務を実施してい
たのでは得られない効果を得ることができる.

1
Page 2

3.1 コストの削減
アウトソーシングにおけるコストの削減で大切なこ
とは,一時的な削減よりも継続的に削減を可能にする
ことである.2 章で述べたとおり,情報システムにお
けるアウトソーシングはアウトソーシングベンダによ
り,定常的に機能の提供がおこなわれる.アウトソー
シングには,一時的なコストの削減よりもトータルで
コストを削減できることが重要である.
3.2 専門の技術を利用できる
自社では利用できないアウトソーシングベンダの保
持している専門の技術を,利用することができる.技
術の進歩が激しい情報技術の分野では,自社において
育成することが困難な技術がある.しかし,アウトソー
シングを利用することにより,自社では育成すること
が困難な専門の技術を必要なときに利用できる.

3.3 社員の活用
アウトソーシングされた業務に携わっていた社員は,
アウトソーシングされた業務をアウトソーシングベン
ダに任せて,別の業務を担当することになるか,また
は,アウトソーシングベンダへ移転することになる.
移転した場合は,アウトソーシングベンダで使われて
いる専門の技術を学ぶことにより,社員の技術が上達
することになる.アウトソーシングベンダへ移転しな
い場合は,人手の足りていない別の業務へ社員を移転
させることができる.

4
アウトソーシングの課題
アウトソーシングベンダへ自社の業務を委託すると,
アウトソーシングベンダは自社の社外秘の情報を扱う
ことになる.情報システムにおけるアウトソーシング
の場合には,自社における経営,経理,人事の情報な
どがある.これらの社外秘の情報を守秘することが,
ユーザ企業にとっては重要な課題となってくる [3].

5
おわりに
本発表では情報システムにおけるアウトソーシング
の効果と,課題を述べてきた.
 今後の発表では,情報システムにおけるアウトソー
シングの流れ学ぶため,具体的にアウトソーシングベ
ンダとユーザ企業を調べる予定である.

参考文献
[1] 経済産業省,“情報処理実態調査”,
http://www.meti.go.jp/kohosys/press/0001257/
0/0105it1.pdf,2001.
[2] 島田達巳,“実践アウトソーシング”,日科技連,
1998.
[3] NTT データ経営研究所,“IT フルアウトソーシ
ング”,日刊工業新聞社,2000.

第8回 DHCPとDynamic DNSの連携システム



第8回 DHCPとDynamic DNSの連携システム

鶴長 鎮一
2003/8/5

TSIG認証によるセキュリティ

 nsupdate同様、ソースIPアドレスによる制限だけでは心もとないため、TSIG認証()を導入します。手順は第7回同様に行い、DHCP側での鍵の指定はdhcpd.conf中で行います。

注:dnssec-keygenやTSIGについては、第5回も参照。

マスター・ゾーンサーバ側の設定

 まず、マスター・ゾーンサーバで共有鍵の生成を行います。

# /usr/sbin/dnssec-keygen -a HMAC-MD5 -b 512 -n HOST example.jp

Kexample.jp.+157+01798.key
Kexample.jp.+157+01798.private

$ more Kexample.jp.+157+01798.key
example.jp. IN KEY 512 3 157 1GPx/sFNPz40U/NuspDqo……(省略)

 生成されたファイルから共有鍵を抜き出し、named.confに埋め込みます。

key "example.jp" {
algorithm hmac-md5;
secret "1GPx/sFNPz40U/NuspDqo……(省略)";
};

zone "example.jp" {
type master;
file "example.zone";
allow-update{
key example.jp;
};
};
zone "1.168.192.in-addr.arpa" {
type master;
file "example.rev";
allow-update{
key example.jp;
};

};
/etc/named.conf

DHCPサーバ側の設定

key "example.jp" {
algorithm hmac-md5;
secret "1GPx/sFNPz40U/NuspDqo……(省略)";
};

zone example.jp. {
primary 10.0.0.10;
key example.jp;
}

zone 1.168.192.in-addr.arpa. {
primary 10.0.0.10;
key example.jp;
}
/etc/dhcpd.conf追加分

 以上で設定は終了です。named、dhcpdともに再起動し、動作を確認しましょう。

登録されるホスト名とFQDN

 DNSに登録されるホスト名は、クライアントから渡されるものを使用すると前述しました。それでは、同じホスト名が設定されたクライアントが複数 存在する場合はどうなるでしょう。または、1台のマスター・ゾーンサーバに対して複数のDHCPサーバからupdate要求が行われるとどうなるでしょ う。

 これらの場合、クライアントAのためのゾーン情報が、クライアントBによって上書きされたり削除されることが懸念されます。そこで、DHCPサー バはクライアントの情報を基にHASH値を生成し、TXTレコードとして埋め込みます。以降の更新にはこのHASH値の確認が必要になり、その過程は /var/log/messagesでうかがうことができます。また、サーバ側でホスト名を指定することもできます。

host bbb { hardware ethernet XX:XX:XX:XX:XX:XX; ddns-hostname "クライアントのホスト名"; }
#特定のクライアントのMACアドレスにホスト名を指定した場合

ddns-hostname = binary-to-ascii (16, 8, "-", substring (hardware, 1, 6));
#MACアドレスを基に機械的にホスト名を指定する場合(例:0-80-98-b0-XX-XX.example.jp)
/etc/dhcpd.conf追加分

 クライアントから、ホスト名でなくFQDNが渡される場合もあります。FQDNにDHCPサーバが想定していないドメインが付随していることも考えられます。DHCPサーバ側では、以下の2つのモードでFQDNを処理可能です。

ignore client-updates;
#FQDNの最左からホスト名を取り出し、ドメイン部はDHCPサーバで指定しているものを使用

allow client-updates;
#FQDNから更新すべきドメインを拾い出し、そのドメインに対するマスター・ゾーンサーバを見つけてupdateを行う(
/etc/dhcpd.conf追加分
注:この設定を有効にした場合、クライアントがホスト名しか送ってこない場合は正引きのAレコードは登録されず、逆引きのPTRだけ登録されます。

DHCPサーバに依存しないDynamic DNSの実現

 DHCPサーバが自由にできる環境であればこれまでに紹介した方法が利用できますが、多くの場合DHCPサーバはプロバイダのものであったり、そもそもDHCPではなくPPPoEやPPPを利用しているケースもあることでしょう。

 こうした環境にDynamic DNSが付加できれば、動的に与えられたIPアドレスをいちいち直打ちする必要はなくなります。その手順を自動化できれば、不意なプロバイダとの切断で新 しいアドレスが割り当てられた場合に、即座にDNS Updateを実施できます。以下では、簡単なPerlスクリプトを使った自動化の手順を紹介します。

図3 ホームサーバをゾーン情報に登録

クライアント/サーバプログラムの作成

  サーバ側
    server.pl(漢字コードEUC)
    hosts.key
  クライアント側
    client.pl(漢字コードEUC)

 ここでは図4のようなネットワークを想定しています。プロバイダから付与されたただ1つのIPアドレスを静的IPマスカレード)を用いて、特定のポートに来たIPパケットを指定されたプライベートネットワーク内のサーバに転送しています。

注:多くのブロードバンドルータでは「仮想サーバ」の名称で呼ばれています。Apacheなどで利用されるバーチャルドメインサーバとは本質的に異なるものです。

 このサーバに、外部からhome.example.jpで接続できるようにDynamic DNSを利用します。しかし、ローカルサーバにグローバルアドレスが直接振られる場合は割り当てられたグローバルアドレスを簡単に取得できますが、静的 IPマスカレードを使用している状況では、ルータに振られたグローバルアドレスを何らかの手段で知る必要があります。そこで次のような仕組みを考えます。

図4 クライアント/サーバプログラムの導入

 この例では、クライアント/サーバ方式を採用しています。nsupdateはnamedが起動しているサーバ内で実行させることにし、そのための要求待ち受けプログラムと、外部からnsupdateを実行させるクライアントスクリプトの2つを用意します。

 クライアント/サーバ方式を使用することで、クライアントのソースIP、それもルータに付与されたIPアドレスをサーバ側で検出できます。NAT 内から送信されたIPパケットは、ルータ内でソースアドレスをグローバルIPに書き換えるため、サーバ側は容易に必要なIPアドレスを知ることができま す。

クライアント/サーバプログラムの内容

 クライアント側はわざわざスクリプトを作成するまでもなく、telnetコマンドで直接サーバと対話することも可能ですが、crontabなどで定期的に実行させることも考えてスクリプト化しました。

client.pl
$ ./client.pl $host $password $server ($port)
 $host:登録したいFQDNホスト名
 $password:サーバに登録されているキー(平文)
 $server:送信先
 $port:サーバ側の待ち受けポート番号(省略時は5103)

・平文パスワードとランダムに生成した2文字($salt)からCRYPT暗号キー($crypt)を生成
・socketを使用し、サーバに下記の文字列を送信


DDNS $host $crypt $salt\r\n
QUIT\r\n
DDNS $host $crypt $salt\r\n
QUIT\r\n
(TCP $portで待ち受け)
client.pl
$./server.pl ($port)
 $port:サーバ側の待ち受けポート番号(省略時は5103))

・受け取った文字列がDDNSで始まっているかを確認。QUITであればclose
・文字列から$host$crypt$saltを抽出し、$saltとhost.key中の平文キーでCRYPT暗号キーを作成し、$cryptと一致しているか確認
・送信文字列からソースIP($client_ip)を検出
$host$update_serverの結果と$client_ipを比べて、2重登録にならないことを確認
・/tmpに作業ファイルADDFILEを作成し、下記のようなnsupdate流し込みファイルを作成

  server $update_serve
update delete $host
update add $host $ttl IN A $client_ip
\n
・$nsupdate ADDFILEを実行
図5 クライアント/サーバプログラムの内容

 クライアント側に用意するファイルはclient.plのみです。必要な情報はプログラムへの引数で指定します。サーバ側にはserver.plとhost.keyファイルを用意します。

 host.keyファイルには、あらかじめ登録が予想されるホスト名と一意なキーを空白文字で区切って記述します。ここで指定したキーは、クライ アントとサーバ間での認証に使用されます。認証にはCRYPT暗号を利用し、平文キーを垂れ流さないようにささやかな配慮を実施しています。

 サーバは要求が正当なものであることを確認した後、同じゾーン情報を複数回登録しないように、update前に同じレコードが登録されていないか 否かを確認します。登録されていなければnsupdateを実行します。この際に、同じレコードがなくても、古い情報(以前に割り当てられていたIP)で 登録されていることを考慮し、事前にレコードの削除を行います。ホスト名に対しては、Aレコードを1つに限定しています。

 プログラムの詳細については、ファイル中のコメント行を参照してください。

クライアント/サーバプログラムの実行例

 サーバスクリプトは、マスター・ゾーンサーバに置きます。DNSサーバにとってはlocalhostからnsupdateが実行されることになるため、named.confの指定は次のようになります。

zone "example.jp" {
type master;
file "example.zone";

### update 許可###
allow-update{
localhost; #BIND既定義のACL「localhost」を使用
};
}
named.conf追加分

 named.confの設定を有効にした後、server.plとhost.keyを任意のディレクトリに展開します。2つのファイルは同じディ レクトリに置きますが、何らかの理由でhost.keyファイルを移動せざるを得ない場合は、server.plの10行目にある$key_fileを修 正します。次に、host.keyファイルにDNSへの登録が予想されるホスト名のFQDNと、それに対するキーを記述します。

FQDNホスト名 認証キー
host.keyファイル。FQDNホスト名と認証キーの間は空白文字で区切る

 では、サーバ側スクリプトを実行します。server.plに適切な実行権を設定するか、次のように実行します。

$ perl ./server.pl

 次にクライアント側でスクリプトを実行します。特に準備は必要ありません。先ほどサーバ側で設定したホスト名とキーを使用し、client.plを次のように実行します。

$ perl ./client.pl ホスト名 キー サーバ (port)

 登録がうまくいっているかどうか、digやhostコマンドで確認しましょう。

 実際に使用する場合は、BIND側のupdate-policyを厳しくしたりPREREQ指定を行ってDNS Updateの手続きを複雑にするなど、安全性を考慮した修正を適宜加えてください。

フリーのDynamic DNSサービス

 独自ドメインを所有し、DNSサーバを運用されている方も多いと思いますが、中にはDynamic DNSをキーワードにして検索し、このページを見つけた方もいるでしょう。

 Dynamic DNSの利用にDHCPサーバは必須ではありませんが、DNS Updateに対応したDNSサーバが必要になります。ホームサーバを利用するために、わざわざドメインを取ってDNSサーバを立ち上げるのも面倒です。 そこで、有料/無料で提供されているDynamic DNSサイトを利用します。サイトによっては、持ち込んだドメインでサービスを利用したり、メールサーバはサイトのものが利用できるなどの特典がありま す。

 こうしたサービスではnsupdateなど標準のBINDツールではなく、独自のクライアントソフトやWebインターフェイスが提供されており、登録するレコードのTTL設定値や個数に制限があるため、サービス選択の際は十分に吟味しましょう。

 以上、2回にわたりDynamic DNSについて紹介しました。

 IPアドレスの割り当てがDHCPなど動的な方法が主流になるにつれ、Dynamic DNSの用途は今後も増していくことが予想されます。BINDでは比較的簡単な作業でDynamic DNSが利用できることがお分かりいただけたと思います。

 とはいえ、いきなり運用環境に実装するのではなく、テスト環境を用意して各クライアントやサーバの挙動を確認することをお勧めします。数台のPCで箱庭環境を作ってしまえば、Dynamic DNSのテストに限らず、さまざまな利用方法があるはずです。

2/2

2007/10/24

Study of J2EE Patterns

a good pdf including diagrams of j2ee design pattern

YUI

YUIのv0.11.2を眺めていたら、yahoo.jsにYAHOO.extendが追加されていました。要するに継承の実装なわけですが、 prototype.jsのextend のようなシンプルなコピーではなくて、コンストラクタとメソッドをチェーンでつなぐと。うーん、今、試す時間がない、けど、メモ。
/** * Utility to set up the prototype, constructor and superclass properties to * support an inheritance strategy that can chain constructors and methods. * * @param {Function} subclass the object to modify * @param {Function} superclass the object to inherit */ YAHOO.extend = function(subclass, superclass) { var f = function() {}; f.prototype = superclass.prototype; subclass.prototype = new f(); subclass.prototype.constructor = subclass; subclass.superclass = superclass.prototype; if (superclass.prototype.constructor == Object.prototype.constructor) { superclass.prototype.constructor = superclass; } };
と思ったら、READMEにちゃんと書いてありました。
0.11.0 * Added YAHOO.extend, which provides an easy way to assign the prototype, constructor, and superclass properties inheritance properties. It also prevents the constructor of the superclass from being exectuted twice.
ざっくり訳::0.11.0 * YAHOO.extendを加えました。(YAHOO.extendはプロパティの継承をプロトタイプ、コンストラクタ、およびスーパークラスに割り当てる簡単な方法を提供します)。 それによって、二度スーパークラスのコンストラクタがexectutedされることはありません。
別物ですが、一応、ちなみに、prototype.jsのObject.extend
Object.extend = function(destination, source) { for (var property in source) { destination[property] = source[property]; } return destination; }
ついでに、私が愛用しているコピー関数copyOj。prototype.jsのObject.extendと等価ですがObject汚染しないただの関数です。
function copyOj(oj,aoj) { for(var i in aoj){ oj[i]=aoj[i] };return oj; } //applyを使わないのはfor MacIE


ちなみに、JavaScriptでの継承つながりで、こういうのを作っている方もいます。 クラスパッケージ化ツール CPT

新ORACLE MASTERはRACやLinuxの腕も要る

新ORACLE MASTERはRACやLinuxの腕も要る

加山恵美
2007/10/17

 データベース業界は新バージョンの話題が気になるところですが、資格試験のニュースも続いています。今後リリースされる試験に備え、「学びの秋」とするのもいいかもしれません。

■オラクルの資格試験が次々に提供開始

 9月26日にオラクルは新たな認定資格を発表しました。オラクルの認定資格というとBronzeからPlatinumまである「ORACLE MASTER Oracle Database」を連想してしまいがちですが、今回の発表はそれだけではありません。ORACLE MASTERの認定資格はOracle Databaseからミドルウェアやアプリケーションまで全般的にカバーするように範囲が広がります。

 まずはORACLE MASTERの王道、ORACLE MASTER Oracle Databaseの認定試験について。Oracle Databaseそのものに目を向けると、最新版の製品「11g」が10月23日より国内で提供が開始されるところです。現時点は製品が提供される間近ですが、試験も追って提供が開始となることが分かりました。「ORACLE MASTER Oracle Database 11g」試験は2008年2月から提供開始となる予定です。

 資格体系は現行の10gのものとほぼ同じと考えていいでしょう。BronzeはDBAとSQL基礎の2科目で、SilverとGoldはDBAの 1科目、Platinumは実技試験となる予定です。またそれぞれのレベルについて前のバージョンからの移行試験が用意されます。これらの試験が2008 年2月から順次、提供開始となる予定です。製品の提供開始から3~4カ月で試験が提供開始となるのは、これまでになく早い対応ではないでしょうか。

 これだけではありません。Oracle Database以外の試験も発表になりました。新たな資格として「ORACLE MASTER Expert」が開設されました。こちらは試験範囲にOracle Databaseを含みつつも、ORACLE MASTER Oracle Databaseでカバーされていない領域にも焦点が当たっています。その領域とは昨今では需要の高い専門領域で、具体的にはRAC(Real Application Clusters)の管理やLinuxでの管理に当たります。

 なおExpert資格は原則として1科目合格で認定となりますが、中にはこれに加えて特定のORACLE MASTER Oracle Database資格または対応する研修の受講が必要になる場合があります。先に挙げたRACやLinuxの資格でいうと、例えばRACの方は10g Gold、Linuxの方は10g Silverの取得が必要になるというようにです。詳しくはORACLE MASTERポータルサイトでご確認ください。

ORACLE MASTER Expert新資格

* Oracle Database 10g Real Application Clusters Administrator Certified Expert
(2007年10月31日 提供開始予定)
* Oracle Database 10g Managing Oracle On Linux Certified Expert
(2007年11月末 提供開始予定)

 加えて、これまでオラクルが買収してきた製品の資格試験も始まります。こちらはOracle Applications製品資格となり、対象となる製品はSiebel、PeopleSoft、JD Edwardsです。これ以外のものについても順次提供を企画しているところです。

Oracle Applications製品資格

* 【Siebel】
Siebel 7.7 認定コンサルタント(2007年10月末 提供開始予定)
Siebel 8 認定コンサルタント(2008年2月 提供開始予定)
* 【PeopleSoft】
PeopleTools 認定 Developer(2008年2月 提供開始予定)
PeopleTools 認定 上級Developer(2008年2月 提供開始予定)
* 【JD Edwards】
JD Edwards EnterpriseOne 8.1 認定 会計コンサルタント(2007年12月 提供開始予定)

図 ORACLE MASTER認定資格の詳細
(2007年9月26日のオラクルユニバーシティ戦略説明会の資料より作図)

 それから先月も予告しましたが、11g提供開始に伴い「Oracle Summit 2007」が開催されます。11gの情報を入手するには絶好の機会となるでしょう。

* Oracle Summit 2007 - Oracle Database 11g Launch
2007年10月23日(東京・グランドプリンス赤坂)
2007年10月25日(大阪・ウェスティンホテル大阪)

オブジェクト指向データベース「Cache」

オブジェクト指向データベース「Cache」

<< 作成日時 : 2005/05/16 22:56 >>

トラックバック 0 / コメント 1 「データベース新たな選択肢」を読む。Cacheは、eの頭に’が付くらしいがユニコードなので削る。RDBも重要なDB技術だが、オブジェクト指向開発にRDBは、どうも前から違和感があった。せっかくまとまって意味のあるデータを正規化と言ってバラバラにしてまた、実行時に苦労してくっつける。
 

「データベース新たな選択肢」
 直に読める本この本を読んでCacheについて調べる気になった。
「オブジェクトデータベースCache入門 」
 本屋で探してみようと思う。

THINK
 以前にあったOODB は、RDBを無視したために失敗というか受入れられなっかた。Cacheは、RDBとして使うこともできOODBとしてももつかえる。実際に医療関連のシステムに沢山使われてうる。是非CacheもDB2の様に開発版を1980円くらいで提供して欲しい。
 
追加情報
 CacheとObjectStore、脱RDBMSの真価を探る
 http://www.atmarkit.co.jp/fdb/rensai/oodbrevive01/oodbrevive01_1.html

 個性派DB「Cache」、RDBの牙城を崩せるか
 http://www.atmarkit.co.jp/fxml/tanpatsu/35oodb/oodb01.html

 インターシステムズ
 http://www.intersystems.co.jp/

 intersystems社 cache
 http://www.intersystems.com/cache/index.html

Ajaxを超える高速クライアント開発も実現 Cacheの最新版は開発効率をさらに向上

Ajaxを超える高速クライアント開発も実現
Cacheの最新版は開発効率をさらに向上

2006/11/16

 インターシステムズジャパンは11月16日、同社のデータベース「Cache」(キャシエ)の最新版「Cache 2007」を12月にリリースすると発表した。

 Cacheは米インターシステムズの売り上げの約90%を占める主力製品。高性能で開発効率の高いオブジェクト指向データベースとして、医療業界などでの採用が進んでいる。

 Cache 2007は、主な新機能としてユーザー・インターフェイス開発技術の「Zen」、そしてオブジェクト/リレーショナルのマッピングを自動化する「Jalapeno」を搭載する。
米インターシステムズの戦略立案担当副社長 ポール・グラブシャイ氏

 「ZenはAjaxのコンセプトをCacheに実装したもの」と米インターシステムズの戦略立案担当副社長 ポール・グラブシャイ氏は説明した。Zenでは、一般的なAjaxと同様、ページ定義にXMLを用いたJavaScriptによるWebブラウザベースのユーザー・アプリケーションを開発する。だが、付属のコンポーネントライブラリを用い、XMLによるページ定義と合わせてコンパイルすることで、高速な実行が可能になる。

 Zenではオブジェクトをサーバとクライアントで共有することができる。また、テキスト部分だけをユーザー・アプリケーションから切り分けて管理できるため、単一のアプリケーションに対して容易に多国語版を提供することが可能になる。

 JalapenoはJavaオプジェクトとデータベースの接続における新方法。両者の接続を自動化する方法としてHibernateなどのO/Rマッピングツールが提供されているが、これではXML定義ファイルをメンテナンスするなどの手間から解放されない。これに対しCacheはO/Rマッピングという作業自体を不要にし、オブジェクトデータベースとしてのCacheへの直接アクセスを実現することで、この手間を削減した。とはいえCache側でクラス定義を作成してからJavaのプロキシクラスを生成するという作業が必要とされていた。そこでJalapenoでは、Cache側のクラス定義を自動化し、開発者がJavaアプリ開発に専念できるようにしたという。

システム運用管理者よ起て!

【特集】システム運用管理者よ起て!

ITインフラの運用管理を行う中でシステム管理者の業務はサービス化しつつあるが、その状況下でもノウハウを蓄積し、組織に還元し、自らの評価につなげるため「システムアナリスト」としてステップアップする道を探ろう。

すべて表示

新着記事

関連記事

関連特集


新着記事

icon
初心者歓迎! ITIL連載講座:

リリース管理の役割――ITプロセスを円滑に回すために

今回は「リリース管理」を紹介する。「リリース管理」に関連登場する重要な3文字アクロニム(頭字語)には「DSL」と「DHS」がある。ITILの書籍を読むとDSLについてのみ書かれている場合が多いが、DHSも重要な考え方である。 (2007/10/18)


icon
運用管理・きっと役立つTips集――JP1編

同じイベントの自動アクションを制限するには?

知っているようで知らないことも多い運用管理ツール。「こうしたいけどよく分からない」を解決する、日々の仕事に役立つ小技を紹介する。 (2007/10/17)


icon
温故知新コラム:

「Windows3.1をすべてのPCに」――ウィンテル連合の予兆は“3本の矢”

世の中に登場して半世紀しか経たないコンピュータにも、歴史が動いた「瞬間」はいくつも挙げることができる。ここに紹介する「ビジュアル」もまさしくそのひとコマ――。 (2007/10/11)


icon
女性システム管理者の憂鬱:

成果主義の悪夢? 部下の運命を左右する上司の「ひと言」

上司が部下の業績を正しく評価(レビュー)して初めて成り立つ成果主義。だが、この評価の仕組みを理解せずにおきて破りの行動に出る上司もいるのだ。 (2007/10/11)


icon
システム管理者のココロの栄養素:

人事担当全員カウンセラー? 心の「危険信号」をいち早くつかむ

IT企業におけるメンタルヘルスへの関心は日増しに高まっている。それに呼応して、社員の健康を管理する人事・労務担当者自身がカウンセラー資格を取得しようと試みる企業もある。その取り組みを追った。 (2007/9/21)


icon
突撃!隣の情報システム:

携帯電話から文化を創出したい――ケータイ恋愛ゲームの舞台ウラ

携帯電話で提供される女性向け恋愛ゲーム。その舞台ウラでも、しっかりとITが仕事をしている。 (2007/9/4)


icon
ID管理をスッキリさせるIAMのお役立ち度:

“フェデレーション”が企業間連携の今後を変える

厳密なIDアクセス管理には、アクセス制御・認証・監査ログを集中管理する統合認証基盤が求められている。ここでは、実際に提供されているWebアクセス管理ツールを例に、統合認証基盤の機能を解説しよう。 (2007/8/31)


icon
システム管理の“ここがヘンだよ”:

分散運用管理の落とし穴――PCオタクに任せて安全なのか?

全国にサテライトオフィスを持つ大阪のB社では、PCに詳しい人を配置して運用していた。だが、この運用管理体制では問題が噴出。やはり、PC好きに「任せっぱなし」がいけなかったのか。 (2007/8/24)


icon
シスマネ必携! 運用管理ルールブック:

将来性を常に意識せよ!

上手なIT運用管理のノウハウは、豊富な運用実績と的確な情報蓄積、見直しを繰り返してきたプロに聞くのが一番。ITアウトソーシング事業者は、そのノウハウ集の中で、ユーザー側と運用側との明確な職責分離を行うべきだと記している。 (2007/8/16)


icon
これがなければ始まらない? ISO27001取得への道:

審査員が明かす、ISMSを定着させる必須ポイント

セキュリティマネジメントを実現する具体的な方法をイメージできるだろうか? ここでは、ISO27001を取得するための重要なポイント、PDCAサイクルに必要な要素をISO27001の審査員がアドバイスする。 (2007/8/2)


icon
運用管理の過去・現在・未来:

トラブル対応の出張を減らせるか? チェーンストアシステム構築物語

中村さん(仮名)は、中堅のレストランチェーンP社の情報システム管理者である。以前はトラブルが発生するたびに全国を飛び回る毎日だったが、新しいシステムを導入して、その状況は改善されたのだろうか。 (2007/7/30)


news005.jpg
古いWindows OSのセキュリティ対策:

Windows 98やMeをこのまま使い続けるべきではない理由

Windows 98やMeのサポートが終了して1年。今後はセキュリティ更新プログラムの入手が困難になり、結果として手元のPCを大きな危険にさらす可能性が高まる。 (2007/7/10)


関連記事

意識は向上するも「対策漏れ」が目立つWebサイトのセキュリティ

NRIセキュアテクノロジーズのWebサイト診断サービスの結果によると、致命的な脆弱性にまったく対処していないサイトは減ったが、サイトの複雑化に伴い「対策漏れ」が多くなっているという。 (2007/06/19)


news068.jpg

セキュリティツールは統合化の時代へ――ユーザー獲得でベンダー競争が激化

6月4日の週には、Microsoft、Symantec、McAfeeといった大手ベンダーが、そろってセキュリティ統合に関する発表を行った。今後、セキュリティツールのオープンAPI統合などが考えられていくのだろうか。 (2007/06/15)


news014.jpg

セキュリティ対策にも広がる「格差社会」、どう埋める?

人間の心理をついた攻撃など、日々巧妙化するマルウェアにどう対抗すればよいのか。マルウェアの最新動向やサイバークリーンセンターの活動から、今やるべきセキュリティ対策を探る。 (2007/06/15)


news004.jpg

内部統制に悩むシステム管理者を支援――JP1 V8.1

 最新の運用管理ツールJP1 V8.1では、内部統制に対応するための機能が重点的に強化され、悩めるシステム管理者を支援するという。 (2007/06/07)


「内部統制難民を救え」、アシストが整備 運用評価支援ソフトを販売

アシストは内部統制に係る評価や承認プロセスを可視化するアプリケーションパッケージ製品を発売した。 (2007/06/08)


news010.jpg

セキュリティ管理の啓蒙、まず社長さんと役員から?

企業の情報セキュリティに対する意識は社長や役員の方が低い。また、セキュリティ管理を強化するためにペーパー(紙媒体)への回帰が見直されている――。ガートナーのレポートからこんな実態が浮き彫りになった。 (2007/06/08)


news005.jpg

最悪の「データロスト」を避けるには

稼働中のデータセンターが災害で完全停止に追い込まれたら、同じ場所にあるバックアップデータも無事ではすまないかもしれない。それなら、安価なネットワークを使って遠隔サイトにデータを複製しておけばいい。 (2007/05/28)


データセンター管理者にとっての新たなチャレンジは複雑性――Symantecの調査

データセンター管理者にとって最大の障壁となるのが複雑化するシステムをいかに管理するかという現実的な問題だった。 (2007/05/28)


SOX監査基準が改訂へ――IT部門の苦労が軽減する見込み

米国で監査基準を緩和する新たなガイドラインが策定された。このガイドラインは企業のIT部門を救うのだろうか。 (2007/05/28)


news044.gif

一生懸命はいいからキチンとやってくれ!――ITに“使われないように”

ついに6億円が? 購入者が集中したBIGは購買システムのダウンによって大騒動となった。このほか、日本のIT投資マインドへの衝撃的な宣告……など、オルタナブロガーがあらゆる角度から意見するのが、オルタナティブ・ブログである。 (2007/05/25)


news114.jpg

インテル、企業PCの最新技術を公開するエンタープライズ・ショールームを開設

インテルはビジネスPCの管理ソリューションを紹介するエンタープライズショールームを開設した。メーカーやユーザー企業のIT管理者など業界関係者に幅広く公開する。 (2007/05/24)


news076.jpg

「報告のための報告」が飛び交う組織の実態

業務の報告が「形式主義」に陥ると「報告のための報告」が生まれる。多くのスタッフが無駄な時間をとられ、疲弊していくのを防ぐ基本は「現認主義」の考え方だ。 (2007/05/23)


news004.jpg

24時間稼働のために――サーバ管理者が知っておくべき自動復帰ノウハウ

24時間コンソールの前に張りつくなど勘弁だ。サーバ管理者が知っておくべきhttpのモニタリングと、自動復帰のためのノウハウを紹介しよう。 (2007/05/23)


うかつな個人情報提供はなりすまし被害を招く――Symantec

買い物の際に郵便番号を教えたり、ネットショッピングでアカウントを作成すると、セキュアでないデータベースから情報が流出する恐れがあるという。 (2007/05/22)


関連特集

IT'S A WONDERFUL LIFE

素晴らしき哉、システム管理者という人生!

人生はとにもかくにも美しいものだ――それはシステム管理者にとっても変わることのないものだ。システム管理者を職業として選んだ人たちは、どのような思いを抱き、生活を送っているのか?


ITIL、セキュリティ、問題山積みの今だからこそ見直したい

運用管理ツールで何ができるのか

もともとオープンシステム上でのジョブ管理などが原点であった運用管理ツールだが、ビジネスにおいてITシステムが普及するに従って、要求される役 割も増えてきた。ITコストの大半を占めるといわれる維持/運用コストの軽減、ITILへの取り組み、そして法整備によって重要性を増したセキュリティ管 理など、運用管理ツールが現在果たすべき役割について考えてみよう。


運用管理のベストプラクティス集「ITIL」とは何か?

運用漬けから抜け出せ!攻めのシステム運用管理

「ITIL」という言葉が知られるようになった。システムの運用管理を見直すには格好のフレームワークといえる。ITILの内容を見ていく前に、まずはITILの持つ意義を知っておく必要がある。

Nintendo DS(Lite)でオープンソース系ソフトウェアを使用する

2007/10/23

宿泊所 さんや NHK 特集

http://ja.wikipedia.org/wiki/%E5%B1%B1%E8%B0%B7_(%E6%9D%B1%E4%BA%AC%E9%83%BD)
さんや
えびすや
ホテルヒカリ
ほていや

2007/10/22

zdnet japan business intellegence column

加速するビジネスインテリジェンス--その背景と市場の今
「ビジネスインテリジェンス(BI)」という言葉が、ITの世界で、改めて注目を集めている。ユーザーの関心の高まりはもちろん、オラクル、マイクロソフト、SAPといった市場のメジャープレイヤーたちも、BI周辺での...

2007/10/19 20:06 【インタビュー】
個人知性と組織知性(新着ブログより)
組織力といえばサッカー、日本サッカーといえば 「決定力不足」 。以前、日本の有力なサッカープレーヤーの多くがミッドフィルダー なのは、テレビアニメの影響だなんて聞いたことがあります。

2007/10/03 19:48 【インタビュー】 「プレッシャーはイノベーションの邪魔」--SAS幹部が語る株式公開しない理由
SAS Instituteは、米国ノースキャロライナの本社にて世界各国の報道関係者を集めたメディア向けセッションを開催し、同社のビジネスについて説明する機会を設けた。

2007/10/04 10:30 【インタビュー】 業界特化型ソリューションを強化するSAS、3業界に向けた新ソリューションを発表
業界特化型ソリューションを強化するSAS Instituteは、小売業・保険業・通信業という3つの業界に向けた新しいBIソリューションを発表した。

2007/10/05 04:23 【インタビュー】 企業買収の予定は「ある」、買収に応じる予定は「200億ドルなら考える」--SAS社長
創業以来30年間増収増益を続けるSAS Instituteの社長兼CEOのJim Goodnight氏に、企業買収戦略を含めた同社の方針を聞いた。

2007/10/05 16:23 【インタビュー】 Teradata Partners開幕--SASとの協業や新製品発表で分社化に花を添えたテラデータ
Teradataが開催している「2007 Teradata Partners Confarence & Expo」の実質的な初日となる10月8日、基調講演に社長兼CEO、Michael F. Koehler氏が登場。同社の現状と新たな戦略について紹介した。

2007/10/09 17:20 【インタビュー】 考えたことを行動にうつせる選択肢を提供する--テラデータCEOが語る日本市場
Teradataが開催している「2007 Teradata Partners Confarence & Expo」の会場で、Teradataの社長兼CEOであるMichael F. Koehler氏に同社の現状や今後の戦略、日本市場の展開などについて話しを聞いた。

2007/10/11 21:14 【インタビュー】 Teradata導入でセルフサービスの分析環境を実現--株価を5倍にしたマクドナルド
Teradataが開催している「2007 Teradata Partners Confarence & Expo」にMcDonald's CorporationのFritz Hurst氏が登場。McDonald'sが実施したTeradataによるグローバルなビジネス測定について紹介した。

2007/10/11 22:54 【インタビュー】 加速するビジネスインテリジェンス--その背景と市場の今
「ビジネスインテリジェンス(BI)」という言葉が、ITの世界で、改めて注目を集めている。ユーザーの関心の高まりはもちろん、オラクル、マイクロソフト、SAPといった市場のメジャープレイヤーたちも、BI周辺での...

2007/10/19 20:06 【インタビュー】 PerformancePoint Server特設ページ Special Contents【第1回】社員の知恵を結集し、パフォーマンス マネジメントを実現す るMicrosoft の PerformancePoint Server
変化が激しく、膨大な情報が流れる現代社会において、企業はどのような情報インフラを持つべきか。マイクロソフトでは、パフォーマンス マネジメントの観点から、企業内のインフォメーションワーカーに対するさまざまなプロダクトを提供している。…

2007/10/01
【第1回】社員の知恵を結集し、パフォーマンス マネジメントを実現す るMicrosoft の PerformancePoint Server
変化が激しく、膨大な情報が流れる現代社会において、企業はどのような情報インフラを持つべきか。マイクロソフトでは、パフォーマンス マネジメントの観点から、企業内のインフォメーションワーカーに対するさまざまなプロダクトを提供している。…

2007/10/01
SAS、中堅・中小企業向けパッケージを提供開始
SAS Institute Japanは、SMB市場に向けたBIプラットフォームパッケージ群の出荷を開始した。

2007/10/12 13:17 【ソフトウェア】
SAS、RDBMSとSASの分析ソリューションを連携させる新構想を発表
SAS Instituteは、主要なリレーショナルデータベース管理システムとSASのデータ統合、アナリティクスおよびソリューションをダイレクトに統合する構想を発表した。

2007/10/09 23:32 【企業情報】
MSがBIツール新製品「PerformancePoint」発表--全社規模での統合業績管理を実現
マイクロソフトは9月18日、統合パフォーマンスマネジメントアプリケーション「Microsoft Office PerformancePoint Server 2007日本語版」を、11月上旬より提供開始すると発表した。日本での価格は現時点で未定。

2007/09/19 15:25 【ソフトウェア】
レポーティングのテンプレート地獄から解放?:MicroStrategyのBIプラットフォーム
米MicroStrategyは1989年に設立された、ビジネス・インテリジェンス・プラットフォームを提供する企業だ。国内でも2003年よりビジネスを展開している。今回、同社Worldwide Sales and OperationsバイスプレジデントのPaul Zolfaghari氏の来日に併せ、同社について聞くことができた。

2007/08/09 21:17 【ソフトウェア】
ホワイトペーパー BI 講座~基礎問題集~第1回「概要入門編」!
提供:テクノブレーン Microsoft Business Intelligence の完成
提供:マイクロソフト 【導入事例】 LogiSTAR 動態管理システム生コンクリート製造・販売 野方菱光 株式会社 様迅速かつ正確な受注対応が可

deal with japanese utf-8 encoding

deal with japanese utf-8 encoding

a japanese prototype page

* (1) - Prototypeオブジェクト
* (2) - Classオブジェクト
* (3) - Abstractオブジェクト
* (4) - Object.extendメソッド
* (5) - Objectオブジェクト その他の拡張メソッド
* (6) - Functionクラス bind、bindAsEventListenerメソッド
* (7) - Numberクラス toColorPart、succ、timesメソッド
* (8) - Tryオブジェクト
* (9) - PeriodicalExecuterクラス
* (10) - Stringクラス gsub、sub、scanメソッド
* (11) - Stringクラス truncate、strip、stripTagsメソッド
* (12) - Stringクラス stripScripts、extractScripts、evalScriptsメソッド
* (13) - Stringクラス escapeHTML、unescapeHTMLメソッド
* (14) - Stringクラス toQueryParams、toArray、succメソッド
* (15) - Stringクラス camelize、capitalize、underscore、dasherizeメソッド
* (16) - Stringクラス inspectメソッド、その他のメソッド
* (17) - Templateクラス
* (18) - $break、$continue、Enumerableオブジェクト eachメソッド
* (19) - Enumerableオブジェクト eachSlice、all、anyメソッド
* (20) - Enumerableオブジェクト collect、detect、findAllメソッド
* (21) - Enumerableオブジェクト grep、include、inGroupsOfメソッド
* (22) - Enumerableオブジェクト inject、invoke、max、minメソッド
* (23) - Enumerableオブジェクト partition、pluck、rejectメソッド
* (24) - Enumerableオブジェクト sortBy、toArray、zip、sizeメソッド
* (25) - Enumerableオブジェクト inspectメソッド、その他の別名メソッド
* (26) - $A関数、Array.fromメソッド
* (27) - Arrayクラス _reverse、_eachメソッド
* (28) - Arrayクラス clear、first、last、compactメソッド
* (29) - Arrayクラス flatten、without、indexOfメソッド
* (30) - Arrayクラス reverse、reduce、uniqメソッド
* (31) - Arrayクラス clone、size、inspect、toArrayメソッド
* (32) - $w関数
* (33) - Operaブラウザに対するArrayクラス書き換え
* (34) - Hashクラス コンストラクタ、Hash.toQueryStringメソッド
* (35) - Hashクラス _eachメソッド
* (36) - Hashクラス keys、values、mergeメソッド
* (37) - Hashクラス remove、toQueryString、inspectメソッド
* (38) - $H関数
* (39) - ObjectRangeクラス、$R関数
* (40) - Ajaxオブジェクト
* (41) - Ajax.Respondersオブジェクト
* (42) - Ajax.Baseクラス
* (43) - Ajax.Requestクラス コンストラクタ、requestメソッド
* (44) - Ajax.Requestクラス onStateChange、setRequestHeadersメソッド
* (45) - Ajax.Requestクラス success、respondToReadyStateメソッド
* (46) - Ajax.Requestクラス getHeader、evalJSONメソッド
* (47) - Ajax.Requestクラス evalResponse、dispatchExceptionメソッド
* (48) - Ajax.Updaterクラス
* (49) - Ajax.PeriodicalUpdaterクラス
* (50) - $関数
* (51) - document.getElementsByClassNameメソッド
* (52) - Element.extendメソッド
* (53) - Element拡張 visible、toggle、hide、showメソッド
* (54) - Element拡張 remove、update、replaceメソッド
* (55) - Element拡張 inspect、recursivelyCollectメソッド
* (56) - Element拡張 ancestors、descendants、immediateDescendantsメソッド
* (57) - Element拡張 previousSiblings、nextSiblings、siblingsメソッド
* (58) - Element拡張 match、up、down、previous、nextメソッド
* (59) - Element拡張 getElementsBySelector、getElementsByClassNameメソッド
* (60) - Element拡張 readAttribute、getHeight、getWidthメソッド
* (61) - Element拡張 classNames、hasClassNameメソッド
* (62) - Element拡張 addClassName、removeClassName、toggleClassNameメソッド
* (63) - Element拡張 observe、stopObserving、cleanWhitespaceメソッド
* (64) - Element拡張 empty、descendantOf、scrollToメソッド
* (65) - Element拡張 getStyle、setStyleメソッド
* (66) - Element拡張 getDimensions、makePositioned、undoPositionedメソッド
* (67) - Element拡張 makeClipping、undoClipping、childOfメソッド
* (68) - Element._attributeTranslationsオブジェクト
* (69) - Element拡張 hasAttributeメソッド
* (70) - Internet Explorerに対するElement拡張書き換え
* (71) - Element.addMethodsメソッド
* (72) - Toggleオブジェクト
* (73) - Abstract.Insertion抽象クラス
* (74) - Insertion.Before、Insertion.Topクラス
* (75) - Insertion.Bottom、Insertion.Afterクラス
* (76) - Element.ClassNamesクラス
* (77) - Selectorクラス コンストラクタ、parseExpressionメソッド
* (78) - Selectorクラス buildMatchExpression、compileMatcherメソッド
* (79) - Selectorクラス findElements、toStringメソッド

2007/10/19

JavaScript Tips

Position Object
http://d.hatena.ne.jp/susie-t/20060927/1159331061

2007/10/18

PostgreSQL dblink

EnterpriseDB extends the postgresql with dblink function.
While there is another method to extend it.

PostgreSQLで他のPostgreSQLデータベースのデータにアクセスするには、contribで提供されているdblinkを利用します。
これの利用方法についての簡単なメモです。
ここに登場していない関数や説明もありますが、それは今後完全版をDatabase tearoomの方に書きたいと思っています。

● 環境構築
UNIXやLinuxでは、ソースからコンパイルし、インストールします。(rpmなどのパッケージでインストールしている場合はcontribのパッケージをインストールして、dblink.sqlを実行すればいいんだと思う。たぶん…^^;)
dblinkのソースのディレクトリ(ex. /usr/local/src/postgresql-?.?.?/contrib/dblink)で実施
# make
# make install
$ psql -U postgres -d {DBNAME} < dblink.sql
※ 適切なOSユーザーで実施してください(丁寧な説明でなくてスマン^^;)。
※ {DBNAME}はdblinkを利用したいデータベース名。これをtemplate1とすることで今後作成するデータベースで利用できるようになる。

Windowsでは、インストーラを利用してインストールした場合、dblink.sqlを実行するだけでOKです。
このファイルはPostgreSQLをインストールしたフォルダの下のshare\contribにあります。
C:\Program Files\PostgreSQL\8.1> bin\psql -U postgres -d {DBNAME} < share\contrib\dblink.sql
※ {DBNAME}はdblinkを利用したいデータベース名。これをtemplate1とすることで今後作成するデータベースで利用できるようになる。

● 使用方法
"[" と "]" で括られている接続識別名は省略可能です。ただし接続識別名を接続時に指定した場合は常に必要です。※ "[" および "]" は記述不要。

* アクセスしたいテーブルなどがあるデータベースに接続
select dblink_connect(['{接続識別名}', ]'{接続文字列}');
※ {接続文字列}にはlibpqのPQconnectdb関数で利用するキーワードを記述します。
参照.) PostgreSQLマニュアル - libpq - Cライブラリ - データベース接続制御関数
ex.)
select dblink_connect('conn1',
'host=dbsv port=5432 dbname=mydb user=scott password=tiger');
* 検索(SELECT)
select *
from dblink(['{接続識別名}', ]
'select {列名}[, {列名}...]
from {オブジェクト名}')
t1({列名} {データ型}[, {列名} {データ型}...]);
ex.)
select *
from dblink('conn1',
'select oid, relname
from pg_class')
t1(oid oid, relname text);
* 更新(UPDATE/INSERT/DELETE)
select dblink_exec(['{接続識別名}', ]{DML文}[, fail_on_error]);
ex.)
select dblink_exec('conn1',
'delete from emp where empno=7800');
* データベースから切断
select dblink_disconnect(['{接続識別名}']); ex.)
select dblink_disconnect('conn1');

mysql charset

mysql -u ... --default-character-set=utf8
mysql -u ... --default-character-set=sjis
mysql -u ... --default-character-set=gb2312
set names 'utf8';

2007/10/14

mapserver

Orkney MapServer
http://www.orkney.co.jp/product/mapserver.html

Asial MapServer
http://www.asial.co.jp/mapserver/products.php

草加市暮らしのインフォメーション
http://orkney.jp/soukacity/

2007/10/11

a small map system (GIS) provider

rebulid rpm db when error

I got a error when using yum

error: db4 error(-30977) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery

So I issued the flowing command to correct it.

rm -f /var/lib/rpm/__db*
db_verify /var/lib/rpm/Packages
rpm --rebuilddb


http://www.linuxforums.org/forum/redhat-fedora-linux-help/37164-corrupt-rpm-database.html

This may be a little late but your problem may be as a result of les (Linux Environment Security) which is designed for RedHat/rpm-based distributions to prevent even root from changing settings.

Check out R-fx Networks LES page
Try the following:

Code:

[root@control ~]# les -da

2007/10/10

Linux Network Configuration

/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=172.16.20.255
HWADDR=00:13:72:F8:05:E6
IPADDR=172.16.20...
NETMASK=255.255.255.0
NETWORK=172.16.20.0
ONBOOT=yes
TYPE=Ethernet

/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=...
GATEWAY=172.16.20.254

Java Code Example: Using PLSQL Ref Cursors with JDBC


// -----------------------------------------------------------------------------
// RefCursorExample.java
// -----------------------------------------------------------------------------

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Types;
import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import oracle.jdbc.driver.OracleCallableStatement;
import oracle.jdbc.driver.OracleTypes;
import oracle.jdbc.driver.OracleResultSet;


/**
* -----------------------------------------------------------------------------
* This class provides an example on the use of REF Cursors to execute SQL from
* a JDBC program, simulating dynamic SQL.
*
* ===================
* DYNAMIC SQL IN JAVA
* ===================
*
* JDBC provides APIs for executing Dynamic SQL using PreparedStatement.
* For example:
*
* PreparedStatement pstmt;
* pstmt=conn.prepareStatement("SELECT name FROM dept WHERE deptno > ?");
* pstmt.setInt(1,104);
* ResultSet c1;
* c1=pstmt.executeQuery();
* pstmt.setInt(1,10)
* while (c1.next ()) {System.out.println (c1.getInt(1));}
*
*
* ==========
* REF CURSOR
* ==========
*
* Another option of executing dynamic SQL from JDBC is provided in this
* example. Keep in mind that this example will only work with Oracle8i and
* higher. In this case, the procedure uses a PL/SQL procedure which returns
* a REF CURSOR.
*
* A REF CURSOR is similar a pointer in the C programming language. It points
* to rows retrieved from the database using a PL/SQL cursor. The example I
* provide in this class uses a REF CURSOR to point to the result set
* returned by a SELECT statement that retrieves rows from the DEPT table
* using a PL/SQL cursor.
*
* In this example, I call a PL/SQL procedure named "get_dept_ref_cursor" which
* returns a variable of type "t_ref_cursor".
*
* Stored procedures can return user-defined types, or cursor variables, of the
* REF CURSOR category. This output is equivalent to a database cursor or a
* JDBC result set. A REF CURSOR essentially encapsulates the results of a
* query.
*
* Advantages of using a REF CURSOR are:
*
* 1.) Code Reusability
*
* The same package procedure could be used for other Java and non-Java
* applications.
*
* 2.) Load Balancing.
*
*
* =============================
* OracleCallableStatement CLASS
* =============================
*
* You will notice that in this example, I use an OracleCallableStatement class
* in place of our typical CallableStatement class. This class defines a method
* named getCursor() that enables you to read Oracle cursors.
*
*
* =================
* OracleTypes CLASS
* =================
*
* You will also notice the oracle.jdbc.driver.OracleTypes is also used
* when registering the OutParameter. This class defines those special TYPEs
* offered by the Oracle database. This class is similar to java.sql.Types.
*
*
* ===========================================================
* NOT USING OracleCallableStatement and OracleResultSet CLASS
* ===========================================================
*
* Note that you are not required to use the OracleCallableStatement and
* OracleResultSet classes; you could use the regular CallableStatement
* and ResultSet classes found in java.sql. However, you will need to
* use the getObject() method to read the Oracle cursor. An example of this is
* provided in this example with the performRefCursor2() method.
*
*
* -----------------------------------------------------------------------------
*
* NOTE: Opening a REF CURSOR for a statement present in a variable is only
* supported with Oracle8i and higher.
*
* NOTE: In order to successfully use this class, you will need to run the
* create_all_ddl.sql file included in the same section this example class
* is located.
*
* -----------------------------------------------------------------------------
*/

public class RefCursorExample {

final static String driverClass = "oracle.jdbc.driver.OracleDriver";
final static String connectionURL = "jdbc:oracle:thin:@localhost:1521:CUSTDB";
final static String userID = "scott";
final static String userPassword = "tiger";
Connection con = null;


/**
* Construct a RefCursorExample object. This constructor will create an Oracle
* database connection.
*/
public RefCursorExample() {

try {

System.out.print(" Loading JDBC Driver -> " + driverClass + "\n");
Class.forName(driverClass).newInstance();

System.out.print(" Connecting to -> " + connectionURL + "\n");
this.con = DriverManager.getConnection(connectionURL, userID, userPassword);
System.out.print(" Connected as -> " + userID + "\n\n");

} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}

}


/**
* This method is used to return a REF CURSOR that will be used to retrieve
* data from a result set. This REF CUSROR is retrieved by the JDBC program
* into a ResultSet.
*
* This method Uses the OracleCallableStatement and OracleResultSet classes.
*/
public void performRefCursor() {

OracleCallableStatement oraCallStmt = null;
OracleResultSet deptResultSet = null;

System.out.println("Using OracleCallableStatement / OracleResultSet");
System.out.println("-----------------------------------------------");

try {

oraCallStmt = (OracleCallableStatement) con.prepareCall(
"{? = call ref_cursor_package.get_dept_ref_cursor(?)}"
);
oraCallStmt.registerOutParameter(1, OracleTypes.CURSOR);
oraCallStmt.setInt(2, 104);
oraCallStmt.execute();

deptResultSet = (OracleResultSet) oraCallStmt.getCursor(1);

while (deptResultSet.next()) {
System.out.println(
" - " +
deptResultSet.getString(2) + " (" + deptResultSet.getInt(1) + "), " +
deptResultSet.getString(3)
);
}
System.out.println();

oraCallStmt.close();

} catch (SQLException e) {

e.printStackTrace();

}

}


/**
* This method is used to return a REF CURSOR that will be used to retrieve
* data from a result set. This REF CUSROR is retrieved by the JDBC program
* into a ResultSet.
*
* This method Uses the the regular CallableStatement and ResultSet classes.
*/
public void performRefCursor2() {

CallableStatement cstmt = null;
ResultSet rset = null;

System.out.println("Using CallableStatement / ResultSet");
System.out.println("-----------------------------------");

try {

cstmt = con.prepareCall(
"{? = call ref_cursor_package.get_dept_ref_cursor(?)}"
);
cstmt.registerOutParameter(1, OracleTypes.CURSOR);
cstmt.setInt(2, 104);
cstmt.execute();

rset = (ResultSet) cstmt.getObject(1);

while (rset.next()) {
System.out.println(
" - " +
rset.getString(2) + " (" + rset.getInt(1) + "), " +
rset.getString(3)
);
}
System.out.println();

cstmt.close();

} catch (SQLException e) {

e.printStackTrace();

}

}


/**
* Close down Oracle connection.
*/
public void closeConnection() {

try {
System.out.print(" Closing Connection...\n");
con.close();

} catch (SQLException e) {

e.printStackTrace();

}

}


/**
* Sole entry point to the class and application.
* @param args Array of String arguments.
* @exception java.lang.InterruptedException
* Thrown from the Thread class.
*/
public static void main(String[] args)
throws java.lang.InterruptedException {

RefCursorExample mainPrg = new RefCursorExample();
mainPrg.performRefCursor();
mainPrg.performRefCursor2();
mainPrg.closeConnection();

}

}

Open Source JDBC Proxy Drivers


JDBC drivers that are act as proxies for other JDBC drivers is quite an interesting design pattern (i.e. Decorator). It has many elements of an AOP interception based strategy albeit against a ubiquitious and standardized interface. Here's a list of open source projects that have exploited this design pattern. It'll be an interesting exercise to re-implement many of this into reusable aspects.




  1. P6Spy - P6Spy is an open source framework for applications to intercept and optionally modify database statements. The P6Spy distribution includes P6Log, which intercepts and logs the database statements of any application that uses JDBC. This application is particularly useful for developers to monitor the SQL statements produced by EJB servers, enabling the developer to write code that achieves maximum efficiency on the server. P6Spy is designed to be installed in minutes and requires no code changes.


  2. C-JDBC - C-JDBC provides a flexible architecture that allows you to achieve scalability, high availability and failover with your database tiers. C-JDBC instantiates the concept of RAIDb : Redundant Array of Inexpensive Databases. The database is distributed and replicated among several nodes and C-JDBC load balance the queries between these nodes. C-JDBC allows to build any cluster configuration including mixing heterogeneous databases. The main features provided by C-JDBC are performance scalability, fault tolerance and high availability. Additional features such as monitoring, logging, SQL requests caching can be provided as well. The architecture is widely open to allow anyone to plug custom requests schedulers, load balancers, connection managers, caching policies, etc.



  3. SSL-SQL-Proxy Server - The goal was to develop a server, that works as a proxy server, to forward SQL-Queries using SSL. The server was supposed to be mostly platform independent, and after some considerations, Java was the language of choice. The proxy-server accepts SSL-secured connections over TCP/IP, and reads the request using a specified protocol. Then the proxy-server uses a JDBC-Driver to connect to the database and forward the query, getting the result and transfer the result back to the client via SSL.


  4. Virtual JDBC - VJDBC is a vendor-agnostic type 3 JDBC-Driver with which you can remotely access every JDBC-Database in an efficient manner. Due to its command-oriented design different networking protocols can be supported quite easily. There is a similar open source project called RmiJdbc. The main difference between VJDBC and RmiJdbc is that RmiJdbc exposes the complete interface of the JDBC-Objects via RMI, so every call on an JDBC-Object will go over the network. VJDBC uses a different approach with command objects and a very thin remote interface.


  5. Proxool - Transparently adds connection pooling to your existing JDBC driver. You can monitor the performance of your database connections and listen to connection events.




  6. LDBC - LDBC (Liberty DataBase Connectivity) is a JDBC driver that provides vendor-independent database access. With LDBC, your application will just work on all major databases and you don't have to change any source code. LDBC is based on ANSI-SQL and JDBC. LDBC radically simplifies porting of existing or new applications to new databases. The main components of LDBC are a JDBC driver and a SQL grammar converter. LDBC completely shields the application from database vendor specific code. Included SQL grammar and JDBC API documentation.


  7. HA-JDBC - High-Availability JDBC. HA-JDBC is a JDBC driver implementation that provides light-weight, transparent clustering capability to groups of homogeneous JDBC-accessed databases. In contrast with the C-JDBC project, HA-JDBC does not limit the functionality of the underlying JDBC drivers and supports many JDBC 3.0 features.


  8. PFJDBC - A wrapper over any JDBC driver, it corrects some of the common mistakes the programmers do during the development process and also provides SQL execution timing information. Hints for: cache, AUTOCOMMIT, ISO LEVEL, performance reports for TX,STMTS, etc.


  9. Backpedal - Backpedal is a JDBC driver that can be messaged to roll back all SQL statements issued through it. It is intended to be used in testing scenarios, to allow you return the database to the state it was in before your test case started.


  10. jxdbc - A JDBC proxy driver for JXTA.


  11. Microsoft JDBC Driver Proxy - Tired of the Microsoft JDBC Driver running slowly and failing on Object and NVARCHAR fields? Proxy the Microsoft JDBC driver to run Faster and Better!


  12. c3p0 - c3p0 is an easy-to-use library for augmenting traditional (DriverManager-based) JDBC drivers with JNDI-bindable DataSources, including DataSources that implement Connection and Statement Pooling, as described by the jdbc3 spec and jdbc2 standard extensions. Not really a proxy but uses byte code injection to acomplish its deed. Apparently, the Hibernate folks love this project.


  13. Daffodil Replicator - Daffodil Replicator synchronizes databases by transfer and merging of changed data. It allows bi-directional synchronization with heterogeneous enterprise databases supporting JDBC drivers and key features such as triggers, procedures and auto increment columns. Its flexible publish and subscribe model has been tested with Oracle, SQL-Sever, PostgreSQL, Derby and Daffodil DB.


  14. Primrose - Primrose is a database connection pool. Current containers support are Tomcat 4 & 5, Resin 3 and JBoss 3 and a
    standalone version used for applications not running inside a container.
    Features include optional notification of crisis events, SQL statement monitoring for connections, starting/stopping pools without application restarts, adding / removing connections on the fly, a web interface for pool management, queueing of connection requests during heavy load, statistics for types of SQL statements executed and executiion times and enhanced debug information for hanging connections.


  15. Sequoia - Sequoia is a transparent middleware solution for offering clustering, load balancing and failover services for any database. Sequoia is the continuation of the C-JDBC project∞. The database is distributed and replicated among several nodes and Sequoia balances the queries among these nodes. Sequoia handles node failures and provides support for checkpointing and hot recovery.


  16. Elvyx - Elvyx is a tool designed to monitor and profile the jdbc activity. This jdbc profiler has a wrapper that intercept the access to the database and send this information to the elvix server. The server receives the information, store the data into a database and serve this information to the client. The client shows sql statements, bound sql statements, elapsed time, elapsed time preparing the statements, etc.




Ping me if you know of any other interesting JDBC proxy implementations.