KR20090127158A - 서비스·프로그램을 생성하는 기술 - Google Patents

서비스·프로그램을 생성하는 기술 Download PDF

Info

Publication number
KR20090127158A
KR20090127158A KR1020097020958A KR20097020958A KR20090127158A KR 20090127158 A KR20090127158 A KR 20090127158A KR 1020097020958 A KR1020097020958 A KR 1020097020958A KR 20097020958 A KR20097020958 A KR 20097020958A KR 20090127158 A KR20090127158 A KR 20090127158A
Authority
KR
South Korea
Prior art keywords
history
user
web browser
unit
input
Prior art date
Application number
KR1020097020958A
Other languages
English (en)
Other versions
KR101038896B1 (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 KR20090127158A publication Critical patent/KR20090127158A/ko
Application granted granted Critical
Publication of KR101038896B1 publication Critical patent/KR101038896B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 웹 서버가 제공하는 2 이상의 서비스를 사용자가 자유롭게 조합하여 새로운 서비스를 작성할 수 있도록 하는 것을 목적으로 한다.
사용자가 웹·브라우저를 조작한 이력을 취득하여 기억 장치에 저장하는 이력 취득부와, 기억 장치에 액세스하여, 웹 페이지에 파라미터를 입력하는 제1 조작의 이력과, 제1 조작보다 조작 순서가 뒤인 다른 제2 조작의 이력을 검색하는 검색부와, 사용자가 웹·브라우저를 조작함으로써 제공을 받은 서비스를 제공하는 서비스·프로그램을 생성하여 기억 장치에 저장하는 생성부를 구비하여, 서비스·프로그램은, 제 1조작에 의해 입력된 파라미터 대신에 웹 페이지에 입력해야 하는 새로운 파라미터의 입력을 접수하는 입력 접수부, 이 새로운 파라미터의 입력에 따라, 이 새로운 파라미터를 웹 페이지에 입력하는 처리, 및, 제2 조작에 미리 대응시켜진 처리를 웹·브라우저에 대하여 이 순서로 순차적으로 행하는 처리부로서 컴퓨터를 기능시키는 시스템을 제공한다.

Description

서비스·프로그램을 생성하는 기술{SERVICE PROGRAM GENERATION TECHNOLOGY}
본 발명은 사용자의 조작을 대행하는 프로그램을 생성하는 기술에 관한 것이다. 특히, 본 발명은 웹·브라우저에 대한 조작을 대행하는 프로그램을 생성하는 기술에 관한 것이다.
최근 웹 서버에 의해 제공되는 서비스를 조합하여 새로운 서비스를 작성하는 매시 업(mash up)이라고 하는 개념이 주목받고 있다. 매시 업을 실현하기 위해서는, 웹 서버에서 동작하는 여러가지 프로그램을 호출하기 위한 API가 공개되어 있는 것이 전제가 된다. API가 공개되어 있으면, 프로그래머는, 여러가지 API를 자유로운 순서나 조건으로 호출하는 것과 같은 새로운 프로그램을 작성함으로써, 이미 제공되어 있는 서비스를 조합하여 새로운 서비스를 작성할 수 있다.
특허문헌 1에 대해서는 후술한다.
[특허문헌 1] 일본 특허 공개 제2004-272871호 공보
[비특허문헌 1] 「Selenium Recorder의 사용 방법」, 홈 페이지 URL「http://seleniumrecorder.mozdev.org/index-ja.html」, 2007년 4월 2일 검색
그러나, 매시 업을 위한 API는, 일부의 웹 서버에 의해 시험적으로 공개되어 있는 것에 지나지 않아, 프로그래머가 인터넷 상에서 제공되는 서비스를 자유롭게 조합할 수 있다고는 말하기 어렵다. 또한, 공개되어 있었다고 해도, 새로운 프로그램의 작성은 어느 정도 숙련된 프로그래머가 아니면 곤란하여, 일반 사용자가 손쉽게 실현할 수 있는 것이 아니다.
한편, 최근 다양한 서비스가 웹 페이지 상에서 제공되도록 되어 왔고, 그 이용 방법도 사용자에 따라 다양하다. 이 때문에, 일반 사용자라 하더라도 복수의 서비스를 자유롭게 조합하여 새로운 서비스를 생성함으로써 편리성을 향상시킬 수 있다고 생각된다. 예컨대, 정보 제공용의 웹 페이지로부터 주가의 정보를 취득하고, 그 주가로부터 주식 발주의 지정가를 자동적으로 결정하여, 증권 회사의 웹 페이지에 있어서 그 지정 가격으로 주식을 자동적으로 주문하는 것과 같은 프로그램을 일반 사용자가 손쉽게 작성할 수 있으면, 사용자의 편리성은 대폭 향상된다.
참고 기술로서 상기 특허문헌 1을 예로 든다. 이 기술은, 본래 단말 장치의 웹·브라우저로부터 웹 서버에 대하여 송신될 HTTP 요청을, 웹·브라우저 대신에 송신하는 소프트웨어에 관한 것이다. 그러나 이 소프트웨어는 웹·브라우저 그 자체가 아닌 이상, 현재 공개되어 있는 고도한 웹 페이지에 있어서는 여러가지 과제가 발생할 수 있다.
첫째로, 세션을 적절히 유지 관리하는 점이다. 고도한 웹 페이지에 있어서는, 복수의 HTTP 요청을 일련의 세션으로서 관리하기 때문에, HTTP 요청에는 전회에 수취한 HTTP 응답에 포함되어 있던 세션 ID를 포함시켜 송신해야 한다. 그러나, 이 문헌에는 그와 같은 기능에 대해서는 기재 및 시사되어 있지 않다.
둘째로, 동적으로 변화하는 웹 페이지에 관한 점이다. 고도한 웹 페이지는 HTTP 요청을 수신할 때마다 그 구조를 크게 변화시키는 경우가 있다. 그러나, 이 문헌에는 그와 같이 변화하는 웹 페이지에 대하여, 그 변화에 따라 적절한 HTTP 요청을 송신하는 것에 대해서는 기재 및 시사되어 있지 않다.
또한, 다른 참고 기술로서, 브라우저 상에서 행한 조작을 윈도우에 기록해가는 소프트웨어가 제안되어 있다(비특허문헌 1을 참조). 윈도우에 기록된 테스트 케이스는, 플레이 버튼을 누르면 재생된다. 또한, 윈도우 내에서 테스트 케이스의 편집·보존·로드가 가능하다. 이 기술은 웹·애플리케이션의 테스트를 목적으로 한 것이다. 따라서, 이 기술로는, 이러한 조작의 이력에 기초하여 사용자가 재이용 가능한 프로그램을 작성할 수는 없다.
그래서 본 발명은 상기한 과제를 해결할 수 있는 시스템, 방법 및 프로그램을 제공하는 것을 목적으로 한다. 이 목적은 특허청구범위에서의 독립항에 기재한 특징의 조합에 의해 달성된다. 또한 종속항은 본 발명의 한층 더 유리한 구체예를 규정한다.
상기 과제를 해결하기 위해, 본 발명의 한 측면에 있어서는, 서비스·프로그램을 생성하기 위한 시스템으로서, 기억 장치와, 사용자가 웹·브라우저를 조작한 이력을 취득하여 기억 장치에 저장하는 이력 취득부와, 기억 장치에 액세스하여, 웹 페이지에 파라미터를 입력하는 제1 조작의 이력, 및, 제1 조작보다 조작 순서가 뒤인 이와 다른 제2 조작의 이력을 검색하는 검색부와, 사용자가 웹·브라우저를 조작함으로써 제공을 받은 서비스를 제공하는 서비스·프로그램을 생성하여 기억 장치에 저장하는 생성부를 구비하고, 서비스·프로그램은, 제1 조작에 의해 입력된 파라미터 대신에 웹 페이지에 입력해야 하는 새로운 파라미터의 입력을 접수하는 입력 접수부, 이 새로운 파라미터의 입력에 따라, 이 새로운 파라미터를 웹 페이지에 입력하는 처리, 및, 제2 조작에 미리 대응된 처리를 웹·브라우저에 대하여 이 순서로 순차적으로 행하는 처리부로서 컴퓨터를 기능시키는 시스템, 해당 시스템으로서 컴퓨터를 기능시키는 프로그램 및 방법을 제공한다.
또, 상기한 발명의 개요는 본 발명의 필요한 특징 모두를 열거한 것은 아니며, 이들 특징군의 서브컴비네이션도 또한 발명이 될 수 있다.
도 1은 정보 시스템(10)의 전체 구성을 나타낸다.
도 2는 정보 시스템(10)이 사용자의 조작에 따라 행하는 처리의 전체 흐름을 나타낸다.
도 3은 도 2의 S10-S15의 상세를 나타낸다.
도 4는 도 2의 S25-S32의 상세를 나타낸다.
도 5는 클라이언트·컴퓨터(100)의 기능을 기능 블록에 의해 나타낸다.
도 6은 기억 장치(505)의 데이터 구조의 일례를 나타낸다.
도 7은 표시부(520)의 제1 표시예를 나타낸다.
도 8은 표시부(520)의 제2 표시예를 나타낸다.
도 9는 표시부(520)의 제3 표시예를 나타낸다.
도 10은 서비스 정의(50)의 구체예를 나타낸다.
도 11은 클라이언트·컴퓨터(100)가 조작 이력에 기초하여 서비스·프로그램을 생성하는 처리의 흐름을 나타낸다.
도 12는 클라이언트·컴퓨터(100)가 서비스·프로그램에 기초하여 사용자의 조작을 대행하는 처리의 흐름을 나타낸다.
도 13은 조작 이력에 기초하는 2개의 동작예를 대비하여 나타낸다.
도 14는 표시부(520)의 다른 표시예를 나타낸다.
도 15는 표시부(520)의 다른 표시예를 나타낸다.
도 16은 표시부(520)의 다른 표시예를 나타낸다.
도 17은 서비스·프로그램을 조합하여 애플리케이션·프로그램을 개발하는 환경과, 그것에 관련되는 화면 표시를 나타낸다.
도 18은 애플리케이션·프로그램을 개발하는 화면의 구체예를 나타낸다.
도 19는 애플리케이션·프로그램을 개발하는 화면의 구체예를 나타낸다.
도 20은 애플리케이션·프로그램을 개발하는 화면의 구체예를 나타낸다.
도 21은 애플리케이션·프로그램을 개발하는 화면의 구체예를 나타낸다.
도 22는 애플리케이션·프로그램을 개발하는 화면의 구체예를 나타낸다.
도 23은 애플리케이션·프로그램을 개발하는 화면의 구체예를 나타낸다.
도 24는 애플리케이션·프로그램을 개발하는 화면의 구체예를 나타낸다.
도 25는 애플리케이션·프로그램을 개발하는 화면의 구체예를 나타낸다.
도 26은 애플리케이션·프로그램을 개발하는 화면의 구체예를 나타낸다.
도 27은 애플리케이션·프로그램을 개발하는 화면의 구체예를 나타낸다.
도 28은 클라이언트·컴퓨터(100)의 하드웨어 구성의 일례를 나타낸다.
<도면의 주요 부분에 대한 부호의 설명>
10: 정보 시스템
50: 서비스 정의
100: 클라이언트·컴퓨터
102: 웹·브라우저
104: 하드 디스크 드라이브
106: 통신 인터페이스
108: 이력 표시 화면
162: 서비스 모델 표시부
164: 애플리케이션 편집부
166: GUI 부품 리스트 표시부
168: 서비스 리스트 표시부
170: 데이터 허브
172: 특성 편집부
200: 서버·컴퓨터
202: 웹·애플리케이션·서버
204: 하드 디스크 드라이브
206: 통신 인터페이스
256: 서비스 관리부
258: 애플리케이션 관리부
260: 애플리케이션 관리 모듈
300: 통신 회선
400: 프록시·서버
500: 인터넷
505: 기억 장치
510: 이력 취득부
520: 표시부
530: 파라미터 설정부
540: 오브젝트 선택부
550: 검색부
560: 생성부
570: 입력 접수부
580: 처리부
602: 웹 사이트
604: 웹 사이트
606: 웹 사이트
1300: 제1 조작
1310: 제2 조작
1320: 제3 조작
1330: 제4 조작
1402: 화살표
1502: 화살표
1504: 화살표
1602: 버튼
1604: 텍스트 입력란
1702: 화살표
1704: 화살표
2002: 화살표
2102: 화살표
2104: 화살표
2202: 화살표
2204: 화살표
2206: 텍스트 입력란
2208: 텍스트 입력란
2302: 문자열
2304: 문자열
2306: 문자열
이하, 발명의 실시 형태를 통하여 본 발명을 설명하지만, 이하의 실시 형태 는 특허청구범위에 관한 발명을 한정하는 것은 아니며, 또한 실시 형태 중에서 설명되어 있는 특징의 조합 전부가 발명의 해결 수단에 필수적인 것으로 한정하지 않는다.
도 1은 정보 시스템(10)의 전체 구성을 나타낸다. 정보 시스템(10)은 클라이언트·컴퓨터(100)와, 서버·컴퓨터(200)와, 통신 회선(300)과, 프록시·서버(400)와, 웹 사이트(602-604)를 실현하는 복수의 웹 서버를 구비한다. 클라이언트·컴퓨터(100)는 인터넷(500) 등의 통신 회선에 의해 복수의 웹 서버에 접속되어 있다. 이들 웹 서버에서는, 웹 사이트(602), 웹 사이트(604) 및 웹 사이트(606) 등의 웹 사이트가 운영되고 있다. 클라이언트·컴퓨터(100)는 웹·브라우저(102)를 동작시키고 있고, 사용자의 조작에 따라 이들 웹 사이트에 액세스한다. 이 액세스에는, 기억 장치인 하드 디스크 드라이브(104)나 통신 인터페이스(106)가 이용된다. 통신의 효율화나 정보 시큐리티를 위해, 클라이언트·컴퓨터(100) 및 인터넷(500) 사이에 프록시·서버(400)가 더 마련되더라도 좋다. 또한, 여기서는 주요한 하드웨어 자원만을 나타내고 있기 때문에, 더욱 상세한 하드웨어 구성에 대해서는 후에 설명하는 도 25를 참조하기를 바란다.
또한, 클라이언트·컴퓨터(100)는, 예컨대 로컬·영역·네트워크 등인 통신 회선(300)에 의해 서버·컴퓨터(200)에 접속되어 있다. 그리고 클라이언트·컴퓨터(100)는 사용자의 지시에 기초하여 생성한 각종 데이터를 서버·컴퓨터(200)에 저장하거나 또는 다른 사용자가 작성한 각종 데이터를 서버·컴퓨터(200)로부터 판독한다. 데이터의 저장이나 판독의 기능을 실현하기 위해서, 서버·컴퓨터(200)에 서는 웹·애플리케이션·서버(202)가 동작하고 있다. 웹·애플리케이션·서버(202)는 기억 장치인 하드 디스크 드라이브(204)나 통신 인터페이스(206)와 협동하여, 클라이언트·컴퓨터(100)에 대한 데이터의 제공 등을 행한다.
본 실시 형태에 따른 정보 시스템(10)은, 웹 사이트(602-604)에서 제공되는 여러가지 서비스를 조합하여 새로운 서비스를 제공하기 위한 프로그램을, 일반 사용자가 손쉽게 작성할 수 있도록 지원하는 것을 목적으로 한다.
도 2는 정보 시스템(10)이 사용자의 조작에 따라 행하는 처리의 전체 흐름을 나타낸다. 사용자가 웹·브라우저(102)를 조작하면(S10), 클라이언트·컴퓨터(100)는 그 조작의 이력을 하드 디스크 드라이브(104)에 저장한다. 또한, 사용자는 그 조작에 의해 1 이상의 웹 사이트로부터 2 이상의 서비스를 받는다. 구체적으로, 클라이언트·컴퓨터(100)는, 사용자의 조작에 따라 웹 사이트(602-604)에 HTTP 요청을 송신하고, 웹 사이트(602-604)로부터 HTTP 응답의 회신을 받는다(S12). 클라이언트·컴퓨터(100)는, 사용자가 웹·브라우저(102)를 조작한 이력에 기초하여, 사용자가 웹·브라우저를 조작함으로써 제공을 받은 서비스를 제공하는 서비스·프로그램을 생성한다. 실제로 생성되는 것은 서비스·프로그램 자체가 아니더라도 좋고, 그것을 변환함으로써 서비스·프로그램을 생성 가능한 서비스 정의일 수 있다. 그리고 클라이언트·컴퓨터(100)는 그 프로그램을 정의하기 위한 정보인 서비스 정의를 서버·컴퓨터(200)에 송신한다.
다음에, 사용자가 웹·브라우저(102)를 조작하여 복수의 서비스·프로그램을 조합시키는 작업을 행한다(S20). 이 결과, 복수의 서비스 정의가 서버·컴퓨 터(200)로부터 클라이언트·컴퓨터(100)에 판독되고 조합되어, 1개의 애플리케이션·프로그램이 작성된다. 사용자는 이 애플리케이션·프로그램이 표시하는 입력란에 대하여 파라미터를 입력한다(30). 이것을 받아 클라이언트·컴퓨터(100)는, 웹 사이트(602-606)와의 사이에서 HTTP 요청 및 HTTP 응답의 송수신을 자율적으로 행하고(S32), 그 결과를 사용자에게 표시한다(S35).
도 3은 도 2의 S10-S15를 상세하게 나타낸다. 사용자가 웹·브라우저(102)를 조작하면, 웹·브라우저(102) 내부의 처리로서 그 조작에 미리 대응시켜진 이벤트가 발생한다. 예컨대, 사용자가 어느 영역을 포인팅·디바이스로 클릭하면, 클릭된 것을 나타내는 이벤트가 발생한다. 웹·브라우저(102)는, 클릭된 영역이 하이퍼링크인 경우나, 페이지 천이를 가져오는 버튼인 경우에는, HTTP 요청을 송신한다. 송신처는 예컨대 웹 사이트(602)이다. 웹·브라우저(102)는, HTTP 응답을 수신하고, 그것에 기초하여 사용자에게 화면을 표시한다.
사용자에 의한 다음 조작이 입력 조작인 경우에는, 그 입력 조작에 미리 대응시켜진 이벤트가 발생한다. 이 경우도, 필요에 따라 입력된 파라미터가 HTTP 요청으로서 웹 사이트(606) 등을 운영하는 웹 서버에 송신된다. 이와 같이, 사용자가 조작할 때마다 클라이언트·컴퓨터(100)에 있어서는 내부에서 이벤트가 발생하여, 필요에 따라 HTTP 요청이 송신된다. HTTP 요청이 송신되지 않는 경우라도, 웹·브라우저(102)에 판독되어 동작하는 프로그램(예컨대 Java Script 등의 페이지 갱신 기능을 지원하는 언어로 기술된 프로그램 등)에 의해 웹·브라우저(102)에 표시된 웹 페이지가 자동적으로 갱신되는 경우도 있다(도면 중의 DOM 조작).
사용자는 일련의 조작을 끝낸 후에, 웹·브라우저(102)를 조작하여 표시된 웹 페이지 중에서 임의로 표시 오브젝트를 지정한다. 그리고 클라이언트·컴퓨터(100)는, 사용자가 웹·브라우저(102)를 조작한 이력에, 지정된 이 표시 오브젝트의 웹 페이지 중에 있어서의 배치를 대응시켜 하드 디스크 드라이브(104)에 저장한다. 이력의 취득 및 그 저장은, 예컨대 웹·브라우저에 마련된 플러그인·프로그램에 의해 실현될 수 있다. 그리고 클라이언트·컴퓨터(100)는, 이 이력에 기초하여 동작하는 서비스·프로그램을 생성하여, 그 정의를 나타내는 정보인 서비스 정의를 서버·컴퓨터(200)에 송신한다.
도 4는 도 2의 S25-S32를 상세하게 나타낸다. 서비스·프로그램은 전술한 바와 같이 사용자에 의해 작성되거나 혹은 서버·컴퓨터(200)로부터 판독된 다른 서비스·프로그램과 조합되어(S25) 애플리케이션·프로그램으로서 동작하고 있다. 이 애플리케이션·프로그램은 웹·브라우저(102)의 플러그인·프로그램으로서 동작하고 있어, 사용자에 대하여 입력란을 표시하고 있다. 사용자가 이 입력란에 파라미터를 입력하면(S30), 애플리케이션·프로그램은 이력 취득시에 발생하고 있던 이벤트를 그 발생 순으로 순차적으로 발생시킨다. 웹·브라우저(102)는 이벤트의 발생에 따라 필요한 경우에는 HTTP 요청을 송신한다(S32).
그리고 서비스·프로그램은 이벤트의 발생을 끝내면, 이력 취득시에 사용자가 지정한 표시 오브젝트를 그 이벤트 발생 후의 웹·브라우저의 화면 중에서 선택하여 사용자에게 출력한다(S35).
이와 같이, 클라이언트·컴퓨터(100)는 새로운 파라미터의 입력에 따라 사용 자의 조작 이력에 기초하여 동작하고, 또한 그 결과를 화면으로부터 선택하여 출력하는 프로그램을 생성함으로써, 사용자의 조작을 대행하여 복수의 서비스를 조합할 수 있다. 이하, 이 기능의 상세에 대해 설명한다.
도 5는 클라이언트·컴퓨터(100)의 기능을 기능 블록에 의해 나타낸다. 클라이언트·컴퓨터(100)는 기억 장치(505)와, 이력 취득부(510)와, 표시부(520)와, 파라미터 설정부(530)와, 오브젝트 선택부(540)와, 검색부(550)와, 생성부(560)와, 입력 접수부(570)와, 처리부(580)를 구비한다. 이들 각 부재는, 웹·브라우저(102)의 플러그인·프로그램이 후술하는 도 25에 나타내는 하드웨어 자원과 협동함으로써 실현된다. 기억 장치(505)는, 후술하는 하드 디스크 드라이브(1040) 혹은 RAM(1020)에 의해 실현되고, 사용자의 조작 이력을 기억하기 위해 마련된다. 이력 취득부(510)는, 사용자가 웹·브라우저(102)를 조작하여 1 이상의 웹 사이트로부터 2 이상의 서비스를 받은 이력을 취득하여, 기억 장치(505)에 저장한다.
표시부(520)는, 사용자가 조작하는 웹·브라우저인 제1 화면, 및 기억 장치(505)에 저장된 조작의 일람을 표시하는 제2 화면을 표시한다. 파라미터 설정부(530)는, 이력으로서 취득된 조작 중, 사용자가 웹 페이지에 파라미터를 입력하는 조작에 대해, 이력으로서 취득된 파라미터를 처리부(580)에 의한 처리에 이용할지 여부를 사용자의 지시에 기초하여 설정한다. 이 지시는, 제2 화면에 표시한 이력에 대한 포인팅·디바이스의 클릭 조작이라도 좋다. 그리고 파라미터 설정부(530)는, 이 설정 결과를 기억 장치(505)에 저장한다.
오브젝트 선택부(540)는, 사용자가 조작한 웹·브라우저(102)에 표시된 웹 페이지 중에서, 사용자의 지시에 기초하여 표시 오브젝트를 선택하고, 그 표시 오브젝트의 웹 페이지 중에 있어서의 배치를 조작의 이력에 대응시켜 기억 장치(505)에 저장한다. 검색부(550)는, 기억 장치(505)에 액세스하여, 웹 페이지에 파라미터를 입력하는 제1 조작의 이력 및 그 제1 조작보다 조작 순서가 뒤인 다른 제2 조작의 이력을 검색한다. 생성부(560)는, 클라이언트·컴퓨터(100)를 후술하는 입력 접수부(570) 및 처리부(580)로서 기능시키는 서비스·프로그램을 생성한다. 서비스·프로그램 그 자체 또는 서비스·프로그램을 정의하는 정보는 서버·컴퓨터(200)에 출력되더라도 좋고, 다른 서비스·프로그램을 정의하는 정보가 클라이언트·컴퓨터(100)에 판독되어 동작하더라도 좋다. 서비스·프로그램을 정의하는 정보에 대해서는 서비스 정의(50)로서 후에 그 일례를 설명한다.
입력 접수부(570)는, 사용자의 지시에 따라 동작을 시작한다. 그리고 입력 접수부(570)는, 제1 조작에 의해 입력된 파라미터 대신에 웹 페이지에 입력해야 하는 새로운 파라미터의 입력을 사용자로부터 접수한다. 단, 새로운 파라미터의 입력을 접수하는 제1 조작은, 이력으로서 취득된 파라미터를 처리부(580)에 의한 처리에 이용하지 않는다고 설정된 제1 조작에 한정된다. 또, 입력 접수부(570)는, 이 새로운 파라미터의 입력을, 사용자로부터가 아니라 다른 프로그램으로부터 접수하더라도 좋다. 즉, 예컨대, 이 서비스·프로그램은 다른 프로그램이 파라미터를 출력함에 따라 동작을 시작하고, 입력 접수부(570)는 이 파라미터를 수취할 수 있다. 그리고 처리부(580)는, 이 새로운 파라미터의 입력에 따라 이 새로운 파라미터를 웹 페이지에 입력하는 처리, 및, 제2 조작에 미리 정해진 처리를 웹·브라우저에 대하여 이 순서로 순차적으로 행한다. 이들 처리는, 예컨대 웹·브라우저(102)가 이들 각 조작을 받았으면 발생하는 이벤트를 웹·브라우저(102)에 있어서 발생시킴으로써 실현된다.
도 6은 기억 장치(505)의 데이터 구조의 일례를 나타낸다. 기억 장치(505)는, 사용자의 각 조작의 이력을 레코드로 해서 그 조작 순으로 기억하고 있다. 각 레코드는, 조작의 종류, 조작 대상의 표시 오브젝트의 웹 페이지 내에 있어서의 배치 및 입력된 파라미터를 포함한다. 예컨대, 웹·브라우저를 새롭게 기동하는 조작에 대해서는, 조작의 종류로서 「오픈」이, 입력된 파라미터로서 웹 페이지의 어드레스가 이력으로서 기억된다. 또한, 파라미터의 입력 조작에 대해서는, 조작의 종류로서 「입력」이, 조작 대상의 표시 오브젝트의 배치로서 「//input[@id=user]」가, 입력된 파라미터로서 「testuser」가 각각 이력으로서 기억된다.
표시 오브젝트의 배치는, 예컨대 XPath(XML Path Language)에 의해 나타난다. XPath의 기법에 있어서, //는 XML 문서 전체의 임의의 계층에 있는 임의의 태그를 나타낸다. 그리고 //에 계속되는 문자열은 태그명을 나타낸다. 또한, @에 계속되는 문자열은 속성명을 나타낸다. 즉, 「//input[@id= user]」는, XML 문서 전체의 임의의 계층에 있는 input이라는 태그 중, id라고 하는 속성이 user라는 태그를 나타낸다. 이력 취득부(510)는, 이러한 XPath의 기술을 사용자가 행한 조작의 대상이 된 표시 오브젝트의 배치를 나타내는 정보로서 취득하여, 기억 장치(505)에 저장한다.
기억 장치(505)는, 사용자가 파라미터를 입력한 웹 페이지에 있어서 그 파라 미터를 입력하는 입력란을 사용자에게 식별시키기 위해 첨부된 라벨을, 사용자의 입력 조작의 이력에 더 포함시켜 저장하더라도 좋다. 이 라벨은, 예컨대 사용자가 무엇을 입력하면 좋을지 알기 쉽게 하기 위해, 입력란 옆에 표시되는 문자열이다. 예컨대, 어떤 입력란 옆에 「주식 수」라고 하는 문자열이 표시되고, 그 입력란에 수치 200이 입력된 경우에는, 조작의 종류, 조작 대상이 된 표시 오브젝트의 배치 및 파라미터 「200」에 더욱 대응시켜, 라벨 「주식 수」가 저장된다.
기억 장치(505)는, 입력 조작의 이력에 대해서는, 그 조작에 의해 입력된 파라미터를 처리부(580)에 의한 처리에 그대로 이용할지 여부를 설정한 정보를 더 기억하면 좋다. 도면 중에서는 이 정보를 「공개」라고 하는 필드 내의 체크 인(印)으로 나타낸다. 즉, 「공개」가 체크된 조작 이력에 대해서는, 그 조작에 의해 입력된 파라미터 대신에 새로운 파라미터의 입력이 요구된다. 한편, 「공개」가 체크되지 않은 조작 이력에 대해서는, 그 조작에 의해 입력된 파라미터는 그대로 처리부(580)에 의한 처리에 이용되어, 새로운 파라미터의 입력이 요구되지 않을 뿐만 아니라 그 파라미터 자체도 비공개가 된다.
기억 장치(505)는, 조작의 이력에 대응시켜, 그 조작을 대행한 결과로서 표시해야 하는 표시 오브젝트의 배치를 나타내는 정보를 더 기억하더라도 좋다. 그와 같은 배치를 나타내는 정보는, 도면 중에서는 「레퍼런스」라고 하는 엔트리에 의해 나타난다. 즉, 어떤 「레퍼런스」라고 하는 엔트리는, 그보다 조작 순서가 앞인 각 조작의 이력에 대응되어 있고, 이들 조작을 대행하여 표시된 웹 페이지로부터 원하는 표시 오브젝트를 선택하여 사용자에게 표시하는 것을 나타낸다.
다음에, 도 7 내지 도 9를 참조하여 사용자가 이력을 편집하는 작업의 일례와, 그에 관련하는 기능을 설명한다.
도 7은 표시부(520)의 제1 표시예를 나타낸다. 표시부(520)는, 제1 화면인 웹·브라우저(102) 및 제2 화면인 이력 표시 화면(108)을 표시한다. 웹·브라우저(102)는 기존의 웹·브라우저와 마찬가지이다. 즉, 예컨대, 웹·브라우저(102)는, 「URL:」을 붙인 어드레스 입력 필드에 입력된 어드레스로부터 파일을 판독한다. 이 파일에는, 웹 페이지로서 표시하는 복수의 표시 오브젝트에 대해 이들의 배치를 트리 구조로 나타낸 데이터가 저장되어 있다. 구체적으로, 이 파일은 HTML(Hyper Text Markup Language) 또는 XML(eXtensible Markup Language) 등의, 데이터를 구조화하여 기술하기 위한 언어로 기술되어 있더라도 좋다. 그리고 웹·브라우저(102)는, 이 파일을 판독하여 구문 해석함으로써, 이들의 표시 오브젝트를 포함하는 웹 페이지를 표시한다.
한편, 이력 표시 화면(108)에는 사용자가 웹·브라우저(102)를 조작한 이력이 표시된다. 구체적으로, 이력 취득부(510)는, 이력 표시 화면(108) 내의 원형의 버튼이 포인팅·디바이스 등에 의해 클릭되면 이력의 취득을 시작한다. 이력 취득부(510)는, 시작 후에 사용자가 웹·브라우저(102)를 조작한 이력을 취득하여 기억 장치(505)에 순차적으로 저장한다. 사용자가 웹·브라우저(102)를 조작한 이력이면, 그 조작이 예컨대 복수의 웹 사이트에 걸쳐 행해진 것이라도, 한 묶음의 이력으로서 기억 장치(505)에 저장된다. 저장된 이력은 이력 표시 화면(108)에 표시된다. 이력 취득부(510)는, 이력 표시 화면(108) 내의 사각형의 버튼이 클릭되면 이 력의 취득을 종료하여, 그 결과를 파일에 보존한다.
사용자는, 이력 표시 화면(108) 상에서 이력을 자유롭게 편집할 수 있다. 예컨대, 사용자는 이력 표시 화면(108) 내인 이력을 드래그·앤드·드롭하여, 다른 이력과의 사이의 조작 순서를 교체시키더라도 좋다. 또한, 사용자는 어떤 이력을 삭제하더라도 좋다. 이들 조작을 받아서, 이력 취득부(510)는, 기억 장치(505) 내에서 이력의 기억 순서를 교체하거나 또는 기억 장치(505)로부터 이력을 삭제한다. 또한, 사용자는 이력 표시 화면(108)의 화면 상에서 이력에 포함시켜 기억된 라벨을 편집하더라도 좋다. 또한, 파라미터 설정부(530)는, 이력으로서 취득된 파라미터를 그대로 처리부(580)에 의한 처리에 이용할지 여부의 설정을, 이 이력 표시 화면(108)에 있어서 접수하더라도 좋다. 예컨대, 사용자가 이력 표시 화면(108)에 일람 표시된 어떤 이력을 클릭할 때마다, 이력으로서 취득된 파라미터를 그대로 처리부(580)에 의한 처리에 이용하는 설정(즉, 전술한 「비공개」의 설정) 및 새로운 파라미터의 입력을 접수하는 설정(즉, 전술한 「공개」의 설정)이 교대로 전환된다.
도 8은 표시부(520)의 제2 표시예를 나타낸다. 사용자가 웹·브라우저(102) 중의 표시 오브젝트를 클릭하면, 웹·브라우저(102)는 콘텍스트 메뉴를 표시한다. 그 중의 「엘리멘트의 참조 추가」는, 조작을 대행한 결과로서 표시하는 표시 오브젝트를 이력에 관련시키는 지시를 나타낸다. 예컨대, 사용자가 「95.19」라고 하는 표시 오브젝트를 선택하여 「엘리멘트의 참조 추가」를 선택하면, 오브젝트 선택부(540)는, 이 「95.19」라고 하는 표시 오브젝트의 배치를 취득하여, 이력 표시 화면(108)에 표시되어 있는 이력에 관련시켜 기억 장치(505)에 저장한다. 이 결과, 처리부(580)는, 관련시켜진 그 조작을 대행하여 표시된 웹 페이지로부터, 관련시켜진 이 배치에 있는 표시 오브젝트를 선택하여, 관련시켜진 그 조작에 대응하는 처리의 결과로서 출력한다. 선택된 표시 오브젝트는, 사용자에게 표시되더라도 좋고, 다른 프로그램에 대하여 출력되어, 해당 다른 프로그램의 입력으로서 이용되더라도 좋다.
관련시킴의 조작은, 상기와 같은 콘텍스트 메뉴로부터의 선택으로 실현되더라도 좋지만, 그 외에 포인팅·디바이스의 드래그·앤드·드롭 등에 의해 실현되더라도 좋다. 즉, 예컨대, 오브젝트 선택부(540)는, 「95.19」 등의 표시 오브젝트를 드래그하여 이력 표시 화면(108) 내의 이력에 드롭하는 조작을 접수하면, 그 표시 오브젝트의 배치를 취득하고, 그 이력에 대응시켜 기억 장치(505)에 저장하더라도 좋다. 이와 같이, 사용자가 관련시킴을 지시할 수 있는 것과 같은 조작이면 그 종류는 묻지 않는다.
표시 오브젝트가 반복 요소인 경우에는, 이들 표시 요소를 일괄하여 배열로서 취득하고자 하는 경우가 있다. 이하, 도 9를 참조하여 다수의 표시 오브젝트를 효율적으로 선택할 수 있도록 하는 기능을 설명한다.
도 9는 표시부(520)의 제3 표시예를 나타낸다. 사용자가 표시 오브젝트를 지정하여, 콘텍스트 메뉴 중에서 「반복 요소의 추가」라고 하는 항목을 선택하면, 이것에 관련되는 복수의 표시 오브젝트가 통합하여 선택된다. 상세하게는, 오브젝트 선택부(540)는, 사용자가 지정한 표시 오브젝트에 더하여, 웹 페이지를 나타내 는 트리 구조의 데이터에 있어서 그 표시 오브젝트와 선조의 표시 오브젝트가 공통하는 다른 표시 오브젝트를 더 선택한다.
선조의 표시 오브젝트가 복수인 경우에는, 지정된 표시 오브젝트에 더하여 선택하는 다른 표시 오브젝트로서 복수의 후보가 존재한다. 예컨대, 「//body/table[1]/tbody[1]/tr「1」/td[1]」이라고 하는 XPath로 지정되는 표시 오브젝트가 지정된 경우에 있어서, 문서의 트리 구조에 있어서 그 선조에는, 「//body/table[1]/tbody[1]/tr[1]」이라고 하는 표시 오브젝트 외에, 「//body/table[1]/tbody[1]」이나 「//body/table[1]」 등이 있다[또, XPath의 기법에 있어서 요소명에 계속되는 괄호는 요소의 출현 순서를 나타냄. 예컨대 tr이라고 하는 요소가 복수 개 배치되는 경우라도 tr[2]라고 표기하면 그 중 2번째 요소를 일의(一意)적으로 지정할 수 있음.]. 이 때문에, 어떤 선조를 공통으로 할지에 따라, 다른 표시 오브젝트로서 복수의 후보가 존재한다.
이 경우, 오브젝트 선택부(540)는, 이들 복수의 후보 각각에 대해, 그 표시 오브젝트의 배치를 콘텍스트 메뉴에 표시하더라도 좋다. 예컨대, 「//body/table[1]/tbody[1]/tr「1」/td」와 같은 XPath는, 「//body/table[1]/tbody[1]/tr「1」」을 선조로서 공유하는 모든 td 태그를 나타내고 있다. 오브젝트 선택부(540)는, 이와 같이 복수의 태그를 리스트로서 통합하여 나타내는 XPath를, 선택의 후보 중 하나로서 표시하더라도 좋다.
또한, 오브젝트 선택부(540)는, 이상의 XPath의 예에 더하여, 사용자에 대하여 어떤 표시 오브젝트가 선택의 후보로 되어 있는지를 알기 쉽게 나타내기 위해, 선택의 후보로 되어 있는 각 표시 오브젝트를 프레임으로 둘러싸 웹·브라우저(102) 내에 표시하더라도 좋다. 예컨대, 도 9의 화면의 예에 있어서는, 당초에 지정된 「95.19」라고 하는 표시 오브젝트에 더하여 「Feb. 22」라고 하는 표시 오브젝트와, 「↓0.17」이라고 하는 표시 오브젝트 주위에 프레임이 표시되어 있다. 이 시점에서 사용자가 포인팅·디바이스의 버튼으로부터 손을 떼면, 오브젝트 선택부(540)에 의해 이들 표시 오브젝트가 통합하여 선택된다.
이상, 도 9에 나타내는 예에 의하면, 트리 구조에 있어서 선조를 공통으로 하는 복수의 표시 오브젝트가 있고, 이들 표시 오브젝트의 갯수가 가변인 경우라도, 미리 이들 표시 오브젝트를 일괄하여 지정할 수 있다. 또한, 일괄하여 지정한 표시 오브젝트의 집합은, 그 오브젝트 수의 출력 데이터가 아니라, 한 묶음의 배열형인 출력 데이터로 해서 처리의 대상으로 할 수 있다.
도 10은 서비스 정의(50)의 구체예를 나타낸다. 서비스 정의(50)는, 사용자의 조작을 대행하는 서비스·프로그램을 정의하는 정보이고, 그 서비스·프로그램이 제공하는 서비스의 명칭 외에, 그 서비스의 제공에 있어서 웹·브라우저(102) 내부에서 발생시켜야 하는 이벤트를 그 발생 순으로 기록하고 있다. 각 이벤트는, 예컨대 <step>이라고 하는 시작 태그와 </step>이라고 하는 종료 태그 사이의 기술(記述)에 의해 정의된다. 구체예로서 제2행에서 제8행까지 사이에는, 웹·브라우저(102)가 클릭 조작을 받았으면 발생하는 이벤트가 정의되어 있다. 제3행의 <action> 태그는, 이벤트의 종류 「click」을 나타낸다. 제4행의 <target> 태그는, 이벤트를 발생시키는 대상이 되는 표시 오브젝트를 나타낸다. 제5행에서 제7행에는 입력되는 파라미터나 라벨 등이 정의되지만 이 예에서는 미정의이다.
또한 제9행에서 제15행까지 사이에는, 웹·브라우저(102)가 웹 페이지에 파라미터를 입력하는 조작을 받았으면 발생하는 이벤트가 정의되어 있다. 제10행에는 이벤트의 종류 「type」이 정의되어 있고, 제11행에는 입력의 대상이 되는 표시 오브젝트의 배치가 정의되어 있다. 또한, 제12행에는 입력되는 파라미터가 정의되고, 제13행에는 입력란에 대응시켜 표시해야 하는 문자열인 라벨이 정의된다. 또한, 제14행에는 이 입력란을 표시해야 하는지 여부가 정의된다.
각 이벤트는, 사용자가 웹·브라우저(102)를 조작한 이력에 기초하여 생성부(560)에 의해 생성된다. 예컨대, 생성부(560)는, 사용자가 웹·브라우저(102)를 클릭한 이력에 기초하고, 이벤트의 종류를 「click」으로 하는 이벤트의 발생을 정의하여, 서비스 정의(50)에 포함시켜 기록한다. 또한, 생성부(560)는, 사용자가 웹·브라우저(102)를 조작하여 웹 페이지에 파라미터를 입력한 이력에 기초하고, 이벤트의 종류를 「type」으로 하는 이벤트의 발생을 정의하여, 서비스 정의(50)에 포함시켜 기록한다. 이에 더하여, 클라이언트·컴퓨터(100)는 이 서비스 정의(50)를 텍스트 에디터 등으로 편집 가능하게 관리하고 있더라도 좋다. 이에 따라, 프로그래밍에 숙련된 사용자는 이력으로부터 작성한 서비스를 용이하게 개변하여, 보다 바람직한 다른 서비스를 작성할 수 있다.
또한, 서비스 정의(50)는, 조작을 대행한 결과로서 표시하는 표시 오브젝트를 정의한다. 예컨대, 오브젝트 선택부(540)가 어느 배치의 표시 오브젝트를 조작 대행의 결과로서 표시하는 표시 오브젝트로서 선택하고 있던 경우에 있어서, 생성 부(560)는, 그 배치의 표시 오브젝트를 조작 대행의 결과 표시된 표시 오브젝트로부터 선택하여 출력해야 하는 것을 나타내는 이벤트의 발생을 정의한다. 구체적으로는, 제16행에서 제22행에 있어서, 이벤트의 종류 「ref」가 정의되어 있다. 이 이벤트는, 제18행에 나타내는 <target> 태그로 지정된 배치의 표시 오브젝트를 웹 페이지로부터 선택하는 것을 나타낸다. 또한, 결과로서 표시되는 표시 오브젝트에는, 제20행에서 정의된 「참조 1」이라고 하는 문자열이 대응시켜 표시된다.
이상에 예시한 서비스 정의는, 인터프리터형이나 컴파일러형의 언어 처리계에 의해, 클라이언트·컴퓨터(100) 상에서 직접 동작하는 서비스·프로그램으로 변환되어, 클라이언트·컴퓨터(100)에 의해 실행된다. 그리고 이 서비스·프로그램은, 클라이언트·컴퓨터(100)를 입력 접수부(570) 및 처리부(580)로서 기능시킨다. 이 외에, 서비스 정의는 서버·컴퓨터(200)에 송신되어 축적되더라도 좋고, 반대로, 서버·컴퓨터(200)에 축적된 다른 서비스 정의가 클라이언트·컴퓨터(100)에 판독되어 실행되더라도 좋다.
도 11은 클라이언트·컴퓨터(100)가 조작 이력에 기초하여 서비스·프로그램을 생성하는 처리의 흐름을 나타낸다. 이력 취득부(510)는, 사용자가 웹·브라우저(102)를 조작하여 1 이상의 웹 사이트로부터 2 이상의 서비스를 받은 이력을 취득하여, 기억 장치(505)에 저장한다(S1100). 예컨대, 이력 취득부(510)는, 포인팅·디바이스의 클릭 조작, 및 포인팅·디바이스에 의해 클릭된 표시 오브젝트의 배치의 조(組)를 이력으로서 취득하더라도 좋다. 또한, 이력 취득부(510)는, 파라미터의 입력 조작, 입력처의 표시 오브젝트의 배치 및 입력된 파라미터의 조를 이력 으로서 취득하더라도 좋다. 이 경우에는 이력 취득부(510)는, 파라미터의 입력란에 첨부된 라벨을 더 취득하더라도 좋다. 또한, 이력 취득부(510)는, 웹·브라우저를 기동하는 조작, 및, 기동한 웹·브라우저에 있어서 표시시키는 웹 페이지의 어드레스의 조를 이력으로서 취득하더라도 좋다. 나아가서, 이력 취득부(510)는, 표시 오브젝트를 드래그·앤드·드롭하는 조작, 및 드래그되는 표시 오브젝트의 식별 정보, 및 드롭처의 표시 오브젝트의 식별 정보의 조를 이력으로서 취득하더라도 좋다.
표시부(520)는, 기억 장치(505)에 저장된 조작의 일람을 이력 표시 화면(108)에 표시한다(S1110). 그리고 클라이언트·컴퓨터(100)는, 이력이 나타내는 조작의 각종 설정 변경에 대해 조작을 접수한다(S1120). 예컨대, 파라미터 설정부(530)는, 이력으로서 취득된 조작 중, 사용자가 웹 페이지에 파라미터를 입력하는 조작에 대해, 이력으로서 취득된 파라미터를 처리부(580)에 의한 처리에 그대로 이용할지 여부를 사용자의 지시에 기초하여 설정한다. 매회 동일한 파라미터를 입력하는 조작에 대해, 그대로 그 파라미터를 이용하는 설정을 행하면, 조작 대행시마다 매회 동일한 파라미터를 입력하는 수고를 생략할 수 있다. 또한, 이력 취득부(510)는, 이력의 일부를 추가 또는 삭제하는 조작이나, 조작 순서를 교체하는 조작을 접수하더라도 좋다. 이에 따라, 이력 취득 중의 조작 미스의 이력 등을 삭제할 수 있기 때문에, 조작 미스를 하더라도 처음부터 이력 취득을 다시 하지 않아도 되므로, 편리하다. 또한, 이력 취득부(510)는, 이력에 포함시켜 취득한 라벨을 편집하는 조작을 접수하더라도 좋다. 이에 따라, 후에 이용할 때를 상정하여 알기 쉬 운 표시를 실현할 수 있다.
오브젝트 선택부(540)는, 사용자가 조작한 웹·브라우저(102)에 표시된 웹 페이지 중에서, 사용자의 지시에 기초하여 표시 오브젝트를 선택하고, 그 표시 오브젝트의 웹 페이지 중에 있어서의 배치를 조작의 이력에 대응시켜 기억 장치(505)에 저장한다(S1130). 검색부(550)는, 기억 장치(505)에 액세스하여, 웹 페이지에 파라미터를 입력하는 제1 조작의 이력, 및, 그 제1 조작보다 조작 순서가 뒤인 다른 제2 조작의 이력을 구별하여 검색한다(S1140). 생성부(560)는, 클라이언트·컴퓨터(100)를 후술하는 입력 접수부(570) 및 처리부(580)로서 기능시키는 서비스·프로그램을 생성한다.
도 12는 클라이언트·컴퓨터(100)가 서비스·프로그램에 기초하여 사용자의 조작을 대행하는 처리의 흐름을 나타낸다. 클라이언트·컴퓨터(100)는, 우선, 사용자의 조작을 대행하는 지시에 따라 웹·브라우저를 기동한다. 이 웹·브라우저는 처리부(580)에 의한 처리를 실현하기 위해 편의적으로 기동되는 것이기 때문에, 사용자에게는 보이지 않거나 또는 보기 어렵도록 설정되는 것이 바람직하다. 그리고 클라이언트·컴퓨터(100)는 이 웹·브라우저에 대하여 이하의 처리를 행한다. 입력 접수부(570)는, 이력으로서 취득된 파라미터를 처리부(580)에 의한 처리에 이용하지 않는 설정이 행해진 제1 조작에 대해, 새로운 파라미터의 입력을 접수한다(S1200). 구체적으로, 입력 접수부(570)는, 이 새로운 파라미터를 입력하기 위한 입력란을 표시함과 함께, 그에 대응하여 이 제1 조작의 이력에 포함시켜 취득된 라벨이 나타내는 문자열을 표시하더라도 좋다. 한편, 입력 접수부(570)는, 이력으로 서 취득된 파라미터를 처리부(580)에 의한 처리에 이용하는 설정이 행해진 제1 조작에 대해서는, 새로운 파라미터의 입력을 접수하지 않는다.
처리부(580)는, 이 새로운 파라미터의 입력에 따라, 이 새로운 파라미터를 웹 페이지에 입력하는 처리와, 이 제1 조작보다 조작 순서가 뒤인 제2 조작에 미리 정해진 처리를 이 순서로 순차적으로 실행한다(S1210). 이들 처리는, 이들 각 조작을 웹·브라우저(102)가 받았으면 발생하는 이벤트를, 웹·브라우저(102)에 있어서 발생시키는 지령을, 웹·브라우저(102)에 대하여 송신함으로써 실현된다. 이벤트의 발생은, 구체적으로는, 이벤트를 발생시키는 API(Application Programming Interface)를, 발생시키는 이벤트의 종류, 입력해야 하는 파라미터, 및, 이벤트를 발생시키는 대상이 되는 표시 오브젝트의 배치 등을 인수로서 호출함으로써 실현된다. 이 API는, 플러그인·프로그램에 의해 제공되는 것이라도 좋지만, 예컨대 웹·브라우저(102)나 운영 체제에 의해 제공되는 것이라도 좋다.
개별의 조작에 대응하는 구체예는 이하와 같다. 이력으로서 취득된 파라미터를 처리부(580)에 의한 처리에 이용하지 않는 설정이 행해진 제1 조작에 대해, 처리부(580)는, 파라미터가 입력되었으면 발생하는 이벤트의 종류, 입력처의 표시 오브젝트의 배치, 및, 입력된 새로운 파라미터를 인수로 하여, 웹·브라우저에 있어서 이벤트를 발생시키는 API를 호출한다. 클릭 조작에 대해, 처리부(580)는, 포인팅·디바이스에 의해 클릭된 표시 오브젝트의 배치, 및, 포인팅·디바이스가 클릭되었으면 발생하는 이벤트의 종류를 인수로 하여, 웹·브라우저에 있어서 이벤트를 발생시키는 API를 호출한다.
또한, 이력으로서 취득된 파라미터를 처리부(580)에 의한 처리에 이용하지 않는 설정이 행해진 제1 조작에 대해서는, 처리부(580)는, 파라미터가 입력되었으면 발생하는 이벤트의 종류, 입력처의 표시 오브젝트의 배치, 및, 이력으로서 저장한 파라미터를 인수로 하여, 웹·브라우저에 있어서 이벤트를 발생시키는 API를 호출한다. 또한, 드래그·앤드·드롭 조작에 대해, 처리부(580)는, 드래그·앤드·드롭이라고 하는 조작을 나타내는 조작의 종류, 드래그되는 표시 오브젝트의 식별 정보, 및, 드롭처의 표시 오브젝트의 식별 정보를 인수로서, 웹·브라우저에 있어서 이벤트를 발생시키는 API를 호출한다. 또한, 웹·브라우저의 기동 조작에 대해, 처리부(580)는, 웹 페이지의 어드레스를 인수로서 웹·브라우저를 기동하는 API를 호출한다.
그리고 처리부(580)는, 각 조작에 대응하는 처리를 행한 웹·브라우저에 표시된 웹 페이지로부터, 조작 이력에 대응시켜 저장된 배치에 대응하는 표시 오브젝트를 선택하여, 사용자의 조작을 대행한 결과로서 표시한다(S1220).
도 13은 조작 이력에 기초하는 2개의 동작예를 대비하여 나타낸다. 도 13 좌측에 나타낸 바와 같이, 입력 조작의 이력이 복수 취득되고, 조작을 대행한 결과로서 표시해야 하는 표시 오브젝트가 복수 개 설정되는 경우가 있다. 이 경우, 검색부(550)는, 우선, 입력 조작인 제1 조작(1300)을 검출한다. 그리고 검색부(550)는, 그보다 뒤인 조작 순서로서, 조작을 대행한 결과로서 표시해야 하는 표시 오브젝트가 설정된 조작보다 뒤인 다음 입력 조작보다 앞인 조작을 제2 조작(1310)으로서 검출한다. 이에 더하여, 검색부(550)는, 그 후의 입력 조작인 제3 조작(1320) 및 그보다 조작 순서가 뒤인 다른 제4 조작(1330)을 검출한다. 그리고 이 경우에는, 클라이언트·컴퓨터(100)는, 사용자의 지시에 따라, 모든 파라미터가 입력되고 나서 일괄하여 조작을 대행하는 동작, 또는, 일부의 파라미터가 입력될 때마다 조작의 일부만큼을 분할하여 대행하는 동작을 선택적으로 행한다.
일괄하여 조작을 대행하는 동작은 이하와 같다. 입력 접수부(570)는, 제1 조작(1300)에 의해 입력된 파라미터 대신에 웹 페이지에 입력해야 하는 새로운 파라미터에 더하여, 제3 조작(1320)에 의해 입력된 파라미터 대신에 웹 페이지에 입력해야 하는 새로운 파라미터의 입력을 사용자로부터 더 접수한다. 이들 파라미터의 입력에 따라, 처리부(580)는, 제1 조작(1300)에 대응하는 새로운 파라미터를 웹 페이지에 입력하는 처리, 제2 조작(1310)에 미리 대응시켜진 처리, 제3 조작(1320)에 대응하는 새로운 파라미터를 웹 페이지에 입력하는 처리, 및, 제4 조작(1330)에 미리 대응시켜진 처리를 웹·브라우저에 대하여 이 순서로 순차적으로 행한다. 이와 같이, 일괄하여 조작을 대행하는 동작에 있어서는, 모든 입력 조작에 대응하는 새로운 파라미터가 입력되는 것이 동작 시작의 조건이 된다.
일부씩 분할하여 대행하는 동작은 이하와 같다. 입력 접수부(570)는, 우선, 제1 조작(1300)에 의해 입력된 파라미터 대신에 웹 페이지에 입력해야 하는 새로운 파라미터의 입력을 사용자로부터 접수한다. 그리고 처리부(580)는, 이 새로운 파라미터의 입력에 따라, 이 새로운 파라미터를 웹 페이지에 입력하는 처리, 및, 제2 조작(1310)에 미리 대응시켜진 처리를 웹·브라우저에 대하여 이 순서로 순차적으로 행한다. 이 시점에서 이미 대행한 조작에, 조작의 결과로서 표시해야 하는 표시 오브젝트가 설정되어 있는 경우에는, 처리부(580)는, 조작을 대행하여 표시한 웹·브라우저로부터 그 표시 오브젝트를 선택하여 사용자에게 표시한다.
다음에, 입력 접수부(570)는, 처리부(580)가 제2 조작(1310)에 미리 대응시켜진 처리를 행함에 따라, 제3 조작(1320)에 의해 입력된 파라미터 대신에 웹 페이지에 입력해야 하는 새로운 파라미터의 입력을 사용자로부터 더 접수한다. 그리고 처리부(580)는, 이 새로운 파라미터의 입력에 따라, 이 새로운 파라미터를 웹 페이지에 입력하는 처리, 및, 제4 조작(1330)에 미리 대응시켜진 처리를 웹·브라우저에 대하여 이 순서로 순차적으로 행한다. 이와 같이, 분할하여 조작을 대행하는 동작에 있어서는, 일부의 입력 조작에 대응하는 새로운 파라미터가 입력되면, 그것에 의해 가능해지는 일부의 조작에 대응하는 처리가 시작된다.
조작 대행의 분할에 의해, 예컨대 이하와 같은 응용이 가능해진다. 사용자는, 주가의 정보 등을 얻기 위해, 정보 제공용 웹 페이지에 대하여 제1 조작(1300)에 의해 주식 코드를 입력한다. 그 후에, 사용자는 제2 조작(1310)을 거쳐 원하는 주가를 표시시킨다. 사용자는 그것을 보고 주식을 어떠한 가격이나 방법으로 주문할지를 판단한다. 그리고 사용자는 주식의 주문 가격이나 방법을 제3 조작(1320)에 의해 증권 회사의 웹 페이지에 입력한다. 제4 조작(1330)을 거쳐 주문 결과나 약정 결과가 사용자에게 표시된다. 이상과 같은 조작을 대행하는 경우에 있어서는, 사용자의 판단이나 주가 정보에 관계없이 보편적인 제2 조작(1310)이나 제3 조작(1340)은 자동화하고 싶더라도, 사용자의 판단에 기초하는 제1 조작(1300) 및 제3 조작은 대행시마다 새로운 파라미터를 입력시키는 것이 바람직하다. 나아가서, 제4 조 작(1330)에 대응하여 입력하는 파라미터, 예컨대 주문 가격 등은 제2 조작의 결과에 의존하여 사용자가 결정하는 것이다. 조작 대행의 분할에 의하면, 이러한 사용자의 필요에 응하여, 사용자의 판단이 필요한 장면에서는 조작 대행을 중단하고 새로운 파라미터의 입력을 요구할 수 있다.
이상, 도 1 내지 도 13을 참조하여 사용자의 조작을 대행시키는 서비스·프로그램의 작성을 지원하는 처리 기능에 대해 설명해왔다. 이 처리 기능에 의하면, 일반 사용자가 간단한 조작에 의해 자신의 조작을 대행시키는 서비스·프로그램을 작성할 수 있다. 그리고 이 서비스·프로그램은 HTTP 요청의 대행이 아니라 조작의 대행을 실현하는 것이므로, 최근 일반적이 된 동적으로 구성을 변화시키는 웹 페이지로의 조작이나, 복수의 웹 페이지에 걸치는 조작을 충실히 재현할 수 있다. 이러한 조작을 재현하는 프로그램에 의하면, 2 이상의 웹 사이트에서 제공되는 복수의 기존 서비스라도 이들을 조합하여 새로운 서비스를 제공시킬 수 있다.
다음에, 다른 서비스를 제공 가능하게 하는 예를 도 14 내지 16을 참조하여 설명한다. 도 14는 표시부(520)의 다른 표시예를 나타낸다. 표시부(520)는, 제1 화면인 웹·브라우저(102) 및 제2 화면인 이력 표시 화면(108)을 표시한다. 웹·브라우저(102)는, 「URL:」을 붙인 어드레스 입력 필드에 입력된 어드레스로부터 파일을 판독하여 표시한다. 이 결과 표시된 웹·사이트는, 입력란(72)에 우편번호가 입력되면, 그 우편번호에 해당하는 도시를 검색하여 그 명칭을 문자열로서 표시하는 것이다.
사용자가 입력란(72)에 우편번호를 입력하면, 이력 표시 화면(108)은 그 입 력의 조작의 이력을 표시한다. 이 이력에 라벨을 대응시키기 위해서는, 사용자는 입력 조작 직후에, 라벨을 입력하기 위한 입력란(75)에 라벨을 나타내는 문자열을 입력하면 된다. 이것을 받아서, 이력 취득부(510)는, 이 이력에 대응시켜 라벨을 저장한다. 저장된 결과는 이력 표시 화면(108)에도 표시된다. 여기서는, 라벨로서 입력란(72)에 입력한 문자열 「Zip」이 이력 표시 화면(108)에 표시된다.
도 15는 표시부(520)의 다른 표시예를 나타낸다. 사용자가 입력란(72)에 우편번호를 입력하면, 웹 사이트의 기능에 의해 검색 결과의 도시명이 표시된다. 이 도면의 예에서는 우편번호 「10001」에 대응하는 도시명으로서 「New York」가 표시된다. 사용자가 이 도시명을 포인팅·디바이스로 클릭한 후, 우측 클릭하면, 콘텍스트 메뉴(82)가 표시된다. 그 중 「엘리멘트의 참조 추가」를 사용자가 선택하면, 웹 페이지 중에 있어서의 이 「New York」이라고 하는 문자열의 배치를 나타내는 정보가 이력 취득부(510)에 의해 취득되어, 이력에 대응시켜 기억 장치(505)에 저장된다.
이 시점에서 사용자가 입력란(75)에 라벨을 나타내는 문자열을 입력하면, 사용자의 조작을 대행한 결과로서 표시되는 표시 오브젝트의 배치에 대응시켜, 이 라벨이 기억 장치(505)에 저장된다. 이것은, 사용자의 조작을 대행했을 때에, 그 결과로서 표시하는 표시 오브젝트에 대응시켜 표시하기 위해 이용된다. 입력란(75)에 입력된 라벨은, 기억 장치(505)에 저장됨과 함께 이력 표시 화면(108)에도 표시된다. 이 결과, 도시명 「New York」의 배치에는, 라벨 「City」가 대응시켜져 저장된다. 또한, 동일한 조작을 주명인 「NY」에 대해서 행하고, 라벨로서 「State」를 입력하면, 주명 「NY」의 배치에는 라벨 「State」가 대응시켜져 저장된다.
도 16은 표시부(520)의 다른 표시예를 나타낸다. 사용자는, 이와 같이 하여 이력 취득부(510)에 의해 취득되어 기억 장치(505)에 저장된 이력에, 명칭을 붙일 수 있다. 이 명칭은, 클라이언트·컴퓨터(100)를 입력 접수부(570) 및 처리부(580)로서 동작시키는 프로그램, 혹은 이 프로그램의 동작을 정의하는 정의 데이터의 명칭으로서 이용된다. 예컨대, 사용자가 입력란(90)에 라벨 「City Search」를 입력하여, 이력을 파일로서 보존하는 취지의 조작을 행하면, 프로그램 혹은 정의 데이터에 이 라벨이 대응시켜져 보존된다.
다음에, 작성한 이 서비스·프로그램을 실행하기 위한 인터페이스, 및, 이 서비스·프로그램을 다른 서비스·프로그램과 조합하여 실행시키는 처리 기능에 대해 도 17 내지 도 28을 참조하여 설명한다.
도 17은 서비스·프로그램을 조합하여 애플리케이션·프로그램을 개발하는 환경과, 그에 관련되는 화면 표시를 나타낸다. 웹·브라우저(102)의 화면에서, 애플리케이션·프로그램을 개발하기 위한 URL이 입력되면, 웹·애플리케이션·서버(202)에 의해, 개발 환경용 모듈이, 애플리케이션 관리 모듈(260)로부터 클라이언트·컴퓨터(100)에 다운로드된다. 이 결과, 웹·브라우저(102)에는, 도 17에 나타낸 바와 같은 화면이 표시되어, 개발 환경의 사용이 가능해진다.
개발 환경은, 서비스 모델 표시부(162)와, 애플리케이션 편집부(164)와, GUI 부품 표시부(166)와, 서비스 리스트 표시부(168)와, 데이터 허브(170)와, 특성 편집부(172)라고 하는 복수 개의 영역으로 이루어진다. 이 실시예에서는, 서비스 모 델 표시부(162)와 GUI 부품 표시부(166)가, 거기서부터 GUI 부품을 애플리케이션 편집부(164)에 페이스트할 수 있는 팰릿 영역이다. 이들 영역은, 이 실시예에서는, 타일형으로 구분된 영역이지만, 개개의 영역에서 서로 중첩을 허용하는 멀티 윈도우 표시 방식으로 실장되더라도 좋다.
GUI 부품 리스트 표시부(166)는, 상세한 것은 나타내지 않지만, 버튼, 편집 영역, 메모, 라벨, 콤보 박스, 라디오 버튼 등의 GUI 부품을 표시하고, 거기서부터 애플리케이션 편집부(164)에, GUI 부품을 드래그·앤드·드롭 가능하다. 서비스 리스트 표시부(168)는, 웹·애플리케이션·서버(202)가 구비하는 서비스 관리부(256)에 의해 관리되는 서비스·프로그램을, 하드 디스크 드라이브(204)로부터 판독하여 그 리스트를 표시한다. 이 서비스·프로그램은, 시스템 관리자가 웹 서비스 액세스를 위해 미리 작성한 것이라도 좋다. 또한, 이 서비스·프로그램은, 도 1 내지 도 16을 참조하여 설명한 여러가지 기능에 의해 작성된 서비스·프로그램이라도 좋다.
서비스 모델 표시부(162)는, 서비스 리스트 표시부(168)에서 선택되어 있는 서비스의, 트리거(Trigger) 요소로서 나타난 입력 요소와, 아웃풋(Output)으로서 나타난 출력 요소를, 계층적이고 도식적으로 표시하는 영역이다. 이들 표시된 입력 요소와 출력 요소는, 애플리케이션 편집부(164) 혹은 후술하는 데이터 허브(170)에 드래그·앤드·드롭 가능하고, 또한, 애플리케이션 편집부(164) 혹은 데이터 허브(170)로부터 드래그·앤드·드롭 가능하다.
서비스의 출력 요소로서, 단순한 텍스트 문자열 이외에, 예컨대 XML로 구조화된 리스트를 취할 수 있다. 출력 요소가 단순한 텍스트 문자열인 경우는, 거기서 부터 데이터 허브(170)에 드래그·앤드·드롭되었을 때, 데이터 허브(170)에서 차지하는 셀은 단일하지만, 출력 요소가 리스트인 경우는, 거기서부터 데이터 허브(170)에 드래그·앤드·드롭되었을 때, 데이터 허브(170)에서, 해당 리스트에 포함되는 문자열 또는 숫자 수의 셀을 차지하고, 또한 그 셀 각각에, 리스트에 대응하는 문자열 또는 숫자가 저장됨을 이해하길 바란다.
애플리케이션 편집부(164)는, GUI 부품 리스트 표시부(166)로부터 GUI 부품을, 서비스 모델 표시부(162)로부터 트리거 요소, 입력 요소 혹은 출력 요소를 각각 드래그·앤드·드롭 가능하다. 이와 같이 하여 작성된 각종 요소나 GUI 부품의 정의는, 복수의 서비스·프로그램을 조합한 애플리케이션·프로그램을 정의하는 것으로서, 웹·애플리케이션·서버(202)의 애플리케이션 관리부(258)에 의해 관리되어, 하드 디스크 드라이브(204) 등에 저장된다.
서비스 모델 표시부(162)의 트리거 요소는, 애플리케이션 편집부(164)에 페이스트하여, 프로그램을 실행시킨 상태에서 클릭하면, 그 서비스에 지정된 URL로의 액세스를 시작시킨다. 서비스 모델 표시부(162)에 표시된 서비스의 입력 요소란, URL에 액세스할 때에 주어지는 파라미터이다. 예컨대, http://www.CitySearch.com/Search/CGI?&zipcode=98231과 같은 액세스가 행해질 때, zipcode가 파라미터 입력 요소(이하, 단순히 파라미터라고도 칭함)이고, 98231이 그 내용이다. http://www.CitySearch.com/Search/CGI?&zipcode=2428502&coutry=Japan과 같이, 파라미터는 복수 개 취할 수 있다. 또, 웹 서비스는, 반드시 입력 파라미터 또는 요 소를 갖는다고는 한정하지 않고, 입력 요소가 없는 웹 서비스도 있을 수 있음을 이해하길 바란다. 예컨대, 단순히 현재의 그리니치 표준시(Greenwich standard time)를 되돌리는 것과 같은 웹 서비스이면, 파라미터는 불필요하다.
한편, 웹 사이트에 액세스했을 때 반환되는 데이터는 HTML, XML, 또는 JavaScript 언어의 사양의 일부를 이용한 비교적 가벼운 데이터 교환 포맷인 JSON(JavaScript Object Notation)이다. 이와 같이, 웹 사이트에 액세스했을 때 반환되는 데이터는 구조화된 데이터일 수 있기 때문에, 서비스 모델 표시부(162)의 출력 요소로서, 드래그·앤드·드롭 가능한 단위도, 반환되는 XML의 리스트 전체 또는 그 리스트의 일부인 다양한 형태를 취할 수 있다.
또한, 이 실시예에서, 웹 사이트 또는 웹 서비스에 액세스될 때는, 적합하게는, Ajax이라고 칭해지는 기술에 기초하는, XMLHttpRequest라고 칭해지는 서버와의 비동기 통신이 이용된다. 이 기술을 이용함으로써, 화면의 재기록을 신속화하고 데이터 통신량을 저감할 수 있다. 단, 통상의 HTTP 프로토콜의 커맨드를 이용하는 것이라도 좋다.
데이터 연휴 영역으로서의 데이터 허브(170)는, 적합하게는, 스프레드 시트(표 계산 프로그램이라고도 칭해짐)의 외관의 인터페이스를 갖는 것이며, 종횡으로 구분된 구역으로 이루어진다. 이들 구역을, 스프레드 시트 프로그램의 관용(慣用)에 따라 A1, A2, B1 등의 이름을 갖는 셀로 칭하는 것으로 한다. 각 셀에는, 사용자가 값을 넣을 수도 있고, 애플리케이션 편집부(164)에 페이스트된 GUI 부품으로부터 드래그·앤드·드롭 가능하며, 스프레드 시트에서 잘 알려진 형식인 =A1+B1나 =A1&","&B1과 같은 계산식을 넣을 수도 있다. 어떠한 식을 허용할지는, JavaScript 등을 사용한 프로그래밍의 코드에 의존한다. 한편, 이들 각 셀을, 반대로, 애플리케이션 편집부(164)에 페이스트되어 있는 GUI 부품, 혹은, 서비스 모델 표시부(162)에 표시되어 있는 서비스의 입력 요소를 수신처로서 드래그·앤드·드롭 가능하다. 즉, 이 실시예에서는, 데이터 허브(170)는, 상기와 같은 드래그·앤드·드롭 및 셀 사이의 여러가지 계산 기능을 제공하도록 JavaScript의 기능을 이용하여 제조되어 있다.
또한, 데이터 허브(170)에는, 웹 서비스의 출력 요소로서, XML 등으로 기술된 리스트 출력 요소가 페이스트되는 일이 있고, 그와 같은 경우, 리스트 출력 요소가 데이터 허브(170)에 드래그·앤드·드롭되면, 리스트에 포함되는 요소의 수만큼의 셀을 차지하게 된다. 이와 같이, 리스트로부터 드래그·앤드·드롭된 복수의 셀에 대해서는, 통계 처리를 행할 필요성이 있을 수 있기 때문에, 이 실시예에서는, =SUM(A1..E1)과 같은 합계 함수, =AVERAGE(A1..E1)과 같은 평균 함수, =STDEVA(A1..E1)과 같은 표준 편차 함수, =MAX(A1..E1)과 같은 최대 함수, =MIN(A1..E1)과 같은 최소 함수 등 여러가지 통계 함수도 준비되어 있다. 이러한 수식 처리의 JavaScript에 의한 실장은, 프로그래밍 기법으로서 확립된 것이기 때문에, 특별히 상술하지 않는다.
또한, 데이터 허브(170)에서, 사용자가 수식을 입력한 셀은, 일반적으로는, 서비스 모델 표시부(162)에 표시된 서비스 모델의, 입력 요소, 트리거 요소 등에 드래그·앤드·드롭되어 관련시켜진다. 그러나, 이러한 요소 상이 아니라, 예컨대 애플리케이션 편집부(164)의 공백 영역에 직접 드래그·앤드·드롭함으로써, 거기에, 텍스트 입력 영역의 GUI 부품을 자동적으로 페이스트하고, 거기에, 드래그·앤드·드롭의 기초가 된 데이터 허브(170)의 셀 값이 관련시켜지도록, 도 17의 클라이언트 개발 환경의 기능을 설정해 둘 수도 있다. 예컨대, GUI 부품 리스트 표시부(166)로부터 애플리케이션 편집부(164)의 공백 영역으로의 드래그·앤드·드롭은, 관용적인 기술에 의해, 선택한 GUI 부품의 애플리케이션 편집부(164) 상으로의 배치를 야기한다. 따라서, 이것과 동일한 기술을 이용하여, 데이터 허브(170)의 셀로부터 애플리케이션 편집부(164)의 공백 영역으로의 드래그·앤드·드롭이 행해지는 것에 응답하여, 드래그·앤드·드롭된 개소에, 텍스트 입력 영역을 나타내는 GUI 부품을 페이스트하고, 계속해서, 그 텍스트 입력 영역에, 드래그·앤드·드롭 본래의 데이터 허브(170)의 셀로부터, 관련시킴을 행한다고 하는 처리가 자동적으로 행해지도록, 클라이언트 개발 환경에 기능을 부여할 수 있다.
특성 편집부(172)는, 일단 애플리케이션 편집부(164)에 페이스트되어, 마우스의 클릭에 의해 선택된 GUI 부품 또는 서비스의 입출력 요소의 색, 폰트, 표시/비표시, Enable/Disable 등의 속성을 설정 혹은 변경하기 위한 것이다.
다음에, 애플리케이션의 개발을 위한 조작을 구체예에서 설명한다. 여기서, 사용자는, (1) CitySearch라고 하는 서비스·프로그램에, zipcode를 입력함으로써, 도시와 주의 데이터를 입수하고, (2) 그 도시와 주의 데이터를 조합하여 MapCode라고 하는 서비스·프로그램에 액세스하며, (3) 그 도시의 위도와 경도를 얻는다고 하는 애플리케이션·프로그램을 작성하는 것을 의도하고 있다. 단, CitySearch는 도시와 주의 데이터를 개별적으로 반환하지만, MapCode는 도시와 주를 조합한 데이터를 요구한다. 그러한 경우를 자동적으로 처리하기 위해, 본 실시예의 특징이 적합하게 이용된다.
도 18을 참조하면, 애플리케이션의 신규 개발의 초기 화면이 나타나 있다. 이 화면에서, GUI 부품 리스트 표시부(166)와 특성 편집부(172)는, 이하의 설명에서는 관련성이 낮기 때문에, 표시를 생략하고 있음에 유의하기 바란다. 그런데, 이 화면에서, 사용자는, 서비스 리스트 표시부(168)로부터, 화살표(1402)로 나타낸 바와 같이, CitySearch를 서비스 모델 표시부(162)에 드래그·앤드·드롭한다.
그렇게 하면, 도 19에 나타낸 바와 같이, 서비스 모델 표시부(162)에, CitySearch의 입출력을 포함하는 구조가 표시된다. 이 구조는, 시스템 관리자 등에 의해 CitySearch에 대응하여 미리 작성된 것이라도 좋다. 또한, 서비스·프로그램이 도 1 내지 도 16을 참조하여 설명한 기능에 의해 작성된 경우에 있어서는, 서비스 정의에 있어서 「공개」로 설정된 입력 파라미터가 서비스 모델 표시부(162)에 있어서 입력 요소 또는 트리거 요소로서 표시된다. 또한, 서비스·프로그램을 실행한 결과로서 표시해야 한다고 해서 설정된 표시 오브젝트가, 서비스 모델 표시부(162)에 있어서 출력 요소로서 표시된다.
여기서, 도 19에서, 서비스 모델 표시부(162)로부터, CitySearch의 트리거를, 화살표(1502)로 나타낸 바와 같이 애플리케이션 편집부(164)에 드래그·앤드·드롭하고, CitySearch의 입력(1)을, 화살표(1504)로 나타낸 바와 같이 애플리케이션 편집부(164)에 드래그·앤드·드롭한다.
그렇게 하면, 도 20에 나타낸 바와 같이, 트리거를 드래그·앤드·드롭한 개소는 「Go」라고 하는 문자를 포함하는 버튼(1602)이 되고, 입력(1)을 드래그·앤드·드롭한 개소는 텍스트 입력란(1604)이 된다.
여기서, 도 21에 나타낸 바와 같이, 텍스트 입력란(1604)에, 10001이라고 하는 zipcode를 넣어, 버튼(1602)을 클릭하면, 웹·애플리케이션·서버(202)를 통해, CitySearch에 zipcode=10001이라고 하는 파라미터를 갖고 액세스가 도모되어, CitySearch는 <City>에 'New York'을, <State>에 'NY'를 반환한다. 여기서, 사용자는, 서비스 모델 표시부(162)의 CitySearch의 출력의 <City>를 화살표(1702)로 나타낸 바와 같이, 데이터 허브(170)의 셀(A1)에 드래그·앤드·드롭하고, 마찬가지로 출력의 <State>를 화살표(1704)로 나타낸 바와 같이, 데이터 허브(170)의 셀(B1)에 드래그·앤드·드롭한다.
그렇게 하면, 셀(A1)은 <City>에, 셀(B1)은 <State>에 각각 바인드되기 때문에, 도 22에 나타낸 바와 같이, 데이터 허브(170)의 셀(A1)에는 'New York'이 표시되고, 셀(B1)에는 'NY'가 표시된다.
그래서, 사용자는, 데이터 허브(170)의 셀(C1)에, 문자열 결합 연산자(&)를 이용하여 =A1&','&B1과 계산식을 넣어 행바꿈 키를 누른다. 그렇게 하면, 도 23에 나타낸 바와 같이, 그 계산식이 계산되어, 셀(C1)에는 'New York,NY'가 표시된다. 또, 이 실시예에서, 여기서의 연산자의 규칙은 통상의 스프레드 시트의 프로그램에서 관용의 형식이 되도록 JavaScript를 이용하여 코딩되어 있지만, =A1+','+B2와 같은 다른 프로그래밍 언어로 관용의 기법을 허용하도록 할 수도 있다. 또한, 문자 열 결합 연산자 이외에도, 가산, 감산, 그 밖의 수학적 함수 등 임의의 연산을 실현할 수 있는 것이 이 분야의 당업자에게는 명백할 것이다.
또한, 이 예에서는, 셀(A1)과 셀(B1) 양쪽에 웹 서비스로부터의 출력을 각각 저장했지만, 한쪽의 셀을, 사용자가 직접 셀에 쳐 넣은 문자열 혹은 다른 셀로의 참조를 포함하는 계산식으로 하는 등, 여러가지 응용예를 생각할 수 있다.
다음에, 도 24에 나타낸 바와 같이, 서비스 리스트 표시부(168)로부터, MapCode를 서비스 모델 표시부(162)의 임의의 영역에, 화살표(2002)로 나타낸 바와 같이 드래그·앤드·드롭한다. 그렇게 하면, 도 25에 나타낸 바와 같이, 서비스 모델 표시부(162)에는, MapCode의 입출력을 포함하는 구조가 표시된다. 이 구조는, 시스템 관리자에 의해 MapCode에 대응하여 미리 작성되어 있다.
그래서, 사용자는, 도 25의 화면에서, 데이터 허브(170)의 셀(C1)을 화살표(2102, 2104)로 나타낸 바와 같이, 서비스 모델 표시부(162) 내부의, MapCode의 트리거와 입력(1)에 각각 드래그·앤드·드롭한다. 입력(1)뿐만 아니라, 트리거에도 드래그·앤드·드롭하는 이유는, 데이터 허브(170)의 셀(C1) 값의 변경에 자동적으로 응답하여, 입력(1)을 파라미터로서, MapCode로의 액세스가 행해지도록 하기 위함이다.
또, 이 때, 셀(C1)을 직접 서비스 리스트 표시부(168)에 표시되어 있는 MapCode의 입력(1)에 드래그·앤드·드롭하는 대신에, MapCode의 입력(1)을 애플리케이션 편집부(164)에 일단 드래그·앤드·드롭하고, 그 애플리케이션 편집부(164)의 드래그·앤드·드롭한 개소에, 셀(C1)을 드래그·앤드·드롭하더라도 좋다. 그 래도, 셀(C1)의 값이, MapCode의 입력(1)에 제공된다고 하는 의미에서는 동일하지만, 이와 같이 해두면, 후에, 애플리케이션을 기동했을 때에, 화면에서 도중 경과로서의 MapCode의 입력(1)에 제공된 값을 사용자가 눈으로 볼 수 있다.
실제, MapCode의 트리거가, 이 드래그·앤드·드롭 조작에 응답하여, 무엇에도 관련시켜져 있지 않던 상태로부터 관련시켜진 상태로 변화함으로써, MapCode가 New York,NY라고 하는 파라미터로 액세스되고, MapCode는 뉴욕시의 위도와 경도를 각각 <latitude>=40.71, <longitude>=-75.59로서 반환한다. 그래서, 서비스 모델 표시부(162)로부터 애플리케이션 편집부(164)에, 화살표(2202, 2204)로 각각 나타낸 바와 같이, MapCode의 출력인 <latitude> 및 <longitude>를 드래그·앤드·드롭함으로써, 이들 값이 애플리케이션 편집부(164) 상에서 실제로 보이게 된다. 그 모습을 도 26에서 나타낸다.
이것으로 일단 애플리케이션은 완성했지만, 도 27에 나타낸 바와 같이, 후에, 사용자는 적절하게 애플리케이션·프로그램을 알기 쉽게 하기 위한 설명의 문자열(2302, 2304, 2306)을 추가하여, 애플리케이션·프로그램을 세이브한다. 이와 같이 하여 세이브된 애플리케이션·프로그램은, 사용자의 지시에 기초해서 기동하여 입력란을 표시하고, 파라미터의 입력에 따라 서비스의 제공을 시작한다.
예컨대, 입력 접수부(570)는, 우선 CitySearch를 제공하는 서비스·프로그램의 작용에 의해 동작을 시작하고, 텍스트 입력란(1604) 및 버튼(1602)을 표시하여, 입력 파라미터인 Zipcode를 접수한다. 그리고 이 파라미터의 입력을 조건으로, 처리부(580)는, 서비스 정의에 규정된 각종 이벤트를 웹·브라우저에 있어서 발생시 킨다. 이 처리는, 서비스·프로그램이 조작 이력에 기초하여 작성된 것인 경우에는 그 조작의 대행에 상당한다. 그리고 처리부(580)는, 조작을 대행한 결과로서 웹·브라우저에 표시된 웹 페이지로부터, 미리 설정된 표시 오브젝트를 선택하여 조작을 대행한 결과로서 표시한다. 예컨대, 도 27의 예에 있어서는, 텍스트 입력란(2206) 및 텍스트 입력란(2208)에 그 결과가 표시된다.
이상, 도 17 내지 도 27을 참조하여 설명한 예에 의하면, 사용자에 의한 직감적인 GUI 조작에 의해, 서비스·프로그램을 여러가지 GUI 요소와 조합하거나, 또는, 다른 서비스·프로그램과 조합하여 애플리케이션·프로그램을 작성할 수 있다. 이와 같이, 서비스·프로그램은 그 단독으로 동작하더라도 복수의 서비스를 조합할 수 있지만, 애플리케이션·프로그램의 일부품으로서 기능함으로써 더욱 고도한 처리를 실현할 수 있다.
도 28은 클라이언트·컴퓨터(100)의 하드웨어 구성의 일례를 나타낸다. 클라이언트·컴퓨터(100)는 호스트 컨트롤러(1082)에 의해 서로 접속되는 CPU(1000), RAM(1020) 및 그래픽 컨트롤러(1075)를 갖는 CPU 주변부와, 입출력 컨트롤러(1084)에 의해 호스트 컨트롤러(1082)에 접속되는 통신 인터페이스(1030), 하드 디스크 드라이브(1040) 및 CD-ROM 드라이브(1060)를 갖는 입출력부와, 입출력 컨트롤러(1084)에 접속되는 ROM(1010), 플렉서블 디스크 드라이브(1050) 및 입출력칩(1070)을 갖는 레거시(legacy) 입출력부를 구비한다.
호스트 컨트롤러(1082)는 RAM(1020)과, 높은 전송율로 RAM(1020)를 액세스하는 CPU(1000) 및 그래픽 컨트롤러(1075)를 접속한다. CPU(1000)는 ROM(1010) 및 RAM(1020)에 저장된 프로그램에 기초하여 동작하여, 각 부의 제어를 행한다. 그래픽 컨트롤러(1075)는, CPU(1000) 등이 RAM(1020) 내에 마련한 프레임 버퍼 상에 생성하는 화상 데이타를 취득하여, 표시 장치(1080) 상에 표시시킨다. 이 대신에, 그래픽 컨트롤러(1075)는, CPU(1000) 등이 생성하는 화상 데이타를 저장하는 프레임 버퍼를 내부에 포함하더라도 좋다.
입출력 컨트롤러(1084)는 호스트 컨트롤러(1082)와, 비교적 고속의 입출력 장치인 통신 인터페이스(1030), 하드 디스크 드라이브(1040) 및 CD-ROM 드라이브(1060)를 접속한다. 통신 인터페이스(1030)는, 네트워크를 통해 외부의 장치와 통신한다. 하드 디스크 드라이브(1040)는, 클라이언트·컴퓨터(100)가 사용하는 프로그램 및 데이터를 저장한다. CD-ROM 드라이브(1060)는, CD-ROM(1095)으로부터 프로그램 또는 데이터를 판독하여, RAM(1020) 또는 하드 디스크 드라이브(1040)에 제공한다.
또한, 입출력 컨트롤러(1084)에는, ROM(1010)과, 플렉서블 디스크 드라이브(1050)나 입출력 칩(1070) 등의 비교적 저속인 입출력 장치가 접속된다. ROM(1010)은, 클라이언트·컴퓨터(100)의 기동시에 CPU(1000)가 실행하는 부트 프로그램(boot program)이나, 클라이언트·컴퓨터(100)의 하드웨어에 의존하는 프로그램 등을 저장한다. 플렉서블 디스크 드라이브(1050)는, 플렉서블 디스크(1090)로부터 프로그램 또는 데이터를 판독하고, 입출력 칩(1070)을 통해 RAM(1020) 또는 하드 디스크 드라이브(1040)에 제공한다. 입출력 칩(1070)은, 플렉서블 디스크(1090)나, 예컨대 병렬 포트, 직렬 포트, 키보드 포트, 마우스 포트 등을 통해 각종 입출력 장치를 접속한다.
클라이언트·컴퓨터(100)에 제공되는 프로그램은, 플렉서블 디스크(1090), CD-ROM(1095) 또는 IC 카드 등의 기록매체에 저장되어 사용자에 의해 제공된다. 프로그램은, 입출력칩(1070) 및/또는 입출력 컨트롤러(1084)를 통해 기록 매체로부터 판독되어 클라이언트·컴퓨터(100)에 인스톨되어 실행된다. 프로그램이 클라이언트·컴퓨터(100) 등에 작용하여 행하게 하는 동작은, 도 1 내지 도 27에 있어서 설명한 클라이언트·컴퓨터(100)에 있어서의 동작과 동일하므로, 설명을 생략한다.
이상에 나타낸 프로그램은, 외부의 기억매체에 저장되더라도 좋다. 기억매체로서는, 플렉서블 디스크(1090), CD-ROM(1095) 외에, DVD나 PD 등의 광학 기록 매체, MD 등의 광자기 기록 매체, 테이프 매체, IC 카드 등의 반도체 메모리 등을 이용할 수 있다. 또한, 전용 통신 네트워크나 인터넷에 접속된 서버 시스템에 마련한 하드 디스크 또는 RAM 등의 기억 장치를 기록매체로서 사용하여, 네트워크를 통해 프로그램을 클라이언트·컴퓨터(100)에 제공하더라도 좋다.
이상, 본 발명을 실시 형태를 이용하여 설명했지만, 본 발명의 기술적 범위는 상기 실시 형태에 기재한 범위에 한정되지 않는다. 상기 실시 형태에 다양한 변경 또는 개량을 더할 수 있는 것이 당업자에 있어서 명백하다. 그와 같은 변경 또는 개량을 가한 형태도 본 발명의 기술적 범위에 포함될 수 있는 것이 특허청구범위의 기재로부터 분명하다.

Claims (10)

  1. 서비스·프로그램을 생성하기 위한 시스템으로서,
    기억 장치와,
    사용자가 웹·브라우저를 조작한 이력을 취득하여 상기 기억 장치에 저장하는 이력 취득부와,
    상기 기억 장치에 액세스하여, 웹 페이지에 파라미터를 입력하는 제1 조작의 이력과, 상기 제1 조작보다 조작 순서가 뒤인 이와 다른 제2 조작의 이력을 검색하는 검색부와,
    상기 사용자가 상기 웹·브라우저를 조작함으로써 제공을 받은 서비스를 제공하는 서비스·프로그램을 생성하여, 이 서비스·프로그램을 상기 기억 장치에 저장하는 생성부를 구비하고,
    상기 서비스·프로그램은, 컴퓨터로 하여금,
    상기 제1 조작에 의해 입력된 파라미터 대신에 상기 웹 페이지에 입력해야 하는 새로운 파라미터의 입력을 접수하는 입력 접수부와,
    상기 새로운 파라미터의 입력에 따라, 상기 새로운 파라미터를 상기 웹 페이지에 입력하는 처리를 행하고, 상기 제2 조작에 미리 대응시켜진 처리를 그 순서대로 순차적으로 상기 웹·브라우저에 대하여 행하는 처리부로서 기능시키는 것인, 시스템.
  2. 제1항에 있어서,
    상기 이력 취득부는, 상기 사용자가 상기 웹·브라우저를 조작하여 1 이상의 웹 사이트로부터 2 이상의 서비스를 받은 이력을 저장하고,
    상기 생성부는, 상기 사용자가 상기 웹·브라우저를 조작함으로써 제공을 받은 2 이상의 서비스를 조합하여 얻은 새로운 서비스를 제공하는 서비스·프로그램으로서, 상기 컴퓨터를 상기 입력 접수부 및 상기 처리부로서 기능시키도록 하는 프로그램을 생성하여, 이 프로그램을 상기 기억 장치에 저장하는 것인, 시스템.
  3. 제1항에 있어서,
    상기 기억 장치에 저장된 상기 제1 조작의 이력으로서 취득된 파라미터를 상기 처리부에 의한 처리에 이용할지 여부를 사용자의 지시에 기초하여 설정하고, 상기 설정 결과를 상기 기억 장치에 저장하는 파라미터 설정부를 더 구비하고,
    상기 이력으로서 취득된 파라미터를 상기 처리부에 의한 처리에 이용하지 않는 설정이 행해진 경우에, 상기 입력 접수부는 상기 제1 조작에 대한 새로운 파라미터의 입력을 접수하고, 상기 처리부는 상기 제1 조작에 대한 상기 새로운 파라미터를 상기 웹 페이지에 입력하는 처리를 행하며,
    상기 이력으로서 취득된 파라미터를 상기 처리부에 의한 처리에 이용하는 설정이 행해진 경우에, 상기 처리부는 상기 웹·브라우저에 대하여 상기 제1 조작에 미리 대응시켜진 처리를 행하는 것인, 시스템.
  4. 제1항에 있어서,
    상기 사용자가 조작한 상기 웹·브라우저상에 표시된 웹 페이지 중에서, 상기 사용자의 지시에 기초하여 표시 오브젝트를 선택하고, 상기 표시 오브젝트의 상기 웹 페이지내에서의 배치를 상기 조작의 이력에 대응시키고, 그 대응의 결과를 상기 기억 장치에 저장하는 오브젝트 선택부를 더 구비하며,
    상기 처리부는, 각 조작에 대응하는 처리를 행한 상기 웹·브라우저상에 표시된 웹 페이지로부터, 상기 기억 장치에 저장된 배치에 대응하는 표시 오브젝트를 선택하여, 상기 처리부에 의한 처리의 결과로서 상기 선택된 표시 오브젝트를 출력하는 것인, 시스템.
  5. 서비스·프로그램을 생성하기 위한 방법으로서,
    컴퓨터의 이력 취득부에 의해, 사용자가 웹·브라우저를 조작한 이력을 취득하여 상기 컴퓨터의 기억 장치에 저장하는 단계와,
    상기 컴퓨터의 검색부에 의해, 상기 기억 장치에 액세스하여, 웹 페이지에 파라미터를 입력하는 제1 조작의 이력과, 상기 제1 조작보다 조작 순서가 뒤인 이와 다른 제2 조작의 이력을 검색하는 단계와,
    상기 사용자가 상기 웹·브라우저를 조작함으로써 제공을 받은 서비스를 제공하는 서비스·프로그램을 생성하여, 이 서비스·프로그램을 상기 기억 장치에 저장하는 단계를 구비하고,
    상기 서비스·프로그램은, 컴퓨터로 하여금,
    상기 제1 조작에 의해 입력된 파라미터 대신에 상기 웹 페이지에 입력해야 하는 새로운 파라미터의 입력을 접수하는 입력 접수부와,
    상기 새로운 파라미터의 입력에 따라, 상기 새로운 파라미터를 상기 웹 페이지에 입력하는 처리를 행하고, 상기 제2 조작에 미리 대응시켜진 처리를 그 순서대로 순차적으로 상기 웹·브라우저에 대하여 행하는 처리부로서 기능시키는 것인, 방법.
  6. 서비스·프로그램을 생성하기 위한 프로그램으로서, 상기 프로그램은 기억 장치를 구비한 컴퓨터로 하여금,
    사용자가 웹·브라우저를 조작한 이력을 취득하여 상기 기억 장치에 저장하는 이력 취득부와,
    상기 기억 장치에 액세스하여, 웹 페이지에 파라미터를 입력하는 제1 조작의 이력과, 상기 제1 조작보다 조작 순서가 뒤인 이와 다른 제2 조작의 이력을 검색하는 검색부와,
    상기 사용자가 상기 웹·브라우저를 조작함으로써 제공을 받은 서비스를 제공하는 서비스·프로그램을 생성하여, 이 서비스·프로그램을 상기 기억 장치에 저장하는 생성부로서 기능시키고,
    상기 서비스·프로그램은, 컴퓨터로 하여금,
    상기 제1 조작에 의해 입력된 파라미터 대신에 상기 웹 페이지에 입력해야 하는 새로운 파라미터의 입력을 접수하는 입력 접수부와,
    상기 새로운 파라미터의 입력에 따라, 상기 새로운 파라미터를 상기 웹 페이지에 입력하는 처리를 행하고, 상기 제2 조작에 미리 대응시켜진 처리를 그 순서대로 순차적으로 상기 웹·브라우저에 대하여 행하는 처리부로서 기능시키는 것인, 프로그램.
  7. 서비스·프로그램을 생성하는 시스템으로서,
    기억 장치와,
    사용자가 웹·브라우저를 조작한 이력을 취득하여 상기 기억 장치에 저장하는 이력 취득부와,
    상기 사용자가 조작한 상기 웹·브라우저상에 표시된 웹 페이지 중에서, 상기 사용자의 지시에 기초하여 표시 오브젝트를 선택하고, 상기 표시 오브젝트의 상기 웹 페이지내에서의 배치를 상기 조작의 이력에 대응시키고, 그 대응의 결과를 상기 기억 장치에 저장하는 오브젝트 선택부와,
    상기 기억 장치에 액세스하여, 각각의 조작들의 이력을 검색하는 검색부와,
    상기 사용자가 상기 웹·브라우저를 조작함으로써 제공을 받은 서비스를 제공하는 서비스·프로그램을 생성하여, 이 서비스·프로그램을 상기 기억 장치에 저장하는 생성부를 구비하고,
    상기 서비스·프로그램은, 컴퓨터로 하여금,
    검색한 상기 각 조작들에 대응하는 처리를 상기 웹·브라우저에 대하여 상기 조작들의 순서로 행하고, 상기 각 조작들에 대응하는 처리를 행한 상기 웹·브라우 저상에 표시된 웹 페이지로부터, 상기 기억 장치에 저장된 배치에 대응하는 표시 오브젝트를 선택하여 출력하는 처리부로서 기능시키는 것인, 시스템.
  8. 제7항에 있어서,
    상기 사용자가 조작하는 상기 웹·브라우저를 표시하는 제1 화면과, 상기 기억 장치에 저장된 상기 조작들의 이력의 일람을 표시하는 제2 화면을 표시하는 표시부를 더 구비하며,
    상기 오브젝트 선택부는, 상기 제1 화면상의 표시 오브젝트를 상기 제2 화면상의 상기 조작들의 이력에 관련시키는 지시를 상기 사용자로부터 접수함으로써, 관련시켜진 조작들에 대응하는 처리의 결과로서 표시되는 상기 웹 페이지로부터 선택해야 하는 표시 오브젝트를 선택하는 것인, 시스템.
  9. 서비스·프로그램을 생성하기 위한 방법으로서,
    컴퓨터의 이력 취득부가, 사용자가 웹·브라우저를 조작한 이력을 취득하여 상기 컴퓨터의 기억 장치에 저장하는 단계와,
    컴퓨터의 오브젝트 선택부가, 상기 사용자가 조작한 상기 웹·브라우저상에 표시된 웹 페이지 중에서, 상기 사용자의 지시에 기초하여 표시 오브젝트를 선택하고, 상기 표시 오브젝트의 상기 웹 페이지내에서의 배치를 상기 조작의 이력에 대응시키고, 그 대응의 결과를 상기 기억 장치에 저장하는 단계와,
    상기 컴퓨터의 검색부가, 상기 기억 장치에 액세스하여, 각각의 조작들의 이 력을 검색하는 단계와,
    상기 사용자가 상기 웹·브라우저를 조작함으로써 제공을 받은 서비스를 제공하는 서비스·프로그램을 생성하여, 이 서비스·프로그램을 상기 기억 장치에 저장하는 단계를 구비하고,
    상기 서비스·프로그램은, 상기 컴퓨터로 하여금,
    검색한 상기 각 조작들에 대응하는 처리를 상기 웹·브라우저에 대하여 상기 조작들의 순서로 행하고, 상기 각 조작들에 대응하는 처리를 행한 상기 웹·브라우저상에 표시된 상기 웹 페이지로부터, 상기 기억 장치에 저장된 배치에 대응하는 표시 오브젝트를 선택하여, 이 선택된 표시 오브젝트를 출력하는 처리부로서 기능시키는 것인, 방법.
  10. 서비스·프로그램을 생성하기 위한 프로그램으로서, 상기 프로그램은 기억 장치를 구비한 컴퓨터를,
    사용자가 웹·브라우저를 조작한 이력을 취득하여 상기 기억 장치에 저장하는 이력 취득부와,
    상기 사용자가 조작한 상기 웹·브라우저상에 표시된 웹 페이지 중에서, 상기 사용자의 지시에 기초하여 표시 오브젝트를 선택하고, 상기 표시 오브젝트의 상기 웹 페이지내에서의 배치를 상기 조작의 이력에 대응시키고, 그 대응의 결과를 상기 기억 장치에 저장하는 오브젝트 선택부와,
    상기 기억 장치에 액세스하여, 각각의 조작들의 이력을 검색하는 검색부와,
    상기 사용자가 상기 웹·브라우저를 조작함으로써 제공을 받은 서비스를 제공하는 서비스·프로그램을 생성하여, 이 서비스·프로그램을 상기 기억 장치에 저장하는 생성부로서 기능시키고,
    상기 서비스·프로그램은, 상기 컴퓨터로 하여금,
    검색한 상기 각 조작들에 대응하는 처리를 상기 웹·브라우저에 대하여 상기 조작들의 순서로 행하고, 상기 각 조작들에 대응하는 처리를 행한 상기 웹·브라우저상에 표시된 웹 페이지로부터, 상기 기억 장치에 저장된 배치에 대응하는 표시 오브젝트를 선택하여, 이 선택된 표시 오브젝트를 출력하는 처리부로서 기능시키는 것인, 프로그램.
KR1020097020958A 2007-04-06 2008-04-04 서비스 프로그램을 생성하는 시스템, 방법 및 서비스 프로그램을 생성하기 위한 프로그램을 기록한 컴퓨터 판독가능 매체 KR101038896B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2007100842 2007-04-06
JPJP-P-2007-100842 2007-04-06

Publications (2)

Publication Number Publication Date
KR20090127158A true KR20090127158A (ko) 2009-12-09
KR101038896B1 KR101038896B1 (ko) 2011-06-07

Family

ID=39863894

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097020958A KR101038896B1 (ko) 2007-04-06 2008-04-04 서비스 프로그램을 생성하는 시스템, 방법 및 서비스 프로그램을 생성하기 위한 프로그램을 기록한 컴퓨터 판독가능 매체

Country Status (6)

Country Link
US (1) US8370750B2 (ko)
EP (1) EP2136292A4 (ko)
JP (1) JP5089684B2 (ko)
KR (1) KR101038896B1 (ko)
CN (1) CN101652748A (ko)
WO (1) WO2008126796A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101104612B1 (ko) * 2010-02-26 2012-01-12 (주)한국공간정보통신 사용자 참여형 정보서비스 조합 방법과, 정보서비스 조합 장치 및 조합 정보서비스 제공 장치
US9329878B2 (en) 2014-01-27 2016-05-03 Electronics And Telecommunications Research Instit Apparatus and method for providing virtual API for mashup service

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101528853B1 (ko) * 2007-12-14 2015-07-01 삼성전자주식회사 Api 서비스 방법과 api 매쉬업 생성 방법, 장치 및기록매체
US8793398B2 (en) * 2008-08-29 2014-07-29 Red Hat, Inc. Facilitating client server interaction
US8793339B2 (en) * 2008-08-29 2014-07-29 Red Hat, Inc. Facilitating client server interaction
US8627223B1 (en) * 2009-06-30 2014-01-07 Sprint Communications Company L.P. Customized execution sequences for portions of third party applications
US8990499B2 (en) * 2010-03-26 2015-03-24 Amazon Technologies, Inc. Caching of a site model in a hierarchical modeling system for network sites
US9367595B1 (en) * 2010-06-04 2016-06-14 Software AG USA Inc. Method and system for visual wiring tool to interconnect apps
GB2497018A (en) * 2010-08-10 2013-05-29 Ibm A method and system to automatically testing a web application
CN101976199A (zh) * 2010-10-15 2011-02-16 德讯科技股份有限公司 面向对象的中间件分布式系统开发平台
JP5560180B2 (ja) * 2010-12-24 2014-07-23 株式会社日立製作所 稼働ログ収集方法および装置
US8881303B2 (en) * 2011-07-28 2014-11-04 Xerox Corporation System and method for executing web services
US8924399B1 (en) * 2012-04-30 2014-12-30 Intuit Inc. Flexible page-viewing within a browser tab
JP6063235B2 (ja) * 2012-12-10 2017-01-18 株式会社日立システムズ 作業自動化支援システム及び作業自動化支援方法
WO2015009770A1 (en) * 2013-07-16 2015-01-22 Pinterest, Inc. Object based contextual menu controls
US11113022B2 (en) 2015-05-12 2021-09-07 D&M Holdings, Inc. Method, system and interface for controlling a subwoofer in a networked audio system
US11209972B2 (en) * 2015-09-02 2021-12-28 D&M Holdings, Inc. Combined tablet screen drag-and-drop interface
US10163170B2 (en) * 2015-08-19 2018-12-25 Sap Se Method and system for designing a product configuration
US10713428B2 (en) 2015-11-02 2020-07-14 Microsoft Technology Licensing, Llc Images associated with cells in spreadsheets
US10963635B2 (en) 2015-11-02 2021-03-30 Microsoft Technology Licensing, Llc Extensibility of compound data objects
US11023668B2 (en) * 2015-11-02 2021-06-01 Microsoft Technology Licensing, Llc Enriched compound data objects
US10506017B2 (en) 2016-05-20 2019-12-10 Adobe Inc. Manipulation of PDF file content through HTTP requests
CN106897347B (zh) * 2016-08-15 2021-12-24 创新先进技术有限公司 一种网页展示方法、操作事件记录方法及装置
US10725747B1 (en) * 2016-09-19 2020-07-28 Amazon Technologies, Inc. Dynamically customizable portal
CN107426291B (zh) * 2017-05-27 2020-03-20 贵州华宁科技股份有限公司 Cdm流程构建系统
CN111033465B (zh) * 2017-08-23 2024-03-29 日本电信电话株式会社 终端装置、ui扩展方法和记录介质
JP6874040B2 (ja) * 2018-07-27 2021-05-19 シチズン時計株式会社 プログラム作成システム、プログラム、及び、作成端末機器
KR102193157B1 (ko) * 2018-11-14 2020-12-18 에스피테크놀러지 주식회사 컨테이너 서비스 제공을 위한 장치 및 방법
US11397770B2 (en) * 2018-11-26 2022-07-26 Sap Se Query discovery and interpretation
US20220222733A1 (en) * 2019-05-09 2022-07-14 Honda Motor Co., Ltd. Agent system, agent server, control method for agent server, and program
JP2021140646A (ja) * 2020-03-09 2021-09-16 株式会社日立ハイテク ターゲットユーザ特徴抽出方法、ターゲットユーザ特徴抽出システム及びターゲットユーザ特徴抽出サーバ

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809250A (en) * 1996-10-23 1998-09-15 Intel Corporation Methods for creating and sharing replayable modules representive of Web browsing session
JP3957354B2 (ja) 1997-03-04 2007-08-15 株式会社Tana−X 吊り下げ板
US6189024B1 (en) * 1998-01-06 2001-02-13 Netscape Communications Corporation Browsing session recording playback and editing system for generating user defined paths and allowing users to mark the importance of items in the paths
US6195679B1 (en) * 1998-01-06 2001-02-27 Netscape Communications Corporation Browsing session recording playback and editing system for generating user defined paths and allowing users to mark the priority of items in the paths
US6360332B1 (en) * 1998-06-22 2002-03-19 Mercury Interactive Corporation Software system and methods for testing the functionality of a transactional server
JP3083805B2 (ja) * 1998-08-28 2000-09-04 インターナショナル・ビジネス・マシーンズ・コーポレ−ション ブラウザ操作自動実行システムおよびその方法
US7200804B1 (en) * 1998-12-08 2007-04-03 Yodlee.Com, Inc. Method and apparatus for providing automation to an internet navigation application
US6535912B1 (en) * 1999-08-31 2003-03-18 Lucent Technologies Inc. Method for creating and playing back a smart bookmark that automatically retrieves a requested Web page through a plurality of intermediate Web pages
AU2001294704A1 (en) * 2000-09-25 2002-04-08 Databites, Inc. System and method for automatic retrieval of structured online documents
JP2003156376A (ja) 2001-11-21 2003-05-30 Tokyo Gas Co Ltd ガスwi計測装置およびガス燃焼流量計測装置ならびにそれらに用いられるガス密度計測器
US7139978B2 (en) * 2002-03-01 2006-11-21 Sap Ag Recording user interaction with an application
JP2003271210A (ja) 2002-03-15 2003-09-26 Omron Corp コントローラ
US6679563B2 (en) 2002-06-25 2004-01-20 Shimano Inc. Bicycle wheel
US7269633B2 (en) * 2002-12-06 2007-09-11 International Business Machines Corporation Method and system for playback of dynamic HTTP transactions
US7359935B1 (en) * 2002-12-20 2008-04-15 Versata Development Group, Inc. Generating contextual user network session history in a dynamic content environment
JP2004224283A (ja) 2003-01-27 2004-08-12 Iseki & Co Ltd 苗移植機
JP2004362029A (ja) * 2003-06-02 2004-12-24 Yaskawa Electric Corp 制御機器設定システム
US20050060719A1 (en) * 2003-09-12 2005-03-17 Useractive, Inc. Capturing and processing user events on a computer system for recording and playback
JP2005187401A (ja) 2003-12-25 2005-07-14 Nisshin Oillio Group Ltd 蛋白質−キトサン複合体及びその製造方法
JP2005266954A (ja) * 2004-03-16 2005-09-29 Hitachi Software Eng Co Ltd 操作情報記録・再生装置
US7627821B2 (en) * 2004-06-15 2009-12-01 Microsoft Corporation Recording/playback tools for UI-based applications
JP2006048144A (ja) * 2004-07-30 2006-02-16 Tenik Kk 自動巡回装置,クライアント端末および自動巡回方法
US7653721B1 (en) * 2004-10-29 2010-01-26 Sun Microsystems, Inc. Mechanism for capturing high level events on user interface components
JP4631562B2 (ja) * 2005-06-27 2011-02-16 富士ゼロックス株式会社 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101104612B1 (ko) * 2010-02-26 2012-01-12 (주)한국공간정보통신 사용자 참여형 정보서비스 조합 방법과, 정보서비스 조합 장치 및 조합 정보서비스 제공 장치
US9329878B2 (en) 2014-01-27 2016-05-03 Electronics And Telecommunications Research Instit Apparatus and method for providing virtual API for mashup service

Also Published As

Publication number Publication date
US20100131869A1 (en) 2010-05-27
EP2136292A4 (en) 2013-02-27
JP5089684B2 (ja) 2012-12-05
WO2008126796A1 (ja) 2008-10-23
JPWO2008126796A1 (ja) 2010-07-22
CN101652748A (zh) 2010-02-17
KR101038896B1 (ko) 2011-06-07
US8370750B2 (en) 2013-02-05
EP2136292A1 (en) 2009-12-23

Similar Documents

Publication Publication Date Title
KR101038896B1 (ko) 서비스 프로그램을 생성하는 시스템, 방법 및 서비스 프로그램을 생성하기 위한 프로그램을 기록한 컴퓨터 판독가능 매체
JP4972254B2 (ja) リフレッシュ可能なWebクエリを作成するための統合された方法
JP4767828B2 (ja) コンピュータ用アプリケーション・プログラムの作成システム、方法、及びプログラム
JP4824110B2 (ja) ページに関するページ・レイアウトを継承するためのコンピュータで実行される方法、コンピュータ・プログラム、およびデータ処理システム
US8260844B2 (en) Information messaging and collaboration system
US8166396B2 (en) User interface rendering
JP2009543166A (ja) ページによってページ・レイアウトを定義するためのコンピュータで実行される方法、コンピュータ・プログラム、およびデータ処理システム
CN102937979A (zh) 网页的自定义优化
JP2004005568A (ja) レガシー・アプリケーションの高速gui体裁更新
CN110297636A (zh) 一种基于页面配置文件的页面自动生成和参数管理方法、系统和装置
JPH11167584A (ja) ページ遷移方法及びその実施装置並びにその処理プログラムとデータを記録した媒体
JP2012064207A (ja) ホスト装置及びホスト装置のコンテンツ表示方法
US20060085492A1 (en) System and method for modifying process navigation
CN113849257A (zh) 页面处理方法、装置、介质及电子设备
JP4976783B2 (ja) プログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体
US20200160273A1 (en) Geolocation web page generation system
TWI610183B (zh) 植基於ajax技術於控管網頁共通部分之運作系統
JPH09305366A (ja) 画面表示最適化方法
CN116932950A (zh) 一种页面加载方法、装置、设备及计算机可读存储介质
CN116149653A (zh) 构建列表页面的方法、装置、存储介质及计算机设备
JP2007011439A (ja) 表示処理装置、表示処理方法、Webシステム
KR20140115456A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 기록매체
Mori et al. Migrating the User Interface between the Digital TV and Mobile Devices
JP2005208718A (ja) 画面制御システム、その方法、及びそのプログラム
JP2003044392A (ja) 情報閲覧履歴出力システム、その方法、及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee