學術產出-Theses

Article View/Open

Publication Export

Google ScholarTM

政大圖書館

Citation Infomation

  • No doi shows Citation Infomation
題名 以靜態織入方法實現剖面導向工作流程
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, Kungen_US
dc.contributor.author (Authors) 許朝傑zh_TW
dc.contributor.author (Authors) Hsu, Chao Chiehen_US
dc.creator (作者) 許朝傑zh_TW
dc.creator (作者) Hsu, Chao Chiehen_US
dc.date (日期) 2008en_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) G0095753041en_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 (描述) 95753041zh_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/#G0095753041en_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 programmingen_US
dc.subject (關鍵詞) workflowen_US
dc.subject (關鍵詞) jPDLen_US
dc.subject (關鍵詞) static weavingen_US
dc.subject (關鍵詞) cross-cutting concernsen_US
dc.title (題名) 以靜態織入方法實現剖面導向工作流程zh_TW
dc.title (題名) Design and Implementation of a Static Weaver for Aspectual Workflowen_US
dc.type (資料類型) thesisen_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