$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

컴포넌트 재사용을 지원하는 컴포넌트 모델 및 프레임워크
A New Component Model and Framework for Reuse of Components 원문보기

정보과학회논문지. Journal of KIISE. 소프트웨어 및 응용, v.34 no.12, 2007년, pp.1011 - 1020  

임윤선 (이화여자대학교 컴퓨터학과) ,  김명 (이화여자대학교 컴퓨터학과) ,  정승남 (리버넥스 개발실) ,  정안모 (리버넥스)

초록
AI-Helper 아이콘AI-Helper

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

Abstract AI-Helper 아이콘AI-Helper

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 re...

주제어

AI 본문요약
AI-Helper 아이콘 AI-Helper

* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.

문제 정의

  • 그러나 독립적으로 개발된 컴포넌트의 소스 코드를 구할 가능성도 희박할 뿐더러, 타인이 작성한 소스 코드 분석과 수정에 소요되는 비용이 처음부터 새로 개발하는 것에 비해 크게 절감되는 것도 아니다. 따라서 시장에서 저렴한 비용으로 구할 수 있는 컴포넌트를 소스 코드를 수정하지 않고 재사용할 수 있어야 비로소 뚜렷한 생산성 향상 및 비용 절감 효과를 거둘 수 있는 것이다. 그러나 Jav由EJB[5], .
  • 본 논문에서 제안한 액티브 바인딩 기술은 독립적으로 개발된 컴포넌트의 소스 코드 수정 없는 재사용을 실천할 수 있는 기반을 제공한다. 그러나 상용 컴포넌트를 구입하여 “조립에 의한 개발(development by assembly)" 방식으로 애플리케이션을 개발하는 CBD의 이상을 제대로 달성하기 위해서는 컴포넌트의 부품화 및 그 조립 방안과는 별도로 개발자가 필요로 하는 컴포넌트들의 신속한 검색과 자동 조립을 지원할 수 있도록 컴포넌트의 기능과 규격 정보를 정형화하여 표현하는 방법이 더 연구되어야 한다.
  • 본 논문은 기존의 컴포넌트 기술들이 왜 재사용을 효과적으로 지원하지 못하는가를 분석하고, 그 결함을 보정해줄 실용적인 방법을 고안하기 위하여 수행되었다. 논문에서는 상용 컴포넌트의 구입과 조립을 통한 소프트웨어 개발을 가능하게 하기 위하여 기존 컴포넌트 모델들과 다른 액티브 바인딩 기술(Active Binding Technology)이라는 명칭의 새로운 컴포넌트 모델을 제안한다. 이 컴포넌트 모델은 상하위 컴포넌트간 의존 관계를글루 코드에서 정합하고 조립하는 기본 구조를 갖는다.
  • 본 논문에서는 서로 다른 개발자들에 의해 독립적으로 개발되어 인터페이스가 상이한 컴포넌트들을 소스 코드 수정 없이 조립할 수 있도록 하는 새로운 컴포넌트 모델을 제안하고 이 모델을 적용한 컴포넌트 개발 및 조립 도구를 구현하였다. 또한 제안한 방법에 따라 독립적인 인터페이스를 갖는 컴포넌트들을 개발하고, 조립하는 실험을 통해 액티브 바인딩 컴포넌트 모델과 자동화 도구가 그 목적을 효율적으로 달성하는 것을 확인하였다.
  • 즉, 컴포넌트 재사용은 아직도 소프트웨어 위기를 타개할 유일한 해결책으로 그 실현이 절실히 필요하다. 논문은 기존의 컴포넌트 기술들이 왜 재사용을 효과적으로 지원하지 못하는가를 분석하고, 그 결함을 보정해줄 실용적인 방법을 고안하기 위하여 수행되었다. 본 논문에서는 상용 컴포넌트의 구입과 조립을 통한 소프트웨어 개발을 가능하게 하기 위하여 기존 컴포넌트 모델들과 다른 액티브 바인딩 기술(Active Binding Technology)이라는 명칭의 새로운 컴포넌트 모델을 제안한다.
  • 본 논문은 다음과 같은 실험을 통하여 액티브 바인딩 컴포넌트 모델이 독립적으로 개발된 컴포넌트들의 조립을 실제로 가능케 하는 것을 확인하였다. 먼저 간단한 수강 신청 프로그램의 아키텍처를 그림 7과 같이 3계층으로 설계한 다음 각 계층의 컴포넌트들을 식별하고 각 컴포넌트가 지원해야 할 기능 리스트를 만들었다.
  • 이때 인터페이스 세부 규격은 각 팀이 독자적으로 설계하되 다른팀과는 상의할 수 없게 하여 컴포넌트간의 인터페이스 불일치를 의도적으로 조장하였다. 본 논문은 이렇게 만들어진 액티브 바인딩 컴포넌트들을 조립하여 수강 신청프로그램을 만들고 그 동작을 확인하였다.
  • 셋째, 기업용 애플리케이션 아키텍처에서 일반적으로 사용되는 다계층 분산시스템 설계에서 얻은 경험과 최신 상용 컴포넌트 기반 기술들이 이음새 없이 조화를 이루어야 한다. 본 논문은 이상의 조건들을 충족시키기 위한 컴포넌트 구조와 개발 프로시저, 조립 방법과 컴포넌트 프레임워크, 자동화 도구를 포함하는 새로운 컴포넌트 모델을 제시한다.
  • 액티브 바인딩 조립에서 생성되는 글루 컴포넌트가 성능에 미치는 영향을 측정하기 위해 다음과 같은 실험을 수행하였다. 클라이언트 컴포넌트는 레코드 개수와 지연시간을 서버 컴포넌트에 매개변수로 전달한다.

가설 설정

  • 서버 컴포넌트는 5개의 스트링 타입 필드와 3개의 정수 타입 필드, 2개의 데이타 타입 필드로 이루어지고 있는 526 바이트 데이타 전송 객체(DTO : Data Transfer Object) 를 클라이언트 컴포넌트로부터 매개변수로 받은 레코드 개수만큼 만들어 클라이언트 컴포넌트에 결과값으로 전달한다. 클라이언트 컴포넌트에서 전달한 지연시간은 서버 컴포넌트의 비즈니스 로직 처리시간을 가정한 것이다. 서버 컴포넌트는 클라이언트 컴포넌트에서 설정한 지연시간이 지난 후 레코드 셋을 클라이언트 컴포넌트에게 전달한다.
본문요약 정보가 도움이 되었나요?

참고문헌 (22)

  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 

저자의 다른 논문 :

섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로