中国科学院机构知识库网格
Chinese Academy of Sciences Institutional Repositories Grid
事件驱动的BPEL引擎架构设计与实现

文献类型:学位论文

作者南方
学位类别博士
答辩日期2008-06-06
授予单位中国科学院软件研究所
授予地点软件研究所
关键词BPEL Web服务 事件驱动并发 中间件
其他题名Design and Implementation of Event-driven BPEL Engine
中文摘要WS-BPEL(Web Service Business Process Execution Language,简称BPEL)是Web服务规范族中服务复合层的重要标准。BPEL支持通过对Web服务的编制(Orchestration)来构建业务流程,从而使编程人员能够集中关注业务逻辑。BPEL引擎系统是一个支持BPEL语言描述的业务流程运行的服务器中间件系统,使用BPEL引擎可以执行BPEL语言编写的业务流程。作为一个网络服务器系统,BPEL引擎将不可避免的处理大量的并发请求。如何设计实现BPEL引擎使之能高效的处理并发将是高性能BPEL引擎设计的关键问题。 并发服务器系统通常采用多线程和事件驱动两种并发模型。传统上大多数服务器软件都建立在多线程(或多进程)模型的基础上。但在高负载条件下,过多的线程和线程间的上下文切换会造成系统较大的开销,这些开销是导致系统性能下降的主要原因。事件驱动模型是一种只采用少量固定数量线程的并发模型,一般说来,它的伸缩性更好,并且有更高的处理效率。 本文对高并发服务器系统中所使用的事件驱动模型进行了分析和研究,并且结合BPEL语言规范的特点,提出了事件驱动的BPEL引擎实现技术方案。论文重点研究了BPEL事件结构和有限状态机(Finite State Machine,简称FSM)刻画BPEL流程和活动行为的原理,针对BPEL语言语法特点,构造了完整的BPEL FSM模型,包括了状态空间和基于ECA(Event-Condition-Action)模式的状态转移规则。 在基于事件驱动模型的BPEL引擎架构原理的指导下,我们设计并实现了基于事件驱动模型的OnceBPEL2.0引擎系统。并且,我们对采用多线程模型实现的OnceBPEL1.0系统和采用事件驱动模型实现的OnceBPEL2.0系统进行了性能测试和分析比较。从我们的测试数据和分析结果可以看出,采用事件驱动模型的OnceBPEL2.0系统比采用多线程模型的OnceBPEL1.0有了较大的性能提升。
英文摘要WS-BPEL (Web Service Business Process Execution Language, BPEL for short) is an important standard for web service composition. The programmer can focus on business logic and design an executable business process by orchestrating web services with BPEL. A BPEL engine is a BPEL process runtime server middleware. As an internet server system, concurrency is a key issue for a BPEL engine. In the design of server applications there are two most commonly employed concurrent programming models: thread-based concurrency and event-driven concurrency. The most commonly used design for server applications is the thread-based or process-based model. Howerver, in the case of overloaded pressure for a thread-based server, the growing thread contexts switching can cause degradation of performance. On the other hand, an application based on event-driven concurrency consists of only a small number of threads and event-driven concurrency is typically more scalable and efficient than thread-driven concurrency. Therefore, this dissertation proposes a principle of an event-driven BPEL engine based on the study and analysis of event-driven concurrency model and BPEL language. On this principle, we put much effort on studying the structure and relationship of events and finite state machine (FSM for short) in our BPEL engine. This paper presents comparatively self-contained BPEL FSM data structures and ECA (Event-Condition-Action) rules for our engine. With the guidance of our event-driven BPEL engine principle, a real BPEL engine called OnceBPEL2.0 is designed and implemented. Furthermore, we test and compare performance of the two different BPEL engines, OnceBPEL2.0 based on event-driven concurrency and OnceBPEL1.0 based on thread-based concurrency, under same pressures. Our results of the testing show that OnceBPEL2.0 has much higher performance than OnceBPEL1.0.
语种中文
公开日期2011-03-17
页码87
源URL[http://124.16.136.157/handle/311060/7308]  
专题软件研究所_软件工程技术研究开发中心 _学位论文
推荐引用方式
GB/T 7714
南方. 事件驱动的BPEL引擎架构设计与实现[D]. 软件研究所. 中国科学院软件研究所. 2008.

入库方式: OAI收割

来源:软件研究所

浏览0
下载0
收藏0
其他版本

除非特别说明,本系统中所有内容都受版权保护,并保留所有权利。