KR20040082999A - 다양한 유형의 클라이언트 프로세스로부터 데이터에액세스하는 서버 프로세스 - Google Patents

다양한 유형의 클라이언트 프로세스로부터 데이터에액세스하는 서버 프로세스 Download PDF

Info

Publication number
KR20040082999A
KR20040082999A KR1020040018869A KR20040018869A KR20040082999A KR 20040082999 A KR20040082999 A KR 20040082999A KR 1020040018869 A KR1020040018869 A KR 1020040018869A KR 20040018869 A KR20040018869 A KR 20040018869A KR 20040082999 A KR20040082999 A KR 20040082999A
Authority
KR
South Korea
Prior art keywords
language
motor
application
client
translator
Prior art date
Application number
KR1020040018869A
Other languages
English (en)
Other versions
KR100766756B1 (ko
Inventor
들라뤼기욤므
Original Assignee
다솔 시스템므
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 다솔 시스템므 filed Critical 다솔 시스템므
Publication of KR20040082999A publication Critical patent/KR20040082999A/ko
Application granted granted Critical
Publication of KR100766756B1 publication Critical patent/KR100766756B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • AHUMAN NECESSITIES
    • A23FOODS OR FOODSTUFFS; TREATMENT THEREOF, NOT COVERED BY OTHER CLASSES
    • A23NMACHINES OR APPARATUS FOR TREATING HARVESTED FRUIT, VEGETABLES OR FLOWER BULBS IN BULK, NOT OTHERWISE PROVIDED FOR; PEELING VEGETABLES OR FRUIT IN BULK; APPARATUS FOR PREPARING ANIMAL FEEDING- STUFFS
    • A23N7/00Peeling vegetables or fruit
    • A23N7/02Peeling potatoes, apples or similarly shaped vegetables or fruit
    • A23N7/023Peeling potatoes, apples or similarly shaped vegetables or fruit one by one
    • A23N7/026Peeling machines therefor with rotary fruit holding spindles and fixed or movable peeler blades
    • AHUMAN NECESSITIES
    • A23FOODS OR FOODSTUFFS; TREATMENT THEREOF, NOT COVERED BY OTHER CLASSES
    • A23NMACHINES OR APPARATUS FOR TREATING HARVESTED FRUIT, VEGETABLES OR FLOWER BULBS IN BULK, NOT OTHERWISE PROVIDED FOR; PEELING VEGETABLES OR FRUIT IN BULK; APPARATUS FOR PREPARING ANIMAL FEEDING- STUFFS
    • A23N7/00Peeling vegetables or fruit
    • A23N7/10Driving mechanisms
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Food Science & Technology (AREA)
  • Polymers & Plastics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Chemical & Material Sciences (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

컴퓨터 시스템은 클라이언트 프로세스 (52, 54) 가 서버 프로세스 (50) 를 통해 데이터 (56) 에 액세스할 수 있도록 한다. 서버 프로세스는 애플리케이션 (58) 과 모터 (60) 를 포함한다. 모터 (60) 는 클라이언트 프로세스 (52, 54) 중 하나로부터 제 1 언어로 요청을 수신하고 그 클라이언트 프로세스에게 제 1 언어로 응답을 낸다. 모터 (60) 는 제 1 언어와 구별되는 객체지향언어인 제 2 언어로 애플리케이션 (58) 과 통신한다. 제 2 언어 내에서, 객체는 속성을 가지며 이벤트와 결합된다. 애플리케이션 (58) 은 객체를 인스턴스화 (instantiate) 하고, 인스턴스화된 객체의 속성을 데이터 (56) 에 기초하여 평가하며 이벤트에 반응한다. 모터 (60) 는 애플리케이션에 의해 인스턴스화된 객체와 그 속성에 따라 클라이언트 프로세스 (52) 에게 제 1 언어로 응답을 낸다; 모터는 또한 클라이언트 프로세스로부터 제 1 언어로 수신된 요청에 따라 제 2 언어로 애플리케이션 (58) 에게 업데이트 된 속성과 이벤트를 제공한다.
따라서, 모든 클라이언트 프로세스는 동시적으로 데이터에 액세스하고 데이터를 공유할 수 있다. 제 2 언어는 제 1 언어와 구별되기 때문에, 애플리케이션은 다양한 유형의 클라이언트 프로세스에 대해 변경 없이 사용될 수 있다.

Description

다양한 유형의 클라이언트 프로세스로부터 데이터에 액세스하는 서버 프로세스 {SERVER PROCESS FOR ACCESSING DATA FROM VARIOUS TYPES OF CLIENT PROCESSES}
본 발명은 컴퓨터 시스템 분야에 관련된 것으로서, 특히 클라이언트 프로세스가 데이터에 액세스하는 것을 허가하기 위한 서버 프로세스에 관한 것이다.
컴퓨터 시스템에 있어서, 클라이언트 프로세스가 서버 프로세스를 통하여 데이터에 액세스할 수 있도록 할 필요가 있다. 예를 들어, html 언어로 질의 (query) 를 보내는 클라이언트에게 인터넷을 통하여 정보를 제공하는 서버의 경우에 이러한 필요가 나타난다. 서버에 호스트 된 서버 프로세스는 클라이언트 프로세스가 요청한 정보에 액세스할 수 있도록 할 필요가 있다. 도 1은 이러한 시스템 구조의 개략도이다. 서버 프로세스 (2) 는 데이터 (4) 를 포함하며, 이 데이터에 대한 액세스가 제공되어야 한다. 서버 프로세스는 애플리케이션 (6) 과 모터 (8) 를 더 포함한다. 모터는 Apache Software Foundation 사의 상표명 PHP, Microsoft 사의 상표명 ASP 또는 Sun Microsystem 사의 상표명 JSP 등, 시중에 판매되는 제품들 중 하나가 될 수 있다.
도 1 은 또한 2 개의 클라이언트 프로세스 (10 과 12) 를 나타낸다; 일반적인 경우에, 클라이언트 프로세스는 하나의 별개 클라이언트 머신에 호스트 되는 반면, 서버 프로세스는 하나 이상의 서버 머신에 호스트 된다. 클라이언트 프로세스는 Netscape Corp. 의 상표명 Navigator 또는 Microsoft Corp. 의 상표명 Internet Explorer 와 같은 웹 브라우저이다. 클라이언트 프로세스와 서버 프로세스는 예를 들어 IP 계열의 프로토콜을 이용하는 네트워크 등을 통해 연결된다. 클라이언트 프로세스 (10 과 12) 는 html, 다이내믹 html, 또는 activeX, Java 애플릿, JavaScript (Sun Microsystems 사의 상표명으로, 마이크로소프트 인터넷 익스플로러, 넷스케이프 네비게이터에 의해 제공된다) 등의 다른 부가적 기술을 이용하여 서버 프로세스의 모터와 통신한다. 단순화를 위해, 앞으로의 설명에서는 html을 일반적인 예로 사용한다.
애플리케이션 (6) 은 모터와 통신하기 위해 같은 언어를 사용한다. 또한, 애플리케이션 (6) 은 모터가 제공하는 기능들을 이용할 수도 있다.
시스템의 동작은 다음과 같다. 클라이언트 프로세스 (10, 12) 는 html 언어로 모터 (8) 에 요청 (request) 을 보낸다. 다양한 클라이언트로부터의 요청은 html 언어로 그리고 모터 고유의 부가적 기능을 이용하여 모터 (8) 에 의해 애플리케이션 (6) 으로 넘겨진다. 모터로부터의 요청은 애플리케이션 (6) 에 의해 처리되고, 애플리케이션은 필요한 경우 데이터 (4) 에 액세스한다. 애플리케이션으로부터의 응답은 html 언어로 모터에 제공되고 클라이언트 프로세스로 전송 (forward) 된다.
이런 유형의 구조에서는, 애플리케이션들은 거의 이식성이 없으며 html 클라이언트 전용이다. 위에서 열거한 것과 같은 모터들은 애플리케이션의 개발을 용이하게 하기 위한 추가적인 기능이나 라이브러리를 제공한다; 그러나, 애플리케이션과 모터의 통신의 기반은 여전히 html에 있다. 그러므로, 애플리케이션은 html 클라이언트에 충분히 특화되어 있으며 다른 유형의 클라이언트에 쉽게 적응되지 않는다. 따라서, JSP, ASP 또는 PHP 와 같은 언어는 html 기반이며 이들 언어로 쓰여진 어떤 애플리케이션도 html 부분을 포함한다.
html 클라이언트 이외의 클라이언트에 대해서도 서버 프로세스를 통해 데이터에 액세스를 허가할 필요가 있다. Dassault Systemes 사(社)는 CATIA 라는 상표로 CAD 제품을 판매한다; 두 클라이언트 프로세스 (20 과 22) 에 대한 가능한 상품의 한 구현 예로 이 제품 구조의 개략도가 도 2 에 도시되어 있다. 도 2 는 머신 (24), 호스팅 데이터 (26) 그리고 클라이언트 프로세스 (20, 22) 각각에 대한 하나의 CATIA 프로세스 (28, 30) 를 나타낸다. 각각의 CATIA 프로세스는 애플리케이션의 사본 (32, 34) 과 모터 (36, 38) 를 포함한다. CATIA 계열의 제품은 CATIA 표준 하에서 개발된 애플리케이션이 몇몇의 모터 중 하나에 의해 동작할 수 있도록 설계되었다; 각각의 모터는, 예를 들어 Unix 클라이언트 또는 Windows (trademark) 클라이언트 중 한 유형의 클라이언트 프로세스를 위해 설계되었다. 이런 점에 의해 상이한 운영체제를 실행하는 클라이언트 프로세스를 서빙하는데 동일한 애플리케이션을 사용할 수 있다. 좀더 구체적으로는, 도 2 에 도시된 바와 같이, 각각의 클라이언트 프로세스를 서빙하는데 동일한 애플리케이션의 사본이 이용된다.
따라서, 다양한 유형의 머신 상에서 동작하는 다양한 유형의 클라이언트들에 사용될 수 있다는 점에서 애플리케이션은 이식성이 있다. 도 2 에 도시된 바와 같이, 같은 데이터가 두 프로세스 모두에 의해 액세스될 수 있음에도, 각각의 클라이언트 프로세스에 대해 CATIA 프로세스 하나가 이용된다. 각각의 CATIA 프로세스 (28, 30) 는 일반적으로 고유의 데이터 사본을 생성하고, 클라이언트 프로세스에 의해 이루어진 그 데이터의 수정 (amendment) 에 따라 데이터 (26) 의 업데이트를 처리한다. 이것은, 주어진 CATIA 프로세스 (28) 의 한 클라이언트에 의해 국지적으로 수정된 데이터에, 주어진 프로세스 (28) 의 애플리케이션 (32) 이 데이터 (26) 업데이트를 처리하기까지는 다른 클라이언트 프로세스 (22) 가 액세스할 수 없다는 점에서 클라이언트 프로세스들간의 실시간 데이터 공유 (real-time sharing of data) 를 제한할 수 있다. 도 2 의 예에서, 두 CATIA 프로세스 (28, 30) 는 데이터와 같이 모두 같은 머신에 호스트 된다. 별개의 머신을 사용할 수도 있다; 그래도 여전히 각각의 클라이언트에 대해 하나의 CATIA 프로세스가 존재하게 된다.
따라서, 다양한 클라이언트가 단순하게 데이터에 액세스할 수 있도록 하고, 애플리케이션이 여전히 한 유형의 클라이언트에서 다른 유형으로 이식될 수 있는 컴퓨터 시스템이 필요하다.
도 1 은 html 클라이언트에 대한 종래 아키텍쳐의 개략도.
도 2 는 CATIA 시스템 구조의 개략도.
도 3 은 유사한 클라이언트 프로세스를 가지는 본 발명에 따른 컴퓨터 시스템 구조의 개략도.
도 4 는 상이한 클라이언트 프로세스를 가지는 본 발명에 따른 컴퓨터 시스템 구조의 개략도.
도 5 는 본 발명에 따른 시스템의 또 다른 실시형태 구조의 개략도.
도 6 은 본 발명에 따른 시스템의 상세 개략도.
*도면의 주요 부분에 대한 부호의 설명
2:서버 프로세스 4:데이터
6:애플리케이션 8:모터
10:클라이언트 프로세스 12:클라이언트 프로세스
20:클라이언트 프로세스 22:클라이언트 프로세스
24:서버 머신 26:데이터
28:CATIA 프로세스 30:CATIA 프로세스
32:애플리케이션 34:애플리케이션
36:모터 38:모터
50:서버 프로세스 52:클라이언트 프로세스
54:클라이언트 프로세스 56:데이터
58:애플리케이션 60:모터
62:C/S 링크 64:C/S 링크
66:모터/애플리케이션 링크 68:클라이언트 프로세스
70:C/S 링크 72:번역기
74:번역기 75:애플리케이션 인터페이스
76:클라이언트 프로세스 78:클라이언트 프로세스
80:CATIA 프로세스 82:CATIA 프로세스
84:Windows 모터 86:Unix 모터
88:CATIA 애플리케이션 90:CATIA 애플리케이션
92:클라이언트 인터페이스 94:클라이언트 인터페이스
100:웹 브라우저 102:브라우저 프레임
104:UI 106:추상 계층
108:화살표 110:화살표
112:화살표 114:화살표
본 발명의 한 실시형태에 따르면, 적어도 두 클라이언트 프로세스가 애플리케이션과 모터를 포함하는 서버 프로세스를 통해 데이터에 액세스할 수 있도록 하기 위한 컴퓨터 시스템이 제공된다. 모터는 클라이언트 프로세스들 중 하나로부터 제 1 언어로 요청 (request) 을 받고 상기 클라이언트 프로세스 중 하나에게 제 1 언어로 응답을 내도록 적응되어 있다; 모터는 애플리케이션과 제 1 언어와 구별되는 제 2 언어로 통신하는데, 제 2 언어는 객체지향언어 (objected-oriented program) 로서, 속성 (properties) 을 가지고 이벤트와 결합된 객체 (object) 가있다. 애플리케이션은 객체를 인스턴스화하고, 그 인스턴스화한 객체의 속성을 데이터에 기초하여 평가하며 이벤트에 반응하도록 적응되어 있다. 모터는 애플리케이션에 의해 인스턴스화된 객체와 그 속성에 따라, 상기 클라이언트 프로세스 중 하나에게 제 1 언어로 응답을 내도록 적응되어 있다. 모터는 상기 클라이언트 프로세스 중 하나로부터 제 1 언어로 수신된 요청에 따라 제 2 언어로 업데이트 된 속성과 이벤트를 애플리케이션에 제공하도록 적응되어 있다.
바람직하게는, 모터는 또한
다른 클라이언트 프로세스로부터 제 1 언어로 요청을 받고 상기 다른 클라이언트 프로세스에 제 1 언어로 응답을 내고,
애플리케이션에 의해 인스턴스화된 객체 및 그 속성에 따라 상기 다른 클라이언트 프로세스에게 제 1 언어로 응답을 내도록 적응되어 있으며;
모터는 상기 다른 클라이언트 프로세스로부터 제 1 언어로 수신된 요청에 따라, 애플리케이션에 업데이트 된 속성과 이벤트를 제 2 언어로 제공하도록 적응되어 있다.
또한, 다음을 제공하는 것도 가능하다;
모터는 또한, 또 다른 클라이언트 프로세스로부터 제 3 언어로 요청을 받고 상기 다른 클라이언트 프로세스에게 제 3 언어로 응답을 내도록 적응되어 있으며, 제 3 언어는 제 1 언어와 다르고 제 2 언어와는 구별되고;
모터는 애플리케이션에 의해 인스턴스화된 객체 및 그 속성에 따라, 제 3 언어로 상기 다른 클라이언트 프로세스에게 응답을 내도록 적응되어 있고;
모터는 상기 다른 클라이언트 프로세스로부터 제 3 언어로 받은 요청에 따라, 애플리케이션에 제 2 언어로 업데이트 된 속성과 이벤트를 제공하도록 적응되어 있다.
이 경우, 모터에는 제 1 언어로 상기 클라이언트 프로세스와 통신하기 위한 제 1 번역기 (renderer) 와 상기 제 3 언어로 상기 또 다른 클라이언트 프로세스와 통신하기 위한 제 2 번역기가 제공된다.
또 다른 실시형태에서는, 클라이언트 프로세스는 애플리케이션 프로세스를 통해 서버 프로세스의 모터와 통신한다. 애플리케이션 프로세스는:,
클라이언트 프로세스와 통신하도록 적응된 제 2 모터;
제 2 모터와 통신하도록 적응된 제 2 애플리케이션; 및
제 1 언어로 모터와 통신하도록 적응되고 제 2 애플리케이션 및/또는 제 2 모터와 통신하도록 적응된 클라이언트 인터페이스를 포함한다.
바람직하게는, 제 1 언어는 html을 포함한다.
본 발명은 또한, 또 다른 실시형태에서, 클라이언트 프로세스를 서빙하고 클라이언트 프로세스가 애플리케이션에 의해 관리되는 데이터에 액세스할 수 있게 하는 모터를 제안하며; 모터는:,
클라이언트 프로세스로부터 제 1 언어로 요청을 받고 제 1 언어로 응답을 내도록 적응된 제 1 번역기;
클라이언트 프로세스로부터 제 1 언어와는 다른 제 3 언어로 요청을 받고, 제 3 언어로 응답을 보내도록 적응된 제 2 번역기;
제 1 언어, 제 3 언어와는 구별되고, 속성을 가지고 이벤트와 결합된 객체가 있는 객체지향언어인 제 2 언어로 메시지를 보내고 받도록 적응된 애플리케이션 인터페이스를 포함한다.
모터는 애플리케이션 인터페이스에서 받은 메시지에 포함된 객체와 속성에 따라 제 1 번역기를 통해 제 1 언어로 응답을 내고 제 2 번역기를 통해 제 3 언어로 응답을 내도록 적응되어 있다; 모터는 제 1 과 제 2 번역기에 의해 받은 요청에 따라 애플리케이션 인터페이스를 통해, 메시지와 함께 업데이트 된 속성과 이벤트를 보내도록 적응되어 있다.
역시, 제 1 언어는 html을 포함할 수 있다.
첨부 도면을 참조하여, 본 발명을 구현한 컴퓨터 시스템을 비 제한적인 예시로서 설명한다.
본 발명은 적어도 두 클라이언트 프로세스가 서버 프로세스를 통해 데이터에 액세스할 수 있도록 하는 컴퓨터 시스템을 제안한다. 시스템은 다양한 클라이언트 프로세스들에 의해 데이터가 공유될 수 있게 한다; 달리 말하면, 동시에 다양한 클라이언트 프로세스들이 같은 데이터에 액세스할 수 있다. 또한, 서버 프로세스가 다양한 유형의 클라이언트들에 데이터 액세스를 제공할 수 있게 한다.
도 3 은 유사한 클라이언트들을 가진 실시형태에 있어서, 본 발명에 따른 시스템 아키텍처 (architecture) 의 개략도이다. 이는 서버 프로세스 (50) 와 두 클라이언트 프로세스 (52 및 54) 를 보여준다. 명료하게 하기 위해 2 개의 클라이언트 프로세스만을 나타내었다. 물리적인 구현의 측면에서, 서버 프로세스와 클라이언트 프로세스는 별개의 머신 상에서 실행 중일 수 있으며; 또한, 같은 머신 상에서 실행 중일 수도 있다. 이것은 본 발명의 작용과는 관계가 없으며, 물리적 구현은 이하에서 논의하지 않는다.
도 3 에 도시된 바와 같이, 서버 프로세스 (50) 는 데이터 (56) 에 액세스하기 위해 이용된다. 서버 프로세스 (50) 는 애플리케이션 (58) 및 모터 (60) 를 포함한다. 모터 (60) 는 클라이언트 프로세스 (52 와 54) 중 하나로부터 제 1 언어로 요청을 받도록 적응되어 있다. 도 3 은 모터와 프로세스간의 통신 링크 (62, 64) 를 나타낸다. 도 1 의 것과 유사한 클라이언트 프로세스의 예에서, 제 1 언어는 일반적으로 html 및 관련된 확장판들을 포함할 것이다. 모터는 또한 요청한 클라이언트 프로세스 또는 다른 클라이언트 프로세스에게 제 1 언어로 응답을 내도록 적응되어 있다. 이 예에서, 프로세스 (52 및 54) 는 모터 (60) 와 통신하기 위해서 같은 언어 -예를 들어, html 및 관련 기술- 를 이용하며, 이는 각 링크 (62, 64) 에 하나의 대시로 표시되었 있다.
도 3 에서 모터 (60) 와 애플리케이션 (58) 간의 통신 링크 (66) 에 이중 대시로 나타낸 것과 같이, 모터는 제 1 언어와 구별되는 제 2 언어로 애플리케이션과 통신한다. 제 2 언어의 문법 (syntax) 은 제 1 언어의 문법과 독립적이라는 점에서 제 2 언어는 제 1 언어와 구별된다. 특히, 제 2 언어는 제 1 언어로부터의 문법 요소들을 사용하지 않는다. 따라서, 제 1 언어의 어떠한 변화도 제 2 언어에 영향을 주지 않는다. 제 2 언어가 제 1 언어와 구별되므로, 모터에 의해 서빙되는 프로세스에 독립적으로 애플리케이션을 개발할 수 있다. 다음의도 4 및 도 5 를 참조하여 설명되는 바와 같이, 다른 유형의 클라이언트 프로세스를 위한 애플리케이션을 다시 개발하거나 애플리케이션을 그 클라이언트 프로세스에 적응시킬 필요 없이 상이한 유형의 클라이언트 프로세스들을 서빙할 수 있다.
이것은 도 1 을 참조하여 설명한 종래기술에 비하면 주요한 장점이다. 예를 들어, 애플리케이션이 JSP 또는 ASP 로 개발되면, 필수적으로 html 부분을 포함할 것이므로 html 브라우저인 클라이언트만을 서빙할 수 있도록 적응되어 있을 것이다. 만약 같은 데이터가 다른 유형의 클라이언트 프로세스에 의해 액세스될 필요가 있으면, 다른 모터와 함께, 애플리케이션이 새롭게 개발되어야 한다.
도 3 의 예에서, 제 2 언어도 객체지향언어로서, 속성을 가지고 이벤트와 결합된 객체가 있다. 객체 언어 고유의 장점은 차치하고, 객체지향언어의 선택은 제 1 언어와 구별되는 제 2 언어를 용이하게 제공할 수 있게 한다. 실제로, 모터 (60) 는 클라이언트 프로세스 (52, 54) 중 하나로부터 제 1 언어로 요청을 받을 것이다; 이 요청의 내용에 따라, 모터 (60) 는 애플리케이션 (58) 에 업데이트 된 속성 또는 이벤트를 제공하거나, 애플리케이션에 속성 및 이벤트에 대한 질의를 한다. 그러면 애플리케이션은 단순히 모터로부터 업데이트 된 속성 및/또는 이벤트를 받거나, 객체의 속성을 요청한다. 그 요청에 따라, 애플리케이션은 객체를 인스턴스화 하고/하거나, 인스턴스화된 객체의 속성을 데이터에 기초하여 평가하며/하거나 이벤트에 반응한다. 업데이트 된 속성, 또는 이벤트에 대한 반응은 애플리케이션에 의해 모터로 전송된다. 그러면 모터는 애플리케이션에 의해 제공된 정보에 기초하여, 제 1 언어로 관련 프로세스(들)에게 답변을 제공한다.
이는 서버 프로세스에 의해 클라이언트 프로세스에 제공되는 다양한 측면의 서비스를 애플리케이션 (58) 과 모터 (60) 간에 분리한 것과 같다. 서빙되는 클라이언트 유형에 고유한 성질들은 모터에 의해 처리되고 애플리케이션으로 전달되지 않는다. 이것은, 예를 들어 서비스에 의해 제공되는 "룩 앤드 필 (look and feel)" 을 포함할 수 있다. 데이터와 비헤이비어 (behaviour) 는 일반적으로 애플리케이션에 의해 처리된다. 도 4 는 상이한 클라이언트 프로세스들을 가지는, 본 발명에 따른 시스템 구조의 개략도이다. 도 4 는 도 3 과 유사하고 가능하면 같은 참조부호를 사용한다; 도 4 는 클라이언트 프로세스 (54) 대신에 클라이언트 프로세스 (52) 와는 다른 유형의 클라이언트 프로세스 (68) 를 나타낸다. 클라이언트 프로세스 (68) 는 통신 링크 (70) 를 통해 모터 (60) 와 통신한다. 링크 (70) 에 삼중 대시로 나타낸 것과 같이, 클라이언트 프로세스 (68) 는 모터 (60) 와 통신하기 위해 제 1 언어와 다른 제 3 언어를 사용한다. 예를 들어, 제 1 언어는 html 일 수 있다. 제 3 언어는 html을 이해하도록 적응된 웹 브라우저의 사용을 필요로 함이 없이 Windows (trademark) 클라이언트 또는 Unix 클라이언트에 적응될 수 있다. 제 3 언어는, 다음에 설명하는 바와 같이, 어떠한 독자적 (proprietary) 언어일 수 있다. 제 3 언어는 제 1 언어와 다르나, 제 1 언어와 유사점을 가지거나 공통 아이템 (item) 을 가질 수도 있다. 도 3 의 참조에서 제 1 언어와 제 2 언어를 구별하는 이유와 같은 이유로, 제 3 언어는 제 2 언어와 구별된다.
도 4 의 모터 (60) 는 2 개의 다른 번역기 (72 및 74) 를 갖는다. 번역기 (72 또는 74) 는 어떤 언어 - 제 1 또는 제 3 언어 -로 요청을 수신하고 관련 클라이언트에 각각의 언어로 응답을 내도록 적응되어 있다. 별개의 번역기의 존재로 인해, 클라이언트 프로세스의 어드레싱 (addressing) 에 사용되는 언어로부터 독립적인 모터 (60) 의 기능 -예를 들어, 애플리케이션과의 통신, 클라이언트 프로세스로부터의 요청 큐잉 (queuing) 등- 은 다른 클라이언트 프로세스를 서빙하기 위해 복제될 필요가 없다. 번역기는 하나 또는 일군의 클라이언트 언어에 대해 클라이언트 요청을 번역하고 응답을 생성하므로, 번역기는 모터에서 그 또는 그 군의 클라이언트 언어에 고유한 모든 것을 포함한다. 도 4 는 또한, 애플리케이션 인터페이스 (75) 를 나타내며, 이는 모터에 의해, 제 2 언어로 메시지를 수신하거나 보내는데 사용된다.
도 3 과 도 4 를 비교하면, 이 예시적인 아키텍처에서는 다른 타입의 클라이언트 프로세스들을 서빙하기 위해 애플리케이션을 적응시키 것이 필요하지 않다는 것을 알 수 있다. 도 4 의 예는, 단순히 모터에 추가적인 번역기를 제공함으로써 다른 클라이언트 프로세스들을 서빙할 수 있게 한다. 이것은 애플리케이션을 재개발 (re-developing) 하는 것을 의미하지 않는다. 도 4 와 도 2 를 비교하면, 예시적인 구조는 다른 클라이언트 프로세스가 실시간으로 같은 데이터에 어드레싱 할 수 있게 하였음을 알 수 있다. 애플리케이션에서 데이터의 복사본을 관리할 필요가 없다. 모든 클라이언트 프로세스들은 같은 데이터에 액세스하고, 그 데이터는 다양한 클라이언트 프로세스들에 의해 동시적으로 업데이트 될 수 있다.
도 5 는 본 발명에 따른 시스템의 또 다른 실시형태 구조의 개략도이다. 이는, 도 4 의 구조가 클라이언트 프로세스가 애플리케이션 프로세스를 통해 데이터에 액세스할 수 있도록 하는데도 사용될 수 있음을 나타낸다.
도 5에서, 서버 프로세스 (50) 와 클라이언트 프로세스 (52) 는 도 4 의 대응 요소와 동일하며, 다시 설명하지 않는다. 설명을 위해, 애플리케이션 (58) 은, 예를 들어 Dassault Systemes 사의 상표명 ENOVIA 와 같은 유형의 제품 수명 주기 관리 애플리케이션이다. 모터의 제 1 번역기 (72) 는 html 번역기이고, 웹 브라우저를 실행하는 클라이언트 프로세스 (52) 에 의해 사용되도록 적응되어 있다. 도 5 는 하나의 웹 클라이언트만 도시되어 있으나, 하나 이상이 있을 수 있다. 이는 html 클라이언트가 애플리케이션 (58) 을 통해 데이터 (56) 에 액세스할 수 있도록 한다. 따라서 이 예에서, html 클라이언트는 제품 수명 주기 관리를 이용할 수 있다.
도 5 는 또한 두 클라이언트 프로세스 (76 및 78) 를 보여준다. 설명을 위해, 이 프로세스들은 상이한 플랫폼 상에서 실행 중이다. 프로세스 (76) 는 Windows 프로세스일 수 있고 프로세스 (78) 는 Unix 프로세스일 수 있다. 클라이언트 프로세스 (76 과 78) 는 직접 모터 (60) 에 액세스하지 않고, 각각 CATIA 프로세스 (80, 82) 를 통하여 모터 (60) 에 액세스한다. 프로세스 (80) 는 Windows 클라이언트 프로세스 (76) 와 통신하도록 적응된 Windows 모터 (84) 를 포함하며, 프로세스 (82) 는 Unix 클라이언트 프로세스 (78) 와 통신하도록 적응된 Unix 모터 (86) 를 포함한다. 각각의 프로세스 (80, 82) 는 또한 CATIA 애플리케이션 (88, 90) 을 포함하며; 관련된 데이터는 표시되어 있지 않다. 두 애플리케이션은 모두 동일할 수도 있다. 각각의 CATIA 프로세스 (80, 82) 에는, 통신 링크 (96) 를 통해 제 3 언어로 모터 (60) 의 제 2 번역기 (74) 와 통신하도록 적응된 클라이언트 인터페이스 (92, 94) 가 더 제공된다. 클라이언트 인터페이스 (92, 94) 는 애플리케이션 (88, 90) 과 모터 (84, 86) 사이에서 사용되는 언어와 동일한 언어, 즉 본 예에서는 CATIA로 관련 모터 (84, 86) 와 통신한다.
도 2 에서와 같이, 각각의 클라이언트 프로세스 (76, 78) 는 CATIA 애플리케이션 (88, 90) 에 액세스할 수 있다. 또한, 각각의 클라이언트 프로세스는 ENOVIA 애플리케이션 (58) 에 액세스하고 대응되는 데이터 (56) 를 이용할 수 있다. 클라이언트 프로세스 (예를 들어, html) 가 ENOVIA 애플리케이션에 액세스할 수 있도록 하기 위해 추가적인 환경을 제공할 필요가 없다. 사용자에 대하여, ENOVIA 애플리케이션은 사용자의 보통의 CATIA 클라이언트 환경 내에서 사용할 수 있다. 클라이언트 프로세스 (76, 78) 에게 CATIA 또는 ENOVIA 애플리케이션에 대한 액세스는 투과적 (transparent) 이다; 그러나, 클라이언트 프로세스 (76, 78) 에게 CATIA 와 ENOVIA 애플리케이션에 대한 별개의 액세스를 제공할 필요는 없다.
도 5 의 예는, 도 4 의 예와 같이 다양한 유형의 클라이언트들에 대한 어드레싱을 가능케 한다; 또한, (예시된 CATIA 애플리케이션과 같은) 이미 개발된 애플리케이션을 재 사용할 수 있게 한다. 애플리케이션 (88, 90) 은 적응될 필요가 없으며; 프로세스 (80, 82) 에는 모터 (60) 에 대한 어드레싱을 위해 단순히 클라이언트 인터페이스 (92, 94) 가 제공된다. 동일한 데이터 (56) 가 클라이언트 프로세스 (76, 78) 모두에 의해 동시적으로 액세스될 수 있다.
도 5 의 방법의 또 다른 장점은, 클라이언트 프로세스들이 다르더라도 서버 프로세스 (50) 의 모터 (60) 에는 클라이언트 프로세스 (76, 78) 에 어드레싱을 하기 위한 하나의 번역기 (74) 만을 제공할 수도 있다는 것이다. 실제로, 모터 (84 와 86) 가 이미 클라이언트 프로세스 (76 과 78) 의 차이를 염두에 두고 있으므로 CATIA 프로세스 (80, 82) 내에서 같은 클라이언트 인터페이스 (92, 94) 가 사용될 수 있다. 도 5 의 예는 새로운 개발의 필요성을 제한하기 위해 기존의 모터를 이용한다.
도 6 은 본 발명에 따른 시스템의 좀더 상세한 개략도이다. 도 6 은 html 클라이언트의 예를 나타낸다. 클라이언트 프로세스 (52) 는 웹 브라우저 (100) 를 포함하며; 브라우저 프레임 (102) 은, 서버 애플리케이션 사용자 인터페이스 (user interface, UI; 104) 를 이용하여, html 로 사용자에게 디스플레이된다. 서버 프로세스 (50) 의 모터 (60) 는 html 번역기 (72) 와 추상 계층 (abstraction layer; 106) 을 포함한다. 사용자 인터페이스 (104) 에서의 사용자 입력에 반응하여, 웹 브라우저 (100) 는 예를 들어 인터넷과 같은 http 네트워크 상의 서버 프로세스로 전송될 URL 을 생성한다. URL 은 모터의 html 번역기 (72) 에 의해 수신되고 추상 계층 (106) 에서 통지 (notification) 로 변환된다. 이는 도 6 의 화살표 (108) 로 표시되어 있다. 추상 계층 (106) 은 수신된 URL 또는 업데이트 된 속성 요청에 기초하여, 애플리케이션에 업데이트 된 객체 속성이나 이벤트를 넘겨준다. 이는 도 6 에서 화살표 (110) 로 표시되어 있다. 위에서 설명한대로, 모터의 추상 계층 (106) 과 애플리케이션 (58) 의 통신은 html 요소를 포함하지 않는다.
애플리케이션은 객체를 인스턴스화 하고, 도 6 의 화살표 (112) 로 나타낸 바와 같이 속성을 추상 계층 (106) 에 제공한다. 이들은 html 번역기에서 웹 브라우저에게 html 페이지를 제공하기 위해 이용되며; 이 페이지는, 도 6 의 화살표 (114) 로 나타낸 것처럼 사용자 인터페이스 (104) 상에 디스플레이된다.
샘플 사용자 표시가 아이템 리스트, 리스트에 새로운 값을 넣기 위한 텍스트 영역 그리고 새로운 값을 승인하기 위한 버튼을 포함한다고 하자. 애플리케이션의 관점에서, 아이템 리스트의 내용은 일군의 데이터; 텍스트 영역은 객체, 텍스트는 객체의 속성; 승인을 위한 버튼은 사용자가 버튼을 누르는 이벤트와 결합된 제 2 의 객체이다.
생성된 HTML 페이지는 표의 셀 (cell) 로서의 아이템과 아이템의 일부 (예를 들어, 200 개의 아이템 중 1부터 20 까지) 를 표시하기 위한 HTML 표를 포함할 것이다. HTML 표의 헤더는 리스트의 다음 부분으로 가기 위한 리스트 헤더 하이퍼링크를 포함할 것이다. 또한, HTML 페이지는 버튼과 텍스트 입력을 가지는 HTML 형식을 포함할 것이다. HTML 페이지는 애플리케이션에 의해 제공된 아이템에 기초하여 그리고 객체의 최근 속성에 기초하여, 모터에 의해 생성된다. 생성된 HTML 페이지는 클라이언트 프로세스에 제공된다.
사용자가 아이템 리스트의 다음 부분을 표시하기 위해 리스트 헤더 하이퍼링크를 클릭하면, 첫 번째 HTML 페이지 생성에 의해 생긴 URL을 이용하여, 새로운 HTTP 요청을 시작한다. 요청은 모터로 전달된다; 그러면 모터는 애플리케이션으로부터 아이템 리스트의 다음 부분 (예를 들어, 아이템 21-40) 을 얻는다. 모터는 아이템 리스트의 다음 부분을 포함하는 새로운 HTML 페이지를 생성한다. 객체의 속성은 업데이트 되지 않는다.
사용자가 리스트에 새로운 아이템을 넣기 위해 텍스트 영역의 내용을 변경하고 버튼을 활성화 시켰다고 하자. 웹 브라우저는 새로운 HTTP 요청을 시작한다. 모터는 요청을 수신하고 텍스트 영역의 변경된 내용과 버튼의 활성화를 확인한다. 업데이트 된 텍스트 영역 객체의 속성은, 버튼과 결합된 이벤트와 함께 애플리케이션으로 전달된다. 이것은 사용자 표시의 텍스트 영역 및 버튼의 HTML 코딩과는 전적으로 독립적이라는 점이 중요하다.
이벤트에 대한 반응으로, 애플리케이션은 텍스트 객체의 변경된 속성을 읽고 그에 따라 리스트에 새로운 아이템을 추가하기 위해 데이터를 변경할 수 있다. 애플리케이션은 모터에 아이템 리스트의 새로운 부분을 제공하며; 모터는 다시 HTML 페이지를 생성한다.
본 예는, 모든 HTML 관련 코딩이 모터에 의해 수행되므로 클라이언트 프로세스의 유형-HTML-이 애플리케이션에 영향을 주지 않는다는 것을 나타낸다.
도 6 은 사용자 인터페이스의 "룩 앤드 필"은 사실상, 추상 계층에서 제공되는 정보에 기초해 html 페이지를 생성하는 html 번역기 (72) 에 의해 제공된다는 것을 분명히 나타낸다. 이는 그 모터를 사용하는 애플리케이션이 모두 사용자에게 웹 브라우저 상에서 동일한 "룩 앤드 필"을 가지는 사용자 인터페이스를 제공할 것이라는 점을 보장한다. 애플리케이션을 개발하는 개발자들은 브라우저의 사용자 인터페이스에 대해 염려하지 않고, 당면한 애플리케이션에 집중할 수 있다. 또한, 번역기의 사용은 사용자 인터페이스의 "룩 앤드 필" 변경을 가능케 할 수 있다; 사용자 인터페이스를 바꾸기 위해서는 번역기의 변경만이 필요할 뿐이다. 예를 들어, 색, 폰트 기타 사용자 인터페이스의 유사한 성질들은 번역기에서 정의된다. 애플리케이션 자체를 바꾸거나 수정하지 않고, 번역기를 수정하거나 새로운 번역기를 제공함으로서 이들을 변화시킬 수 있다. 사용자 인터페이스를 변경하는 또 다른 방법은 번역기에 상이한 html 정적 자원 군 (set of static resources) -CSS 또는 이미지- 을 제공하는 것이다. 정적 자원을 바꾸면 번역기를 재개발하지 않고 사용자 인터페이스의 모습을 변경할 수 있다.
본 발명은 당업자가 프로그래밍 기술분야에서 현재 알려진 기술 그 자체를 이용하여 재현할 수 있다. 위에서 설명한 바와 같이, 모터와 클라이언트 프로세스간의 통신에 사용되는 언어는 html 및 관련 기술들을 포함한다. 도 5 의 예에서 모터와 애플리케이션 프로세스간의 통신에 이용되는 언어는, 서버 프로세스 내에서 모터와 애플리케이션간의 통신에 이용되는 언어와 유사한 독자적 언어일 수 있다. 이 독자적 언어는 Java 언어에서 정의된 클래스 (class) 군과 XML 문법으로 만들어 질 수 있다.
본 발명은 도면들을 참조하여 설명한 다양한 단계들을 수행하는 루틴을 가진 프로그램으로 구현될 수 있다.
본 발명은 도면들을 참조하여 설명한 예와 실시형태에 한정되지 않는다. "서버" 는, 데이터를 포함하고 애플리케이션과 모터를 실행시키는 컴퓨터 시스템과 같이 논리적인 의미에서 이해되어야 한다. 실제로 서버는 다양한 머신 -예를 들어, 데이터를 포함하기 위한 별개의 머신- 또는 단일 컴퓨터에 의해 구현될 수 있다. 요청과 응답은 url 요청과 html 응답을 대표하는 것이 아니고, 단지 서버로부터 및 서버로의 메시지의 흐름을 나타내는 것일 뿐이다. "요청"은 사용자 머신 또는 프로세스에 의해 서버에 제공될 수 있다; "응답"은 사용자 머신 또는 프로세스에 의해 서버로부터 수신될 수 있다. 도면에서, 단순화를 위해 데이터 (56) 는 서버 프로세스 내에 나타내었다; 그러나 이 데이터가 서버 프로세스의 일부분이 아닌 것으로 생각할 수도 있다. 이는 본 발명의 작용과는 무관하다.
도 3 과 4 의 예들은 단순화를 위해 2 개의 클라이언트 프로세스만을 나타내었다; 시스템은 그 이상의, 다양한 또는 유사한 유형의 클라이언트 프로세스를 포함할 수 있다. 도 3-5 에서 구현은 구체적으로 설명하지 않았다. 실제로는, 시스템의 프로세스를 구현하기 위해 다양한 방법들이 사용될 수 있다. 유사하게, 다양한 프로세스간 링크들의 물리적 구현은 아주 상이할 수 있다. 도 5 의 예에서, 링크 (62 와 96) 은 인터넷 또는 인트라넷 네트워크로 연결될 수 있다. 애플리케이션 프로세스 (80 과 82) 는 같은 머신 상에서 실행 될 수 있다. 머신에 접속된 원격지 터미널 상에서 클라이언트 프로세스가 실행 될 수 있다. 모터는 별개의 제품으로 또는 완성된 시스템의 일부로 판매될 수 있다.
제 2 언어가 제 1 언어와 구별되므로, 모터에 의해 서빙되는 프로세스와 독립하여 애플리케이션을 개발할 수 있다. 다른 유형의 클라이언트 프로세스를 위한 애플리케이션을 다시 개발하거나 애플리케이션을 그 클라이언트 프로세스에 적응시킬 필요 없이 상이한 유형의 클라이언트 프로세스들을 서빙할 수 있다. 이것은 도 1 에 대한 참조에서 설명한 선행기술에 비하면 주요한 장점이다.

Claims (8)

  1. 2 이상의 클라이언트 프로세스 (52, 54, 68, 76, 78) 가, 애플리케이션 (58) 과 모터 (60) 를 포함하는 서버 프로세스 (50) 를 통해 데이터 (56) 에 액세스할 수 있게 하는 컴퓨터 시스템에 있어서,
    상기 모터 (60) 는 클라이언트 프로세스들 중 하나 (52) 로부터 제 1 언어로 요청을 수신하고 상기 클라이언트 프로세스들 중 하나에게 상기 제 1 언어로 응답을 내도록 적응되어 있고,
    상기 모터 (60) 는, 상기 제 1 언어와 구별되고, 객체지향언어로서, 속성을 가지며 이벤트와 결합된 객체가 있는 제 2 언어로 상기 애플리케이션 (58) 과 통신하도록 적응되어 있고,
    상기 애플리케이션 (58) 은 객체를 인스턴스화 하고, 인스턴스화된 객체의 속성을 데이터에 기초하여 평가하고, 그리고 이벤트에 반응하도록 적응되어 있고,
    상기 모터 (60) 는 상기 애플리케이션에 의해 인스턴스화된 상기 객체와 그 속성에 따라 상기 클라이언트 프로세스들 중 하나 (52) 에게 상기 제 1 언어로 응답을 내도록 적응되어 있고,
    상기 모터 (60) 는 상기 클라이언트 프로세스들 중 하나 (52) 로부터 상기 제 1 언어로 수신된 요청에 따라 상기 애플리케이션 (58) 에게 상기 제 2 언어로 업데이트된 속성과 이벤트를 제공하도록 적응되어 있는 것을 특징으로 하는 컴퓨터 시스템.
  2. 제 1 항에 있어서,
    상기 모터 (60) 는 다른 클라이언트 프로세스 (54) 로부터 상기 제 1 언어로 요청을 수신하고 상기 다른 클라이언트 프로세스 (54) 에게 상기 제 1 언어로 응답을 내는데 더 적응되어 있고,
    상기 모터 (60) 는 상기 애플리케이션 (58) 에 의해 인스턴스화된 상기 객체 및 그 속성에 따라 상기 다른 클라이언트 프로세스 (54) 에게 상기 제 1 언어로 응답을 내도록 적응되어 있고,
    상기 모터 (60) 는 상기 다른 클라이언트 프로세스 (54) 로부터 상기 제 1 언어로 수신된 응답에 따라 상기 애플리케이션 (58) 에게 상기 제 2 언어로 업데이트 된 속성 및 이벤트를 제공하도록 적응되어 있는 컴퓨터 시스템.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 모터 (60) 는, 또 다른 클라이언트 프로세스 (68) 로부터 상기 제 1 언어와 다르고 상기 제 2 언어와는 구별되는 제 3 언어로 요청을 수신하고 상기 또 다른 클라이언트 프로세스 (68) 에게 상기 제 3 언어로 응답을 내는데 더 적응되어 있고,
    상기 모터 (60) 는 상기 애플리케이션 (58) 에 의해 인스턴스화된 상기 객체 와 그 속성에 따라 상기 또 다른 클라이언트 프로세스 (68) 에게 상기 제 3 언어로 응답을 내도록 적응되어 있고,
    상기 모터 (60) 는 상기 또 다른 클라이언트 프로세스 (68) 로부터 상기 제 3 언어로 수신된 요청에 따라 상기 애플리케이션 (58) 에게 상기 제 2 언어로 업데이트 된 속성 및 이벤트를 제공하도록 적응되어 있는 것을 특징으로 하는 컴퓨터 시스템.
  4. 제 3 항에 있어서,
    상기 모터에 상기 클라이언트 프로세스 (52, 54) 와 상기 제 1 언어로 통신하기 위한 제 1 번역기 (72) 와 상기 또 다른 클라이언트 프로세스 (68) 와 상기 제 3 언어로 통신하기 위한 제 2 번역기가 제공되는 것을 특징으로 하는 컴퓨터 시스템.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    클라이언트 프로세스들 (76, 78) 은 애플리케이션 프로세스 (82, 82) 를 통하여 상기 서버 프로세스 (50) 의 상기 모터 (60) 와 통신을 하는 것을 특징으로 하며,
    상기 애플리케이션 프로세스는,
    상기 클라이언트 프로세스들 (76, 78) 과 통신하도록 적응된 제 2 모터 (84, 86);
    상기 제 2 모터 (84, 86) 와 통신하도록 적응된 제 2 애플리케이션 (88, 90); 및
    상기 제 1 언어로 상기 모터 (60) 와 통신하도록 적응되고, 상기 제 2 애플리케이션 (88, 90) 및/또는 상기 제 2 모터 (84, 86) 와 통신하도록 적응된 클라이언트 인터페이스 (92, 94) 를 포함하는 컴퓨터 시스템.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 제 1 언어는 html을 포함하는 컴퓨터 시스템.
  7. 클라이언트 프로세스 (52, 54, 68, 76, 78) 를 서빙하고 상기 클라이언트 프로세스가 애플리케이션 (58) 에 의해 관리되는 데이터에 액세스할 수 있도록 하는 모터에 있어서,
    클라이언트 프로세스로부터 제 1 언어로 요청을 수신하고 상기 제 1 언어로 응답을 내도록 적응된 제 1 번역기 (72);
    클라이언트 프로세스로부터 상기 제 1 언어와 다른 제 3 언어로 요청을 수신하고 상기 제 3 언어로 응답을 내도록 적응된 제 2 번역기 (74);
    상기 제 1 언어 및 상기 제 3 언어와 구별되고, 객체지향언어로서, 속성을 가지고 이벤트와 결합된 객체가 있는 제 2 언어로 메시지를 내고 받도록 적응된 애플리케이션 인터페이스 (75) 를 포함하며,
    상기 모터 (60) 는, 상기 제 1 번역기 (72) 를 통해 상기 제 1 언어로 응답을 내고 상기 애플리케이션 인터페이스 (75) 에서 받은 메시지에 포함된 객체와 속성에 따라 상기 제 2 번역기 (74) 를 통해 상기 제 3 언어로 응답을 내도록 적응되어 있으며,
    상기 모터 (60)는, 상기 제 1 및 제 2 번역기 (72, 74) 에 의해 수신된 요청에 따라 상기 애플리케이션 인터페이스를 통해 메시지와 함께 업데이트 된 속성 및 이벤트를 보내도록 적응되어 있는 것을 특징으로 하는 모터.
  8. 제 7 항에 있어서,
    제 1 언어는 html을 포함하는 모터.
KR1020040018869A 2003-03-20 2004-03-19 다양한 유형의 클라이언트 프로세스로부터 데이터에액세스하는 서버 프로세스 KR100766756B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03290713.1 2003-03-20
EP03290713A EP1460540A1 (en) 2003-03-20 2003-03-20 Server process with interface adapters for accessing data from various types of client processes

Publications (2)

Publication Number Publication Date
KR20040082999A true KR20040082999A (ko) 2004-09-30
KR100766756B1 KR100766756B1 (ko) 2007-10-17

Family

ID=32799137

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040018869A KR100766756B1 (ko) 2003-03-20 2004-03-19 다양한 유형의 클라이언트 프로세스로부터 데이터에액세스하는 서버 프로세스

Country Status (5)

Country Link
US (1) US7555498B2 (ko)
EP (1) EP1460540A1 (ko)
JP (1) JP2004342085A (ko)
KR (1) KR100766756B1 (ko)
CA (1) CA2461329C (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117941845A (zh) * 2024-03-25 2024-04-30 江西省绿美瑞生态科技有限公司 一种莲茎去皮切断机

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8355944B2 (en) * 2003-09-04 2013-01-15 Webconcepts, Inc. Methods and systems for collaborative demand planning and replenishment
EP1672548A1 (en) * 2004-12-20 2006-06-21 Dassault Systèmes Process and system for rendering an object in a view using a product lifecycle management database
US9898390B2 (en) * 2016-03-30 2018-02-20 Ca, Inc. Virtual service localization
US10269073B1 (en) * 2018-03-29 2019-04-23 Arbitrage Technologies Systems and methods for interpreting exchange data packets using a lookup table

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701451A (en) * 1995-06-07 1997-12-23 International Business Machines Corporation Method for fulfilling requests of a web browser
US6356931B2 (en) 1997-10-06 2002-03-12 Sun Microsystems, Inc. Method and system for remotely browsing objects
US6362836B1 (en) * 1998-04-06 2002-03-26 The Santa Cruz Operation, Inc. Universal application server for providing applications on a variety of client devices in a client/server network
US6615207B1 (en) * 1998-12-10 2003-09-02 International Business Machines Corporation Method of formulating and presenting search queries to a tabular database through a user-interactive computer display interface
US6965925B1 (en) * 1998-12-31 2005-11-15 Nortel Networks, Ltd Distributed open architecture for media and telephony services
KR20000050238A (ko) * 2000-05-30 2000-08-05 김호광 다수의 운영시스템에서 실행 가능한 프로그램 제작 시스템및 방법
US7644120B2 (en) * 2000-09-15 2010-01-05 Invensys Systems, Inc. Industrial process control data access server supporting multiple client data exchange protocols
US20020103905A1 (en) * 2001-01-31 2002-08-01 Prabahkar Subramaniam Method and system for providing business partners with access to a company's internal computer resources
US6847974B2 (en) * 2001-03-26 2005-01-25 Us Search.Com Inc Method and apparatus for intelligent data assimilation
KR100353688B1 (ko) * 2001-04-03 2002-09-28 메타빌드주식회사 확장성 마크업 언어 문서 저장 관리 방법 및 이 방법을수행하도록 프로그램된 소프트웨어가 저장된 매체
US6964053B2 (en) * 2002-12-04 2005-11-08 International Business Machines Corporation Type descriptor language (TDLanguage) metamodel

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117941845A (zh) * 2024-03-25 2024-04-30 江西省绿美瑞生态科技有限公司 一种莲茎去皮切断机
CN117941845B (zh) * 2024-03-25 2024-06-11 江西省绿美瑞生态科技有限公司 一种莲茎去皮切断机

Also Published As

Publication number Publication date
CA2461329C (en) 2010-08-10
US20050021861A1 (en) 2005-01-27
CA2461329A1 (en) 2004-09-20
US7555498B2 (en) 2009-06-30
EP1460540A1 (en) 2004-09-22
JP2004342085A (ja) 2004-12-02
KR100766756B1 (ko) 2007-10-17

Similar Documents

Publication Publication Date Title
US7020882B1 (en) Method, system, and program for remotely manipulating a user interface over a network
US20060265662A1 (en) System and method for generating and updating user interfaces of web-based applications
US6801224B1 (en) Method, system, and program for generating a graphical user interface window for an application program
KR100290198B1 (ko) 클라이언트와비상주서버프로그램사이의통신을위한시스템
US7805523B2 (en) Method and apparatus for partial updating of client interfaces
US8417771B2 (en) Method and apparatus for updating and synchronizing information between a client and a server
US7103627B2 (en) Web-based system and method
KR20060050608A (ko) 데이터 공유 시스템, 방법 및 소프트웨어 툴
WO2007053169A1 (en) A method and system for developing interactive web applications in a unified framework
US20020165993A1 (en) System and method of partitioning software components of a monolithic component-based application program to separate graphical user interface elements for local execution at a client system in conjunction with remote execution of the application program at a server system
US20070209006A1 (en) Display and installation of portlets on a client platform
US20060277252A1 (en) Method And Device For Executing A Function With Selection And Sending Of Multiple Results In A Client-Server Environment
Huang et al. Issues in the development and implementation of web applications for product design and manufacture
JP2001312442A (ja) データ処理システムにおいてアプリケーションへのアクセスを提供する方法および装置
US20050021756A1 (en) Method of developing, delivering and rendering network applications
KR19990067537A (ko) 대화식 하이퍼미디윰을 작성하기 위한 방법 및 그 장치
JP2000035951A (ja) マルチユ―ザ認識およびコラボレ―ション用の方法および装置
EP1283996A2 (en) Method and system for reusing internet-based applications
US8230043B2 (en) Documentation process for invoking help from a server
KR100766756B1 (ko) 다양한 유형의 클라이언트 프로세스로부터 데이터에액세스하는 서버 프로세스
US20050193001A1 (en) Client-side wizard framework
Strawn Doing for data what the internet did for networking
EP1420337A1 (en) System and method to provide a flexible user interface
KR20000051520A (ko) 동적 웹 문서를 지원하는 방법
Moroney Foundations of Atlas: Rapid Ajax Development with ASP. NET 2.0

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121002

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130926

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140929

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150918

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 12