专访开源项目Amoeba架构师陈思儒
DBA notes站长冯大辉(Fenng)代表InfoQ中文站采访了分布式数据库Proxy开源项目Amoeba的架构师和主要开发者陈思儒,内容包括Amoeba项目的起因、功能及其愿景等。
作者 Jean-Jacques Dubray译者 郭晓刚 发布于 2007年8月22日 下午12时9分
公平地说,XML Schema 1.0已经获得了广泛的接受,尽管在它最初登场的时候受到了来自数据、Web和文档社群的种种非议。人们已经停止使用DTD,甚至连轻量级的替代品如Relax NG也似乎失去了发展的动力。W3C数年前启动的XML Schema 1.1工作组正准备下个月发出“最后召集”,这意味着“它将在十二个月内成为W3C推荐标准(Recommendation)[即最高规格的规范]”,David Orchard如是说,他是BEA的标准架构师以及XML Schema 1.1工作组的成员。
也就是说如果你有大量的XML Schema,可能现在就应该开始着手计划迁移你的Schema和数据绑定策略了。
模块性、扩展性和版本化(Versioning)是面向服务架构中消息格式设计的关键方面,而且从XML Schema出现起对于最佳使用模式的争论就一直延续至今,因为规范本身允许多种特性的组合(全局vs局部类型或元素、限定vs非限定的命名空间……)。Roger Costello对这些模式写过一篇详尽的总结。每种模式提供的模块性和扩展性在程度上各有不同。
在新的 XML Schema 1.1版中,工作组花费了大量的时间来解决XML Schema的版本化。在考察了大量的用例之后,七月份W3C发布了《用XML Schema 1.1新特性对XML语言进行版本化的指南》(定案后将成为一份W3C备忘录)的阶段性更新,以及三份技术架构组(TAG)文档,分别是《语言的扩展及版本化:术语》、《语言的扩展及版本化:XML语言》(译注:非指XML本身,而是指用XML形式定义的语言)和《语言的扩展及版本化:策略》。
XML Schema 1.1包含很多新的扩展机制。
- 弱通配符(Weak Wildcard)——允许通配符紧接在可选元素之后
- 对all组的更新——可在all组中使用通配符
- 反向通配符(Negative Wildcard)——排除特定的命名空间与名字
- 回退到声明类型——如果xsi:type未知则使用声明类型。
- 通配符的自动插入
- “不在Schema中”通配符(Not in Schema Wildcard)——这个通配符匹配当前Schema中没有定义的所有事物。
其中一项关键的革新是将扩展性织入到元素序列,而在1.0版中,附加的元素只能紧跟在复杂类型定义的后面。版本化指南中详细描述的许多技术,毫无疑问将产生出更多的设计模式,并且创造出更灵活的服务接口,从而在服务的消费者与生产者之间达成更加松散的耦合。
查看英文原文:W3C Publishes an Update to Guide to Versioning XML Schema 1.1DBA notes站长冯大辉(Fenng)代表InfoQ中文站采访了分布式数据库Proxy开源项目Amoeba的架构师和主要开发者陈思儒,内容包括Amoeba项目的起因、功能及其愿景等。
作为三期系列文章的第二部分,本文延续了上一期内容,介绍了RichFaces,包括如何把RichFaces集成到之前提到的示例应用中、如何部署RichFaces porlet和RichFaces的多种特性和功能。
Amazon Web Services(AWS)的传道者Jeff Barr讨论了SimpleDB、S3、EC2、SQS、云计算、Amazon的不同服务如何与应用交互、AWS的起源、SimpleDB和微软SQL Server Data Services、AWS cloud的全球化、三月份的AWS停机。
Erlang的并发模型很有名,它的健壮性也很有名。但其他方面呢?在这篇文章里,Dennis Byrne演示了如何用Erlang建立内部DSL。
本视频主要以FreeWheel为例,对一个基于Rails的企业级应用进行了剖析。其中包括:FreeWheel的架构、部署、数据库的问题、REST API、敏捷开发过程、如何去写测试以及持续集成等等。
JavaFX显示了Sun的Java系列产品市场方向的一个重大转变。随着1.0版的即将发布,InfoQ以JavaFX预览版为参考,与Sun高级工程师Joshua Marinacci探讨了即将发布的1.0正式版。
本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。
没有回复
回复