CN104598218B - 用于合并和重用门户信息的方法和系统 - Google Patents

用于合并和重用门户信息的方法和系统 Download PDF

Info

Publication number
CN104598218B
CN104598218B CN201410601141.9A CN201410601141A CN104598218B CN 104598218 B CN104598218 B CN 104598218B CN 201410601141 A CN201410601141 A CN 201410601141A CN 104598218 B CN104598218 B CN 104598218B
Authority
CN
China
Prior art keywords
code
code segmentation
segmentation
function
program
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.)
Active
Application number
CN201410601141.9A
Other languages
English (en)
Other versions
CN104598218A (zh
Inventor
S.J.布朗
D.P.德费利斯
M.R.厄恩斯特伯格
S.A.赫恩
L.E.洛文
M.G.麦克劳克林
L.M.缪塞
D.P.马勒
杨国栋
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.)
Qindarui company
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
Publication of CN104598218A publication Critical patent/CN104598218A/zh
Application granted granted Critical
Publication of CN104598218B publication Critical patent/CN104598218B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种用于合并和重用在不同的网络应用内的门户信息的手段。所述手段包括一种方法,所述方法包括:至少一个计算装置从应用检索代码。所述方法包括:所述至少一个计算装置将所述代码解构为代码分段。所述方法包括:所述至少一个计算装置验证所述代码分段的每一个。所述方法包括:所述至少一个计算装置将所述代码分段的每一个与服务器侧组件匹配。所述方法包括:所述至少一个计算装置基于所述匹配来产生门户程序。

Description

用于合并和重用门户信息的方法和系统
技术领域
本发明总体上涉及一种建立用于网络应用的可重用分量的库的系统和方法,并且更具体地涉及一种用于合并和重用在不同网络应用内的门户信息的方法和系统。
背景技术
组织(例如,政府、医疗、零售、制造等)可以由诸如会计、市场营销、财务、销售、运营等的多个商务领域构成。在组织内的每一个商务领域可以建立网络应用(例如,网页、网络门户等),该网络应用被在组织内的那个特定商务领域的内部和外部客户使用。例如,组织的会计部门可以建立一个网络应用,而同一组织的市场营销部门可以建立另一个网络应用。网络应用可以包括与不同类型的代码相关联的不同的特征,诸如门户,该不同类型的代码例如是超文本标记语言(HTML)、Javascript和/或其他类型的代码。
因为每一个商务领域可以建立它们本身的网络应用,所以组织可以具有由独立的工程团队或商务领域实现和管理的不同或变化的门户解决方案。而且,许多门户可以在开发新的门户的同时保持在位,这增大了在环境中的不同门户和基础结构的数量,并且导致需要过度的持续维护和支持的大量门户。因此,即使每一个门户实例可以与其他门户实例具有一定程度的相同性,但是随着时间,变得越来越难以证明不同门户和据测定较广环境的持续维护和管理的是合理的,因为新的门户继续与现有的传统门户并行地被开发。
发明内容
在本发明的第一方面中,一种方法包括:由至少一个计算装置从应用检索代码。所述方法进一步包括:由所述至少一个计算装置将所述代码解构为代码分段。所述方法进一步包括:由所述至少一个计算装置验证所述代码分段的每一个。所述方法进一步包括:由所述至少一个计算装置将所述代码分段的每一个与服务器侧组件匹配。所述方法进一步包括:由所述至少一个计算装置基于所述匹配来产生门户程序。
在本发明的另一个方面中,存在一种用于产生门户程序的计算机程序产品。所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有在所述存储介质中包含的程序代码。所述程序代码被用于接收代码的计算装置可读/可执行。所述计算机程序产品包括:将所述代码解构为代码分段。所述计算机程序产品包括:验证所述代码分段以确定所述代码分段可以单独起作用。所述计算机程序产品包括:将所述代码分段的每一个与服务器侧功能匹配。所述匹配包括分析下述部分的至少一个:关键字、标签和元数据。所述计算机程序产品包括:基于所述匹配来产生门户程序。
在本发明的另一个方面中,一种系统包括CPU、计算机可读存储器和计算机可读存储介质。另外,所述系统包括一个或多个程序指令。程序指令可操作用于从网络应用检索代码。程序指令将所述代码解构为代码分段。所述代码分段的每一个与下述部分的至少一个相关联:超文本标记语言(HTML)和JavaScript。程序指令验证所述代码分段的每一个可以起作用,而不要求其他代码分段的功能。程序指令将所述代码分段的每一个与服务器侧组件匹配。所述服务器侧组件是下述部分的至少一个:共同匹配组件、转换组件和不匹配的组件。程序指令丢弃与存储的门户程序相关联的所述代码分段。程序指令存储不与所述存储的门户程序相关联的所述代码分段。程序指令产生门户程序,并且在另一个网络应用中使用所述门户程序。所述程序指令被存储在所述计算机可读存储介质上,以用于由所述CPU经由所述计算机可读存储器的执行。
附图说明
通过本发明的示例性实施例的非限定性示例,参考所述的多个附图,在随后的详细说明中描述了本发明,
图1是根据本发明的方面的用于实现步骤的说明性环境。
图2示出根据本发明的方面的示例处理。
图3示出根据本发明的方面的用于提取和合并门户代码的环境的功能框图。
图4示出根据本发明的方面的示例流程。
具体实施方式
本发明总体上涉及一种建立用于网络应用的可重用分量的库的系统和方法,并且更具体地涉及一种用于合并和重用在不同网络应用内的门户信息的方法和系统。更具体地,本发明提供了一个或多个引擎,该一个或多个引擎可以分析用于可能的积木组件的现有门户代码,该可能的积木组件可以被收集到公共函数库内,并且具有被新的或现有的网络应用的可能重用的能力。以这种方式,本发明合并门户,并且将冗余的门户程序/代码简化为可以被多个网络应用和门户程序利用的公共的可重用基本集。结果,本发明的系统和方法减少了建立/修改网络内容所需的时间,并且将新的软件组件的建立自动化。这继而逐渐灌输了用于下述部分的开发和部署处理的质量、可重复性和加速:(i)建立新的门户网络内容;(ii)增加现有的门户内容;以及(iii)网络内容的转换和合并。以这种方式,本发明可以减少用于更快地到达市场的时间的开发精力,改善操作效率,并且也去除冗余成本。
在特定实施例中,本发明的系统和方法从与一个或多个网络应用的用户界面(UI)层相关联的门户代码提取和隔离组件。所隔离的组件是自包含模块,该模块执行特定功能,该模块可使得用于与其他可重用组件组合。更具体地,本发明使用服务器侧装置来提取在UI层中的门户代码,该门户代码被划分为代码分段,该代码分段可以被隔离或与其他代码分段组合。该代码分段可以与HTML、Javascript函数、服务器侧源、元数据、标签、关键字等相关联。使用该代码分段,服务器侧装置可以:(i)将经由在HTML和Javascript函数中的属性的UI功能调用匹配到它们的对应的服务器侧组件;(ii)从对应的服务器侧组件识别和提取函数;(iii)将该函数作为另一个代码分段插入在公共的代码储存库中;以及(iv)验证该代码分段可以独自起作用。而且,与服务器侧装置相关联的模式匹配引擎通过分析公共关键字、元数据等来确定来自UI层和服务器侧的代码分段具有可识别或可重用的公共代码模式。结果,提取、匹配和验证的系统和处理通过使用已经被分类、标记和/或标注的公共代码模式来允许代码分段被组合到新的门户程序内。
在另外的实施例中,服务器侧装置可以使用门户自动收割机来从网络应用分析现有的门户代码,确定用于其他网络应用的可能积木组件,并且将组件收集到公共功能和能力的库内以由其他网络应用使用。结果,并且有益地,本发明通过减少需要保留的冗余组件的数量来降低成本和改善效率。这是通过下述方式进行的:将门户代码合并和重用以减少在企业中的门户的数量,由此减少持续维护和支持成本的过度开销。这允许存储具有相同或类似功能的重复组件的消除。而且,本发明减少了与特定组织相关联的网络组件的数量,并且如此一来,减少了用于维护网络组件的维护和支持成本的开销费用。而且,本发明减少了用于建立积木/小应用程序的上,并且因此增大了建立新的门户网络内容的速度。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质和/或装置(后面称为计算机可读存储介质)。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
计算机程序指令也可以被加载到计算机、其他可编程数据处理设备或其他装置上,以使得在计算机、其他可编程数据处理设备或其他装置上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机或其他可编程设备上执行的指令提供了用于实现在流程图和/或框图的一个或多个方框中指定的功能/行为的处理。
图1示出根据本发明的各个管理处理的说明性环境10。在这个程度上,环境10包括可以执行在此所述的处理的服务器12或其他计算系统、装置110和装置120。装置110和120可以是能够用于设计和实现网络应用的任何计算装置。而且,具体地说,服务器12包括计算装置14。计算装置14可以驻留在第三方服务提供商的网络基础结构或计算装置(在图1中一般地表示其任何一个)上。
计算装置14也包括处理器20(例如,CPU)、存储器22A、I/O接口24和总线26。存储器22A可以包括在程序代码的实际执行期间使用的本地存储器、海量存储器和高速缓存,该高速缓存提供至少一些程序代码的暂时存储,以便减少必须在执行期间从海量存储器检索代码的次数。另外,计算装置包括随机存取存储器(RAM)、只读存储器(ROM)和操作系统(O/S)。
计算装置14与外部I/O装置/资源28和存储器22A进行通信。例如,I/O装置28可以包括可以使得个人与计算装置14(例如,用户界面)交互的任何装置或使得计算装置14能够使用任何类型的通信链路与一个或多个其他计算装置进行通信的任何装置。外部I/O装置/资源28可以例如是手持装置、PDA、手机、键盘等。
通常,处理器20执行可以在存储器22A和/或存储系统22B中存储的计算机程序代码(例如,程序控制44)。而且,根据本发明的方面,程序控制44开始门户自动收割机引擎60,例如,在此所述的处理。门户自动收割机引擎60可以被实现为在存储器22A中被存储为独立或组合的模块的程序控制44中的一个或多个程序代码。另外,门户自动收割机引擎60可以被实现为独立的专用处理器或单个或几个处理器,以提供这些工具的功能。在执行计算机程序代码的同时,处理器20可以从存储器22A、存储系统22B和/或I/O接口24读取数据和/或向其写入数据。该程序代码执行本发明的处理。总线26提供在计算装置14中的组件的每一个之间的通信链路。
计算装置14可以包括能够执行其上安装的计算机程序代码的任何通用的制造计算品(例如,个人计算机、服务器等)。然而,可以明白,计算装置14仅代表可以执行在此所述的处理的各种可能的等同计算装置。在这个程度上,在实施例中,可以通过包括通用和/或专用硬件和/或计算机程序代码的任何组合的制造计算品来实现由计算装置14提供的功能。在每一个实施例中,可以分别使用标准编程和工程技术来建立该程序代码和硬件。
类似地,服务器12仅说明用于实现本发明的各种类型的计算机基础结构。例如,例如,在实施例中,服务器12包括两个或更多的计算装置(例如,服务器簇),该计算装置通过诸如网络或共享存储器等的任何类型的通信链路来进行通信,以执行在此所述的处理。而且,在执行在此所述的处理的同时,在服务器12上的一个或多个计算装置可以使用任何类型的通信链路与在服务器12外部的一个或多个其他计算装置进行通信。该通信链路可以包括有线和/或无线链路的任何组合、一个或多个类型的网络(例如,因特网、广域网、局域网、虚拟专用网等)的任何组合,并且/或者可以使用传输技术和协议的任何组合。
门户自动收割机引擎60可以从一个或多个网络应用接收代码和/或其他信息,分析代码和/或其他信息,并且建立可以在其他网络应用内使用的组件。在实施例中,门户自动收割机引擎60可以从由装置110存储的网络应用接收代码和/或其他信息。装置110可以是可以经由有线或无线机制与门户自动收割机引擎60进行通信的任何类型的装置(例如,计算机、膝上型计算机、智能电话等)。
在更具体的实施例中,可以通过相差值网络门户来启动门户自动收割机引擎60。门户自动收割机引擎60自动分析门户代码,并且建立与网络门户相关联的可能功能组件的列表。门户自动收割机引擎60通过参考标签、关键字和用于隔离功能块的某些公共功能来对于网络门户搜索构成组件。因此,门户自动收割机引擎60可以运行/测试隔离的功能块。在实施例中,这可能要求已经被设计来封装功能块的代码的执行,该功能块可以然后调用和传送任何所需值。在完成有效运行/测试时,可以然后将功能块促进为组件,并且存储在诸如存储系统22B的公共库中。这个处理的结果因此通过智能地传递值来允许用户观看和运行已经被隔离的门户的部分,以确定功能块单独工作的可行性或者允许用户组合几个块来作为较大的软件组件工作。
在实施例中,网络应用可以是经由内联网提供或与万维网的使用相关联的任何应用。通过说明性的非限定性示例,网络应用可以是网页,该网页是通过万维网传输的、以标记语言(例如,HTML、可扩展标记语言(XML)等)编写的文件。该网页可以具有从超文本建立的链接,该链接可以用于导航到其他网页。又如,网络应用可以是网络门户,其将来自与不同门户程序相关联的不同来源的信息置于一起。在实施例中,门户程序可以与网络门户的不同部分相关联,并且被用作与不同应用(例如,电子邮件、讨论论坛、安全等)相关联的用户界面组件。
在实施例中,门户自动收割机引擎60可以在某个时间段(例如,每20秒、每5分钟、每24小时一次等)后自动选择特定的网络应用。在选择网络应用时,门户自动收割机引擎60可以从网络应用检索代码和/或其他信息。在替代实施例中,门户自动收割机引擎60可以发送对于来自网络应用的代码和/或其他信息的请求。
在实施例中,门户自动收割机引擎60可以经由由门户自动收割机引擎60存储的信息和网络应用来确定要联系哪个网络应用。例如,门户自动收割机引擎60可以存储用于不同网络应用的统一资源定位符(URL)信息,并且/或者,每一个网络应用可以存储允许网络应用向门户自动收割机引擎60发送代码的代码。在实施例中,门户自动收割机引擎60可以通过下述方式来接收代码:启动函数调用,该函数调用请求基于标签(例如,打开标签、结束标签等)、关键字(用于连接到网络应用的在网络应用内的文本)和/或与网络应用相关联的函数的代码。
与从网络应用获得代码的处理无关,可以将代码和/或其他信息与HTML、Javascript和/或用于建立具有与网络应用相关联的不同功能(例如,登录功能、检索信息功能、计算功能等)的不同组件(例如,按钮、图形、图表等)的其他类型的代码相关联。在实施例中,可以有从网络应用接收的另外的代码,其可以被门户自动收割机引擎60使用来找出来自服务器侧的对应的源代码。在实施例中,源代码可以是HTML代码,该HTML代码包括:元数据(与关于网络应用本身或其他网络应用的脚本、样式表相关联);文件类型(doctype),其识别标记语言的版本;以及/或者,其他类型的源代码,诸如可扩展HTML(XHTML)、JavaServer页面标准标签库(JSTL)等。在实施例中,doctype可以是:(i)HTML严格,其允许包括结构和语义标记,但是不允许诸如字体和/或框架集的呈现或弃用元素;(ii)HTML 4.01,其允许使用结构和语义标记以及程序元素(诸如字体),其可以在严格中被弃用;以及/或者(iii)其他doctype,诸如XHTML 1.0、XHTML 1.1、HTML 2.0等。
一旦门户自动收割机引擎60已经接收到代码,则门户自动收割机引擎60可以执行与所提取的组件相关联的代码,以确定所提取的组件是否可以单独起作用。门户自动收割机引擎60可以通过传递值来运行已经被隔离的门户的部分,以确定功能块(即,从网络应用接收的代码分段)单独工作的可行性或者允许用户组合几个功能块来作为较大的功能组件工作。例如,门户自动收割机引擎60可以使用一个或多个伪变量来确定所提取的分量的输出有效。
而且,一旦门户自动收割机引擎60已经确定所提取的分量可以独立起作用,则门户自动收割机引擎60通过使用模式匹配处理来确定所提取的分量是否与公共代码模式相关联。在实施例中,模式匹配处理保证与特定功能匹配的代码分段不用于建立已经存在的门户程序。例如,如果代码分段与登录功能相关联并且确定用于登录功能的门户程序存在,则将不产生重复的门户程序。因此,代码分段将不被存储或用于产生门户程序。然而,如果模式匹配处理确定没有执行与代码分段相关联的功能的存储的功能,则将进一步处理该代码分段。
因此,一旦服务器侧代码与其复制品未已经存在代码分段相关联,则门户自动收割机引擎60可以通过确定在存储的代码和从网络应用提取的代码之间的匹配来产生门户程序组件。在实施例中,门户程序组件可以与Javascript、HTML和/或其他类型的代码相关联。
门户程序组件可以然后被门户自动收割机引擎60存储在诸如可以存储多个门户程序组件的注册表的库中。在实施例中,诸如存储系统22B的注册表可以包括用户界面,该用户界面允许其他应用的开发者在正在在诸如装置120的其他装置上开发的那些其他应用中使用在储存库中存储的门户程序组件。因此,使用装置120的开发者可以从储存库检索门户程序组件以在另一个网络应用中使用。该开发者也可以在门户程序在网络应用中的使用之前测试它的功能。另外,开发者可以组合不同的门户程序以在应用内建立新的功能。
图2示出根据本发明的方面的示例处理。例如,图2示出网页1、门户自动收割机引擎60、计算装置220和网页2。虽然图2示出网页1、网页2、门户自动收割机引擎60和计算装置220,但是处理可以具有更少或更多数量的网页、门户自动收割机引擎和/或计算装置。
如图2中所示,门户自动收割机引擎60可以从网页1(其具有登录按钮或其他机制)请求或检索代码。在接收到对于检索代码的请求时,网页1可以向门户自动收割机60发送该代码。在从网页1接收到代码时,门户自动收割机引擎60确定该代码的哪些部分具有单独的功能组件。门户自动收割机引擎60然后建立不同的功能组件,如图1中所述。
而且,如图2中所示,用户在使用计算装置220来建立网页2。在建立网页2时,例如,用户可以从门户自动收割机引擎60请求和接收门户程序,例如,已经被门户自动收割机引擎60产生和存储的功能组件,以便减少与建立用于网页2的诸如门户程序的功能组件相关联的时间和成本。更具体地,如图2中代表性地所示,计算装置220可以向门户自动收割机引擎60发送对于与登录功能相关联的门户程序的请求。在实施例中,门户自动收割机引擎60接收该请求,并且向计算装置220发送使用网页1原始产生的按钮1。来自网页1的按钮(登录按钮)可以因此被并入到网页2内。因此,在运行中,在一个网页(即,网页1)上使用的功能可以被检索然后用在另一个网页(即,网页2)中,而不需要网页2的开发者重建已经存在的门户程序。
图3示出根据本发明的方面的用于提取和合并门户代码的环境的功能框图。更具体地,图3示出多个网络门户305A、305B、…、305(N)和门户自动收割机引擎60,其中,N≥1。在实施例中,门户自动收割机引擎60包括下面的组件/模块:提取器模块310、解构器模块320、虚拟功能测试器330、模式匹配模块340、储存库350、门户程序产生器360和企业注册表370。在实施例中,提取器模块310、解构器模块320、虚拟功能测试器330、模式匹配模块340、储存库350、门户程序产生器360和/或企业注册表370可以被同一装置(例如,门户自动收割机60)存储或可以被独立的装置存储;并且,每一个可以具有如参考图1所述的独立处理器或组合处理器(通用或专用)。
网络门户305A、305B、…、305(N)可以包括与可以通过万维网或任何其他特性机制(例如,内联网)发送并且被计算装置存储的文件相关联的不同类型的信息。在实施例中,该不同类型的信息可以是信息的文本和/或图形表示。例如,该文本信息可以是网页标题或具有特定功能(例如,登录、到其他网页的链接等)的按钮。而且,例如,该图形信息可以是画面、照片、表格、图表、图形、图像和/或任何其他类型的图形信息。可以使用诸如HTML、Javascript等的不同语言在网络门户305A、305B、…、305(N)内实现该文本和图形信息。在网络门户305A、305B、…、305(N)中的信息的任何一个可以是可以被新的或现有的、具有公共功能的网络应用重用的、诸如门户代码的信息。
在实施例中,提取器模块310可以是由从网络门户305A、305B、…、305(N)提取信息的计算装置存储和实现的应用。在实施例中,提取器模块310可以存储数据库结构,该数据库结构包括由提取器模块310检索的、关于不同网络门户305A、305B、…、305(N)的信息。在信息的检索后,提取器模块310可以存储用于不同网络门户305A、305B、…、305(N)的统一资源定位符(URL)信息。在实施例中,提取器模块310可以在特定时间段(例如,每10秒、每小时等)后查找和检索特定网络门户305A、305B、…、305(N),并且因此,在该时间段后,提取器模块310可以发送对于来自网络门户305A、305B、…、305(N)的信息的请求。在实施例中,对于信息的请求(例如,发送ping、通信请求等)可以是对于由网络门户305A、305B、…、305(N)存储的所有信息的请求或对于与特定类型的语言(例如,HTML)相关联的特定类型的信息的请求。结果,网络门户305A、305B、…、305(N)可以在实施例中向提取器模块310发送信息。
提取器模块310向解构器模块320发送所提取的信息。解构器模块320可以是由计算装置存储和实现的应用,其解构由提取器模块310从网络门户305A、305B、…、305(N)提取的信息。在实施例中,解构器模块320可以将来自网络门户305A、305B、…、305(N)的代码解构为与诸如HTML、Javascript功能、元数据、标签等的不同功能和/或不同类型的代码相关联的代码分段。在实施例中,解构器模块320将基于不同功能和/或代码的UI功能调用匹配到对应的服务器侧组件(例如,登录组件)。
一旦将代码解构为代码分段,解构器模块320向虚拟功能测试器330发送代码分段。虚拟功能测试器330可以是被计算装置存储和实现的应用,该应用通过使用不同的输入/输出来测试功能以验证特定的代码分段可以独自起作用。在实施例中,虚拟功能测试器330测试串/功能,并且提供值。如果该值满足由虚拟功能测试器330存储的条件,则这指示特定的代码分段可以独自起作用。因此,虚拟功能测试器330可以与解构器模块320进行通信代码分段是否可以独立起作用。
如果代码分段可以独自起作用,则虚拟功能测试器330向模式匹配模块340发送该代码分段。模式匹配模块340可以是由计算装置存储和实现的应用,该应用用于识别公共的代码模式。在实施例中,公共代码模式关联于关键字、标签和/或元数据如何被布置在代码分段中和那些模式如何与由模式匹配模块340存储的其他代码模式相关。在实施例中,模式匹配模块340基于代码模式确定代码分段是否是公共的匹配组件、转换组件或不匹配的组件。在实施例中,公共匹配组件可以是代码分段,其基于公共关键字和/或元数据而匹配到由储存库350存储的公共服务器侧功能。在实施例中,转换组件可以是代码分段,该代码分段不与公共服务器侧功能匹配,而是匹配到与转换服务器侧功能相关联的另一个功能。由储存库350存储的转换的服务器侧功能可以是类似于但是不精确地是与代码分段相关联的相同功能的功能。在实施例中,不匹配组件可以是未匹配到任何公共服务器或转换服务器侧功能的代码分段。如此一来,用户可以人为地找到匹配代码分段的功能。
在实施例中,模式匹配模块340也可以确定具有匹配的功能的代码分段是否已经与由模式匹配模块340先前产生的门户程序相关联。如果存在先前产生的门户程序,则模式匹配模块340可以确定不产生新的门户程序。使用与特定的代码分段匹配的功能,储存库350向模式匹配模块340发送与功能相关联的代码分段。
门户程序产生器360可以是由计算装置存储和实现的应用,该应用产生新的门户程序内容。在实施例中,门户程序产生器360将HTML和Javascript代码分段组合为公共的预定义门户程序(例如,html/级联样式表(css))固件内以建立新的门户程序。每一个新的门户程序可以被标注为公共匹配功能、转换功能或不匹配功能。因为没有先前产生的门户程序,门户程序产生器360整合服务器侧软件组件,并且向企业注册表370公布(例如,发送)新的门户程序。企业注册表370可以是由计算装置存储的应用,该应用将不同的门户程序存储为可以在其他网络门户305中重用的公共接口。
流程图
图4示出了执行本发明一些方面的示例性流程。图4的步骤可以在图1的环境中实现,例如并且/或者在图2-3的环境中。附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
图4描述了根据本发明的方面的处理的示例性流程。在步骤410处,门户自动收割机引擎从网络应用提取代码。在实施例中,所提取的代码可以是HTML、Javascript和/或任何其他类型的代码。在步骤420处,门户自动收割机引擎将代码解构。在实施例中,解构包括将代码划分为代码分段,该代码分段可以具有在网络应用内的不同的功能和/或目的。例如,一个代码分段可以与安全功能相关联,并且另一个代码分段可以与电子邮件功能相关联。在步骤430处,门户自动收割机引擎验证该代码分段。在实施例中,门户自动收割机引擎验证代码分段以确定代码分段可以独自提供功能。一旦验证了代码分段则门户自动收割机引擎在步骤440处模式匹配代码分段。在实施例中,模式匹配导致代码分段匹配到功能。在另外的实施例中,该匹配可以基于公共的匹配组件、转换组件或不匹配组件。在步骤450处,门户自动收割机引擎建立和存储门户程序。在实施例中,门户自动收割机引擎可以将HTML和Javascript代码分段组合为可以被用作在其他网络应用中使用的新的门户程序的公共的预定义门户程序结构。在另外的实施例中,门户与服务器侧软件组件整合,并且被门户自动收割机引擎公布(例如,存储)以在其他网络应用中使用。
在实施例中,诸如解决方案整合器的服务提供商可以执行在此所述的处理。在该情况下,服务提供商可以将用于一个或多个客户的执行本发明的处理步骤的计算机基础结构建立、保持、部署、支持等。这些客户可以例如是使用技术的任何企业。作为回报,服务提供商可以在认购及/或收费协议下从客户接收支付,并且/或者服务提供商可以从向一个或多个第三方广告内容的销售接收支付。
本发明的各个实施例的说明已经被提供来用于说明的目的,但是不意欲是穷尽性的或限于所公开的实施例。在不偏离所述实施例的范围和精神的情况下,许多修改和改变对于本领域内的普通技术人员是显然的。在此使用的术语被选择来最佳地解释实施例的原理、实际应用或相对于在市场上的找到的技术的技术改进,或者使得本领域内的普通技术人员能够明白在此公开的实施例。

Claims (13)

1.一种用于合并和重用门户信息的方法,包括:
由至少一个计算装置从应用检索代码;
由所述至少一个计算装置将所述代码解构为代码分段;
由所述至少一个计算装置验证所述代码分段的每一个;
由所述至少一个计算装置将所述代码分段的每一个与服务器侧组件匹配;并且
由所述至少一个计算装置基于所述匹配来产生门户程序;
其中将所述代码分段的每一个与服务器侧组件匹配包括基于关键字、标签和元数据中的至少一个确定所述代码分段的每一个是以下之一:共同匹配组件、转换组件和不匹配的组件;其中;
如果基于关键字、标签和元数据中的至少一个确定所述代码分段与服务器侧功能匹配,则所述代码分段为所述共同匹配组件;
如果基于关键字、标签和元数据中的至少一个确定所述代码分段与服务器侧功能不匹配,而是匹配到与转换服务器侧功能相关联的另一个功能,则所述代码分段为所述转换组件,其中转换的服务器侧功能类似于代码分段相关联的相同功能的功能;
如果基于关键字、标签和元数据中的至少一个确定所述代码分段未匹配到服务器侧功能或转换服务器侧功能,则所述代码分段为所述不匹配的组件。
2.根据权利要求1所述的方法,其中,所述代码分段的每一个的所述验证包括:确定所述代码分段的每一个是否可以单独起作用。
3.根据权利要求1所述的方法,其中,所述代码的所述检索在预定时间自动出现。
4.根据权利要求1所述的方法,进一步包括:将所述门户程序与另一个门户程序组合以产生不同的功能。
5.根据权利要求1所述的方法,其中,所述检索在用户界面UI层处出现。
6.根据权利要求1所述的方法,进一步包括:
接收对于所述门户程序的请求;并且
向作为网络应用的另一个应用发送所述门户程序。
7.根据权利要求1所述的方法,其中,所述产生所述门户程序包括:组合超文本标记语言HTML。
8.根据权利要求1所述的方法,其中,所述门户程序被标记为共同匹配、转换匹配或不匹配。
9.根据权利要求1所述的方法,其中,所述代码分段的至少一个被隔离并且用于产生所述门户程序。
10.根据权利要求1所述的方法,其中,所述代码的所述检索与网络应用的一部分相关联。
11.根据权利要求1所述的方法,其中,通过使用串并且接收指示所述代码分段的至少一个有效的值来进行所述验证。
12.一种用于合并和重用门户信息的系统,包括用于执行权利要求1-11的任何一种方法的所有步骤的部件。
13.一种用于合并和重用门户信息的系统,包括:
CPU、计算机可读存储器和计算机可读存储介质;
程序指令,用于从网络应用检索代码;
程序指令,用于将所述代码解构为代码分段;
程序指令,用于验证所述代码分段的每一个能够起作用,而不要求其他代码分段的功能;
程序指令,用于将所述代码分段的每一个与服务器侧组件匹配,其中,所述服务器侧组件是下述部分的至少一个:共同匹配组件、转换组件和不匹配的组件;
程序指令,用于丢弃与存储的门户程序相关联的所述代码分段;
程序指令,用于存储不与所述存储的门户程序相关联的所述代码分段;以及
程序指令,用于产生门户程序,并且在另一个网络应用中使用所述门户程序;
其中,所述程序指令被存储在所述计算机可读存储介质上,以用于由所述CPU经由所述计算机可读存储器的执行;
其中将所述代码分段的每一个与服务器侧组件匹配包括基于关键字、标签和元数据中的至少一个确定所述代码分段的每一个是以下之一:共同匹配组件、转换组件和不匹配的组件;其中;
如果基于关键字、标签和元数据中的至少一个确定所述代码分段与服务器侧功能匹配,则所述代码分段为所述共同匹配组件;
如果基于关键字、标签和元数据中的至少一个确定所述代码分段与服务器侧功能不匹配,而是匹配到与转换服务器侧功能相关联的另一个功能,则所述代码分段为所述转换组件,其中转换的服务器侧功能是类似于但是不精确地是与代码分段相关联的相同功能的功能;
如果基于关键字、标签和元数据中的至少一个确定所述代码分段未匹配到服务器侧功能或转换服务器侧功能,则所述代码分段为所述不匹配的组件。
CN201410601141.9A 2013-10-31 2014-10-30 用于合并和重用门户信息的方法和系统 Active CN104598218B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/068,752 US9311062B2 (en) 2013-10-31 2013-10-31 Consolidating and reusing portal information
US14/068,752 2013-10-31

Publications (2)

Publication Number Publication Date
CN104598218A CN104598218A (zh) 2015-05-06
CN104598218B true CN104598218B (zh) 2017-11-21

Family

ID=52996970

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410601141.9A Active CN104598218B (zh) 2013-10-31 2014-10-30 用于合并和重用门户信息的方法和系统

Country Status (2)

Country Link
US (2) US9311062B2 (zh)
CN (1) CN104598218B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2012282688B2 (en) 2011-07-11 2017-08-17 Paper Software LLC System and method for processing document
WO2013009889A1 (en) 2011-07-11 2013-01-17 Paper Software LLC System and method for searching a document
AU2012281166B2 (en) * 2011-07-11 2017-08-24 Paper Software LLC System and method for processing document
US10572578B2 (en) 2011-07-11 2020-02-25 Paper Software LLC System and method for processing document
CN106980508A (zh) * 2017-04-01 2017-07-25 百度在线网络技术(北京)有限公司 用于生成页面的方法和装置
US10228917B2 (en) 2017-05-11 2019-03-12 International Business Machines Corporation Mapping of software code via user interface summarization
WO2018213831A1 (en) * 2017-05-19 2018-11-22 Abb Schweiz Ag Systems and methods for application re-use by type pattern matching
US10521195B1 (en) 2019-03-19 2019-12-31 Servicenow, Inc. Guided definition of an application programming interface action for a workflow
EP3726373B1 (en) * 2019-04-15 2024-03-06 Mendix Technology B.V. Creating an app method and system
CN111367523A (zh) * 2020-03-16 2020-07-03 杭州涂鸦信息技术有限公司 一种小程序动态ui匹配方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101288047A (zh) * 2005-10-12 2008-10-15 微软公司 软件内插附件组件的发现、鉴定和激活

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100420473B1 (ko) * 2000-12-30 2004-03-02 학교법인 명지학원 관동대학교 개조 컴포넌트에 의한 바이너리 컴포넌트의 재정의 방법
US7149734B2 (en) * 2001-07-06 2006-12-12 Logic Library, Inc. Managing reusable software assets
US20030167315A1 (en) * 2002-02-01 2003-09-04 Softwerc Technologies, Inc. Fast creation of custom internet portals using thin clients
KR100501410B1 (ko) * 2002-11-27 2005-07-18 한국전자통신연구원 서블릿 프로그램의 재사용 가능한 비즈니스 로직으로부터이제이비 컴포넌트를 생성하는 시스템 및 방법
US20040226030A1 (en) * 2003-02-28 2004-11-11 Kyle Marvin Systems and methods for an extensible software proxy
JP2006526209A (ja) * 2003-05-12 2006-11-16 アン モ ジェオン, コンポーネント基盤環境下で拡張されたメタデータを利用したソフトウェア開発方法及びその開発システム
US8578329B1 (en) * 2004-02-12 2013-11-05 Raju V. Chiluvuri System and method of application development using easier to redesign replaceable components
JP2005234814A (ja) * 2004-02-18 2005-09-02 Fujitsu Ltd プログラム、プログラム構築方法、記憶媒体、プログラム構築システム、端末装置
US7305653B2 (en) * 2004-03-11 2007-12-04 International Business Machines Corporation Standard application development framework
GB0500150D0 (en) * 2005-01-06 2005-02-16 Ibm Method, and aggregation component for aggregating application components
US20070157082A1 (en) 2006-01-04 2007-07-05 Computer Associates Think, Inc. Web portal layout manager system and method
JP4148527B2 (ja) * 2006-06-05 2008-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション 機能テスト・スクリプト生成装置
EP1873634A3 (en) 2006-06-29 2013-10-09 Rockwell Automation Technologies, Inc. HMI framework for extensible automation system engineering platforms
US8056014B2 (en) 2006-10-04 2011-11-08 International Business Machines Corporation Web portal page interactive user interfaces with maximum accessibility to user selected portlets
US20140040862A1 (en) * 2008-04-03 2014-02-06 Adobe Systems Incorporated Copying Reusable Components from a Remote Source
US20090259987A1 (en) * 2008-04-11 2009-10-15 International Business Machines Corporation Method, system and computer program product for recommending components based on common usage patterns
US8214753B2 (en) * 2009-02-20 2012-07-03 International Business Machines Corporation Logic for designing portlet views
US8806441B2 (en) * 2009-06-29 2014-08-12 International Business Machines Corporation Static code analysis
US8234570B2 (en) * 2009-10-26 2012-07-31 International Business Machines Corporation Harvesting assets for packaged software application configuration
US8595236B2 (en) * 2009-11-05 2013-11-26 International Business Machines Corporation Searching existing user interfaces to enable design, development and provisioning of user interfaces
US9110769B2 (en) * 2010-04-01 2015-08-18 Microsoft Technology Licensing, Llc Code-clone detection and analysis
US20130041900A1 (en) * 2011-08-10 2013-02-14 Bank Of America Corporation Script Reuse and Duplicate Detection

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101288047A (zh) * 2005-10-12 2008-10-15 微软公司 软件内插附件组件的发现、鉴定和激活

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Identifying and Qualifying Reusable Software Components;Caldiera etl;《IEEE computer society》;19910228;说明书第63-67页 *

Also Published As

Publication number Publication date
CN104598218A (zh) 2015-05-06
US20160224323A1 (en) 2016-08-04
US20150121335A1 (en) 2015-04-30
US10169005B2 (en) 2019-01-01
US9311062B2 (en) 2016-04-12

Similar Documents

Publication Publication Date Title
CN104598218B (zh) 用于合并和重用门户信息的方法和系统
CN107832468B (zh) 需求识别方法和装置
US10331441B2 (en) Source code mapping through context specific key word indexes and fingerprinting
US20150106663A1 (en) Hash labeling of logging messages
CN105550206B (zh) 结构化查询语句的版本控制方法及装置
US20160350107A1 (en) Stored Procedure Development and Deployment
CN102053903A (zh) 用于为在线运行程序保存和查询场景数据的方法和系统
CN103186637A (zh) 一种分析boss数据库用户行为的方法及装置
CN107526718A (zh) 用于生成文本的方法和装置
CN112016138A (zh) 一种车联网自动化安全建模的方法、装置和电子设备
US11681606B2 (en) Automatic configuration of logging infrastructure for software deployments using source code
CN109657462B (zh) 数据检测方法、系统、电子设备和存储介质
CN110895548A (zh) 用于处理信息的方法和装置
CN108256078A (zh) 信息获取方法和装置
US8538935B2 (en) One-to-one and one-to-many relationships in databases
CN106888200A (zh) 标识关联方法、信息发送方法及装置
CN105912573A (zh) 数据更新方法及装置
US20230095634A1 (en) Apparatuses, methods, and computer program products for ml assisted service risk analysis of unreleased software code
CN115422202A (zh) 业务模型的生成方法、业务数据查询方法、装置及设备
CN107562909A (zh) 一种融合搜索与计算的大数据分析系统及其分析方法
Heitmann et al. Architecture of Linked Data Applications.
CN101996255A (zh) 一种面向需求接口的云计算搜索体系架构方法
CN110298006A (zh) 用于检测盗用链接的站点的方法和装置
CN112288133A (zh) 一种算法服务处理方法和装置
US11907311B2 (en) Dynamic website characterization for search optimization

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20211116

Address after: New York, United States

Patentee after: Qindarui company

Address before: Armank, New York, USA

Patentee before: International Business Machines

TR01 Transfer of patent right