论文部分内容阅读
当前,Web服务研究已经成为一个热点,相关的技术不断涌现,如:SOAP、WSDL、UDDI、XLANG、WSFL等。这些技术大大推动了web服务的发展,也不断提出新的挑战。目前用于开发web服务的语言通常是传统的编程语言(如:JAVA、C#),虽然这些传统语言功能强大,但要想使web服务获得更好的可扩展性、安全性、可靠性,使开发效率得到有效提高还存在一定的困难。为了在一定程度上解决这些问题,Danida Florescu等人提出了一种专门为实现web服务而设计的语言——XML Language(XL)。本文从XML Language语言规范出发,详细讨论了实现这种新语言的步骤和关键技术。 XL语言专门为web服务构建,它小巧轻便并且完全与W3C标准(比如XQUERY查询语言、XML协议、XML Schema等)兼容。XL的一个关键特征是使程序员可以专注于应用程序的逻辑开发,而不需要纠缠于底层复杂的细节(如通讯协议、数据整合等)。在语法上,这种语言提供了一种高层的、声明性的语句编程风格,用具有这种风格的语句编程不仅可以实现web服务的行为方法(比如日志、错误处理、工作量管理和事件等);还可以自动实现大部分性能优化策略(如缓存,平行处理等)。基于以上这些特点,利用XL语言进行web服务开发,其开发效率、软件性能等方面都可以得到明显的提高。 本文在对XL语言的语法、语义进行详细分析的基础上,提出了实现该语言的体系结构,该体系结构是基于XQuery查询引擎的,主要包含编译器和虚拟机。对编译器和虚拟机的各个关键部分(如语法树,上下文等),文章都做了详细的分析。在这些理论基础之上,我们用Java初步实现了用于编译运行该语言的服务平台。作为一种尝试,语法树和语句树利用XML文档进行表示:服务器按Servlet的方式进行设计;XL程序的执行方式采用的是对XML文档进行解释执行的方法。 由于XL语言规范的制定还处于初期阶段,有很多不完善的方面,本文所实现的平台也仅是个初级的模型,还有很多工作要做,所以文章最后对进一步工作进行了探讨。