CN102317905A - 网络应用程序构建系统、网络应用程序构建方法、网络应用程序构建程序以及记录了网络应用程序构建程序的记录介质 - Google Patents
网络应用程序构建系统、网络应用程序构建方法、网络应用程序构建程序以及记录了网络应用程序构建程序的记录介质 Download PDFInfo
- Publication number
- CN102317905A CN102317905A CN201080001696XA CN201080001696A CN102317905A CN 102317905 A CN102317905 A CN 102317905A CN 201080001696X A CN201080001696X A CN 201080001696XA CN 201080001696 A CN201080001696 A CN 201080001696A CN 102317905 A CN102317905 A CN 102317905A
- Authority
- CN
- China
- Prior art keywords
- web application
- service
- interface
- entity
- database
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
网络应用程序构建系统的一种实施方式包括:数据库部(13),用于管理存储各种数据的数据库;服务提供部(12),用于提供以相当于业务上的一个处理的单位部件化后的一个以上的标准功能(12s)作为服务;进程创建部(12),用于组合由该服务提供部(12)提供的一个以上的服务(12s),创建每个用户的业务逻辑作为进程(12p);以及网络应用程序构建部(12),用于根据通过进程创建部(12)创建的进程(12p)来构建每个用户的网络应用程序,其中,在一个虚拟机上运行由进程创建部(12)创建的进程(12p)和与该进程(12p)组合的服务(12s),并通过数据库部进行他们的事务的控制。
Description
技术领域
本发明涉及网络应用程序(web application)构建系统、网络应用程序构建方法、网络应用程序构建程序以及记录了网络应用程序构建程序的记录介质,其在构建所谓的多租户型(multitenant)网络应用程序时,提高对应每个租户要求的业务逻辑构建有关的灵活性,同时也提高网络应用程序界面的自定义(customize)的容易性。
背景技术
以往,在企业业务的数据录入系统、工作流系统等业务应用程序中,采用了由客户通过应用程序服务器来操作数据库服务器所管理的数据这样的方式。近年来,这种业务应用程序是被作为Web应用程序而实现的。
已经提出了如下这样的技术(例如,参考专利文献1):在开发执行这种Web应用程序的应用程序服务器时,通过提供分为数据、逻辑、界面的各个模块而进行描述的框架(framework)操作,从而提高Web应用程序的开发效率和保守性。
并且,也提供了如下这样的多租户型应用程序:可以由多位用户共有同一应用程序和硬件环境,同时可对应用户自定义数据库、网页等的设定。
在这种多租户型应用程序中,由于无需对应每位用户构建专用环境,因而可以迅速导入应用程序,并可削减TOC(Total Cost of Ownership,整体拥有成本)。另外,由于通过由多位用户利用同一环境从而可使版本升级等维护时的方法通用化,因而能够容易地执行应用程序的维护。
此外,在这种多租户型应用程序中,虽然对所有用户提供同一版本的应用程序,但是为了满足每位用户细微不同的标准要求,一般使该应用程序具有如下功能:根据用户的标准要求,由用户自身进行自定义应用程序和新追加功能等(即、用户自定义功能)。
但是,在由用户自定义或追加各种应用程序时,需要在应用程序侧保存例如所有用于理解这些变更的架构,存在应用程序自身大幅复杂化的缺点。
于是,也提出有如下这样的技术(例如,参考专利文献2):提供使多租户型应用程序的自定义功能具有扩展性,同时维护时易于对应的应用程序的提供系统。
并且,也提出了有关Web应用程序中的业务应用程序的开发的技术,尤其是有关确保了业务逻辑构建中的灵活性和自定义的容易性的多租户型应用程序的技术(例如,参考专利文献3~5)。
(现有技术文献)
(专利文献)
(专利文献1)日本特开2008-112460号公报
(专利文献2)日本特开2009-282777号公报
(专利文献3)日本特开2007-531941号公报
(专利文献4)日本特开2009-145972号公报
(专利文献5)日本特开2003-280898号公报
然而,在通过Web应用程序构建上述这样的多租户式的业务提供时,对于对应每位租户的要求的业务逻辑的构建缺乏灵活性。具体而言,可以列举出如下缺点:
··业务逻辑的组合
··业务逻辑的顺序更换
··业务逻辑的追加
··业务逻辑组合的条件分歧
··向业务逻辑内混入租户判断
由于为了满足每个租户的要求而分别安装这些程序,因而引起了Web应用程序的臃肿化和复杂化。
在SaaS(软件即服务)平台和BPM Server(业务流程管理服务器)中,能够通过组合Web服务来构成业务逻辑。但是,各个服务是分离独立的,服务间是松耦合。由于这种情况,对应每个服务分离执行组合的多个业务逻辑时的事务(trunsaction)。虽然具有协调事务的标准(Web服务/事务),但其处于根本不使用的状态,且必须向出错处理等中插入复杂的安装。
而且,如果通过Web服务组合业务逻辑,则由于各个服务都要经由网络,因而难以得到快速的响应。
另一方面,以上述的多租户形式构建Web应用程序界面的情况下,输入项目的设定或者项目标题(title)对应每个租户不完全相同,大多存在一些不同点。具体而言,例如可以列举出如下方面:
··名称是“部署”还是“部门”的不同
··数量最大值的不同
··字符串长度的限制
··专用项目的准备
··有无必须输入的指定
另外,这些输入项目与数据库的表(table)、列(column)结构大多密切联系,不得不对应每个租户进行准备。
发明内容
本发明的第一个目的在于提供一种网络应用程序构建系统、网络应用程序构建方法、网络应用程序构建程序以及记录了网络应用程序构建程序的记录介质,其能够将业务逻辑作为各自独立的部件来处理或者简单地加以组合,同时能够通过组合的业务逻辑统一事务。
本发明的第二个目的在于提供一种网络应用程序构建系统、网络应用程序构建方法、网络应用程序构建程序以及记录了网络应用程序构建程序的记录介质,即使在对应每个租户输入项目的设置或者项目标题等有些不同的情况下,也无需对应每个租户准备数据库就能够构建多租户型的Web应用程序界面。
本发明的网络应用程序构建系统,其用于构建多租户型网络应用程序,使用同一服务器环境的多个用户中的每个用户能够自定义为任意样式地使用所述多租户型网络应用程序,所述网络应用程序构建系统包括:数据库部,用于管理存储各种数据的数据库;服务提供部,用于提供以相当于业务上的一个处理的单位部件化后的一个以上的标准功能作为服务;进程创建部,用于组合由所述服务提供部提供的一个以上的服务,创建每个用户的业务逻辑作为进程;以及网络应用程序构建部,用于根据通过所述进程创建部创建的进程来构建每个用户的网络应用程序,其中,在一个虚拟机上运行由所述进程创建部创建的进程和与所述进程组合的服务,并通过所述数据库部进行他们的事务的控制。
在这里,例如,由Java实现通过所述服务提供部提供的服务,由JRuby或Ruby实现通过所述进程创建部创建的进程,所述虚拟机是Java虚拟机。
根据这种构成的网络应用程序构建系统,能够将业务逻辑作为各自独立的部件来处理或者简单地加以组合,同时能够通过组合的业务逻辑统一事务。由于全部在虚拟机上运行,因而组合的服务彼此不经由网络,因而能够快速地运行。事务控制与现有的应用程序相同,能够使用数据库的功能来确保数据的匹配性,因而无需掌握新的控制方法。此外,在用JRuby或者Ruby实现所述进程创建部创建的进程时,能够简单地描述组合。
另外,在本发明的网络应用程序构建系统中,通过所述服务提供部提供的服务也可以包括:实体服务,将业务数据或者控制数据作为实体,与所述实体中指定的一个所述实体相结合,且所述实体服务包括针对所述数据库的数据操作、实体专用逻辑;以及业务服务,实现业务逻辑的各个功能,通过所述实体服务进行数据操作,其中,所述实体映射所述数据库上的表和对象,所述实体服务的追加/参照/更新/删除操作功能部分自动生成。
根据这种结构的网络应用程序构建系统,由于自动生成上述实体服务的追加/参照/更新/删除操作功能部分,因而能够使易于冗长的数据库访问描述单一化,从而易于进行管理。
另外,在本发明的网络应用程序构建系统中,所述网络应用程序构建系统还可以包括:界面显示部,用于进行对应于所述进程的界面的显示,其中,所述界面显示部根据按每个租户分配的租户标识符、按业务应用程序的每个功能类别分配的应用程序标识符、按租户分配给每个业务应用程序界面上的界面标识符以及匹配业务功能的界面模式而准备的专用访问路径的组合来决定界面显示设计,并根据针对每个项目标识符设定的参数来进行显示控制,按每个界面的输入项目和标签分配所述每个项目标识符。
在这里,基于所述参数内容进行的显示控制可以列举有显示的种类、值的格式、语句、宽度、最大最小值、有无必须检查的项目等。
根据这种构成的网络应用程序构建系统,即使在对应每个租户输入项目的设置或者项目标题等有一些不同的情况下,通过设置参数也可以进行对应,因而不用针对每个租户都准备数据库就能够构建多租户型的网络应用程序界面,从而在与数据库之间也就不存结构上的依赖性。
另外,在本发明的网络应用程序构建系统中,所述界面显示部也可以使针对每个项目标识符设定的参数的内容动态地反映到界面显示上。而且,所述参数的内容也可以存储在所述数据库中,通过以所述界面标识符作为关键字来汇总在所述界面显示部进行界面显示时该界面所需的项目标识符的设定,从而能够取得所述参数的内容。
根据这种构成的网络应用程序构建系统,以静态的方式准备界面的设计,而在显示时使其动态变化,因而易于自定义。
或者,本发明的网络应用程序构建方法,其用于构建多租户型网络应用程序,使用同一服务器环境的多个用户中的每个用户能够自定义为任意样式地使用所述多租户型网络应用程序,所述网络应用程序构建方法包括:数据库管理步骤,管理存储各种数据的数据库;服务提供步骤,提供以相当于业务上的一个处理的单位部件化后的一个以上的标准功能作为服务;进程创建步骤,组合在所述服务提供部中提供的一个以上的服务,创建每个用户的业务逻辑作为进程;以及网络应用程序构建步骤,根据在所述进程创建部中创建的进程来构建每个用户的网络应用程序,其中,在一个虚拟机上运行在所述进程创建步骤中创建的进程和与所述进程组合的服务,并通过所述数据库管理步骤进行他们的事务的控制。
根据这种构成的网络应用程序构建方法,能够将业务逻辑作为各自独立的部件来处理或者简单地加以组合,同时能够通过组合的业务逻辑统一事务。由于全部在虚拟机上运行,因而组合的每个服务彼此不经由网络,从而能够快速地运行。事务控制与现有的应用程序相同,能够使用数据库的功能来确保数据的匹配性,因而无需掌握新的控制方法。
另外,在本发明的网络应用程序构建方法中,通过所述服务提供步骤提供的服务包括:实体服务,将业务数据或者控制数据作为实体,与所述实体中指定的一个所述实体相结合,且所述实体服务包括针对所述数据库的数据操作、实体专用逻辑;以及业务服务,实现业务逻辑的各个功能,通过所述实体服务进行数据操作,所述网络应用程序构建方法还包括:映射步骤,所述实体映射所述数据库上的表和对象;以及自动生成步骤,自动生成所述实体服务的追加/参照/更新/删除操作功能部分。
根据这种构成的网络应用程序构建方法,由于自动生成上述实体服务的追加/参照/更新/删除操作功能部分,因而能够使易于冗长的数据库访问描述单一化,从而易于进行管理。
另外,在本发明的网络应用程序构建方法中,所述网络应用程序构建方法还可以包括:界面显示步骤,显示对应于所述进程的界面,在所述界面显示步骤中,根据按每个租户分配的租户标识符、按业务应用程序的每个功能类别分配的应用程序标识符、按租户分配给每个业务应用程序界面上的界面标识符以及匹配业务功能的界面模式而准备的专用访问路径的组合来决定界面显示设计,并根据针对每个项目标识符设定的参数来进行显示控制,按每个界面的输入项目和标签分配所述每个项目标识符。
根据这种构成的网络应用程序构建方法,即使在对应每个租户输入项目的设置或者项目标题等有一些不同的情况下,通过设置参数也可以进行对应,因而无需对每个租户都准备数据库就能够构建多租户型的网络应用程序界面,从而在与数据库之间也就不存结构上的依赖性。
另外,在本发明的网络应用程序构建方法中,在所述界面显示步骤中,可以使针对每个项目标识符设定的参数内容动态地反映到界面显示上。而且,所述参数的内容存储在所述数据库中,通过以所述界面标识符作为关键字来汇总在所述界面显示部中进行界面显示时该界面所需的项目标识符的设定,从而能够取得所述参数的内容。
根据这种构成的网络应用程序构建方法,由于可以通过静态的方式准备界面的设计,在显示时使其动态变化,因而易于自定义。
或者,对于本发明的网络应用程序构建程序,使计算机执行所述网络应用程序构建方法。
根据这种构成的网络应用程序构建程序,只要具有能够执行程序的计算机环境,则不论在什么地方都可以实现本发明的网络应用程序构建方法。而且,只要将网络应用程序构建程序设定为通用的计算机能够执行的程序,则也就无需为了实现本发明的网络应用程序构建方法而准备专用的计算机环境,从而可以提高本发明的网络应用程序构建程序的有用性。
或者,本发明的记录了网络应用程序构建程序的记录介质是一种计算机可以读取的记录介质,其中,记录了所述网络应用程序构建程序。
根据记录了这种结构的网络应用程序构建程序的记录介质,易于在各种场所或者环境下实现本发明的网络应用程序构建方法,从而能够提高本发明的网络应用程序构建方法的通用性。
发明效果
根据本发明的网络应用程序构建系统和网络应用程序构建方法,能够将业务逻辑作为各自独立的部件来处理或者简单地加以组合,同时能够通过组合的业务逻辑统一事务。由于全部在虚拟机上运行,因而组合的每个服务不经由网络,因而能够快速地运行。事务控制与现有的应用程序相同,能够使用数据库的功能保持数据的匹配性,因而不必掌握新的控制方法。
根据本发明的网络应用程序构建程序,只要具有能够执行程序的计算机环境,则不论在什么地方都可以实现本发明的网络应用程序构建方法。而且,只要将网络应用程序构建程序设定为通用的计算机能够执行的程序,则也就无需为了实现本发明的网络应用程序构建方法而准备专用的计算机环境,从而可以提高本发明的网络应用程序构建程序的有用性。
此外,根据本发明的记录了网络应用程序构建程序的记录介质,易于在各种场所或者环境下实现本发明的网络应用程序构建方法,从而能够提高本发明的网络应用程序构建方法的通用性。
附图说明
图1是表示根据本发明的第一实施方式的Web应用程序构建系统10的服务器结构等的功能框图。
图2是Web应用程序构建系统10的各服务器上运行的各模块与在客户端装置20上运行的浏览器20b之间的调用关系等的说明图。
图3是一些通用JavaScript函数和HTML元素的描述规则。
图4(a)和图4(b)是表示UI参数的image的表,其中,图4(a)表示UI_PARAM,图4(b)表示UI_INPUT。
图5是作为JRuby的DSL(Domain Specific language:领域特定语言)而描述的进程(process)12p的例子。
图6是在图5中例示的进程12p中使用的DSL函数的概略说明图。
图7是关于进程、动作和子动作的说明图。
图8(a)和图8(b)是关于UI-DB参数转换的说明图,其中,图8(a)示出了转换前,图8(b)示出了转换后。
图9是实体(entity)服务12s1和业务服务12s2的关系的概况说明图。
图10是服务12s的文档的描述例。
图11是Web应用程序构建系统10的标准的输入系统界面处理的概略时序图(sequence diagram)。
图12是租户1用的标准订单输入界面的目录输入列表(tab)的界面显示实例。
图13是与图12相同的标准订单输入界面的明细输入列表的界面显示实例。
图14是租户2用的标准订单输入界面的目录输入列表的界面显示实例。
图15是与图14相同的标准订单输入界面的明细输入列表的界面显示实例。
图16是租户1用的订单一览条件设定界面的显示实例。
图17是租户2用的订单一览条件设定界面的显示实例。
具体实施方式
下面,参照附图来说明本发明的实施方式。
在根据本发明的第一实施方式的构建多租户型Web应用程序的Web应用程序构建系统10中,采用了SOA(Service Oriented Architecture,服务导向架构)构想,将业务逻辑分为“进程”和“服务”。并且,将标准功能部件化后作为服务,同时通过组合所需的一个以上的服务来制作每个租户(公司等)的业务逻辑作为进程。
通过对应每个租户复制进程之后再进行变更来应对每个租户将来所产生的业务逻辑的不同。创建服务时,使用保守性高的Java(注册商标,以下也同样),创建进程时,使用描述性和灵活性高的脚本语言即Ruby(JRuby)。
下面,将对应下面每个项目进行详细说明。
A.Web应用程序构建系统10
A1.功能模块
A11.服务器结构
A12.模块调用关系
A2.详细处理
A21.界面(JSP)
A22.进程(JRuby)
A23.服务(Java)
A3.处理时序
A4.界面显示实例
B.作为程序和记录介质的实施方式
<A11.功能模块和服务器结构>
图1是表示根据本发明的第一实施方式的Web应用程序构建系统10的服务器结构等的功能框图。
如图1所示,Web应用程序构建系统10包括:前端服务器11,其主要实现与界面有关的处理等;逻辑服务器12,其主要实现与业务逻辑等有关的处理;以及数据库服务器13,其主要实现与存储、管理各种数据的数据库有关的处理。该Web应用程序构建系统10通过前端服务器11和因特网等网络,与外部一台以上的客户端装置20连接。
此外,在该图1中,虽然示出了通过组合三台服务器11、12、13而构成Web应用程序构建系统10的情况,但是也可以仅使用一台服务器装置来实现实际的硬件结构。
接下来,例示出了在这些服务器11、12、13等中利用的产品(product),关于各产品将在后面集中说明。
作为用于前端服务器11的产品,可以列举有例如intra-mart、S2Struts、S2DAO等。界面利用标准的JSP(Java Server Pages)来实现。
作为用于逻辑服务器12的产品,可以列举有例如Tomcat、S2JDBC等。进程利用JRuby实现。服务和实体利用Java实现。
作为用于数据库服务器13的产品,可以列举有例如作为关系型数据库管理系统(RDBMS)而正在市场销售的Oracle。
通过HTTP进行从前端服务器11向逻辑服务器12的通信,从逻辑服务器12向前端服务器11返回JSON(JavaScript Object Notation)。
从前端服务器11向数据库服务器13的通信通过S2DAO仅进行参照,从数据库服务器13向前端服务器11返回UI参数、访问权限、intra-martmaster。
从逻辑服务器12向数据库服务器13的通信通过S2JDBC进行参照和更新,数据库服务器13向逻辑服务器12返回UI参数、业务数据、执行日志(log)。
在客户端装置20上运行的浏览器20b中,例如,可以利用HTML、JavaScript、jQuery等。通过HTTP或者HTTPS进行从客户端装置20向前端服务器11的通信,从前端服务器11向客户端装置20返回HTML、JSON。
intra-mart是NTT数据英特玛公司(NTT·············)····的Web应用程序框架,在Web应用程序构建系统10中,主要利用用户、权限管理和W/F功能。
jQuery是JavaScript的资源库(library),其简化了HTML和CSS的动态改变处理。
S2Struts是使用Seasar2(DI容器)扩展了Struts(Web框架)的开源的框架,其简化了Struts的设置操作。
S2DAO和S2JDBC是使用Seasar2映射数据库13d上的表和Java的对象的O/R Mapper(Object Relational Mapper)工具,其简化了表的CRUD(追加/参照/更新/删除)操作实施。此外,之所以没有用S2JDBC进行统一,是因为在intra-mart上存在限制。
JRuby是在JavaVM上运行的Ruby语言的处理系统的实现。可以使Java运行用Ruby语言编写的脚本(script),或者可以根据Ruby的脚本利用Java的类别、方法。
<A12.功能模块和模块调用关系>
图2是在Web应用程序构建系统10的各服务器上运行的各模块与在客户端装置20上运行的浏览器20b之间的调用关系等的说明图。
如图2所示,浏览器20b通过HTTP或者HTTPS调用界面11d(JSP),而不会从浏览器20b直接利用进程12p(JRuby)。
界面11d(JSP)通过HTTP调用进程12p(JRuby),而不会从界面11d(JSP)直接利用服务12s(Java)。
进程12p(JRuby)通过调用Java方法来调用服务12s(Java),而不会从进程12p(JRuby)直接利用数据库13d。
服务12s(Java)进行数据库13d所存储、管理的各种数据的参照和更新处理。
此外,这些进程12p和服务12s能够在一个JVM(Java Virtual Machine,Java虚拟机)上运行,且能够与数据库13d联动地进行各个组合的事务控制。
<A21.详细处理/界面(JSP)>
界面11d使用标准JSP来实现。图3是一些通用JavaScript函数和HTML元素的描述规则。图4(a)和图4(b)是表示UI参数的image的表,其中,图4(a)表示UI_PARAM,图4(b)表示UI_INPUT。
如图3所示,对HTML的输入和标签(label)的各元素指定id。
指定的ID成为UI参数的关键字(key)(项目ID)。由界面经由front11d发送到logic 12p(进程)的参数也将项目ID作为关键字。根据UI参数使用JavaScript动态地设定标签的内容、输入项目的类型和位数信息、各元素的宽度等。此外,使用框架的通用JavaScript函数。
如图4所示,在UI_PARAM和UI_INPUT均具有的字段“输入ID”中具有相等值的记录(record)彼此相互映射。
在下面对界面11d的逻辑结构进行进一步说明。
(1)作为多租户对应,对应每个租户分配公司CD(CODE,下同)。
(2)按照每个业务应用程序的功能分类(订单管理、采购管理等)分配应用程序CD。
(3)配合业务功能的界面模式(发票输入类型、一览显示类型等)准备专用的访问路径(URI)。
(4)按照租户(按照公司CD)对每个业务应用程序界面分配界面ID。
(5)根据公司CD、应用程序CD、界面ID与URI的组合来决定想要显示的界面的设计。
(6)对每个界面的输入项目和标签分配项目ID。
在这里,对应每个项目ID准备显示的种类、值的格式、语句、宽度、最大最小值、有无必须检查的项目等设定作为UI参数。在进行界面显示时,动态地反映各项目ID的UI参数的内容。UI参数的内容被保存在数据库13d中,能够通过以界面ID作为关键字来汇总界面11d所需的项目ID的设定,从而整套取得UI参数的内容。
(7)进行UI-DB参数变换。
用界面ID+项目ID映射数据库13d的表、列,使能够相互转换界面ID+项目ID与映射。取得业务数据时,从表和列转换为项目ID,保存业务数据时,从项目ID转换为表和列。
另外,这种逻辑结构的实现方式如下所述。
(1)按每个公司CD划分数据库13d。
(2)将公司CD、应用程序CD、界面ID和URI作为关键字,指定描述了界面设计的JSP文件。
(3)在JSP文件中对输入项目或者标签指定id=“项目ID”并进行描述。
(4)用JavaScript将UI参数的内容动态地反映到各输入项目或者标签上。
在这里,将UI参数的内容保存在数据库中。以界面ID作为关键字从数据库13d汇总取得项目ID的UI参数整套。然后,自动生成反映UI参数内容的JavaScript(jQuery)的源。
在浏览器20b显示时,使自动生成的JavaScript运行并动态地进行反映。
(5)实现UI-DB参数转换资源库,从而能够将界面ID+项目ID与映射相互转换。
<A22.详细处理/进程(JRuby)>
图5是作为JRuby的DSL(Domain Specific Language:领域特定语言)而描述的进程12p的例子。图6是在图5中例示的进程12p中使用的DSL函数的概况说明图。此外,图5的行末所示的[1]等数字表示对应于在图6中具有相同数字的函数。
所谓DSL是指为指定的问题或者任务所设计的程序语言。在进程12p中,使用Ruby语法作为语法。在图5中,例示出了“取得初始值”、“确认处理”、“注册处理”。另外,为了描述Web应用程序构建系统10的业务逻辑,预先准备例如图6所示的特别函数(DSL函数)。
图7是关于进程、动作和子动作的说明图。
通过用action方法定义的“动作”这样的模块为单位从界面11d调用处理。进程12p由多个动作组成,从界面11d的调用原则上指定动作。更新系统的界面原则上来说,相对于一个界面11d具有一个进程12p,但仅参照的进程12p可以被多个界面11d共用。此外,将为了在多个进程12p间使处理通用化而以DSL的文件为单位进行分割的动作称为“子动作”。
另外,将从服务器对界面项目设定值的处理称作“输入支援”,将在服务器中进行界面项目的错误检查的处理称作“项目检查”。通过利用数据库13d的参数来设定预先准备的检查部件,从而能够以不用程序的方式进行这些输入支援和项目检查。
图8(a)和图8(b)是有关UI-DB参数转换的说明图,其中,图8(a)示出了转换前,图8(b)示出了转换后。
通过entity方法将从界面11d发送来的参数转换为Java的实体类的实例。在这里,所谓实体就是与数据库13d的表一对一对应的对象。
由框架通过参照UI参数自动地进行从界面11d发送的界面项目(uiNo、c04等)到数据库13d项目(juchu.s_juchu、juchu.d_juchu等)的转换。
例如,在图8(a)和图8(b)所示的情况下,在entity(:Juchu)中,对Juchu对象的sJuchu属性和dJuchu属性自动地设定从界面11d发送来的值(关键字uiNo、c04各自的值)。但是,实际上,由于对转换前的散列(hash)追加转换后的关键字/值,也保留了转换前的关键字/值。
<A23.详细处理/服务(Java)>
服务12s由Java创建。该服务12s所提供的功能作为Web应用程序构建系统10的标准功能,每个租户(公司)的逻辑被进程12p吸收。
图9是实体服务12s1和业务服务12s2的关系的概况说明图。
如图9所示,服务12s的种类具有如下两种。此外,将业务数据或者控制数据作为实体。
(1)实体服务
其是实现与指定的实体的一个相结合的业务逻辑的服务,具有基本的CRUD操作和实现业务逻辑的方法。此外,该实体服务自动生成数据库13d的CRUD操作中的S2JDBC功能部分。
(2)业务服务
其是实现不与指定的一个实体的相结合的业务逻辑的服务,不具有基本的CRUD操作而使用实体服务。
另外,原则上,在服务12s的方法引数中指定实体类实例和实体类列表、或者映射(关键字和值的组合)或者映射列表,避免引数的个数增多。
图10是服务12s的文档的描述实例。
在该图10中,示出了服务名为“订单明细服务”的例子,如上所述,服务12s的文档以Javadoc形式进行描述。
<A3.处理时序>
图11是Web应用程序构建系统10中的标准输入系统界面处理的概况时序图。此外,如参照图2等说明的那样,浏览器20b在客户端装置20上运行,界面11d(JSP)在前端服务器11上运行,进程12p和服务12s在逻辑服务器12上运行,数据库13d在数据库服务器13上运行。另外,在图11中,省略了登录(login)处理和UI-DB参数转换处理等。
首先,在用户30利用键盘等向浏览器20b输入URL时,其将变为HTTP,并发送到界面11d,再由界面11d通过S2DAO进行数据库13d的参照。从界面13d返回UI参数(项目的宽度、类型、位数信息、标签名称、事件处理等)。
根据返回来的UI参数,从界面11d对进程12p进行进程调用(INIT),再从进程12p对服务12s进行输入支援服务的调用(INIT),然后再由服务12s利用S2JDBC进行数据库13d的参照。从数据库13d返回检查参数(check parameter)。然后,在服务12s中从业务服务12s2(参照图9)进行实体服务12s1(参照图9)的调用,然后由服务12s再利用S2JDBC进行数据库13d的参照。从数据库13d返回业务数据。根据返回来的业务数据,从服务12s向进程12p返回界面项目初始值,再从进程12p向界面11d返回JSON(界面项目初始值),将其作为HTML发送到浏览器20b。在浏览器20b上显示界面,从而被用户30所识别。
在用户30利用键盘等向界面内的任意一个项目进行输入,再利用鼠标等点击界面内的注册按钮时,其将变为HTTP(Ajax),发送到界面11d,再从界面11d对进程12p进行进程的调用(CONFIRM),然后从进程12p对服务12s进行输入支援服务的调用(TOROKU),再由服务12s利用S2JDBC进行数据库13d的参照。从数据库13d返回检查参数。然后,在服务12s中从业务服务12s2进行实体服务12s1调用,然后由服务12s再利用S2JDBC进行数据库13d的参照。从数据库13d返回业务数据。根据返回来的业务数据,从服务12s对进程12p返回输入支援项目值。
根据返回来的输入支援项目值,从进程12p对服务12s进行输入检查服务的调用(TOROKU),然后再由服务12s利用S2JDBC进行数据库13d的参照。从数据库13d返回检查参数。然后,在服务12s中从业务服务12s2进行实体服务12s1的调用,然后从服务12s利用S2JDBC再次进行数据库13d的参照。从数据库13d返回业务数据。根据返回来的业务数据,从服务12s对进程12p返回检查结果。再从进程12p对界面11d返回JSON(输入支援值+检查结果),然后从界面11d向浏览器20b返回输入支援值+检查结果,在浏览器20b上显示确认界面,从而被用户30所识别。
在识别了确认界面的用户30利用鼠标等点击界面内的注册按钮时,其将变为HTTP(Ajax),发送到界面11d。再从界面11d对进程12p进行进程的调用(TOROKU),然后从进程12p对服务12s进行输入检查服务调用(TOROKU),再由服务12s利用S2JDBC进行数据库13d的参照。从数据库13d返回检查参数。然后,在服务12s中从业务服务12s2进行实体服务12s1的调用,然后由服务12s再利用S2JDBC进行数据库13d的参照。从数据库13d返回业务数据。根据返回来的业务数据,从服务12s向进程12p返回检查结果。
在检查结果返回来之后,在进程12p中,参数被转换为实体。接下来,从进程12p对服务12s进行注册服务的调用(实体),然后再由服务12s利用S2JDBC进行数据库13d的参照。从数据库13d返回注册结果,然后,从服务12s对进程12p返回注册结果。
再从进程12p对界面11d返回JSON(注册结果),再从界面11d向浏览器20b返回注册结果,在浏览器20b上显示注册结果,从而被用户30所识别。
<A4.界面显示实例>
示出几个Web应用程序构建系统10的界面11d的界面显示实例。
图12是租户1用的标准订单输入界面的标题输入列表的界面显示实例。图13是相同的标准订单输入界面的明细输入列表的界面显示实例。
图14是租户2用的标准订单输入界面的标题输入列表的界面显示实例。图15是相同的标准订单输入界面的明细输入列表的界面显示实例。
如果比较图12和图14的标题输入列表的界面显示实例,则销售店的检索输入栏仅存在于图12中,而客户订单No.、客户联络栏、受理担当者各栏仅存在于图14中。另一方面,如果比较图13和图15的明细输入列表的界面显示实例,则可知在图15的界面显示中的右方存在图13中不存在的多个栏。
图16是租户1用的订单一览条件设定界面的显示实例,图17是租户2用的订单一览条件设定界面的显示实例。
如果比较图16和图17的订单一览条件设定界面的显示实例,则可知仅在图17的订单一览条件设定界面中设置有扩展项目栏。如果设置了这样的扩展项目栏,则即使对应每个租户增加扩展项目栏的利用地点,也可通过追加所对应的进程而安全地追加功能,无需依赖于其他进程。
依照上述说明的第一实施方式的结构,由于进程12p通过脚本语言的Ruby实现,因而能够简单地描述组合。由于全部在JVM(Java虚拟机)上运行,因而组合可不经由网络地快速运行。由于自动生成实体服务12s1的CRUD操作功能部分,因而能够使易于冗长的数据库访问描述单一化,从而易于进行管理。事务控制与现有的应用程序同等,能够使用数据库的功能保持数据的一致性,因而无需掌握新的控制方法。另外,作为多租户对应,对于每个租户的输入位数、宽度、名称等可以通过设置UI参数来进行对应。由于可以将界面设计准备作为静态物,而在显示时使其动态变化,因而使自定义对应变得容易。也不依存于数据库13d的结构。
<B.作为程序和记录介质的实施方式>
另外,本发明也能够在记录了用于使计算机执行的程序的计算机可读取的记录介质上记录上述Web应用程序构建方法。其结果,能够以可自由携带的方式提供记录了执行Web应用程序构建方法的程序的记录介质。
此外,在本实施方式中,作为记录介质,例如可以是诸如ROM这样的在微型计算机中进行处理的未图示的存储器等程序介质,也可以是设置程序读取装置作为外部存储装置(未图示),并通过向其中插入记录介质而能够读取的程序介质。在任何一种情况下,可以是具有由微处理器进行访问来运行所存储的程序的结构,或者在任何一种情况下,也可以读出程序,将被读出的程序下载到微型计算机中的未图示的程序存储区域中,然后执行该程序的方式。该下载用程序被预先保存在本体装置中。
在这里,上述程序介质是构成为可与本体分离的记录介质,可以是磁带或者盒式带等带类、软盘或者硬盘等磁盘、CD-ROM/MO/MD/DVD等光盘类、IC卡(包括存储卡)/光卡等卡类、或者是包括掩膜(master)ROM、EPROM(Erasable Programmable ROM,可擦写只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、闪存ROM等半导体存储器的固定承载程序的介质。
另外,在本实施方式中,由于是可以连接包括因特网的通信网络的系统结构,因而也可以是流动地承载程序以便从通信网络下载程序的介质。此外,在从通信网络下载程序时,预先在本体装置中保存该下载用程序、或者也可以从另外的记录介质进行安装。通过Web应用程序构建系统10所具备的三台服务器11、12、13中具有的程序读取装置中的任意一个来读取上述记录介质,从而可以运行上述的Web应用程序构建方法。
此外,在不脱离本发明的主旨或者主要特征的前提下,能够以其他各种各样的方式进行实施。因此,上述的实施方式只不过是对本发明的各个方面进行举例说明,不可将其理解为对本发明的限制。本发明的范围是本发明保护范围所示范围,而不受本说明书正文的任何约束。而且,属于权力要求书范围的同等范围的变形或者变更都应包括在本发明的范围之内。
符号说明
10Web应用程序构建系统
11前端服务器
11d界面
12逻辑服务器
12p进程
12s服务
12s1实体服务
12s2业务服务
13数据库服务器
13d数据库
20客户端装置
20b浏览器
30用户
Claims (15)
1.一种网络应用程序构建系统,其用于构建多租户型网络应用程序,使用同一服务器环境的多个用户中的每个用户能够自定义为任意样式地使用所述多租户型网络应用程序,所述网络应用程序构建系统的特征在于,包括:
数据库部,用于管理存储各种数据的数据库;
服务提供部,用于提供以相当于业务上的一个处理的单位部件化后的一个以上的标准功能作为服务;
进程创建部,用于组合由所述服务提供部提供的一个以上的服务,创建每个用户的业务逻辑作为进程;以及
网络应用程序构建部,用于根据通过所述进程创建部创建的进程来构建每个用户的网络应用程序,
其中,在一个虚拟机上运行由所述进程创建部创建的进程和与所述进程组合的服务,并通过所述数据库部进行他们的事务的控制。
2.根据权利要求1所述的网络应用程序构建系统,其特征在于,
通过所述服务提供部提供的服务包括:
实体服务,将业务数据或者控制数据作为实体,与所述实体中指定的一个所述实体相结合,且具有针对所述数据库的数据操作、实体专用逻辑;以及
业务服务,实现业务逻辑的各个功能,通过所述实体服务进行数据操作,
其中,所述实体映射所述数据库上的表和对象,
所述实体服务的追加/参照/更新/删除操作功能部分自动生成。
3.根据权利要求1或2所述的网络应用程序构建系统,其特征在于,
用Ruby实现由所述进程创建部创建的进程。
4.根据权利要求1至3中任一项所述的网络应用程序构建系统,其特征在于,
用Java实现通过所述服务提供部提供的服务,
用JRuby实现通过所述进程创建部创建的进程,
所述虚拟机是Java虚拟机。
5.根据权利要求1至4中任一项所述的网络应用程序构建系统,其特征在于,
所述网络应用程序构建系统还包括:界面显示部,用于进行对应于所述进程的界面的显示,
其中,所述界面显示部根据按每个租户分配的租户标识符、按业务应用程序的每个功能类别分配的应用程序标识符、按租户分配给每个业务应用程序界面上的界面标识符以及匹配业务功能的界面模式而准备的专用访问路径的组合来决定界面显示设计,并根据针对每个项目标识符设定的参数来进行显示控制,按每个界面的输入项目和标签分配所述每个项目标识符。
6.根据权利要求5所述的网络应用程序构建系统,其特征在于,
所述界面显示部使针对每个项目标识符设定的参数的内容动态地反映到界面显示上。
7.根据权利要求5或6所述的网络应用程序构建系统,其特征在于,
所述参数的内容存储在所述数据库中,且能够通过以所述界面标识符作为关键字来汇总在所述界面显示部进行界面显示时该界面所需的项目标识符的设定来取得。
8.根据权利要求5至7中任一项所述的网络应用程序构建系统,其特征在于,
基于所述参数的内容的显示控制包括显示的种类、值的格式、语句、宽度、最大最小值、有无必须检查中的至少一个以上。
9.一种网络应用程序构建方法,其用于构建多租户型网络应用程序,使用同一服务器环境的多个用户中的每个用户能够自定义为任意样式地使用所述多租户型网络应用程序,所述网络应用程序构建方法的特征在于,包括:
数据库管理步骤,管理存储各种数据的数据库;
服务提供步骤,提供以相当于业务上的一个处理的单位部件化后的一个以上的标准功能作为服务;
进程创建步骤,组合在所述服务提供部中提供的一个以上的服务,创建每个用户的业务逻辑作为进程;以及
网络应用程序构建步骤,根据在所述进程创建部中创建的进程来构建每个用户的网络应用程序,
其中,在一个虚拟机上运行在所述进程创建步骤中创建的进程和与所述进程组合的服务,并通过所述数据库管理步骤进行他们的事务的控制。
10.根据权利要求9所述的网络应用程序构建方法,其特征在于,通过所述服务提供步骤提供的服务包括:
实体服务,将业务数据或者控制数据作为实体,与所述实体中指定的一个所述实体相结合,且具有针对所述数据库的数据操作、实体专用逻辑;以及
业务服务,实现业务逻辑的各个功能,通过所述实体服务进行数据操作,
所述网络应用程序构建方法还包括:
映射步骤,所述实体映射所述数据库上的表和对象;以及
自动生成步骤,自动生成所述实体服务的追加/参照/更新/删除操作功能部分。
11.根据权利要求9或者10所述的网络应用程序构建方法,其特征在于,
所述网络应用程序构建方法还包括:界面显示步骤,显示对应于所述进程的界面,
在所述界面显示步骤中,根据按每个租户分配的租户标识符、按业务应用程序的每个功能类别分配的应用程序标识符、按租户分配给每个业务应用程序界面上的界面标识符以及匹配业务功能的界面模式而准备的专用访问路径的组合来决定界面显示设计,并根据针对每个项目标识符设定的参数来进行显示控制,按每个界面的输入项目和标签分配所述每个项目标识符。
12.根据权利要求11所述的网络应用程序构建方法,其特征在于,
在所述界面显示步骤中,使针对每个项目标识符设定的参数内容动态地反映到界面显示上。
13.根据权利要求11或12所述的网络应用程序构建方法,其特征在于,
所述参数的内容存储在所述数据库中,且能够通过以所述界面标识符作为关键字来汇总在所述界面显示部中进行界面显示时该界面所需的项目标识符的设定来取得。
14.一种网络应用程序构建程序,其特征在于,使计算机执行权利要求9~13中任一项所述的网络应用程序构建方法。
15.一种计算机可读取的记录介质,其特征在于,记录了权利要求14所述的网络应用程序构建程序。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/055233 WO2011118003A1 (ja) | 2010-03-25 | 2010-03-25 | ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102317905A true CN102317905A (zh) | 2012-01-11 |
Family
ID=44672594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080001696XA Pending CN102317905A (zh) | 2010-03-25 | 2010-03-25 | 网络应用程序构建系统、网络应用程序构建方法、网络应用程序构建程序以及记录了网络应用程序构建程序的记录介质 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JPWO2011118003A1 (zh) |
CN (1) | CN102317905A (zh) |
WO (1) | WO2011118003A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103426052A (zh) * | 2012-05-23 | 2013-12-04 | 瑞穗情报综研株式会社 | 信息管理系统和信息管理方法 |
CN104750497A (zh) * | 2015-04-14 | 2015-07-01 | 浪潮通信信息系统有限公司 | 一种应用聚合的方法和装置 |
CN106951252A (zh) * | 2017-03-21 | 2017-07-14 | 四川元易云科技有限公司 | 一种基于SaaS的用户界面生成方法 |
CN107273144A (zh) * | 2017-08-15 | 2017-10-20 | 广州市爱菩新医药科技有限公司 | 快速构建网络应用程序接口的装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102932441A (zh) * | 2012-10-26 | 2013-02-13 | 北京小米科技有限责任公司 | 一种下载应用的方法、终端、服务器及系统 |
JP2014153783A (ja) * | 2013-02-05 | 2014-08-25 | Fuji Electric Co Ltd | オブジェクト指向プログラム生成装置、オブジェクト指向プログラム生成方法およびオブジェクト指向プログラム生成用プログラム |
JP2015026139A (ja) * | 2013-07-24 | 2015-02-05 | 富士電機株式会社 | プログラム生成装置、プログラム生成方法、およびプログラム生成用プログラム |
CN113076131A (zh) * | 2021-04-07 | 2021-07-06 | 山东爱拓软件开发有限公司 | 基于多进程架构思想的嵌入式软件系统构建方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030182461A1 (en) * | 2002-03-21 | 2003-09-25 | Stelting Stephen A. | Service mapping method of enterprise application modeling and development for multi-tier service environments |
JP2004185553A (ja) * | 2002-12-06 | 2004-07-02 | Fujitsu Ltd | Webユーザインターフェースのコンポーネント化方法及び装置 |
JP2005528667A (ja) * | 2001-09-29 | 2005-09-22 | ジーベル システムズ インコーポレイテッド | ウェブベースのアプリケーションをサポートするためのフレームワークを実施する方法、装置及びシステム |
JP2006202310A (ja) * | 2000-12-28 | 2006-08-03 | Future System Consulting Corp | フレームワークシステム |
CN101140644A (zh) * | 2007-10-19 | 2008-03-12 | 广东纺织职业技术学院 | 一种intednet专业技术资格申报系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003280898A (ja) * | 2002-03-25 | 2003-10-02 | Nri & Ncc Co Ltd | ビジネスロジックプログラムを実装・実行するための装置、方法、及びプログラム |
-
2010
- 2010-03-25 CN CN201080001696XA patent/CN102317905A/zh active Pending
- 2010-03-25 JP JP2010540966A patent/JPWO2011118003A1/ja active Pending
- 2010-03-25 WO PCT/JP2010/055233 patent/WO2011118003A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006202310A (ja) * | 2000-12-28 | 2006-08-03 | Future System Consulting Corp | フレームワークシステム |
JP2005528667A (ja) * | 2001-09-29 | 2005-09-22 | ジーベル システムズ インコーポレイテッド | ウェブベースのアプリケーションをサポートするためのフレームワークを実施する方法、装置及びシステム |
US20030182461A1 (en) * | 2002-03-21 | 2003-09-25 | Stelting Stephen A. | Service mapping method of enterprise application modeling and development for multi-tier service environments |
JP2004185553A (ja) * | 2002-12-06 | 2004-07-02 | Fujitsu Ltd | Webユーザインターフェースのコンポーネント化方法及び装置 |
CN101140644A (zh) * | 2007-10-19 | 2008-03-12 | 广东纺织职业技术学院 | 一种intednet专业技术资格申报系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103426052A (zh) * | 2012-05-23 | 2013-12-04 | 瑞穗情报综研株式会社 | 信息管理系统和信息管理方法 |
CN103426052B (zh) * | 2012-05-23 | 2016-10-26 | 瑞穗情报综研株式会社 | 信息管理系统和信息管理方法 |
CN104750497A (zh) * | 2015-04-14 | 2015-07-01 | 浪潮通信信息系统有限公司 | 一种应用聚合的方法和装置 |
CN106951252A (zh) * | 2017-03-21 | 2017-07-14 | 四川元易云科技有限公司 | 一种基于SaaS的用户界面生成方法 |
CN107273144A (zh) * | 2017-08-15 | 2017-10-20 | 广州市爱菩新医药科技有限公司 | 快速构建网络应用程序接口的装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2011118003A1 (ja) | 2011-09-29 |
JPWO2011118003A1 (ja) | 2013-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102317535B1 (ko) | 소프트웨어 개발 키트로 데이터 추적을 구현하는 방법 및 시스템 | |
CN105144080B (zh) | 用于元数据管理的系统 | |
CN102317905A (zh) | 网络应用程序构建系统、网络应用程序构建方法、网络应用程序构建程序以及记录了网络应用程序构建程序的记录介质 | |
US20220215125A1 (en) | Viewing, selecting, and triggering a data pipeline to derive a collaborative dataset | |
US20170270022A1 (en) | Intelligent Metadata Management and Data Lineage Tracing | |
US8433673B2 (en) | System and method for supporting data warehouse metadata extension using an extender | |
US9256425B2 (en) | Versioning and refactoring of business mashups in on-demand environments | |
CN110321113B (zh) | 以项目批次为标准的一体化流水线系统及其工作方法 | |
US9836297B2 (en) | Computer implemented method and system for automatically deploying and versioning scripts in a computing environment | |
US8321856B2 (en) | Supplying software updates synchronously | |
CN102236835B (zh) | 用于企业内容管理系统的整合框架 | |
US20160306612A1 (en) | Determining errors and warnings corresponding to a source code revision | |
CN101901265B (zh) | 一种虚拟试验数据对象化管理系统 | |
CN104517181B (zh) | 一种核电站企业内容管理系统及方法 | |
EP2610762A1 (en) | Database version management system | |
CN105760520A (zh) | 一种数据管控平台及架构 | |
CN106227553A (zh) | 用于描述并执行图形用户界面中的管理任务的数据驱动模式 | |
US20140189526A1 (en) | Changing log file content generation | |
CN110889013B (zh) | 一种基于xml的数据关联方法、装置、服务器及存储介质 | |
US10908917B1 (en) | System and method for managing cloud-based infrastructure | |
CN110399187A (zh) | 一种语言资源的处理方法和装置 | |
JP5583306B1 (ja) | 情報システムおよびその更新方法 | |
US20130117700A1 (en) | Landscape Delta Path Calculation | |
Leonard et al. | SQL Server 2012 integration services design patterns | |
US20230128661A1 (en) | Information retrieval framework |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120111 |