Publications-Theses
Article View/Open
Publication Export
-
Google ScholarTM
NCCU Library
Citation Infomation
Related Publications in TAIR
題名 以靜態織入方法實現剖面導向工作流程
Design and Implementation of a Static Weaver for Aspectual Workflow作者 許朝傑
Hsu, Chao Chieh貢獻者 陳恭
Chen, Kung
許朝傑
Hsu, Chao Chieh關鍵詞 剖面導向程式設計
工作流程
流程描述語言
靜態織入
橫跨性流程
aspect-oriented programming
workflow
jPDL
static weaving
cross-cutting concerns日期 2008 上傳時間 9-May-2016 12:02:36 (UTC+8) 摘要 現今的應用系統中常會有橫跨性(Cross-Cutting)的程式模組存在,這類程式模組包括:日誌記錄、授權認證、資料永存性等,而這種程式模組在系統中若沒有被區分抽離出來,常常會導致系統重複出現與主要功能需求無關的程式碼,除此之外,這些橫跨性需求的程式碼還會與主要功能需求程式碼糾結在一起,造成程式碼夾雜不清的現象。在工作流程(Workflow)的開發過程中也有著相同的問題。為了解決上述的問題,本研究以JBoss jBPM(Java Business Process Manage- ment)為基礎平台,將剖面導向程式設計(Aspect-Oriented Progra- mming)的觀念與技術運用在工作流程的領域中,使流程設計人員能夠利用AOP的方式來解決橫跨性需求的模組化問題,並且利用靜態織入方法,改善jBPM工作流程引擎進行剖面流程在織入時的效能。
Cross-cutting concerns are those system design issues that cut across the various modules of an application and are typically foundational system services that we need to consider before diving into building an application. Most common among these are logging, authentication, authorization, and persistence. Cross-cutting concerns always cause program code to be scattered and tangled, and therefore make it harder to understand and maintain. Similar problem also occurs in the field of workflow. In our research, we apply the concept of aspect-oriented programming(AOP) to the field of workflow system, and implement a static weaver for jBPM. With static weaver, process designer can use the facilities of AOP, and the performance is also improved via static weaving .
第一章 導論. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 1.1 研究動機. . . . . . . . . . . . . . . . . . . . . . . . . . . .2 1.2 研究目標. . . . . . . . . . . . . . . . . . . . . . . . . . . .2 1.3 本論文的貢獻. . . . . . . . . . . . . . . . . . . . . . . . . .2 1.4 本論文的限制. . . . . . . . . . . . . . . . . . . . . . . . . .2 1.5 論文章節架構. . . . . . . . . . . . . . . . . . . . . . . . . .2 第二章 相關研究與技術背景. . . . . . . . . . . . . . . . . . . . . .4 2.1 Aspect-Oriented Programming(AOP) . . . . . . . . . . . . . .4 2.2 Aspect-Oriented Web Service Composition with AO4BPEL . .6 2.3 Aspect-Oriented Workflow Languages . . . . . . . . . . . . .6 2.4 JBoss jBPM . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 2.4.1 jBPM主要元件介紹. . . . . . . . . . . . . . . . . . . . .7 2.4.2 jPDL介紹. . . . . . . . . . . . . . . . . . . . . . . . . .10 2.4.3 jBPM流程解析方式介紹. . . . . . . . . . . . . . . . . .13 2.4.4 jBPM流程驅動方式. . . . . . . . . . . . . . . . . . . . .14 2.4.5 剖面導向流程範例說明. . . . . . . . . . . . . . . . . .16 第三章 剖面導向流程描述語言. . . . . . . . . . . . . . . . . . . .19 3.1 靜態織入的過程. . . . . . . . . . . . . . . . . . . . . . . . .19 3.2 jPDL的擴充. . . . . . . . . . . . . . . . . . . . . . . . . . .20 3.2.1 jPDL中的Join Point . . . . . . . . . . . . . . . . . . .20 3.2.2 Aspect元素. . . . . . . . . . . . . . . . . . . . . . . . .21 3.2.3 Pointcut元素. . . . . . . . . . . . . . . . . . . . . . .22 3.2.4 Advice元素. . . . . . . . . . . . . . . . . . . . . . . . .25 第四章 靜態織入方法的設計與實作. . . . . . . . . . . . . . . . .32 4.1 靜態織入方法之設計. . . . . . . . . . . . . . . . . . . . . .32 4.2 靜態織入器之架構. . . . . . . . . . . . . . . . . . . . . . .33 4.3 靜態織入器之實作. . . . . . . . . . . . . . . . . . . . . . .35 4.3.1 靜態織入演算法. . . . . . . . . . . . . . . . . . . . . .35 4.3.2 Pointcut的處理. . . . . . . . . . . . . . . . . . . . . .37 4.3.2 Advice的子流程處理. . . . . . . . . . . . . . . . . . .40 4.4 流程測試與效能比較. . . . . . . . . . . . . . . . . . . . .52 第五章 結論與未來發展方向. . . . . . . . . . . . . . . . . . . . .55 5.1 結論. . . . . . . . . . . . . . . . . . . . . . . . .55 5.2 後續工作. . . . . . . . . . . . . . . . . . . . . . . . . . .55 第六章 參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . .57參考文獻 【1】WFMC, Workflow Process Definition Interface-XML Process Definition Language(XPDL), WfMC-TC-1025, October 2005 【2】JBoss, Inc., JBoss jBPM jPDL User Guide, http://docs.jboss.com/jbpm/v3/userguide 【3】AOSD Community, Aspect-Oriented Software Development Community and Conference, http://www.aosd.net. 【4】 G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin, Aspect-oriented programming, in ECOOP `97 Object-Oriented Programming 11th European Conference, Finland (M. Aksit and S. Matsuoka, eds.), vol. 1241. 220-242, 1997. 【5】R. Laddad, AspectJ in Action, Manning Publications, 2003. 【6】AspectJ Project, www.eclipse.org/aspectj/, 2006. 【7】JBoss Group, JBoss jBPM, http://www.jboss.com/products/jbpm 【8】Anis Charfi and Mira Mezini, Aspect-Oriented Web Service Composition with AO4BPEL, In Proceedings of the European Conference on Web Services (ECOWS), volume 3250 of LNCS, Springer, September 2004. 【9】 Boris Bachmendo and Rainer Unland, Aspect-based workflow evolution, In Work-shop on Aspect-Oriented Programming and Separation of Concerns, August 2001. 【10】 Anis Charfi and Mira Mezini, Aspect-Oriented Workflow Languages, Proceedings of the 14th International Conference on Cooperative Information Systems (CoopIS), November 2006. 【11】 Cheng Hsien Chung, Enhancing Workflow Engines with Aspectual Processes, Master’s Thesis of National Chengchi University, January 2008. 【12】JUnit, http://www.junit.org/index.htm, 2006. 【13】 Mike Gunderloy and Sybex, Coder to Developer, Sybex Publications, 2004. 【14】 G. Joeris and O. Herzog, Managing Evolving Workflow Specifications, Third International Conference of Cooperative Information Systems, New York, August 1998 【15】 J. Clark and S. DeRose, XML Path Language (XPath)Version 1.0, W3C Recom-mendation 16 November 1999. 【16】 JBoss, Inc., JBoss jBPM WS-BPEL Runtime User Guide, http://docs.jboss.com/jbpm/bpel/ 【17】 J. Gradecki and N. Lesiecki, Mastering AspectJ, Wiley Publications, 2003. 【18】 Jörg Becker and Michael zur Muehlen, Workflow Handbook 2002, Future Strategies Inc., Book Division, Pages:39-50. 【19】Matt Cumberlidge, Business Process Management with JBoss jBPM, PACKT Publishing, 2007. 【20】 P. Niemeyer, BeanShell, http://www.beanshell.org/. 描述 碩士
國立政治大學
資訊科學學系
95753041資料來源 http://thesis.lib.nccu.edu.tw/record/#G0095753041 資料類型 thesis dc.contributor.advisor 陳恭 zh_TW dc.contributor.advisor Chen, Kung en_US dc.contributor.author (Authors) 許朝傑 zh_TW dc.contributor.author (Authors) Hsu, Chao Chieh en_US dc.creator (作者) 許朝傑 zh_TW dc.creator (作者) Hsu, Chao Chieh en_US dc.date (日期) 2008 en_US dc.date.accessioned 9-May-2016 12:02:36 (UTC+8) - dc.date.available 9-May-2016 12:02:36 (UTC+8) - dc.date.issued (上傳時間) 9-May-2016 12:02:36 (UTC+8) - dc.identifier (Other Identifiers) G0095753041 en_US dc.identifier.uri (URI) http://nccur.lib.nccu.edu.tw/handle/140.119/94861 - dc.description (描述) 碩士 zh_TW dc.description (描述) 國立政治大學 zh_TW dc.description (描述) 資訊科學學系 zh_TW dc.description (描述) 95753041 zh_TW dc.description.abstract (摘要) 現今的應用系統中常會有橫跨性(Cross-Cutting)的程式模組存在,這類程式模組包括:日誌記錄、授權認證、資料永存性等,而這種程式模組在系統中若沒有被區分抽離出來,常常會導致系統重複出現與主要功能需求無關的程式碼,除此之外,這些橫跨性需求的程式碼還會與主要功能需求程式碼糾結在一起,造成程式碼夾雜不清的現象。在工作流程(Workflow)的開發過程中也有著相同的問題。為了解決上述的問題,本研究以JBoss jBPM(Java Business Process Manage- ment)為基礎平台,將剖面導向程式設計(Aspect-Oriented Progra- mming)的觀念與技術運用在工作流程的領域中,使流程設計人員能夠利用AOP的方式來解決橫跨性需求的模組化問題,並且利用靜態織入方法,改善jBPM工作流程引擎進行剖面流程在織入時的效能。 zh_TW dc.description.abstract (摘要) Cross-cutting concerns are those system design issues that cut across the various modules of an application and are typically foundational system services that we need to consider before diving into building an application. Most common among these are logging, authentication, authorization, and persistence. Cross-cutting concerns always cause program code to be scattered and tangled, and therefore make it harder to understand and maintain. Similar problem also occurs in the field of workflow. In our research, we apply the concept of aspect-oriented programming(AOP) to the field of workflow system, and implement a static weaver for jBPM. With static weaver, process designer can use the facilities of AOP, and the performance is also improved via static weaving . en_US dc.description.abstract (摘要) 第一章 導論. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 1.1 研究動機. . . . . . . . . . . . . . . . . . . . . . . . . . . .2 1.2 研究目標. . . . . . . . . . . . . . . . . . . . . . . . . . . .2 1.3 本論文的貢獻. . . . . . . . . . . . . . . . . . . . . . . . . .2 1.4 本論文的限制. . . . . . . . . . . . . . . . . . . . . . . . . .2 1.5 論文章節架構. . . . . . . . . . . . . . . . . . . . . . . . . .2 第二章 相關研究與技術背景. . . . . . . . . . . . . . . . . . . . . .4 2.1 Aspect-Oriented Programming(AOP) . . . . . . . . . . . . . .4 2.2 Aspect-Oriented Web Service Composition with AO4BPEL . .6 2.3 Aspect-Oriented Workflow Languages . . . . . . . . . . . . .6 2.4 JBoss jBPM . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 2.4.1 jBPM主要元件介紹. . . . . . . . . . . . . . . . . . . . .7 2.4.2 jPDL介紹. . . . . . . . . . . . . . . . . . . . . . . . . .10 2.4.3 jBPM流程解析方式介紹. . . . . . . . . . . . . . . . . .13 2.4.4 jBPM流程驅動方式. . . . . . . . . . . . . . . . . . . . .14 2.4.5 剖面導向流程範例說明. . . . . . . . . . . . . . . . . .16 第三章 剖面導向流程描述語言. . . . . . . . . . . . . . . . . . . .19 3.1 靜態織入的過程. . . . . . . . . . . . . . . . . . . . . . . . .19 3.2 jPDL的擴充. . . . . . . . . . . . . . . . . . . . . . . . . . .20 3.2.1 jPDL中的Join Point . . . . . . . . . . . . . . . . . . .20 3.2.2 Aspect元素. . . . . . . . . . . . . . . . . . . . . . . . .21 3.2.3 Pointcut元素. . . . . . . . . . . . . . . . . . . . . . .22 3.2.4 Advice元素. . . . . . . . . . . . . . . . . . . . . . . . .25 第四章 靜態織入方法的設計與實作. . . . . . . . . . . . . . . . .32 4.1 靜態織入方法之設計. . . . . . . . . . . . . . . . . . . . . .32 4.2 靜態織入器之架構. . . . . . . . . . . . . . . . . . . . . . .33 4.3 靜態織入器之實作. . . . . . . . . . . . . . . . . . . . . . .35 4.3.1 靜態織入演算法. . . . . . . . . . . . . . . . . . . . . .35 4.3.2 Pointcut的處理. . . . . . . . . . . . . . . . . . . . . .37 4.3.2 Advice的子流程處理. . . . . . . . . . . . . . . . . . .40 4.4 流程測試與效能比較. . . . . . . . . . . . . . . . . . . . .52 第五章 結論與未來發展方向. . . . . . . . . . . . . . . . . . . . .55 5.1 結論. . . . . . . . . . . . . . . . . . . . . . . . .55 5.2 後續工作. . . . . . . . . . . . . . . . . . . . . . . . . . .55 第六章 參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . .57 - dc.description.tableofcontents 第一章 導論. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 1.1 研究動機. . . . . . . . . . . . . . . . . . . . . . . . . . . .2 1.2 研究目標. . . . . . . . . . . . . . . . . . . . . . . . . . . .2 1.3 本論文的貢獻. . . . . . . . . . . . . . . . . . . . . . . . . .2 1.4 本論文的限制. . . . . . . . . . . . . . . . . . . . . . . . . .2 1.5 論文章節架構. . . . . . . . . . . . . . . . . . . . . . . . . .2 第二章 相關研究與技術背景. . . . . . . . . . . . . . . . . . . . . .4 2.1 Aspect-Oriented Programming(AOP) . . . . . . . . . . . . . .4 2.2 Aspect-Oriented Web Service Composition with AO4BPEL . .6 2.3 Aspect-Oriented Workflow Languages . . . . . . . . . . . . .6 2.4 JBoss jBPM . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 2.4.1 jBPM主要元件介紹. . . . . . . . . . . . . . . . . . . . .7 2.4.2 jPDL介紹. . . . . . . . . . . . . . . . . . . . . . . . . .10 2.4.3 jBPM流程解析方式介紹. . . . . . . . . . . . . . . . . .13 2.4.4 jBPM流程驅動方式. . . . . . . . . . . . . . . . . . . . .14 2.4.5 剖面導向流程範例說明. . . . . . . . . . . . . . . . . .16 第三章 剖面導向流程描述語言. . . . . . . . . . . . . . . . . . . .19 3.1 靜態織入的過程. . . . . . . . . . . . . . . . . . . . . . . . .19 3.2 jPDL的擴充. . . . . . . . . . . . . . . . . . . . . . . . . . .20 3.2.1 jPDL中的Join Point . . . . . . . . . . . . . . . . . . .20 3.2.2 Aspect元素. . . . . . . . . . . . . . . . . . . . . . . . .21 3.2.3 Pointcut元素. . . . . . . . . . . . . . . . . . . . . . .22 3.2.4 Advice元素. . . . . . . . . . . . . . . . . . . . . . . . .25 第四章 靜態織入方法的設計與實作. . . . . . . . . . . . . . . . .32 4.1 靜態織入方法之設計. . . . . . . . . . . . . . . . . . . . . .32 4.2 靜態織入器之架構. . . . . . . . . . . . . . . . . . . . . . .33 4.3 靜態織入器之實作. . . . . . . . . . . . . . . . . . . . . . .35 4.3.1 靜態織入演算法. . . . . . . . . . . . . . . . . . . . . .35 4.3.2 Pointcut的處理. . . . . . . . . . . . . . . . . . . . . .37 4.3.2 Advice的子流程處理. . . . . . . . . . . . . . . . . . .40 4.4 流程測試與效能比較. . . . . . . . . . . . . . . . . . . . .52 第五章 結論與未來發展方向. . . . . . . . . . . . . . . . . . . . .55 5.1 結論. . . . . . . . . . . . . . . . . . . . . . . . .55 5.2 後續工作. . . . . . . . . . . . . . . . . . . . . . . . . . .55 第六章 參考文獻. . . . . . . . . . . . . . . . . . . . . . . . . . . .57 zh_TW dc.source.uri (資料來源) http://thesis.lib.nccu.edu.tw/record/#G0095753041 en_US dc.subject (關鍵詞) 剖面導向程式設計 zh_TW dc.subject (關鍵詞) 工作流程 zh_TW dc.subject (關鍵詞) 流程描述語言 zh_TW dc.subject (關鍵詞) 靜態織入 zh_TW dc.subject (關鍵詞) 橫跨性流程 zh_TW dc.subject (關鍵詞) aspect-oriented programming en_US dc.subject (關鍵詞) workflow en_US dc.subject (關鍵詞) jPDL en_US dc.subject (關鍵詞) static weaving en_US dc.subject (關鍵詞) cross-cutting concerns en_US dc.title (題名) 以靜態織入方法實現剖面導向工作流程 zh_TW dc.title (題名) Design and Implementation of a Static Weaver for Aspectual Workflow en_US dc.type (資料類型) thesis en_US dc.relation.reference (參考文獻) 【1】WFMC, Workflow Process Definition Interface-XML Process Definition Language(XPDL), WfMC-TC-1025, October 2005 【2】JBoss, Inc., JBoss jBPM jPDL User Guide, http://docs.jboss.com/jbpm/v3/userguide 【3】AOSD Community, Aspect-Oriented Software Development Community and Conference, http://www.aosd.net. 【4】 G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin, Aspect-oriented programming, in ECOOP `97 Object-Oriented Programming 11th European Conference, Finland (M. Aksit and S. Matsuoka, eds.), vol. 1241. 220-242, 1997. 【5】R. Laddad, AspectJ in Action, Manning Publications, 2003. 【6】AspectJ Project, www.eclipse.org/aspectj/, 2006. 【7】JBoss Group, JBoss jBPM, http://www.jboss.com/products/jbpm 【8】Anis Charfi and Mira Mezini, Aspect-Oriented Web Service Composition with AO4BPEL, In Proceedings of the European Conference on Web Services (ECOWS), volume 3250 of LNCS, Springer, September 2004. 【9】 Boris Bachmendo and Rainer Unland, Aspect-based workflow evolution, In Work-shop on Aspect-Oriented Programming and Separation of Concerns, August 2001. 【10】 Anis Charfi and Mira Mezini, Aspect-Oriented Workflow Languages, Proceedings of the 14th International Conference on Cooperative Information Systems (CoopIS), November 2006. 【11】 Cheng Hsien Chung, Enhancing Workflow Engines with Aspectual Processes, Master’s Thesis of National Chengchi University, January 2008. 【12】JUnit, http://www.junit.org/index.htm, 2006. 【13】 Mike Gunderloy and Sybex, Coder to Developer, Sybex Publications, 2004. 【14】 G. Joeris and O. Herzog, Managing Evolving Workflow Specifications, Third International Conference of Cooperative Information Systems, New York, August 1998 【15】 J. Clark and S. DeRose, XML Path Language (XPath)Version 1.0, W3C Recom-mendation 16 November 1999. 【16】 JBoss, Inc., JBoss jBPM WS-BPEL Runtime User Guide, http://docs.jboss.com/jbpm/bpel/ 【17】 J. Gradecki and N. Lesiecki, Mastering AspectJ, Wiley Publications, 2003. 【18】 Jörg Becker and Michael zur Muehlen, Workflow Handbook 2002, Future Strategies Inc., Book Division, Pages:39-50. 【19】Matt Cumberlidge, Business Process Management with JBoss jBPM, PACKT Publishing, 2007. 【20】 P. Niemeyer, BeanShell, http://www.beanshell.org/. zh_TW