簡易檢索 / 詳目顯示

研究生: 蕭宇程
Hsiao Yu Cheng
論文名稱: 使用面向導向以及控制反轉的工作流程系統設計
An Aspect-Oriented Designs of WfMS with IoC
指導教授: 黃冠寰
Hwang, Gwan-Hwan
學位類別: 碩士
Master
系所名稱: 資訊教育研究所
Graduate Institute of Information and Computer Education
論文出版年: 2007
畢業學年度: 95
語文別: 中文
論文頁數: 51
中文關鍵詞: 工作流程工作流程管理系統面向導向控制反轉
英文關鍵詞: Workflow, Workflow Management System, Aspect-Oriented Programming, Inversion of Control
論文種類: 學術論文
相關次數: 點閱:87下載:1
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 隨著工作流程系統提供的服務愈多,系統規模愈大,若只單純使用傳統物件導向的方式去實作,系統架構會因為物件導向的特性而被侷限。造成複雜度提升,難以維護,而且不容易擴充與重用系統中的元件。
    近來許多較新的技術,如Aspect-Oriented Programming (AOP)、Inversion of Control (IoC)、Object-Relational Mapping (ORM)等,可幫助我們以更簡單、更容易維護、擴充的方式去實作出重用程度更高的工作流程系統。
    其中以AOP其separation of concern的概念對傳統物件導向的衝擊最大,因為它提供了管理crosscutting concern的機制,解決了以往在物件導向系統中複雜且難以處理的部份。
    本篇論文提出一個應用了AOP、IoC、ORM等新技術的工作流程系統實作,並以其中物件導向的object stack與方面導向的aspect stack如何互相運作,將系統分為許多可重用的物件導向或方面導向元件,以達成更好的重用性與可擴充性。

    In this paper, we proposed an aspect-oriented designs of workflow management system with inversion of control. In software engineering, the programming paradigms of aspect-oriented programming (AOP) attempt to aid programmers in the separation of concerns, specifically crosscutting concerns, as an advance in modularization. Inversion of Control, also known as IOC, is an programming principle that can be used to reduce coupling inherent in computer programs. The combination of these two technology will make a more reusable, maintainable, extendable workflow management system.

    1. Introduction 1 1.1. Workflow Management System 1 1.2. Object-Oriented Programming 2 1.3. Aspect-Oriented Programming 3 1.4. Inversion of Control 7 1.5. Annotation 9 1.6. Our System 10 1.7. Thesis Organization 10 2. Previous Work 11 3. Considerations for Increasing the Reusability of Components in AOP and IoC 13 3.1. WfMS Components 14 3.1.1. Workflow Engine 14 3.1.2. Workflow Process Definition 15 3.1.3. Workflow Process 15 3.1.4. Workflow Activity 16 3.1.5. Workflow Transition 16 3.1.6. User Interface 19 3.1.7. Failure Recovery 19 3.1.8. Persistence 20 3.2. Improvement with AOP 20 3.2.1. Workflow Activity 20 3.3. Improvement with IoC 22 3.3.1. Workflow Engine 22 3.3.2. Activity and Execution code 25 4. The Function Stack and Operational Architect of the AO-WfMS 27 Layer 1: Fundamental Layer 28 I. The OO Fundamental Layer 28 II. The AO Fundamental Layer 28 Layer 2: Workflow Basic Component Layer 29 I. The OO Workflow Basic Component Layer 29 II. The AO Workflow Basic Component Layer 29 Layer 3: Workflow Process Composition Layer 29 I. The OO Workflow Process Composition Layer 29 II. The AO Workflow Process Composition Layer 30 4.1. Workflow Engine 30 4.2. Workflow Process Definition 31 4.3. Workflow Process、Activity、Transition 32 4.4. User Interface 33 4.5. Workflow Persistence 34 5. Implementation and Experimental Results 35 5.1. Simplification of Domain Object 35 5.2. Simplification of Logging 38 5.3. Simplification of Asynchronous Execution 41 5.4. Metrics and Experimental Results 42 6. Conclusions and Future Work 48 7. References 49

    [1] Shi Meilin, Yang Guangxin, Xiang Yong, and Wu Shangguang. Workflow Management Systems: A Survery. International Conference on Communication Technology, 1998.
    [2] WFMC. Workflow Management Coalition Workflow Standard: Workflow Process Definition Interface – XML Process Definition Language (XPDL) (WFMC-TC-1025). Technical report, Workflow Management Coalition, Lighthouse Point, Florida, USA, 2002.
    [3] Workflow Management Coalition. Workflow: An Introduction. Workflow Handbook, 2002.
    [4] Robert C. Martin, Agile Software Development: Principles, Patterns, and Practices, 2002.
    [5] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, Boston, 1995.
    [6] Deepak Alur, Dan Malks, and John Crupi. Core J2EE Patterns: Best Practices and Design Strategies (2nd ed.), Prentice Hall, Upper Saddle River, NJ, 2003.
    [7] Ramnivas Laddad, AspectJ in Action - Practical Aspect-Oriented Programming, Manning Publications Co., 2003.
    [8] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. M. Loingtier, and J. Irwin. "Aspect-Oriented Programming." In ECOOP '97-Object-Oriented Programming, 11th European Conference. LNCS 1241, pp. 220-242, 1997.
    [9] M.Aksit and B. Tekinerdogan. “Aspect-Oriented Programming Using Composition Filters, in Object-Oriented Technology.” In S. Demeyer and J. Bosch (Eds.), ECCOP ’98 Workshop Reader, Springer Verlag, pp. 435, July 1998.
    [10] L.Bergmans and M. Aksit. “Composing Crosscutting Concerns Using Composition Filters,” Communications of the ACM, Vol. 44, No. 10, pp. 51-57, October 2001.
    [11] Peri Tarr, Harold Ossher, William Harrison, and Stanley Sutton. “N Degrees of Separation: Multi-Dimensional Separation of Concerns.” ICSE 1999 Conference Proceedings, 1999.
    [12] H. Ossher and P. Tarr. “Multi-Dimensional Separation of Concerns and the Hyperspace Approach.” Proceedings of the Symposium on Software Architectures and Component Technology: The State of the Art in Software Development, Kluwer, 2000.
    [13] Karl J. Lieberherr, Ignacio Silva-Lepe, and Cun Siao. “Adaptive Object-Oriented Programming Using Graph-Based Customisation,” Communications of the ACM, pp. 94-101, May 1994.
    [14] The AspectJ Project, http://www.eclipse.org/aspectj/
    [15] AspectWerkz, http://aspectwerkz.codehaus.org/
    [16] JBoss AOP, http://labs.jboss.com/jbossaop/
    [17] Martin Fowler, Inversion of Control Containers and the Dependency Injection pattern, http://www.martinfowler.com/articles/injection.html, 2004.
    [18] Spring Framework, http://www.springframework.org/.
    [19] Annotations, http://java.sun.com/j2se/1.5.0/docs/guide/language/annotations.html.
    [20] OSWorkflow, http://www.opensymphony.com/osworkflow/.
    [21] JBoss jBPM, http://www.jboss.com/products/jbpm.
    [22] ActiveBPEL Engine Architecture, http://www.activebpel.org/docs/architecture.html.
    [23] Gwan-Hwan Hwang, Yung-Chuan Lee, and Sheng-He Chang, Design of an Object-Oriented Workflow Management System with Reusable and Fine-Grained Components, CRIWG 2005, Lecture Notes in Computer Science, Vol. 3706, ISBN:3-540-29110-5, pp. 192 – 207, 2005.
    [24] Workflow Management Coalition. Workflow Reference Model. Workflow Management Coalition Standard, WfMC-TC-1003, 1995.
    [25] Object Management Group. Workflow management facility specification, 2000. OMG Document Number formal/00-05-02. Available at http://www.omg.org.
    [26] IBM, BEA Systems, Microsoft, SAP AG, and Siebel Systems, Business Process Execution Language for Web Services version 1.1, May 2003.
    [27] B. Kiepuszewski, A.H.M. ter Hofstede, W.M.P. van der Aalst, Fundamentals of Control Flow in Workflows. QUT Technical report, FIT-TR-2002-03, Queensland University of Technology, Brisbane, 2002
    [28] J. L. Peterson, Petri net theory and the modeling of systems, Prentice Hall, 1981.
    [29] van der Aalst, W., and van Hee, K., Workflow Management: Models, Methods, and Systems. The MIT Press. 368 pp., 2002. ISBN 0-262-01189-1.
    [30] Bruce A. Tate, Beyond Java, O'Reilly, September 2005.
    [31] Ruby Programming Language, http://www.ruby-lang.org/en/.
    [32] Groovy, http://groovy.codehaus.org/.
    [33] BeanShell, http://www.beanshell.org/.
    [34] Chidamber, S. and Kemerer, C. A Metrics Suite for OO Design. IEEE Trans. On Soft. Eng., 20-6, June 1994, 476-493.
    [35] Garcia, A., Sant'Anna, C., Figueiredo, E., Kulesza, U., Lucena, C., Staa, A. Modularizing Design Patterns with Aspects: A Quantitative Study. LNCS Transactions on Aspect-Oriented Software Development, Springer, 2005.
    [36] Sant’Anna, C. et al. On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework. Proc. of Brazilian Symposium on Software Engineering (SBES ’03), Manaus, Brazil, Oct 2003, 19-34.

    QR CODE