KR100264535B1 - 월드와이드웹상에서소프트웨어애플리케이션과컴퓨터간에통신하기위한컴퓨터장치및방법 - Google Patents

월드와이드웹상에서소프트웨어애플리케이션과컴퓨터간에통신하기위한컴퓨터장치및방법 Download PDF

Info

Publication number
KR100264535B1
KR100264535B1 KR1019970050300A KR19970050300A KR100264535B1 KR 100264535 B1 KR100264535 B1 KR 100264535B1 KR 1019970050300 A KR1019970050300 A KR 1019970050300A KR 19970050300 A KR19970050300 A KR 19970050300A KR 100264535 B1 KR100264535 B1 KR 100264535B1
Authority
KR
South Korea
Prior art keywords
application
web
data
web server
software application
Prior art date
Application number
KR1019970050300A
Other languages
English (en)
Other versions
KR19980063503A (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 KR19980063503A publication Critical patent/KR19980063503A/ko
Application granted granted Critical
Publication of KR100264535B1 publication Critical patent/KR100264535B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Library & Information Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명의 컴퓨터 시스템과 방법은 월드 와이드 웹(world-wide web: WWW)을 통해 웹 브라우저로부터 소프트웨어 애플리케이션에 대한 액세스를 제공한다. 본 발명의 시스템은 웹 브라우저를 실행하는 하나 이상의 컴퓨터, 웹 서버 애플리케이션, 애플리케이션 게이트웨이, 및 소프트웨어 애플리케이션을 포함한다. 상기 시스템 및 방법은 웹 브라우저의 사용자가 소프트웨어 애플리케이션에 액세스할 수 있도록 해준다. 사용자는 웹 브라우저를 통해 웹 서버 애플리케이션으로 전송되는 데이터를 입력한다. 웹 서버 애플리케이션은 웹 브라우저를 인증(authenticate)하고, 사용자의 요구를 개별적으로 식별하여 추적(track)하기 위한 데이터를 포함하는 적절한 입력 데이터를 애플리케이션 게이트웨이로 전달한다. 그 후, 애플리케이션 게이트웨이는 소프트웨어 애플리케이션으로 적절한 명령을 포맷함으로써 웹 서버 입력 데이터에서 요구받은 기능을 수행한다. 소프트웨어 애플리케이션은 데이터를 출력함으로써 애플리케이션 게이트웨이가 상기 출력 데이터를 그 출력 데이터를 요구한 웹 브라우저와 일치시키는데 사용하는 식별자를 포함하는 상기 애플리케이션 게이트웨이에 응답한다. 따라서, 본 발명의 시스템은 다수의 웹 브라우저가 소프트웨어 애플리케이션에 동시에 액세스하도록 해준다.

Description

월드 와이드 웹 상에서 소프트웨어 애플리케이션과 컴퓨터 간에 통신하기 위한 컴퓨터 장치 및 방법
본 발명은 월드 와이드 웹(world-wide web: WWW) 상에서의 대화(interaction)에 관한 것으로, 특히 웹 사용자가 월드 와이드 웹을 통해 액세스가 가능한 또 다른 컴퓨터 상의 소프트웨어 애플리케이션과 대화하도록 해주는 장치 및 방법에 관한 것이다.
1948년 EDVAC 컴퓨터 시스템의 개발을 대개 컴퓨터 시대의 시작으로 언급하고 있다. 그때부터, 컴퓨터 시스템은 매우 정교한 장치로 발전되었고, 컴퓨터 시스템은 다수의 상이한 환경에서 볼 수 있게 되었다. 컴퓨터 시스템은 통상 하드웨어(예를 들면, 반도체, 회로 기판 등)와 소프트웨어(예를 들면, 컴퓨터 프로그램)의 조합을 포함한다. 반도체 프로세싱 및 컴퓨터 아키텍쳐의 발전이 컴퓨터 하드웨어의 성능을 향상시킴에 따라 더 정교한 컴퓨터 소프트웨어가 더 좋은 성능의 하드웨어를 사용하여 발전함으로써, 오늘날의 컴퓨터 시스템은 불과 수년 전에 존재했던 것보다 훨씬 더 강력하다.
컴퓨터 시스템은 통상 컴퓨터의 기본 기능을 제어하는 운영 시스템(operating system) 소프트웨어 및 원하는 타스크를 실행하도록 운영 시스템의 제어하에 실행되는 하나 이상의 소프트웨어 애플리케이션을 포함한다. 예를 들면, 대표적인 IBM 퍼스널 컴퓨터는 OS/2 운영 시스템을 실행하고, OS/2 운영 시스템의 제어하에, 사용자는 워드 프로세서 등의 애플리케이션 프로그램을 실행할 수 있다. 컴퓨터 시스템의 성능이 증가함에 따라, 고성능 컴퓨터 시스템을 위해 설계된 소프트웨어 애플리케이션도 매우 강력하게 되었다.
기술에 있어서의 다른 변화도 컴퓨터의 사용 방법에 큰 영향을 끼쳐 왔다. 예를 들면, 컴퓨터의 광범위한 확산은 컴퓨터가 서로 통신하게 하는 컴퓨터 네트워크의 개발을 촉진하였다. 퍼스널 컴퓨터(PC)의 도입으로 인해, 다수의 사람들이 컴퓨터에 쉽게 접근할 수 있게 되었다. 퍼스널 컴퓨터의 네트워크는 개별 사용자가 서로 통신할 수 있도록 개발되었다. 이러한 방식으로, 회사 내의 다수의 사람들은 하나의 컴퓨터 시스템 상에서 실행되는 소프트웨어 애플리케이션과 동시에 통신할 수 있다.
최근에 매우 인기있는 중요한 컴퓨터 네트워크 중의 하나로 인터넷이 있다. 인터넷은 컴퓨터 및 네트워크가 확산됨에 따라 최근에 급격히 성장하였으며, "월드 와이드 웹(또는 WWW)"을 집합적으로 구성하는 웹 페이지에 의해 함께 연결된 컴퓨터 시스템으로 이루어진 세계적인 정교한 네트워크로 발전해 왔다. WWW에 액세스하고자 하는 개별 PC(즉, 워크스테이션)에서 사용자는 통상 웹 브라우저라고 알려진 소프트웨어 애플리케이션을 사용한다. 웹 브라우저는 WWW 상의 웹 서버라고 알려진 다른 컴퓨터에 대한 접속을 만들고, 웹 서버로부터 정보를 수신하고, 이것은 사용자의 워크스테이션 상에 표시된다. 사용자에게 표시되는 정보는 통상 하이퍼텍스트 마크업 랭귀지(Hypertext Markup Language: HTML)라고 하는 전용 언어를 사용하여 구성된 페이지로 구성되어 있다.
인터넷 및 WWW의 인기가 높아짐에 따라, 인터넷은 판매 및 능률을 올리는 새로운 방식을 제공하는 사업으로 인식되었다. 웹 브라우저를 갖는 사용자가 회사의 애플리케이션 소프트웨어와 직접 대화할 수 있으면, 그 트랜잭션은 단순하게 될 것이다. 예를 들면, 한 사람이 렌터카를 예약하는 방법을 살펴보기로 하자. 그 사람은 렌터카 사업자에게 전화를 걸고, 전화를 통해 그의 정보(예를 들면, 이름, 주소, 신용 카드 번호 등)를 렌터카 사업자에게 전달한다. 사업자는 차량을 예약하는 프로세스를 개시하기 위해 그 정보를 자기 회사의 애플리케이션 소프트웨어에 입력하여야 한다. 웹 사용자를 위한 더 효과적인 차량 예약 시스템은 사용자가 애플리케이션 소프트웨어와 직접 대화하는 것을 가능하게 해준다. 이것에 의해 상기 사업자가 현재 수행해야 할 업무의 많은 부분이 줄어들 것이다. 그러나, 소프트웨어 애플리케이션으로 하여금 웹 사용자와 직접 대화할 수 있도록 해주기 위해서는 WWW를 통해 액세스되는 각각의 특정 소프트웨어 애플리케이션에 대한 주문형 인터페이스 소프트웨어(custom interface software)의 개발을 필요로 한다.
또한, WWW 상에서 소프트웨어에 액세스하기 위한 프로그래밍 인터페이스 및 트랜잭션을 지원하는데 필요한 요건은 상당히 까다롭다. 웹 브라우저 및 웹 서버는 매우 상세한 인터페이스 요건을 가지며, 대부분의 복잡한 소프트웨어 애플리케이션은 트랜잭션을 수행하는 매우 구체적이며 특유한 프로토콜들(specific and unique protocols)과의 고유 인터페이스(native interface)를 갖는다. 아울러, WWW 상에서 트랜잭션을 성공적으로 수행하기 위해서는 공통 게이트웨이 인터페이스(Common Gateway Interfaces: CGIs)에 대한 상당히 광범위한 지식을 필요로 한다. CGIs는 본 발명 기술 분야의 당업자들에게는 잘 알려진 실행가능한 프로그램이다. 상이한 액세스 프로시저를 갖는 상이한 CGIs는 일반적으로 상이한 각 소프트웨어 애플리케이션과 그 소프트웨어 애플리케이션에 대한 고유 인터페이스용으로 제공된다. 성공적인 결과를 달성하기 위해서는 정교한 프로그래밍 노하우와 전문 지식이 필요하다. WWW 상에서 소프트웨어에 액세스하고 싶어하는 수많은 단체들은 통상 상근 소프트웨어 컨설턴트와 전문 프로그래머들을 고용하여 개별적(case-by-case basis)으로 요구되는 특정 기능 및 WWW 트랜잭션을 달성하는데 필요한 프로세스들을 설계하고 프로그램한다. 유감스럽게도, 상기 방법은 매우 비용이 많이 드는 방법이다. 현재로는 복잡한 소프트웨어 애플리케이션을 위해 특별히 WWW 트랜잭션을 지원하는 사용하기 쉽고 구현하기 쉬운 솔루션(solution)이 없다.
WWW 상에서의 복잡한 소프트웨어 애플리케이션의 이용가능성이 증가됨에 따라, WWW 상에서 수행되는 트랜잭션도 더욱 복잡해진다. 또한, 단일 사용자가 WWW 상에서 다수의 애플리케이션에 액세스하는 경우, 웹 브라우저와 다양한 소프트웨어 애플리케이션들 간에 정보의 유입과 유출을 추적(track)하기 위해서는 적절한 메카니즘이 존재하여야 한다. 또한, 다수의 사용자가 각각 다수의 소프트웨어 애플리케이션에 액세스하는 경우로 확장하여 생각해 보면, 지원되어져야 할 프로그램 및 트랙잭션의 양이 상당히 크게 증가한다. 현재 각 소프트웨어 판매 회사(vendor)들이 이와 같은 트랜잭션을 다루는 방법은 다양하며, 때로는 서로 상충된다.
마지막으로, 웹 사용자, 제공자, 및 웹 서버의 수가 계속해서 빠르게 증가하고 있으므로, 웹 사용자가 서로 다른 소프트웨어 판매 회사들에 의해 지원되는 다수의 소프트웨어 애플리케이션과 직접적으로 그리고 효과적으로 대화할 수 있도록 하는 것이 점점 더 중요해진다. 월드 와이드 웹 상의 소프트웨어 애플리케이션과 컴퓨터 사이의 트랜잭션을 지원하기 위한 개선된 방법을 제공할 수 있는 메카니즘이 없으면, 다수의 인터넷 사용자와 다수의 소프트웨어 애플리케이션 간의 트랜잭션을 수행하기 위해 과도하게 긴 시간과 지나치게 많은 노력이 필요해질 것이다.
본 발명의 시스템 및 방법은 WWW을 통해 하나의 웹브라우저로부터 여러 소프트웨어 애플리케이션들에 액세스하기 위한 것이다. 통상적인 애플리케이션 소프트웨어에 대한 트랜잭션 지원 프로시저는 다수의 상이한 하드웨어 및 소프트웨어 플랫폼을 지원하는데 사용될 수 있는 표준화된 액세스 방법과 함께 제공되어, WWW 상에서 애플리케이션 소프트웨어에 대한 액세스를 제공한다. 이러한 시스템은 웹 브라우저, 웹 서버 애플리케이션, 애플리케이션 게이트웨이, 및 적어도 하나의 소프트웨어 애플리케이션을 실행하는 하나 이상의 컴퓨터를 포함한다.
본 발명은 웹 브라우저의 사용자가 WWW 상에서 소프트웨어 애플리케이션에 좀 더 용이하게 액세스하도록 해준다. 사용자가 웹 브라우저를 통해 데이터를 입력하면 웹 브라우저는 웹 서버 애플리케이션과 통신한다. 웹 서버 애플리케이션은 인증자(authentificator)로서의 기능을 수행하여, 웹 브라우저를 인증하고, 사용자 요구를 개별적으로 식별하여 추적하기 위한 데이터를 포함하는 적절한 입력 데이터를 애플리케이션 게이트웨이로 전달할 수 있다. 그 후, 애플리케이션 게이트웨이는 소프트웨어 애플리케이션을 사용하여 적절한 명령을 포맷하여 웹 서버 입력 데이터에서 요구받은 기능을 수행하고, 소프트웨어 애플리케이션용 고유 인터페이스를 사용하여 소프트웨어 애플리케이션과 통신한다. 소프트웨어 애플리케이션은 애플리케이션 게이트웨이가 출력 데이터와 그 출력 데이터를 요구한 웹 브라우저를 일치시키는데 사용되는 것을 나타내는 식별자를 포함하는 애플리케이션 게이트웨이에 응답하여 데이터를 출력한다. 따라서, 상기 시스템은 다수의 웹 브라우저가 소프트웨어 애플리케이션에 동시에 액세스하도록 해준다.
본 발명의 상기 및 기타의 특징과 장점들은 첨부 도면에 예시한 바와 같은 본 발명의 바람직한 실시예에 대한 이하의 더욱 상세한 설명을 통해 명확하게 이해될 것이다.
도 1은 본 발명의 바람직한 실시예의 블록도.
도 2는 클라이언트 워크스테이션과 웹 서버 사이의 트랜잭션의 블록도.
도 3은 표준 웹 브라우저에서 월드 와이드 웹 상의 소프트웨어 애플리케이션에 대한 액세스를 허용하는 본 발명의 바람직한 실시예에 따른 시스템의 블록도.
도 4는 월드 와이드 웹 상의 플로우마크 워크플로우 애플리케이션 소프트웨어에 액세스하도록 채택된 도 3의 시스템의 상세 블록도.
도 5는 웹 브라우저로부터 월드 와이드 웹 상에서 소프트웨어 애플리케이션에 대한 액세스를 가능하게 해주는 본 발명의 바람직한 실시예의 프로세스 흐름도.
도 6은 월드 와이드 웹 상에서 플로우마크(FlowMark) 워크플로우 애플리케이션에 액세스하는데 적합한 본 발명의 바람직한 실시예의 프로세스 흐름도.
도 7은 다수 사용자 환경으로 확장시 본 발명의 바람직한 실시예의 블록도.
도 8은 본 발명의 바람직한 실시예에 따라 렌터카 예약 형식을 발생하도록 사용되는 HTML 코드의 하나의 예를 도시한 도면.
도 9는 본 발명의 바람직한 실시예에 따라 웹 브라우저로부터의 사용자 요구에 의해 발생되는 데이터 스트림의 하나의 예를 도시한 도면.
도 10은 본 발명의 바람직한 실시예에 따라 예약 확인 템플릿을 발생하도록 사용되는 HTML 코드의 하나의 예를 도시한 도면.
도 11은 본 발명의 바람직한 실시예에 따라 CGI에 의해 프로세스된 후의 도 10의 HTML 코드의 하나의 예를 도시한 도면.
도 12는 본 발명의 바람직한 실시예에 따라 웹 브라우저 포맷된 데이터의 하나의 예를 도시한 도면.
도 13은 본 발명의 바람직한 실시예에 따라 렌터카 예약 사업자에 대하여 웹 페이지를 발생하는데 사용되는 HTML 코드의 하나의 예를 도시한 도면.
도 14는 본 발명의 바람직한 실시예에 따라 웹 서버 발생 데이터의 하나의 예를 도시한 도면.
도 15는 본 발명의 바람직한 실시예에 따라 렌터카 사업자 워크 리스트를 발생하는데 사용되는 HTML 코드의 하나의 예를 도시한 도면.
도 16은 본 발명의 바람직한 실시예에 따라 CGI에 의해 프로세스된 후의 도 15의 HTML 코드의 하나의 예를 도시한 도면.
도 17은 본 발명의 바람직한 실시예에 따라 CGI에 의해 웹 브라우저로부터 수신된 데이터 스트림의 하나의 예를 도시한 도면.
도 18은 본 발명의 바람직한 실시예에 따라 차량 이용가능 페이지를 발생하는데 사용되는 HTML 코드의 하나의 예를 도시한 도면.
도 19는 본 발명의 바람직한 실시예에 따라 CGI에 의해 프로세스된 후의 도 18의 HTML 코드의 하나의 예를 도시한 도면.
도 20은 본 발명의 바람직한 실시예를 사용하는 소프트웨어 애플리케이션으로 WWW 트랜잭션을 설명하는 프로세스 모델도.
<도면의 주요부분에 대한 부호의 설명>
110 : 중앙 처리 장치
130 : 메모리
140 : 버스
150 : 터미널 인터페이스
160 : 보조 기억 장치 인터페이스
170 : 워크스테이션
이하, 본 발명의 바람직한 실시예가 첨부 도면과 관련하여 설명되는데, 유사한 참조 부호는 유사한 구성 요소를 표시한다.
본 발명은 WWW를 통한 트랜잭션에 관한 것이다. 인터넷 또는 WWW 전문가가 아닌 개인에 대하여, 다음의 개요 부분은 본 발명의 이해를 돕는 다수의 기본 개념을 제공한다.
개 요
웹 트랜잭션(Web Transaction)
도 2를 참조하면, 클라언트 워크스테이션 (210) 상에서 실행되는 표준 웹 브라우저 (212)와 웹 서버 컴퓨터 시스템 (220) 상에서 실행되는 웹 서버 애플리케이션 (222) 사이의 대표적인 트랜잭션은 접속부(통신 링크 또는 통신 메카니즘) (216)을 통해 일어난다. 물론, 클라이언트 워크스테이션 (210)은 근거리 통신망(LAN)을 통하거나 모든 다른 종류의 컴퓨터 네트워크 또는 다른 상호 연결을 통해 다른 컴퓨터 시스템에 결합될 수 있다. 마찬가지로, 웹 서버 컴퓨터 시스템 (220)은 다른 컴퓨터 시스템에도 결합될 수 있다. 웹 브라우저 (212)를 사용하여 WWW에 대한 액세스를 제공할 수 있는 모든 컴퓨터는 클라이언트 워크스테이션 (210)이 될 수 있다. 이것은 핸드헬드(handheld), 포터블(portable) 또는 랩탑 컴퓨터, 표준 데스크탑 컴퓨터 시스템, 메인 프레임에 접속된 덤 터미널(dumb terminals) 등을 포함한다.
웹 브라우저 (212)는 클라이언트 워크스테이션 (210) 상에서 실행되는 소프트웨어 프로그램으로서, 클라이언트 워크스테이션 (210)의 사용자가 접속부 (216)를 통해 다른 컴퓨터와 통신하도록 해준다. 웹 브라우저 (212)는 WWW 상의 데이터를 송신 및 수신할 수 있는 모든 웹 브라우저를 포함한다. 이것은 IBM사의 웹익스플로러(WebExplorer), 넷스케이프사의 네비게이터(Navigator), 마이크로소프트사의 인터넷 익스플로러(Internet Explorer), 애플 컴퓨터사의 사이버도그(CyberDog) 및 WWW 상의 정보에 액세스하거나 또는 그 정보를 프로세스하기 위해 장래에 개발될 수 있거나 또는 기존의 다른 모든 소프트웨어 애플리케이션을 포함한다. 접속부 (216)에 대한 바람직한 실시예로는 하드와이어드 접속(hardwired connection), 모뎀 또는 고속 T1 라인을 통한 전화 액세스, 적외선 또는 기타 다른 무선 통신, (유선 또는 무선) 컴퓨터 네트워크 통신을 포함하는 인터넷에 대한 모든 적절한 접속 또는 현재 알려져 있거나 또는 장래 개발될 컴퓨터들 간의 다른 모든 적절한 통신 링크 또는 통신 메카니즘이 있다.
클라이언트 워크스테이션 (210)과 웹 서버 컴퓨터 시스템 (220)은 물리적 및/또는 논리적으로 동일한 컴퓨터 시스템이 될 수 있다는 점에 유의해야 한다. 웹 브라우저 (212)는 통상 클라이언트 워크스테이션 (210)에 있는 사용자에게 HTML 데이터의 페이지를 표시한다. 텍스트 데이터, 그래픽 데이터(예를 들면, 그래픽 이미지 포맷(Graphic Image Format: GIF) 파일), 오디오 데이터 또는 사운드 파일(예를 들면, WAV 파일), 자바 애플릿(Java applets)(실행가능한 코드) 및 (상기 및 다른 데이터 형태의 조합을 포함할 수 있으며) 다용도 인터넷 메일 익스텐션스(Multipurpose Internet Mail Extensions: MIME) 데이터 형식으로 알려진 전용의 데이터 형태를 포함하는 (HTML 이외에도) 여러 가지 다른 형태의 데이터가 또한 웹 브라우저 (212)로 전송될 수 있다.
웹 서버 애플리케이션 (222)는 웹 서버 컴퓨터 시스템 (220) 상에서 실행되는 소프트웨어 프로그램으로서, 클라이언트 워크스테이션 (210)에 있는 사용자가 웹 서버 (220)에 의해 제어되는 정보에 액세스하도록 해준다. 본 발명에 따른 웹 서버 애플리케이션 (222)의 바람직한 실시예 중의 하나로는 IBM사의 인터넷 접속 서버(Internet Connection Server)와 같은 상업적 웹 서버 애플리케이션이 있다. 다른 애플리케이션도 또한 본 발명과 호환이 가능하다. 웹 서버 컴퓨터 시스템 (220)은 통상 클라이언트 워크스테이션 (210)에 있는 사용자가 행한 동작을 반영하고, 웹 브라우저 (212)가 요구한 요구에 응답하여, 웹 브라우저 (212)에 HTML 데이터의 페이지를 출력한다. 또한, 상술한 바와 같이, 웹 서버 컴퓨터 시스템 (220)은 다른 형태의 데이터를 웹 브라우저 (212)에 출력할 수 있다. 출력 데이터는 정적(static) HTML 페이지(그 페이지의 내용이 변하지 않는 것을 의미함)를 포함하거나 또는 동적으로 결정되어 출력 데이터 내로 삽입되어야 하는 데이터를 포함할 수 있다. 웹 서버 애플리케이션 (222)는 웹 서버 컴퓨터 시스템 (220) 내의 메모리 또는 다른 컴퓨터 시스템으로부터 검색하는 여러 부분으로부터 나오는 출력 데이터(예를 들어, HTML 페이지)를 동적으로 구축하거나 또는 초기에 만들어졌거나 또는 다른 컴퓨터에 의해 만들어졌던 페이지를 단순히 전달할 수 있다.
웹 브라우저 (212)는 통상 웹 서버 컴퓨터 시스템 (220)으로 접속부 (216)을 통해 입력(예를 들면, 유니폼 리소스 로케이터(Uniform Resource Locator: URL) 또는 HTML 페이지)을 전송함으로써 웹 서버 애플리케이션 (222)와 대화한다. 이러한 입력은 통상 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol: HTTP) 1.0을 사용하여 전송된다. 웹 서버 애플리케이션 (222)를 실행되는 웹 서버 컴퓨터 시스템 (220)은 웹 브라우저 (212)로부터 입력을 수신하고, 그것에 응답하여 데이터(예를 들면, HTML 페이지)를 브라우저 (212)로 출력한다. 웹 서버 컴퓨터 시스템 (220)은 공통 게이트웨이 인터페이스(Common Gateway Interface: CGI) 프로그램 또는 모듈을 포함하며, 원하는 기능들을 수행하기 위한 다수의 다른 소프트웨어 구성 요소들을 가질 수도 있다. 상술한 프로세스는 인터넷 상의 기본적인 트랜잭션을 설명하는 것으로, 본 발명의 범위 내에 있는 다수의 상세한 내용 및 변형들은 본 발명의 개념을 이해하기 위한 단순한 배경을 제공하기 위해 본 명세서에서는 기술되어 있지 않다는 것을 인식하여야 한다.
웹 페이지(Web Pages)
웹 페이지는 주로 클라이언트 워크스테이션 (210)의 모니터 상에 표시될 시각 데이터(visual data)이다. 웹 페이지는 일반적으로 하이퍼텍스트 마크업 랭귀지(HTML)로 기록된다. 웹 서버 컴퓨터 시스템 (220) 상에서 실행되는 웹 서버 애플리케이션 (222)가 웹 페이지 요구를 수신할 때, HTML로 웹 페이지를 구축하거나 또는 이미 구축된 웹 페이지를 포함하는 파일을 검색하고 그것을 접속부 (216)을 통해 그 파일을 요구하는 웹 브라우저 (212)로 전송한다. 웹 브라우저 (212)는 HTML을 이해하고 해석하여 웹 페이지를 클라이언트 워크스테이션 (210)의 모니터로 출력한다. 사용자의 화면에 표시되는 상기 웹 페이지는 텍스트, 그래픽 및 링크(다른 웹 페이지의 URL 주소들)를 포함할 수 있다. 이들 서로 다른 웹 페이지(즉, 링크에 의해 표시되는 웹 페이지)들은 동일 또는 상이한 웹 서버 상에 있을 수 있다. 사용자는 마우스 또는 기타 다른 포인팅 장치(pointing device)를 사용하여 이들 링크 상에서 클릭을 실행함으로써 이들 서로 다른 웹 페이지를 검색할 수 있다. 전세계에 걸쳐 서로 다른 서버 상의 서로 다른 웹 페이지에 대한 링크를 갖는 웹 페이지의 전체 시스템이 집합적으로 "월드 와이드 웹(WWW)"을 구성한다.
본 명세서의 나머지 부분에서는 WWW를 통해, 특히 특히 워크플로우 소프트웨어의 컨텍스트(context)로, 클라이언트 워크스테이션 (210)에 있는 사용자와 소프트웨어 애플리케이션 간의 통신을 가능하게 해주는 본 발명의 방법을 개시하고 있다.
도 1을 참조하면, 본 발명의 바람직한 실시예에 따른 컴퓨터 시스템은 다수의 중앙 처리 장치(CPU) (110), 터미널 인터페이스 (150), 보조 기억 장치 인터페이스 (160), 워크스테이션 (170), 직접 접근 저장 장치(Direct Access Storage Device: DASD) (180), 플로피 디스크 (190), 버스 (140), 및 여러 가지 소프트웨어 프로그램을 포함하기 위한 다수의 로케이션(locations)을 갖는 메모리 (130)을 포함한다. 상기 예에서, 메모리 (130)은 로케이션 (132)에서 실행되는 웹 브라우저 (212), 로케이션 (134)에서 실행되는 웹 서버 애플리케이션 (222), 로케이션 (136)에서 실행되는 인터넷/애플리케이션 게이트웨이 프로그램 (332), 및 로케이션 (138)에서 실행되는 소프트웨어 애플리케이션 (342)를 포함한다.
CPU (110)은 시스템 (100)의 연산 및 제어 기능을 실행한다. 시스템 (100)과 연관된 모든 CPU는 각각 개별적으로 마이크로프로세서와 같은 하나의 집적 회로를 포함하거나 또는 중앙 처리 장치의 기능을 수행하도록 협력하여 동작하는 적당한 갯수의 모든 집적 회로 장치 및/또는 회로 보드를 포함할 수 있다. 모든 CPU는 메모리 (130) 내에 포함된 프로그램을 적절히 실행하고 시스템 (100)에서 발생할 수 있는 상기 프로그램 또는 다른 동작에 응답하여 동작할 수 있다.
메모리 (130)은 당업자에게 알려진 모든 형태의 메모리이다. 이것은 다이나믹 랜덤 액세스 메모리(DRAM), 스태틱 랜덤 액세스 메모리(SRAM), 플래쉬 메모리, 캐쉬 메모리 등을 포함한다. 도 1에는 명백하게 도시하지 않았지만, 메모리 (130)은 단일 종류의 메모리 구성 요소이거나 또는 다수의 상이한 종류의 메모리 구성 요소로 구성될 수 있다. 예를 들면, 로케이션 (132)에서 실행되는 웹 브라우저 (212)는 시스템 (100)의 캐쉬 메모리의 일부분이 될 수 있다. 또한, 메모리 (130) 및 CPU (110)은 집합적으로 시스템 (100)을 구성하는 몇 개의 상이한 컴퓨터에 분포될 수 있다. 예를 들면, 웹 브라우저 (212)는 CPU1을 갖는 하나의 컴퓨터에 상주할 수 있고, 웹 서버 어프리캐이션 (222)는 별도의 CPU2를 갖는 다른 컴퓨터 시스템에 상주할 수 있고, 인터넷/애플리케이션 게이트웨이 (332)는 상이한 CPUn-1을 갖는 세 번째 컴퓨터 시스템에 상주할 수 있으며, 소프트웨어 애플리케이션 (342)는 상이한 CPUn을 갖는 네 번째 컴퓨터에 상주할 수 있다. 도 1의 컴퓨터 시스템 (100)은 CPU (110)의 물리적 로케이션 또는 메모리(130) 내의 메모리 로케이션에 대한 제한없이 본 발명의 다수의 현저한 기능을 간단하게 예시하고 있다.
버스 (140)은 시스템 (100)의 여러 구성 요소 사이에서 프로그램, 데이터, 상태 및 다른 형태의 정보 또는 신호를 전송하는 기능을 수행한다. 버스 (140)의 바람직한 실시예는 당업자에게 알려진 구성 요소와 컴퓨터 시스템을 접속하는 모든 적절한 물리적 또는 논리적 수단이다. 이것은 직접 하드와이어드 접속, 인터넷 접속, 인트라넷 접속, 광섬유, 적외선(IR) 및 기타 다른 형태의 무선 접속을 포함하지만 이들에 제한되는 것은 아니다. 컴퓨터 시스템과 구성 요소를 접속하는 다수의 또 다른 방법 및 요소가 본 발명과 함께 사용되도록 용이하게 변경될 것이 예상된다. 이것은 현재는 알려져 있지 않지만 장래 개발될 방법 및 요소를 포함한다.
터미널 인터페이스 (150)은 사용자가 통상 프로그램 가능한 워크스테이션 (170)을 통해 시스템 (100)과 통신하도록 해준다. 도 1에 도시한 바와 같은 시스템 (100)은 하나의 워크스테이션 (170)만을 포함하고 있지만, 시스템 (100)에 부착되는 워크스테이션의 실제 갯수는 시스템 설계 및 사용자의 기호에 따른 함수라는 점을 이해하여야 한다. 워크스테이션 (170)은 또한 사람이 컴퓨터 시스템 (100)과 대화하도록 해주는 덤 터미널(dumb terminal)이거나 또는 기타 다른 프로그램불가능한 컴퓨터 입력/출력 장치가 될 수 있다.
보조 기억 장치 인터페이스 (160)은 기억 장치를 당업자에게 알려진 컴퓨터 시스템에 인터페이스하는 모든 방법을 나타낸다. 보조 기억 장치 인터페이스 (160)은 DASD (180)과 같은 보조 기억 장치가 시스템 (100)의 다른 구성 요소에 부착되어 이들 구성 요소와 통신하도록 해준다. 하나의 보조 기억 장치 인터페이스 (160)만이 도시되어 있지만, 본 발명은 다수의 인터페이스 및 DASD (180)과 같은 다수의 보조 기억 장치 인터페이스가 사용될 수 있을 것으로 예상된다. 도 1에 도시한 바와 같이, DASD (180)은 플로피 디스크 (190) 상에서 프로그램 또는 데이터를 판독 및 기록할 수 있는 플로피 디스크 드라이브가 될 수 있다. DASD (180)은 또한 당업자에게 알려진 기타 모든 다른 종류의 DASD가 될 수 있다. 이것은 CD-ROM 드라이브, 하드 디스크 드라이브, 광 드라이브 등을 포함한다. 플로피 디스크 (190)은 당업자에게 알려진 통상의 3.5 인치 자기 매체 디스크를 나타낸다.
도 3을 참조하면, WWW를 통해 소프트웨어 애플리케이션 (342)에 액세스하는 시스템 (300)은 다음과 같은 요소를 포함한다: 클라이언트 워크스테이션 (210) 상에서 실행되는 웹 브라우저 (212); 웹 서버 컴퓨터 시스템 (220) 상에서 실행되는 웹 서버 애플리케이션 (222); 웹 브라우저 (212)와 웹 서버 애플리케이션 (222)를 접속하는 접속부 (216); 컴퓨터 시스템 (330) 상에서 실행되는 인터넷/애플리케이션 게이트웨이 (332); 웹 서버 애플리케이션 (222)와 인터넷/애플리케이션 게이트웨이 (332)를 접속하는 접속부 (316); 및 인터넷/애플리케이션 게이트웨이 (332)와 소프트웨어 애플리케이션 (342)를 접속하는 접속부 (326).
사용자가 소프트웨어 애플리케이션 (342)에 액세스하고자 하거나 또는 소프트웨어 애플리케이션 (342)의 제어하에 있는 데이터를 검색하고자 하는 경우, 사용자는 클라이언트 워크스테이션 (210)으로부터의 요구를 웹 브라우저 (212)에 입력한다. 웹 브라우저 (212)는 접속부 (216)을 통해 웹 서버 컴퓨터 시스템 (220) 상에서 실행되는 웹 서버 애플리케이션 (222)와 통신한다. 웹 서버 컴퓨터 시스템 (220) 및 클라이언트 워크스테이션 (210)은 물리적으로 동일한 컴퓨터 하드웨어 시스템 상에서 함께 위치할 수 있거나 또는 그렇지 않을 수도 있다. 웹 서버 애플리케이션 (222)는 웹 브라우저 (212)와 함께 위치할 수도 있다는 점에 유의하여야 한다. 또한, 컴퓨터 시스템 (330) 및 (340)은 동일한 컴퓨터 시스템일 수도 있지만, 반드시 동일할 필요는 없다. 마지막으로, 접속부 (216), (316) 및 (326)은 통신 링크 또는 통신 메카니즘이 될 수 있으며, 당업자에게 알려진 컴퓨터 시스템들을 접속하는 모든 형태의 물리적 수단 또는 논리적 수단이 될 수 있다. 이것은 직접 접속, 인터넷 접속, 인트라넷 접속, 적외선(IR) 및 기타 다른 형태의 무선 접속을 포함하지만, 이들에 제한되는 것은 아니다. 컴퓨터 시스템들을 접속하는 다수의 또 다른 방법 및 요소가 본 발명과 함께 사용되도록 용이하게 변경될 것이 예상된다. 이것은 장래 개발될 방법 및 요소를 포함한다. 웹 서버 애플리케이션 (222)는 웹 브라우저 (212)로부터의 요구를 프로세스하며, 웹 브라우저 (212)로부터 수신된 데이터 스트림을 조사하여 사용자가 소프트웨어 애플리케이션 (342)에 액세스할 필요가 있음을 인식하게 된다. 그 후, 웹 서버 애플리케이션 (222)는 통신 링크 (316)을 사용하여 컴퓨터 시스템 (330) 상에 상주하는 인터넷/애플리케이션 게이트웨이 (332)와 통신한다. 본 명세서에서는, 설명 목적상 웹 브라우저 (212)로부터 소프트웨어 애플리케이션 (342)로 전송되는 데이터를 입력 데이터로, 소프트웨어 애플리케이션 (342)로부터 웹 브라우저 (212)로 전송되는 데이터를 출력 데이터로 간주하기로 한다. 따라서, 웹 브라우저 (212)가 웹 서버 애플리케이션 (222)로 출력하는 데이터는 웹 브라우저 (212)가 상기 데이터를 웹 서버 애플리케이션 (222)로 출력하고 있음에도 불구하고 웹 브라우저 입력 데이터(즉, 웹 브라우저 (212)로부터의 입력 데이터)가 된다.
인터넷/애플리케이션 게이트웨이 (332)는 번역 장치/촉진 장치(translator/facilitator)의 역할을 수행하여 사용자로부터의 요구가 소프트웨어 애플리케이션 (342)에 의해 프로세스되도록 해준다. 통상적으로, 이것은 URL, HTML 코드, 또는 기타 사용자 구동형 명령(user-driven commands)을 소프트웨어 애플리케이션 (342)가 이해하고 프로세스할 수 있는 포맷 또는 언어로 번역하는 것을 포함한다. 이것은 인터넷/애플리케이션 게이트웨이 (332)가 소프트웨어 애플리케이션 (342)의 고유 인터페이스를 사용하여 소프트웨어 애플리케이션 (342)와 통신할 수 있다는 것을 의미한다. 사용자는 투명 웹 클라이언트 인터페이스(transparent web client interface)를 통해 인터넷/애플리케이션 게이트웨이 (332)에 액세스할 수 있다. 이것은 HTML 인터페이스가 부호화되어 있어 사용자가 자신이 인터넷/애플리케이션 게이트웨이 (332)를 통해 소프트웨어 애플리케이션 (342)와 대화하고 있다는 사실을 의식하지 못하도록 되어 있다는 것을 의미한다. 웹 브라우저 (212)의 인터페이스는 클라이언트 워크스테이션 (210) 상에 디스플레이되고 있는 데이터 소스를 나타내 보일(disclose) 필요가 없다. 인터넷/애플리케이션 게이트웨이 (332)에 의해 수행되는 실제 프로세싱 및 통신은 웹 브라우저 (212)의 사용자로부터 완전히 감추어질 수 있다. 따라서, 투명 사용자 인터페이스는 코드 및 지시들을 클라이언트 워크스테이션 (210) 상에 나타나(appear)는 적절한 HTML 웹 페이지에 매입(embed)함으로써 구현될 수 있다.
또 다른 방법으로는, 특정한 사용자들에게는 인터넷/애플리케이션 게이트웨이 (332)에 대한 불투명 웹 클라이언트 인터페이스가 제공될 수 있다. 이들 사용자들은 그들의 요구가 WWW 상에서 서로 다른 시스템 또는 원격 시스템에 의해 핸들링되고 있다는 것을 인식하게 된다. 이것은 원격 시스템 상에서 실행되는 소프트웨어 애플리케이션에 대한 액세스를 갖는 내장형 소프트웨어 사용자의 경우에 해당할 수 있다. 웹 클라이언트 인터페이스가 투명 또는 불투명으로 할 것인지의 여부에 대한 결정은 시스템의 개발 시점에서 이루어질 수 있다.
소프트웨어 애플리케이션 (342)가 웹 브라우저 (212)를 통해 사용자로부터 요구받은 타스크를 수행한 후에, 그 요구에 대응하는 적절한 상태 또는 데이터가 접속부 (326)을 통해 인터넷/애플리케이션 게이트웨이 (332)로 복귀한다. 그 후, 인터넷/애플리케이션 게이트웨이 (332)는 요구받은 데이터 또는 상태를 웹 서버 애플리케이션 (222)가 이해할 수 있는 형식(form)으로 번역하여 그 요구받은 데이터 또는 상태를 접속부 (316)을 사용하여 웹 서버 애플리케이션 (222)로 전송한다. 웹 서버 애플리케이션 (222)는 요구받은 데이터 또는 상태를 수신하면 그 요구받은 데이터 또는 상태를 웹 브라우저 (212)에 적절한 형식으로 출력한다. 그 후, 웹 브라우저 (212)는 클라이언트 워크스테이션 (210)에 대한 적절한 출력을 디스플레이할 수 있다. 상기 포맷도 역시 웹 브라우저 (212)가 이해할 수 있는 모든 형태의 데이터(즉, MIME, JAVA, HTML 등)를 포함할 수 있다.
도 5를 참조하면, WWW를 통해 소프트웨어 애플리케이션에 액세스하기 위한 본 발명의 바람직한 실시예의 일반적인 방법 (500)이 도 3의 시스템과 관련하여 기술될 수 있다. 클라이언트 워크스테이션 (210)에 있는 사용자는 웹 서버 애플리케이션 (222)에 데이터 (510)을 입력함으로써 WWW를 통해 웹 브라우저 (212)로 하여금 소프트웨어 애플리케이션에 대한 액세스를 요구하도록 하는 동작을 수행한다. 본 명세서에서, 모든 입력 데이터(예를 들어, 입력 데이터 (510))는 웹 브라우저 입력 데이터 (512)로 지칭되며, HTML 페이지이나 URL 등의 형식을 취할 수 있다. 그 후, 웹 브라우저 (212)는 표준 통신 프로토콜을 사용하여 웹 브라우저 입력 데이터 (512)를 프로세싱을 하기 위한 웹 서버 애플리케이션 (222)로 전달한다. 웹 서버 애플리케이션 (222)는 요구를 프로세스하고, 사용자가 소프트웨어 애플리케이션 (342)에 대한 액세스를 요구하였다는 사실을 알게 된다. 그 후, 웹 서버 애플리케이션 (222)는 웹 브라우저 (212)로부터 (사용자 ID 및 패스워드와 같은) 인증 데이터를 요구하고, 유효한 인증 데이터가 기입되면 사용자를 인증한다. 일단 사용자가 인증을 받으면, 웹 서버 애플리케이션 (222)는 접속부 (522)를 통해 요구를 게이트웨이 (332)로 전송한다(단계 (520)). 본 명세서에서는, 웹 서버 애플리케이션 (222)로부터 게이트웨이 (332)로의 모든 전송을 웹 서버 입력 데이터라고 지칭하기로 한다. 게이트웨이 (332)는 웹 서버 입력 데이터로부터 소프트웨어 애플리케이션이 이해할 수 있는 적절한 명령을 생성하고, 프로세스 또는 기능을 식별하기 위하 충분한 정보와 함께 상기 명령을 소프트웨어 애플리케이션 (342)로 전송(단계 (530))하는데, 소프트웨어 애플리케이션 (342)는 웹 클라이언트가 요구한 프로세스 또는 기능을 수행한다. 본 명세서에서는, 게이트웨이 (332)로부터 소프트웨어 애플리케이션 (342)로의 모든 전송을 소프트웨어 애플리케이션 입력 데이터 (532)라고 지칭하기로 한다. 그 후, 소프트웨어 애플리케이션 (342)는 소프트웨어 애플리케이션 입력 데이터 (532)에 대한 요구를 프로세스하고, 필요한 기능(들)을 수행하며(단계 (540)), 요구받은 상태 또는 데이터를 게이트웨이 (332)로 복귀시킨다(단계 (550)). 본 명세서에서는, 소프트웨어 애플리케이션 (342)로부터 게이트웨이 (332)로의 모든 전송을 소프트웨어 애플리케이션 출력 데이터 (552)라고 지칭하기로 한다. 그 후, 게이트웨이 (332)는 소프트웨어 애플리케이션 출력 데이터 (552)와 함께 전달되며, 웹 클라이언트가 그 소프트웨어 애플리케이션 출력 데이터 (552)에 대응하는 정보에 근거해 결정한다. 그 후, 게이트웨이 (332)는 소프트웨어 애플리케이션 출력 데이터 (552)에 대해 어떻게 동작할 것인지를 결정하고, 일반적으로 웹 서버 애플리케이션 (222)에 상태 또는 데이터를 제공한다(단계(560)). 본 명세서에서는, (예를 들어, 접속부 (562)를 통한) 게이트웨이 (332)로부터 웹 서버 애플리케이션 (222)로의 모든 전송을 웹 서버 출력 데이터 (562)라고 지칭하기로 한다. 그 후, 웹 서버 애플리케이션 (222)는 웹 서버 출력 데이터 (562)(예를 들어, 출력 데이터 (572))를 웹 브라우저 (212)에 제공한다(단계 (570)). 본 명세서에서는, 웹 서버 애플리케이션 (222)로부터 웹 브라우저 (212)로의 모든 전송을 웹 브라우저 출력 데이터 (572)라고 지칭하기로 한다. 마지막으로, 웹 브라우저 (212)는 웹 브라우저 출력 데이터 (572)(예를 들어, 출력 데이터 (580))를 적절한 형식으로 사용자에게 제공한다(예를 들어, HTML 페이지를 워크스테이션 모니터 (505) 상에 디스플레이한다).
도 5에 도시된 접속부들은 서로 다른 형태로 된 데이터 흐름을 표시하며, 반드시 특정한 물리적인 접속을 표시하는 것은 아니라는 점에 유의하여야 한다. 예를 들어, 도 5의 웹 브라우저 입력 데이터 (512) 및 웹 브라우저 출력 데이터 (572)는 모두 도 3의 접속부 (216)을 통해 서로 통신할 수 있다. 웹 서버 입력 데이터 (522)와 웹 서버 출력 데이터 (562)는 모두 도 3의 접속부 (316)을 통해 전송된다. 소프트웨어 애플리케이션 입력 데이터 (532)와 소프트웨어 애플리케이션 출력 데이터 (552)는 모두 도 3의 접속부 (326)을 통해 전송된다.
도 5는 본 발명에 따른 방법의 바람직한 실시예를 도시하고 있으며, 단일 웹 브라우저와 하나의 소프트웨어 애플리케이션 간의 대화 및 통신을 기술하고 있다. 그러나, 본 발명은 단일 웹 브라우저와 하나의 소프트웨어 애플리케이션으로 된 환경에만 국한되는 것은 아니다. 도 7과 관련하여 이하에서 기술하는 바와 같이, 다수 사용자가 WWW를 통해 동일한 애플리케이션에 동시에 액세스하기 위해 다수의 웹 브라우저를 사용하는 다수 사용자 시스템이 고려된다. 인터넷/애플리케이션 게이트웨이 (332)는 다수 사용자들 간의 대화를 추적(track)하기 위한 메카니즘을 제공하여, 여러 가지 원하는 트랜잭션에 대한 소프트웨어 애플리케이션에 대해 각 사용자가 요구한 요구들을 일치시킨다.
도 4를 참조하면, 시스템 (400)은 웹 브라우저 (212)에서 WWW를 통해 특정 소프트웨어 애플리케이션에 대한 액세스를 가능하도록 해준다. 상기 예에서, 소프트웨어 애플리케이션 (342)는 특정 기능을 실행하도록 프로그램된 "플로우마크(FlowMark)"로 알려진 워크플로우 애플리케이션이다. 상기 특정 예는 본 발명을 기술하기 위해 플로우마크를 사용하고 있지만, 본 발명은 플로우마크에만 제한되는 것은 아니다. 다른 소프트웨어 애플리케이션이 본 발명과 함께 사용될 수도 있으며, 추가 애플리케이션 소프트웨어 패키지들도 본 발명과 함께 사용될 수 있을 것으로 예상된다.
플로우마크는 상대적으로 복잡한 프로젝트 또는 타스크가 일련의 더 작은 프로세스 또는 타스크로 분할될 수 있도록 해주는 인기 있는 프로세스 엔지니어링 툴이다. 플로우마크에 의해 실행될 액티비티는 프로세스 플로우 및 액티비티를 설명하는 하나 이상의 프로세스 모델 (440)을 사용하여 설명된다. 이것은 플로우 마크를 통신 네트워크를 통해 컴퓨터 시스템에 의해 실행될 수 있는 액티비티 및 트랜잭션에 대해 매우 유용하게 사용될 수 있도록 해준다. 플로우마크는 프로세스 모델 (440)을 구축하기 위해 사용되고, 상기 모델은 실제(real life) 타스크를 일련의 컴퓨터화된 시퀀스로서 설명한다. 정보는 플로우마크 워크플로우 소프트웨어에 의해 프로세스되고, 일반적으로 다수의 관련 액티비티를 포함한다. 플로우마크 워크플로우 프로세스 언어는 액티비티를 모델화하고, 적절한 위치에서 트랜잭션을 자동화한다. 개별 타스크는 "워크 리스트"(즉, 전자적으로 "수행해야 할(to do)" 리스트) 내에 발생된다. 이하, 특정 타스크를 실행하기 위해 플로우마크를 사용하는 하나의 예를 설명한다.
도 4의 시스템 (400)은 도 3에 도시한 시스템 (300)의 하나의 적절하고도 상세한 구현을 나타낸다. 클라이언트 워크스테이션 (210) 및 웹 서버 컴퓨터 시스템 (220)에 각각 상주하는 웹 브라우저 (212) 및 웹 서버 애플리케이션 (222)를 갖는 동일한 컴퓨터 시스템이 제공된다(즉, (210), (220), (330), (340)). 또한, 도 3의 접속부 (326)은 도 4의 접속부 (426) 및 (428)을 포함한다. 도 4의 시스템 (400)은 본 명세서에서는 인터넷/애플리케이션 게이트웨이 (332)이 플로우마크 워크플로우 소프트웨어 애플리케이션 (342)와 통신하기 위해 사용될 때 이러한 게이트웨이 (332)의 하나의 구체적인 구현을 도시하는 것으로 제공되어 있다.
이러한 구체적 구현에 대해, 인터넷/애플리케이션 게이트웨이 (332)는 공통 게이트웨이 인터페이스(Common Gateway Interface: CGI) (420), 플로우마크/인터넷 게이트웨이(FMIG) (430), 및 WWW 애플리케이션 프로그램 인터페이스(APIs) (434)를 포함한다. 4개의 표준 WWW APIs는 OPEN, CLOSE, SEND 및 RECEIVE이다. WWW APIs (434)는 FMIG (430)과 액티비티 프로그램 (432) 사이에 통신 링크를 제공한다. 플로우마크 애플리케이션 소프트웨어 (342)는 플로우마크 (450) 및 하나 이상의 액티비티 프로그램 (432)를 포함한다. 플로우마크 (450)은 데이터베이스 (438), 하나 이상의 프로세스 모델 (440), 및 플로우마크 APIs (436)을 포함한다. 특정 소프트웨어 애플리케이션 (342)는 플로우마크 내에서 프로세스 모델 (440)을 정의하고, 또한 프로세스 모델 (440) 내에서 특정 타스크를 실행하는 액티비티 프로그램 (432)를 정의함으로써 시스템 (400) 내에서 구현된다. 플로우마크 애플리케이션 프로그램 인터페이스(APIs) (436)은 플로우마크 (450)에 의해 제공되고 플로우마크 (450)과의 통신을 위한 액티비티 프로그램 (432) 및 FMIG (430)에 대한 방법을 제공하는 표준 APIs이다. 플로우마크 데이터베이스 (438)은 모든 프로세스 모델에 관한 정보를 저장하는데 사용될 수 있는 범용 데이터베이스이다. 예를 들면, 프로세스 모델 (440) 및 액티비티 프로그램 (432)가 렌터카 워크플로우 프로세스를 구현하면, 플로우마크 데이터베이스 (438)은 어느 차량이 이용 가능한지 등과 같은 렌터카 프로세스에 관한 정보를 저장하는데 사용된다.
WWW 상의 플로우마크 애플리케이션 (342)에 액세스할 필요가 있는 사용자는 클라이언트 워크스테이션 (210)을 사용하여 요구를 웹 브라우저 (212)에 입력한다. 사용자는 웹 브라우저 (212)를 사용하여 특정 홈 페이지 사이트에 대한 URL을 입력하거나 또는 HTML에 의해 발생된 사용자 인터페이스에 나타난 버튼을 클릭할 수 있다. 일반적으로 사용자가 HTML 형태로 표현된 버튼을 클릭하여 요구받은 정보를 "제공(submit)"할 경우, 웹 서버 애플리케이션 (222)는 웹 브라우저 (212)에서 입력 데이터를 수신한다. 이러한 데이터 스트림은 RFC 1866 또는 RFC 1867 포맷을 포함하여 다수의 상이한 형태로 웹 서버 애플리케이션 (222)에 제공될 수 있다. 이들 두가지의 구체적인 포맷은 단지 공통 웹 브라우저가 이해하는 공통 데이터 스트림 포맷의 예에 불과하다. 본 발명은 이들 포맷에 한정되지 않으며, 현재 알려져 있거나 장래에 개발될 모든 데이터 전송 포맷을 포함한다.
사용자가 요구하는 정보가 플로우마크 애플리케이션 (342)에 대한 액세스를 요구하면, CGI (420)에 액세스할 필요가 있는지를 식별하는 명령이 데이터 스트림에 포함되고, 이것(CGI (420))은 또한 플로우마크 애플리케이션 (342)에 대한 액세스를 제공할 것이다. 상기 구체적인 예에 대해, 명령은 CGI (420)에 대한 호출이다. CGI (420)에 대한 호출은 URL의 일부이거나, 또 다른 방법으로는 웹 브라우저 (212)에 의해 제공된 데이터에 포함될 수 있다. CGI (420)에 대한 액세스는 허가받지 않은 사용자가 WWW 상의 플로우마크 애플리케이션 (342)에 대한 액세스를 방지하도록 보호된다. CGI (420)에 대한 액세스를 획득하기 위해, 사용자는 웹 서버 애플리케이션 (222)에 의해 인증을 받아야 한다. 바람직한 인증 메카니즘으로는 도 6을 참조하여 상기에서 설명한 인증 메카니즘이 있다. 웹 서버 애플리케이션 (222)가 웹 브라우저 (212)에 의해 발생된 데이터 스트림에서 CGI 명령을 발견하면, 웹 브라우저 애플리케이션 (222)를 통해 사용자에게 패스워드 및 사용자 신원 확인(사용자 ID)을 요구한다. 사용자가 인증된 후, 웹 브라우저 애플리케이션 (222)는 제어를 CGI (420)에 전달하여 필요한 동작(들)을 실행한다.
CGI는 당업자에게 잘 알려진 실행가능한 프로그램이다. CGI는 WWW 상의정보를 전달하는 메카니즘을 제공하는 기능을 수행한다. CGI (420)은 웹 서버 애플리케이션 (222)에서 FMIG (430)으로 정보를 명령 형태로 전달한다. 이러한 명령은 한쪽 방향, 즉 CGI (420)에서 FMIG (430)으로 향하지만, 데이터 및 상태는 양 방향으로 전달된다. 웹 서버 애플리케이션 (222)는 CGI (420)을 사용하고, 해당 요구에 관한 적절한 명령 및 데이터를 전송한다. 본 발명의 바람직한 실시예는 웹 브라우저 (212)에서 CGI (420)으로 데이터를 전송하기 위해 "CGI Post"(stdin) 포맷을 사용하지만, 웹 브라우저 (212)에 의해 발생될 수 있는 기타 다른 모든 데이터 전송 포맷도 본 발명의 범위 내에 해당하는 것으로 고려된다. 또한, CGI (420)의 파싱 및 기타 다른 연산 기능들이 여러 가지 다른 방식으로 구현될 수 있다는 것에 유의해야 한다. 예를 들면, 다수의 웹 서버 애플리케이션은 일반적으로 "모듈"을 지원한다. 모듈은 다이나믹 링크드 라이브러리들(Dynamic Linked Libraries: DLLs)을 사용하여 구현되는 소프트웨어 루틴이다. 모듈은 도 4의 시스템 (400)의 CGI (420)과 동일한 기능을 실행할 수 있으며, 본 발명의 일부 바람직한 실시예에서 CGI (420)을 치환할 수 있다. 모듈 및 DLLs를 사용하는 것은 당업자에게 잘 알려져 있다. 따라서, CGI (420)은 단지 예시 목적으로 사용된 것으로 본 발명을 제한하기 위한 것이 아니다.
CGI (420)은 웹 브라우저 (212)에서 데이터를 수신한 후, 그 데이터를 파싱하여, 요구된 프로세스에 관한 것으로 플로우마크 (342)에 대한 액세스 요구를 포함하는 관련 정보의 위치를 지정한다. CGI (420)은 약간의 제어 정보와 함께 사용자 데이터 및 요구를 FMIG (430)으로 보낸다. FMIG (430)은 플로우마크 애플리케이션 (342)가 WWW 상의 웹 사용자와 대화하는 방법을 제공한다. FMIG (430)은 CGI (420)과 플로우마크 애플리케이션 (342) 사이의 정보 흐름을 지시하고, 플로우마크 APIs (436)을 사용하여 플로우마크 기능을 개시한다. 예를 들면, FMIG (430)은 플로우마크 APIs (436)을 사용하여 사용자에 의해 제공된 요구를 프로세스하는데 필요한 프로세스의 예를 생성할 수 있다. 그 후, FMIG (430)은 상이한 플로우마크 APIs (436)을 사용하여, 상기 프로세스의 예를 사용하거나 또는 개시할 수 있다. 이러한 프로세스는 프로세스 모델 (440)에 의해 운용되고, 이것은 플로우마크 (450)에게 어느 액티비티 프로그램 (432)가 원하는 타스크 실행을 위해 사용되어야 하는지를 알려준다. 일단 FMIG (430)이 플로우마크 프로세스를 개시한 경우에는, FMIG (430)은 플로우마크 APIs (436)을 통해 플로우마크 (450)으로부터 또는 요구가 프로세스된 WWW APIs (434)을 통해 액티비티 프로그램 (432)로부터 정보를 수신할 때까지 기다린다. FMIG (430)과 플로우마크 APIs (436) 사이의 명령 인터페이스는 한쪽 방향이지만(즉, FMIG (430)은 항상 플로우마크 APIs (436)을 호출하지만), 데이터 및 상태 정보는 양 방향으로 전달된다. 이것은 웹 인터페이스가 변하더라도, 플로우마크 애플리케이션 (342)에 대한 인터페이스가 변하지 않고 그대로 유지되도록 해주므로 중요하다.
FMIG (430)은 또한 식별자 메카니즘으로서 동작하고, 플로우마크와의 대화를 요구하는 각 웹 클라이언트로부터의 요구에 대해 대화 식별자를 할당한다. 상기 대화 식별자는 특정 웹 브라우저와 플로우마크 사이의 모든 대화를 개별적으로 표시하거나 또는 태그한다. 대화는 일반적으로 OPEN 애플리케이션 프로그램 인터페이스(APIs)를 호출함으써 개시되고, CLOSE APIs를 호출함으로써 종료된다. FMIG (430)은 다수의 사용자 및 이들 사용자 각각으로부터의 다수의 요구와 작업하고 있으므로 개별 요구를 계속해서 추적하기 위해 대화 식별자를 사용한다. 따라서, FMIG (430)은 플로우마크에 의해 프로세스 중인 프로세스의 예들과 여러 사용자 사이의 정보의 흐름을 제어하기 위해 필요한 정보를 보유한다.
액티비티 프로그램 (432)는 사용자에 의해 요구된 타스크를 실행하기 위해 플로우마크에 의해 사용될 수 있는 소프트웨어 모듈이다. 개별 액티비티 프로그램 (432)가 플로우마크에 의해 개시되고, 그 후 액티비티 프로그램 (432)는 WWW APIs (434)를 통해 웹 클라이언트와 통신한다. 워크플로우 프로세스 모델 (440)은 각각 지정된 타스크를 실행하기 위해 필요한 액티비티 프로그램 (432)를 개시한다. 각 액티비티 프로그램 (432)는 원하는 타스크를 수행하도록 실행하고, 요구받은 정보를 복귀시킨 후 종료하는 프로그램의 예이다. 예를 들면, 액티비티 프로그램 (432)는 사용자의 요구를 프로세스하기 위해 사용자로부터 정보를 요구할 수 있다. 액티비티 프로그램 (432)는 필요한 데이터를 얻기 위해 적절한 WWW APIs (434)를 호출한다. 이 경우, FMIG (430)은 액티비티 프로그램 (432)에 제공하기 위해 기다리는 데이터를 갖는데, 이 데이터는 CGI (420)이 프로세스 초기에 전송했던 것과 동일한 데이터이다. 액티비티 프로그램 (432)는 FMIG (430)에 대한 데이터 요구를 전송하기 위해 WWW APIs (434)를 호출하고, FMIG (430)은 WWW APIs (434)로부터의 요구에 응답하여 이 데이터를 액티비티 프로그램 (432)로 복귀시킨다. 액티비티 프로그램 (432)는 데이터를 프로세스하여 상기 요구를 충족시키기 위해 적절한 단계를 취한다. 액티비티 프로그램 (432)는 WWW APIs (434), FMIG (430), CGI (420), 웹 서버 애플리케이션 (222), 및 웹 브라우저 (212)를 통해 사용자와 통신한다. 액티비티 프로그램 (432)는 사용자가 요구받은 데이터를 수신하였다는 것을 검증하기 위해 WWW APIs (434)에서 복귀 코드를 수신한다. 검증에 대한 확인이 수신된 후, 액티비티 프로그램 (432)의 구체적인 예가 상기 요구에 의해 끝나고 종료한다. 하나 이상의 액티비티 프로그램 (432)의 다른 예도 여전히 액티브 상태에 있으며 프로세스 중인 기타 다른 요구가 될 수 있다.
WWW APIs (434)는 FMIG (430)과 액티비티 프로그램 (432) 사이에 대화를 제공하는 역할을 한다. WWW APIs (434)는 플로우마크 액티비티 프로그램 (432)가 웹 클라이언트와 양방향으로 데이터 및 상태를 송수신하도록 해준다. 중요한 것은 플로우마크 APIs (436)이 변하지 않은 상태로 남아 있다는 점에 유의하는 것이다. 플로우마크 APIs가 웹 사용자로 하여금 플로우마크에 액세스가 가능하도록 해주기 위해 수정되지 않기 때문에 중요하다. 이러한 점에서, 플로우마크는 웹 클라이언트가 자신에 액세스하고 있는 것을 인식하지 못하며, 또한 플로우마크는 마치 전용 애플리케이션이 요구받은 기능을 실행하는 것과 동일한 방식으로 동작한다. 플로우마크 APIs가 영향을 받지 않으므로, 웹 클라이언트가 플로우마크 애플리케이션 (342)의 실행을 계속 요구하는 프로세스 또는 타스크에 관계없이 플로우마크의 동작이 안정하게 유지된다. 다수의 위치에 있는 다수의 사용자가 WWW 상의 플로우마크에 액세스할 수 있으며, 플로우마크 인터페이스가 안정하게 유지되는 것을 보장받을 수 있다. 일부의 경우에는, 시스템이 투명한 웹 클라이언트를 제공하는데, 이것은 사용자의 요구가 플로우마크 애플리케이션 (342)에 의해 프로세스되고 있다는 것이 사용자에게 전혀 표시되지 않는다는 것을 의미한다.
웹 서버 애플리케이션 (222)가 웹 브라우저 (212)와 같은 장소에 위치할 수 있는 점에 유의해야 한다. 또한, 컴퓨터 시스템 (330) 및 컴퓨터 시스템 (340)은 바람직한 실시예에서 동일한 컴퓨터 시스템인데, 필수적인 것은 아니다. 마지막으로, 도면에 도시한 접속부들은 당 발명 기술 분야에서 공지된 컴퓨터 시스템을 접속하는 모든 종류의 물리적 또는 논리적 수단이 될 수 있다. 이것은 직접 접속, 인터넷 접속, 인트라넷 접속, 적외선(IR) 및 다른 형태의 무선 접속을 포함하는데, 이들에만 제한되는 것은 아니다. 컴퓨터 시스템을 접속하는 다수의 다른 방법 및 요소를 본 발명과 함께 사용되도록 용이하게 채택될 것이라는 점이 예상된다. 요컨데, 본 명세서에는 몇 개의 서로 상이한 컴퓨터 시스템이 개시되어 있지만(예를 들어, 도 3 및 도 4), 본 발명에 따른 컴퓨터 시스템은 모든 컴퓨터 시스템 또는 그들의 조합을 포함할 수 있다. 본 명세서의 도면은 본 발명의 현저한 기능이 나타나도록 도시되어 있으며, 본 발명을 본 명세서에 도시된 특정 구성에만 제한되는 것으로 해석되어서는 아니된다.
도 6을 참조하면, 본 발명의 바람직한 실시예에 따른 방법 (600)은 웹 브라우저 (212)의 사용자가 도 4의 시스템 (400)으로 플로우마크 애플리케이션 (342)에 액세스할 수 있도록 해준다. 본 발명 방법의 상세한 단계들은 상기에서 시스템 (400)(도 4)을 기술하면서 설명한 바 있으므로, 여기에서는 이러한 방벙의 단계들의 개요만을 설명하기로 한다. 도 4의 시스템 (400)에 대한 설명 및 본 발명에 따른 좀 더 상세한 단계들에 이어지는 렌터카의 예에 대한 설명을 참조하기로 한다. 클라이언트 워크스테이션 (210)에 있는 사용자는 웹 브라우저 (212)를 통해 (예를 들어, 입력 데이터 (610)를 제공하는 것과 같은) 몇 가지 동작을 취하여, WWW를 통해 플로우마크 애플리케이션 (342)에 액세스를 개시한다. 상기 동작은 URL 어드레스의 제공, 워크스테이션 상에 디스플레이된 HTML 페이지의 버튼 클릭, 또는 기타 다른 몇 가지 액티비티(activity)를 포함할 수 있다. 사용자 요구 및 그에 부수하는 데이터는 웹 브라우저 (212)에 의해 웹 서버 애플리케이션 (222)로 전달된다. 웹 서버 애플리케이션 (222)는 사용자 요구 및 데이터를 수신하고, 적절한 파라메터들을 CGI (420)으로 전달한다(단계 620)). 그 후, CGI는 적절한 파라메터들을 플로우마크/인터넷 게이트웨이(FMIG) (430)으로 전달한다(단계 (630)). FMIG는 플로우마크 내에서 원하는 사용자 타스크를 수행하는데 필요한 플로우마크 명령을 포맷한다(단계 (640)). 이것은 추가 정보의 검색, 요구받은 데이터의 계산 등을 포함할 수 있다. 필요한 경우, 플로우마크 애플리케이션 (342)는 하나 이상의 액티비티 프로그램을 개시하여 타스크를 수행하거나 또는 요구받은 상태 또는 데이터를 제공한다(단계 (650)). 또한, 액티비티 프로그램이 필요한 프로세스를 완료한 후에, 액티비티 프로그램 또는 프로그램들은 요구받은 모든 데이터를 포함하는 응답을 FMIG (430)에 전달한다(단계(660)). 그 후, FMIG (430)은 상태 또는 데이터를 CGI (420)에 전달하고(단계 (670)), CGI (420)은 상태 또는 데이터를 웹 서버 애플리케이션 (222)로 전달한다(단계 (680)). 그 후, 웹 서버 애플리케이션 (222)는 상태 또는 데이터를 웹 브라우저로 출력한다(단계 (690)). 그 후, 웹 브라우저 (212)는 출력 데이터 (695)를 적절한 형식으로 사용자에게 제공한다(예를 들어, 워크스테이션 모니터 (505) 상에 HTML 페이지를 디스플레이한다).
도 6에 도시된 접속부들은 도 5를 참조하여 도시하고 설명한 접속부들과 동일하다. 도 5의 방법 (500)과 마찬가지로, 도 6의 방법 (600)은 도 5의 방법 (500)을 참조하여 설명한 다양한 데이터 입력 및 출력(즉, (512), (522), (532), (552), (562), 및 (572))를 포함한다. 또한, CGI 데이터 입력 (622)는 웹 서버 애플리케이션 (222)에서 CGI (420)으로 데이터를 전송하고, CGI 데이터 출력 (682)는 CGI (420)에서 웹 서버 애플리케이션 (222)로 데이터를 전송한다. CGI들은 일반적으로 그 CGI들을 호출하는 웹 서버 애플리케이션 (222)에 응답하여 웹 서버 컴퓨터 시스템 (220) 상에서 실행되기 때문에, 도 5의 웹 서버 입력 데이터 (522) 및 웹 서버 출력 데이터 (562)가 CGI (420)에 접속되는 것으로 설명된다는 점에 유의하여야 한다.
도 7을 참조하면, 다수의 사용자가 WWW 상의 웹 브라우저 (212)를 통해 동시에 단일 소프트웨어 애플리케이션에 액세스하려고 시도할 때, 본 발명의 여러 효과가 가장 명확하게 나타난다. 웹 사용자들은 각각 일반적으로 클라이언트 워크스테이션을 갖고, 이것은 WWW에 액세스하는데 사용된다. 도 7의 특정 구성에 대하여, 클라이언트 워크스테이션 1 및 2(client workstations 1 and 2: CW1 및 CW2)는 웹 서버 1(web server 1: WS1)에 연결되고, 클라이언트 워크스테이션 3은 웹 서버 2(WS2)에 연결되어 있다. 클라이언트 워크스테이션 CW4 및 CW5는 웹 서버 3(WS3)에 연결되어 있다. 웹 서버 WS1 및 WS2는 모두 게이트웨이 컴퓨터 시스템(gateway computer system: GCS)(상기 경우에는 GCS1임)에 결합되어 있다. 도시한 바와 같이, WS3은 GCS2에 연결된다. GCS1 및 GCS2는 모두 웹 사용자가 WWW를 통해 액세스할 필요가 있는 여러 소프트웨어 애플리케이션을 실행하고 있는 소프트웨어 애플리케이션 컴퓨터 시스템(software application computer system: SACS)에 연결된다.
본 발명은 요구받은 기능이 요구받은 대로 확실히 실행되도록 하는 방식으로, SACS 상에서 실행되는 애플리케이션 소프트웨어 프로그램에 대한 모든 액세스를 이들 모든 클라이언트 워크스테이션(CW1-CW5)에 의해 관리한다. GCS는 웹 클라이언트와 소프트웨어 애플리케이션 사이의 트래픽을 지시하는 애플리케이션 게이트웨이를 제공한다. 각 대화에 대해 고유 식별자를 할당함으로써, GCS는 자신의 고유 인터페이스를 사용하여 SACS 상에서 실행 중인 각 소프트웨어 애플리케이션과 대화할 수 있고, 따라서 소프트웨어 애플리케이션으로부터의 출력을 식별하고 식별된 출력과 그 출력을 요구한 웹 클라이언트를 일치시킨다. 일부 클라이언트 워크스테이션은 생산 환경에서 GCS1을 통해 고객 서비스를 제공하는 한편, GCS2는 회사내 테스트를 수행하는데 사용될 수 있다.
렌터카의 예
본 발명의 바람직한 실시예의 구체적인 예는 개인이 WWW을 통해 렌터카 사업자용 플로우마크 애플리케이션 소프트웨어에 액세스함으로써 차량을 임대하고자하는 상황을 통해 더욱 상세히 설명될 수 있다. 도 23을 참조하면, 전체 렌터카의 예에 대한 프로세스 모델 (2000)은 프로세스 단계 (2010), (2020), (2030), (2040) 및 (2050)을 포함한다. 프로세스 모델 (2000)의 프로세스 단계 (2010)에서, 액티비티 프로그램은 렌터카 정보를 수신하고, 다음 예약 번호의 위치를 결정하며, 예약 번호를 파일에 저장하고, 예약 번호를 다시 요구자에게 보내며, 예약 번호를 플로우마크 출력 데이터 컨테이너에 설정한다. 프로세스 단계 (2010)은 플로우마크 인터넷 접속 WWW APIs 및 데이터 컨테이너 APIs를 사용한다. 프로세스 단계 (2020)은 차량이 예약을 충족하는지의 여부를 결정하는 액티비티 프로그램이다. 프로세스 모델 (2000)에 의해 취해지는 후속 경로는 이 결정의 결과에 좌우된다. 차량이 예약을 충족하는 경우, 프로세스 모델 (2000)의 다음 단계는 프로세스 단계 (2030)이다. 그러나, 예약 요구를 충족하는 차량이 없으면, 프로세스 모델의 다음 단계는 프로세스 단계 (2040)이다. 프로세스 단계 (2030)에서는 렌터카 요구에 맞는 이용 가능한 차량이 확인되고 예약 요구를 충족하도록 일정이 잡힌다. 또한, 예약 확인 번호가 발생되어 요구자에게 전달된다. 프로세스 단계 (2040)에서, 렌터카 사업자는 예약 요구를 충족하는 또 다른 위치에서 차량을 찾으려는 시도 여부의 결정에 대한 선택권을 갖는다. 다른 위치에서 이용 가능한 렌터카가 찾아지면, 프로세스 모델 (2000)의 다음 단계는 프로세스 단계 (2050)이 된다. 프로세스 단계 (2050)에서는 액티비티 프로그램이 예약 요구를 충족시키도록 차량의 일정을 잡고 한 위치에서 다른 위치로 이동시키기 위해 이용가능하다. 프로세스 단계 (2050)은 다른 위치에서 이용 가능한 차량의 리스트를 제공하므로, 렌터카 사업자는 이동시킬 적절한 차량을 선택할 수 있다. 이들 단계의 각각은 이하에서 더욱 상세하게 설명된다.
도 4 및 도 20을 참조하면, 차량을 임대하고자 하는 사람 또는 사용자는 웹 브라우저 (212)를 실행하고 있는 클라이언트 워크스테이션 (210)을 사용하여 WWW에 액세스한다. 사용자는 웹 브라우저 (212)를 사용하여 렌터카 사업자의 URL을 입력하여 렌터카 사업자의 홈 페이지 사이트의 위치를 결정한다. 그 후, 사용자는 차량을 임대하는 요구를 접수하도록 사전에 설정되어 있는 렌터카 사업자의 웹 사이트 상의 적절한 영역 또는 페이지를 위치시킨다. 상기 예에서, 렌터카 사업자의 웹 사이트 상에는 임대 예약 형태가 있다고 가정한다. 렌터카 예약 형태의 위치를 결정한 후, 사용자는 렌터카 사업자가 요구한 정보를 입력한다. 이러한 정보는 통상 주문자의 식별 번호, 패스워드, 차량이 임대될 도시, 렌터카를 임대하고자 하는 날짜, 임대될 차량의 구체적 종류(즉, 구조, 모델, 및 크기) 등의 항목을 포함한다.
도 8은 적당한 임대 예약 형태를 발생하는 HTML의 한가지 예를 도시하고 있다. 상기 형식은 사용자가 사용자의 회원 번호, 성, 이름, 중간 이니셜, 시발 도시, 상태, 개시 날짜, 일수 및 선호하는 차량을 입력하도록 요구한다. 일단 사용자가 이러한 정보를 입력하면, 사용자는 임대 예약 형식 상의 "제공" 버튼을 클릭하여 자신의 정보를 제공한다. 이 시점에서, 웹 서버 애플리케이션 (222)는 사용자 요구에 의해 웹 브라우저 (212)에서 발생된 데이터 스트림을 수신한다. 하나의 적당한 포맷은 모든 변수 및 다른 관련 정보 데이터를 추출하여 포스트 데이터 스트림 포맷(post data stream format) 형식으로 웹 서버 애플리케이션 (222)로 전송하는데, 이 포스트 데이터 스트림 포맷은 도 12의 데이터 스트림과 같다. 상술한 바와 같이, 이러한 데이터 스트림은 다수의 상이한 데이터 포맷 형태로 웹 서버 애플리케이션 (222)로 제공될 수 있으며, 본 발명은 어떤 특정 데이터 포맷에 한정되는 것은 아니다. 이들 액티비티는 도 23의 프로세스 단계 (2010)에 포함된다.
웹 서버 애플리케이션 (222)는 웹 브라우저 (212)로부터의 데이터 스트림을 검사하여, 사용자의 요구를 충족시키기 위해 어떤 동작을 취해야 하는지를 결정한다. 이러한 구체적인 예에 있어서, HTML 형태로 되어 있으며 <FORM ACTION="/cgi-prot/exmp5cgi.exe"METHOD="POST">로 읽혀지는 선(line)으로부터 CGI (420)에 대한 호출이 웹 서버 애플리케이션 (222)에게 본 명세서에서 CGI (420)으로 가정한 exam5cgi.exe라고 불리우는 보안 CGI를 호출할 필요가 있음을 알려준다. 웹 서버 애플리케이션 (222)가 보안 CGI에 대한 호출을 발견한 경우, 웹 서버 애플리케이션 (222)가 CGI (420)에 대한 액세스를 허가하기 전에 인증이 필요하다는 것을 알고 있다.
CGI (420)이 보안 상태에 있으므로, CGI (420)에 대한 액세스는 허가받지 않은 사용자가 WWW 상의 플로우마크 애플리케이션 (342)에 액세스하지 못하도록 제어되어야 한다. CGI (420)을 지정하는 HTML 형태의 파라미터에 응답하여, 웹 서버 애플리케이션 (222)는 웹 사용자를 인증해야 한다. 이러한 인증은 사용자에게 사용자 ID 및 패스워드를 입력할 것을 요구하고, 웹 서버 애플리케이션 (222)는 웹 브라우저 (212)에게 REALM 요구를 발행한다. REALM 요구는 CGI (420)에 대한 액세스를 획득하기 위해 사용자에게 사용자 ID 및 패스워드를 입력할 것을 요구하는 공지의 소프트웨어 보안 기능이다. 웹 브라우저 (212)는 사용자로부터 수신된 사용자 ID 및 패스워드를 저장하고, 이 정보를 웹 서버 애플리케이션 (222)로 전송한다. 웹 서버 애플리케이션 (222)는 사용자에게 CGI (420)에 대한 액세스를 허가하기 전에 사용자 ID 및 패스워드를 사용하여 사용자를 인증한다. 장래에 구현될 웹 브라우저 (212)의 일부는 인증 데이터의 일부 형태를 웹 서버 애플리케이션 (222)로 전송된 데이터 스트림에 삽입하도록 웹 브라우저 (212)에 대한 메카니즘을 제공할 가능성이 상당히 크다는 점에 유의해야 한다. 인증 데이터를 모아 웹 브라우저 (212)에서 웹 서버 애플리케이션 (222)로 전송하는 모든 방법 및 기술은 본 발명의 범위에 속한다.
일단 인증되면, 웹 서버 애플리케이션 (222)는 제어를 CGI (420)에 전달하고, CGI (420)은 웹 브라우저 (212)에서 데이터를 수신한다. 이러한 구체적인 예에 대해, CGI (420)은 표준 입력 프로토콜 "stdin"을 통해 "포스트(post)" 포맷으로 데이터 스트림을 수신한다. 포스트 포맷은 당업자에게 잘 알려진 데이터 포맷 내용이다. stdin은 포스트 데이터를 판독하는 파일 디스크립터(descriptor)이다. 비록 본 발명의 현재 기술하고 있는 바람직한 실시예는 포스트 데이터 포맷 설명을 사용하고 있지만, 웹 브라우저 (212) 및 웹 서버 애플리케이션 (222)에 의해 사용될 수 있는 다른 모든 데이터 포맷이 본 발명의 범위 내에 속하는 것으로 간주된다. 상기 예에 대해 웹 브라우저 (212) 또는 CGI (420)에서 전송되는 임대 예약 형태에 관한 포스트 데이터가 도 9에 도시되어 있다.
일단 CGI (420)이 웹 브라우저 (212)에서 포스트 데이터를 수신하면, 데이터를 파싱하고 워크플로우 변수를 찾는다. 상기 예에서, 워크플로우 변수는 접두사 wf를 갖는다. 2개의 숨어 있는 워크플로우 변수는 "wf-cgi-submit=2"와"wf-cgi-html=\exm\smp\exmp5srk.html"이다. 상기 워크플로우 변수 중에서 첫 번째인 "wf-cgi-submit=2"는 플로우마크 프로세스 예를 작성하여 개시할 필요가 있다는 것을 CGI (420)에 알려준다. 2개의 숨어 있지 않은 워크플로우 변수는 "wf-fmig-key"와 "wf-api-oroc-template=WWW.Reservation.Request"이다. 이들 변수는 어느 프로세스 템플릿이 작성되고, 개시되어야 하는지를 나타낸다. 다수의 애플리케이션에서 데이터를 검색하기 위해 하나의 HTML 템플릿 내의 다수의 변수가 사용될 수 있다. 그 후, CGI (420)은 포스트 데이터 및 환경 데이터를 그들의 제어 정보와 함께 FMIG (430)으로 전송한다. 환경 데이터는 표준 프로그래밍 기술을 통해 이용 가능한데, 이러한 표준 프로그래밍 기술은 당업자에게 잘 알려져 있는 것으로 표준 "C" 프로그래밍 언어 파라미터로서 CGI (420)에 전달될 수 있다.
FMIG (430)은 CGI (420)으로부터의 요구를 통신하기 위해 플로우마크 APIs (436)을 사용하여 CGI (420)과 플로우마크 애플리케이션 (342) 사이의 정보 흐름을 지시한다. 이들 플로우마크 APIs는 플로우마크 결과를 운반하는 표준 APIs로서, 본 발명을 적합하도록 변경될 필요가 있다. 이것은 비록 새로운 웹 인터페이스가 제공되고 있는 중에도, 플로우마크 애플리케이션 (342)에 대한 고유 명령 인터페이스가 변경되지 않고 유지되기 때문에 중요하다. FMIG (430)과 플로우마크 애플리케이션 (342) 사이의 명령 인터페이스는 한쪽 방향이지만(즉, FMIG (430)은 항상 플로우마크 APIs (436)을 호출하지만), 데이터 및 상태 정보는 양방향으로 전달된다는점에 유의하여야 한다.
CGI (420)에서 데이터를 수신한 후, FMIG (430)은 그 데이터를 파싱하고, wf-fmig-key 변수에서 사용자 ID 및 키의 위치를 결정하여 대응하는 플로우마크 사용자 ID 및 플로우마크 애플리케이션 (342)에 대한 사용자 액세스를 제공하는 다른 플로우마크 액세스 정보가 있는지의 여부를 결정한다. 사용자 ID 및 키가 대응하는 플로우마크 액세스 정보를 갖는다고 가정하면, FMIG (430)은 이 액세스 정보를 사용하여 플로우마크 애플리케이션 (342) 내로 로그한다. FMIG (430)은 플로우마크 APIs (436) 중의 하나를 호출하여 사용자에 의해 제공된 요구를 프로세스하기 위해 필요한 프로세스의 예를 작성한다. 상기 예에서, 요구는 "www_Reservation_Request"라고 하는 프로세스의 예를 작성한다. 이러한 프로세스의 예는 특별히 WWW 렌터카 트랜잭션을 취급하도록 설계되었다. 따라서, 상이한 플로우마크 APIs (436)을 사용하여, FMIG (430)은 이러한 프로세스의 예를 호출 또는 개시한다. FMIG (430)도 "wf-cgi-html"에 대한 적절한 HTML 변수 정보를 저장하는데, 이러한 변수는 워크플로우 시퀀스가 종료된 후 어느 HTML을 실행해야 하는지를 FMIG (430)에 알려준다. 플로우마크 프로세스 www_Reservation_Request에 대한 프리픽스(prefix)는 이러한 프로세스가 웹 상에서 인에이블된 것임을 FMIG (430)에 알려주는데, 이것은 액티비티 프로그램 (432)가 FMIG (430)과 통신하기 위해 WWW APIs (434)를 사용한다는 것을 의미한다. FMIG (430)이 프로세스의 예가 그 프로세스의 예를 요구한 웹 브라우저와 일치시킬 수 있다는 것을 보장하기 위해, FMIG (430)은 웹 클라이언트에 대한 "핸들(handle)"을 발생하여 저장한다. 프로세스에 따라, 핸들은 웹 클라이언트에 대한 프로세스의 예에 대한 이름, 액티비티의 예에 대한 이름, 및 보안 데이터를 조합한 것이다. 이러한 핸들은 웹 클라이언트에 대한 고유 식별자이다. 그 후, FMIG (430)은 핸들, 프로세스의 예, 사용자 ID 등을 자신의 내부 데이터 캐쉬에 입력한다. FMIG (430)은 접속될 WWW APIs (334)를 기다린다. 이 시점에서, CGI (420)은 접속 (316)을 통해 FMIG (430)에 계속 접속되어 있고, 사용자의 렌터카 요구가 만족되도록 요구받은 상태 또는 데이터가 FMIG (430)에서 수신되기를 기다린다.
렌터카 예약 프로세스 모델이 처음 구축될 때, 첫 번째 액티비티 프로그램 (432)는 플로우마크 렌터카 예약 프로세스 모델이 호출될 때마다 식별되어 자동적으로 실행되도록 설계되었다. 이것은 FMIG (430)이 렌터카 예약 프로세스 모델의 플로우마크 예를 작성하여 개시할 때마다, 첫 번째 렌터카 예약 플로우마크 액티비티 프로그램 (342)가 플로우마크 애플리케이션 (342)에 의해 자동적으로 개시되는 것을 의미한다. 이러한 구체적인 예에서는 렌터카 요구를 함께 프로세스하기 위해 작업하는 다수의 관련 액티비티 프로그램 (432)가 있다. 플로우마크 워크플로우 프로세스 언어는 렌터카 및 예약 프로세스를 모델화하여 적절한 장소에서 트랜잭션을 자동화한다. 렌터카 요구를 프로세스하기 위해, 플로우마크 애플리케이션 (342)는 플로우마크 데이터베이스 (438)에 렌터카 예약 프로세스 모델의 예를 만든 후, 프로그램 실행 클라이언트(Program Execution Client: PEC)가 액티브 상태인지의 여부를 알아 보기 위해 검사한다. PEC는 플로우마크 애플리케이션 (342) 내의 액티비티 동작 및 흐름을 조정하는 감독 프로그램 모듈이다. 일단 PEC가 액티브 상태로 되면, 플로우마크 애플리케이션 (342)는 PEC에 대한 액티비티를 디스팻치(dispatch)하고 플로우마크 데이터베이스 (438)을 갱신하여 액티비티가 실행 중임을 나타낸다. 그 후, PEC는 프로세스의 첫 번째 액티비티에 등록되었던 액티비티 프로그램 (432)를 개시한다. 그 후, 선택된 액티비티 프로그램 (432)는 실행을 개시한다. 웹 클라이언트의 렌터카 요구를 프로세스할 필요가 있는 액티비티 프로그램 (432)의 갯수 및 성질은 프로세스 모델 (440)이 어떻게 설계되었는지에 의존한다. 예를 들면, 일부 프로세스 모델 (440)은 액티비티를 사람이 전혀 간섭하지 않고도 완료될 때까지 실행하는 완전 자동 프로세스로서 모델화할 수 있다. 또 다른 방법으로, 프로세스 모델 (440)은 모델 프로세스를 끝내기 전에 매우 많은 사람들의 입력 및 간섭을 필요로 하는 경우도 있다. 설계와는 무관하게, 각 워크플로우 프로세스 모델 (440)은 지정된 타스크를 실행하거나, 또는 모델화된 프로세스 또는 프로시저를 완료하도록 지정된 타스크를 실행할 필요가 있는 특정 액티비티 프로그램 (432)를 개시한다.
각각의 개별 액티비티 프로그램 (432)는 특정 타스크를 실행하거나 또는 요구받은 정보의 일부를 복귀시킨 후 종료하도록 설계된 별도의 소프트웨어 모듈이다. WWW APIs (434)는 플로우마크 액티비티 프로그램 (432)가 WWW 상의 데이터 및 상태를 웹 클라이언트에 양방향으로 송수신하게 한다. WWW APIs (434)는 액티비티 프로그램 (432)에 의해 항상 호출되지만, 데이터 및 상태 정보는 FMIG (430)과 액티비티 프로그램 (432) 사이에서 양방향으로 통신된다.
상기 예의 렌터카 요구를 프로세스하기 위해, 다수의 관련된 액티비티 프로그램 (432)는 프로세스 모델 (440)에서 지정된 워크플로우 프로세스를 완료하도록 호출될 수 있다. 예를 들면, 하나의 액티비티 프로그램은 플로우마크 데이터베이스(438)에게 질문하여 렌터카를 요구하는 사람이 렌터카 사업자의 기존의 고객인지의 여부를 결정하기 위해 개시될 수 있다. 기존의 고객이면, 고객 식별 번호는 플로우마크 데이터베이스 (438) 내의 기존 항목 번호와 일치시키고, 액티비티 프로그램 (432)는 계속 진행하여 렌터카 요구를 프로세스할 수 있다. 그러나, 렌터카를 요구하는 사람이 기존의 고객이 아니면, 상이한 액티비티 프로그램 (432)가 개시되어 웹 클라이언트와 통신하고 필요한 정보를 수집하며 웹 클라이언트의 고객 정보를 플로우마크 데이터베이스 (438)에 입력할 수 있다.
다음에, 일단 고객 신원 확인이 유효하게 이루어지면, 요구가 고객의 요구에 따라 충족될 수 있는지의 여부를 결정하는 또 다른 액티비티 프로그램 (432)가 개시될 수 있다. 이것은 도 23의 프로세스 단계 (2020)에 포함된다. 예를 들면, 차량이 요구된 날짜에, 요구된 도시에서, 요구된 크기 등에 맞게 이용 가능한가에 관한 것을 포함한다. 또 다른 방법으로, 플로우마크 프로세스 모델은 렌터카 요구가 또 다른 프로세스를 위해 사업자에게 라우트(route)되어야 한다는 하는 것을 지정할 수 있다. 이 경우, 렌터카 요구가 사업자의 플로우마크 타스크 리스트 상에 보여질 수 있다. 또 다른 방법으로, 전체 프로세스는 완전히 자동화될 수 있다. 어느 경우에도, 렌터카 사업자 또는 액티비티 프로그램 (432)는 웹 클라이언트의 렌터카 요구를 프로세스하고, 원하는 차량이 이용 가능한 경우, 플로우마크 데이터베이스 (438)은 차량이 "예약"되었음을 표시하도록 갱신된다. 이들 액티비티는 도 20의 프로세스 단계 (2030)에서 실행된다. 그러나, 만일 원하는 차량이 이용 가능하지 않은 경우에는, 새로운 액티비티 프로그램 (432)가 개시되어 다른 장소에 있는 차량을 찾게 되며(도 20의 프로세스 단계 (2040)), 원하는 자동차를 또 다른 장소에서 원하는 장소로 옮기도록 렌터카 사업자로부터 요구를 작성한다(도 20의 프로세스 단계 (2050)). 이들 액티비티 프로그램 (432)의 일부는 이하에서 더욱 상세히 설명된다.
상기 예에서, 일단 렌터카 사업자가 요구를 승인하여 차량을 원하는 장소로 옮기면, 렌터카 사업자는 플로우마크 애플리케이션 (342)에 입력을 제공하고 액티비티 프로그램 (432)를 갱신한다. 일단 렌터카가 시스템에 예약되어 있으면, 상이한 액티비티 프로그램 (432)가 개시되어 고객에게 확인 번호가 발생되어, 고객과의 확인 트랜잭션을 프로세스할 수 있다. 각 액티비티 프로그램 (432)는 끝까지 실행한 후 종료하는 독립된 프로세스가 되도록 설계된다.
이 시점에서, 액티비티 프로그램 (432)는 플로우마크 APIs (436)을 사용하여 플로우마크 입력 데이터 컨테이너로부터 모든 입력 데이터를 검색한다. 플로우마크 데이터 컨테이너는 플로우마크 프로세스 모델 (440)이 구축될 때 정의되는 플로우마크 함수이다. 플로우마크 데이터 컨테이너는 플로우마크 APIs (436)을 통해 액세스가 가능하고, 프로세스 모델 (440) 내에서 상태 및 정보를 저장하고 이들을 상기 프로세스 모델 (440) 내의 하나의 액티비티 프로그램 (432)에서 그 다음 액티비티 프로그램 (432)로 전달하기 위한 저장 위치로 사용된다. 그 후, 액티비티 프로그램 (432)는 접속부 (428)을 통해 WWW APIs (434)에 대한 OPEN 을 발행함으로써 웹 클라이언트와의 대화를 연다. 액티비티 프로그램 (432)는 또한 실행될 프로세스의 예, 액티비티 이름, 및 플로우마크 사용자 ID와 같은 정보를 포함한다. 이러한 정보는 WWW APIs (434)에 의해 FMIG (430)으로 전달된다. FMIG (430)은 내부 데이터 캐쉬 내에 요구받은 프로세스의 예에 대한 이름을 위치시킴으로써 OPEN APIs를 적절한 웹 클라이어트와 일치시킨다. 그 후, FMIG (430)은 이 트랜잭션에 대한 "대화 식별자(conversation identifier)"를 생성한다. FMIG (430)은 자신의 내부 캐쉬에 대화 식별자를 저장하고, WWW APIs (434)에 그 대화 식별자를 응답 메시지의 일부로 전달한다. WWW APIs (434)는 FMIG (430)에서 분리(detach)되고, 대화 식별자를 액티비티 프로그램 (432)로 복귀시킨다.
이 시점에서부터, 대화 식별자는 웹 클라이어트의 요구를 프로세스하는데 필요한 모든 액티비티 프로그램 (432)와 웹 클라이언트 사이의 모든 WWW API (434) 제공 내용 상에 포함된다. 대화 식별자는 대화가 액티비티 프로그램 (432)에 의해 발행된 CLOSE API에 의해 종료될 때가지 유효하게 남아있다.
FMIG (430)으로부터 대화 식별자를 수신한 후, 액티비티 프로그램 (432)는 WWW API (434)에 RECEIVE 를 발행한다. RECEIVE API는 웹 클라이언트로부터 데이터를 얻기 위한 FMIG (430)에 대한 요구이다. 이 경우, FMIG (430)은 액티비티 프로그램 (432)로 제공되기를 기다리는 웹 클라이언트로부터의 데이터를 갖는다. 이것은 CGI (420)이 프로세스의 초기에 FMIG (430)으로 전송한 웹 클라이언트 데이터와 동일하다. FMIG (430)은 RECEIVE WWW API (434)에 포스트 데이터 및 환경 데이터를 전송하고, 이 RECEIVE WWW API (434)는 데이터를 액티비티 프로그램 (432)로 중계(relay)한다. 액티비티 프로그램 (432)는 데이터를 프로세스하여 요구를 만족시키기 위한 적절한 단계를 취한다.
이 시점의 프로세스에서, 액티비티 프로그램 (432)는 또한 WWW API (434)에 SEND를 발행할 것이고, 이 API는 예약 확인 HTML 화면을 클라이언트 워크스테이션 (210)에 있는 웹 클라이언트에게 전송한다. SEND API는 FMIG (430)에 전송 요구를 발생시키고, 예약 확인 화면을 렌더링하는데 필요한 HTML 데이터를 전송한다. FMIG (430)은 포함된 대화 식별자를 웹 클라이언트 핸들(내부 데이터 캐쉬에 함께 저장되어 있음)과 일치시키고, HTML 데이터를 그 데이터 형태 및 핸들과 함께 액티비티 프로그램 (432)에서 입력을 기다리는 FMIG (430)에 계속 부착되어 있는 CGI (420)으로 전달한다. 액티비티 프로그램 (432)가 "HTML 템플릿"이라는 데이터 형태를 발행하여, CGI (420)은 원래의 HTML 템플릿을 파싱하고, 적절한 HTML 치환 변수를 액티비티 프로그램 (432)에 의해 전송되는 HTML 데이터로 치환할 수 있다. 또 다른 방법으로, 액티비티 프로그램 (432)는 MIME, URL 또는 HTML 템플릿 데이터를 CGI (420)에 전송할 수 있다. 이 시점에서, CGI (420)은 FMIG (430)에서 분리되고, 수신된 데이터의 프로세스를 개시한다. 그 후, FMIG (430)은 응담 메시지 내의 OK 복귀 코드를 갖는 WWW APIs (434)에 응답한다. WWW APIs (434)도 또한 FMIG (430)에서 분리되고, 액티비티 프로그램 (432)에 복귀 코드를 발생시킨다. 일반적으로, WWW APIs (434)는 각 WWW APIs (434)가 호출된 후 FMIG (430)에서 분리된다.
예약 확인 템플릿에 대한 HTML 코드의 예가 도 10에 도시되어 있다. 변수 wf-act-outmsg가 웹 브라우저 (212)에 의해 표시되는 HTML 화면 내의 확인 번호로 치환될 치환 변수라는 점에 유의하여야 한다. CGI (420)이 FMIG (430)에서 수신된 데이터를 프로세스한 후의 HTML 코드가 도 11에 도시되어 있다. 도 11에 도시한 HTML 코드는 웹 서버 애플리케이션 (222)가 렌더링하고, 웹 브라우저 (212)가 클라이언트 워크스테이션 (210) 상에 표시하는 코드이다. 도 11의 HTML 코드는 고객의 예약 번호를 포함한다는 점에 유의하여야 한다. 이 때, CGI (420) 및 웹 클라이언트는 이미 서로 대화를 이루었으며, 또한 CGI (420)은 자신이 호출되었던 처음 시간부터 여전히 액티브 상태이므로, 웹 클라이언트를 인증할 필요가 없다. CGI (420)은 숨어 있는 변수인 "wf-fmig-handle"을 확인 번호와 함께 삽입하고, 또한 wf-fmig-key를 첫 번째 HTML 화면으로부터 HTML 코드로 삽입하고, 이렇게 하면, 이어지는 후속 HTML 페이지들은 그 페이지가 플로우마크 (450)에 액세스하도록하는 권한 부여를 포함한(embedded) 데이터를 갖는 것이 가능하도록 해준다. 상기 예에서 설명되는 HTML 변수를 치환하는 것은 JAVAScript 변수의 치환/복제(substitution/replication) 및 JAVAScript 템플릿의 파싱/삽입을 포함하도록 확장될 수 있다. 본 발명은 HTML 변수 치환에 제한되는 것은 아니다.
예약 확인 템플릿의 프로세스 도중, 액티비티 프로그램 (432)는 WWW APIs (434)에 RECEIVE APIs를 발행하는데, 상기 WWW APIs (434)는 고객이 확인 번호를 수신하여 보았다는 것을 보장하기 위한 액티비티 프로그램 (432)에 대한 확인 메시지의 기능을 한다. 그 후, 웹 클라이언트는 자신들의 확인 번호를 수신하여 기록한 경우, "제공" 버튼을 클릭한다. 이러한 데이터는 웹 브라우저 (212)에 의해 계속 유지되어 왔던 사용자 ID 및 패스워드와 함께 웹 서버 애플리케이션 (222)로 종전과 같이 전달된다. 웹 서버 애플리케이션 (222)는 상기 정보를 사용하여 CGI (420)에 대한 웹 클라이언트를 다시 한번 인증한다. 웹 서버 애플리케이션 (222)는 CGI (420)을 종전과 마찬가지로 동일한 HTML 코드인 <FORM ACTION="/cgi-prot/exm5cgi.exe"METHOD="POST">로 호출한다. CGI (420)은 웹 브라우저 (212)로부터 포스트 데이터를 수신한다. 상기 예에서, 웹 브라우저 (212)는 데이터를 "form-urlencoded media type"으로 포맷한다. 상기 데이터는 도 12에 도시한 것과 유사하다. 13이라는 값을 갖는 wf-cgi-submit 값은 데이터를 액티비티 프로그램으로 전달하도록 하기 위한 명령이다. FMIG (430)은 wf-fmig-key를 검색하고, 포스트 데이터로부터 키를 검사하고 환경 데이터로부터 웹 사용자 ID를 검사하여 웹 클라이언트가 확실히 인증되도록 해준다. FMIG (430)은 wf-fmig-handle을 내부 데이터 캐쉬에서의 대화 식별자와 일치시키고, WWW API (434)가 접속되었는지의 여부를 알아보기 위해 검사한다. WWW API (434)가 아직 접속되지 않은 경우, FMIG (430)은 단순히 기다린다. CGI (420)은 FMIG (430)에 계속 접속 상태를 유지한 채 응답을 기다린다. 일단 RECEIVE WWW API (434)가 FMIG (430)에 접속되면, FMIG (430)은 대화 식별자를 사용하여 RECEIVE API를 적절한 웹 클라이언트와 일치시키고, 포스트 데이터 및 환경 데이터를 WWW API (434)로 전달하는데, 이 WWW API (434)는 상기 데이터를 액티비티 프로그램 (432)로 전달한다. 액티비티 프로그램 (432)는 데이터를 프로세스하고, CLOSE WWW API를 사용하여 대화를 끝낸다. CLOSE API는 대화 식별자, 프로세스 예의 이름, 및 기타 다른 관련 데이타와 함께 FMIG (430)으로 전송된다. FMIG (430)은 종료 요구(close request)를 프로세스하고, 응답 메시지를 WWW API (434)로 전송하는데, 이 WWW API (434)는 대화가 종료되었다는 것을 검증하기 위해 액티비티 프로그램 (432)에 복귀 코드를 발생시킨다.
그 후, FMIG (430)은 내부 데이터 캐쉬로부터 저장된 변수값을 검색하고 그 데이터를 CGI (420)으로 전송한다. CGI (420)은 상기 데이터 및 변수를 수신하고, FMIG (430)에서 분리된다. 그 후, CGI (420)은 웹 서버 애플리케이션 (222)와 접속하고, 변수 및 데이터를 전송하며, 웹 서버 애플리케이션으로 하여금 특정 HTML을 웹 브라우저 (212)로 렌더링하도록 지시한다.
이 시점에서, 렌터카 요구와 관련된 사용자와의 대화가 종료된다. 그러나, 다른 액티비티 프로그램 (432)가 존재하는데, 이러한 다른 액티비티 프로그램 (432)는 그 동안 종료되었던 프로그램일 수 있다. 또한, 다른 프로세스도 종료될 필요가 있을 수 있음은 물론 다른 액티비티 프로그램 (432)도 이들 프로세스가 실행되도록 액티베이트될 수 있다. 상기 예에서, 하나의 액티비티 프로그램 (432)는 사용자와 대화하였으며, 사용자로부터 모아진 데이터를 플로우마크 데이터 컨테이너로 전달하였다. 플로우마크 데이터 컨테이너 내의 데이터는 이제 플로우마크 프로세스 모델 (440)의 또 다른 액티프로그램 (432)에 대한 입력이 된다. 나머지 다른 액티비티 프로그램 (432)의 일부는 이하에서 기술된다.
일단 액티비티 프로그램 (432) 중 어느 것이라도 동작이 끝나면, PEC로 제어가 다시 전달된다. PEC는 플로우마크로 복귀하고, 플로우마크 데이터베이스 (438)은 하나의 액티비티 프로그램 (432)가 완료되고, 프로세스를 완료할 다음번 액티비티 프로그램 (432)가 개시될 수 있다는 것을 나타내도록 갱신된다. 다음 액티비티 프로그램 (432)가 자동 실행 액티비티 프로그램 (432)이면, 플로우마크 (432)는 플로우마크 데이터베이스 (438)에 액티비티의 예를 작성하고, PEC가 액티브 상태인지의 여부를 알아보기 위해 검사하며, PEC에 액티비티를 디스패치하고, 플로우마크 데이터베이스 (438)을 갱신하여 액티비티가 실행 중임을 표시한다. PEC는 다음번에 실행될 액티비티로 등록되어 있는 액티비티를 개시하고, 적절한 액티비티 프로그램 (432)는 완료를 실행한다.
상술한 바와 같이, 렌터카 요구를 프로세스하는데 필요한 액티비티 중 일부는 사람과의 대화 또는 사람의 개입이 필요하도록 모델화될 수 있다. 예를 들면, 필요한 경우, 렌터카 사업자는 차량에 대한 예약 요구를 검증하도록 요구될 수 있다. 또 다른 방법으로, 요구된 렌터카가 요구된 위치에서 이용 불가능하여, 사업자가 다른 장소로부터 적절한 차량을 옮기도록 접촉할 수 있는 경우가 있다. 차량에 대한 웹 클라이언트의 요구에는 렌터카 사업자가 요구된 날짜에 도착 도시에서 이용 가능한 요구된 차량을 갖는 경우와 그렇지 않은 경우의 2가지 결과가 가능하다. 플로우마크 데이터베이스에 대한 질문(query)의 이용 가능성을 검사한 후, 알맞은 액티비티 프로그램이 개시된다.
상기 예에서, 액티비티 프로그램 (432)는 플로우마크 사용자의 작업 리스트의 항목을 발생시키고, 플로우마크 사용자(상기 경우에는, 렌터카 사업자)는 액티비티를 수동(manually)으로 개시해야 한다. 렌터카 사업자는 웹 브라우저 (212)를 사용하여 그들의 플로우마크 실행 시간(runtime) 클라이언트 웹 페이지에 액세스한다. 렌터카 사업자에게 적절한 웹 페이지를 발생하는데 필요한 HTML 코드는 도 13에 도시한 코드와 유사하다. 렌터카 사업자는 자신의 키를 입력하고, "Work with Work Items"를 선택하며, 제공 버튼을 클릭한다. 이러한 무선 버튼은 특정 HTML 템플릿인 exmp5ewi.htm과 관련되는데, 그 이유는 도 13의 HTML 라인 때문인데, 이 라인은 <INPUTTYPE="radio"NAME="wf-cgi-html"VALUE="/exm/html/exmp5ewi.htm"CHECKED>로 읽혀진다.
상술한 바와 같이, 다시 한 번 웹 서버 애플리케이션은 웹 브라우저 (212)로부터 발생되는 포스트 데이터 스트림을 수신한다. CGI (420)이 보호되기 때문에, 또 다른 REALM 요구가 발행되어 답신을 받아야 한다. 이전과 마찬가지로, REALM 요구는 렌터카 사업자에게 패스워드 및 사용자 ID를 입력하도록 요구한다. 장래에 구현될 일부 웹 브라우저 (212)는 대부분 인증 데이터의 일부 형태를 웹 서버 애플리케이션 (222)에 전송된 데이터 스트림 내로 삽입하도록 웹 브라우저 (212)에 대한 메카니즘을 제공할 가능성이 높다는 점에 유의하여야 한다. 인증 데이터를 모아 웹 브라우저 (212)에서 웹 서버 애플리캐이션 (222)로 전송하기 위한 모든 방법 및 기술들은 본 발명의 범위에 속한다. 일반적으로, 각 웹 실행 시간 클라이언트는 웹에 대한 자신들의 사용자 ID 및 패스워드를 반드시 알아야 한다. 어느 경우라도, 웹브라우저 (212)는 웹 사용자 ID 및 패스워드를 저장하고, 그 정보를 웹 서버 애플리케이션 (222)에 전송한다. 이전과 마찬가지로, 웹 서버 애플리케이션 (222)는 웹 사용자 ID 및 패스워드를 사용하여 웹 클라이언트를 인증하고, CGI (420)에 대한 액세스를 얻는다. 렌터카 사업자가 인증을 마친 후에는, CGI (420)은 상기 예인 다음의 HTML 언어, 즉 <FORM ACTION="/cgi-prot/exmp5cgi.exe"METHOD="POST">를 통해 호출된다. CGI (420)은 stdin을 통해 웹 서버 애플리케이션 (222)로부터 포스트 데이터 스트림을 수신한다. 데이터 스트림은 통상적으로 도 14에 도시한 예와 같다.
데이터 스트림 내의 제공값(submit value)이 영(0)이므로, CGI (420)은 특정 탬플릿(exmp5ewi.htm)을 검색하고, 그 탬플릿을 HTML 변수용으로 파싱하며, 파싱된 변수를 환경 데이터 및 제어 정보와 함께 FMIG (430)으로 전달한다. CGI (420)이 프로세싱을 개시하기 전의 탬플릿을 발생하는데 사용되는 HTML 코드의 예는 도 15와 유사하다.
FMIG (430)은 데이터 스트림으로부터 렌터카 사업자의 키 값(webfmagent) 및 웹 사용자 ID를 검색하고, 그 검색된 정보를 렌터카 사업자가 사용 허락을 받았다는 플로우마크 데이터베이스 (438) 내의 플로우마크 사용자 ID를 발견하는데 사용한다. 한다. 렌터카 사업자는 아직 플로우마크 (450)로 로그되어 있지 않기 때문에 FMIG (430)은 플로우마크 데이터베이스 (438) 내의 연관된 플로우마크 정보를 사용하여 플로우마크로 로그한다. FMIG (430)은 플로우마크 APIs (436)을 사용하여 이전에 사용자가 사용했던 입력(즉, wf-api-item-id, wf-api-item-descrip, wf-api-item-state 등)이였던 렌터카 요구와 관련되는 정보를 검색하고, 그 데이터를 아직도 접속되어 FMIG (430)으로부터 데이터를 기다리고 있는 CGI (420)에 대한 메시지로 포맷한다. 상기 데이터는 FMIG (430)을 통해 CGI (420)으로 전달된다. 일단, 데이터가 CGI (420)으로 전송되면, CGI (420)은 FMIG (430)과 접속이 해제되고 검색된 데이터를 프로세스하기 개시하여, 클라이언트 워크스테이션 (210) 상에 표시될 적절한 탬플릿으로 정보를 삽입한다. CGI (420)이 탬플릿 프로세스를 완료한 후의 HTML 코드의 예가 도 16에 도시되어 있다. 도 16에 도시된 HTML 코드는 클라이언트 워크스테이션 (210) 상의 렌터카 사업자에 대한 워크 리스트 상에 있는 워크 항목 출력 화면을 렌더링하는데 사용된다. 렌터카 사업자는 플로우마크 (450)에 의해 발생되어 웹 브라우저 (210)에 의해 표시되는 워크 항목 리스트를 보게 된다. 렌터카 사업자는 표시된 워크 항목 중의 하나를 선택하고, "워크 항목 개시" 버튼을 클릭한 후 "동작 수행" 버튼을 클릭한다. 렌터카 사업자에 의한 이러한 동작은 웹 사용자 ID 및 패스워드 정보를 포함하는 웹 서버 애플리케이션 (222)에 대한 데이터 스트림을 발생시킨다. 웹 사용자 ID 및 패스워드는 웹 서버 애플리케이션 (222)에 의해 계속 유지되었으며, 렌터카 사업자는 이러한 정보를 다시 기입(enter)할 필요가 없다. 웹 서버 애플리케이션 (222)는 저장된 사용자 ID 및 패스워드를 사용하여 렌터카 사업자를 인증하고 CGI (420)에 대한 액세스를 획득한다. 웹서버 애플리케이션 (222)는 이전에 사용되었던 코드와 유사한 코드인 <FORM ACTION="/cgi-prot/exmp5cgi.exe"METHOD="POST">로 CGI (420)을 호출하고, CGI (420)은 웹 브라우저 (212)로부터 포스트 데이터를 수신한다. 포스트 데이터는 stdin을 통해 CGI (420) 수신되고, 도 17에 도시된 것과 유사하다.
상기의 경우, 렌터카 사업자가 워크 항목을 개시하기 위한 요구를 제공하였으므로, CGI (420)은 특정 탬플릿(상기의 경우 exmp5ewi.htm)을 검색하고, 그 탬플릿을 HTML 변수용으로 파싱하며, 이들 변수를 데이터 스트림, 환경 데이터, 및 제어 정보와 함께 FMIG (430)으로 전달한다. 이 시점에서 제어가 FMIG (430)에 전달되는 동안, CGI (420)은 FMIG (430)에 접속된 채로 남아 있으며 FMIG (430)으로부터 복귀될 데이터를 기다린다. FMIG (430)은 CGI (420)에 의해 전송된 변수를 사용하여 렌터카 사업자를 인증한다. 렌터카 사업자는 이미 플로우마크 API (450) 상으로 로그되어 있으므로, FMIG (430)은 렌터카 사업자를 다시 로그온할 필요가 없다. FMIG (430)은 데이터 스트림을 파싱하고, 워크 항목(wf-api-item)을 개시하도록 하는 요구를 찾아 내어, 플로우마크 API (436)을 발행하여 워크 항목의 프로세스를 개시한다. 워크 항목이 HTML 변수를 갖는 WWW 컨텍스트(context) 내에 전송되었으므로, FMIG (430)은 액티비티 프로그램이 WWW APIs (434)를 사용하여 웹 클라이언트와 대화를 갖는다는 것을 알게 된다. FMIG (430)은 상기 웹 클라이언트에 대한 핸 등을 발생시키고, 상기 핸들, 프로세스의 예에 대한 이름, 액티비티이름, 사용자 ID 등을 내부 캐쉬에 기입한다. FMIG (430)은 또한 HTML 변수 정보를 저장하여 대화가 일어날 경우 FMIG (430)이 나중에 복구될 수 있다. 그 후, FMIG (430)은 접속될 WWW APIs (434)을 기다린다.
요구받은 워크 항목(wf-api-item)을 개시하는 플로우마크 API (436)에 응답하여, 플로우마크는 플로우마크 데이터베이스 (438) 내에 액티비티의 예를 작성하고, PEC가 액티브 상태인지의 여부를 알아 내기 위해 검사하며, 액티비티를 PEC에 디스패치한 후, 플로우마크 데이터베이스 (438)을 갱신하여 액티비티가 실행 중이라는 것을 표시한다. PEC는 상기 프로세스에서 다음번 액티비티로 등록되었던 액티비티 프로그램 (432)를 개시한다. 그 후 액티비티 프로그램은 종료시까지 실행된다.
액티비티 프로그램 (432)는 플로우마크 APIs를 사용하여 플로우마크 입력 데이터 콘테이너로부터 모든 입력 데이터를 검색한다. 액티비티 프로그램은 WWW APIs (434)에 OPEN API를 발행함으로써 웹 클라이언트와의 대화를 오픈한다. OPEN API는 FMIG (430)에 대한 OPEN 요구 메시지를 발생시키고, 프로세스의 예, 액티비티 이름, 및 플로우마크 사용자 ID와 같은 정보를 포함한다. FMIG (430)은 이러한 정보를 취하여 내부 데이터 캐쉬 내의 적절한 프로세스의 예, 액티비티 이름, 및 사용자 ID를 찾아냄으로써 웹 클라이너트를 일치시킨다. 이전과 마찬가지로, FMIG (430)은 또한 대화 식별자를 발생시키고, 그 내부 캐쉬 내에서 식별자를 저장한다. FMIG (430)은 대화 식별자를 응답 메시지 내에 있는 WWW APIs (434)으로 전송하고, WWW APIs (434)는 FMIG (430)과 분리되며, 대화 식별자를 액티비티 프로그램 (432)로 복귀시킨다. 이 시점 이후로, 대화 식별자는 상기 웹클라이언트 및 프로세스의 예를 취급하는 모든 WWW APIs (434)의 제공 내용에 포함된다. 대화 식별자는 대화가 종료될 때까지 유효한 상태로 남아 있다. 액티비티 프로그램 (432)는 WWW APIs (434)에 대한 SEND API를 발행하여 웹 클라이언트에 대한 HTML 화면을 발생시킨다. 액티비티 프로그램 (432)는 데이터 형태를 HTML 탬플릿으로 특정하여, CGI (420)이 그 탬플릿을 파싱하고, 또한 변수를 액티비티 프로그램 (432)에 의해 전송된 데이터로 치환시키는 것을 알아낸다. 액티비티 프로그램 (432)는 탬플릿의 위치 및 각 변수로 치환될 텍스트를 특정한다.
SEND API는 FMIG (430)에 대한 전송 요구를 발생시키고, 데이터를 전송한다. FMIG (430)은 포함된 대화 식별자를 적절한 웹 클라이언트와 일치시키고, 액티비티 프로그램 (432)으로부터의 데이터, 아직도 부착되어 있는 CGI (420)에 대한 데이터 형태 및 핸들을 전송한다. 이 시점에서, CGI (420)은 FMIG (430)에서 분리되고, 수신된 데이터의 프로세스를 개시한다. FMIG (430)은 WWW APIs (434)에 응답하고, WWW APIs (434)는 또한 FMIG (430)에서 분리된다. WWW APIs (434)는 액티비티 프로그램 (432)에 복귀 코드를 전송한다. CGI (420)은 FMIG (430)에서 전송된 데이터를 사용하여 고객의 요구를 충족하여 이용이 가능한 차량에 대한 정보를포함하는 화면을 작성한다. 또한, CGI (420)은 웹 서버 애플리케이션과 통신하고 있으므로, CGI (420)은 숨겨져 있는 변수인 "wf-fmig-handle" 및 wf-fmig 키를 제 1 HTML 화면에서 새로운 화면에 대한 HTML 코드 내로 삽입시킨다. 그 후, CGI (420)은 탬플릿을 파싱하고, "wf-" 변수를 프로세스하여, 정보를 적절한 위치 내로 채워넣는다. 탬플릿 파일 내의 HTML 코드도 18에 도시된 HTML 코드와 유사하다. CGI (420)이 프로세스를 종료한 후에, 상기 파일 내의 HTML 코드는 도 19의 HTML 코드와 유사하다. 이것이 웹 서버 애플리케이션 (222)가 클라이언트 워크스테이션 (210) 상의 렌터카 사업자 화면을 렌더링하는데 사용되는 HTML 코드이다. 한편, 액티비티 프로그램 (432)는 RECEIVE WWW API (434)를 발행하여 웹클라이언트로부터 데이터를 수신한다. 렌터카 사업자는 렌터카 요구를 충족하기 위해 어느 차량이 예약되는지를 선택하고, "제공 프로세스" 버튼을 클릭한다. 상술한 바와 같이, 웹 브라우저 (212), 웹서버 애플리케이션 (222), CGI (420), FMIG (430), 및 플로우마크 (450) 사이의 통신 프로세스가 개시된다. 궁극적으로, 선택된 차량은 플로우마크 데이터베이스 내에서 갱신되고, 대화가 종료된다. 렌터카 예약 프로세스의 예가 현재 완료된 상태이므로, 플로우마크 (450)은 플로우마크 데이터베이스로부터 프로세스의 예를 제거한다.
유사한 이벤트가 계속 이어지면 요구받은 위치에서 이용 가능한 렌터카가 없는 상황이 나타난다. 이러한 경우에는 렌터카 사업자의 화면이 이용 가능한 차량에 대한 정보를 포함하고 있지 않다는 점이 유일한 차이인데, 요구받은 도시에서 요구 조건을 충족하는 차량에 대한 일치가 이루어지지 않기 때문이다. 화면은 또 다른 위치에서 고객의 요구에 맞는 차량을 이동시킬 선택권을 포함한다.
한편, 액티비티 프로그램 (432)는 DISCONNECT API를 발행하였다. DISCONNECT API는 FMIG (430)으로부터 접속 해제 요구 메시지를 발생시키고, 대화 식별자, 프로세스의 예, 액티비티 이름, 및 플로우마크 사용자 ID와 같은 정보를 포함한다. FMIG (430)은 이러한 정보를 취하여, 내부 캐쉬에 대응 엔트리의 위치를 결정하고, 액티비티 프로그램 (430)에 대한 "접속 해제" 상태와 함께 모든 정보를 기록한다. FMIG (430)은 OK 웅답 메시지를 WWW API (434)에 전송하는데, 이 WWW API (434)은 FMIG (430)으로부터 분리되어 액티비티 프로그램 (432)에 복귀 코드를 전송한다. 액티비티 프로그램 (432)는 복귀 코드를 검사하고, 접속 해제 API가 성공적으로 기록되었음을 확인한다. 액티비티 프로그램 (432)는 접속 해제된 프로세스를 나중에 복구하기 우해 로컬 데이터베이스 내의 대화 식별자 및 상태 정보를 저장한다. 상기 액티비티는 실제로는 종료함이 없이 가능한 한 오랫동안 진행되기 때문에, 제어가 PEC로 복귀한다. 상기 액티비티가 종료되지 않았으므로, PEC는 플로우마크 데이터베이스를 갱신하여 액티비티가 다시 개시될 준비가 되어있다는 것을 보여준다. 플로우마크가 관련되는 한, 상기 액티비티는 "수동 개시" 액티비티이다. 상기 액티비티가 준비되어 있고 또한 수동 개시에 해당하므로, FMIG (430)은 데이터가 렌터카 사업자로부터 이용 가능할 경우 상기 액티비티를 나중에 재개하기 위해 프롤우마크 API (430)을 발행할 수 있다. 렌터카 사업자는 자신들이 렌터카 요구를 충족시키기 위해 다른 위치로부터 차량을 이동하고 싶다는 것을 선택하고, "제공"을 클릭한다. 데이터 전송 프로세스 및 웹 크라이언트 인증은 앞에서와 마찬가지로 진행된다. 이 경우, FMIG (430)은 대화 식별자를 검사할 때, 액티비티 상태가 "접속 해제"되었다는 것을 알게 될 것이다. FMIG (430)은 프롤우마크 API (436)을 발행하여 액티비티 프로그램 (432)를 재개한다. 따라서, 액티비티 프로그램 (432)가 재개되고, 플로우마크 (450)은 프로세스의 예를 작성하고, 전과 같이 데이터베이스 (438)을 갱신한다. PEC는 액티비티 프로그램 (432)를 개시하고, 필요한 데이터는 FMIG (430)으로부터전송된다. 액티비티 프로그램 (432)는 이제 종료될 때까지 실행된다. 어느 렌터카가 어느 위치로부터 이동되어야 하는지를 결정하고, 유사한 통신 순서 또는 통신 시리즈(series)에 의해 이러한 데이터를 렌터카 사업자로부터 플로우마크 (45)로 전송하는 것이 가능하다.
본 발명의 컴퓨터 시스템과 방법은 월드 와이드 웹을 통해 웹 브라우저로부터 소프트웨어 애플리케이션에 대한 액세스를 제공한다.
본 발명은 바람직한 실시예를 참조하여 특별히 도시되고 기술되었지만, 본 발명 기술 분야의 당업자들은 본 발명의 정신 및 범위를 벗어남이 없이 본 발명의 형태 및 상세한 내용에 있어서 다양한 변경이 이루어질 수 있다는 점을 이해할 것이다.

Claims (27)

  1. 월드 와이드 웹(World Wide Web)을 통해 복수의 웹 브라우저와 소프트웨어 애플리케이션 사이에서 통신하기 위한 컴퓨터 시스템에 있어서,
    a) 적어도 하나의 중앙 처리 장치(Central Processing Unit: CPU);
    b) 중앙 처리 장치에 연결되는 메모리; 및
    c) 메모리 내에 상주(residing)하고 적어도 하나의 중앙 처리 장치에 의해 실행되는 트랜잭션 지원 메카니즘(transaction support mechanism)-여기서 트랜잭션 지원 메카니즘은 복수의 웹 브라우저와 양방향으로 데이터를 수신하거나 전송할 수 있고, 데이터를 식별하여 추적하기 위한 상기 식별자 메카니즘(identifier mechanism)을 사용하며, 상기 소프트웨어 애플리케이션에 대한 고유 인터페이스(native interface)와 통신함-을 포함하는 컴퓨터 시스템.
  2. 제 1항에 있어서,
    상기 트랜잭션 지원 메카니즘이 복수의 웹 브라우저 및 상기 소프트웨어 애플리케이션과 통신하는 애플리케이션 게이트웨이(application gateway)를 포함하고,
    상기 애플리케이션 게이트웨이는 메모리 내에 상주하고 상기 적어도 하나의 중앙 처리 장치(CPU)에 의해 실행되며, 또한 상기 식별자 메카니즘을 포함하고,
    상기 식별자 메카니즘은 상기 복수의 웹 브라우저 각각에 대한 식별자를 발생시키며, 소프트웨어 애플리케이션으로부터 상기 식별자에 대응하는 복수의 웹 브라우저 중 선택된 하나로 데이터를 라우팅(routing)하는
    컴퓨터 시스템.
  3. 제 2항에 있어서, 상기 애플리케이션 게이트웨이가 상기 복수의 웹 브라우저로부터 수신되는 데이터와 애플리케이션 프로그램으로부터 수신되는 데이터를 프로세스하는 컴퓨터 시스템.
  4. 제 2항에 있어서, 상기 소프트웨어 애플리케이션이 프로세스 엔지니어링 소프트웨어 애플리케이션(process engineering software application)인 컴퓨터 시스템.
  5. 제 2항에 있어서, 상기 소프트웨어 애플리케이션이 플로우마크 소프트웨어 애플리케이션인 컴퓨터 시스템.
  6. 제 2항에 있어서,
    상기 컴퓨터 프로그램은 상기 소프트웨어 애플리케이션의 지시에 따라 실행되는 적어도 하나의 액티비티 프로그램(activity program)과 통신하는 적어도 하나의 애플리케이션 프로그램 인터페이스(application program interface: API)를 포함하고,
    상기 적어도 하나의 애플리케이션 프로그램 인터페이스는 적어도 하나의 액티비티 프로그램과 애플리케이션 게이트웨이 사이에서 통신하는
    컴퓨터 시스템.
  7. 월드 와이드 웹(World Wide Web)을 통해 복수의 웹 브라우저와 소프트웨어 애플리케이션 사이에서 통신하기 위한 컴퓨터 시스템에 있어서,
    a) 복수의 중앙 처리 장치(CPUs);
    b) 상기 복수의 중앙 처리 장치에 연결되는 메모리;
    c) 메모리 내에 상주(residing)하고 중앙 처리 장치 중 적어도 하나에 의해 실행되는 복수의 웹 브라우저 중 각각의 웹 브라우저;
    d) 메모리 내에 상주(residing)하고 상기 중앙 처리 장치 중 적어도 하나에 의해 실행되며, 상기 복수의 웹 브라우저 중 적어도 하나와 통신하는 웹 서버 애플리케이션(web server application);
    e) 메모리 내에 상주(residing)하고 상기 중앙 처리 장치 중 적어도 하나에 의해 실행되는 상기 소프트웨어 애플리케이션(software application); 및
    f) 매모리 내에 상주(residing)하고 상기 복수의 중앙 처리 장치 중 적어도 하나에 의해 실행되고, 상기 웹 서버 애플리케이션 및 소프트웨어 애플리케이션과 통신하는 애플리케이션 게이트웨이(application gateway)-여기서 애플리케이션 게이트웨이는
    복수의 웹 브라우저 각각에 대한 식별자(identfier)를 발생시키고, 소프트웨어 애플리케이션으로부터 상기 식별자와 대응하는 복수의 웹 브라우저 중 선택된 하나에 데이터를 라우팅(routing)하는 식별자 메카니즘(identifier mechanism), 및
    복수의 웹 브라우저 중 적어도 하나의 브라우저에 의해서 요청되는 적어도 하나의 프로세스를 실행하는 중에 복수의 웹 브라우저와 대화하는 소프트웨어 애플리케이션에 의해 호출될 수 있는 월드 와이드 웹 애플리케이션 프로그램 인터페이스(world-wide web application program interface: WWW API)
    포함함-
    를 포함하는 컴퓨터 시스템.
  8. 제 7항에 있어서, 상기 애플리케이션 게이트웨이가 웹 서버 애플리케이션으로부터 수신되는 환경 데이터를 처리하고, 소프트웨어 애플리케이션 내에 상주하는 복수의 애플리케이션 프로그램 인터페이스(API) 중 적어도 하나로부터 수신되는 데이터 및/또는 소프트웨어 애플리케이션 내에 존재하는 복수의 실행 프로그램 중 적어도 하나로부터 수신되는 데이터를 처리하는 컴퓨터 시스템.
  9. 제 7항에 있어서, 상기 소프트웨어 애플리케이션이 프로세스 엔지니어링 소프트웨어 애플리케이션(process engineering software application)인 컴퓨터 시스템.
  10. 제 7항에 있어서, 상기 소프트웨어 애플리케이션이 플로우마크 소프트웨어 애플리케이션인 컴퓨터 시스템.
  11. 제 7항에 있어서,
    복수의 WWW API가
    a) 소프트웨어 애플리케이션과 복수의 웹 브라우저 중 적어도 하나의 브라우저 사이의 대화를 열어주는 오픈 API(open API);
    b) 소프트웨어 애플리케이션과 복수의 웹 브라우저 중 적어도 하나의 브라우저 사이의 대화를 닫아주는 클로즈 API(close API);
    c) 소프트웨어 애플리케이션에 존재하는 복수의 활성 프로그램 중 적어도 하나로부터 복수의 웹 브라우저 중 하나로 데이터를 보내는 전송 API; 및
    d) 소프트웨어 애플리케이션에 존재하는 복수의 활성 프로그램 중 적어도 하나의 요구에서 복수의 웹 브라우저 중 하나로부터 데이터를 획득하는 수신 API
    를 포함하는
    컴퓨터 시스템.
  12. 제 7항에 있어서,
    상기 웹 서버 애플리케이션은 상기 선택된 웹 브라우저가 웹 서버 애플리케이션에 액세스하도록 허락을 받았는지의 여부를 상기 복수의 웹 브라우저 중의 하나로부터 전달되는 인증 데이터(authentification data)로부터 결정하는 인증자(authenticator)를 포함하고,
    웹 서버는 복수의 웹 브라우저로부터 수신되는 데이터와 애플리케이션 게이트웨이로부터 수신되는 데이터를 프로세스하는
    컴퓨터 시스템.
  13. 제 7항에 있어서, 상기 웹 브라우저가 상기 복수의 중앙 처리 장치 중 적어도 하나에 의해 클라이언트 워크스테이션(client workstation) 상에서 실행되는 컴퓨터 시스템.
  14. 제 7항에 있어서, 상기 웹 서버 애플리케이션이 상기 복수의 중앙 처리 장치 중 적어도 하나에 의해 웹 서버 컴퓨터 상에서 실행되는 컴퓨터 시스템.
  15. 제 14항에 있어서, 상기 애플리케이션 게이트웨이가 상기 복수의 중앙 처리 장치 중 적어도 하나에 의해 웹 서버 컴퓨터 상에서 실행되는 컴퓨터 시스템.
  16. 제 7항에 있어서, 상기 애플리케이션 게이트웨이가 상기 복수의 중앙 처리 장치 중 적어도 하나에 의해 제 1 컴퓨터 상에서 실행되는 컴퓨터 시스템.
  17. 제 16항에 있어서, 상기 소프트웨어 애플리케이션이 상기 복수의 중앙 처리 장치 중 적어도 하나에 의해 제 2 컴퓨터 상에서 실행되는 컴퓨터 시스템.
  18. 제 17항에 있어서, 상기 애플리케이션 게이트웨이가 상기 복수의 중앙 처리 장치 중 적어도 하나에 의해 제 2 컴퓨터 상에서 실행되는 컴퓨터 시스템.
  19. 월드 와이드 웹(World Wide Web)을 통해 복수의 웹 브라우저와 소프트웨어 애플리케이션 사이에서 통신하기 위한 컴퓨터로 구현되는 방법(computer-implemented method)에 있어서,
    a) 복수의 중앙 처리 장치(CPUs)를 제공하는 단계;
    b) 상기 복수의 중앙 처리 장치에 연결되는 메모리를 제공하는 단계;
    c) 메모리 내에 상주(residing)하는 복수의 웹 브라우저 중 적어도 하나를 상기 중앙 처리 장치 중 적어도 하나에 의해 실행하는 단계;
    d) 메모리 내에 상주(residing)하고 상기 중앙 처리 장치 중 적어도 하나에 의해 실행되는 웹 서버 애플리케이션(web server application)을 제공하는 단계;
    e) 상기 복수의 중앙 처리 장치 중 적어도 하나에 의해 메모리 내에 상주(residing)하는 소프트웨어 애플리케이션(software application)이 실행되는 단계;
    f) 소프트웨어 애플리케이션과 대화하기 위해 복수의 월드-와이드-웹 애플리케이션을 갖고, 메모리 내에 상주(residing)하며 상기 복수의 중앙 처리 장치 중 적어도 하나에 의해 실행되는 애플리케이션 게이트웨이(application gateway)를 제공하는 단계;
    g) 복수의 웹 브라우저 중 선택된 하나가 웹 서버 애플리케이션으로 인증 데이터와 환경 데이터를 전송함으로써 소프트웨어 애플리케이션에 대한 액세스를 개시하는 단계(initiating);
    h) 상기 인증 데이터가 웹 서버 애플리케이션에 액세스하기 위해 상기 선택된 웹 브라우저를 인증하는 단계;
    i) 상기 인증 데이터가 상기 선택된 웹 브라우저로 하여금 웹 서버 애플리케이션에 액세스하도록 허락한 경우 환경 데이터를 프로세스하는 단계;
    j) 상기 프로세스된 환경 데이터를 애플리케이션 게이트웨이에 출력하는 단계;
    k) 상기 선택된 웹 브라우저에 대응하는 식별자와 상기 소프트웨어 애플리케이션에 의해 실행될 소정의 프로세스(desired process)를 발생시키는 단계;
    l) 상기 소프트웨어 애플리케이션에서 실행될 처리된 환경 데이터, 식별자, 및 원하는 공정을 출력하는 단계;
    m) 소프트웨어 애플리케이션에 의해 소정의 프로세스가 실행되고, 상기 실행은 복수의 WWW API 중 적어도 하나에 실행되는 프로세스 실행 단계;
    n) 상기 식별자로 애플리케이션 게이트웨이에 대한 소정의 프로세스 및/ 또는 더 많은 정부를 위한 적어도 하나의 요구를 실행한 적어도 하나의 결과를 복귀시키는 단계;
    o) 상기 복수의 브라우저 중 어느 것이 상기 적어도 하나의 결과 및/또는 더 많은 정보를 위한 적어도 하나의 요구로 전송해야 하는지 식별자에 기초하여 결정하는 단계;
    p) 애플리케이션 게이트웨이로부터 웹 서버 애플리케이션으로 적어도 하나의 결과 및/또는 더많은 정보를 위한 적어도 하나의 요구를 포함하는 데이터를 전송하는 단계; 및
    q) 웹 서버로부터 상기 식별자에 대응하는 선택된 하나의 웹 브라우저로 적어도 하나의 결과 및/또는 더 많은 정보를 위한 적어도 하나의 요구를 포함하는 데이터를 전송하는 단계
    를 포함하는 방법.
  20. 제 19항에 있어서, 상기 소프트웨어 애플리케이션이 프로세스 엔지니어링 소프트웨어 애플리케이션(process engineering software application)인 방법.
  21. 제 19항에 있어서, 상기 소프트웨어 애플리케이션이 플로우마크 소프트웨어 애플리케이션인 방법.
  22. 월드 와이드 웹(World Wide Web)을 통해 웹 브라우저와 소프트웨어 애플리케이션 사이에서 통신하기 위한 시스템에 있어서,
    a) 웹 브라우저를 실행하는 클라이언트 워크스테이션(client workstation);
    b) 웹 서버 애플리케이션(web server application)을 실행하는 웹 서버 컴퓨터(web server computer);
    c) 애플리케이션 게이트웨이(application agteway)를 실행하는 제 1 컴퓨터;
    d) 소프트웨어 애플리케이션(software application)을 실행하는 제 2 컴퓨터;
    e) 웹 브라우저와 소프트웨어 애플리케이션 사이에 있으며, 데이터가 상기 웹 브라우저와 소프트웨어 애플리케이션 사이에서 전송되도록 해주는 통신 메카니즘(communication mechanism);
    f) 웹 서버 애플리케이션과 애플리케이션 게이트웨이 사이에 있으며, 데이터가 상기 웹 서버 애플리케이션과 애플리케이션 게이트웨이 사이에서 전송되도록 해주는 통신 메카니즘(communication mechanism);
    g) 애플리케이션 게이트웨이와 소프트웨어 애플리케이션 사이에 있으며, 데이터가 상기 애플리케이션 게이트웨이와 소프트웨어 애플리케이션 사이에서 전송되도록 해주는 통신 메카니즘(communication mechanism); 및
    h) 상기 월드 와이드 웹(World Wide Web) 상에서 웹 브라우저가 소프트웨어 애플리케이션과 통신하도록 소프트웨어 애플리케이션에 의해 호출되고 애플리케이션 게이트웨이 내에 상주하는 복수의 월드-와이드-웹 애플리케이션 프로그래밍 인터페이스(WWW API)
    를 포함하는 시스템.
  23. 제 22항에 있어서, 상기 소프트웨어 애플리케이션이 프로세스 엔지니어링 소프트웨어 애플리케이션(process engineering software application)인 시스템.
  24. 제 21항에 있어서, 상기 소프트웨어 애플리케이션이 플로우마크 소프트웨어 애플리케이션인 시스템.
  25. 제 22항에 있어서, 상기 웹 서버 컴퓨터가 제 1 컴퓨터를 포함하는 시스템.
  26. 제 22항에 있어서, 상기 제 1 컴퓨터가 제 2 컴퓨터를 포함하는 시스템.
  27. 월드 와이드 웹(World Wide Web)을 통해 웹 브라우저와 플로우마크 애플리케이션 사이에서 통신하기 위한 방법에 있어서,
    a) 상기 웹 브라우저를 실행하는 클라이언트 워크스테이션을 제공하는 단계;
    b) 웹 서버 애플리케이션(web server application)을 실행하는 웹 서버 컴퓨터(web server computer)를 제공하는 단계;
    c) 애플리케이션 게이트웨이(application gateway)를 실행하는 제 1 컴퓨터 시스템을 제공하는 단계;
    d) 상기 플로우마크 애플리케이션을 실행하는 제 2 컴퓨터 시스템을 제공하는 단계;
    e) 데이터가 상기 웹 브라우저와 상기 웹 서버 애플리케이션 사이에서 전송될 수 있도록 상기 웹 브라우저와 상기 웹 서버 애플리케이션 간에 제 1 통신 메카니즘(first communication mechanism)을 제공하는 단계;
    f) 데이터가 상기 웹 서버 애플리케이션과 상기 애플리케이션 게이트웨이 사이에서 전송될 수 있도록 상기 웹 서버 애플리케이션과 상기 애플리케이션 게이트웨이 간에 제 2 통신 메카니즘(second communication mechanism)을 제공하는 단계;
    g) 데이터가 상기 애플리케이션 게이트웨이와 상기 플로우마크 애플리케이션 사이에서 전송될 수 있도록 상기 애플리케이션 게이트웨이와 상기 플로우마크 애플리케이션 간에 제 3 통신 메카니즘(third communication mechanism)을 제공하는 단계;
    h) 상기 월드 와이드 웹상에서 웹 브라우저가 소프트웨어 애플리케이션과 통신하도록 해주며, 상기 애플리케이션 게이트웨이 내에 상주하는 복수의 월드-와이드 웹 애플리케이션 프로그래밍 인터페이스(WWW API)를 제공하는 단계;
    i) 상기 웹 브라우저가 상기 제 1 통신 메카니즘을 통해 인증 데이터와 환경 데이터를 상기 웹 서버 애플리케이션을 전송함으로써 상기 플로우마크 애플리케이션에 대한 액세스를 개시하는 단계;
    j) 상기 인증 데이터가 선택된 웹 브라우저로 하여금 상기 웹 서버 애플리케이션에 액세스하도록 허락할 것인지의 여부를 상기 웹 서버 애플리케이션이 결정하는 단계;
    k) 상기 인증 데이터가 상기 선택된 웹 브라우저로 하여금 웹 서버 애플리케이션에 액세스하도록 허락한 경우 상기 웹 서버 애플리케이션이 환경 데이터를 프로세스하는 단계;
    l) 상기 웹 서버 애플리케이션이 상기 제 2 통신 메카니즘을 통해 상기 프로세스된 환경 데이터를 애플리케이션 게이트웨이에 출력하는 단계;
    m) 상기 애플리케이션 게이트웨이가 상기 선택된 웹 브라우저에 대응하는 식별자와 상기 플로우마크 애플리케이션에 의해 실행될 소정의 프로세스(desired proecss)를 발생시키는 단계;
    n) 상기 애플리케이션 게이트웨이가 상기 제 3 통신 메카니즘을 통해 상기 식별자와 플로우마크 애플리케이션에 대한 소정의 프로세스를 출력하는 단계;
    o) 상기 플로우마크 애플리케이션이 복수의 WWW API 중 적어도 하나의 호출에 의하여 실행되는 소정의 프로세스를 실행하는 단계;
    p) 상기 플로우마크 애플리케이션이 상기 제 3 통신 메카니즘을 통해 상기 식별자로 애플리케이션 게이트웨이에 대한 소정의 프로세스 및 더 많은 정보를 위해 적어도 하나의 요구를 실행한 적어도 하나의 결과를 복귀시키는 단계;
    q) 상기 애플리케이션 게이트웨이가 상기 복수의 브라우저 중 어느 것이 적어도 하나의 결과 및/또는 더 많은 정보를 위하여 적어도 하나의 요구를 전송해야 하는지의 여부를 식별자에 기초하여 결정하는 단계;
    r) 상기 애플리케이션 게이트웨이가 상기 제 2 통신 메카니즘을 통해 상기 웹 서버 애플리케이션으로 적어도 하나의 결과 및/또는 더 많은 정보를 위해 적어도 하나의 요구를 전송하는 단계; 및
    s) 상기 웹 서버 애플리케이션이 상기 제 1 통신 메카니즘을 통해 상기 식별자에 대응하는 선택된 하나의 웹 브라우저로 적어도 하나의 결과 및/또는 더 많은 정보를 위해 적어도 하나의 요구를 전송하는 단계
    를 포함하는 방법.
KR1019970050300A 1996-12-23 1997-09-30 월드와이드웹상에서소프트웨어애플리케이션과컴퓨터간에통신하기위한컴퓨터장치및방법 KR100264535B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8/780,013 1996-12-23
US08/780,013 US6125384A (en) 1996-12-23 1996-12-23 Computer apparatus and method for communicating between software applications and computers on the world-wide web

Publications (2)

Publication Number Publication Date
KR19980063503A KR19980063503A (ko) 1998-10-07
KR100264535B1 true KR100264535B1 (ko) 2000-09-01

Family

ID=25118290

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970050300A KR100264535B1 (ko) 1996-12-23 1997-09-30 월드와이드웹상에서소프트웨어애플리케이션과컴퓨터간에통신하기위한컴퓨터장치및방법

Country Status (2)

Country Link
US (1) US6125384A (ko)
KR (1) KR100264535B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101089353B1 (ko) * 2006-12-12 2011-12-02 콸콤 인코포레이티드 클라이언트 구동 서버측 설치를 위한 장치 및 방법
US9329851B2 (en) 2011-09-09 2016-05-03 Microsoft Technology Licensing, Llc Browser-based discovery and application switching

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7467137B1 (en) 1994-09-02 2008-12-16 Wolfe Mark A System and method for information retrieval employing a preloading procedure
US6006252A (en) * 1996-10-08 1999-12-21 Wolfe; Mark A. System and method for communicating information relating to a network resource
US6901425B1 (en) * 1996-12-23 2005-05-31 International Business Machines Corporation Computer apparatus and method including a disconnect mechanism for communicating between software applications and computers on the world-wide web
US6732183B1 (en) * 1996-12-31 2004-05-04 Broadware Technologies, Inc. Video and audio streaming for multiple users
JP3555088B2 (ja) * 1997-03-24 2004-08-18 ジェーシーエヌ株式会社 固有時間に基づく認証データの発行システムおよび認証データの認証システム
US8626763B1 (en) 1997-05-22 2014-01-07 Google Inc. Server-side suggestion of preload operations
US20060193278A1 (en) 1997-10-15 2006-08-31 Wolfgang Theimer Mobile telephone for Internet applications
US7257604B1 (en) 1997-11-17 2007-08-14 Wolfe Mark A System and method for communicating information relating to a network resource
WO1999040551A1 (en) * 1998-01-26 1999-08-12 Unif/X Inc. A transaction execution system interface and enterprise system architecture thereof
US6338138B1 (en) * 1998-01-27 2002-01-08 Sun Microsystems, Inc. Network-based authentication of computer user
US7668782B1 (en) * 1998-04-01 2010-02-23 Soverain Software Llc Electronic commerce system for offer and acceptance negotiation with encryption
US6356964B1 (en) * 1998-08-31 2002-03-12 International Business Machines Corporation Method and apparatus for enabling location-independent and location-transparent interaction between a program and a user
US6504554B1 (en) * 1998-09-01 2003-01-07 Microsoft Corporation Dynamic conversion of object-oriented programs to tag-based procedural code
JP3415456B2 (ja) * 1998-10-19 2003-06-09 日本電気株式会社 ネットワークシステム及びコマンド使用権限制御方法ならびに制御プログラムを格納した記憶媒体
US6323881B1 (en) * 1998-10-23 2001-11-27 Nortel Networks Limited Web based GUI server and method for a telecommunications node
US7137101B1 (en) * 1998-12-03 2006-11-14 International Business Machines Corporation Apparatus and method for performing general integrity checks using integrity rule checking points in an enterprise application
US6567411B2 (en) * 1998-12-31 2003-05-20 Qwest Communications International, Inc. Method and apparatus for continuous narrowcast of individualized information over a data network
JP2000305880A (ja) * 1999-04-20 2000-11-02 Hitachi Ltd 情報配信システム
US6634008B1 (en) * 1999-06-20 2003-10-14 Fujitsu Limited Methodology server based integrated circuit design
US7010695B1 (en) * 1999-07-16 2006-03-07 Ricoh Company, Ltd. Information input-output device, information input-output system, mobile communication terminal, and input-output control unit
US6922729B1 (en) * 1999-07-30 2005-07-26 International Business Machines Corporation Multi-connection control system
US6662355B1 (en) * 1999-08-11 2003-12-09 International Business Machines Corporation Method and system for specifying and implementing automation of business processes
US20020087915A1 (en) * 1999-12-23 2002-07-04 Jesse Perla Error handler method and system for internet-based applications
US20020032706A1 (en) * 1999-12-23 2002-03-14 Jesse Perla Method and system for building internet-based applications
US6934757B1 (en) * 2000-01-06 2005-08-23 International Business Machines Corporation Method and system for cross-domain service invocation using a single data handle associated with the stored common data and invocation-specific data
US6983315B1 (en) * 2000-01-18 2006-01-03 Wrq, Inc. Applet embedded cross-platform caching
EP1193614A4 (en) * 2000-02-04 2004-12-15 Matsushita Electric Ind Co Ltd INFORMATION TERMINAL
EP1226698B1 (en) * 2000-06-14 2009-01-28 Sap Ag Communication between client and server computers via http, method, computer program product and system
US20020054080A1 (en) * 2000-06-15 2002-05-09 Belanger David Gerald Internet service controller with real time status display
US20020010721A1 (en) * 2000-06-29 2002-01-24 Crimmins John D. Automated print procurement method, apparatus and system
US7899690B1 (en) 2000-08-18 2011-03-01 The Crawford Group, Inc. Extended web enabled business to business computer system for rental vehicle services
US8600783B2 (en) * 2000-08-18 2013-12-03 The Crawford Group, Inc. Business to business computer system for communicating and processing rental car reservations using web services
US6971059B1 (en) 2000-11-28 2005-11-29 Agilent Technologies, Inc. Chromatographic or spectroscopic reports with hyperlinks to allow direct access to external references
US20040073887A1 (en) * 2001-02-10 2004-04-15 Frank Leymann Generating a request log of requests received by a workflow management system
US20020120607A1 (en) * 2001-02-28 2002-08-29 Lumenati, Inc. File sharing system for serving content from a computer
US6854010B1 (en) * 2001-04-05 2005-02-08 Bluecube Software, Inc. Multi-location management system
JP2005053239A (ja) * 2001-06-13 2005-03-03 Honda Motor Co Ltd 予約点検システム
JP2005231377A (ja) * 2001-06-13 2005-09-02 Honda Motor Co Ltd 点検状況確認システム
GB2380013A (en) * 2001-09-21 2003-03-26 Hewlett Packard Co Automated Rental Procedure
US7797623B1 (en) * 2001-10-12 2010-09-14 At&T Intellectual Property I, L.P. Method for preventing inadvertent data entry in a web page
US20030093508A1 (en) * 2001-10-18 2003-05-15 Seiko Epson Corporation System for installing and launching network applications
KR100426307B1 (ko) 2001-12-12 2004-04-08 한국전자통신연구원 에스오에이피-엑스엠엘을 이용한 데이터 액세스 장치 및방법
US8108231B2 (en) 2002-06-14 2012-01-31 The Crawford Group, Inc. Method and apparatus for improved customer direct on-line reservation of rental vehicles
US20040039612A1 (en) 2002-06-14 2004-02-26 Neil Fitzgerald Method and apparatus for customer direct on-line reservation of rental vehicles
US8234174B1 (en) 2002-09-10 2012-07-31 Eagon Grant A Method and apparatus for creating custom advertisements
US7448047B2 (en) * 2004-04-29 2008-11-04 Sybase, Inc. Database system with methodology for providing stored procedures as web services
US8271309B2 (en) 2006-03-16 2012-09-18 The Crawford Group, Inc. Method and system for providing and administering online rental vehicle reservation booking services
CA2664941C (en) 2006-10-06 2017-09-12 The Crawford Group, Inc. Method and system for communicating vehicle repair information to a business-to-business rental vehicle reservation management computer system
US20080097798A1 (en) * 2006-10-18 2008-04-24 The Crawford Group, Inc. Method and System for Creating and Processing Rental Vehicle Reservations Using Vouchers
US8160906B2 (en) 2006-12-12 2012-04-17 The Crawford Group, Inc. System and method for improved rental vehicle reservation management
US7917507B2 (en) * 2007-02-12 2011-03-29 Microsoft Corporation Web data usage platform
US8429185B2 (en) 2007-02-12 2013-04-23 Microsoft Corporation Using structured data for online research
GB0702822D0 (en) * 2007-02-14 2007-03-28 Salamander Organization The Lt Organisation representational system
US7958188B2 (en) * 2007-05-04 2011-06-07 International Business Machines Corporation Transaction-initiated batch processing
US8160907B2 (en) 2007-07-25 2012-04-17 The Crawford Group, Inc. System and method for allocating replacement vehicle rental costs using a virtual bank of repair facility credits
US20100023352A1 (en) * 2008-07-23 2010-01-28 The Crawford Group, Inc. System and Method for Improved Information Sharing by Repair Facilities for Managing Rental Vehicle Reservations
CN101662460B (zh) 2008-08-25 2015-07-15 阿里巴巴集团控股有限公司 一种跨域通讯的方法、系统和装置
US8065617B2 (en) * 2008-08-28 2011-11-22 Microsoft Corporation Discovering alternative user experiences for websites
US8825905B2 (en) 2011-04-04 2014-09-02 International Business Machines Corporation Mainframe web client
US8533734B2 (en) 2011-04-04 2013-09-10 International Business Machines Corporation Application programming interface for managing time sharing option address space
US9836314B2 (en) * 2012-09-14 2017-12-05 Sap Se Native user interface interaction via a web-based user interface
US20140281876A1 (en) * 2013-03-15 2014-09-18 Meteor Development Group, Inc. Document element mapping
US10187357B2 (en) * 2015-07-05 2019-01-22 M2MD Technologies, Inc. Method and system for internetwork communication with machine devices

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5793964A (en) * 1995-06-07 1998-08-11 International Business Machines Corporation Web browser system
US5778178A (en) * 1995-11-13 1998-07-07 Arunachalam; Lakshmi Method and apparatus for enabling real-time bi-directional transactions on a network
US5761673A (en) * 1996-01-31 1998-06-02 Oracle Corporation Method and apparatus for generating dynamic web pages by invoking a predefined procedural package stored in a database
US5754772A (en) * 1996-03-26 1998-05-19 Unisys Corporation Transaction service independent HTTP server-to-transaction gateway
US5793972A (en) * 1996-05-03 1998-08-11 Westminster International Computers Inc. System and method providing an interactive response to direct mail by creating personalized web page based on URL provided on mail piece
US5802518A (en) * 1996-06-04 1998-09-01 Multex Systems, Inc. Information delivery system and method
US5828840A (en) * 1996-08-06 1998-10-27 Verifone, Inc. Server for starting client application on client if client is network terminal and initiating client application on server if client is non network terminal
US5872915A (en) * 1996-12-23 1999-02-16 International Business Machines Corporation Computer apparatus and method for providing security checking for software applications accessed via the World-Wide Web
US5892905A (en) * 1996-12-23 1999-04-06 International Business Machines Corporation Computer apparatus and method for providing a common user interface for software applications accessed via the world-wide web

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101089353B1 (ko) * 2006-12-12 2011-12-02 콸콤 인코포레이티드 클라이언트 구동 서버측 설치를 위한 장치 및 방법
US8645948B2 (en) 2006-12-12 2014-02-04 Qualcomm Incorporated Apparatus and methods for client-driven server-side installation
US9329851B2 (en) 2011-09-09 2016-05-03 Microsoft Technology Licensing, Llc Browser-based discovery and application switching

Also Published As

Publication number Publication date
KR19980063503A (ko) 1998-10-07
US6125384A (en) 2000-09-26

Similar Documents

Publication Publication Date Title
KR100264535B1 (ko) 월드와이드웹상에서소프트웨어애플리케이션과컴퓨터간에통신하기위한컴퓨터장치및방법
KR100294969B1 (ko) 월드와이드웹을통해액세스되는소프트웨어애플리케이션용공통사용자인터페이스를제공하는컴퓨터장치및방법
US6144990A (en) Computer apparatus and method for communicating between software applications and computers on the world-wide web using universal variable handling
US6687733B2 (en) Method and system for automatically configuring a client-server network
US5872915A (en) Computer apparatus and method for providing security checking for software applications accessed via the World-Wide Web
US6278993B1 (en) Method and apparatus for extending an on-line internet search beyond pre-referenced sources and returning data over a data-packet-network (DPN) using private search engines as proxy-engines
US7281029B2 (en) Method and system of capturing data for automating internet interactions
US8402518B2 (en) Secure management of authentication information
CN1095568C (zh) 命名书签组
US8769133B2 (en) Network-based verification and fraud-prevention system
US20020059369A1 (en) Method and apparatus for creating and distributing non-sensitized information summaries to users
US6901425B1 (en) Computer apparatus and method including a disconnect mechanism for communicating between software applications and computers on the world-wide web
US20130124695A1 (en) Mobility Device Method
US20020023108A1 (en) Automatic web form interaction proxy
US20090265774A1 (en) Method and Apparatus for Tracking Functional States of a Web-Site and Reporting Results to Web Developers
JP2001525574A (ja) クライアント・サーバ・システムにおける長期トランザクションの処理
EA007778B1 (ru) Генератор прикладных программ
JP2002533830A (ja) クライアント−サーバネットワークにおいてクライアントノードの近隣プログラムを判定するための装置および方法
RU2237275C2 (ru) Сервер и способ (варианты) определения программного окружения клиентского узла в сети с архитектурой клиент/сервер
US6947979B1 (en) Controlling use of a network resource
US7093019B1 (en) Method and apparatus for providing an automated login process
JPH11102318A (ja) ネットワークによる安全でありスケーラブルであるデータベーストランザクションのためのシステムおよび方法
JPH10177548A (ja) セッション管理システム
EP1468544B1 (en) Method and apparatus for controlling a multi-node process
KR100504088B1 (ko) 네트워크를 통한 계좌 통합 관리 시스템 및 그 방법

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: 20120525

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20130524

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee