CA2612212A1 - Method, apparatus and computer programs for visual builder of automatic service invocations - Google Patents

Method, apparatus and computer programs for visual builder of automatic service invocations Download PDF

Info

Publication number
CA2612212A1
CA2612212A1 CA002612212A CA2612212A CA2612212A1 CA 2612212 A1 CA2612212 A1 CA 2612212A1 CA 002612212 A CA002612212 A CA 002612212A CA 2612212 A CA2612212 A CA 2612212A CA 2612212 A1 CA2612212 A1 CA 2612212A1
Authority
CA
Canada
Prior art keywords
region
user
sections
computer
response
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
CA002612212A
Other languages
French (fr)
Inventor
Hisatoshi Adachi
Masao Hara
Motoharu Inoue
Keisuke Nitta
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CA002612212A priority Critical patent/CA2612212A1/en
Publication of CA2612212A1 publication Critical patent/CA2612212A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Object To create a GUI-based application program that enables transfer of a result of arithmetic operations stored in plural input fields to another field.
Solving Means At the development stage of an application program, a first region for outputting data from a Web site, for example, is dragged and dropped to be associated with a first cell on a spreadsheet-like screen or a spreadsheet program. Next, a second region for outputting data from a Web site is dragged and dropped to be associated with a second cell on the spreadsheet-like screen. Then, a desired expression for calculating values or data in the first cell and the second cell is input to a third cell on the spreadsheet-like screen. The third cell can be dragged and dropped to a desired sheet or window of an application program.

Description

COMPUTER-ASSISTED APPLICATION PROGRAM CREATING SYSTEM, METHOD, AND PROGRAM PRODUCT
Technical Field [0001]
The present invention relates to a computer-assisted application program creating system and method, and more specifically, it relates to a system, method, and program product for creating an application program mainly based on a graphic user interface (GUI).
Background Art
[0002]
A program to be executed by a central processing unit (CPU), a computer for driving an input/output device, is essential in the operation of a computer. At the outset of development, a machine language program describes a command to be directly interpreted by the CPU and directly addresses a memory all the time. However, it is impossible to visually identify operations written to such programs. Thus, it is difficult to correct bugs in a program or add a new function.
[0003]
To overcome this drawback, an assembly language has been developed, which enables indirect addressing of a memory by use of a mnemonic that is easy for a user to understand, such as ADD. The program written in this way is translated into a machine language understandable by the CPU.
However, even arithmetic logic for describing simple addition is based on the CPU as a given value is stored in a register and the CPU references the value in the register, so a program should be developed by a highly skilled programmer still.
[0004]
The emergence of a compiler language developed in the 1950s markedly improved this difficult situation. If this language is used, for example, the addition can be described using a general expression like A = B + C. I/O processing can be described in an easy-to-understand form by use of a function such as WRITE. Such programming languages are called procedural languages, such as C, C++, and C#, and have been developed to incorporate various ideas.
[0005]
When such procedural languages appeared, data to be displayed on a screen or printed was just character strings like ABC or 1123. However, programming faces another challenge due to development of a graphic user interface (GUI) equipped with a pointing device such as a mouse or a multi-window system in the 1980s.
[0006]
That is, it is necessary to program the GUI to designate position coordinates where GUI components such as a button, a radio button, a component box, and a text box are displayed on a window, designate font and color of characters to be displayed, design a pull-down menu, and respond to events such as a mouse-click on a GUI component or switchover between an active window and inactive windows in real time. In early stages of GUI programming, these components are all described in source code and thus, it is very difficult to adapt to new concepts for built-in resources, event-driven programs, and the like, so even a programmer conversant in the procedural programming language such as C or C++ may have difficulty in mastering it.
[0007]
To overcome such a problem, a program development tool that enables description of a predetermined portion of a program through GUI operations such as mouse-clicking or dragging has been developed. Examples of this tool include Microsoft Visual Basic , Visual C++ , Borland Delphi (trademark), C++ Builder (trademark), and IBM VisualAge of Java (trademark). These program development tools can be used to appropriately arrange the GUI components only by dragging and dropping the components from a region where sample icons of the GUI components are arranged to a desired position. Further, two GUI components can be associated only by appropriately operating a mouse.
[0008]
Here, it is possible to arrange and associate the GUI
components; nevertheless, a programmer needs to describe a code or API function for actual processing on the basis of rules of a programming language such as C++, BASIC, or Java, which is still difficult for a beginner unaccustomed to computer operations.
[0009]
Incidentally, in recent years, a concept of communications between applications, which is called SOA
(service oriented architecture) or a Web service has been proposed. According to this, as GUI components of the above GUI-based development tool, a component capable of designating a URL is provided. If access to a specific URL
is made by use of a function of the GUI component, a Web site designated by the URL sends back information described in XML, for example. The development tool further prepares a display GUI component for displaying the information described in XML in tree form. Hence, the GUI component accessing the URL and the display GUI component are pasted to a predetermined region of an application program to thereby realize a Web application capable of automatically displaying the information sent back from the specific Web site.
[0010]
In the above Web application, it is conceivable that an inquiry is directed to a first Web service, plural responses are sent back, and the sent data is computed, after which an inquiry is sent to a second Web service on the basis of the computation result. For example, it is assumed that if a zip code is sent, the first Web service sends back a state name and a city name independently. On the other hand, if receiving a character string that combines the state name and the city name, the second Web service sends back the longitude and latitude thereof. As is apparent from the above, only a program deriving a state name and city name from a Zip code can be obtained only by pasting the GUI
components, and an appropriate inquiry cannot be sent to the second Web service. To obtain a program capable of sending an appropriate inquiry to the second Web service, a character string of the state name and a character string of the city name are combined, and a procedure of supplying the combined data to a GUI component that sends an inquiry to the second Web service should be described in a program code.
However, describing such a code is much more complicated than one might think because it is necessary to authenticate an ID of the GUI component, describe an operator for combining the character strings, or describe a code for associating the computation result with a GUI component that sends an inquiry to the second Web service. This operation is much more complicated than one might think, requires some experience, and is very difficult for a beginner.
[0011]
The inventors of the subject application have thought of the format of a spreadsheet as a user-friendly interface.
In practice, it is not so difficult for a user unaccustomed to a computer to enter numerical values or characters in the spreadsheet and calculate these values. The inventors have researched several examples of prior art from this point of view.
[0012]
Japanese Unexamined Patent Application Publication No.
2006-53894 discloses a technique of supporting a spreadsheet function designated by a user. According to the disclosed technique, in response to a determination that a specific cell includes a call of a user-defined function, values are calculated for the calling of the user-defined function by use of a user-defined function of another cell to thereby acquire a value in a specific cell on the basis of the calculated values.
[0013]
Japanese Unexamined Patent Application Publication No.
2005-353058 discloses a technique capable of displaying and changing a spreadsheet with a web browser application program.
[0014]

Japanese Unexamined Patent Application Publication No.
2004-208278 discloses the following technique: for data management between a host and a terminal connected through a network with a spreadsheet application program, a mail server is provided, and a position of a cell in the spreadsheet application program, input/output data designation, and input/output data are identified by a subject and mail text in a mail form of the mail server.
Data of the cell is input/output between the host and the terminal.
[0015]
However, these examples of prior art only propose the use of a spreadsheet as a display interface in the above Web application, and give no suggestion about assistance to write an application program with a spreadsheet-like interface.

[Patent Document 1] Japanese Unexamined Patent Application Publication No. 2006-53894 [Patent Document 1] Japanese Unexamined Patent Application Publication No. 2005-353058 [Patent Document 1] Japanese Unexamined Patent Application Publication No. 2004-208278 Disclosure of the Invention Problems to be Solved by the Invention
[0016]

Accordingly, the object of the present invention is to provide a system and method that assist a user unaccustomed to programming to write an application program with easy through GUI operations.
[0017]

The other object of the present invention is to provide a system and method capable of creating a GUI-based application program in such a way that a calculation result in plural input fields can be used in another field, without a high programming skill.
Means for Solving the Problems
[0018]
The Inventors have made extensive studies of data input/output between plural GUI components and a spreadsheet and found that the above objects can be attained by setting a spreadsheet-like screen including plural cells and providing an interface for transferring data between the GUI
components through the plural cells.
[0019]
That is, according to the present invention, at the development stage of an application program, a first region for outputting data from a Web site, for example, is dragged and dropped to be associated with a first cell on a spreadsheet-like screen or a spreadsheet program. Next, a second region for outputting data from a Web site is dragged and dropped to be associated with a second cell on the spreadsheet-like screen. Then, a desired expression for calculating values or data in the first cell and the second cell is input to a third cell on the spreadsheet-like screen.
The third cell can be dragged and dropped to a desired sheet or window of an application program.

Advantages
[0020]
As described above, according to the present invention, a desired application program can be created with even a novice skill through a pointing device such as a mouse.
Only in a calculation formula on a spreadsheet-like screen, a code needs to be written, but this operation is not difficult for a user accustomed to a general spreadsheet program.

Best Mode for Carrying Out the Invention
[0021]
Hereinafter, embodiments of the present invention will be described below with reference to the drawings. These embodiments are given for illustrating preferred modes of the invention and should not be construed as limiting the present invention. Further, the same components are denoted by identical reference numerals throughout the drawings unless otherwise specified.
Embodiment 1
[0022]
Embodiment 1 describes how to create an application program for a Web service. In particular, this embodiment is realized mainly on the basis of JavaScript as a kind of assembly language of a Web browser as a programming language in a system. However, the present invention is not limited to one particular programming language but C++, C#, Java , and other such programming languages that support drag-and-drop operations and can call an API function can be used.
Incidentally, the drag-and-drop operations used in the following embodiments are useful in binding displayed objects, but the binding operation is not limited to the drag-and-drop operation. Data can be associated by clicking a source object to select an item "associate" from a pull-down menu, for example and then clicking a target object.

Alternatively, as would be understood by those skilled in the art, a function equivalent to the drag-and-drop operations can be realized even with a Ctrl key, an Alt key, or an appropriate shortcut key that combines keys through appropriate programming.
[0023]
Hereinafter, this embodiment is described with reference to the drawings. Fig. 1 is a schematic block diagram of a hardware component according to this embodiment.
In Fig. 1, a client computer 100 and a server computer 200 are connected to a communication line 300 conforming to, for example, an Ethernet protocol. The communication line 300 is further connected to an Internet 500 through a proxy server 400 to allow access to various Web sites 602, 604, 606, ... through the Internet 500.
[0024]
The client computer 100 includes a hard disk 104, and a communication interface 106 conforming to the Ethernet protocol. In the hard disk 104, various programs used in this embodiment such as an operating system or Web browser 102 are stored in a memory in a loadable manner. The Web browser 102 may be any Web browser that can execute JavaScript; for example, Microsoft Internet Explorer , Mozilla Foundation FireFox , Apple Computer Safari , and the like can be used. As the operating system, any system can be used as long as the system supports a TCP/IP
communication function as a standard feature and can execute the Web browser. For example, Linux , Microsoft Windows XP , Windows 2000, Apple Computer Mac OS , and the like can be used, but the operating system is not limited to these.
[0025]
The server computer 200 includes a hard disk 204 and a communication interface 206 conforming to an Ethernet protocol. In the hard disk 204, various programs used in this embodiment such as an operating system, a Web browser, and a Web application server program (hereinafter also referred to as Web application server) 202 are stored in a memory in a loadable manner. The Web application server is a program for storing an HTML document or image information and transmitting information through a network such as the Internet in response to a request from a client application such as a Web browser. As the Web application server 202, any server such as Apache TomCat or Microsoft Internet Information Server can be used. As the operating system, a system that supports a TCP/IP communication function as standard equipment and can execute the Web application server can be used. For example, Linux , Microsoft Windows XP , Windows 2000, Apple Computer Mac OS , and the like can be used. However, the operating system is not limited to these.
[0026]
Referring next to Fig. 2, the hardware configuration of the client computer 100 and the server computer 200 is described in more detail.
[0027]
The client computer 100 includes a CPU 108 and a main memory 110, and is connected to a bus 109. The CPU is preferably based on 32-bit or 64-bit architecture. For example, Intel Pentium 4, AMD Athlon , and the like can be used. The bus 109 is connected to a display 114 such as an LCD monitor through a display controller 112. The display 114 is used for displaying a program such as the Web browser 102 as shown in Fig. 1. The bus 109 is further connected to the hard disk 104 and a CD-ROM drive 118 through an IDE
controller 116. In the hard disk 104, an operating system, the Web browser 102, and other such programs are stored in the main memory 110 in a loadable manner. The CD-ROM drive 118 can be used to additionally download a program from the CD-ROM to the hard disk 104 as needed. The bus 109 is further connected to a keyboard 122 as character input means and a mouse 124 as pointing means through a keyboard/mouse controller 120. The keyboard 122 is used for inputting an URL or other characters on a screen. The mouse 122 is used to drag and drop GUI components as described later or click on a menu button to start operations.
[0028]
The communication interface 106 is based on the Ethernet protocol and functions to physically connect the client computer 100 to the communication line 300. The communication interface 106 provides a network interface layer conforming to a TCP/IP communication protocol of a communication function of the operating system of the client computer 100. Incidentally, illustrated components are wired but may be connected through a wireless LAN conforming to the wireless LAN connection standards, for example, IEE802.11a/b/g.
[0029]
Further, the communication interface 106 may conform to an arbitrary protocol such as a token ring in place of the Ethernet protocol. The present invention is not limited to a particular physical communication protocol.
[0030]
The server computer 200 includes a CPU 208 and a main memory 210 and is connected to a bus 209. In the client computer 200 as well, a CPU is preferably based on 32-bit or 64-bit architecture. For example, Intel Pentium 4, Xeon , AMD Athlon , and the like can be used. The bus 209 is connected to a display 214 such as an LCD monitor through a display controller 212. Although described in detail below, the display 214 is used to create GUI components connected to the Internet, to write a program in JavaScript and register the program such that the client program 100 can call the registered program, or to register a user ID and password of a user accessing the program through the client program 100 with a system administrator.
[0031]
The bus 209 is connected to the hard disk 204 and a CD-ROM drive 218 through an IDE controller 216. In the hard disk 204, an operating system, the Web browser 102, and other such programs are stored in the main memory 210 in a loadable manner.
[0032]
The CD-ROM drive 218 is used to additionally download a program from a CD-ROM to the hard disk 204 as needed. The bus 209 is further connected to a keyboard 222 or a mouse 224 through the keyboard mouse controller 220. The keyboard 222 is used to input a URL or other characters on a screen.
The mouse 222 is used to create GUI components as described later with a system administrator.
[0033]

The communication interface 206 conforms to the Ethernet protocol, and functions to physically connect the server computer 200 to the communication line 300. The communication interface 206 provides a network interface layer with respect to a TCP/IP communication protocol of a communication function of the operating system of the client computer 200. In the server computer 200 as well, illustrated components are wired but may be connected through a wireless LAN based on the wireless LAN connection standards, for example, IEE802.11a/b/g.
[0034]
Further, the communication interface 206 may conform to an arbitrary protocol such as a token ring in place of the Ethernet protocol. The present invention is not limited to a particular physical communication protocol.
[0035]
In the hard disk 204 of the server computer 200, a program that provides a development environment of the present invention as described later is stored in addition to the above operating system and the Web application server 202. The development environment is obtained by combining a module provided by Dojo Toolkit as a library of JavaScript and a module written by the inventors in a JavaScript language. Refer to, for example, http://dojotoolkit.org/
for further information. The reason the development environment is stored in the hard disk 204 of the server computer 200 is that any client computer 100 that logs onto the server computer 200 downloads the development environment with the function of the Web application server 202 to start development.
[0036]
Incidentally, the present invention is not limited to a module written in JavaScript. The present invention can be accomplished by use of Jscript or VBSCript, known as examples of browser assembly languages. Further, it is possible to adopt a configuration that executes a Java program installed in HTML and sends back the execution result to a Web browser.
[0037]
Further, Figs. 1 and 2 show the client/server configuration, but the present invention can be accomplished with only the configuration of the client computer 100. In this case, the above development environment or module may be directly resident in the client computer 100. Under this condition, the computer directly accesses the Internet through the communication line 300 and the proxy server 400 as shown in Fig. 1.
[0038]
Furthermore, in Fig. 1, the client, computer and the server computer are provided inside a firewall, but the server computer may be provided outside the firewall. In this case, if there is a fear about security, a security level can be improved with several security mechanisms such as VPN.
[0039]
Referring next to Fig. 3, the function of the Web application server 202 in the server computer 200 is described in detail. In the block diagram of Fig. 2, the hardware component is illustrated concretely to some extent.
In this example, a more abstract block diagram of a software module is used where necessary.
[0040]
In Fig. 3, the Web application server 202 includes an application executing unit 252, a service calling unit 254, a service call management unit 256, and an application management unit 258.
[0041]
In the hard disk 204, a service call definition 262 and an application definition 264 are recorded in a callable manner. In the service call definition 262, plural service model elements (often implementing widgets) which access individual Web sites prepared by a predetermined system administrator are stored. Referring to Fig. 11, how to create and edit the service model elements is described later. In the application definition 264, an application program including a widget and other processing procedures defined in the service call definition 262 and pre-created by a user of the client computer 100 is stored.
[0042]
An authentication/authorization block 266 is, for example, a pair of user ID and password of a user of the client computer 100, which are prepared by a system administrator. These pieces of information are stored, for example, in the hard disk 204. If a user of the client computer 100 logs in the server computer 200, the user is required to enter the pair of user ID and corresponding password.
[0043]
The basic function of the application executing unit 252 interprets and executes a command sent from the Web browser 102. In the service calling unit 254, a URL or parameter is defined. The application executing unit 252 can directly access a Web site service 602 by use of the URL
or parameter in the service calling unit 254. Incidentally, the URL specified herein refers to, for example, http://www.xyz.com/Service/CGI/purchase.cgi. The parameter refers to cost or goods in http://www.xyz.com/Service/CGI/purchase.cgi?&cost=parml&good s=parm2. The service call management unit 256 calls an application program owned by a user of the client computer 100 from the application definition 264 in response to a request from the Web browser 102, and can edit/execute/delete the program. At this time, information about the owner of the application program can be derived from a user ID of the user that logs in the computer.
L0044]
The client module 260 in the Web application server 202 is generally stored in the hard disk 204, and downloaded to the client computer 100 in response to a request from the Web browser 102. In this embodiment, a typical format of the client module 260 is a JavaScript file represented by the expression js. That is, as a description method of JavaScript, there is a direct writing method, for example, <script type="text/javascript">
<!-actual JavaScript code//-->
</script>

and a description method that designates and calls a file name of JavaScript like <script src="abc.js"type="text/javascript"></script>
On the execution side, the method of designating and calling a file name of JavaScript is mainly used.
[0045]
Referring next to Fig. 4, an application management environment of the client computer 100 is described. If a user of the client computer 100 logs in the server computer 200, the application management module 260 that is preferably written in JavaScript is downloaded to the client computer 1 from the client computer 200 through the processing of the Web application server 202. Owing to the function of the application management module 260, a command including a user ID of a user that logs in the computer is sent to the application management unit 258. Then, the application management unit 258 searches the application definition 264 and sends back a name of an application program owned by the user to the client computer 100. As a result, an application list 150 as shown in Fig. 4 is displayed on a screen of the Internet browser 102 by virtue of the function of the application management module 260.
[0046]

The list 150 displays Applications 1 to 4 owned by the user, and an "Execute" button 152, an "Edit" button 154, and "Delete" button 156 are arranged on the right side. In response to a click with the mouse 124 (Fig. 2), an execution-environment module is downloaded from the server computer 200 to shift to an execution environment (as described later) of a program on a target line. In response to a click on the button 154 with the mouse 124, a development environment module is downloaded from the server computer 200 to shift to a development environment (Fig. 5) of a program on a target line. In response to a click on the button 156 with the mouse 124, a command to delete a program on the line is sent to the application management unit 258, and accordingly, the application management unit 258 deletes a corresponding application program from the hard disk 204. If a "New Document" button 158 is clicked, a development environment module is downloaded from the server computer 200 to shift to the development environment with the new document.
[0047]
Referring next to Fig. 5, the execution environment as a main feature of the present invention is described. By clicking the "Edit" button 154 or the "New Document" button 158 on the screen of the Web browser 102 of Fig. 4 with the mouse 124, the development environment module is downloaded from the application management module 260 to the client computer 100 to thereby display a screen of Fig. 5 on the Web browser 102. In this way, the development environment can be adapted. The development environment includes plural regions of a service model display unit 162, an application editing unit 164, a GUI component display unit 166, a service list display unit 168, a data hub 170, and a property editing unit 172. In this embodiment, the service model display unit 162 and the GUI component display unit 166 are pallet regions, GUI components of which can be pasted to the application editing unit 164.
[0048]
The GUI component list display unit 166 displays CUI
components such as a button, an edit region, a memo, a label, a component box, and a radio button, and the GUI components can be dragged and dropped from the unit 166 to the application editing unit 164.
[0049]
The service list displaying unit 168 lists services for accessing a Web service pre-created by a system administrator. Fig. 6 shows an example thereof. Fig. 6 illustrates CitySearch as a Web site that sends back a state name and a city name if a Zip code is input, Price.com as a Web site for checking a product price, WebMap as a Web site for displaying a map on the Web site, and MapCode as a Web site that sends back the longitude and latitude of a target city or state on the basis of its city or state name.
Incidentally, these Web sites are described for illustrative purposes and thus are not actual Web sites in some cases.
[0050]
The service model display unit 162 is a region where an input element of a service selected with the service list display unit 168 represented by "Trigger" element and an output element represented by "Output" are schematically displayed in a tree form. The displayed input element and output element can be dragged and dropped to the application editing unit 164 or data hub 170 as described below or dragged and dropped from the application editing unit 164 or data hub 170.
[0051]
As conceivable output elements of a service, there is a list structured in XML aside from a simple text character string. Assuming that the output element is a simple text character string, if the element is dragged and dropped to the data hub 170, a single cell occupies the data hub 170.
Assuming that the output element is a list, if the element is dragged and dropped to the data hub 170, as many cells as the number of character strings and numerical values in the list occupy the data hub 170, and character strings or numerical values corresponding to the list are stored in the cells.
[0052]
The application editing unit 164 can be used to drag and drop GUI components from the GUI component list display unit 166 and Trigger elements, input elements, or output elements from the service model display unit 162.
[0053]
The Trigger element of the service model display unit 162 is pasted to the application editing unit 164 and clicked in such a state that a program is being executed, and then an access to a URL designated by the service is permitted. The input element of a service displayed on the service model display unit 162 is a parameter supplied at the time of accessing a URL. For example, if an access code is http://www.CitySearch.com/Search/CGI?&zipcode=2428502&coutry =Japan, the zip code is a parameter input element (hereinafter simply referred to as parameter), and 98231 is details thereof. Plural parameters are conceivable like http://www.CitySearch.com/Search/CGI?&zipcode=2428502&coutry =Japan. Incidentally, the Web service does not always include input parameters or elements. A Web service having no input element is conceivable. For example, a parameter is unnecessary for a Web service that simply sends back data on current Greenwich mean time.
[0054]

On the other hand, a format of data sent back in response to an access to a Web site is HTML, XML, or JSON
(JavaScript Object Notation) as a relatively small data exchange format. In this way, data sent back in response to an access to a Web site can be structured data. Thus, as a unit that can be dragged and dropped as the output unit of the service model display unit 162, various formats such as all or a part of the sent XML list are conceivable.
[0055]
Further, in this embodiment, an asynchronous communication with a service is used to access a Web site or Web service; this communication is called XMLHttpRequest that is preferably based on Ajax. On the basis of the technique, screen rewriting can be accelerated and a data communication amount can be reduced. Here, a command of a general HTTP protocol may be used instead.
[0056]
The data hub 170 as a data associating region preferably includes an interface similar to a spreadsheet (also called spreadsheet program), and is divided into sections; the sections are arranged in matrix. These sections are referred to as cells named Al, A2, and B1 in accordance with the spreadsheet program. A user can input a value into each cell or a GUI component pasted to the application editing unit 164 can be dragged and dropped to each cell. Alternatively, a calculation expression in the spreadsheet form like =Al+Bl, or =A1&","&B1 can be input to each cell. Which expression is allowed depends on a code of programming based on JavaScript or the like. In contrast, each cell can be dragged and dropped to a GUI component pasted to the application editing unit 164 and an input element of a service displayed in the service model display unit 162. That is, in this embodiment, the data hub 170 can utilize the function of JavaScript to provide the above drag-and-drop function and various calculation functions between cells.
[0057]
As described above, an element output list described in XML may be pasted to the data hub 170 as an output element of a Web service. In this case, if the output element list is dragged and dropped to the data hub 170, as many cells as the number of elements in the list occupy the hub. In this way, it is necessary to compile data on plural cells dragged and dropped from the list. Thus, in this embodiment, statistical functions such as a cumulative function like =SUM(A1..E1), an average function like =AVERAGE(A1..E1), a standard deviation function like =STDEVA(A1..E1), the maximum function like =MAX(A1..E1), and the minimum function like =MIN(A1..E1) are prepared. The JavaScript-based installation with the formula translation is well established as a programming technique and its description is omitted here.
[0058]
In this embodiment, the drag-and-drop operation is carried out with the Dojo library tool kit as indicated by the following code.
Drag source side: var ds = new dojo.dnd.HtmlDragSource(domNode, dragSourceName);
Drop target side: var dt = new dojo.dnd.HtmlDropTarget(domNode, dropTargetName).

Further, information bound through drag-and-drop operations is saved in a declarative format (XML). A
notation example thereof is given below and instructs sourceWidget (a GUI component of a drag-and-drop source) named InputText_O to be associated with targetWidget (a GUI
component of a drag-and-drop target) named Action_0.
<Application:WidgetpropertyBinding sourceWldget =
"inputText_0" sourcePropertye="value" sourceEvent="setValue"
targetWidget="Action_0" targetProperty="value">
</Application:WidgetPropertyBinding>
Incidentally, those skilled in this field would understand that the application and notation of such a tool kit are given by way of example, and various equivalent techniques can be used. For example, an operating system such as Windows 2000 and Windows XP@ prepares some API
functions for drag-and-drop operations such as DragQueryPoint, so it is possible to call an appropriate function and perform processing.
[0059]
Further, the cell where a user inputs a numerical expression in the data hub 170 is dragged and dropped to an input element and trigger element of a service model displayed in the service model display unit 162 and associated therewith. However, a function of the client development environment of Fig. 5 can be set such that the cell can be directly dragged and dropped to a space of the application editing unit 164, for example, instead of dragging and dropping the cell onto the elements, to thereby automatically paste a GUI component of the text input region thereto and associate a value of the cell of the data hub 170 as a drag-and-drop source therewith. For example, if the cell is dragged and dropped to the space of the application editing unit 164 from the GUI component list display unit 166, the cell is laid on the application editing unit 164 of the selected GUI component by a general technique. Accordingly, it is possible to impart a function to a client development environment by use of a similar technique such that a GUI component representing a text input region is pasted to the drag-and-drop destination in response to a drag-and-drop operation to the space of the application editing unit 164 from the cell of the data hub 170, and the GUI component from the cell of the data hub 170 as the drag-and-drop source is associated with the text input region.
[0060]
The property editing unit 172 is intended to set or change attributes of a mouse-clicked GUI component or input/output elements of a service such as a color, a font, display/hide, or Enable/Disable.
[0061]
Fig. 9 schematically shows an example of how to associate plural Web services. In Fig. 9, a service 1 has inputl as input and <outputl> and <output2> as output. A
service 2 has inputl as input and <outputl> and <output2> as output. Services 3 and 4 each have inputl and input2 as input and <outputl> as output. A method of creating a widget including input and output illustrated in Figs. 7 and 9 is described below.
[0062]
Here, the following scenario is considered. That is, a result of computing <outputl> and <output2> of the service 1 is sent to inputl of the service 2. In response to the computation result, <outputl> and <output2> of the service 2 are directly sent to inputl and input2 of the service 3, and a result of computing <outputl> and <output2> of the service 2 is sent to input2 of the service 4. Then, a result of computing <outputl> and <output2> of the service 1 is sent to inputl of the service 4. Hence, <outputl> and <output2>
of the service 1 are dragged and dropped to cells Al and Bl of the data hub 170. A predetermined numerical expression of the cells Al and B1 is written to a cell Cl. Then, the cell Cl is dragged and dropped to inputl of service 2. Then, <outputl> and <output2> of the service 2 are respectively dragged and dropped to cells C2 and D2 of the data hub 170, respectively. A predetermined numerical expression of the cells C2 and D2 is written to a cell E2. Then, <outputl>

and <output2> of the service 2 are directly dragged and dropped to inputl and input2 of the service 3 not through the data hub 170. Further, the cell Cl of the data hub 170 is dragged and dropped to inputl of the service 4. The cell E2 of the data hub 170 is dragged and dropped to input2 of the service 4. Such a complicated scenario is not practical, but an extreme case is taken to explain an advantage of visual programming with a data hub of the present invention.
That is, if an interface such as the data hub 170 is omitted, a very complicated code should be written to realize a program of equivalent functions. According to the present invention, the program of equivalent functions can be readily realized only with an elementary skill in using a spreadsheet.

[0063]
Further, inputl of the service 1 is a field to which a user inputs information with a keyboard or the like. As schematically apparent from Fig. 9, in response to a click on the Trigger button, a designated Web site is accessed, and desired information is automatically supplied to the services 2, 3, and 4 through a designated cell of the data hub 170. Incidentally, in Fig. 9, the cell Cl is dragged and dropped to Trigger of the service 2 as well, and <outputl> of the service 2 is dragged and dropped to Trigger.
The cell E2 is dragged and dropped to Trigger of the service 4. This is to trigger change in value of a drag-and-drop source with an event handler named OhChange of JavaScript to automatically start the next service. With the above settings, if data in the cell Cl is changed in accordance with change in data of <outputl> and <output2> of the service 1, the trigger of the service 2, change in data of <outputl> and <output2> of the service 2, the trigger of the service 3, change of the cell E2, and the trigger of the service 4 are automatically performed in this order.
[0064]
Referring next to Fig. 10, an execution environment of a client is described. Referring back to Fig. 4, an "Execute" button 152 next to the application 1 is clicked, and then, a module concerning client execution environments among the application execution modules 260 is downloaded to the client computer 100 due to the function of the Web application server 202. The module concerning client execution environments includes an application definition interpreting unit 260a and an application display unit 260b.

The application 1 (Fig. 4) is selected this time, so the application definition 264 of the application 1 is downloaded from the application management unit 258 and executed with the application definition interpreting unit 260a. On the basis of the execution result from the application definition interpreting unit 260a, the selected application 1 is displayed on the screen of the Web browser 102 due to the function of the application display unit 260b, and displayed contents are updated in accordance with the execution.
[0065]
Incidentally, as apparent from Figs. 1 and 2, the client computer 106 can directly access the Web sites 602 to 606 via the proxy server 400 not through the server computer 200. However, there is a fear that a so-called cross site security hole may occur if the server computer 200 accesses an external Web site with the module downloaded module not through the server computer 200. To that end, in this embodiment, as shown in Fig. 10, an application executed by the module downloaded from the Web application server 202 certainly accesses an external Web site through the application executing unit 252 in the Web application server 202.
[0066]
Referring next to Fig. 11, a service call management environment is explained. The term service means a Web site that provides a service as indicated by CitySearch or Price.com in Fig. 8. If a user logs in a site through the service call management environment login screen (not shown) based on a predetermined user ID and password, the service call management environment module 260 is downloaded from the Web application server 202. As shown in Fig. 11, a menu including a registered service list display unit 180 and a service call definition unit 190 is displayed on the screen of the Web browser 102. Incidentally, in this embodiment, an authority to log in the service call management environment is more limited than an authority to log in the application management environment of Fig. 4. In general, only a system administrator is authorized. This is because a created widget of a service appears in the service list display unit 168 on the development screen of Fig. 5 and can be used by any user, so a reliable operation is necessary.
[0067]
Further, registered services are listed on the registered service list display unit 180 based on the service call definition 262 read from the server service call management unit 256 of the Web server application program 202. In practice, a name of the registered service (for example, CitySearch of Fig. 8) is displayed on entries 182, 184, and 186. The "Edit" button 186 on the right side thereof is clicked to display a menu for editing services (not shown). Alternatively, the "Delete" button 189 is mouse-clicked to thereby delete the service from the service call definition 262. Regarding each of the registered services, a URL (for example, http://www.CitySearch.com/Search/CGI) and a name (for example, CirySearch) of a service determined by a system administrator are registered in the service profile definition unit.
[0068]

In the input parameter definition unit 194, an input parameter name, and name and attributes of output data are registered for each of the registered services in the input parameter definition unit 194. For example, if the name is CitySearch, the input parameter name is zipcode, and the name and attribute of output data are <City> and <State>, and a text, respectively.
[0069]
If a system administrator designates a URL, inputs an appropriate parameter, and clicks the "Execute" button 197, the service 602 of the Web site is accessed through the service call management unit 202 of the Web server application program 202. Then, the execution result is displayed on the output display unit 196. As attributes of the output data, HTML, XML, and JASON are conceivable aside from the text in accordance with properties of the Web service. The output data in XML is a structured document, so the whole data can be listed or data in a specific tag can be retrieved. Accordingly, a system administrator which creates a widget of a service appropriately prepares a view for listing the entire output XML data or a view for displaying data in the specific tag. The thus-created view is read from the input parameter definition unit 194 and displayed in the service model displaying unit 162 as indicated by <City> and <State> in Fig. 7 in accordance with the selected service.
[0070]
If satisfied with the displayed result as a result of clicking the "Execute" button 197, a system administrator clicks the "Save" button 198. Then, based on the used parameter and information of the output view, the definition of the parameter is stored in the input parameter definition unit 194 in association with the service.
[0071]
When a system administrator clicks the "New Document"
button 199, a screen with a blank URL field and a blank parameter field (not shown) appears. Thus, the system administrator inputs an appropriate URL or various parameters, and clicks the "Execute" button 197. If pleased with the result, the system administrator clicks the "Save"
button 198. Then, a new URL and name are stored in the service call definition unit 190, and parameters associated therewith are stored in the input parameter definition unit 194. In this way, a new service call definition 262 is created and stored.
[0072]
One embodiment of the present invention has been described. Further explanation about an application development scenario with reference to a flowchart of Fig.
12 would help understand the present invention.
[0073]
In Fig. 12, a user of the client computer 100 opens the Web browser 102 and logs in the application in step 1202.
Then, communications with the Web application server 202 are established through the network 300 of Fig. 1, and the application management unit 258 displays a log-in screen (not shown) in response. If a user enters a user ID and a password in response thereto, the application management unit 258 references the authentication/authorization module 266 (Fig. 3) to check and authenticate the user ID and password.
[0074]
If these are authenticated, the menu of the application management environment of Fig. 4 is displayed in the Web browser 102. Here, a procedure advances to step 1204, and a user selects an existing document from the application list 150 and clicks the "Edit" button 154 or "New Document"
button 158. Then, the client development environment module is loaded to the client computer 100 due to the function of the application management unit 258. After initialization, a screen of Fig. 5 is displayed on the Web browser 102. In the case of creating a new document, the application editing unit 164 is blank. In the case of editing an existing document, the application definition 264 of a selected application is read from the application management unit 258.
Then, an existing widget or the like is drawn in the application editing unit 164. Further, the GUI component list 164 lists registered data regardless of whether the clicked button is the "New Document" button or "Save" button.
Further, the service call management unit 256 calls the registered service call definition 204 and adds a service to alist of the service list calling unit 168 in accordance with a name of the service defined in the definition 204.
[0075]
A user drags and drops an intended service model (simply referred to as "service") to the service model display unit 162 through mouse-clicking in step 1206. Then, elements of the selected service are displayed on the service model displaying unit 162 with the structure defined in the input parameter definition unit 194 (Fig. 11). Fig.

7 shows an example thereof.
[0076]
In step 1208, a user drops Input and Trigger to the application editing unit 164. Further, in step 1210, the user drags and drops Output intended as Input of another service model to an arbitrary cell of the data hub 170.
[0077]
In step 1212, the service list display unit 168 supplies an output reference of the service model as the drag-and-drop source in response to the drag-and-drop operation. On the other hand, on the data hub 170 side, bind of source data to a cell as a drag-and-drop target is created in the application definition memory (although not shown, allocated to the main memory 110 of Fig. 2). Here, a calculation expression is input to a cell near the cell as the drag-and-drop target. Then, calculation is executed based on a value stored in the application definition memory.
The result thereof is displayed in reflection of the cell where the expression is input.
[0078]
In step 1214, the user drags and drops the next user model to the service model display unit 162. Then, the structure of the dragged and dropped service model such as input and output is displayed on the service model display unit 162 due to the same function as that in step 1206.
[0079]
In step 1216, a user drags and drops the cell having the expression input therein on the data hub 170 side to input and trigger displayed on the service model display unit 162 to thereby bind these. Then, the service model display unit 162 supplies a reference to input and trigger where the cell is dragged and dropped. On the other hand, the data hub 170 creates bind between input reference and cell reference and bind between trigger reference and cell reference in the application definition memory.

[0080]
In step 1218, a user drags and drops output of the service model display unit 162 to the application editing unit 164 (Fig. 5). In response, the application editing unit 164 creates a reference of output from the service model display unit 162 and displays the reference on the drag-and-drop destination.
[0081]
Next, in step 1220, although not shown in Fig. 5, a processing of saving the created application is selected by a user clicking a predetermined button or the like, and then, the application development environment module that is running sends data in the application definition memory to the application management unit 258 (see Fig. 3). In response, the application management unit 258 stores the data to the hard disk 204 such that the data can be read later.
[0082]
In the case of calling and executing the thus-saved application, a user logs in the application and selects a menu for displaying an application management environment.
Then, a corresponding application management module is downloaded to the client computer 100 through the operation of the Web server application program 202. A screen of Fig.
4 is displayed.

[0083]
Here, a user selects a predetermined application and clicks a corresponding "Execute" button 162 and then, a module for executing an application is downloaded to the client computer 100 through the operation of the Web server application program 202 and executed. This operation is described above with reference to Fig. 10, so detailed description thereof is omitted here.
[0084]
In Fig. 13, a user of the client computer 100 opens the Web browser 102 and logs in the service call management menu in step 1302. Then, communications with the Web application server 202 are established through the network 300 of Fig. 1, the application management unit 258 sends back a log in screen (not shown). In response, a user enters a user ID
and a password and then, the application management unit 258 references the authentication/authorization module 266 (Fig.
3 to check and authenticate the user ID and the password.
In general, an authority to log in the service call management menu is limited more rigidly than an authority to the application development screen of Fig. 12. This is because the registered service model is commonly selected by users and thus needs to operate with reliability, and it is desirable to create the model with a skilled person.
[0085]
After the user logs in the menu, a predetermined module 260 is downloaded to the client computer 100 from the Web application server 202, and thus a menu of Fig. 11 is displayed on the screen of the Web browser 102. Then, in step 1302, entries 182, 184, and 186 are displayed on the registered service list display unit.
[0086]
In the case of creating a new document, a user clicks a button 199 (Fig. 11). The user enters a service URL, a registration name, and interpretation in step 1306. Further, the user sets input parameters of a service and inputs parameter values in step 1308.
[0087]
In the case of editing an existing document, a user clicks an "Edit" button 189 of a corresponding entry (Fig.
11). Then, a corresponding service call definition 262 is downloaded from the service call management unit 256, and data is thereby supplied to the service profile definition unit 192 and the input parameter definition unit 194.
[0088]
In step 1310, a user clicks the button 197 to attempt to log in a target website. This operation is executed in such a way that the service call definition unit 190 makes an HTTP request to access the service 602 of a Web site through the service calling unit 202. In particular, the made HTTP request is GET, the service call definition unit 190 can directly send the request to the service 602 of the Web site.
[0089]
In this way, the service call definition unit 190 receives the result from the service 602 of a Web site and displays the result on the output display unit 196. If satisfied with the result, a user clicks the "Save" button 198 (Fig. 11) in step 1312. Then, the service call definition unit 190 constructs the service call definition 262 based on data displayed on the output display unit 196 and sends the definition to the service call management unit 256 of the Web application server 202. Then, the service call management unit 256 saves the sent service call management unit 256 in the hard disk 204.

[0090]
Next, application development operations of this embodiment are explained with concrete descriptions. Here, it is assumed to create such an application that a user enters (1) zipcode to a Web site named CitySearch to acquire data about a city and data about a state, (2) and accesses a Web site named MapCode by combining the data about the city and the data about the state to obtain (3) the latitude and longitude of the city. Incidentally, CitySearch sends back data about a city and data about a state independently, but MapCode requires a combined one of the data about the city and the data about the state. A feature of the present invention is useful for automatically performing this operation.
[0091]
Referring to Fig. 14, an initial screen of new application development is illustrated. In this screen, the GUI component list display unit 166 and the property editing unit 172 are not shown because of not being so related to the following description. A user drags and drops CitySearch from the service list display unit 168 to the service model display unit 162 on this screen as indicated by the arrow 1402.
[0092]
As shown in Fig. 15, the structure including input and output of CitySearch is displayed in the service model display unit 162. This structure is created by a system administrator in accordance with CitySearch, and the definition thereof has been already stored in the service call definition 262 as shown in Fig. 11.
[0093]
Here, in Fig. 15, trigger of CitySearch is dragged and dropped to the application editing unit 164 from the service model display unit 162 as indicated by the arrow 1502 and inputl of CitySearch is dragged and dropped to the application editing unit 164 as indicated by the arrow 1504.
[0094]
Then, as shown in Fig. 16, a region where trigger is dragged and dropped becomes a button 1602 including a character "Go", and a region where inputl is dragged and dropped becomes a text input field 1604.
[0095]
Here, as shown in Fig. 17, if zipcode of "10001" is input to the text input field 1604 and the button 1602 is clicked, an access to CitySearch is made through the service call management unit 256 of Fig. 3 with the parameter of zipcode="10001", and CitySearch sends back "New York" and "NY" to <City> and <State>, respectively. Here, a user drags and drops <City> of Output of CitySearch displayed on the service model display unit 162 to a cell Al of the data hub 170 as indicated by the arrow 1702. As indicated by the arrow 1704, the user drags and drops <State> of Output to a cell Bl of the data hub 170.
[0096]
Then, the cell Al and the cell Bl are bound to <City>

and <State>, respectively. Thus, as shown in Fig. 18, 'New York' and 'NY' are displayed in the cell Al and cell Bl of the data hub 170, respectively.
[0097]
To that end, a user enters =A1&', '&B1 and a calculation expression to a cell Cl of the data hub 170 with a character string binding operator & and presses "End of Line" key. Then, as shown in Fig. 19, the calculation expression is solved and 'New York, NY' is displayed in the cell Cl. Incidentally, in this embodiment, as for restrictions of the operator, the operator is coated in JavaScript such that a general format is realized in a general spreadsheet program. However, general notation can be realized with another programming language such as =Al+', '+B2. Further, those skilled in the art would readily understand that arbitrary computation, for example, addition, subtraction, or other such mathematical functional calculus can be realized aside from computation with the string character binding operator.
[0098]
Further, in this example, output from the Web service is stored in both of the cells Al and B1. However, various applications are conceivable; for example, a character string directly input to a cell by a user or a calculation expression including a reference to the other cell may be entered to one cell.
[0099]
Next as shown in Fig. 20, MapCode is dragged and dropped to an arbitrary region of the service model display unit 162 from the service list display unit 168 as indicated by the arrow 2002. Then, as shown in Fig. 21, the structure including input and output of MapCode is displayed on the service model display unit 162. The definition of the structure has been created in accordance with MapCode and stored in the service call definition 262 by a system administrator.
[0100]
Then, a user drags and drops the cell Cl of the data hub 170 to Trigger and Inputl of MapCode in the service model display unit 162 as indicated by the arrows 2102 and 2104 on the screen of Fig. 21. The reason the cell is dragged and dropped to not only Inputl but also Trigger is to automatically respond to change in value of the cell Cl of the data hub 170 and access MapCode with Inputl used as a parameter.
[0101]
Incidentally, at this time, instead of directly dragging and dropping the cell Cl to Inputl of MapCode displayed in the service display unit 168, Inputl of MapCode may be temporarily dragged and dropped to the application editing unit 164, and then the cell Cl may be dragged and dropped to the drag-and-drop target in the application editing unit 164. This case is not different from the above case in that a value of the cell Cl is supplied to Inputl of MapCode. This setting helps a user in visually observing the value supplied to Inputl of MapCode as an intermediate step on the screen when an application is executed later.
[0102]
In practice, as Trigger of MapCode is changed from an unassociated state to an associated state in response to the drag-and-drop operation, MapCode is accessed with the parameter of New York, NY, and MapCode sends back the latitude and longitude of New York with <latitude>=40.71 and <longitude>=-75.59. Then, <latitude> and <longitude> as output of MapCode are dragged and dropped from the service model display unit 162 to the application editing unit 164 as indicated by the arrows 2202 and 2204 to thereby display these values on the application editing unit 164.
[0103]
The application has been almost completed. After that, as shown in Fig. 23, a user appropriately adds character strings 2302, 2304, 2306 for facilitating understanding of the application to save the application.

[0104]
The thus-saved application can be selected and executed in the procedure illustrated in Fig. 4. The execution screen is as shown in Fig. 24. That is, information about bind realized through the data hub 170 is preferably described in the application definition 264 as internal data expressed in XML, and the data hub 170 itself does not appear on the application execution screen.
[0105]
A user enters, for example, "95101" in ZipCode and clicks a "Go" button 2408. Then, although hidden from the eyes of the user, an access to CitySearch is made with the parameter of zipcode="95101". Then, CitySearch sends <City>='San Jose', <State>='CA'. The system changes a defined memory variable to 'San Jose', 'CA' in accordance with internal definition created and saved with the procedure of Figs. 14 to 23. Then, MapCode is triggered in response to the change and accessed with the parameter of 'San Jose', 'CA', and then sends back 37.20 and -122.06 to <latitude> and <longitude>, respectively. Fig. 25 shows the result thereof.
Embodiment 2 [0106]
The above embodiment describes an example of creating an application that accesses a Web service. As would be easily understood by those skilled in the art, the present invention is applicable to creation of a general client application. Incidentally, as hardware and software environments used in this embodiment, the environments described in connection with the client computer 100 of Fig.
2 may be employed, so detailed description thereof is omitted here.
[0107]
Fig. 26 illustrates a familiar screen interface familiar in an existing visual creating tool. In this interface, a menu bar 2602 includes a menu such as File, Edit, or View. In particular, File includes a submenu such as "New Document", "Save As", "Save", or "End". A program on the display screen is read from the hard disk 104 of Fig.
2 to the main memory 110 due to the functions of the CPU 108 and the operating system in response to user operations and displayed on the display 114.
[0108]
In the GUI component pallet region 2604, existing GUI
components such as a text input region, a label, a memo, and a combo box are arranged in a form such that the components can be dragged and dropped. The GUI component pallet region 2604 is preferably classified by kind with a tab like Tab1, Tab2, Tab3,.... A user selects a tab including a GUI
component to paste. Further, a property editing unit 2606 for editing other attributes such as a color and font of the GUI component pasted to the form is laid out. These components are provided by an existing application development tool, but a novel function of the present invention is a function of the data hub 2606 that looks like a spreadsheet. This function is substantially equivalent to that of the data hub 170 of Fig. 5.
[0109]
A user first selects "New Document" from "File" of the menu bar. Then, as shown in Fig. 27, a window Of "Forml" is created. Then, if a user drags and drops components in the text input region from the GUI component pallet region 2604 to Forml, the text input regions 2702 and 2704 are displayed.
Further, a label is dragged and dropped as needed, and characters 2706 and 2708 are added as needed.
[0110]
Next, as shown in Fig. 28, a character, for example, 'Tokyo' is input to the text input region 2702, and a character, for example, 'Japan' is input to the text input region 2704. Thus, the cells Al and Bl of the data hub 2606 are dragged and dropped. Then, as shown in Fig. 29, 'Tokyo' and 'Japan' are displayed in the cells Al and Bl of the data hub 2606.
[0111]
Then, if an expression =Al&', '&B1 is input to the cell Cl and an end-of-line key is pressed, data of 'Tokyo,Japan' is displayed in Cl. Then, a user selects "New Document" of a form from "File" in the menu bar. Then, as shown in Fig.
29, a window "Form2" is created. Then, if a component of the text input region is dropped from the GUI component pallet 2604 to Form2, the text input region 2902 is displayed there. At this stage, if the cell Cl of the data hub 2606 is dragged and dropped to the text input region 2902, 'Tokyo,Japan' is displayed in the text input region 2902.
[0112]
In this way, regions in the same form or different forms are associated through the data hub. The thus-obtained relation between fields can be automatically described in one source code in the same project. Further, an event of a change in value on an association source side may be trapped and automatically reflected to an association target within the limitation of existing techniques.
[0113]
If the visual tool relates to BASIC, C++, C#, and Java, it is unlikely that a user does not need to describe a code.
However, a concept of a data hub would facilitate association between different regions and improve an efficiency in creating a code.
[0114]
As described above, a method and system of the present invention are described based on several embodiments.
However, the present invention is not limited to such method and system but a program stored in a computer readable medium such as CD-ROM, DVD-R, or HDD or a program downloadable from a Web site can be protected. A program of the present invention constructs the above system in corporation with a computer hardware component, or the aforementioned method can be performed.
[0115]
Further, this embodiment is described based on the computer language such as JavaScript, BASIC, C++, C#, or Java. The present invention is not limited to particular computer language and environment. If the above GUI
environment is obtained, any system or method, or any computer program for realizing the system or method is within the scope of the present invention.
[0116]
Further, in the above embodiment, the data hub region is designed to look like a spreadsheet and include an interface. Such a display form is not essential to the present invention. The data hub region may include any other display interfaces insofar as plural fields that can be dragged and dropped and plural fields that can store a calculated value based on a value stored in the fields and be dragged and dropped to another object are provided.
Brief Description of the Drawings [0117]
[Fig. 1] Fig. 1 is a block diagram of a hardware configuration according to an embodiment of the present invention.
[Fig. 2] Fig. 2 is a detailed block diagram of the hardware configuration.
[Fig. 3] Fig. 3 is a functional block diagram of a server computer.
[Fig. 4] Fig. 4 shows functional blocks in application management environments and a corresponding display screen.
- 44 -[Fig. 5] Fig. 5 shows functional blocks in client development environments and a corresponding display screen.
[Fig. 6] Fig. 6 shows a display example of a service list display unit.

[Fig. 7] Fig. 7 shows a display example of a service model display unit.
[Fig. 8] Fig. 8 shows a display example of a data hub.
[Fig. 9] Fig. 9 shows how inquires to plural services are associated by use of a data hub.
[Fig. 10] Fig. 10 shows functional blocks in client execution environments.
[Fig. 11] Fig. 11 shows functional blocks in service call management environments.
[Fig. 12] Fig. 12 is a flowchart of a development scenario for an application.
[Fig. 13] Fig. 13 is a flowchart of a service call registration scenario.
[Fig. 14] Fig. 14 shows a specific example of an application development screen.
[Fig. 15] Fig. 15 shows a specific example of an application development screen.
[Fig. 16] Fig. 16 shows a specific example of an application development screen.
[Fig. 17] Fig. 17 shows a specific example of an application development screen.
[Fig. 18] Fig. 18 shows a specific example of an application development screen.
[Fig. 19] Fig. 19 shows a specific example of an application development screen.
[Fig. 20] Fig. 20 shows a specific example of an
- 45 -application development screen.
[Fig. 21] Fig. 21 shows a specific example of an application development screen.
[Fig. 22] Fig. 22 shows a specific example of an application development screen.
[Fig. 23] Fig. 23 shows a specific example of an application development screen.
[Fig. 24] Fig. 24 shows a screen of a created application operation.
[Fig. 25] Fig. 25 shows a screen of a created application operation.
[Fig. 26] Fig. 26 shows a specific example of an application development screen according to another embodiment of the present invention.
[Fig. 27] Fig. 27 shows a specific example of an application development screen according to the other embodiment.
[Fig. 28] Fig. 28 shows a specific example of an application development screen according to the other embodiment.
[Fig. 29] Fig. 29 shows a specific example of an application development screen according to the other embodiment.
- 46 -

Claims (20)

Claims:
1. A computer-assisted application program creating system for laying out elements for inputting or displaying data on a display through computer processing in response to a user's operation to interactively create an application program, comprising:
means for displaying a first region where a user can lay out one or more elements, and a second region including a plurality of sections that can be generated on the basis of the elements laid out in the first region and can be associated with the elements laid out in the first region through operations of pointing means, on the display;
means for associating a user-defined function stored in the section of the second region with the elements laid out in the first region, which are associated with the section;
and storing means for storing information about the associations.
2. The computer-assisted application program creating system according to Claim 1, wherein the second region includes at least three sections, and a function input to one of the sections can be calculated on the basis of data associated with the other sections.
3. The computer-assisted application program creating system according to Claim 1, wherein the pointing means associates data using drag and drop operation.
4. The computer-assisted application program creating system according to Claim 3, wherein the second region includes an interface of a spreadsheet program, and the plurality of sections are displayed as individual cells of the spreadsheet program.
5. The computer-assisted application program creating system according to Claim 1, further comprising:
means for displaying a palette region including a plurality of prepared elements, wherein each of the elements is laid out in the first region in response to a drag-and-drop operation of the element from the pallet region.
6. A program product for laying out elements for inputting or displaying data on a display in response to a user's operation to interactively create an application program with a computer including storing means, the program product causing the computer to execute the steps of:
displaying a first region and a second region including a plurality of sections on the display;
laying out elements selected by a user in the first region in response to a user's operation;
associating the elements laid out in the first region with the sections of the second region through an operation of pointing means in response to a user's operation;
calculating a function value on the basis of a function stored by the user in the section of the second region;
associating the section of the second region including the function value with the elements laid out in the first region; and storing information about the associations in the storing means.
7. The program product according to Claim 6, wherein the second region includes at least three sections, and a function input to one of the sections can be calculated on the basis of data associated with the other sections.
8. The program product according to Claim 7, wherein the pointing means associates data using drag and drop operation.
9. The program product according to Claim 8, wherein the second region includes an interface of a spreadsheet program, and the plurality of sections are displayed as individual cells of the spreadsheet program.
10. A computer-implemented method for inputting or displaying data on a display in response to a user's operation to interactively create an application program with a computer including storing means, comprising the steps of:
displaying a first region and a second region including a plurality of sections on the display;
laying out elements selected by a user in the first region in response to a user's operation;
associating the elements laid out in the first region with the sections of the second region through an operation of pointing means in response to a user's operation;
calculating a function value on the basis of a function stored by the user in the section of the second region;
associating the section of the second region including the function value with the elements laid out in the first region; and storing information about the associations in the storing means.
11. The method according to Claim 10, wherein the second region includes at least three sections, and a function input to one of the sections can be calculated on the basis of data associated with the other sections.
12. The method according to Claim 11, wherein the pointing means associates data using drag and drop operation.
13. The method according to Claim 12, wherein the second region includes an interface of a spreadsheet program, and the plurality of sections are displayed as individual cells of the spreadsheet program.
14. A computer-assisted application program creating system for laying out elements for inputting or displaying data on a display through computer processing in response to a user's operation to interactively create an application program accessing a Web service, comprising:

storing means;
means for displaying a first input region and a second region including a plurality of sections on the display;
means for laying out a first Web service model element including 0 or 1 or more parameter input elements, an output element, and a trigger element and adapted to access a designated URL, and a second Web service model element including at least one parameter input element, an output element, and a trigger element and adapted to access a designated URL in the first input region in response to a user's operation;
means for associating the output element of the first or second Web service model element with the section of the second region or associating the section of the second region with the output element of the first or second Web service model element in response to a user's operation with pointing means;
means for calculating a value of a function stored by the user in the section of the second region; and means for storing information about the associations in the storing means.
15. The computer-assisted application program creating system according to Claim 14, wherein the sections of the second region can be associated with the trigger element of the first or second Web service model element to be triggered by a change in value of the sections in response to a user's operation with pointing means.
16. The computer-assisted application program creating system according to Claim 15, wherein the second region includes at least three sections, and a function input to one of the sections can be calculated on the basis of data associated with the other sections.
17. The computer-assisted application program creating system according to Claim 16, wherein the pointing means associates data using drag and drop operation from the original region to a target region.
18. The computer-assisted application program creating system according to Claim 17, wherein the output element of the first Web service model element includes a list, and the list is associated with the second region through drag-and-drop operations to associate the number of pieces of data in the list with the sections of the second region.
19. A computer-assisted application program creating program product for laying out elements for inputting or displaying data on a display through computer processing in response to a user's operation to interactively create an application program accessing a Web service, the program product causing the computer to execute the steps of:
displaying a first region and a second region including a plurality of sections on the display;

laying out a first Web service model element including 0 or 1 or more parameter input elements, an output element, and a trigger element and adapted to access a designated URL, and a second Web service model element including at least one parameter input element, an output element, and a trigger element and adapted to access a designated URL in the first input region in response to a user's operation;
associating the output element of the first or second Web service model element with the section of the second region or associating the section of the second region with the output element of the first or second Web service model element in response to a user's operation with pointing means;
calculating a value of a function stored by the user in the section of the second region; and storing information about the associations in the storing means.
20. A computer-assisted application program creating system for laying out elements for inputting or displaying data on a display through computer processing in response to a user's operation to interactively create an application program, comprising:
storing means;
means for displaying a first region, a second region including at least one section, and a third region;
means for laying out one or more elements in the first region in response to a user's operation;
means for laying out one or more elements in the third region in response to a user's operation;
means for associating the elements laid out in the first region with the sections of the second region in response to a user's operation;
means for calculating a function value in accordance with user input of a function to the section of the second region, which calculates the function value on the basis of a value associated with the elements laid out in at least the first region;
means for associating the section of the second region with the section of the third region in response to a user's operation; and means for storing information about the associations in the storing means.
CA002612212A 2007-11-23 2007-11-23 Method, apparatus and computer programs for visual builder of automatic service invocations Abandoned CA2612212A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CA002612212A CA2612212A1 (en) 2007-11-23 2007-11-23 Method, apparatus and computer programs for visual builder of automatic service invocations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CA002612212A CA2612212A1 (en) 2007-11-23 2007-11-23 Method, apparatus and computer programs for visual builder of automatic service invocations

Publications (1)

Publication Number Publication Date
CA2612212A1 true CA2612212A1 (en) 2009-05-23

Family

ID=40652839

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002612212A Abandoned CA2612212A1 (en) 2007-11-23 2007-11-23 Method, apparatus and computer programs for visual builder of automatic service invocations

Country Status (1)

Country Link
CA (1) CA2612212A1 (en)

Similar Documents

Publication Publication Date Title
JP4767828B2 (en) Computer application program creation system, method, and program
AU2020273341C1 (en) Telecommunications product defining and provisioning
US10235472B2 (en) Guest browser
US8584082B2 (en) System for dynamic discovery, configuration, and development of process-bound widgets
CN105940654B (en) Franchise static web application in trust
US9195477B1 (en) Device profiles, deep linking, and browser history support for web applications
JP5086183B2 (en) Enhanced widget composition platform
US8756488B2 (en) Systems and methods for integration of an application runtime environment into a user computing environment
US9363310B2 (en) Standard commands for native commands
US8972874B2 (en) Graphical user interface typing and mapping system
US10333991B2 (en) Web browser policy for HTTP-based application
US20190052542A1 (en) System and method for providing visualizations of computing infrastructure using a domain-specific language for cloud services infrastructure
US12101373B2 (en) Systems and methods for using a browser to design robotic process automation (RPA) robots
US20020095436A1 (en) System for providing information associated with software package and supporting test therefor
US20230236712A1 (en) Browser-Based Robotic Process Automation (RPA) Robot Design Interface
US11797638B2 (en) Aggregate component for parallel browser-initiated actions
US20220245206A1 (en) Process flow builder for user-configurable web component sequences
US20120030581A1 (en) Mashup Component Framework for Business Enterprise User Interfaces
CA2612212A1 (en) Method, apparatus and computer programs for visual builder of automatic service invocations
US11750460B1 (en) Identifying duplicate entries in views of same and other network management interfaces
WO2012154310A1 (en) Development architecture for cloud-based applications
KR20220104462A (en) Method for providing virtual remote browser service and cloud server performing the same
KR20210133487A (en) Method and system for managing web-based program
Baclit et al. X Window System

Legal Events

Date Code Title Description
FZDE Discontinued

Effective date: 20121123

FZDE Discontinued

Effective date: 20121123