teamlet

构客网首页  博客  论坛

 
  SOA我有话说
  用户信息
 
帐号:  新手必读
密码: 保存密码
 
  分类列表
全部类别(53 篇)
我的文章(52 篇)
  按月归档
2007年-06月(7 篇)
2007年-10月(17 篇)
2008年-01月(28 篇)
2008年-11月(1 篇)
  SOA2007 - SOA实践
我们何时迈向SOA
——SOA在中国的整体发展现状究竟如何?
我们如何迈向SOA
——中国企业如何迈出实施SOA的第一步?
我们应采用何种技术
——SOA国际标准SCA/SDO的具体内涵?
我们还需要何种技能
——SOA将如何改变系统架构设计以及项目管理过程?

显示第 1-10 条记录,共 52 条记录 首页 前页 后页 尾页  到第 页,共 6

Restlet 1.1.0 发布

发布时间:2008年11月05日 作者:teamlet

阅读次数:137次 类别:我的文章 永久链接 Trackback 

Restlet V1.1.0 正式发布。

 

Since the launch of Restlet 1.0 in April 2007, we have been working hard to prepare this new version. To protect your investment in existing code, we have maintained the initial API design, extending it where necessary and always ensuring a direct if not transparent migration path.

Here is a selection of the most exciting new features:

  • Broader and deeper HTTP support with features such as partial downloads, resumable uploads or content integrity validation.
  • Best support for the WADL specification in the industry, allowing an automatic and always in sync documentation of your REST APIs. WADL documents can be generated in XML or converted on the fly to HTML using the popular stylesheet from Yahoo!
  • One of the first and most complete implementations of the new JAX-RS 1.0 specification provided for those preferring an annotation-oriented approach.
  • New Restlet-GWT module provided, porting the client-side of the Restlet API to the popular Google Web Toolkit 1.5 JavaScript platform, allowing you to invoke RESTful applications right from your Web browser.
  • New extensions for easier integration with the JAXB 2.1, JiBX 1.1, Spring 2.5, OAuth, OSGi, Oracle XDB and SSL technologies.
  • Improved support for Atom Syndication XML format and for Atom Publishing Protocol. Both formatting and parsing are now available.
  • New POP3 connector based on JavaMail to access RESTfully to remote mail boxes.
  • New Grizzly HTTP server connector, first to fully leverage the NIO support in the Restlet API, leading to new levels of scalability and performance.
  • New internal HTTP client and server connectors to simplify development phases (zero configuration necessary) and allow very small footprint deployments.

@see http://blog.noelios.com/


Eclipse升级到V3.4--Ganymede

发布时间:2008年09月24日 作者:teamlet

阅读次数:132次 类别:我的文章 永久链接 Trackback 
Eclipse升级到了V3.4--Ganymede,功能增强了不少。
 
同时,CheckStyle、Findbugs、PMD和SVN插件都升级完毕。

Eclipse升级到了V3.4--Ganymede,功能增强了不少。

 

同时,CheckStyle、Findbugs、PMD和SVN插件都升级完毕。

 

CheckStyle v5.0.0beta1  http://sourceforge.net/projects/eclipse-cs/

Findbugs http://findbugs.cs.umd.edu/eclipse

PMD-eclipse V3.2.4 http://pmd.sourceforge.net/

SVN http://subclipse.tigris.org/update

 

在单位升级插件的时候,遇到一个问题。

在刚刚开始下载文件的时候,eclipse会突然自己关闭。

 

原以为是插件对Ganymede支持得不好。PMD安装后不能使用,SVN也有问题。

 

在家试了一下,升级没有问题。


Restlet version 1.1 发布

发布时间:2008年09月23日 作者:teamlet

阅读次数:105次 类别:我的文章 永久链接 Trackback 
在restlet v1.1 M5修补了10多个Bug之后,restlet发布了 Restlet V1.1 RC1。
在restlet v1.1 M5修补了10多个Bug之后,restlet发布了 Restlet V1.1 RC1。
 
Here is a summary of main changes:
 
  • Chunked encoding issues in Grizzly and internal connectors were all fixed. Extensive tests with large entities done (size of 30 Mb).
  • Grizzly was updated to version 1.8.4 and has reached a much more stable state. It gives unparalleled performance for serving static files thanks to direct NIO transfer from file to socket!
  • Performance of internal HTTP connectors was vastly improved, coming close to other connectors in term of throughput for large entities (scalability not tested). It is the easiest choice for development purpose.
  • Significant improvements and stabilization made for the WADL extension.
  • Major refactoring of logging to have more consistency and a better organization for logger names. Updated the logging documentation on the wiki to facilitate usage. Added a TraceHandler to display the logger names of all log records in the console to simplify configuration, especially for third party libraries.
  • Completed support for partial GETs and partial PUTs in the FILE client connector.
  • Completed support for representation digests (MD5 and more).
Restlet V1.2规划
 
Restlet V1.2在依旧基于Java SE 5.0 进一步发展。
新版本保持对Restlet V1.1的兼容性,但对V1.0不再兼容,将删除所有不建议使用的代码(deprecated code)。
 
Restlet V1.2的开发将在一年内针对以下内容展开:
1、增强对Eclipse的支持
2、引入语义类型的web理念
3、增强对Http的支持
4、安全机制的重构
5、更快更好的连接器(connectors)
6、其他
      包括:
  • 文档编写
  • 包重构--将NRE中的引擎(com.noelios.rest)实现放到到REST API(org.restlet.engine)中隐藏
  • 客户端的资源提供
  • JAX-RS客户端的支持
  • Oracle XDB的增强
  • Google Web Toolkit(GWT)的增强
  • Google Guice的支持
  • Google Android支持等。

细说SCA V1.0规范之Composite与架构

发布时间:2008年09月19日 作者:teamlet

阅读次数:692次 类别:我的文章 永久链接 Trackback 1条评论
SCA规范中的"三大件"分别是Component 、Composite和Domain 。
在上一篇 细说SCA V1.0规范--component与实现 里面主要说的是Component 。本文将继续说说这第二"大件":Composite !
SCA规范中的"三大件"分别是Component 、Composite和Domain 。
在上一篇 细说SCA V1.0规范--component与实现 里面主要说的是Component 。本文将继续说说这第二"大件":Composite !
  一、Composite简介
  Composite组件是SCA规范中最基本的单元,是部署的最基本单位。Composite组件的图示和简化Composite组件的图示如下:
  Composite
  二、Composite的组成
  一个Composite包括0个或多个Property、Service、Component、Reference、Wire和包含的Composite(included Composite).
  三、Composite与Component的关系
  Component组件是Composite组件的重要组成部分。
  四、Composite与Domain的关系(略)
  五、Composite 在模型中的分类
  为了讨论方便,也便于理解,将Composite分成三种类型:(这不是规范中的分类)
  这三种类型很像数据结构中的"树"。树有树叶、树跟和树枝。与之对应,Composite架构层分为基本层Base-Composite、顶层Top-Composite和处在基本Composite和顶层Composite之间的Composite层,就叫Arch-Composite吧。
  第一种Composite——Base-Composite:它的特征是其implementation不是通过引用Composite实现的。即它的implementation是通过SCA支持的implementation类型提供的实现。它们处于整个Composite架构的底层,为上层的Composite提供服务实现。这些Composite包含了implementation的实现。对整个Composite层而言,可以认为不存在Component层,因为Component是做为Composite的一部分存在的。只要Base-Composite有implementation实现,Composite层不关心是什么技术的实现,以及如何实现的。
  目前Tuscany SCA支持的plementation 类型如下表所示:
  SCA
  第二种Composite——Top-Composite:其特征是它们将成为Domain-Level Composite的一部分,或者说将为Domain-Level Composite提供服务。它们处于Composite架构层的顶端,上面就是Domain层。它们以其他的Composite作为implementation实现,为Domain层提供服务。Composite层的所有Composite的服务都要通过Top-Composite向Domain层暴露,为Domain层提供由Base-Composite实现,Arch-Composite组合而成的各种功能。Top-Composite通过指定一个URI与Domain建立关系。
  第三种就是Arch-Composite:它们或者引用(Reference)其他的Composite或者用其他的Composite实现implementation。Arch-Composite可以通过引用实现等形式组合成功能更为复杂的系统功能或者流程。就象工作流的流程那样,通过一系列的Composite实现复杂的功能。
补充
  1、为什么分成三层?有什么作用?
  Composite架构层虽然都是由Composite组件构成的,但不同的Composite在架构层中起到的作用是不同的,虽然它们的内部结构是相同的---即都有Services,References,Component等.
  对Base-Composite关注的是它提供了什么,它的作用体现在提供了哪些Services,这些Services主要都是由这些Composite的Component提供的,或者说至少有一部分是由Component提供的(因为它还可以通过References引用其他组件的Services)。这些由Component实现的Services是整个Composite架构层的基石。如果没有这些Base-Composite,没有它们包含的Component提供的实现,这个SCA系统就是个空壳,引用来调去最后调用的服务都是空的。这些Composite的Component的实现方式决定了它与另外两种Composite作用的不同。
  Top-Composite的作用体现在它的Services是面向业务层的。通过使用URI命名这些Top-Composite,业务层可以直接通过URI使用这些Top-Composite提供的Services。Top-Composite是Composite架构层的门面。所以它的作用与其他两种Composite是不同的。
  如果说Base-Composite是一层包含component的实现,Top-Composite是Composite架构层的门面,那么Arch-Composite的作用就非常的重要了。如果要发挥Arch-Composite的作用,还要涉及一个话题就是:Composite实现粒度的大小,或者说implementation实现的粒度的"度"。这个文章后面会谈到。
  所以,Base-Composite体现的是实现(Component),只不过在Component外面包了一层Composite的外壳,使得Component借用Composite的外壳,和其他的Composite使用统一的、标准的调用方式:即用Services输出服务、用References输入服务、用Property传值等。在上篇文中说过,在SCA模型中,Component组件对应实现层,Composite组件对应架构层。Base-Composite就是两层的边界。Base-Composite对架构层来说提供了实现;而对实现层来说,第一提供了封装,第二提供了Promote机制。
  Top-Composite也类似,只不过与它对应的是架构层和业务层(Domain对应业务层)。这个在后面的Domain与业务中会详细说明。
  2、关于Composite如何提供服务后面会继续,敬请关注。
  3、服务如何打包,如何被其他服务引用,服务如何组装?
  这是些非常实际的问题。在Tuscany的SCA早期实现中,服务是通过jar方式打包的。jar包需要通过一些方式部署到SCA环境中,SCA会在宿主机上有一个指定的或者默认的安装路径,将服务放在这些系统文件目录下使用。这是一个Tuscany SCA 引导和装配的过程供参考,以后会针对Tuscany SCA 1.0 做比较详细的解析。
  4、对于非SOA架构的系统,如何拆分服务,如何把这些服务包装为符合SCA标准的服务?
  对于非SOA架构的说法我觉得不够准确,如果说非SCA架构的系统,那么针对的就是目前的规范。因为SOA规范也可以使用其他的、非SCA的规范实现。
  还有就是要求是基于J2EE架构的系统。对于其他的实现比如,.net,php等没有相关的实践,无法作出评述。
  把非SCA的J2EE架构的系统包装为符合SCA标准架构的系统,拆分的重点是component实现的粒度考虑。这些component实现粒度多大合适,这个"度",不好把握。粒度小,复用度很高,系统灵活,松散偶合度高,改变系统的行为容易,但是会使Composite层变厚,性能上会有些损失,管理上会麻烦一些。粒度大,复用度低,不能充分发挥Composite层的作用。
  另外,component的实现如果粒度小,那么相应的每一个实现的代码就很少。很少的代码量可以减少代码的错误、降低逻辑复杂度、方便测试、降低维护和管理的成本、实现的功能定位清楚、目标明确,实现层的开发人员将精力集中在代码上,无需关心其他层的事情,专业化程度提高,提高了代码的质量,也提高了开发的效率和开发成本。同时可以构建本单位的Component实现的组件库,分类保存Component的实现组件,在多个SCA架构系统的项目中复用已有的Component实现组件。如果这个组件库足够大,那么Component实现组件开发成本几乎为零。充分发挥SCA架构的优势,为企业降低成本,提高软件质量,延长产品的生命周期,降低维护成本。

细说SCA V1.0规范之component与实现

发布时间:2008年09月19日 作者:teamlet

阅读次数:665次 类别:我的文章 永久链接 Trackback 
SCAV1.0装配规范中,相对较为独立的组件只有三个,粒度由小到大分别是Component、Composite和Domain,其他Service、Reference、Property、Wire等都是辅助性的元素。这些辅助性的元素做为三个独立的组件中的组成部分,为组件与外部数据传输、对外提供服务和引用外部资源提供途径,将各个组件的组成粒度更大的上层组件。三个不同的组件,分别对应系统的三个不同层面:Component组件对应实现层,Composite组件对应架构层,Domain对应业务层。后面将会用三篇文章的篇幅分别说明三个组件和三个层面直接的关系以及使用。

SCAV1.0装配规范中,相对较为独立的组件只有三个,粒度由小到大分别是Component、Composite和Domain,其他Service、Reference、Property、Wire等都是辅助性的元素。这些辅助性的元素做为三个独立的组件中的组成部分,为组件与外部数据传输、对外提供服务和引用外部资源提供途径,将各个组件的组成粒度更大的上层组件。三个不同的组件,分别对应系统的三个不同层面:Component组件对应实现层,Composite组件对应架构层,Domain对应业务层。后面将会用三篇文章的篇幅分别说明三个组件和三个层面直接的关系以及使用。

  一、组件介绍
  1、Component 简介
  Component是SCA规范中最基本的元素,是粒度最小的执行单元或者实现单元。
  为了方面后面的描述和图解,将Component图示作了一些简化。如图:
  
  2、Composite简介
  Composite组件是SCA规范中最基本的单元,是部署的最基本单位。其他组件要以Composite组件的组成形式通过Composite组件表现出来。对于Composite组件会在下一篇文章--Composite与架构中详细说明。
  同样,简化Composite组件的图示。如图:
  
  3、Component组件和Composite组件之间的关系
  Component组件是Composite组件的重要组成部分。Composite组件可以包含0个以及0个以上的Component组件。如Composite组件图示中表示的,包含了2个Component组件。可以假设为,Composite组件是一个可以任意扩展端口的集线器(通常叫Hub),Component组件就是集线器的端口。
  
  集线器和RJ45接头
  
  Composite组件和Component组件
  二、Component组件与实现
  下面详细说说Component组件与实现。
  SCA允许在很宽的implementation types(实现类型)中选择任何一种实现,例如象Java、BPEL或者C++等都是implementation types(实现类型),每一种类型都描述一个明确的实现技术。这些技术不仅可以是一种语言,象Java,还可以是特殊的框架或者运行环境,象Java技术中的Spring框架和J2EE技术中的EJB环境。
  目前,SCA提供了Spring、EJB、JavaScript、Groovy、Ruby、BPEL等的实现技术,可以将已有的程序实现加入到SCA系统中,为SCA提供具体的功能实现。也可以根据实际需要,通过SCA提供的扩展机制,将新的技术增加到SCA系统中。
  Component组件的Implement联接到一个某种技术的具体实现,这些实现通过Component组件联接到SCA系统中。每个Component组件仅对应一个实现。如图:
  
  图中以.ComponentType为扩展名的文件是SCA提供的机制,对Component的实现提供可扩展的、可配置的实现机制。每个Component组件的细节,包括service、reference和property通过.ComponentType配置实现。
  经过Component组件的封装,形成一个格式一致、描述规范、统一的Component组件实现层。Component组件为Composite组件提供了服务---功能实现,分离了具体技术实现和Composite组件层,也将业务层、架构层与实现层分开。
  
  三、Component组件和实现机制带来的益处
  1、实现层和架构业务层分离,使实现层不必受架构层和业务层的限制和影响,专注与实现。开发人员只需关注实现,架构设计和业务人员也只需关心各自的层面的事情。
  2、每一个Component组件实现一个功能,实现的功能职责清晰,目标明确。每一个实现将精力集中在目标功能上,只做与它相关的事情。
  3、清晰的责任和明确的目的,使代码量变得很少。几百k甚至几十k的代码量就可以完成功能的实现。
  4、代码量的减少,增加了可测试性和可调试性。编码、测试和维护都变得相对简单,提高了开发效率和代码质量。
  5、Component组件的实现粒度非常的小,可以提供很小的独立的接口,提高可复用的程度。
  6、Component组件的实例通过XML格式文件的描述进行装配,以依赖注入模式的松散的耦合方式实现对具体实现的注入。
  7、通过Component组件的配置和依赖注入模式可以非常容易的扩展和替换具体实现。
  8、可以用不同的语言和技术实现相同的功能,充分发挥已有资源的作用,人近其才,物近其用,节省投资。
  这里主要讲了一些Component和实现机制的内容,SCA在架构层所对应的Composite组件提供了什么呢?

细说SCA V1.0规范之Domain与业务

发布时间:2008年09月19日 作者:teamlet

阅读次数:637次 类别:我的文章 永久链接 Trackback 
在写每一篇文章的时候,总是不能把所有的想出来的内容都写出来,真的很遗憾。其实可以很多不同领域角度来看SCA,从数据结构的角度来看SCA,可以从软件开发模型的角度来看SCA,可以从软件生命周期来看SCA。在每个不同的角度,都可以看到SCA良好的适应性和实用性。言归正转,下面说说Domain与业务的部分。 在写每一篇文章的时候,总是不能把所有的想出来的内容都写出来,真的很遗憾。其实可以很多不同领域角度来看SCA,从数据结构的角度来看SCA,可以从软件开发模型的角度来看SCA,可以从软件生命周期来看SCA。在每个不同的角度,都可以看到SCA良好的适应性和实用性。言归正转,下面说说Domain与业务的部分。
  首先,什么是Domain? Domain不就是域吗! 那么域又是什么含义呢? 上互连网有域名的概念,单位里有局域网的概念。这个Domain说白了就是作用的范围,有一个划分边界的含义。一个域就是一个范围,一个作用区域,在这个区域内包含的内容有一个共同的特性。在同一个领域中每个不同的域之间是有明显的分界和不同特性的内容。
  对于SCA中的每个域是针对于一个业务功能进行划分的。每个域对应一定的业务范围,这个业务域可能是一个子系统,也可能是一个模块。比如,财务部门可能有一个财务系统,对应一个财务系统的域。而人力资源对应的是人才管理的域。每个域都对域内的业务提供功能。每个域通过一个URI进行标识。
  在SCA构建模型时是从域开始的。一个域的URI标识和域模型可以是一对一,也可能是一对多的关系。一个URI必然对应一个Domain域且只能是一个。在v0.9规范中没有Domain域的概念,SCA还是可以run运行起来,所以Domain是一个逻辑上的层次。
  Domain域,我理解为两层。一层是命名层,将URI与Domain域建立关联,并通过URI实现对Domain域模型的访问;另一层是一个Composite层,模型中的对象以Composite组件形式进行组织,但是这些组件是由存在内存中的对象组成的,而不是通过外部的文件解析生成的。这些在内存中的对象是通过SCA容器实现初始化、构造、解析等管理的。

restlet中Helper的继承关系

发布时间:2008年09月18日 作者:teamlet

阅读次数:97次 类别:我的文章 永久链接 Trackback 
Uniform定义了REST的6个调用的统一接口方法:delete、get、head、options、post、put和一个处理请求并返回响应的handle方法。这个handle方法是一个未实现的abstract方法。handle方法是处理请求的唯一方法,这个方法是由NRE引擎来实现的。
在Restlet项目中,Uniform是统一的调用入口。
 
Uniform定义了REST的6个调用的统一接口方法:delete、get、head、options、post、put和一个处理请求并返回响应的handle方法。这个handle方法是一个未实现的abstract方法。handle方法是处理请求的唯一方法,这个方法是由NRE引擎来实现的。
 
在Uniform有很多的继承类,这些类都覆写了handle方法,但真正实现这些功能的是NER引擎中的一系列继承了Helper类的Helper实现类。Helper的继承关系如下图:
 
 

restlet简介

发布时间:2008年09月11日 作者:teamlet

阅读次数:743次 类别:我的文章 永久链接 Trackback 
Restlet 是一个新的开源项目,提供用户进行快速建立REST 结构风格的应用的功能。 
Restlet 是一个新的开源项目,提供用户进行快速建立REST 结构风格的应用的功能。 
官方网站: http://www.restlet.org
 
REST是表述性状态转移(REpresentational State Transfer)的简称。REST是Roy T. Fielding在他的博士学位论文中定义的术语。
 
REST也是一种从一个网站得到信息的方式,是通过HTTP进行消息传递的SOAP 的可选方案。
 
Restlet这个开源项目为那些要采用REST结构体系来构建应用程序的Java开发者提供了一个具体的解决方案。
 
该项目开始于 2005年11月,至今已经2年多的时间,目前发布的为 restlet 1.1M5。
 
restlet主要由两部分组成:
1.Restlet API:
   支持所有REST概念(资源,表示法,数据,连接器,组件等)。
   适合于client与server REST应用程序。
   用先进的模式匹配的特性来支持URIs as UI。
   用Chainlets filter来实现像日记,认证与压缩等功能。
   支持阻塞与非阻塞NIO模式。
2.Noelios Restlet Engine (NRE):
   用Noelios Consulting提供的核心包来实现Restlet API。
   利用HTTP (通过Jetty连接器)来提供服务器连接器。
   利用HTTP,JDBC,SMTP (通过JavaMail)来提供客户端连接器。

面向对象度量和Lorenz检验规则

发布时间:2008年07月10日 作者:teamlet

阅读次数:133次 类别:我的文章 永久链接 Trackback 

1、面向对象的几个概念

从面向对象的角度看,世界是由对象和他们之间的关系组成的。

  • 类,是建立对象的模板。它定义了一个对象实例的结构和功能。类定义包括声明数据和方法(行为或者服务);
  • 抽象类,是没有任何实例的类,用来在实现类或者其继承类之间共享数据和方法(行为或者服务);
  • 具体类,是拥有实例的类;
  • 对象,是类的实例;
  • 方法,是类的服务行为。
  • 消息,是对象用来通信的手段。

1、面向对象的几个概念

从面向对象的角度看,世界是由对象和他们之间的关系组成的。

  • 类,是建立对象的模板。它定义了一个对象实例的结构和功能。类定义包括声明数据和方法(行为或者服务);
  • 抽象类,是没有任何实例的类,用来在实现类或者其继承类之间共享数据和方法(行为或者服务);
  • 具体类,是拥有实例的类;
  • 对象,是类的实例;
  • 方法,是类的服务行为。
  • 消息,是对象用来通信的手段。

2、面向对象的度量与类和方法相关

面向对象软件提供的功能数量可以根据可识别的类和方法或者它的变量来估计。因此,基本的面向对象的度量与类和方法以及他们的规模(代码行或者代码的逻辑行数)和功能点是直接相关的。

3、Lorenz检验规则

4、经验值参考

以上的规则和参考值可以为设计、编码和重构优化提供参考。


如何在sourceforge不能访问的时候下载jar

发布时间:2008年07月10日 作者:teamlet

阅读次数:107次 类别:我的文章 永久链接 Trackback 

sf不能访问了,需要sf的一些东西。

找到了这个地址,可以下载jar,暂解燃眉之急:

http://repo1.maven.org/maven2/net/sf/

sf不能访问了,需要sf的一些东西。

找到了这个地址,可以下载jar,暂解燃眉之急:

http://repo1.maven.org/maven2/net/sf/



显示第 1-10 条记录,共 52 条记录 首页 前页 后页 尾页  到第 页,共 6