KR100426311B1 - Ejb 컴포넌트 조립 장치 및 방법 - Google Patents
Ejb 컴포넌트 조립 장치 및 방법 Download PDFInfo
- Publication number
- KR100426311B1 KR100426311B1 KR10-2001-0086928A KR20010086928A KR100426311B1 KR 100426311 B1 KR100426311 B1 KR 100426311B1 KR 20010086928 A KR20010086928 A KR 20010086928A KR 100426311 B1 KR100426311 B1 KR 100426311B1
- Authority
- KR
- South Korea
- Prior art keywords
- ejb
- component
- architecture
- synthetic
- components
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
EJB(Enterprise JavaBeans) 컴포넌트(component) 조립 장치 및 방법을 제시한다.
본 발명은 여러 EJB 컴포넌트들을 조립하여 하나의 새로운 합성 EJB 컴포넌트를 생성하는 기술에 관한 것이다.
이를 위해 본 발명은, 조립될 여러 EJB 컴포넌트들을 브라우징해 주는 합성 팔레트 모듈(composite palette module)과; 합성 팔레트에 나타난 컴포넌트를 끌어놓거나 새로운 컴포넌트와 커넥터 아이콘을 끌어다 놓음으로써 생성되는 아키텍쳐(architecture)를 시각화하는 아키텍쳐 다이어그램 편집기 모듈과; 아키텍쳐상에서 컴포넌트의 역할과 속성을 기술하는 컴포넌트 속성 편집기 모듈과; 합성 EJB 컴포넌트 코드와 관련 접속코드를 생성하는 접속코드/합성 EJB 생성기 모듈을 포함하는 것을 특징으로 하는 EJB 컴포넌트 조립 장치 및 방법을 제공한다.
본 발명에 의하면, 다양한 EJB 컴포넌트들이 플러그 앤 플레이(plug-and-play) 방식으로 조립될 수 있도록 함으로써 확장성 및 유지보수성이 증대될 뿐만 아니라, 아키텍쳐를 바탕으로 새로운 기능을 가진 합성 EJB 컴포넌트를 만들 수 있도록 함으로써 새로운 컴포넌트 개발 시간을 단축시킨다. 또한, 합성 EJB 컴포넌트를 응용 서버에 전개하여 클라이언트 프로그램과 함께 하나의 애플리케이션으로 수행 가능하게 한다.
Description
본 발명은 컴포넌트 기반 소프트웨어 개발 방법 및 그 지원 기술에 관한 것으로, 특히, 기존의 다양한 EJB 컴포넌트를 플러그 앤 플레이 방식으로 시각적으로 조립하여 아키텍쳐를 형성하고 이를 바탕으로 새로운 합성 EJB 컴포넌트를 생성하는데 적합한 EJB 컴포넌트 조립 장치 및 방법에 관한 것이다.
컴포넌트 기반 소프트웨어 개발의 관점에서 시스템 개발은 코드를 작성하는 대신에 기존의 소프트웨어 컴포넌트를 조립하는 것이다. 이에 따라 컴포넌트 재사용성을 높이기 위한 EJB, DCOM/COM+, CCM 등과 같은 컴포넌트 모델들과 이질적인 기존 애플리케이션(Legacy Application)을 조립하기 위한 하부 구조를 지원하는 엔터프라이즈 애플리케이션 통합(Enterprise Application Integration: EAI)기술 등을 개발하고자 하는 노력들이 많이 이루어지고 있다.
이러한 관점에서 서버측 컴포넌트 모델인 EJB는 한번 개발된 EJB 컴포넌트를 코드 수정이나 재 컴파일 없이 다양한 플랫폼에서 전개하여 재 사용되도록 하자는 목적으로 제안된 것이다.
그러나, 제삼자에 의해 제공된 이질적인 EJB 컴포넌트를 플러그 앤 플레이 방식으로 조립하여 재 사용하는 것은 용이하지 않은데, 그 첫 번째 이유는, 하나의 컴포넌트 모델이라 해도 이를 지원하는 하부 구조나 미들웨어를 구현하는 다양한 벤더(vendor)들의 구현 방식이 달라서 이종의 하부 구조나 미들웨어를 바탕으로 생성된 컴포넌트들이 플러그 앤 플레이 방식으로 쉽게 조립될 수 없다는 것을 들 수 있다. 또한, 두 번째 이유로는, EJB 컴포넌트간의 상호작용이 가능하기 위해서는 직접적인 메소드 호출 로직이 필요하고 이에 따라 각각 제삼자에 의해 개발된 EJB 컴포넌트들이 상호 작용할 수 있도록 구성되기 위해서 그들을 사용하는 클라이언트 레벨에서 그들 각각의 메소드를 호출하는 형태로 클라이언트 코드를 작성해야 한다는 것이다.
첫 번째 문제를 해결하기 위한 방안으로 엔터프라이즈 애플리케이션 통합 기술을 들 수 있는데, 이는 기존의 시스템들을 하나의 엔터프라이즈 시스템으로 통합하기 위한 기술이다. 그러나, 이를 개발하는 여러 벤더들은 각 벤더마다 개발하는 기술들이 서로 상이하여 단일 벤더의 기술이 사용되지 않을 경우에는 실질적으로 통합이 될 수 없다는 문제가 있다. 즉, 컴포넌트의 구현에 관계없이 조립하고 재사용하고자 제안된 컴포넌트 모델이나 엔터프라이즈 통합 기술이 실제로는 그러한 모델들을 지원하는 하부 구조 및 미들웨어를 개발하는 다양한 벤더들에 종속적이라는 것이다. 이러한 문제를 해결하기 위해 현재 여러 미들웨어와 애플리케이션 서버 벤더들에 의해 하부 구조와의 밀접한 연관성을 줄이기 위한 해결 방법이 모색되고는 있으나, 기존의 시스템들을 하나의 엔터프라이즈 시스템으로 통합하는데 있어, EJB 컴포넌트의 조립 측면에서의 문제점은 여전히 남아있다.
한편, EJB 컴포넌트간의 상호 작용을 가능하게 하기 위해서는 직접적인 메소드 호출 로직이 필요한 바, 이에 따른 재구성 및 조립이 용이하지 않다는 문제가 있다. 따라서 두 번째 문제를 해결하기 위한 방안으로 제삼자에 의해 제공된 이질적인 EJB 컴포넌트를 플러그 앤 플러그 방식으로 유연하게 재구성 및 조립할 수 있도록 지원하는 컴포넌트 조립 방법이 요구된다.
조립에 의해 생성된 합성 EJB 컴포넌트는 큰 단위의 기능을 수행하는 컴포넌트로 재 사용될 수 있으며 클라이언트 프로그램과 함께 단위 애플리케이션 시스템으로 수행될 수 있다.
이를 위하여, 기존의 EJB 컴포넌트들을 조립하여 상위 레벨의 아키텍쳐를 형성하는 아키텍쳐 기반의 컴포넌트 조립 방법을 해결 방안으로 생각해 볼 수 있다. 개발하고자 하는 시스템에 대한 잘 정의된 아키텍쳐가 존재하면, 시스템이 상위 수준에서 어떻게 구성되어 있고 어떠한 기능을 하는지의 방향을 지시해 주므로, 조립하는 시스템이 제공하는 서비스를 추상화하여 표현할 수 있다. 또한, 잘 정의된 아키텍쳐를 통하여 개발하는 소프트웨어 시스템의 기능을 분석하고 정제 및 검증해볼 수 있다. 따라서, 아키텍쳐를 기반으로 EJB 컴포넌트들을 조립하면 아키텍쳐 모델링, 분석, 정제의 과정을 통하여 컴포넌트들이 정확하게 결합하여 작동될 수 있으며, 기존의 EJB 컴포넌트를 조립하여 생성된 합성 EJB 컴포넌트는 새로운 하나의 EJB 컴포넌트로 구성될 수 있다.
실제 산업체에서 EJB 컴포넌트와 같은 대규모의 비즈니스에 사용되는 상용 컴포넌트들을 조립하여 소프트웨어 시스템을 개발하는데 상위 레벨에서 시스템을 분석하여 잘 정의된 시스템을 구성하는 소프트웨어 아키텍쳐 개발 방법이 적용된 예는 흔치 않다. 아키텍쳐를 기반으로 소프트웨어를 구성하고자 시도한 「D.S.Rosenblum과 R.Natarajan의 논문」,「Supporting architectural concerns in component interoperability standards, IEE Proceedings : Software, Vol 147, No. 6, pp215 - 223」은 ARABICA라는 자바 빈(JavaBeans) 컴포넌트들을 조립할 수 있는 아키텍쳐 모델링 도구를 언급하고 있으나, 자바 빈 컴포넌트 모델이 서버측 컴포넌트 모델이 아닌 그래픽 사용자 인터페이스 컴포넌트의 재사용을 위한 컴포넌트 모델이라는 점에서 한계가 있다.
즉, 그래픽 사용자 인터페이스 개발에 사용되는 컴포넌트의 조립은 실제 비즈니스 영역에서 사용되는 서버 레벨의 컴포넌트 조립에 비해 그 효용성이 떨어진다고 할 수 있다. 그리고, ARABICA에서 지원하는 편집과정은 실제 비즈니스 영역에서 사용되는 서버 레벨의 EJB 컴포넌트를 조립하는데 부족한 점이 많다. 그 이유는 자바 빈 컴포넌트의 플러그 앤 플레이 조립을 위해서는 컴포넌트가 가지는 이벤트들을 메시지로 변환시켜주는 간단한 편집만을 고려하면 되나, 하나 이상의빈(Bean)들로 구성된 EJB 컴포넌트를 독립적으로 만들기 위해서는 여러 형태의 편집이 필요하기 때문이다. 즉, 패키지로 묶여있는 자(Jar) 단위의 컴포넌트를 구성하는 하나이상의 빈(Bean)들이 가지는 기능을 모두 고려하여 메시지 형태로 생성해 주는 데에는 패키지를 구성하는 빈들의 정보와 이들간의 관계를 정의할 수 있는 편집과정이 필요하다.
또한, 상술한 논문에서 언급한 ARABICA는 JavaBeans 컴포넌트로 구성된 시스템 아키텍쳐를 모델링하는 기능은 지원하고 있으나, 이를 정제하여 구현코드를 생성하는 것은 지원하지 않고 있기 때문에 시스템 아키텍쳐를 하나의 컴포넌트로 재사용하지 못한다.
결과적으로, 비즈니스 영역에서 많이 사용되는 서버 레벨의 EJB 컴포넌트의 플러그 앤 플러그 방식의 조립 기술이 필요하고, 조립된 EJB 컴포넌트들이 재사용 가능한 합성 EJB코드로 생성될 필요가 있는 것이다.
본 발명은 상술한 필요성에 의해 안출한 것으로, C2 스타일 개념을 이용하여 플러그 앤 플레이 방식으로 EJB 컴포넌트를 시각적으로 조립할 수 있도록 하고, 조립된 컴포넌트를 재 사용할 수 있도록 새로운 EJB 컴포넌트인 합성 EJB를 생성하며, 클라이언트 프로그램과 함께 단위 애플리케이션으로 수행될 수 있도록 지원하는 EJB 컴포넌트 조립 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명에서는 EJB 컴포넌트를 플러그 앤 플레이 방식으로 시각적으로 조립할 수 있도록 하기 위해서 다음과 같은 구성을 가진다. 첫 번째로 제삼자에 의해제공되거나 자체적으로 개발된 EJB 컴포넌트를 브라우징해 주는 합성 팔레트를 제공한다. 두 번째로 합성팔레트에서 선택한 컴포넌트를 드랙-앤-드롭(drag-and-drop)하거나 새로운 컴포넌트를 편집하여 C2 스타일에 맞게 조립하여 시각적으로 아키텍쳐를 구성하고, 구성된 아키텍쳐의 구문 및 의미, 형세가 C2 규칙을 따르고 있는지 검사하는 아키텍쳐 다이어그램 편집기를 제공한다.
또한 여러 컴포넌트를 조립하여 재사용 가능한 새로운 합성 EJB를 생성하기 위하여 다음과 같은 구성을 가진다. 첫 번째로 아키텍쳐상에서 각 컴포넌트가 가지는 다양한 속성을 설정하고, 각 EJB의 역할과 행위 정보를 나타내는 컴포넌트 명세를 쉽고 유연하게 구성할 수 있도록 하는 컴포넌트 속성 편집기 모듈을 제공한다. 두번째로 컴포넌트 속성 편집기 모듈에 의해 생성된 명세 정보를 바탕으로 여러 EJB 컴포넌트를 C2 아키텍쳐 상에서 연결해 주는 접속코드인 EJB 래퍼 자바 파일과 아키텍쳐에 대해 생성되는 새로운 합성 EJB를 위한 세션 빈(Session Bean) 코드와 홈/원격 인터페이스 코드, 아키텍쳐와 합성 EJB를 연결해 주는 접속 코드인 세션 빈 접속 코드를 생성하는 접속코드/합성 EJB 생성기 모듈을 제공한다.
따라서, 본 발명에 따르면, 합성 팔레트 모듈에 보여지는 EJB 컴포넌트를 드랙(drag)하여 아키텍쳐 다이어그램 편집기 모듈에 드롭(drop)하는 방식으로 C2 스타일을 바탕으로 EJB 컴포넌트들을 시각적으로 조립하여 아키텍쳐를 형성한다. 그리고, 형성된 아키텍쳐에 대하여 컴포넌트 속성 편집기 모듈을 이용하여 아키텍쳐를 구성하고 있는 EJB 컴포넌트의 역할과 행위를 아키텍쳐 기술 언어의 형태로 기술하여 각 컴포넌트의 명세를 생성하고 구체적인 아키텍쳐 내부를 모델링할 수 있도록 한다.
이를 바탕으로 접속코드/합성 EJB 생성기 모듈에서 실질적으로 각 EJB 컴포넌트들을 연결해 주는 접속코드가 자동으로 생성될 수 있도록 한다.
이렇게 접속코드를 자동으로 생성해 줌으로써 사용자는 부가적인 구현 없이 플러그 앤 플레이 방식으로 유연한 조립이 가능하도록 지원한다. 또한, 여러 EJB 컴포넌트를 조립하여 생성된 아키텍쳐를 큰 단위의 EJB 컴포넌트로 재 사용할 수 있도록 합성 EJB 코드를 자동으로 생성해 줌으로써 사용자가 직접 구현해야 되는 부분을 최소화하고 전개를 통해 실질적으로 바로 수행될 수 있도록 하여 준다.
상기 목적을 달성하기 위한 본 발명의 특징은, 기존의 EJB 컴포넌트들을 C2 스타일에 근거하여 시각적으로 조립하여 아키텍쳐를 형성할 수 있고, 각 컴포넌트의 행위와 역할에 대해 정형화된 아키텍쳐 기술언어의 형태로 명세를 생성할 수 있다. 그리고, EJB 컴포넌트들이 C2 스타일에 의해 연결되어 사용될 수 있도록 접속코드를 자동으로 생성해 주며, 모델링된 아키텍쳐에 대해 새로운 EJB 컴포넌트인 합성 EJB를 자동으로 생성해 주고 클라이언트 프로그램과 함께 단위 애플리케이션으로 수행될 수 있도록 하는 것이다.
여기서, C2 스타일은 UCI(University of California in Irvine)에서 본래 그래픽 사용자 인터페이스를 갖는 응용 소프트웨어 개발을 지원하기 위하여 설계한 아키텍쳐 스타일이지만 분산된 환경에서 다양한 컴포넌트들의 상호작용을 지원해야 하는 응용 소프트웨어의 개발에도 적용할 수 있다.
C2 스타일의 컴포넌트는 두 개(Top, Bottom)의 포트를 통해 들어오는 메시지에 대해 내부적으로 선언된 메소드들을 호출하거나 'Top' 또는 'Bottom' 포트를 통해 나갈 메시지를 생성한다.
컴포넌트가 처리 또는 생성하는 메시지는 첫째로, 'Top' 포트를 통해 나가거나 'Bottom' 포트를 통해 들어오는 요청(Request) 메시지가 있다. 둘째로, 'Top' 포트를 통해 들어오거나 'Bottom' 포트를 통해 나가는 응답(Notification) 메시지가 있다. C2 스타일의 모든 컴포넌트들은 메시지 교환을 통해 상호 작용을 하는데, 이는 커넥터가 컴포넌트들 간에 교환되는 메시지를 라우팅(Routing), 브로드캐스팅(Broadcasting) 또는 메시지 필터링(Filtering)등과 같은 방법으로 전달함으로써 수행된다.
본 발명은 C2 스타일의 개념에 따라 아키텍쳐 기술언어로 표현된 컴포넌트 명세를 이용하여 아키텍쳐 상의 독립적인 EJB 컴포넌트를 연결해주는 EJB 래퍼 자바 파일을 자동 생성해준다. 또한, 여러 EJB 컴포넌트로 구성된 아키텍쳐를 하나의 단일 EJB 컴포넌트로 사용할 수 있도록 아키텍쳐의 최하위(Bottommost) 계층 컴포넌트의 'Bottom' 인터페이스에 정의된 요청 메시지를 사용하는 세션 빈(Session Bean) 형태의 합성 EJB를 생성한다. 이때, 아키텍쳐와 합성 EJB의 세션 빈 사이를 연결해 주는 세션 빈 접속 코드(Session Bean Glue Code)를 생성하여, 세션 빈의 원격 인터페이스에 정의된 메소드에 대해 세션 빈 대신에 해당 요청 메시지를 생성해 주고 응답 메시지를 받아서 결과값을 넘겨주는 역할을 수행하도록 한다.
도 1은 본 발명의 바람직한 실시예에 따른 EJB 컴포넌트 조립 과정의 흐름도,
도 2는 본 발명에 따른 EJB 컴포넌트의 조립을 위한 시스템 구성도로서, 아키텍쳐를 시각적으로 모델링하기 위한 화면 구성도,
도 3은 아키텍쳐를 구성하는 각 컴포넌트의 속성을 편집하기 위한 화면 구성도,
도 4는 컴포넌트의 'Top/Bottom' 인터페이스에 대한 명세 작성을 위한 화면 구성도,
도 5는 컴포넌트의 메소드와 행위 정보에 대한 명세 입력화면과 생성될 명세 파일을 보여 주는 화면 구성도,
도 6은 생성된 EJB 래퍼(wrapper) 파일을 보여주는 화면과 합성 EJB 인터페이스 편집기에 대한 화면 구성도,
도 7은 자동 생성된 합성 EJB 원격 인터페이스 파일의 화면 구성도.
<도면의 주요부분에 대한 부호의 설명>
201: 합성 팔레트
202: 아키텍쳐 다이어그램 편집기
301: 속성 편집기
401: 'Top' 인터페이스 편집을 위한 명세 편집기 화면
402: 'Bottom' 인터페이스 편집을 위한 명세 편집기 화면
501: 메소드 정보와 행위 정보 입력을 위한 명세 편집기 화면
502: 생성될 명세 정보를 보여 주는 명세 편집기 화면
601: 생성된 EJB 래퍼 자바 파일을 보여 주는 화면
602: 합성 EJB 인터페이스 편집기 화면
701: 생성된 합성 EJB 원격 인터페이스 파일을 보여 주는 화면
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 상세하게 설명한다.
도 1은 본 발명의 시스템 운영 방법에 대한 흐름도를 나타낸 것이다.
본 발명의 첫 과정은 아키텍쳐를 모델링하기 위한 과정으로서 이를 위해 먼저 단계(S101)에서 새로운 아키텍쳐 다이어그램을 생성하고, 단계(S102)에서 아키텍쳐를 구성할 EJB 자(jar)를 합성 팔레트 모듈에서 끌어다 놓은 후, 단계(S103)에서 각 컴포넌트간의 상호작용 관계를 고려하여 각 컴포넌트 사이에 커넥터를 놓고 컴포넌트와 커넥터, 커넥터와 커넥터간의 링크를 연결한다.
단계(S104)에서 아키텍쳐에 대해 각 컴포넌트의 역할과 컴포넌트간의 상호작용을 결정하는 컴포넌트의 명세 작성 작업을 한다. 이를 위해 위저드 방식으로 각 컴포넌트간의 연결 정보, EJB 컴포넌트의 정보 등을 사용자에게 보여 주어 명세를 쉽게 작성할 수 있도록 한다.
단계(S105)에서 명세 정보를 이용하여 각 컴포넌트에 대해 아키텍쳐 상의 실질적인 연결을 위한 접속 코드인 EJB 래퍼 파일을 자동으로 생성하여 준다.
단계(S106)에서 아키텍쳐를 구성하고 있는 각 컴포넌트의 명세와 EJB 래퍼가 모두 생성되고 나면 전체 아키텍쳐가 최종 완성된 것으로 볼 수 있고 완성된 전체 아키텍쳐를 새로운 컴포넌트로 재사용하기 위해 합성 EJB를 생성한다. 이를 위해 사용자는 그래픽 사용자 인터페이스를 이용하여 합성 EJB의 인터페이스 정보만을 정의하게 되면 합성 EJB 홈/원격 인터페이스, 세션 빈, 세션 빈 접속 코드 파일을 자동으로 생성해 준다.
도 2는 EJB 컴포넌트 조립을 위한 시스템 화면 구성도이다.
도 2는 아키텍쳐를 시각적으로 모델링하기 위한 화면으로서 합성 팔레트(Composite Palette : 201), 아키텍쳐 다이어그램 편집기(Architecture Diagram Editor : 202), 다이어그램 팔레트(Diagram Palette : 203)로 구성된다.
합성 팔레트(201)는 조립되어 사용될 EJB 컴포넌트(EJB Jar)들과 시각적으로 모델링된 아키텍쳐 모델 파일(gadl 파일), 컴포넌트 명세 파일(idn 파일), 컴포넌트들을 연결해 주는 접속 코드인 EJB 래퍼 파일을 브라우징해 주고, 아키텍쳐 다이어그램 편집기(202)에서 아키텍쳐를 모델링할 때 사용될 수 있도록 한다.
아키텍쳐 다이어그램 편집기(202)는 C2 스타일에 맞춰 아키텍쳐를 시각적으로 모델링할 수 있게 한다. 사용자가 EJB 컴포넌트들이 저장되어 있는 합성 팔레트(201)의 EJB_Jar 디렉토리로부터 원하는 EJB 컴포넌트를 선택 및 드랙하여 아키텍쳐 다이어그램 편집기(202)에 드롭함으로써 여러 EJB 컴포넌트로 구성된 아키텍쳐를 형성할 수 있도록 한다.
또한, 아키텍쳐 편집을 위해 제공되는 다이어그램 팔레트(203)에서 커넥터를 선택하여 아키텍쳐 다이어그램에 가져다 두고 컴포넌트와 커넥터를 링크로 연결함으로써 아키텍쳐를 완성할 수 있도록 해 준다.
또한, 아키텍쳐 다이어그램 편집기(202)는 완성된 조립 아키텍쳐에 대해 구문 및 문법적으로 오류가 있는지를 검사하고 아키텍쳐 형세가 C2 규칙을 따르고 있는지 검사하는 기능을 제공한다.
도 3은 쇼핑몰 시스템을 위한 컴포넌트 조립 아키텍쳐에 대해 각 컴포넌트의 속성을 편집하기 위한 모듈인 속성 편집기(Property Editor : 301)를 나타낸다.
도 3에 도시한 바와 같이, 속성 편집기(301)는 EJB 컴포넌트가 아키텍쳐 상에서 가지는 속성 정보인 컴포넌트 이름, 아키텍쳐상의 컴포넌트 위치 정보를 나타내는 컴포넌트의 컨텍스트 정보를 설정할 수 있도록 해 준다.
또한, 컴포넌트의 역할과 행위를 기술한 명세 정보인 idn 파일에 대한 링크 정보와 명세 정보를 바탕으로 각 컴포넌트를 연결해 주는 접속 코드인 EJB 래퍼 자바 파일에 대한 링크 정보, 해당 컴포넌트의 EJB 패키지(Jar) 정보를 아키텍쳐 다이어그램 편집기의 모델정보에 저장하고 얻어올 수 있도록 한다.
참조 번호 (302)의 'Edit' 버튼을 클릭하면 링크된 명세 파일에 대한 위저드 방식의 명세 편집기(Specification Editor : 401, 402, 501, 502)가 띄워져서 해당 명세 파일을 편집할 수 있게 된다.
도 4 및 도 5는 각 컴포넌트의 역할과 행위를 기술하는 컴포넌트 명세를 생성하기 위한 위저드 방식의 명세 편집기(Specification Editor : 401, 402, 501, 502)를 나타낸 것이다.
명세 편집기(401)는 C2 스타일에서 컴포넌트가 가지는 인터페이스인 'Top' 인터페이스와 'Bottom' 인터페이스 중에서 'Top' 인터페이스를 명세하는 화면이다.
컴포넌트의 'Top' 인터페이스는 해당 컴포넌트와 연결된 상위 컴포넌트로 요청(Request)에 해당되는 메시지를 전달하거나 상위 컴포넌트로부터 응답(Notification)에 해당되는 메시지를 받을 때 사용되는 인터페이스다.
따라서, 컴포넌트의 'Top' 인터페이스는 상위 컴포넌트로 요청 메시지를 전달하는 역할과 응답 메시지를 받는 역할을 하므로 해당 컴포넌트에 연결된 상위 컴포넌트의 'Bottom' 인터페이스에서 주고받는 메시지로 구성된다.
이러한 원리를 바탕으로 명세 편집을 용이하게 할 수 있도록 참조 번호 (403)과 (404)에서 상위 컴포넌트의 'Bottom' 인터페이스 정보를 보여 주고 원하는 메시지를 선택하여 '>>' 버튼을 클릭하면 해당 컴포넌트의 'Top' 인터페이스를 쉽게 구성할 수 있도록 한다.
참조번호 '403'에서는 해당 컴포넌트의 'Top' 인터페이스로 받을 수 있는 메시지에 대한 리스트를 보여 주는 것으로, 즉 연결된 상위 컴포넌트의 'Bottom' 인터페이스로부터 나오는 응답 메시지에 대한 리스트를 보여 준다. 마찬가지로 참조 번호 (404)에서는 해당 컴포넌트의 'Top' 인터페이스로부터 상위로 전달될 수 있는 메시지에 대한 리스트를 보여 주는 것으로, 즉 연결된 상위 컴포넌트의 'Bottom' 인터페이스에서 받을 수 있는 요청 메시지에 대한 리스트를 보여 준다.
또한, 명세 편집기(402)는 해당 컴포넌트의 'Bottom' 인터페이스를 명세할 수 있게 하는 화면에 대해 나타난 것이다. 컴포넌트의 'Bottom' 인터페이스는 해당 컴포넌트의 연결된 하위 컴포넌트로부터 요청 메시지를 받거나 하위 컴포넌트로 응답 메시지를 전달할 때 사용되는 인터페이스이다.
따라서, 컴포넌트의 'Bottom' 인터페이스에 정의될 수 있는 요청 메시지는 하위 컴포넌트로부터 전달되는 요청 메시지이거나 해당 컴포넌트가 처리할 수 있는 메시지 또는 상위 컴포넌트로 전달하는 메시지로 구성될 수 있다.
이러한 원리에 의해 명세 편집을 용이하게 할 수 있도록 참조 번호 (405)에서는 하위 컴포넌트로부터 전달되는 요청 메시지를 'Bottom' 항목 아래에 리스트해주고, 해당 컴포넌트가 처리할 수 있는 메시지로는 해당 컴포넌트가 가지고 있는 메소드를 호출하는 요청 메시지이므로, EJB 아래에 해당 EJB 컴포넌트가 가지고 있는 메소드를 리스트해 준다.
또한, 상위 컴포넌트로 전달하는 메시지는 'Top' 항목 아래에 리스트해 주어 원하는 메시지 또는 메소드를 선택하여 '>>' 버튼을 클릭하면 'Top' 인터페이스와 동일한 형태로 쉽게 'Bottom' 인터페이스를 정의할 수 있도록 한다.
그리고, 컴포넌트의 'Bottom' 인터페이스에 정의될 수 있는 응답 메시지는 하위 컴포넌트의 'Top' 인터페이스에서 받을 수 있는 메시지이거나 해당 컴포넌트가 처리한 결과에 대한 메시지 또는 상위 컴포넌트로부터 받은 메시지로 구성될 수 있다.
이러한 원리에 의해 참조 번호 (406)에서는 하위 컴포넌트의 'Top' 인터페이스에서 받을 수 있는 응답 메시지를 'Bottom' 항목 아래에 리스트해 주고, 상위 컴포넌트의 'Bottom' 인터페이스에 정의된 응답 메시지를 'Top' 항목 아래에 리스트해 준다. 그러나, 해당 컴포넌트가 처리한 결과에 대한 메시지는 해당 EJB 컴포넌트의 메소드 호출 결과로서 메소드 수행후 결과값이 해당된다. 이러한 결과값은 메시지 형태가 아니므로 사용자가 원하는 메시지 이름을 직접 편집할 수 있도록 한다.
도 5는 컴포넌트가 가지고 있는 메소드 정보와 컴포넌트의 행위 정보에 대한 명세를 입력하고 생성될 명세 파일의 정보를 보여 주는 화면을 나타낸 것이다.
명세 편집기(501)는 컴포넌트가 수행할 메소드 정보와 컴포넌트의 행위 정보에 대한 명세를 입력하기 위한 화면이다. 참조 번호 (503)에서는 EJB 컴포넌트의 단위가 여러 EJB 빈(Bean)이 묶여진 하나의 패키지(Jar) 단위가 될 수 있고 각 빈마다 홈 인터페이스에서 정의하고 있는◎quot;create()" 메소드가 여러 가지로 정의될 수 있음을 고려하여 각 빈에 대해 사용자가 원하는 "create()" 메소드를 선택할 수 있도록 각 빈의◎quot;create()" 메소드를 리스트로 나열해 주고 사용자가 선택할 수 있도록 한다.
참조 번호 (504)에서는 아키텍쳐 상에서 EJB 컴포넌트가 처리할 메소드를 선택할 수 있도록 한다.
참조 번호 (505)에서는 컴포넌트의 행위 정보를 입력하는 부분으로 해당 컴포넌트의 'Top/Bottom' 인터페이스로부터 메시지를 받은 후 호출되는 메소드와 'Top/Bottom' 인터페이스를 통해 생성되어 전달되는 메시지 정보를 입력할 수 있도록 한다. 각 정보는 앞에서 입력된 정보들을 각 테이블 셀에 리스트 정보로 보여 줌으로써 행위정보를 편집 작업 없이 입력할 수 있도록 한다.
명세 편집기(502)는 참조 번호 (401, 402, 501) 과정을 거쳐 입력된 명세 정보를 텍스트 파일로 생성하기 전에 명세 정보를 사용자에게 보여 주고 확인하기 위한 화면을 나타낸 것이다.
도 6은 명세 편집기(401, 402, 501, 502)를 통해 생성된 명세 정보를 바탕으로 자동으로 생성된 EJB wrapper 자바 파일을 코드 편집기(Code Editor : 601)로 띄운 화면과 전체 아키텍쳐에 대해 합성 EJB를 생성하기 위해 합성 EJB의 홈/원격 인터페이스를 정의하고 생성될 파일 이름을 지정하는 합성 EJB 인터페이스편집기(Composite EJB Interface Editor : 602)에 대한 화면을 나타낸 것이다.
참조 번호 (601)의 EJB wrapper 자바 파일은 아키텍쳐 상의 독립적인 EJB 컴포넌트를 연결해 주는 역할을 하는 접속코드로서 명세 편집기(401, 402, 501, 502)를 이용해 작성된 컴포넌트의 행위 정보에 따라 각 EJB 컴포넌트를 아키텍쳐에 연결해 주는 역할을 한다.
EJB 래퍼는 각 EJB 컴포넌트의 메시지 처리 로직과 전개된 서버에 따라 홈/원격 인터페이스를 찾는 로직으로 구성된다. EJB 래퍼의 메시지 처리 로직은 'Top' 인터페이스로부터 응답(Notification) 메시지를 받거나 'Bottom' 인터페이스로부터 요청(Request) 메시지를 받을 경우에 대하여 각 EJB가 아키텍쳐 상에서 어떻게 조립되느냐에 따라 여러 가지 형태로 다양하게 존재할 수 있다. 메시지를 받아서 해당 EJB의 메소드가 호출되고 그 결과값을 'Top' 이나 'Bottom'으로 메시지 형태로 전달할 수 있거나 받은 메시지를 다시 다른 컴포넌트에게 단지 전달하는 역할을 할 수 있다.
따라서, EJB 래퍼의 요청/응답 처리 로직은 각 EJB 컴포넌트가 수행하는 기능뿐만 아니라 아래와 위 계층에 어떤 컴포넌트가 존재하느냐에 따라서 다양하게 구현된다. EJB가 조립될 때의 아키텍쳐 구조상에서 상위 EJB의 메소드를 사용할 필요가 있을 때 해당 메소드가 'Top' 인터페이스의 요청 메시지로 구성되고 그 결과에 대한 메시지가 응답 메시지로 구성된다. 그리고, 조립시 아키텍쳐의 구조상에서 하위 계층의 EJB에 의해 사용되는 메소드가 'Bottom' 인터페이스의 요청 메시지와 응답 메시지로 구성된다.
EJB 래퍼의 요청 메시지 처리 로직은 컴포넌트의 구조상 하위 계층에서 오는 요청 메시지, 즉 'Bottom' 인터페이스에 정의된 요청 메시지를 다루는 로직이 들어가게 되는 부분이다. 하위 계층으로부터 받은 요청 메시지가 상위 EJB의 기능이 요구되는 메시지일 경우, 상위 계층에 맞는 요청 메시지의 형태로 메시지를 생성하여 전달하고 응답 메시지를 받는 형태가 된다. 이러한 상위 계층의 컴포넌트에 전달하는 요청 메시지와 응답 메시지가 해당 컴포넌트의 Top 인터페이스의 요청 메시지와 응답 메시지로 정의된다.
또한, 하위 계층으로부터 받은 요청 메시지가 해당 EJB의 기능을 필요로 하는 경우, 해당 EJB의 메소드를 호출하고 그 결과값에 대해 하위 계층에 응답 메시지를 생성하여 전달하거나 상위 계층에 요청 메시지를 생성하여 전달하는 로직이 포함된다. 이러한 경우 하위 계층을 위한 응답 메시지가 해당 컴포넌트의 'Bottom' 인터페이스의 응답 메시지로 정의되고 상위 계층을 위한 요청 메시지가 'Top' 인터페이스의 요청 메시지로 정의된다.
EJB 래퍼의 응답 메시지 처리 로직은 컴포넌트의 구조상 상위 계층에서 오는 응답 메시지, 즉 'Top' 인터페이스에 정의된 응답 메시지를 다루는 로직이 들어가게 되는 부분이다.
상위 계층으로부터 받은 응답 메시지에 따라 받은 응답 메시지의 결과를 이용하여 상위 계층에 새로운 요청 메시지를 생성하여 전달하거나 하위 계층에 응답 메시지로 전달하는 형태가 될 수 있다. 또한, 상위 계층으로부터 받은 응답 메시지의 결과를 이용하여 해당 EJB의 메소드를 호출하고 하위 계층에 응답 메시지를 생성하여 전달하거나 상위 계층의 요청 메시지를 생성하여 전달하는 로직이 포함된다. 이러한 경우 생성되는 응답 메시지는 'Bottom' 인터페이스의 응답 메시지로 정의되고 생성되는 요청 메시지는 'Top' 인터페이스의 요청 메시지로 정의된다.
이러한 구조를 기반으로 하여 EJB의 홈/원격 인터페이스와 관계없이 새로운 메시지를 추가로 정의 할 수 있다.
다음으로 EJB가 가지고 있는 메소드를 사용하기 위해서는 EJB의 클라이언트 관점에서 각 EJB의 홈/원격 인터페이스를 찾는 로직이 필요하다. 각 EJB는 응용 서버와 전개 방법에 따라 EJB의 홈 인터페이스를 찾는 등의 일련의 EJB 연결 부분이 다르게 구현된다.
따라서, EJB 연결 부분은 제삼자가 제공한 EJB를 특정 서버에 전개할 수 있도록 하기 위해서 각 EJB 래퍼마다 다르게 구현될 수 있도록 한다. 결과적으로 EJB 래퍼를 바탕으로 각각의 독립적인 EJB들을 C2 아키텍쳐상에서 조립하여 독립적인 EJB들의 기능을 다양한 형태로 쉽게 조합하고 새로운 기능을 수행할 수 있도록 한다.
합성 EJB 인터페이스 편집기(602)는 여러 EJB 컴포넌트를 조립하여 만든 아키텍쳐에 대해 새로운 EJB 컴포넌트인 합성 EJB를 생성하기 위해 합성 EJB의 홈/원격 인터페이스를 지정하고 합성 EJB 홈/원격 인터페이스, 빈(Bean) 파일의 이름을 지정하고 'Ok' 버튼을 클릭하면 지정된 파일 이름으로 합성 EJB 홈/원격 인터페이스, 빈(Bean) 파일이 자동으로 생성되고 합성 EJB와 아키텍쳐를 연결해 주는 접속 코드인 빈 접속 코드(Bean Glue Code) 파일이 자동으로 생성된다.
여러 EJB 컴포넌트로 구성된 아키텍쳐를 하나의 단일 EJB 컴포넌트로 사용할 수 있도록 합성 EJB를 생성하는 관점은 C2 스타일의 특성상, 아키텍쳐의 최하위 계층(Bottommost) 컴포넌트의 'Bottom' 인터페이스에 정의된 요청 메시지를 사용하는 EJB를 생성하는 개념이라고 할 수 있다. 이러한 관점에서 여러 EJB가 조립되어 구성된 아키텍쳐의 최하위 계층 컴포넌트에 연결되어 전체 아키텍쳐의 기능을 사용하는 세션 빈(Session Bean) 형태의 새로운 EJB인 합성 EJB를 생성한다. 합성 EJB의 홈/원격 인터페이스는 최하위 계층 컴포넌트의 'Bottom' 인터페이스의 요청 메시지와 응답 메시지를 다양한 조합으로 결합한 새로운 메소드로 구성될 수 있다.
이렇게 합성 EJB와 C2 아키텍쳐를 연결해 주기 위해서는 또 하나의 중간 매개체가 요구된다. 이때 생성되는 중간 매개체는 EJB 컴포넌트가 C2 아키텍쳐에서 조립될 때 사용되는 EJB 래퍼와는 다른 성격을 가지는 것으로 C2 아키텍쳐와 합성 EJB의 세션 빈 사이에서 접속해 주는 역할을 하므로 세션 빈 접속 코드(Session Bean Glue Code)라고 할 수 있다. 세션 빈 접속 코드는 접속하고자 하는 C2 아키텍쳐의 형세(Topology) 정보를 이용하여 컴포넌트와 커넥터 연결 관계를 형성하여 주고 세션 빈의 원격 인터페이스에 정의된 메소드에 대해 세션 빈 대신에 해당 요청 메시지를 생성해 주고 응답 메시지를 받아서 결과값을 넘겨주는 역할을 한다.
참조 번호 (603)은 합성 EJB의 원격 인터페이스에 정의될 메소드를 설정하는 테이블이다. 합성 EJB의 원격 인터페이스 정의를 용이하게 할 수 있도록 아키텍쳐 상의 최하위 계층의 컴포넌트의 'Bottom' 인터페이스에 정의된 요청 메시지 정보를 테이블의 메소드 정보에 리스트해 주고 사용자가 원하는 메시지를 선택하여 원격인터페이스의 메소드 이름과 파라미터 정보를 설정할 수 있도록 한다.
그리고, 사용자가 선택한 메시지 정보를 바탕으로, 해당 메시지가 수행되고 난 후의 최종 응답 메시지의 파라미터 타입 정보를 'Return value' 정보에 리스트해 주고 사용자가 원하는 타입을 선택할 수 있도록 한다.
참조 번호 (604)에서는 원격 인터페이스와 마찬가지로 홈 인터페이스를 정의할 수 있도록 해 준다. 이러한 형태로 새로운 EJB 컴포넌트를 생성하는 과정상에 직접적인 구현 과정을 최소화하여 합성 EJB 관련 파일들을 생성해 줌으로써 합성 EJB의 재 사용성을 높여 주고 새로운 EJB 컴포넌트의 개발 시간을 단축할 수 있다.
도 7은 합성 EJB 인터페이스 편집기(603)를 이용해 편집한 정보를 바탕으로 자동 생성된 합성 EJB 원격 인터페이스 파일을 코드 편집기(701)로 띄운 화면을 나타낸 것이다.
상기한 바와 같이, 본 발명은 여러 EJB 컴포넌트를 유연하고 쉽게 시각적으로 조립하여 아키텍쳐를 형성하고 형성된 아키텍쳐에 대해 새로운 EJB 컴포넌트인 합성 EJB를 복잡한 구현 과정 없이 자동으로 생성하며, 클라이언트 프로그램과 함께 단위 애플리케이션으로 수행될 수 있도록 지원하는 방법 및 시스템에 관한 것이다.
이상, 본 발명을 실시예에 근거하여 구체적으로 설명하였지만, 본 발명은 이러한 실시예에 한정되는 것이 아니라, 그 요지를 벗어나지 않는 범위내에서 여러 가지 변형이 가능한 것은 물론이다.
이상 설명한 바와 같이 본 발명에 따르면, EJB 컴포넌트를 C2 스타일에 따라 시각적으로 조립하고 아키텍쳐 기반으로 모델링할 수 있도록 함으로써 시스템이 상위수준에서 어떻게 구성되어 있고 어떠한 기능을 하는지의 방향을 지시해 주므로, 조립하는 시스템이 제공하는 서비스를 추상화하여 표현할 수 있다. 또한, 각 컴포넌트에 대해 C2 스타일 기반의 아키텍쳐 기술 언어로 표현되는 명세 파일을 자동 생성해 줌으로써 명시적이고 정확한 아키텍쳐로 모델링될 수 있도록 하며, 구성된 모델의 요소들에 기존의 EJB 컴포넌트들을 정확하게 매핑시켜 주고 이들간의 관계를 지속적으로 유지해 줄 수 있다. 따라서, 제 삼자에 의해 개발된 EJB 컴포넌트들을 상위 수준의 아키텍쳐 모델링을 통하여 합성 EJB의 구조와 이를 구성하는 컴포넌트들간의 행위를 기술함으로써 플러그 앤 플레이 방식의 조립을 지원한다. 그리고, 아키텍쳐상의 각 EJB 컴포넌트에 대해 위저드 방식의 그래픽 사용자 인터페이스를 가진 명세 편집기를 이용하여 아키텍쳐 기술 언어의 문법을 알지 못하더라도 텍스트 편집 작업 없이 쉽게 명세를 작성할 수 있도록 하며, 작성된 명세 정보를 이용하여 자동으로 EJB 래퍼를 생성함으로써 다양한 EJB 컴포넌트들이 조립될 수 있도록 한다. 따라서, 아키텍쳐의 확장 및 유지, 보수를 위한 목적으로, 기존 아키텍쳐에 컴포넌트를 추가 및 삭제, 대체하는 작업을 용이하게 할 수 있도록 한다. 또한, 여러 EJB 컴포넌트로 구성된 아키텍쳐에 대해 합성 EJB를 자동 생성해 줌으로써 새로운 하나의 EJB 컴포넌트로 재사용 가능하게 하며 클라이언트 프로그램과 함께 단위 애플리케이션으로 수행될 수 있도록 한다. 결과적으로, 본 발명은 기존 EJB 컴포넌트의 재사용성을 증대시키고 새로운 EJB 컴포넌트 및 단위 애플리케이션을 개발하는 시간을 단축시키고 생산성을 증대시키는 효과가 있다.
Claims (9)
- EJB 컴포넌트 조립 장치에 있어서,합성될 여러 EJB 컴포넌트들을 브라우징해 주고 관리해 주는 합성 팔레트 모듈과;상기 합성 팔레트에 나타난 컴포넌트를 끌어놓거나 새로운 컴포넌트와 커넥터 아이콘을 끌어다 놓음으로써 생성되는 합성 구조를 C2 스타일에 따라 시각화하는 아키텍쳐 다이어그램 편집기 모듈과;아키텍쳐상에서 컴포넌트의 역할과 속성을 기술하는 컴포넌트 속성 편집기 모듈과;합성 EJB 컴포넌트 코드와 관련 접속코드를 생성하는 접속코드/합성 EJB 생성기 모듈을 포함하는 것을 특징으로 하는 EJB 컴포넌트 조립 장치.
- 제 1 항에 있어서,상기 합성 팔레트는,제삼자에 의해 제공되거나 자체적으로 개발된 EJB 컴포넌트(EJB 패키지)와 시각적으로 모델링된 아키텍쳐 모델 파일(gadl 파일), 컴포넌트 명세 파일(idn 파일), 컴포넌트들을 연결해 주는 접속 코드인 EJB 래퍼(wrapper) 파일을 브라우징 및 관리해 주고 아키텍쳐 다이어그램 편집기에서 아키텍쳐를 모델링할 때 사용될 수 있도록 지원하는 것을 특징으로 하는 EJB 컴포넌트 조립 장치.
- 제 1 항에 있어서,상기 아키텍쳐 다이어그램 편집기는,합성팔레트에서 선택한 컴포넌트를 드래그-앤-드롭(drag-and-drop)하여 C2 스타일에 따른 컴포넌트 조립의 아키텍쳐를 시각적으로 구성할 수 있고, 아키텍쳐의 구문 및 의미, 형세가 C2 규칙을 따르고 있는지 검사하는 모듈로 구성된 것을 특징으로 하는 EJB 컴포넌트 조립 장치.
- 제 1 항에 있어서,상기 컴포넌트 속성 편집기는,컴포넌트 이름, 아키텍쳐상의 컴포넌트의 위치 정보를 나타내는 컴포넌트의 컨텍스트 정보를 설정할 수 있고, 컴포넌트의 역할과 행위를 아키텍쳐 기술언어로 기술한 명세 정보인 'idn' 파일에 대한 링크 정보와 컴포넌트 명세 정보를 바탕으로 각 컴포넌트를 실질적으로 연결해 주는 접속 코드인 EJB 래퍼 파일에 대한 링크 정보, 해당 컴포넌트의 EJB 패키지(Jar) 정보를 설정하고 보여 주는 속성 편집기 모듈과;아키텍쳐상에서 EJB 컴포넌트의 역할과 행위 정보를 기술하는 명세를 생성할 수 있도록 지원하는 위저드 방식의 명세 편집기 모듈을 포함하는 것을 특징으로 하는 EJB 컴포넌트 조립 장치.
- 제 1항에 있어서,상기 접속 코드/합성 EJB 생성기는,C2 스타일을 따르는 아키텍쳐 기술언어로 생성된 명세 정보로부터 컴포넌트의 행위 정보를 추출하여 추출된 정보에 따라 아키텍쳐 상의 독립적인 EJB 컴포넌트를 연결해 주는 역할을 하는 접속코드인 EJB 래퍼 파일을 자동으로 생성해 주는 접속 코드 생성기 모듈과;전체 아키텍쳐에 대해 합성 EJB를 생성하기 위해 합성 EJB 인터페이스 편집기 모듈을 이용하여 합성 EJB의 홈/원격 인터페이스를 정의하고 생성될 파일 이름을 지정하면 합성 EJB의 홈/원격 인터페이스, 세션 빈(Session Bean) 파일과 빈 접속 코드(Bean Glue Code) 파일을 자동으로 생성하여 주는 합성 EJB 생성기 모듈을 포함하는 것을 특징으로 하는 EJB 컴포넌트 조립 장치.
- 제 4 항에 있어서,상기 명세 편집기 모듈은,각 컴포넌트의 역할과 행위를 기술하는 명세를 생성하기 위해 위저드 방식으로 각 컴포넌트의 'Top' 인터페이스와 'Bottom' 인터페이스에 대한 정보를 입력하고, 각 컴포넌트가 가지고 있는 메소드 정보와 행위 정보를 입력하여, 명세 파일을 생성해 주도록 구성된 것을 특징으로 하는 EJB 컴포넌트 조립 장치.
- 제 5 항에 있어서,상기 접속 코드 생성기 모듈은,상기 명세 편집기를 이용해 작성된 컴포넌트의 역할과 행위 정보에 따라 아키텍쳐 상의 독립적인 EJB 컴포넌트를 연결해 주는 역할을 하는 접속 코드인 EJB 래퍼 파일을 자동으로 생성해 주되, 상기 생성되는 EJB 래퍼 파일은 각 EJB 컴포넌트를 위한 요청/응답 메시지의 처리 로직과 각 EJB 컴포넌트가 전개된 응용 서버에 따라 홈/원격 인터페이스를 찾는 로직으로 구성되는 것을 특징으로 하는 EJB 컴포넌트 조립 장치.
- 제 5 항에 있어서,상기 합성 EJB 생성기 모듈은,전체 아키텍쳐에 대해 합성 EJB를 생성하기 위해 아키텍쳐 최하위 계층의 컴포넌트에 대한 명세 정보를 이용하여 합성 EJB의 홈/원격 인터페이스를 정의할 수 있도록 리스트를 제공하고, 생성될 파일 이름을 지정할 수 있도록 하는 합성 EJB 인터페이스 편집기 모듈과;정의된 합성 EJB의 정보에 따라 합성 EJB의 홈/원격 인터페이스, 세션 빈(Session Bean) 파일과, 아키텍쳐와 합성 EJB를 연결해 주는 세션 빈 접속 코드(Session Bean Glue Code) 파일을 생성해 주는 합성 EJB 코드 생성기 모듈을 포함하는 것을 특징으로 하는 EJB 컴포넌트 조립 장치.
- EJB 컴포넌트 조립 방법에 있어서,새로운 아키텍쳐 다이어그램을 생성하는 단계와;EJB 자(jar)를 합성 팔레트 모듈에서 끌어다 놓는 단계와;상기 아키텍쳐 다이어그램을 편집하는 단계와;각 컴포넌트의 속성 및 명세 정보를 편집하는 단계와;상기 편집되는 속성 및 명세 정보를 기반으로 각 컴포넌트의 EJB 래퍼 파일을 생성하는 단계와;아키텍쳐에 대한 합성 EJB를 생성하는 단계를 포함하는 것을 특징으로 하는 EJB 컴포넌트 조립 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2001-0086928A KR100426311B1 (ko) | 2001-12-28 | 2001-12-28 | Ejb 컴포넌트 조립 장치 및 방법 |
US10/133,496 US7093264B2 (en) | 2001-12-28 | 2002-04-29 | Method and apparatus for assembling Enterprise JavaBeans components |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2001-0086928A KR100426311B1 (ko) | 2001-12-28 | 2001-12-28 | Ejb 컴포넌트 조립 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030056654A KR20030056654A (ko) | 2003-07-04 |
KR100426311B1 true KR100426311B1 (ko) | 2004-04-08 |
Family
ID=19717786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2001-0086928A KR100426311B1 (ko) | 2001-12-28 | 2001-12-28 | Ejb 컴포넌트 조립 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7093264B2 (ko) |
KR (1) | KR100426311B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101055255B1 (ko) * | 2010-06-29 | 2011-08-09 | 김도현 | 미들웨어를 이용한 개선된 임베디드 시스템 및 그 구성 방법 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8041023B1 (en) * | 2000-09-29 | 2011-10-18 | Aspect Software, Inc. | System and method of using a phone to access information in a call center |
US20030182651A1 (en) * | 2002-03-21 | 2003-09-25 | Mark Secrist | Method of integrating software components into an integrated solution |
JP3755500B2 (ja) * | 2002-09-06 | 2006-03-15 | ソニー株式会社 | Guiアプリケーション開発支援装置および方法、並びにコンピュータ・プログラム |
JP3760904B2 (ja) * | 2002-09-06 | 2006-03-29 | ソニー株式会社 | Guiアプリケーション開発支援装置、gui表示装置、および方法、並びにコンピュータ・プログラム |
US7412658B2 (en) | 2002-11-14 | 2008-08-12 | Sap Ag | Modeling system for graphic user interface |
KR20030044959A (ko) * | 2003-05-12 | 2003-06-09 | 정안모 | 클라이언트 측 메타데이터와 글루 코드를 이용한 컴포넌트 구현 및 조립방법 |
KR100618182B1 (ko) * | 2003-12-19 | 2006-08-31 | 한국전자통신연구원 | 이제이비 컨테이너에서 쓰레드빈의 명세 및 구현 방법 |
US7526734B2 (en) * | 2004-04-30 | 2009-04-28 | Sap Ag | User interfaces for developing enterprise applications |
US8136121B2 (en) * | 2005-03-16 | 2012-03-13 | International Business Machines Corporation | Graphical message format builder |
KR100687771B1 (ko) * | 2005-05-26 | 2007-03-02 | (주)엠투소프트 | 이제이비를 동적으로 이용한 리포트 작성 시스템 및 그방법 |
US8464214B2 (en) * | 2005-09-15 | 2013-06-11 | Ca, Inc. | Apparatus, method and system for building software by composition |
US20070192694A1 (en) * | 2006-02-13 | 2007-08-16 | Microsoft Corporation | Information display for disparate data sets |
US7949993B2 (en) * | 2006-11-28 | 2011-05-24 | International Business Machines Corporation | Method and system for providing a visual context for software development processes |
KR100860963B1 (ko) * | 2007-03-08 | 2008-09-30 | 삼성전자주식회사 | 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법 |
US8281283B2 (en) * | 2007-09-13 | 2012-10-02 | Sap Ag | Model-based integration of business logic implemented in enterprise javabeans into a UI framework |
KR100884435B1 (ko) * | 2007-12-05 | 2009-02-19 | 정안모 | 객체지향 기반 서비스 컴포넌트의 특정 애플리케이션비즈니스 엔티티에 대한 종속성 제거 방법 |
US9069645B2 (en) * | 2010-11-30 | 2015-06-30 | Sap Se | Decoupled development in a shared development system |
US9996806B2 (en) * | 2012-09-27 | 2018-06-12 | International Business Machines Corporation | Modeling an enterprise |
CN108170429B (zh) * | 2017-12-21 | 2021-04-02 | 美的智慧家居科技有限公司 | 物联插件的实现方法、装置及终端 |
US11989558B2 (en) * | 2022-02-24 | 2024-05-21 | Sap Se | Automatic generation of a cloud integration adapter from a standard, programming language-agnostic interface specification |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000250768A (ja) * | 1999-02-26 | 2000-09-14 | Internatl Business Mach Corp <Ibm> | サーバ・オブジェクトのメソッドを呼び出すプロセス方法及びデータ処理システム |
US6298478B1 (en) * | 1998-12-31 | 2001-10-02 | International Business Machines Corporation | Technique for managing enterprise JavaBeans (™) which are the target of multiple concurrent and/or nested transactions |
KR20010099511A (ko) * | 2001-10-15 | 2001-11-09 | 남진우 | 웹기반의 통합채널업무 및 전사금융업무 개발 시스템 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5850548A (en) * | 1994-11-14 | 1998-12-15 | Borland International, Inc. | System and methods for visual programming based on a high-level hierarchical data flow model |
DE937285T1 (de) * | 1995-12-15 | 2000-05-04 | Object Dynamics Corp., Costa Mesa | Verfahren und system zum erstellen von sofrware-komponenten und von aus unabhängigen teilen aufgebauten systemen |
US5991535A (en) * | 1996-07-03 | 1999-11-23 | Sun Microsystems, Inc. | Visual composition tool for constructing application programs using distributed objects on a distributed object network |
US6587556B1 (en) * | 2000-02-25 | 2003-07-01 | Teltronics, Inc. | Skills based routing method and system for call center |
-
2001
- 2001-12-28 KR KR10-2001-0086928A patent/KR100426311B1/ko not_active IP Right Cessation
-
2002
- 2002-04-29 US US10/133,496 patent/US7093264B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6298478B1 (en) * | 1998-12-31 | 2001-10-02 | International Business Machines Corporation | Technique for managing enterprise JavaBeans (™) which are the target of multiple concurrent and/or nested transactions |
JP2000250768A (ja) * | 1999-02-26 | 2000-09-14 | Internatl Business Mach Corp <Ibm> | サーバ・オブジェクトのメソッドを呼び出すプロセス方法及びデータ処理システム |
KR20010099511A (ko) * | 2001-10-15 | 2001-11-09 | 남진우 | 웹기반의 통합채널업무 및 전사금융업무 개발 시스템 |
Non-Patent Citations (1)
Title |
---|
논문 아키텍쳐 스타일 기반의 컴포넌트 조립 및 지원도구의 개발. (2001.10.00 ) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101055255B1 (ko) * | 2010-06-29 | 2011-08-09 | 김도현 | 미들웨어를 이용한 개선된 임베디드 시스템 및 그 구성 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20030122867A1 (en) | 2003-07-03 |
US7093264B2 (en) | 2006-08-15 |
KR20030056654A (ko) | 2003-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100426311B1 (ko) | Ejb 컴포넌트 조립 장치 및 방법 | |
US20070150855A1 (en) | Method and system of developing a software with utilizing extended metadata of component under component-based development environment | |
US7716665B2 (en) | System and method for developing portal applications and for automatically deploying portal applications into a portal server application | |
Coninx et al. | Dygimes: Dynamically generating interfaces for mobile computing devices and embedded systems | |
US5950011A (en) | System using designer editor and knowledge base for configuring preconfigured software in an open system in a distributed environment | |
US7805735B2 (en) | System and method of representing data entities of standard device applications as built-in components | |
CA2604449C (en) | A system and method for flexible visual representation of presentation components | |
US9158510B2 (en) | System and computer program product for creating a telecommunications application | |
US20070011650A1 (en) | Computer method and apparatus for developing web pages and applications | |
US20090132220A1 (en) | Method For Creating A Telecommunications Application | |
US20020083414A1 (en) | System and method for a command structure representation | |
US20020053070A1 (en) | Application development system and method | |
CN110458430A (zh) | 一种基于图形化工具实现动态工作流配置的系统及方法 | |
Froehlich et al. | Using object-oriented frameworks | |
JPH1091449A (ja) | 分散オブジェクト・ネットワーク上で分散オブジェクトを利用してアプリケーションプログラムを構成するための視覚的組立ツール | |
JP2006510133A (ja) | 関連出願と相互参照するグラフィック利用者インターフェースのためのモデル化システム | |
WO2011150777A1 (zh) | Web应用的开发装置及其开发方法 | |
CN101185303A (zh) | 创建用于绑定应用程序与关联后端服务器之间的消息的映射文档的系统及方法 | |
EP1703379A1 (en) | System and method for applying development patterns for component based applications | |
JP2009245441A (ja) | コンポーネント基盤環境下で拡張されたメタデータを利用したソフトウェア開発方法及びその開発システム | |
US6438742B1 (en) | Object-oriented system and method for visually generating software applications | |
US20080088877A1 (en) | System and Method for Updating Reference to a Data-Source In a Component-Based Application | |
EP1703386A1 (en) | System and method for designing component based applications | |
Truyen et al. | On interaction refinement in middleware | |
JP2007018122A (ja) | Webサービスカスタマイズシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20090303 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |