Sunday, December 9, 2007

用于动态图表绘制的API

  一个很简单但又非常实用的用于动态图表绘制的API:
http://code.google.com/apis/chart/
  全部的API调用格式都用一个URI完成,可以设定在<img>标签的src属性中,是一个典型的基于URI驱动的设计:
http://chart.apis.google.com/chart?<p1="">&<p2="">&<pn="">。
例如:


chf=c,lg,0,76A4FB,1,ffffff,0|bg,s,EFEFEF……

  三个多月前,曾经和Tianle同学也一道研究设计过类似的API,主要用于为Web Dynpro提供动态图片绘制。如果使用过Web Dynpro,那可能会对其图片UI控件无法支持“动态文字叠加”的限制印象深刻吧,我们当时能够解决的是通过基于URI的API来完成各种的图片绘制,包括渐变、倒影、文字定位和样式布局等功能,从一定程度上来弥补Web Dynpro在这方面的不足。后来,由于一个棘手的多国语言字体问题,使得我们无法进一步推进这一API的使用,可谓稍有遗憾。不过,我们已经有打算在合适的时间场合将这一解决方案作为开源项目放出来了。对此有兴趣的朋友,我们可以进一步讨论。

by William Cui 崔伟毅

Labels: , ,

Friday, November 9, 2007

SAP TechEd'07 在上海成功举行

  经过精心准备,为期两天的SAP TechEd'07上海技术研发者大会在上海国际会议中心成功举行,值得欣喜的是我的两个讲座均取得了不错的效果,也使得我们有机会与参会者就企业SOA这一主题进行了直接的面对面交流。


我的“企业SOA安全”演讲(感谢同事Jason的拍摄)

  在此,我要特别感谢参与本次演讲资料翻译的Tianle同学,在我内部试讲时提出宝贵建议的Sainter同学,以及所有来听我内部试讲和最终演讲的同事们和朋友们!谢谢大家!

  最后,可以共享给大家一份企业SOA安全的中英文对照术语表,是我们在协同翻译过程中整理的:http://spreadsheets.google.com/ccc?key=pLJr1m0Dyfhd_03OM6Z0iYQ&hl=en_GB

by William Cui 崔伟毅

Labels:

Wednesday, October 24, 2007

企业SOA安全、CAF服务组合——我在SAP TechEd '07上海的两个讲座

  我在上一篇博客中提到了即将举行的SAP TechEd '07上海(2007 SAP全球技术研发者大会),以及我和周围的一些同事以及好友非常有幸地成为了其中的演讲者,以下是我的两个讲座:

一、企业 SOA 安全(也可以参见英语介绍

序号: SIM200

  与单一企业系统体系相比,企业级面向服务架构面临着许多新的安全挑战。
  本讲座介绍了在企业级面向服务架构背景下的安全需求,以及现有的安全问题解决方案。它描述了Web Service安全领域和附加标准中的概念是怎样与流行的安全实施相结合,为企业级面向服务架构领域提供适当的安全措施,例如:认证和单点登录、加密操作和传输安全。让您有机会全面了解用以企业级面向服务架构建设和安全支持的SAP技术。

房间: 世纪厅

时间: 2007年11月6日16:45-17:45


二、使用SAP组合应用框架 (CE 7.1) 创建服务组合(也可以参见英语介绍

序号: CE253

  组合应用帮助企业推动业务流程创新、发挥现有IT投资价值。SAP NetWeaver 组合应用环境按照SAP企业级面向服务架构的原则,为有效开发、管理和部署组合应用,提供了完整的方法论和基于Eclipse的工具套装。SAP NetWeaver组合应用环境结合许多基础组成组件,例如SAP Java EE 5 Application Server、基于Web Dynpro 的用户界面、用于UI模型创建的SAP NetWeaver Visual Composer,协作进程建模的向导程序、以及服务和业务对象定义基础架构。
  以开发人员的观点了解和感受组合应用,并实践从头创建一个组合应用。让我们向您展示SAP NetWeaver组合环境在创建、组装和协调作为新应用构件服务方面提供了哪些功能增强。

房间: 明珠厅

时间: 2007年11月7日9:30-11:30


注:其中第二个是实践操作型讲座,由我和同事Kevin Wang共同提供。由于实践操作环境和讲座名额有限,欢迎注册过的并且感兴趣的朋友抓紧登录报名参加该实践操作!

到时见!

by William Cui 崔伟毅

Labels: ,

Monday, October 8, 2007

SAP发布Business ByDesign,友好收购Business Objects

  出于公司的保密协议考虑,我很少在博客中涉及SAP的商业动向内容。不过,近些日子的有关SAP的公开新闻和消息不断,使得我也想在此记录一二,以作纪念:
  • 上月19日,北京时间晚上11点,SAP在纽约发布了全新的SAP Business ByDesign产品,这也就是之前开发代号为“A1S”的面向中小型企业的在线按需配置解决方案。关于更多的有关SAP Business ByDesign产品介绍,请访问SAP中国网站,你也可以访问全球网站,以及SAP中国免费咨询热线: 800-820-0727。
      由于时差原因,在SAP Business ByDesign正式发布之前的4个小时,我们在中国的A1S研发和销售团队事实上已经提前进行了热烈的庆祝活动(我的好友和同事Jim Liang对此进行了现场照片记录)。庆祝会过后,便继续与其它几位同事一道留在公司观看SAP TV的产品发布会现场直播。那刻的心情很复杂,既为能见证为之付出了无数日夜工作的产品最终发布而格外兴奋,又为接下来的现场产品演示和最终反馈而感到紧张。直到SAP执行董事Peter Zencke和现场演示搭档Ian Kimbell把我们组负责研发的产品部分完美地演示成功后,我才终于心情舒畅了,随后我们互相真正地祝贺并淋着细雨各自回家,只记得那天离开公司时已经差不多次日凌晨1点了……
  • 今天10月8日,长假结束后的第一天,一到公司便看到了CEO Henning Kagermann关于SAP以48亿欧元友好收购法国Business Objects公司的邮件。说实话,我的确为德法两大欧洲软件巨头能够最终走到一起而感到有点出乎意料。而且据说这次收购的保密性做得相当好,连Business Objects的员工都未有提前察觉。关于收购细节,请查看官方报道
  • 今年10-11月,SAP TechEd 2007将先后在美国拉斯维加斯德国慕尼黑中国上海印度班加罗尔举行。这是历史上SAP第一次在中国举行的级别最高的全球技术研发者大会,详情请访问或注册相关SDN网站。值得一提的是我和周围的一些同事以及好友非常有幸地成为了这次SAP TechEd 2007上海全球技术研发者大会的演讲者,具体内容和安排参见大会内容和我的后续博客报道。
by William Cui 崔伟毅

Labels:

Sunday, August 26, 2007

代码分析和漏洞检测

  在InfoQ上看到了一些关于代码分析的文章,发现了两篇比较有意思而且有完整中文译文的,分别是:
  • 代码规范的自动化监管
      讲的很不错,印象最深刻的一点是,面对参差不齐的代码质量和编程习惯所带来的巨大挑战,传统的通过事后代码复查来试图纠正已经太晚了,而且会不可避免地导致编码人员的不良心理反应。因此,可能最好的办法就是实施自动化监管,把静态源代码分析和漏洞检测系统与版本构件系统进行整合,从而进行强代码制规范化,既一定程度上避免了垃圾代码进入产品构件系统,也使得编码人员更易于接受并积极改进。
  • Google单实例模式检测工具
      这个检测是在字节码层面上的,而不是通常的源代码层面。因此,从难度上来说要高不少,而且很难检测完全。相当于要从一堆字节码中检测出某些模式或者特征代码,有点像查病毒软件的原理吧。
      至于单例(Singleton)模式的问题与否,我个人认为,如果采用的是松耦合的资源注入方式,那么使用单例并不是问题非常大的;反之,如果控制逻辑和资源状态是混在一起的,相当于一种全局的static容器,那么这无疑增加了测试和理解的复杂性,理论上是不赞成的。大家觉得呢?
  最后,我也来介绍一个SAP的代码分析工具——JLin ,这个是可以通过简单地配置和构件系统整合在一起,然后生成代码质量报告。其本身是SAP NetWeaver Developer Studio的一个Eclipse插件,内置了一些基本的代码检测规则。在我们的日常开发中,任何Priority 1或者2的代码是不允许被带到产品的consolidate track上去的。虽然检测的范围还是比较有限,但还是在一定程度上起到了监管代码质量的作用。不过,就我的判断,在理论上,JLin的架构是能够支持更为复杂的源代码级或者字节码级的自动化代码审查和强制监管功能的。

by William Cui 崔伟毅

Labels: , ,

Sunday, July 22, 2007

一些关于Web Dynpro基础架构和设计原理的老资料

  在SAP的工作中接触Web Dynpro进行设计和开发将近两年了,对其优势、特性和待改进之处也有了基本的认识。不过以前很少从技术和协议底层来看Web Dynpro,这次由于工作需要,便尝试着走出Web Dynpro编程模型来理解一些更本质的东西。今天,我偶然间找到一些公开的关于Web Dynpro基础架构和设计原理的老资料,仔细品读了一番,还真是有了几分不一样的收获:

An Introduction to Web Dynpro Protocol (2005, SAP AG)
这份SDN上的文档从GUI演变和发展需求角度介绍了Web Dynpro的SCXML基础协议以及细分过的Session生命周期。这个SCXML也就是最新的名为Business Client XML的前身吧,通过这样一种中间协议的设计,使得UI统一绘制(UR)以及UI自动化测试(eCATT, QTP)拥有了天生的适应性,以不变应万变。

The Basic Facts About Web Dynpro - What Does It Do and How Does It Work? (2004, SAP AG)
这份SDN上的文档从基础架构和设计原理角度解释了Web Dynpro是如何考虑UI编程灵活性和统一性的,并且在若干年前就预测了UI技术的发展,以及如何灵活地、最小代价地应对这些变化和挑战(其中,the return of applet可以引申为今天的JavaFx,Business UIs running in Macromedia Flash就是今天的Adobe Flex,而a new UI paradigm prescribed by Microsoft不就是WPF/Silverlight么……):
We believe that our approach is the best of all worlds today. It is the only avenue to having an ergonomic, rich user interface in a true zero installation, browser-based client with low network bandwidth. This is true today - but tomorrow could see the return of the applet, or Business UIs running in Macromedia Flash, or a landslide adoption of Adobe Forms, or a new UI paradigm prescribed by Microsoft. The model-view-controller paradigm is our insurance policy against this. Once you have a clear separation between user interface and business logic, it is relatively easy to adopt a new front-end technology whenever necessary.
  在OO设计模式中,大家都会谈到松耦合这个思想,而接口的概念更是实现该思想的核心部分。同样地,我理解的Web Dynpro则是从架构上把业务服务和UI技术进行了最大程度的松耦合,使得用同一套Web Dynpro开发组件在运行时渲染在完全不同的UI技术平台成为了可能。其实,如果把UI全称写出来(User Interface),这不也是一个同样的“接口”概念么,只不过在这里被译为了“界面”一词。

by William Cui 崔伟毅

Labels:

Thursday, April 26, 2007

事件两则:SAPPHIRE '07亚特兰大,Adobe将Flex开源

  过去的三天里,SAPPHIRE '07亚特兰大SAP客户和合作伙伴会议在美国举行,用图说话:

Hasso Plattner
SAP联合创始人Hasso Plattner做主题演讲(图片来自dfarber

Henning Kagermann
SAP首席执行官Henning Kagermann做主题演讲(图片来自dfarber

Henning Kagermann
SAP的Enterprise 2.0之路
Harmony——测试中的SAP内部“社会性网络”员工协同工具(图片来自Craig Cmehil

Flex goes opensource
  此外,美国时间昨天晚些时候,Adobe发布了一个令业界振奋的消息————Flex就此开源了!
  这则消息对于Microsoft就在上周公开亮相的“SliverLight”(即原来的WPF/E)无疑更是当头一棒。RIA战场的好戏正在接连上演中……你更看好哪方呢?
  该事件的详细信息和深入分析可以参考:

  最后,PodTech上的Adobe Flex团队视频采访短片也值得一看:



William Cui 崔伟毅

Labels: , ,

Sunday, April 8, 2007

Morfik的"Ajax生成器"专利申请和GWT、Web Dynpro

  近日,澳大利亚的Morfik科技公司向USPTO(美国专利商标局)提交了一个关于“Ajax生成器”的专利申请。该专利申请的名字为“System and method for synthesizing object-oriented high-level code into browser-side JavaScript,相关申请文献已经可以在USPTO网站上查阅,其摘要如下:
A system and method are provided to enable developers of web sites and software applications to code in an object-oriented high-level language that is compiled into a browser-side JavaScript which can be natively interpreted by a browser. This enables developers to program in a high-level language of choice to create browser-side web applications, instead of directly using the target lower-level language JavaScript.
  进一步阅读,发现这个可能的“发明”是想为B/S开发人员提供了一套系统化的方法来达到以下目的,即把用高层OO语言(类Basic和Pascal,或者类Java和C#语法的)写的代码转化成可以被不同浏览器进行原生解释的JavaScript低层语言,从而简化了直接编写浏览器端JavaScript的复杂性,并在一定程度上降低了Ajax的开发代价。
  说起“Ajax生成器”,我们可能第一个就会把它和Google的GWT(Google Web Toolkit)开源项目联系起来。GWT是一个开源的Java软件开发框架,用于开发类似于Google Maps和Gmail的Ajax应用程序。开发者可以用Java编程语言开发前台界面,然后用GWT编译器将Java类转换成适合各种浏览器执行的JavaScript与HTML。还有一个基于Eclipse开发插件Googlipse提供了GWT的集成开发环境。尚且还不知道Morfik的这一专利申请会不会和Google的知识产权存在法律上的问题了。就软件专利这一方面话题,我不久前写过一篇Weblog——漫谈“软件专利保护”
  此外,尽管SAP的Web Dynpro开发出来的不是严格意义上的Ajax应用程序,而且非SAP的客户或合作伙伴可能对Web Dynpro还不太熟悉,但是就我的实践和横向比较而言,在专业化的基于B/S的企业应用前台开发来说,Web Dynpro无疑大大走在了GWT还其他流行的Web MVC框架前面!这在SAP的Help Portal上有Web Dynpro的架构和开发模型方面的资料可以供研究参考。我也会在以后写一些文章来和大家分享SAP在这些方面的开发方法和实践经验。

William Cui 崔伟毅

Labels: , ,

Sunday, April 1, 2007

庆祝SAP成立35周年,并祝Shai Agassi再创辉煌!



  今天是2007年4月1日(西方愚人节),对SAP来说是一个特殊的日子:
  • 35年前的今天,即1972年4月1日,五位前IBM员工(Dietmar Hopp, Hans-Werner Hector, Hasso Plattner, Klaus Tschira和Claus Wellenreuther)在德国曼海姆(Mannheim)成立了一家初始名为SystemAnalyse und Programmentwicklung的公司。当时五位创始人的愿景是:打造用于实时业务处理的标准化应用软件产品。后来公司正式改名为Systeme, Anwendungen und Produkte in der Datenverarbeitung(对应的英文名称为“Systems, Applications And Products in Data Processing”,即数据处理的系统、应用和产品),而官方名字则为SAP AG。
  • 从今天,即2007年4月1日起,现年38岁的以色列籍,SAP前全球执行董事会成员、产品与技术事业部总裁Shai Agassi(夏嘉曦)将正式离开SAP,投身于下一个来自于“日益严峻的环境问题和可替代能源”的新挑战。关于他生平和创业历史的详细介绍,请参见“SAP夏嘉曦:跃上更大舞台”一文。
  从2005年加入SAP以来,只有一次机会让我有可能近距离接触到夏嘉曦,那就是去年在SAP美国举行的全球开发者挑战赛,虽然我有幸成为了中国区选拔出来的参赛候选人之一,但还是阴差阳错地失去了那次去SAP Palo Alto研究院比赛的机会。我们团队里的另一名同事被抽中了,到了那里和SAP全球开发者一道进行了两天的封闭式开发比赛,最后得了一个团队奖,并从夏嘉曦手中接过了一箱象征着创新和成功的Las Vegas“假筹码”。

  今天之前,夏嘉曦作为具有35年历史的SAP的全球执行董事会7名成员中最年轻的,而且是唯一一名非德国国籍的执行董事,他领导的设在美国硅谷独立运营的分公司,就像初创企业一样,不断努力开拓着SAP从未涉足的新市场。不可否认,他的持续创新精神和敏锐预见能力值得我们每一个人学习。在此,我想引用两端他对“良师益友”和“竞争对手”的言论:

  谈良师益友
在我的人生中有三位重要的导师,他们都在关键时候给了我最可贵的指引。
  首先是我的父亲,也是我的第一个创业伙伴,他总是与我分享核心价值的人。
  然后是大卫,我的第二个创业伙伴,他教会我如何平衡、冷静地看待商业。
  最后是哈索·普拉特纳,SAP的创始人及现任董事会主席,他手把手地告诉我应该如何运作我们的产业。

  谈竞争对手
我一直与自己心中的热切追求竞赛,但从来不把自己与其他人比较:
  把我和比尔·盖茨对比真的不公平,无论是对我还是对他。我们在各自的领域都以自己的方式取得了成功,而比尔日前更是投身到慈善公益事业,很让人钦佩。
  至于甲骨文,其实SAP和我自己都不以其为目标。我们最看重的,是如何更高效率、更大范围地满足用户需求。

  最后,还是要庆祝SAP成立35周年,并祝Shai Agassi再创辉煌!

William Cui 崔伟毅

Labels:

Saturday, March 3, 2007

SAP @ 德国汉诺威CeBIT 2007展会

  根据官方消息,在3月15日-21日举办的德国汉诺威CeBIT 2007展会上,SAP将展示最新的针对中型企业市场的All-in-One解决方案。

  新的解决方案在更灵活、简化的用户采纳和更快速的实施等方面有了巨大的改进和增强,以使中型企业客户和SAP合作伙伴能共同受益于enterprise SOA

  更多信息,请留意SAP Deutschland | CeBIT 2007CeBIT的德语和英语官方网站。

  (注:以下是个人陈述,不代表官方内容和观点。)

  很有幸的是,我从上周开始接触了这次展会的一小部分技术准备工作,主要是进一步将Rich Internet Applications和企业业务服务进行集成,以达到用户体验和敏捷业务的优化组合。

  此外,可以预测,对于各个解决方案供应商来说,如何在努力降低总体拥有成本(TCO:Total Cost of Ownership)的同时,最大化地提高总体客户体验(TCE:Total Customer Experience)可能将会成为下一个影响用户采纳性的重要因素。

p.s. 在这一领域,无疑Adobe走在了领先的位置。另据预计,Apollo的第一个预览版很快将在开发社区公布,而随之又一轮新的技术应用浪潮正在向我们席卷而来。

  就这一方面话题,在以后的weblog中我会进一步展开,请继续关注,谢谢!

William Cui 崔伟毅

Labels: