A New Component Model and Framework for Reuse of Components

컴포넌트 재사용을 지원하는 컴포넌트 모델 및 프레임워크

  • Published : 2007.12.15

Abstract

It is difficult to assemble independently developed software components because of discrepancies between their interfaces. In order to resolve such problem, we propose a new component model, Active Binding Technology, in which each component has its own independently-defined interface for service request that is revealed in its metadata, instead of passively following the interface of a service-providing component. This model Includes the use of the glue component, an interface mediating place, whose template code is automatically generated by reading in the metadata of the components to be combined. We also propose a runtime framework that holds the pool of component instances, completes the assembly of components in the manner of dependency injection, and performs middleware services and real-time system monitoring through glue components. In order to test the practical value of Active Binding Technology, we have made a tool, which supports the development and assembly of Active Binding components.

독립적으로 개발된 상용 컴포넌트들을 소스 코드 수정 없이 조립하여 재사용하기 위해서는 컴포넌트간 인터페이스 불일치 문제를 해결해야 한다. 본 논문에서는 이러한 문제를 해결하기 위한 새로운 컴포넌트 모델 및 조립 방법을 제안한다. 제안한 컴포넌트 모델은 각 컴포넌트가 서비스를 제공하는 하위 컴포넌트의 인터페이스에 의존하는 대신 서비스 요청에 관한 인터페이스를 독자적으로 정의하여 내장하고 이를 메타데이타로 노출한다. 조립 시에는 컴포넌트들의 요청 및 서비스 제공 인터페이스에 대한 메타데이타를 읽어 글루 컴포넌트 템플릿 코드를 자동 생성하여 인터페이스 정합에 필요한 중재 코드를 삽입하는 구조이다. 또 프레임워크에서 컴포넌트들에 대한 인스턴스를 관리하고 런타임시 의존성 주입 방식으로 조립을 수행하며, 글루 컴포넌트를 미들웨어 서비스 포인트 및 실시간 모니터링 포인트로 활용하는 방안도 제안한다. 이와 한께 본 논문은 제안한 컴포넌트 모델에 따르는 컴포넌트를 개발하고 조림하는 도구를 구현하여, 실용 가능성을 입증하였다.

Keywords

References

  1. B. W. Boehm, M. H. Penedo, E. D. Stuckle, R. D. Williams and A.B.Pyster, 'A Software Development Environment for Improving Productivity,' IEEE Computer, Vol.17, No.6, pp. 30-44, June, 1984
  2. P. Clements, 'From Subroutines to Subsystems: Component-Based Software Development,' The American Programmer, Vol.8, No.11, November, 1995
  3. Steve Latchem, 'Component Infrastructures: Placing Software Components in Context,' Chapter 15 of Component-Based Software Engineering: Putting the Pieces Together, Addison-Wesley, 2001
  4. Antonio Vallecillo, Juan Hernandez and Jose M. Troya, 'New Issues in Object Interoperability,' In Object-Oriented Technology: ECOOP 2000 Workshop Reader, No. 1964 in LNCS, pp. 256-269, Springer Verlag, 2000
  5. Richard Monson-Haefel. 'Enterprise JavaBeans,' O'Reilly, Second edition, 2000
  6. 'An Introduction to Microsoft .NET. White Paper,' Microsoft Corporation, 2001
  7. Dale Rogerson, 'Inside COM: Microsoft's Component Object Model,' Microsoft Press, 1997
  8. Object Management Group, 'CORBA Component Model Specification,' April 2006
  9. J. Bosch, 'Design and Use of Software Architectures: Adopting and Evolving a Product-Line Approach,' Addison-Wesley, Boston, 2000
  10. Thomas Erl, 'Service-Oriented Architecture(SOA): Concept, Technology, and Design,' Prentice Hall, 2005
  11. Andrea Bracciali, Antonio Brogi and Franco Turini, 'Coordinating Interaction Patterns,' In Proceedings of ACM Symposium on Applied Computing, Las Vegas, United States, 2001
  12. Andrea Bracciali, Antonio Brogi and Carlos Canal, 'Systematic component adaption,' In Proceedings of Workshop on Formal Methods and Component Interaction (FMCI 2002), Malaga, Spain, pp. 340-351, 2002
  13. Ines Mouakher, Arnaud Lanoix and Jeanine Souquieres, 'Component Adaptation: Specification and Verification,' In 11th International Workshop on Component Oriented Programming, Nantes, France, 2006
  14. R. H. Reussner, 'Adapting Components and Predicting Architectural Properties with Parameterised Contracts,' In Tagungsband des Arbeitstreffens der GI Fachgruppen 2.1.4 und 2.1.9, Bad Honnef, W. Goerigk, Ed., 2001, pp. 33-43
  15. M. Fowler, 'Inversion of Control Containers and the Dependency Injection pattern,' http://martinfowler.com/articles/injection.html
  16. Robin Milner, 'The polyadic ${\pi}-calculus:$ a tutorial,' Technical report, University of Edinburgh, 1991
  17. Jean R. Abrial, 'The B Book : Assigning Programs to Meanings,' Cambridge University Press, 1996
  18. K. Whitehead, 'Component-based Development: Principles and Planning for Business Systems,' Addison-Wesley, 2002
  19. Ira R. Forman and Nate Forman, 'Java Reflection in Action,' Manning, 2005
  20. Hari Shankar, 'Reflection in .NET,' http://www.csharpcorner.com, February 26, 2001
  21. Bruce A. Tate and Justin Gehtland, 'Spring: A Developer's Notebook,' O'REILLY, 2005
  22. PicoContainer, 'Core Concepts : Dependency Injection,' http://www.picocontainer.org/injection.html