dev2dev 首页 > 资源中心 > 技术文章
Weblogic Workshop 8.1介绍
时间:2003-03-17
作者:
浏览次数:
本文关键字: |
|
Carl Sjogreen,WebLogic
Workshop的高级产品经理,将在dev2dev论坛中和大家一起探讨Workshop
8.1中的新特性。大家都说这是一个很令人振奋的版本,因此我们想知道它究竟有什么过人之处。Workshop
8.1目前在dev2dev的WebLogic Workshop
8.1技术资源中心有beta版可以下载。
dev2dev:Carl,作为今天讨论的开始,你能为我们提供一点Workshop的背景吗?
Carl:大概是在去年的这个时候我们推出了Weblogic
Workshop的第一个版本,那是一个具有革命性的新工具和运行时框架,借助于它开发者们可以很轻松地在WebLogic
Platform上创建出企业级的Web服务。特别地,我们希望所有的开发者--不仅仅是传统的J2EE专家--都能有效地在WebLogic上创建出强大的Web服务,并且能够不怎么费劲就可以得到J2EE的强大威力以及像松散耦合,异步和有状态Web服务这样的先进功能。
dev2dev:那么Workshop是关于创建Web服务的吗?
Carl:Workshop工作小组的核心任务一直是推出用于创建企业级应用的无先例的产品--我称之为Workshop的两步曲:不但应用的创建很容易,并且提供了客户要求的强大的企业级体系结构。在Workshop的第一个版本中,虽然我们把精力放在Web服务上,把它作为一个应用的范畴,但是这个Workshop第一版中推出的很多独创,比如可视化的设计器,用于简化资源访问的控件,以及Java代码中的说明性注释也都适用于其他的很多应用,而不仅仅是Web服务。这就是这个版本中我们的主要收获--戏剧性地扩展了利用Workshop环境可以创建的应用的种类。
dev2dev:听起来很令人心动!那么现在利用Workshop可以创建的应用有哪些呢?
Carl:实际上,Workshop目前是整个BEA
WebLogic
Platform的开发环境。不管是创建门户应用,编写工作流,还是创建Web应用,Workshop都可以帮助你更快更好地完成。为了适应更大范围内的任务,Workshop
8.1将分为两个版本:Weblogic Workshop Application Developer
Edition(Weblogic Workshop应用开发者版)和Weblogic Workshop
Platform Edition(Weblogic
Workshop平台版)。应用开发者版包括了针对应用开发者的基本特性,并且支持以控件或EJB的形式创建Web服务,Web应用和传统的业务逻辑。平台版包括IDE和运行时框架的附加扩展,利用这些扩展可以和我们的WebLogic
Integration和WebLogic
Portal产品一道来创建门户应用和工作流。这里我主要讨论应用开发者版中的新特性,如果对Workshop支持WebLogic
Portal和WebLogic
Integration的能力感兴趣,可以访问dev2dev技术资源中心中关于这些产品的文章。
dev2dev:你能对它们作个总结吗?
Carl:在Workshop
8.1中我们做的主要事情就是为整个BEA WebLogic
Platform提供了一个统一的开发体验。客户们已经不断地告诉过我们他们不想再买任何单独的产品来创建门户,集成系统或者运行Web应用了。随着去年WebLogic
Platform 7的推出,我们朝将整个BEA产品紧密地结合在一起迈出了第一步。而现在随着Workshop
8.1的推出,我们具有了一个该平台的常用工具和常用的运行时框架,并且还具有了一个跨应用的共享编程模型。
dev2dev:一个统一的开发环境实际上意味着什么?
Carl:这个问题问得好。它实际上有几层不同的涵义。首先它标志着所有不同类型的应用有了一个统一的体系结构。虽然Workshop
IDE可能是这个产品中最突出的部分,但我们要知道Workshop不但是一个工具而且还是一个运行时框架,目前这两者都被BEA
WebLogic Portal和Integration server利用。
Workshop
IDE提供了开发者在某一个具体的开发环境中所期望的很多功能:调试,源代码编辑和项目管理等特性。但最重要的是Workshop
IDE提供了可视化的编辑器和设计器,这样开发者就可以通过简单的拖放(drag-and-drop)进行应用开发了。但实际上IDE的主要任务是帮助用户创建能被Workshop运行时框架执行的Java代码。
Workshop运行时框架是一个运行于WebLogic
Server之上的标准J2EE应用。Workshop运行时基于开发者在创建应用时编写的Java代码和属性,来处理与编译,部署和测试装具模块(test
harness)生成有关的细节。该框架自动处理创建J2EE应用所需的管道详细资料和复杂编程,从而让开发者把注意力集中在简单的Java类和属性上。基于这些属性,该框架能够自动生成标准的EJB组件,消息队列和数据库。在Java代码中使用注释以指定附加功能这一概念被Java
Community Process在JSR
175加以标准化,并广泛地应用于其他应用。
平台开发的经验体会主要集中在设计时间和体系结构的运行时组件这两方面上。在IDE中,创建门户和业务过程的工具现在被集成到Workshop开发环境中。IDE中管理项目的常用窗口是文件和文件夹,以及用来列出可用控件的选项板(palette)。在各个产品的设计器之间公共操作(gesture)是共享的。所有的设计器共享常见的应用"design"和"source"视图,并且进行双向的编辑,这样其中一个视图的变化可以立即反映到另一个视图中。Workshop运行时支持为这些应用开发的业务逻辑,并且为那些自动部署到Weblogic服务器的应用和控件生成了一组公共的J2EE组件。然而最重要的是它提供了一个统一的跨应用编程模型。
dev2dev:我们听说了很多关于Workshop提供的"编程模型"的讨论,你能不能告诉我们它真正的涵义是什么?
Carl:编程模型是指"程序员用户接口(programmers
UI)"--即开发者创建一个应用以及与开发环境交互的途径。什么是可用的API组?构建应用的体系结构和过程是什么?我使用的基本组件是什么,以及如何与它们交互?
在Workshop中,编程模型建立在控件和Java注释代码概念的基础上。所谓控件是指具有方法,事件和属性的简单组件,其中这些方法,事件和属性可以在设计视图中可视化地表示出来。而注释性的Java代码允许说明性地指定行为并把注意力集中在处理事件和调用方法上,而不用编写复杂的面向对象的基础结构代码。这样开发者就可以集中精力编写对他们来说很重要的应用逻辑了--正是这些应用逻辑真正创建了应用。另外这还能够让框架来处理管道的细节,而不是开发者本人。
Workshop编程模型是在Workshop的第一版中和Java
Web服务文件(JWS文件)以及控件一起推出的。控件让你不需要了解J2EE
API的细节就能够很轻松地连接到像数据库,消息队列和EJB组件这样的资源上,并且可以通过设置属性(不必进行API调用)来配置设定。同样,在创建异步Web服务时不需要每次都亲自动手编写代码来处理消息相关和状态管理,只要在服务上设置一个属性就行了,Workshop框架会自动处理这些细节。
在Workshop
8.1中,应用--不管是Web服务,Web应用,门户,还是工作流--共享一个与装配控件有关的公共模型,这些控件封装了具有附加代码,工作流逻辑以及个性化信息的业务逻辑或者资源。这个层次的集成很有意义--远比让所有的产品使用同一个工具强。随着在所有的产品上共享一个公共的应用模型,控件可以在各个应用类型间使用,公共范例也可用来访问数据库和Web服务,暂且就举这几个例子吧。此外,在创建某个类型的应用时学到的技巧在学习新产品时也可以派上用场。这个被运行时框架支持并且通过IDE展示给大家的共享编程模型正是我们对这个Workshop版本欣喜若狂的主要原因。
dev2dev:再告诉我们一些Workshop
8.1中的新特性好吗?
Carl:Weblogic Workshop
Application Developer
Edition中最令人兴奋的新功能大概就是创建Web应用的能力了。不管创建Web应用的业务逻辑还是个别的页面本身,Workshop都能让这个任务变得出奇地简单。Web应用的业务逻辑,状态和导航流(navigation
flow)包含在一个叫做Java页面流(Java Page
Flow)或者.JPF的新文件格式中。
页面流文件是Web应用很重要的组成部分。在设计模式中,页面流提供了一个应用的可视化的概述,展示了页面和"动作(action)"或者页面可以调用的业务逻辑。页面流编辑器也有助于创建和管理在页面和动作之间流动的数据。页面流文件的源文件是一个带有注释的标准Java类,这和JWS文件类似。这些类中的每个方法都是一个能在Web应用中执行的动作。Workshop还提供了一组向导,该向导可以让你通过简单的拖放操作来创建和结果页面,从而使整个过程变得出奇的简单。
页面流还能利用控件来访问预先打包过的业务逻辑,从数据库读取数据,调用Web服务,或者调用其他任何可用的控件。实际上,IDE向导可以自动在任何控件的上面构建一个页面流和一组JSP页面,以便立即创建出一个应用。该应用在数据库上执行简单的CRUD(创建,读取,更新,删除)风格的操作,或者调用一个Web服务。于是这些页面和导航流就可以被进一步自定义并扩展成一个完整的应用。
但是创建一个Web应用还意味着要创建页面本身,并将这些页面中的数据和业务逻辑绑定。Workshop
8.1有一个完全集成在IDE中的双向的WYSIWYG
JSP和HTML编辑器。利用这个编辑器可以通过将HTML和JSP标签从共享的资源选项板拖到设计表面中,并可视化地设置属性来创建JSP页面。数据选项板提供了对页面流中所有数据的完全访问,所以你可以通过拖放来创建一个新以接收输入数据,或者创建一个页面以显示处理的结果。这可以通过一组丰富的传统JSP标签来完成,这些标签可以显示表状信息(tabular
information),列表和树,并且具有内置的支持过滤和查询数据库信息的功能。
如果熟悉Struts框架的话,你会发现这种方法也很眼熟。事实上,页面流文件被实际编译成一组Struts类,由Struts运行时负责执行完成后的应用。这样就能让开发者利用简化的编程模型和丰富的IDE支持了,但是仍然要创建运行在开放源码Struts框架(open
source Struts
framework)上的跨平台应用。
dev2dev:这些新功能就是这样被标准化的吗?
Carl:正如我已经提到的那样,页面流文件被编译成标准的struts应用,并且绑定了标签的JSP数据是标准的JSP标签库。正像在Workshop的第一个版本中做的那样,我们将把这些页面流元数据提交给Java
Community
Process和其他的标准化组织。我们已经承诺保证这项技术会得到广泛应用。
dev2dev:你好像提到控件也有一些新的功能?
Carl:的确如此。当Workshop提出Java控件的概念来作为访问企业资源的一个简化的方法时,我们立即就被要求将这个模型扩展以便用户和ISV(独立软件开发商)能够创建出自己的插接在Workshop框架中的控件。在Workshop
8.1中,这已经成为可能。使用常见的可视化设计器可以很容易地创建出紧紧耦合在一起的业务逻辑组件,这些组件支持方法,事件,以及异步调用。仅仅通过设置一个属性,Workshop就可以自动生成并部署一个JMS队列,以提供一个可靠的异步消息发送过程。你可以通过在设计器的左边定义它们的接口(即定义它们支持什么样的方法和事件),设置属性以表示异步消息发送和安全限制等来创建控件,然后编写业务逻辑来实现这些方法。
控件可以使用其他内置的或者传统的控件(显示在右边)进行无限制的嵌套,从而可以很容易地重打包和重利用这些组件。控件的编写者也可以通过IDE属性编辑器中支持的一个简单的XML语法来为他们的控件指定传统的属性。例如,一个访问企业应用的控件可能有一个用户名和口令属性,或者用来配置与该系统的交互的属性。这些控件一旦创建,就可以被打包成可重新分发的.jar文件并轻松地添加到机构中的其他项目中,或者在外部分发。.jar文件一安装,控件就会自动出现在可用控件的选项板上。
高级控件的编写者甚至可以创建传统的属性编辑器和向导,该向导出现在IDE内部,用来自动安装控件。关于这些高级控件特性的更多信息,可以在和Weblogic
Workshop一起分发的控件开发者工具包(Control Developer
Kit)中找到。
dev2dev:那么Web服务呢?仍然可以使用Workshop创建它们吗?
Carl:绝对可以!Workshop
8.1在我们以前版本中的Web服务功能的基础上,提供了更多的企业级功能。消除人们对Web服务安全性和可靠性的担忧,对于企业采购至关重要,并且我们在这个新版本里主要要做的就是这些。为了满足这种需要,Workshop现在完全支持WS-Security规范以满足消息级的安全性(数字签名和加密),并且还在JWS文件格式中添加了一组属性以支持说明性的基于角色的安全性,这样的安全性利用了底层的WebLogic
Server。另外,Workshop现在支持"正好一次(exactly
once)"的消息发送,这就保证了即使在HTTP这样的协议上,消息可以可靠地向接收方传输一次,并且只传输一次。可靠的消息发送作为一个属性,可以在消息上进行设置。
另外,我们还有了一项很大的改进,可以很轻松地从Java内部访问XML信息。XML和Java间的这个映像对于Web服务应用的松散耦合必不可少。在Workshop
V1中我们使用一种简单的说明性映像语言解决了这个问题。在Workshop
8.1中,我们采用Xquery作为绑定XML和Java的标准语言,并且提供了一个用于执行这些映像的完整的可视化编辑器。这就使得从一组消息(要么定义为XML模式,要么定义为示例文档)中创建一个Web服务并将域映射到个别的Java参数中变得极为简单。
但在其他情况下,利用一个转换来从Java代码完全耦合XML可能会矫枉过正。有时直接从XML获取信息或者暂且将它保存起来稍后再进行转换可能更容易些。如果你正在开发的Web服务将XML作为输入,并进行一些处理,然后将该XML传送出去,那么这就尤为重要。为了实现这种情况,Workshop推出了XML
Bean--一项能显著地增加从Java访问XML的工作效率的新技术。传统上,开发者必须在像SAX或DOM这样的低级API和像JAXB这样的Java绑定解决方案之间作一个选择。前者允许直接对XML进行访问但用起来很单调乏味,而后者虽然提供了一组便利的Java接口却丢失了来自于原始XML文档中的结构性信息。XMLBean的出现弥补了这两者的不足。利用原始XML文档的一个有效的表示法,XMLBean为通过XML文档的直接导航提供了一个基于API的简单指针,为取回信息提供一个XQuery接口,并提供一组底层XML数据上的Java类"视图"。给定一个XML模式描述,XMLBean引擎能自动生成一组允许对XML进行读写访问的Java类型。这里不同的是XMLBean是完全建立在XML模式的基础上,所以不存在不能绑定到Java类型的模式,并且这些Java类只是底层XML上的视图。另外也从来没有数据丢失(即使是像注释这样的东西都不会丢),因为原始XML一直被保留着。要想使用XMLBean,只需为你的Workshop项目添加一个模式文件,所有的Java类型就会自动生成。XMLBean也可以作为dev2dev上的一个托管服务,并且我们有很多方法将XMLBean开放到更广阔的Java领域中(详细信息请见dev2dev上的XMLBeans)。
dev2dev:再看一下IDE,好像你们对它也做了一些改进。你能作一些介绍吗?
Carl:当然可以。虽然Workshop
IDE仍然把注意力放在某些开发者身上--这些开发者对使用Workshop框架并创建跨越整个BEA
WebLogic
Platform的应用感兴趣--但主流IDE的很多基本的编辑,调试和管理特性对于所有的开发者都很重要。对于那些主要对编写本地J2EE组件感兴趣的开发者来说,BEA也销售
Borland JBuilder WebLogic Edition,这是一种流行的J2EE
IDE。JBuilder支持开发者直接使用J2EE,并且还提供了和Workshop框架某种程度的集成。
Workshop
IDE主要的新特性有以下几个:
调试
我们已经显著地增强了Workshop中的调试引擎以支持JSP调试和跨组件调试。这意味着你可以从JSP代码开始调试,然后是页面流代码,最后才是你已经编写的传统控件中的代码。此外,调试框架也被其他平台的产品利用,所以你甚至可以从业务过程工作流调试到传统的控件代码或JSP。JSP调试器让你能够跟踪单个JSP页面的执行并在它正被构建时查看输出流。调试性能也显著地增强了,并且还增加了立即方式和多线程调试支持。
新的项目模型
Workshop应用现在可以直接和J2EE应用通信,而且被打包成EAR文件以便部署。一个可以包含应用,库,传统控件,门户和工作流的单个项目模型让你能够创建跨产品的应用,并可以轻松地将它们作为一个整体来管理和部署。项目模型还与当前主要的源代码控件系统,比如CVS和Perforce完全集成在一起,所以你可以直接从IDE内部存回(check
in)和取出(check
out)文件。
源编辑特性
我们还在源编辑器里面提供了对很多流行的生产率特性的支持。例如,如果你使用了一个还没有被导入到代码中的类,Workshop会自动提示你导入这个库。按住CTRL键并在函数和变量上移动光标,将会看到一些附加信息和一个跳转到定义和声明的链接。像自动完成这样的基本源编辑特性也被增强和扩展出了Java函数和变量的范围。例如,JSP或HTML页面中的"href"标签将自动添加到项目中的文件或图象中。
dev2dev:谢谢你给我们介绍了WebLogic
Workshop 8.1 beta版的大致情况。它看起来是个很不错的版本!
Carls:的确是这样。我认为这个版本使我们完成了两年前定下的任务--显著地简化J2EE平台上的开发并且使开发者地效率提高十倍。此外,通过将整个平台集成为一个工具和一个运行时框架,我们成为第一个具有真正的应用开发,集成,表示和个性化集成方案的J2EE供应商。体验Workshop的真正途径就是亲自尝试一下。还等什么,赶快从dev2dev上下载beta版吧!
原文URL:http://dev2dev.bea.com/articles/sjogreen.jsp
作者其它文章
|