CN101192152B - 计算机辅助应用程序创建***和方法 - Google Patents
计算机辅助应用程序创建***和方法 Download PDFInfo
- Publication number
- CN101192152B CN101192152B CN2007101696373A CN200710169637A CN101192152B CN 101192152 B CN101192152 B CN 101192152B CN 2007101696373 A CN2007101696373 A CN 2007101696373A CN 200710169637 A CN200710169637 A CN 200710169637A CN 101192152 B CN101192152 B CN 101192152B
- Authority
- CN
- China
- Prior art keywords
- unit
- user
- gui
- electronic data
- tabular form
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
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)
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
Abstract
本发明创建了基于GUI的应用程序,该应用程序实现了将存储于多个输入域中的算术运算结果传送到另一个域。在应用程序的开发阶段,拖放例如用于输出来自网站的数据的第一区域以与电子数据表式屏幕或者电子数据表程序上的第一单元相关联。接着,拖放用于输出来自网站的数据的第二区域以与电子数据表式屏幕上的第二单元相关联。然后,将用于在第一单元和第二单元中计算值或者数据的所需表达式输入到电子数据表式屏幕上的第三单元。可以将第三单元拖放到应用程序的所需的表或者窗口。
Description
技术领域
本发明涉及计算机辅助应用程序创建***和方法,并且具体地涉及用于主要基于图形用户接口(GUI)创建应用程序的***、方法和程序产品。
背景技术
用于驱动输入/输出设备的计算机的中央处理单元(CPU)所要执行的程序在计算机的操作中是很重要的。在发展初期,机器语言程序描述了CPU所要直接解释的命令并且始终对存储器直接寻址。然而不可能虚拟地标识编写到这样的程序中的操作。因此难以纠正程序中的漏洞或者添加新功能。
为了克服这一缺陷,已经开发了汇编语言,该语言通过使用用户易于理解的助记符如ADD来实现对存储器的间接寻址。以这一方式编写的程序被转译成CPU可理解的机器语言。然而,甚至用于描述简单加法的算术逻辑也是基于CPU的,因为给定值存储于寄存器中而CPU引用寄存器中的值,因而仍然应当由非常精通的编程者来开发程序。
在20世纪50年代开发的编译器语言的出现显著地改善了这种艰难的状况。如果使用这一语言,则例如能够使用一般表达式如A=B+C来描述加法。能够通过使用比如WRITE这样的函数以易于理解的形式描述I/O处理。这样的编程语言称为过程语言,比如C、C++和C#,并且已经被发展为包含各种思想。
当这样的过程语言出现时,将要在屏幕上显示的或者将要打印的数据只不过是字符串,比如ABC或者1123。然而,在20世纪80年代由于开发配备有指示设备如鼠标或者多窗口***的图形用户接口(GUI),所以编程面临另一挑战。
也就是说,有必要对GUI进行编程以指定位置坐标(GUI组件如按钮、单选按钮、组件框和文本框在这些位置坐标处显示在窗口上)、指定所要显示的字符的字体和颜色、指定下拉菜单以及对比如GUI组件上的鼠标点击或者活跃窗口与非活跃窗口之间的实时切换这样的事件做出响应。在GUI编程的早期,这些组件全都是用源代码来描述的,因此很难适应内置资源、事件驱动程序等新概念,因而即使精于过程编程语言如C或者C++的编程者也可能难以掌握它。
为了克服这样的问题,已经开发了程序开发工具,该工具实现了通过GUI操作如鼠标点击或者拖放来描述程序的预定部分。这一工具的例子包括Microsoft VisualVisualBorlandDelphi(商标)、C++Builder(商标)和IBM VisualAge of Java(商标)。这些程序开发功能能够用来仅通过从其中GUI组件的样本图标被布置于所需位置的区域拖放组件来适当地布置GUI组件。另外,能够仅通过适当地操作鼠标来关联两个GUI组件。
这里,有可能布置和关联GUI组件;然而,编程者需要基于编程语言如C++、BASIC或者Java的规则来描述用于实际处理的代码或者API函数,这对于不熟悉计算机操作的新手来说仍然很难。
顺便提及,近年来已经提出在应用之间通信的概念,称之为SOA(面向服务的架构)或者Web服务。据此,作为上述基于GUI的开发工具的GUI组件,提供了能够指定URL的组件。如果通过使用GUI组件的函数来进行对特定URL的访问,则URL所指定的网站发送回例如用XML描述的信息。开发工具还预备了用于以树的形式显示用XML描述的信息的显示GUI组件。因此,访问URL的GUI组件以及显示GUI组件被粘贴到应用程序的预定区域以由此实现能够自动地显示从特定网站发送回的信息的Web应用。
在以上Web应用中,可以考虑将查询发往第一服务、发送回多个响应并且计算所发送的数据,此后基于计算结果将查询发送到第二Web服务。例如,假设如果发送Zip代码,则第一Web服务独立地发送回州名和城市名。另一方面,如果接收组合了州名和城市名的字符串,则第二Web服务发送回其经度和纬度。从上文中显而易见,仅仅通过粘贴GUI组件来仅仅获得从Zip代码中导出州名和城市名的程序,并且不能发送适当查询到第二Web服务。为了获得能够发送适当查询到第二Web服务的程序,对州名的字符串和城市名的字符串进行组合,并且应当在程序代码中描述一种将组合数据提供给发送查询到第二Web服务的GUI组件的过程。然而,描述这样的代码比想象的要复杂得多,因为有必要认证GUI组件的ID、描述用于对字符串进行组合的运算符或者描述用于将计算结果与发送查询到第二Web服务的GUI组件相关联的代码。这一操作比可能想象的要复杂得多、要求某些经验并且对于新手来说非常困难。
本申请的发明人已经考虑将电子数据表的格式用作用户友好的接口。在实践中对于不熟悉计算机的用户来说在电子数据表中输入数值或者字符并且计算这些值并不很困难。发明人已经从这一观点出发研究了现有技术的数个例子。
日本未审专利申请公开第2006-53894号公开了一种支持由用户指定的电子数据表函数的技术。根据这一公开技术,响应于确定特定单元包括对用户定义函数的调用,通过使用另一单元的用户定义函数来针对于对该用户定义函数的调用而计算值,以由此基于所计算的值获得特定单元中的值。
日本未审专利申请公开第2005-353058号公开了一种能够利用Web浏览器应用程序来显示和改变电子数据表的技术。
日本未审专利申请公开第2004-208278号公开了如下技术:针对利用电子数据表应用程序而在通过网络连接的主机和终端之间进行的数据管理,提供邮件服务器,并且用邮件服务器的邮件形式的主题和邮件文本来标识单元在电子数据表应用程序中的位置、输入/输出数据标志和输入/输出数据。在主机和终端之间输入/输出单元的数据。
然而,现有技术的这些例子仅提出将电子数据表用作上述Web应用中的显示接口,而并未给出关于利用电子数据表式接口来辅助编写应用程序的启示。
[专利文献1]日本未审专利申请公开第2006-53894号
[专利文献1]日本未审专利申请公开第2005-353058号
[专利文献1]日本未审专利申请公开第2004-208278号
发明内容
因而,本发明的目的在于提供一种辅助不熟悉编程的用户通过GUI操作容易地编写应用程序的***和方法。
本发明的其它目的在于提供一种能够以无需高超的编程技巧就能将多个输入域中的计算结果用于另一域中这一方式来创建基于GUI的应用程序的***和方法。
发明人已经对在多个GUI组件和电子数据表之间的数据输入/输出进行了广泛研究,并且发现能够通过设置电子数据表式屏幕来实现上述目的,该屏幕包括多个单元并且提供用于通过多个单元在GUI组件之间传送数据的接口。
也就是说,根据本发明,在应用程序的开发阶段,拖放例如用于输出来自网站的数据的第一区域以与电子数据表式屏幕或者电子数据表程序上的第一单元相关联。接着,拖放用于输出来自网站的数据的第二区域以与电子数据表式屏幕上的第二单元相关联。然后,将用于在第一单元和第二单元中计算值或者数据的所需表达式输入到电子数据表式屏幕上的第三单元。可以将第三单元拖放到应用程序的所需表或者窗口。
如上所述,根据本发明,即使只有初学者的水平,也能够通过指示设备如鼠标来创建所需应用程序。只有在电子数据表式屏幕上的计算公式中需要编写代码,但是这一操作对于熟悉普通电子数据表程序的用户来说并不困难。
根据本发明的一个方面,提供一种计算机辅助应用程序创建***,用于响应于用户的操作利用包括存储装置的计算机在显示器上输入或者显示数据以交互地创建基于GUI的应用程序,包括:用于在所述显示器上显示第一区域和包括多个单元的电子数据表式接口的装置;用于响应于用户的操作在所述第一区域中布置用户所选择的GUI元素的装置;用于响应于用户的操作通过指示装置的操作将所述第一区域中布置的所述GUI元素与所述电子数据表式接口的所述单元相关联的装置;用于在所述电子数据表式接口的所述单元中基于所述用户所存储的函数来针对相关联的所述GUI元素计算函数值的装置;用于将所述电子数据表式接口的包括所述函数值的单元与在所述第一区域中布置的所述GUI元素相关联的装置;以及用于在所述存储装置中存储关于所述关联的信息的装置,其中使用GUI操作来进行所述关联。
根据本发明的另一方面,提供一种计算机辅助应用程序创建方法,用于响应于用户的操作利用包括存储装置的计算机在显示器上输入或者显示数据以交互地创建基于GUI的应用程序,包括步骤:在所述显示器上显示第一区域和包括多个单元的电子数据表式接口;响应于用户的操作在所述第一区域中布置用户所选择的GUI元素;响应于用户的操作通过指示装置的操作将所述第一区域中布置的所述GUI元素与所述电子数据表式接口的所述单元相关联;在所述电子数据表式接口的所述单元中基于所述用户所存储的函数来针对相关联的所述GUI元素计算函数值;将所述电子数据表式接口的包括所述函数值的单元与在所述第一区域中布置的所述GUI元素相关联;以及在所述存储装置中存储关于所述关联的信息,其中使用GUI操作来进行所述关联。
根据本发明的又一方面,提供一种计算机实现方法,用于响应于用户的操作利用包括存储装置的计算机来布置用于在显示器上输入或者显示数据的元素以交互地创建对Web服务进行访问的基于GUI的应用程序,包括步骤:在所述显示器上显示第一输入区域和包括多个单元的电子数据表式接口;响应于用户的操作来布置第一Web服务模型GUI元素和第二Web服务模型GUI元素,所述第一Web服务模型GUI元素包括输出元素、触发元素和0个或者1个或者更多参数输入元素并且适于访问指定URL,并且所述第二Web服务模型GUI元素包括输出元素、触发元素和至少一个参数输入元素并且适于访问所述第一输入区域中的指定URL;响应于用户的操作利用指示装置将所述第一或者第二Web服务模型GUI元素的输出元素与所述电子数据表式接口的所述单元相关联或者将所述电子数据表式接口的所述单元与所述第一或者第二Web服务模型GUI元素的输出元素相关联;在所述电子数据表式接口的所述单元中计算所述用户所存储的函数的值;以及在所述存储装置中存储关于所述关联的信息,其中使用GUI操作来进行所述关联。
根据本发明的再一方面,提供一种计算机实现方法,用于响应于用户的操作利用包括存储装置的计算机来布置用于在显示器上输入或者显示数据的元素以交互地创建基于GUI的应用程序,包括步骤:显示第一区域、包括至少一个单元的电子数据表式接口、以及第三区域;响应于用户的操作在所述第一区域中布置一个或者多个GUI元素;响应于用户的操作在所述第三区域中布置一个或者多个GUI元素;响应于用户的操作将所述第一区域中布置的所述GUI元素与所述电子数据表式接口的所述单元相关联;根据用户向所述电子数据表式接口的所述单元输入的函数来计算函数值,其中基于与在至少所述第一区域中布置的所述GUI元素相关联的值来计算所述函数值;响应于用户的操作将所述电子数据表式接口的所述单元与所述第三区域的所述GUI元素相关联;以及在所述存储装置中存储关于所述关联的信息,其中使用GUI操作来进行所述关联。
附图说明
图1是根据本发明实施例的硬件配置的框图。
图2是硬件配置的具体框图。
图3是服务器计算机的功能框图。
图4示出了应用管理环境中的功能块以及对应的显示屏幕。
图5示出了客户端开发环境中的功能块以及对应的显示屏幕。
图6示出了服务列表显示单元的显示例子。
图7示出了服务模型显示单元的显示例子。
图8示出了数据中心(hub)的显示例子。
图9示出了如何通过使用数据中心来关联对多个服务的查询。
图10示出了客户端执行环境中的功能块。
图11示出了服务调用管理环境中的功能块。
图12是用于应用的开发场景的流程图。
图13是服务调用注册场景的流程图。
图14示出了应用开发屏幕的特定例子。
图15示出了应用开发屏幕的特定例子。
图16示出了应用开发屏幕的特定例子。
图17示出了应用开发屏幕的特定例子。
图18示出了应用开发屏幕的特定例子。
图19示出了应用开发屏幕的特定例子。
图20示出了应用开发屏幕的特定例子。
图21示出了应用开发屏幕的特定例子。
图22示出了应用开发屏幕的特定例子。
图23示出了应用开发屏幕的特定例子。
图24示出了所创建的应用操作的屏幕。
图25示出了所创建的应用操作的屏幕。
图26示出了根据本发明另一实施例的应用开发屏幕的特定例子。
图27示出了根据另一实施例的应用开发屏幕的特定例子。
图28示出了根据另一实施例的应用开发屏幕的特定例子。
图29示出了根据另一实施例的应用开发屏幕的特定例子。
具体实施方式
下文将参照附图描述本发明的实施例。给出这些实施例用于举例说明本发明的优选实施方式而不应当将这些实施例理解为对本发明的限制。另外,除非另有说明,在附图中通篇地用相同的标号来表示相同的组件。
实施例1
实施例1描述了如何为Web服务创建应用程序。具体而言,主要基于来实现这一实施例,作为Web浏览器的一种汇编语言,在***中用作编程语言。然而,本发明不限于一种特定编程语言而是能够使用C++、C#、以及支持拖放操作并且能够调用API函数的其它此类编程语言。顺便提及,在如下实施例中使用的拖放操作可用于绑定所显示的对象,但是绑定操作不限于拖放操作。通过点击源对象以例如从下拉菜单中选择项目“关联”、然后点击目标对象来关联数据。可选地,正如本领域技术人员将理解的,即使利用Ctrl键、Alt键或者利用通过进行适当编程来对按键进行组合的适当快捷键也能够实现等同于拖放操作的功能。
下文参照附图描述这一实施例。图1是根据这一实施例的硬件组件的示意框图。在图1中,客户端计算机100和服务器计算机200连接到遵循例如以太网协议的通信线路300。通信线路300还通过代理服务器400连接到因特网500以允许通过因特网500访问各种网站602、604、606、......。
客户端计算机100包括硬盘104和遵循以太网协议的通信接口106。在硬盘104中,以可加载的方式在存储器中存储这一实施例中使用的各种程序,比如操作***或者Web浏览器102。Web浏览器102可以是能够执行JavaScript的任何Web浏览器;例如,可以使用Microsoft InternetMozilla FoundationAppleComputer作为操作***,可以使用任何***,只要该***支持作为标准特征的TCP/IP通信功能并且能够执行Web浏览器。例如,可以使用Microsoft Windows 2000、Apple Computer等,但是操作***不限于此。
服务器计算机200包括硬盘204和遵循以太网协议的通信接口206。在硬盘204中,以可加载的方式在存储器中存储这一实施例中使用的各种程序,比如操作***、Web浏览器和Web应用服务器程序(下文也称为Web应用服务器)202。Web应用服务器是用于存储HTML文档或者图像信息并且响应于来自客户端应用如Web浏览器的请求而通过网络如因特网传输信息的程序。作为Web应用服务器202,可以使用任何服务器,比如Apache TomCat或者MicrosoftInternet Information Server。作为操作***,可以使用支持作为标准装备的TCP/IP通信功能并且能够执行Web应用服务器的***。例如,可以使用Microsoft Windows 2000、Apple Computer Mac等。然而,操作***不限于此。
接着参照图2具体描述客户端计算机100和服务器计算机200的硬件配置。
客户端计算机100包括CPU 108和主存储器110并且连接到总线109。CPU优选地基于32位或者64位架构。例如,可以使用Intel4、AMD等。总线109通过显示器控制器112连接到显示器114,比如LCD监视器。显示器114用于显示程序,如图1中的Web浏览器102。总线109还通过IDE控制器116连接到硬盘104和CD-ROM驱动器118。在硬盘104中,以可加载的方式在主存储器110中存储操作***、Web浏览器102和其它这样的程序。CD-ROM驱动器118能够用来根据需要将程序从CD-ROM附加地下载到硬盘104。总线109还通过键盘/鼠标控制器120连接到作为字符输入装置的键盘122和作为指示装置的鼠标124。键盘122用于在屏幕上输入URL或者其它字符。鼠标122用来拖放如下文所述的GUI组件或者点击菜单按钮以开始操作。
通信接口106基于以太网协议并且用以将客户端计算机100物理地连接到通信线路300。通信接口106提供网络接口层,该网路接口层遵循客户端计算机100的操作***的通信功能的TCP/IP通信协议。顺便提及,所示组件是以有线方式连接的,但是也可以通过遵循无线LAN连接标准如IEEE802.11a/b/g的无线LAN来连接。
另外,通信接口106可以遵循取代以太网协议的任意协议,比如令牌环。本发明不限于特定物理通信协议。
服务器计算机200包括CPU 208和主存储器210并且连接到总线209。同样在客户端计算机200中,CPU优选地基于32位或者64位架构。例如,可以使用Intel4、AMD等。总线209通过显示器控制器212连接到显示器214,比如LCD监视器。虽然在下文中有具体描述,但是显示器214用来创建连接到因特网的GUI组件,用来用JavaScript编写程序并且注册该程序使得客户端程序100能够调用已注册的程序,或者用来向***管理员注册通过客户端程序100来访问该程序的用户的用户ID和口令。
总线209通过IDE控制器216连接到硬盘204和CD-ROM驱动器218。在硬盘204中,以可加载的方式在主存储器210中存储操作***、Web浏览器102和其它这样的程序。
CD-ROM 218用来根据需要将程序从CD-ROM附加地下载到硬盘204。总线209还通过键盘鼠标控制器220连接到键盘222或者鼠标224。键盘222用来在屏幕上输入URL或者其它字符。鼠标222用来向***管理员注册如下文所述的GUI组件。
通信接口206遵循以太网协议并且用以将服务器计算机200物理地连接到通信线路300。针对客户端计算机200的操作***的通信功能的TCP/IP通信协议,通信接口206提供网络接口层。同样在服务器计算机200中,是以有线方式连接的,但是也可以通过基于无线LAN连接标准如IEEE802.11a/b/g的无线LAN来连接。
另外,通信接口206可以遵循取代以太网协议的任意协议,比如令牌环。本发明不限于特定物理通信协议。
在服务器计算机200的硬盘204中,除了上述操作***和Web应用服务器202之外还存储提供如下文所述的本发明开发环境的程序。通过对由Dojo Toolkit作为JavaScript库来提供的模块以及发明人用JavaScript语言编写的模块进行组合来获得开发环境。例如参照http://dojotoolkit.org/以便获取更多信息。开发环境被存储于服务器计算机200的硬盘204中的原因在于登录到服务器计算机200上的任何客户端计算机100利用Web应用服务器202的功能来下载开发环境以开始开发。
顺便提及,本发明不限于用JavaScript编写的模块。可以通过使用已知为浏览器汇编语言的例子的Jscript或者VBSCript来实现本发明。另外有可能采用如下配置,该配置执行置于HTML中的Java程序并且将执行结果发送回Web浏览器。
另外,图1和图2示出了客户端/服务器配置,但是仅利用客户端计算机100的配置也能够实现本发明。在这一情况下,上述开发环境或者模块可以直接地驻留于客户端计算机100中。在这一条件之下,计算机通过如图1中所示通信线路300和代理服务器400来直接访问因特网。
另外,在图1中,在防火墙以内提供客户端计算机和服务器计算机,但是可以在防火墙以外提供服务器计算机。在这一情况下,如果有安全性上的担心,则可以利用数种安全机制如VPN来提高安全级别。
接着参照图3具体描述服务器计算机200中Web应用服务器202的功能。在图2的框图中,在某一程度上具体地图示了硬件组件。在这一例子中,在有必要时使用软件模块的更抽象框图。
在图3中,Web应用服务器202包括应用执行单元252、服务调用单元254、服务调用管理单元256和应用管理单元258。
在硬盘204中,以可调用的方式记录服务调用定义262和应用定义264。在服务调用定义262中存储多个服务模型元素(通常用来实施小配件(widget)),这些元素访问由预定***管理员预备的单独网站。下文参照图11描述如何创建和编辑服务模型元素。在应用定义264中存储应用程序,该程序包括小配件以及在服务调用定义262中定义的和由客户端计算机100的用户预先创建的其它处理过程。
认证/鉴权块266例如是由***管理员预备的客户端计算机100的用户的成对的用户ID和口令。这些多条信息例如存储于硬盘204中。如果客户端计算机100的用户登录到服务器计算机200中,则需要用户输入成对的用户ID和对应的口令。
应用执行单元252的基本功能解释和执行从Web浏览器102发送的命令。在服务调用单元254中定义URL或者参数。应用执行单元252能够通过使用服务调用单元254中的URL或者参数来直接地访问网站服务602。顺便提及,这里所指的URL例如是指http://www.xyz.com/Service/CGI/purchase.cgi。参数是指http://www.xyz.com/Service/CGI/purchase.cgi?&cost=parml&goods=parm2中的价钱或者货物。服务调用管理单元256响应于来自Web浏览器102的请求从应用定义264中调用由客户端计算机100的用户拥有的应用程序,并且能够编辑/执行/删除程序。这时,可以从登录到计算机中的用户的用户ID中导出关于应用程序拥有者的信息。
Web应用服务器202中的客户端模块260通常存储于硬盘204中并且响应于来自Web浏览器102的请求而被下载到客户端计算机100。在这一实施例中,客户端模块260的典型格式是表述“js”所代表的JavaScript文件。也就是说,作为JavaScript的描述方法的有直接编写方法,例如
<script type=″text/javascript″>
<!-actual JavaScript code//-->
</script>
以及指定和调用JavaScript的文件名的描述方法,比如
<script src=″abc.js″type=″text/javascript″></script>
在执行侧上主要使用指定和调用JavaScript的文件名的方法。
接着参照图4描述客户端计算机100的应用管理环境。如果客户端计算机100的用户登录到服务器计算机200中,则通过Web应用服务器202的处理从客户端计算机200将优选地用JavaScript编写的应用管理模块260下载到客户端计算机1。根据应用管理模块260的功能,包括登录到计算机中的用户的用户ID在内的命令被发送到应用管理单元258。然后,应用管理单元258搜索应用定义264并且将用户所拥有的应用程序的名称发送回客户端计算机100。结果,利用应用管理模块260的功能在因特网浏览器102的屏幕上显示如图4中所示的应用列表150。
列表150显示用户所拥有的应用1至4,并且在右侧上布置“执行”按钮152、“编辑”按钮154和“删除”按钮156。响应于鼠标124(图2)的点击,从服务器计算机200下载执行环境模块以转变到目标行上程序的执行环境(如下文所述)。响应于鼠标124对按钮154的点击,从服务器计算机200下载开发环境模块以转变到目标行上程序的开发环境(图5)。响应于鼠标124对按钮156的点击,向应用管理单元258发送用以删除该行上程序的命令,因而应用管理器单元258从硬盘204中删除对应的应用程序。如果点击“新文档”按钮158,则从服务器计算机200下载开发环境模块以转变到具有新文档的开发环境。
接着参照图5描述作为本发明的主要特征的执行环境。通过利用鼠标124在图4的Web浏览器102的屏幕上点击“编辑”按钮154或者“新文档”按钮158,从应用管理模块260下载开发环境模块到客户端计算机100以由此在Web浏览器102上显示图5的屏幕。以这一方式,能够调整开发环境。开发环境包括多个区域,即服务模型显示单元162、应用编辑单元164、GUI组件显示单元166、服务列表显示单元168、数据中心170和属性编辑单元172。在这一实施例中,服务模型显示单元162和GUI组件显示单元166是模板区域,它们的GUI组件能够粘贴到应用编辑单元164。
GUI组件列表显示单元166显示GUI组件,比如按钮、编辑按钮、备忘录、标签、组件框和单选按钮,并且能够将GUI组件从单元166拖放到应用编辑单元164。
服务列表显示单元168列出用于访问由***管理员预先创建的Web服务的服务。图6示出了其例子。图6图示了CitySerach(城市搜索)作为输入邮政编码则发送回州名和城市名的网站;图示了Price.com作为用于查看商品价格的网站;图示了WebMap(网上地图)作为用于在网站上显示地图的网站;以及图示了MapCode(地图代码)作为基于目标城市名或者州名发送回目标城市或者州的经度和纬度的网站。顺便提及,描述这些网站是为了举例说明,因此这些网站在一些情况下并不是实际的网站。
服务模型显示单元162是如下区域,在该区域中以树的形式示意性地显示由“触发”元素代表的利用服务列表显示单元168选择的服务的输入元素以及和由“输出”元素代表的输出元素。所显示的输入元素和输出元素能够被拖放到如下文所述的应用编辑单元164或者数据中心170或者从应用编辑单元164或者数据中心170来拖放。
作为服务的可考虑输出元素,除了简单文本字符串之外还有用XML进行了结构化的列表。假设输出元素是简单文本字符串,如果该元素被拖放到数据中心170,则单个单元就占用了数据中心170。假设输出元素是列表,则该元素被拖放到数据中心170,与列表中字符串和数值的数目一样多的单元占用数据中心170,并且与列表相对应的字符串或者数值被存储于单元中。
应用编辑单元164能够用来拖放来自GUI组件列表显示单元166的GUI组件以及来自服务模型显示单元162的触发元素、输入元素或者输出元素。
服务模型显示单元162的触发元素被粘贴到应用编辑单元164并且在程序正在执行的状态下被选择,然后允许对服务所指定的URL进行访问。在服务模型显示单元162上显示的服务的输入元素是在访问URL时提供的参数。例如,如果访问代码是http://www.CitySearch.com/Search/CGI?zipcode=2428502&country=Japan,则邮政编码是参数输入元素(下文简称为参数),并且98231是其细节。可考虑比如http://www.CitySearch.com/Search/CGI?zipcode=2428502&country=Japan之类的多个参数。顺便提及,Web服务并不总是包括输入参数或者元素。可考虑没有输入元素的Web服务。例如,参数对于简单地发送回关于当前格林威治平均时间的数据的Web服务而言不是必需的。
另一方面,响应于对网站的访问而发送回的数据的格式是作为相对小的数据交换格式的HTML、XML或者JSON(JavaScript对象表示法)。以这一方式,响应于对网站的访问而发送回的数据可以是结构化数据。因此,可考虑各种格式,比如所发送的XML列表的全部或者一部分,作为能够与服务模型显示单元162的输出单元一样被拖放的单元。
另外,在这一实施例中,与服务的异步通信用来访问网站或者Web服务;这一通信称为XMLHttpRequest,XMLHttpRequest优选地基于Ajax。基于该技术,能够加速屏幕重写并且能够减少数据通信量。这里,可以代之以使用普通HTTP协议的命令。
作为数据关联区域的数据中心170优选地包括类似于电子数据表(也称为电子数据表程序)的接口并且被划分成多个部分;这些部分被排列为矩阵。根据电子数据表程序,这些部分被称为以A1、A2和B1命名的单元。用户能够将值输入到各单元中,或者粘贴到应用编辑单元164的GUI组件能够被拖放到各单元。可选地,能够将比如=A1+B1或者=A1&″,″&B1这样的电子数据表形式的计算表达式能够输入到各单元中。可以使用哪个表达式取决于以JavaScript等为基础的编程代码。对照而言,各单元能够被拖放到向应用编辑单元164粘贴的GUI组件以及服务模型显示单元162中显示的服务的输入元素。也就是说,在这一实施例中,数据中心170能够利用JavaScript函数在单元之间提供上述拖放功能以及各种计算功能。
如上所述,用XML描述的元素输出列表可以被粘贴到数据中心170作为Web服务的输出元素。在这一情况下,如果输出元素列表被拖放到数据中心170,则与列表中的元素数目一样多的单元就占用了数据中心。以这一方式,有必要编译关于从列表中拖放的多个单元的数据。因此,在这一实施例中预备统计函数,比如累加函数如=SUM(A1..E1)、平均函数如=AVERAGE(A1..E1)、标准偏差函数如=STDEVA(A1..E1)、最大值函数如=MAX(A1..E1)和最小值函数如=MIN(A1..E1)。已经很好地建立了具有公式变换能力的基于JavaScript的安装方法(installation)来作为编程技术,这里省略其描述。
在这一实施例中,利用如以下代码所表示的Dojo库工具包来实现拖放操作。
Drag source side:var ds=new
dojo.dnd.HtmlDragSource(domNode,dragSourceName);
Drop target side:var dt=new
dojo.dnd.HtmlDropTarget(domNode,dropTargetName).
另外,以声明格式(XML)保存通过拖放操作来绑定的信息。其表示法例子给出如下,并且该例子指示将命名为InputText_0的sourceWidget(拖放源的GUI组件)与命名为Action_0的targetWidget(拖放目标的GUI组件)相关联。
<Application:WidgetpropertyBinding sourceWidget=″inputText_0″sourceProperty=″value″sourceEvent=″setValue″targetWidget=″Action_0″targetProperty=″value″></Application:WidgetPropertyBinding>
顺便提及,本领域技术人员应当理解,这种工具包的应用和表示法是通过举例给出的,并且可以使用各种等同的技术。例如,操作***如2000和预备了用于拖放操作的一些API函数如DragQueryPoint,所以有可能调用适当函数和执行处理。
另外,供用户在数据中心170中输入数字表达式的单元被拖放到服务模型显示单元162中显示的服务模型的输入元素和触发元素并且与之相关联。然而,图5的客户端开发环境的功能能够设置为使得该单元能够被直接地拖放到例如应用编辑单元164的空间而不是将单元拖放到元素上,以由此自动地向它粘贴文本输入区域的GUI组件并且将作为拖放源的数据中心170的单元的值与之相关联。例如如果单元被从GUI组件列表显示单元166拖放到应用编辑单元164的空间,则通过普通技术将该单元放置于所选GUI组件的应用编辑单元164上。因而,有可能通过使用类似技术向客户端开发环境赋予如下功能,即使得响应于从数据中心170的单元到应用编辑单元164的空间的拖放操作而向拖放目的地粘贴代表文本输入区域的GUI组件,并且来自作为拖放源的数据中心170的单元的GUI组件与文本输入区域相关联。
属性编辑单元172旨在于设置或者改变被鼠标点击过的服务的GUI组件或者输入/输出元素的属性,比如颜色、字体、显示/隐藏或者启用/禁用。
图9示意性地示出了如何关联多个Web服务的例子。在图9中,服务1具有作为输入的输入1以及作为输出的<输出1>和<输出2>。服务2具有作为输入的输入1以及作为输出的<输出1>和<输出2>。服务3和4各具有作为输入的输入1和输入2以及作为输出的<输出1>。下文描述一种创建包括图7和图9中所示输入和输出的小配件的方法。
这里考虑如下场景。也就是说,将对服务1的<输出1>和<输出2>进行计算的结果发送到服务2的输入1。响应于计算结果,将服务2的<输出1>和<输出2>直接发送到服务3的输入1和输入2,并且将对服务2的<输出1>和<输出2>进行计算的结果发送到服务4的输入2。然后,将对服务1的<输出1>和<输出2>进行计算的结果发送到服务4的输入1。因此,将服务1的<输出1>和<输出2>拖放到数据中心170的单元A1和B1。将单元A1和B1的预定数字表达式写到单元C1。然后,将单元C1拖放到服务2的输入1。然后,将服务2的<输出1>和<输出2>分别拖放到数据中心170的单元C2和D2。将单元C2和D2的预定数字表达式写到单元E2。然后,直接地而不通过数据中心170将服务2的<输出1>和<输出>2拖放到服务3的输入1和输入2。另外,将数据中心170的单元C1拖放到服务4的输入1。将数据中心170的单元E2拖放到服务4的输入2。这样的复杂场景并不实际存在,但是这种极端情况被用来说明利用本发明的数据中心进行可视编程的优点。也就是说,如果省略比如数据中心170这样的接口,就应当编写很复杂的代码以实现具有等同功能的程序。根据本发明,在使用电子数据表时仅利用基本技巧就能够简单地实现具有等同功能的程序。
另外,服务1的输入1是供用户利用键盘等向其中输入信息的域。从图9中可以示意性地看出,响应于触发按钮上的点击,访问指定网站,并且通过数据中心170的指定单元自动地向服务2、3和4提供所需信息。顺便提及,在图9中,也将单元C1拖放到服务2的“触发”以及将服务2的<输出1>拖放到“触发”。将单元E2拖放到服务4的“触发”。这是为了利用JavaScript的命名为OhChange的事件句柄来触发拖放源的值改变以自动地开始下一服务。利用以上设置,如果根据服务1的<输出1>和<输出2>的数据改变来改变单元C1中的数据,则自动地依次执行服务2的触发、服务2的<输出1>和<输出2>的数据改变、服务3的触发、单元E2的改变以及服务4的触发。
接着参照图10描述客户端的执行环境。回到图4,点击在应用1一旁的“执行”按钮142,然后根据Web应用服务器202的功能而将应用执行模块260之中的关于客户端执行环境的模块下载到客户端计算机100。关于客户端执行环境的模块包括应用定义解释单元260a和应用显示单元260b。这次选择应用1(图4),所以从应用管理单元258下载应用1的应用定义264,并且利用应用定义解释单元260a来执行该应用定义264。基于来自应用定义解释单元260a的执行结果,根据应用显示单元260b的功能而在Web浏览器102的屏幕上显示所选应用1,并且根据该执行来更新所显示的内容。
顺便提及,从图1和图2中可见,客户端计算机106能够直接地经由代理服务器400而不通过服务器计算机200访问网站602至606。然而,仍然存在一种担心,即如果服务器计算机200没有通过服务器计算机200而利用所下载的模块访问访问外部网站,则可能出现所谓的跨站安全漏洞(cross site security hole)。对此,在这一实施例中,如图10中所示,从Web应用服务器202下载的模块所执行的应用一定要通过Web应用服务器202中的应用执行单元252访问外部网站。
接着参照图11说明服务调用管理环境。术语服务是指提供如图8中CitySearch或者Price.com所示的服务的网站。如果用户基于预定用户ID和口令通过服务调用管理环境登录屏幕(未示出)登录到网站中,则从Web应用服务器202下载服务调用管理环境模块260。如图11中所示,在Web浏览器102的屏幕上显示如下菜单,该菜单包括注册服务列表显示单元180和服务调用定义单元190。顺便提及,在这一实施例中,登录服务调用管理环境的权限比登录图4的应用管理环境的权限受到更多限制。一般而言,仅授权给***管理员。这是因为已创建的服务小配件出现在图5的开发屏幕上的服务列表显示单元168上并且能够由任何用户使用,所以可靠操作是必要的。
另外,基于从Web服务应用程序202的服务器服务调用管理单元256读取的服务调用定义262在注册服务列表显示单元180上列出已注册的服务。在实践中,在输入182、184和186上显示已注册的服务的名称(例如图8的CitySearch)。点击在其右侧上的“编辑”按钮186以显示用于对服务进行编辑的菜单(未示出)。可选地,对“删除”按钮189进行鼠标点击以由此从服务调用定义262中删除服务。针对各已注册服务,在服务简档定义单元中注册了由***管理员确定的服务的URL(例如http://www.CitySearch.com/Search/CGI)和名称(例如CitySearch)。
在输入参数定义单元194中,为输入参数定义单元194中的各已注册服务而注册输入参数名称以及输出数据的名称和属性。例如,如果名称为CitySearcn,则输入参数是邮政编码,并且输出数据的名称和属性分别是<城市>和<州>以及文本。
如果***管理员指定URL、输入适当参数并且点击“执行”按钮197,则通过Web服务器应用程序202的服务调用管理单元202来访问网站的服务602。然后,在输出显示单元196上显示执行结果。作为输出数据的属性,根据Web服务的性质,除了文本之外还可考虑HTML、XML和JASON。XML的输出数据是结构化文档,所以能够列出全部数据或者能够获取特定标记中的数据。因而,创建服务小配件的***管理员适当地预备用于列出全部输出XML数据的视图或者用于在特定标记中显示数据的视图。从输入参数定义单元194读取由此创建的视图,并且根据所选服务在服务模型显示单元162中显示该视图,如图7中<城市>和<州>所示。
如果对作为点击“执行”按钮197之结果的显示结果满意,则***管理员点击“保存”按钮198。然后,基于输出视图的所用参数和信息,与服务相关联地在输入参数定义单元194中存储参数定义。
当***管理员点击“新文档”按钮199时,出现具有空白URL域和空白参数域的屏幕(未示出)。因此,***管理员输入适当URL或者各种参数并且点击“执行”按钮197。如果对结果满意,则***管理员点击“保存”按钮198。然后,在服务调用定义单元190中存储新的URL和名称而在输入参数定义单元194中存储与之关联的参数。以这一方式,创建和存储新的服务调用定义262。
已经描述了本发明的一个实施例,参照图12的流程图关于应用开发场景的进一步说明将有助于理解本发明。
在图12中,客户端计算机100的用户在步骤1202中打开Web浏览器102并且登录应用。然后,通过图1的网络300建立与Web应用服务器202的通信,并且应用管理单元258显示登录屏幕(未示出)作为响应。如果用户响应于此而输入用户ID和口令,则应用管理单元258参考认证/鉴权模块266(图3)以检验和认证用户ID和口令。
如果认证了这些用户ID和口令,则在Web浏览器102中显示图4的应用管理环境的菜单。这里,过程进展到步骤1204,并且用户从应用列表150中选择现有文档并且选择“编辑”按钮154或者“新文档”按钮158。然后,根据应用管理单元258的功能而将客户端开发环境模块下载到客户端计算机100。在初始化之后,在Web浏览器102上显示图5的屏幕。在创建新文档的情况下,应用编辑单元164为空白。在编辑现有文档的情况下,从应用管理单元258读取所选应用的应用定义264。然后,在应用编辑单元164中绘制现有小配件等。另外,无论点击的按钮是“新文档”按钮还是“保存”按钮,GUI组件列表164都列出已注册的数据。另外,服务调用管理单元256调用注册服务调用定义204并且根据在定义204中定义的服务的名称将服务添加到服务列表调用单元168的列表。
用户在步骤1206中通过鼠标点击将所希望的服务模型(简称为“服务”)拖放到服务模型显示单元162。然后,利用在输入参数定义单元194(图11)中定义的结构在服务模型显示单元162上显示所选服务的元素。图7示出了其例子。
在步骤1208中,用户将输入和触发放到应用编辑单元164。另外在步骤1210中,用户将打算作为另一服务模型的输入的输出拖放到数据中心170的任意单元。
在步骤1212中,服务列表显示单元168响应于拖放操作而提供作为拖放源的服务模型的输出引用。另一方面,在数据中心170侧上,在应用定义存储器(虽然未示出,但是已分配给图2的主存储器110)中创建源数据到作为拖放目标的单元的绑定。这里,将计算表达式输入到在作为拖放目标的单元旁边的单元。然后,基于应用定义存储器中存储的值来执行计算。在反映其中输入了表达式的单元时显示其结果。
在步骤1214中,用户将下一用户模型拖放到服务模型显示单元162。然后,根据与在步骤1206中的功能相同的功能而在服务模型显示单元162上显示比如输入和输出这样的已拖放服务模型的结构。
在步骤1216中,用户将数据中心170侧上已经输入了表达式的单元拖放到服务模型显示单元162上的输入和触发以由此绑定它们。然后,服务模型显示单元162提供对已拖放单元所在的输入和触发的引用。另一方面,数据中心170在应用定义存储器中创建在输入引用与单元引用之间的绑定以及在触发引用与单元引用之间的绑定。
在步骤1218中,用户将服务模型显示单元162的输出拖放到应用编辑单元164(图5)。作为响应,应用编辑单元164创建对来自服务模型显示单元162的输出的引用并且在拖放目的地上显示该引用。
接着在步骤1220中,虽然在图5中未示出,但是通过用户点击预定按钮等来选择对所创建的应用进行保存的处理,然后,正在运行的应用开发环境模块将应用定义存储器中的数据发送到应用管理单元258(见图3)。作为响应,应用管理单元258将数据存储到硬盘204使得能够以后读取数据。
在调用和执行这样保存的应用的情况下,用户登录应用并且选择用于显示应用管理环境的菜单。然后,通过Web服务器应用程序202的操作将对应的应用管理模块下载到客户端计算机100。显示图4的屏幕。
这里,用户选择预定应用并且点击对应的“执行”按钮162,然后用于执行应用的模块被通过Web服务器应用程序202的操作下载到客户端计算机100并且被执行。上面已经参照图10描述了这一操作,所以这里省略其具体描述。
在图13中,客户端计算机100的用户在步骤1302中打开Web浏览器102并且登录服务调用管理菜单。然后,通过图1的网络300建立与Web应用服务器202的通信,应用管理单元258在屏幕中发送回登录界面(未示出)。作为响应,用户输入用户ID和口令,然后应用管理单元258参考认证/鉴权模块266(图3)以检验和认证用户ID和口令。一般而言,登录服务调用管理菜单的权限比图12的应用开发屏幕的权限受到更严格的限制。这是因为已注册的服务模型普遍由用户选择并因此需要可靠地操作,并且希望由熟练的人员来创建模型。
在用户登录菜单之后,从Web应用服务器202下载预定模块260到客户端计算机100,因此在Web浏览器102的屏幕上显示图11的菜单。然后,在步骤1302中,在已注册服务列表显示单元上显示输入182、184和186。
在创建新文档的情况下,用户点击按钮199(图11)。用户在步骤1306中输入服务URL、注册名和解释。另外,用户在步骤1308中输入服务参数并且输入参数值。
在编辑现有文档的情况下,用户点击对应输入的“编辑”按钮189(图11)。然后,从服务调用管理单元256下载对应的服务调用定义262,并且由此将数据提供到服务简档定义单元192和输入参数定义单元194。
在步骤1310中,用户点击按钮197以尝试登录目标网站。这一操作以如下方式来执行,即使得服务调用定义单元190进行用以通过服务调用单元202来访问网站的服务602的HTTP请求。具体而言,所进行的HTTP请求是GET,服务调用定义单元190能够直接发送该请求到网站的服务602。
以这一方式,服务调用定义单元190接收来自网站的服务602的结果并且在输出显示单元196上显示该结果。如果对结果满意,则用户在步骤1312中点击“保存”按钮198(图11)。然后,服务调用定义单元190基于在输出显示单元196上显示的数据来构造服务调用定义262,并且将定义发送到Web应用服务器202的服务调用管理单元256。然后,服务调用管理单元256在硬盘204中保存所发送的服务调用管理单元256。
接着通过具体描述来说明这一实施例的应用开发操作。这里假设创建这样的应用使得用户(1)向命名为CitySearch的网站输入邮政编码以获取关于城市的数据和关于州的数据;(2)并且通过对关于城市的数据和关于州的数据进行组合来访问命名为MapCode的网站;(3)以获得城市的纬度和经度。顺便提及,CitySearch独立地发送回关于城市的数据和关于州的数据,但是MapCode要求将关于城市的数据和关于州的数据组合成一个。本发明的特征对于自动地执行这一操作而言是有用的。
参照图14,图示了新应用开发的初始屏幕。在这一屏幕中,GUI组件列表显示单元166和属性编辑单元172由于与如下描述关系不大而没有被示出。在这一屏幕上,如箭头1402所示,用户将CitySearch从服务列表显示单元168拖放到服务模型显示单元162。
如图15中所示,在服务模型显示单元162中显示包括CitySearch的输入和输出在内的结构。***管理员根据CitySearch来创建这一结构,其定义已经存储于如图11中所示的服务调用定义262中。
这里,在图15中,如箭头1502所示将CitySearch的触发从服务模型显示单元162拖放到应用编辑单元164,并且如箭头1504所示将CitySearch的输入1拖放到应用编辑单元164。
然后,如图16中所示,在其中拖放触发的区域变为包括字符“前进”的按钮1602,并且在其中拖放输入1的区域变为文本输入域1604。
这里,如图17中所示,如果将邮政编码“10001”输入到文本输入域1604并且点击按钮1602,则利用参数邮政编码=“10001”通过图3的服务调用管理单元256进行对CitySearch的访问,并且CitySearch分别发送回“纽约”和“NY”到<城市>和<州>。这里,如箭头1702所示,用户将服务模型显示单元162上显示的CitySearch的输出的<城市>拖放到数据中心170的单元A1。如箭头1704所示,用户将输出的<州>拖放到数据中心170的单元B1。
然后,分别将单元A1和单元B1绑定到<城市>和<州>。因此,如图18中所示,分别在数据中心170的单元A1和单元B1中显示‘纽约’和‘NY’。
对此,用户利用字符串绑定运算符&将=A1&′,′&B1和计算表达式输入到数据中心170的单元C1并且按下“行结束”键。然后,如图19中所示,求解计算表达式并且在单元C1中显示‘纽约,NY’。顺便提及,在这一实施例中,至于运算符的限制,在JavaScript中包覆运算符使得在一般的电子数据表程序中实现通用格式。然而,可以利用另一编程语言来实现通用表示法,比如=A1+′,′+B2。另外,本领域技术人员将容易理解到除了字符串绑定运算符之外还能够实现任意计算,例如加法、减法或者其它这样的数学函数计算。
另外,在这一例子中,在单元A1和B1中存储来自Web服务的输出。然而,可考虑各种应用;例如,可以向一个单元输入由用户向单元直接输入的字符串或者包括对其它单元的引用在内的计算表达式。
接着如图20中所示,如箭头2002所示将MapCode从服务列表显示单元168拖放到服务模型显示单元162的任意区域。然后,如图21中所示,在服务模型显示单元162上显示包括MapCode的输入和输出在内的结构。***管理员已经根据MapCode创建该结构的定义并且将该定义存储于服务调用定义262中。
然后,如在图21的屏幕上的箭头2102和2104所示,用户将数据中心170的单元C1拖放到服务模型显示单元162中MapCode的触发和输入1。将该单元不仅拖放到输入1而且拖放到触发的原因是为了自动地对数据中心170的单元C1的值改变做出响应并且在使用输入1作为参数的的情况下访问MapCode。
顺便提及,这时,取代了将单元C1直接拖放到服务显示单元168中显示的MapCode的输入1,可以将MapCode的输入1暂时拖放到应用编辑单元164,然后可以将单元1拖放到应用编辑单元164中的拖放目标。这一情况与上述情况的不同之处在于向MapCode的输入1提供单元C1的值。这一设置在随后执行应用时有助于用户在视觉上观察作为中间步骤而在屏幕上向MapCode的输入1提供的值。
在实践中,当响应于拖放操作而将MapCode的触发从未关联州改变成关联状态时,利用参数纽约、NY访问MapCode,并且MapCode发送回纽约的纬度和经度,即<纬度>=40.71和<经度>=-75.59。然后,如箭头2202和2204所示将作为MapCode的输出的<纬度>和<经度>从服务模型显示单元162拖放到应用编辑单元164以由此在应用编辑单元164上显示这些值。
已经几乎完成了应用。此后,如图23中所示,用户适当地添加字符串2302、2304、2306以便于理解应用从而保存应用。
可以在图4中所示的过程中选择和执行由此保存的应用。执行屏幕如图24中所示。也就是说,优选地在应用定义264中描述与通过数据中心170实现的绑定有关的信息作为用XML表达的内部数据,并且数据中心170本身不出现在应用执行屏幕上。
用户例如在“邮政编码”中输入“95101”并且点击“前进”按钮2408。然后,虽然用户看不见,但是利用参数邮政编码=“95101”进行对CitySearch的访问。然后,CitySearch发送<城市>=′圣何塞′、<州>=′CA′。***根据利用图14至23的过程创建和保存的内部定义将已定义的存储器变量改变为′圣何塞′,′CA′。然后,响应于该改变来触发MapCode并且利用参数′圣何塞′,′CA′来访问MapCode,并且MapCode分别向<纬度>和<经度>发送回37.20和-122.06。图25示出了其结果。
实施例2
以上实施例描述了对访问Web服务的应用进行创建的例子。正如本领域技术人员容易理解到的,本发明适用于创建一般的客户端应用。顺便提及,作为在这一实施例中使用的硬件和软件环境,可以利用结合图2的客户端计算机100来描述的环境,因此这里省略其具体描述。
图26图示了在现有可视创建工具中经常碰到的常见屏幕界面。在这一界面中,菜单栏2602包括比如文件、编辑或者查看这样的菜单。具体而言,文件包括子菜单,比如“新文档”、“另存为”、“保存”或者“结束”。响应于用户操作根据CPU 108和操作***的功能而将显示屏幕上的程序从图2的硬盘104读取到主存储器110并且显示在显示器114上。
在GUI组件模板区域2604中,在表单中安排比如文本输入区域、标签、备忘录和组合框这样的现有GUI组件使得能够拖放组件。GUI组件模板区域2604优选地按照比如标签1、标签2、标签3...这样的标签来分门别类。用户选择包括待粘贴GUI组件的标签。另外布置属性编辑单元2606,该单元用于编辑向表单粘贴的GUI组件的其它属性,比如颜色和字体。通过现有应用开发工具来提供这些组件,但是本发明的新颖功能是看似电子数据表的数据中心2606的功能。这一功能与图5的数据中心170的功能基本上等同。
用户先从菜单栏的“文件”中选择“新文档”。然后,如图27中所示,创建窗口“表单1”。然后,如果用户将文本输入区域中的组件从GUI组件模板区域2604拖放到表单1,则显示文本输入区域2702和2704。另外,根据需要拖放标签并且根据需要添加字符2706和2708。
接着,如图28中所示,将字符如‘东京’输入到文本输入区域2702,并且将字符如‘日本’输入到文本输入区域2704。由此拖放数据中心2606的单元A1和B1。然后,如图29中所示,在数据中心2606的单元A1和B1中显示‘东京’和‘日本’。
然后,如果将表达式=A1&′,′&B1输入到单元C1并且按下行结束按钮,则在C1中显示数据‘日本东京’。然后,用户从菜单栏中的“文件”中选择表单“新文档”。然后,如图29中所示,创建窗口“表单2”。然后,如果将文本输入区域的组件从GUI组件模板2604拖放到表单2,则在此显示文本输入区域2902。在这一阶段,如果将数据中心2606的单元C1拖放到文本输入区域2902,则在文本输入区域2902中显示‘日本东京’。
以这一方式,通过数据中心来关联相同表单或者不同表单中的区域。能够在同一项目中的一个源代码中自动地描述这样获得的在域之间的关系。另外,在现有技术的限度之内,可以捕捉关联源侧上的值改变事件并且自动地将该事件反映到关联目标。
如果可视工具涉及BASIC、C++、C#和Java,则不太可能出现用户无需描述代码的情况。然而,数据中心的概念将便于在不同区域之间的关联并且提高创建代码的效率。
如上所述,基于数个实施例描述了本发明的方法和***。然而,本发明不限于这样的方法和***,而是也能够保护在比如CD-ROM、DVD-R或者HDD这样的计算机可读介质中存储的程序或者可从网站下载的程序。本发明的程序结合计算机硬件组件来构造上述***,或者能够执行前述方法。
另外,基于计算机语言如JavaScript、BASIC、C++、C#或者Java来描述这一实施例。本发明不限于特定计算机语言和环境。如果获得上述GUI环境,则任何***或者方法或者用于实现该***或者方法的任何计算机程序都在本发明的范围内。
另外,在上述实施例中,数据中心区域被设计为看似电子数据表并且包括接口。这样的显示形式对于本发明而言不是实质性的。数据中心区域可以包括任何其它显示器接口,只要提供了能够拖放的多个域以及能够存储基于域中存储的值来计算的值并且能够拖放到另一对象的多个域。
Claims (16)
1.一种计算机辅助应用程序创建***,用于响应于用户的操作利用包括存储装置的计算机在显示器上输入或者显示数据以交互地创建基于GUI的应用程序,包括:
用于在所述显示器上显示第一区域和包括多个单元的电子数据表式接口的装置;
用于响应于用户的操作在所述第一区域中布置用户所选择的GUI元素的装置;
用于响应于用户的操作通过指示装置的操作将所述第一区域中布置的所述GUI元素与所述电子数据表式接口的所述单元相关联的装置;
用于在所述电子数据表式接口的所述单元中基于所述用户所存储的函数来针对相关联的所述GUI元素计算函数值的装置;
用于将所述电子数据表式接口的包括所述函数值的单元与在所述第一区域中布置的所述GUI元素相关联的装置;以及
用于在所述存储装置中存储关于所述关联的信息的装置,
其中使用GUI操作来进行所述关联。
2.根据权利要求1所述的计算机辅助应用程序创建***,其中所述电子数据表式接口包括至少三个单元,并且向所述单元之一输入的函数能够基于与其它单元相关联的数据而被计算。
3.根据权利要求1所述的计算机辅助应用程序创建***,其中所述GUI操作是拖放操作。
4.根据权利要求3所述的计算机辅助应用程序创建***,其中所述电子数据表式接口包括电子数据表程序的接口,并且所述多个单元被显示为所述电子数据表程序的单独单元。
5.根据权利要求3所述的计算机辅助应用程序创建***,其中还包括:
用于显示包括多个能够粘贴到所述第一区域的元素的模板区域的装置,其中响应于从所述模板区域对所述元素中各元素的拖放操作在所述第一区域中布置所述元素。
6.一种计算机辅助应用程序创建方法,用于响应于用户的操作利用包括存储装置的计算机在显示器上输入或者显示数据以交互地创建基于GUI的应用程序,包括步骤:
在所述显示器上显示第一区域和包括多个单元的电子数据表式接口;
响应于用户的操作在所述第一区域中布置用户所选择的GUI元素;
响应于用户的操作通过指示装置的操作将所述第一区域中布置的所述GUI元素与所述电子数据表式接口的所述单元相关联;
在所述电子数据表式接口的所述单元中基于所述用户所存储的函数来针对相关联的所述GUI元素计算函数值;
将所述电子数据表式接口的包括所述函数值的单元与在所述第一区域中布置的所述GUI元素相关联;以及
在所述存储装置中存储关于所述关联的信息,
其中使用GUI操作来进行所述关联。
7.根据权利要求6所述的方法,其中所述电子数据表式接口包括至少三个单元,并且向所述单元之一输入的函数能够基于与其它单元相关联的数据而被计算。
8.根据权利要求7所述的方法,其中所述GUI操作是拖放操作。
9.根据权利要求8所述的方法,其中所述电子数据表式接口包括电子数据表程序的接口,并且所述多个单元被显示为所述电子数据表程序的单独单元。
10.根据权利要求8所述的方法,其中还包括:
显示包括多个能够粘贴到所述第一区域的元素的模板区域,其中响应于从所述模板区域对所述元素中各元素的拖放操作在所述第一区域中布置所述元素。
11.一种计算机实现方法,用于响应于用户的操作利用包括存储装置的计算机来布置用于在显示器上输入或者显示数据的元素以交互地创建对Web服务进行访问的基于GUI的应用程序,包括步骤:
在所述显示器上显示第一输入区域和包括多个单元的电子数据表式接口;
响应于用户的操作来布置第一Web服务模型GUI元素和第二Web服务模型GUI元素,所述第一Web服务模型GUI元素包括输出元素、触发元素和0个或者1个或者更多参数输入元素并且适于访问指定URL,并且所述第二Web服务模型GUI元素包括输出元素、触发元素和至少一个参数输入元素并且适于访问所述第一输入区域中的指定URL;
响应于用户的操作利用指示装置将所述第一或者第二Web服务模型GUI元素的输出元素与所述电子数据表式接口的所述单元相关联或者将所述电子数据表式接口的所述单元与所述第一或者第二Web服务模型GUI元素的输出元素相关联;
在所述电子数据表式接口的所述单元中计算所述用户所存储的函数的值;以及
在所述存储装置中存储关于所述关联的信息,
其中使用GUI操作来进行所述关联。
12.根据权利要求11所述的方法,其中能够响应于用户的操作利用指示装置来将所述电子数据表式接口的所述单元与将由所述单元的值的改变来触发的所述第一或者第二Web服务模型GUI元素的所述触发元素相关联。
13.根据权利要求12所述的方法,其中所述电子数据表式接口包括至少三个单元,并且向所述单元之一输入的函数能够基于与其它单元相关联的数据而被计算。
14.根据权利要求13所述的方法,其中所述GUI操作是拖放操作。
15.根据权利要求14所述的方法,其中所述第一Web服务模型GUI元素的输出元素包括列表,并且所述列表通过拖放操作来与所述电子数据表式接口相关联以将所述列表中数据的条数与所述电子数据表式接口的所述单元相关联。
16.一种计算机实现方法,用于响应于用户的操作利用包括存储装置的计算机来布置用于在显示器上输入或者显示数据的元素以交互地创建基于GUI的应用程序,包括步骤:
显示第一区域、包括至少一个单元的电子数据表式接口、以及第三区域;
响应于用户的操作在所述第一区域中布置一个或者多个GUI元素;
响应于用户的操作在所述第三区域中布置一个或者多个GUI元素;
响应于用户的操作将所述第一区域中布置的所述GUI元素与所述电子数据表式接口的所述单元相关联;
根据用户向所述电子数据表式接口的所述单元输入的函数来计算函数值,其中基于与在至少所述第一区域中布置的所述GUI元素相关联的值来计算所述函数值;
响应于用户的操作将所述电子数据表式接口的所述单元与所述第三区域的所述GUI元素相关联;以及
在所述存储装置中存储关于所述关联的信息,
其中使用GUI操作来进行所述关联。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006326338 | 2006-12-01 | ||
JP2006326338A JP4767828B2 (ja) | 2006-12-01 | 2006-12-01 | コンピュータ用アプリケーション・プログラムの作成システム、方法、及びプログラム |
JP2006-326338 | 2006-12-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101192152A CN101192152A (zh) | 2008-06-04 |
CN101192152B true CN101192152B (zh) | 2011-12-07 |
Family
ID=39477344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101696373A Expired - Fee Related CN101192152B (zh) | 2006-12-01 | 2007-11-13 | 计算机辅助应用程序创建***和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20080134089A1 (zh) |
JP (1) | JP4767828B2 (zh) |
CN (1) | CN101192152B (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101842909A (zh) * | 2007-07-19 | 2010-09-22 | 加利福尼亚技术学院 | 半导体的有序阵列结构 |
AU2008296763A1 (en) * | 2007-08-28 | 2009-03-12 | California Institute Of Technology | Polymer-embedded semiconductor rod arrays |
US9063755B2 (en) * | 2008-04-07 | 2015-06-23 | Express Mobile, Inc. | Systems and methods for presenting information on mobile devices |
US8782065B2 (en) * | 2008-06-06 | 2014-07-15 | Microsoft Corporation | Interfacing an application to data sources via a web service interface |
US20110055744A1 (en) * | 2009-08-28 | 2011-03-03 | Ryan Christopher N | Visual Linking of Elements to Model Attributes |
JP2011055075A (ja) * | 2009-08-31 | 2011-03-17 | Kyocera Mita Corp | 画像形成システムおよび画像形成装置 |
US8808933B2 (en) * | 2009-11-30 | 2014-08-19 | California Institute Of Technology | Semiconductor wire array structures, and solar cells and photodetectors based on such structures |
US9811602B2 (en) * | 2009-12-30 | 2017-11-07 | International Business Machines Corporation | Method and apparatus for defining screen reader functions within online electronic documents |
CA2788871C (en) * | 2010-02-05 | 2016-10-11 | Medversant Technologies, Llc | System and method for visually mapping and automatically completing electronic forms |
CN102169431A (zh) * | 2010-02-26 | 2011-08-31 | 国际商业机器公司 | 用于优化用户界面的生成的方法与装置 |
US20110225566A1 (en) * | 2010-03-10 | 2011-09-15 | Microsoft Corporation | Testing user interfaces in multiple execution environments |
US8661334B1 (en) * | 2010-03-30 | 2014-02-25 | Amazon Technologies, Inc. | Mapping behavior to data |
US9476129B2 (en) | 2012-04-02 | 2016-10-25 | California Institute Of Technology | Solar fuels generator |
WO2013106793A1 (en) | 2012-01-13 | 2013-07-18 | California Institute Of Technology | Solar fuel generators |
US10026560B2 (en) | 2012-01-13 | 2018-07-17 | The California Institute Of Technology | Solar fuels generator |
WO2013126432A1 (en) | 2012-02-21 | 2013-08-29 | California Institute Of Technology | Axially-integrated epitaxially-grown tandem wire arrays |
US9847969B1 (en) * | 2012-02-23 | 2017-12-19 | Nintex Pty Limited | Apparatus and method for collecting form data across open and closed domains |
WO2013152132A1 (en) | 2012-04-03 | 2013-10-10 | The California Institute Of Technology | Semiconductor structures for fuel generation |
US20140047368A1 (en) * | 2012-08-13 | 2014-02-13 | Magnet Systems Inc. | Application development tool |
CN103246731A (zh) * | 2013-05-10 | 2013-08-14 | 天津大学 | 基于关联数据的Web服务语义标注方法 |
JP6370033B2 (ja) * | 2013-07-29 | 2018-08-08 | キヤノン株式会社 | 情報処理装置、情報処理方法、プログラム |
JP5971301B2 (ja) * | 2013-10-16 | 2016-08-17 | キヤノンマーケティングジャパン株式会社 | 情報処理装置、情報処理装置の制御方法、およびプログラム |
US9195440B2 (en) * | 2013-11-26 | 2015-11-24 | International Business Machines Corporation | Intelligent data source selection in application development |
US9575639B2 (en) * | 2014-02-27 | 2017-02-21 | Ab Initio Technology Llc | Compound controls |
WO2017019047A1 (en) * | 2015-07-28 | 2017-02-02 | Hewlett Packard Enterprise Development Lp | Component profile display |
US11023668B2 (en) * | 2015-11-02 | 2021-06-01 | Microsoft Technology Licensing, Llc | Enriched compound data objects |
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 |
JP6304433B2 (ja) * | 2016-06-30 | 2018-04-04 | キヤノンマーケティングジャパン株式会社 | 情報処理装置、サーバ、その処理方法及びプログラム |
US10216494B2 (en) | 2016-12-03 | 2019-02-26 | Thomas STACHURA | Spreadsheet-based software application development |
CN106886408A (zh) * | 2017-01-22 | 2017-06-23 | 广州真诺电子科技有限公司 | 应用于机器人软件工程师的智能决策*** |
CA3216654A1 (en) * | 2017-12-03 | 2019-06-06 | Thomas Stachura | Spreadsheet-based software application development |
US11243518B2 (en) * | 2018-07-27 | 2022-02-08 | Citizen Watch Co., Ltd. | Computer program production system, computer program, and production terminal instrument |
JP6874040B2 (ja) * | 2018-07-27 | 2021-05-19 | シチズン時計株式会社 | プログラム作成システム、プログラム、及び、作成端末機器 |
JP7477773B2 (ja) * | 2021-01-18 | 2024-05-02 | キヤノンマーケティングジャパン株式会社 | 情報処理装置、制御方法、プログラム |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08249170A (ja) * | 1995-03-14 | 1996-09-27 | Mitsubishi Electric Corp | グラフィカルユーザインタフェース設計/製造支援装置 |
US6057837A (en) * | 1997-07-15 | 2000-05-02 | Microsoft Corporation | On-screen indentification and manipulation of sources that an object depends upon |
US20020078103A1 (en) * | 2000-12-20 | 2002-06-20 | Gorman William Phillip | Wizard development kit |
AU2002328726A1 (en) * | 2001-09-28 | 2003-04-14 | Codagen Technologies Corp. | A system and method for managing architectural layers within a software model |
US7562339B2 (en) * | 2002-01-15 | 2009-07-14 | Bea Systems, Inc. | System architecture for business process development and execution with introspection and generic components |
US20040017392A1 (en) * | 2002-05-01 | 2004-01-29 | Welch Keith C. | Web service control for use in a graphical programming environment |
US20040207659A1 (en) * | 2003-04-02 | 2004-10-21 | International Business Machines Corporation | Program creation by combining web services using graphic user interface controls |
US7581205B1 (en) * | 2003-09-30 | 2009-08-25 | Nextaxiom Technology, Inc. | System and method of implementing a customizable software platform |
US7895578B2 (en) * | 2005-06-13 | 2011-02-22 | Business Objects Software Ltd. | Apparatus and method for using connector components to provide connectivity to interactive graphics representative of input and output data |
US20090100010A1 (en) * | 2005-10-26 | 2009-04-16 | Zimbra, Inc. | System and method for seamlessly integrating separate information systems within an application |
US8140987B2 (en) * | 2005-12-29 | 2012-03-20 | Sap Ag | GUI modeling of web services |
US8135668B2 (en) * | 2006-09-06 | 2012-03-13 | Microsoft Corporation | Service composition environment |
-
2006
- 2006-12-01 JP JP2006326338A patent/JP4767828B2/ja not_active Expired - Fee Related
-
2007
- 2007-11-13 CN CN2007101696373A patent/CN101192152B/zh not_active Expired - Fee Related
- 2007-11-20 US US11/942,870 patent/US20080134089A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2008140194A (ja) | 2008-06-19 |
CN101192152A (zh) | 2008-06-04 |
JP4767828B2 (ja) | 2011-09-07 |
US20080134089A1 (en) | 2008-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101192152B (zh) | 计算机辅助应用程序创建***和方法 | |
AU2012370492B2 (en) | Graphical overlay related to data mining and analytics | |
CA2736490C (en) | Method and apparatus for remotely displaying screen files and efficiently handling remote operator input | |
CN102939583B (zh) | 创建任务会话 | |
US11635974B2 (en) | Providing a different configuration of added functionality for each of the stages of predeployment, deployment, and post deployment using a layer of abstraction | |
US8914736B2 (en) | On-page manipulation and real-time replacement of content | |
US8898796B2 (en) | Managing network data | |
US20060253776A1 (en) | Information processing device, information processing system, information processing method, information processing program and recording medium recording the informaiton processing program | |
CN101652748A (zh) | 生成服务程序的技术 | |
CN102918484A (zh) | 包括任务栏锁定的万维网应用锁定 | |
US20170031882A1 (en) | Web Page Profiler | |
WO2001039031A9 (en) | Method for automatic form filling | |
US7600188B2 (en) | Interface for directing a user to build a website | |
JP2005513607A (ja) | ウェブサイトのウェブページのユーザフローの追跡 | |
CN110213105A (zh) | 一种跨平台微应用创建方法 | |
US20020188572A1 (en) | Interface for creating privacy policies for the P3P specification | |
US9524503B2 (en) | Method and system for exposing games | |
US11836510B2 (en) | Snapshot capture of computing device user interfaces | |
Duong et al. | IBM MobileFirst Strategy Software Approach | |
Powers et al. | Microsoft Visual Studio 2005 Unleashed | |
Bowden | Visualforce Development Cookbook | |
JP2003536138A (ja) | Webブラウザ自動化のための方法 | |
Tran | Expence Tracker Application Using MERN Stack | |
US20080235257A1 (en) | Customizing the format of web document pages received at requesting computer controlled web terminals | |
JP2003256366A (ja) | コンテンツアプリケーション構築システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111207 Termination date: 20181113 |
|
CF01 | Termination of patent right due to non-payment of annual fee |