WO2011118003A1 - ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体 - Google Patents

ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体 Download PDF

Info

Publication number
WO2011118003A1
WO2011118003A1 PCT/JP2010/055233 JP2010055233W WO2011118003A1 WO 2011118003 A1 WO2011118003 A1 WO 2011118003A1 JP 2010055233 W JP2010055233 W JP 2010055233W WO 2011118003 A1 WO2011118003 A1 WO 2011118003A1
Authority
WO
WIPO (PCT)
Prior art keywords
web application
screen
service
application construction
database
Prior art date
Application number
PCT/JP2010/055233
Other languages
English (en)
French (fr)
Inventor
雄一 作見
祥之 植原
正知 吉田
幸隆 稲見
Original Assignee
株式会社エヌ・ティ・ティ・データ・セキスイシステムズ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社エヌ・ティ・ティ・データ・セキスイシステムズ filed Critical 株式会社エヌ・ティ・ティ・データ・セキスイシステムズ
Priority to PCT/JP2010/055233 priority Critical patent/WO2011118003A1/ja
Priority to JP2010540966A priority patent/JPWO2011118003A1/ja
Priority to CN201080001696XA priority patent/CN102317905A/zh
Publication of WO2011118003A1 publication Critical patent/WO2011118003A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Definitions

  • the present invention when building a so-called multi-tenant web application, improves the flexibility of building business logic corresponding to the requirements of each tenant and also improves the ease of customizing the web application screen,
  • the present invention relates to a web application construction method, a web application construction program, and a recording medium on which the web application construction program is recorded.
  • Patent Document 1 A technology for improving the development efficiency and maintainability of Web applications by providing a framework that describes data, logic, and screen modules separately when developing an application server that executes such Web applications has been proposed (see, for example, Patent Document 1).
  • the same version of the application is provided to all of the plurality of users, but in order to satisfy slightly different specification requirements for each user, It is common for a user to have a function for customizing an application or adding a new function (that is, a user customization function) in response to a specification request.
  • Patent Documents 3 to 5 are proposed.
  • JP 2008-112460 A JP 2009-282777 A Special table 2007-531941 JP 2009-145972 A JP 2003-280898 A
  • a first object of the present invention is to provide a web application construction system, a web application construction method, and a web application that can handle business logic as individual independent components or can be easily combined, and can unify transactions with the combined business logic.
  • the second object of the present invention is to construct a multi-tenant type Web application screen without preparing a database for each tenant even when input item settings and item titles are slightly different for each tenant.
  • a web application construction system, a web application construction method, a web application construction program, and a recording medium recording the web application construction program are provided.
  • a web application construction system is a web application construction system that constructs a multi-tenant web application that can be used by each of a plurality of users using the same server environment customized to an arbitrary specification.
  • a database unit that manages a database that stores various data, a service providing unit that provides one or more standard functions as a service in a unit corresponding to one process in business, and a service providing unit.
  • a process creation unit that creates business logic for each user as a process by combining one or more services provided by the service provider, and a web application for each user according to the process created by this process creation unit
  • a web application construction unit for constructing Services that are combined in the process and the process created by the creation unit operates on a single virtual machine, those transactions control is characterized by being performed by said database unit.
  • the service provided by the service providing unit is implemented by Java
  • the process created by the process creating unit is implemented by a script language JRuby or Ruby
  • the virtual machine is a Java virtual machine. There may be.
  • business logic can be handled as individual independent components or can be easily combined, and transactions can be unified with the combined business logic. Since everything runs on the virtual machine, the combined services do not go through the network, making it easy to operate. Transaction control is equivalent to conventional applications, and data integrity can be maintained using database functions, so there is no need to learn new control methods.
  • the process created by the process creation unit is implemented by JRRuby or Ruby, the combination can be simply described.
  • the service provided by the service providing unit includes business data or control data as an entity, and is associated with a specific one of the entities to perform data operation on the database.
  • An entity service having a logic dedicated to the entity and an entity service, and a business service that implements individual functions of the business logic and performs data operations through the entity service, and the entity maps a table and an object on the database.
  • the addition / reference / update / deletion operation function part of the entity service may be automatically generated.
  • the entity service addition / reference / update / deletion operation function part is automatically generated, so that it is possible to unify and manage database access descriptions that tend to be redundant. It becomes easy.
  • the web application construction system of the present invention further includes a screen display unit that performs screen display corresponding to the process, and the screen display unit is provided for each tenant identifier assigned to each tenant and each function classification of the business application.
  • the screen display design is determined from the combination of the assigned application identifier, the screen identifier assigned to each business application screen for each tenant, and the dedicated access path prepared for the business function screen pattern, and screen input
  • the display control may be performed based on parameters set for each item identifier assigned to each item and label.
  • examples of display control based on the contents of the parameters include display type, value format, wording, width, maximum / minimum value, presence / absence of essential check, and the like.
  • a multi-tenant type Web application screen can be constructed without preparation, and there is no dependency on the configuration with the database.
  • the screen display unit may dynamically reflect the contents of parameters set for each item identifier on the screen display. Further, the content of the parameter is stored in the database, and when the screen display unit performs screen display, setting of an item identifier necessary for the screen can be collectively acquired using the screen identifier as a key. It is good.
  • the screen design is prepared as a static object and can be dynamically changed at the time of display, so that customization can be easily performed.
  • the web application construction method of the present invention is a web application construction method for constructing a multi-tenant web application that can be customized and used by each of a plurality of users who use the same server environment.
  • a database management process for managing a database for storing various data, and a service providing process for providing one or more standard functions as a service as a service in a unit corresponding to one process in business.
  • a process creation step for creating a business logic for each user as a process by combining one or more services provided by this service providing unit, and for each user according to the process created by this process creating unit Web application building process for building web applications
  • the service that is combined with that process process created in process creation process operates on a single virtual machine, those transactions control is characterized by being performed by said database management process.
  • business logic can be handled as individual independent components or can be easily combined, and transactions can be unified with the combined business logic. Since everything runs on the virtual machine, the combined services do not go through the network, making it easy to operate. Transaction control is equivalent to conventional applications, and data integrity can be maintained using database functions, so there is no need to learn new control methods.
  • the service provided by the service providing step uses business data or control data as an entity, and is associated with a specific one of the entities to operate data on the database. And entity services having logic dedicated to the entities, and business services that implement individual functions of business logic, and data operations are performed through the entity services, and the entities map tables and objects on the database.
  • the method may further comprise a mapping step and an automatic refining step for automatically generating the entity service addition / reference / update / deletion operation function portion.
  • the function part for adding / referring / updating / deleting an entity service is automatically generated, so that it is possible to unify and manage database access descriptions that tend to be redundant. It becomes easy.
  • the web application construction method of the present invention further includes a screen display process for displaying a screen corresponding to the process, and the screen display process is performed for each tenant identifier assigned to each tenant and each function classification of the business application.
  • the screen display design is determined from the combination of the assigned application identifier, the screen identifier assigned to each business application screen for each tenant, and the dedicated access path prepared for the business function screen pattern, and screen input Display control may be performed based on a parameter set for each item identifier assigned to each item and label.
  • a multi-tenant type Web application screen can be constructed without preparation, and there is no dependency on the configuration with the database.
  • the screen display step may dynamically reflect the contents of parameters set for each item identifier on the screen display.
  • the content of the parameter is stored in the database, and when the screen display unit performs screen display, setting of an item identifier necessary for the screen can be collectively acquired using the screen identifier as a key. It is good.
  • the screen design is prepared as a static object and can be dynamically changed at the time of display.
  • a web application construction program causes a computer to execute the web application construction method.
  • the web application construction method of the present invention can be realized anywhere as long as there is a computer environment capable of executing the program. Furthermore, if this web application construction program can be executed by a general-purpose computer, it is not necessary to prepare a dedicated computer environment in order to realize the web application construction method of the present invention. The usefulness of the construction program increases.
  • a recording medium on which the web application construction program of the present invention is recorded is a computer-readable recording medium, and the web application construction program is recorded on the recording medium.
  • the web application construction method of the present invention can be easily realized in various places and environments, and the versatility of the web application construction method of the present invention is improved. Can be increased.
  • business logic can be handled as independent components individually or can be easily combined, and transactions can be unified with the combined business logic. Since everything runs on the virtual machine, the combined services do not go through the network, making it easy to operate. Transaction control is equivalent to conventional applications, and data integrity can be maintained using database functions, so there is no need to learn new control methods.
  • the web application construction method of the present invention can be realized anywhere as long as there is a computer environment capable of executing the program. Furthermore, if this web application construction program can be executed by a general-purpose computer, it is not necessary to prepare a dedicated computer environment in order to realize the web application construction method of the present invention. The usefulness of the construction program increases.
  • the recording medium on which the web application construction program of the present invention is recorded it becomes easy to realize the web application construction method of the present invention in various places and environments, and the versatility of the web application construction method of the present invention is increased. Can be increased.
  • FIG. 1 is a functional block diagram showing a server configuration of the Web application construction system 10 according to the first embodiment of the present invention.
  • FIG. 2 is an explanatory diagram of a calling relationship between each module operating on each server of the Web application construction system 10 and the browser 20b operating on the client device 20.
  • FIG. 3 shows some common JavaScript functions and HTML element description rules.
  • 4A and 4B are tables showing images of UI parameters, FIG. 4A shows UI_PARAM, and FIG. 4B shows UI_INPUT.
  • FIG. 5 shows an example of the process 12p described as DSL (Domain Specific Language) by JRRuby.
  • FIG. 6 is a schematic explanatory diagram of a DSL function used in the process 12p illustrated in FIG. FIG.
  • FIG. 7 is an explanatory diagram of processes, actions, and subactions.
  • FIG. 8A and FIG. 8B are explanatory diagrams of UI-DB parameter conversion.
  • FIG. 8A shows before conversion
  • FIG. 8B shows after conversion.
  • FIG. 9 is a schematic explanatory diagram of the relationship between the entity service 12s1 and the business service 12s2.
  • FIG. 10 is a description example of a document of the service 12s.
  • FIG. 11 is a schematic sequence diagram of standard input screen processing in the Web application construction system 10.
  • FIG. 12 is a screen display example of the entry input tab of the standard order entry screen for tenant 1.
  • FIG. 13 is a screen display example of a detail input tab on the same standard order entry screen as FIG. FIG.
  • FIG. 14 is a screen display example of the entry input tab of the standard order entry screen for tenant 2.
  • FIG. 15 is a screen display example of the detail input tab of the same standard order entry screen as FIG.
  • FIG. 16 is a display example of an order list condition setting screen for tenant 1.
  • FIG. 17 is a display example of an order list condition setting screen for tenant 2.
  • the concept of SOA Service Oriented Architecture
  • business logic is converted into “process” and “service”. Try to separate.
  • Standard functions are converted into parts as services, and business logic for each tenant (such as a company) is created as a process by combining one or more necessary services.
  • FIG. 1 is a functional block diagram showing a server configuration of the Web application construction system 10 according to the first embodiment of the present invention.
  • the Web application construction system 10 stores various data such as a front server 11 that mainly implements processing related to screens, a logic server 12 that mainly implements processing related to business logic, and the like. And a database server 13 on which processing related to the database to be managed is mainly implemented.
  • the Web application construction system 10 is connected to one or more external client devices 20 via a front server 11 and a network such as the Internet.
  • FIG. 1 shows a case where the Web application construction system 10 is configured by combining three servers 11, 12, and 13, but the actual hardware configuration includes only one server device. It can also be realized.
  • Examples of products used for the front server 11 include intra-mart, S2Struts, and S2DAO.
  • the screen is implemented using standard JSP (Java Server Pages).
  • Examples of products used for the logic server 12 include Tomcat, S2JDBC, and the like. The process is implemented using JRRuby. Services and entities are implemented using Java.
  • Examples of products used for the database server 13 include Oracle, which is commercially available as a relational database management system (RDBMS).
  • Oracle which is commercially available as a relational database management system (RDBMS).
  • RDBMS relational database management system
  • Communication from the front server 11 to the logic server 12 is performed by HTTP, and a JSON (Java Script Object Notation) is returned from the logic server 12 to the front server 11.
  • JSON Java Script Object Notation
  • Communication from the front server 11 to the database server 13 is only referred to by S2DAO, and UI parameters, access authority, and intra-mart master are returned from the database server 13 to the front server 11.
  • Communication from the logic server 12 to the database server 13 is referred to and updated by S2JDBC, and UI parameters, business data, and an execution log are returned from the database server 13 to the logic server 12.
  • HTML HyperText Markup Language
  • JavaScript JavaScript
  • jQuery or the like
  • Communication from the client device 20 to the front server 11 is performed by HTTP or HTTPS, and HTML and JSON are returned from the front server 11 to the client device 20.
  • Intra-mart is a web application framework of NTT DATA INTRAMART, and the web application construction system 10 mainly uses a user, authority management, and W / F function.
  • JQuery is a JavaScript library that simplifies dynamic change processing of HTML and CSS.
  • S2Struts is an open source framework that extends Struts (Web framework) using Seasar2 (DI container), and simplifies Struts setting work.
  • S2DAO and S2JDBC are O / R mapper tools that map a table on the database 13d and a Java object using Seasar2, and simplify CRUD (add / reference / update / delete) operation implementation of the table. Note that the reason why S2JDBC does not standardize is because of restrictions on intra-mart.
  • JRRuby is a Ruby language processing system implementation that runs on JavaVM. It is possible to operate a script written in the Ruby language from Java, or to use a Java class or method from a Ruby script.
  • FIG. 2 is an explanatory diagram of a calling relationship between each module operating on each server of the Web application construction system 10 and the browser 20b operating on the client device 20.
  • the browser 20b calls the screen 11d (JSP) using HTTP or HTTPS, but the process 12p (JRuby) is not directly used from the browser 20b.
  • the screen 11d calls the process 12p (JRuby) by HTTP, but the service 12s (Java) is not directly used from the screen 11d (JSP).
  • the process 12p calls the service 12s (Java) by calling the Java method, but does not directly use the database 13d from the process 12p (JRuby).
  • Service 12s refers to and updates various data stored and managed in the database 13d.
  • FIG. 3 shows some common JavaScript functions and HTML element description rules.
  • 4A and 4B are tables showing images of UI parameters, FIG. 4A shows UI_PARAM, and FIG. 4B shows UI_INPUT.
  • Specified ID becomes the UI parameter key (item ID).
  • Parameters sent from the screen to the logic 12p (process) via the front 11d also use the item ID as a key.
  • the contents of the label, the type / digit information of the input item, the width of each element, and the like are dynamically set from the UI parameters using JavaScript. Note that the common JavaScript function of the framework is used.
  • the design of the screen to be displayed is determined from the combination of the company CD, application CD, screen ID and URI.
  • UI parameters For each item ID, settings such as display type, value format, wording, width, maximum / minimum value, presence / absence of mandatory check, etc. are prepared as UI parameters.
  • the contents of the UI parameters of each item ID are dynamically reflected.
  • the contents of the UI parameters are stored in the database 13d, and a set of item IDs necessary for the screen 11d can be collectively acquired using the screen ID as a key.
  • mapping table / column of database 13d with screen ID + item ID so that screen ID + item ID and mapping can be mutually converted.
  • the table / column is converted into an item ID
  • the item ID is converted into a table / column.
  • the database 13d is divided for each company CD.
  • the content of the UI parameter is held in the database.
  • a set of UI parameters for the item ID is collectively obtained from the database 13d.
  • a source of JavaScript (jQuery) that reflects the contents of the UI parameter is automatically generated.
  • the automatically generated JavaScript is operated and dynamically reflected.
  • FIG. 5 is an example of the process 12p described as DSL (Domain Specific Language) by JRRuby.
  • FIG. 6 is a schematic explanatory diagram of a DSL function used in the process 12p illustrated in FIG. Note that numbers such as [1] shown at the end of the line in FIG. 5 indicate correspondence to functions having the same numbers in FIG.
  • DSL is a programming language designed for specific problems and tasks.
  • the Ruby grammar is used as the grammar.
  • FIG. 5 illustrates “initial value acquisition”, “confirmation processing”, and “registration processing”.
  • DSL function special function
  • FIG. 7 is an explanatory diagram of processes, actions, and subactions.
  • the process is called in units of blocks called “actions” defined by the action method.
  • the process 12p is composed of a plurality of actions, and the call from the screen 11d specifies an action in principle.
  • the update screen has one process 12p for one screen 11d, but the reference-only process 12p is shared by a plurality of screens 11d. Note that what is cut out in units of DSL files in order to share processing among a plurality of processes 12p is referred to as a “subaction”.
  • input support the process of setting values for screen items from the server
  • item check the process of checking screen item errors on the server
  • FIG. 8A and 8B are explanatory diagrams of UI-DB parameter conversion.
  • FIG. 8A shows before conversion
  • FIG. 8B shows after conversion.
  • the parameter sent from the screen 11d by the entity method is converted into an instance of the Java entity class.
  • an entity is an object that has a one-to-one correspondence with a table in the database 13d.
  • the conversion from the screen item (uiNo, c04, etc.) sent from the screen 11d to the database 13d item (juchu.s_juchu, juchu.d_juchu, etc.) is automatically performed by the framework with reference to the UI parameter.
  • the values transmitted from the screen 11d are displayed in the sJuchu property and dJuchu property of the Juchu object. ) Is set automatically.
  • the key / value after conversion is added to the hash before conversion, the key / value before conversion remains.
  • the service 12s is created with Java.
  • the function provided by the service 12s is a standard function of the Web application construction system 10, and the logic for each tenant (company) is absorbed by the process 12p.
  • FIG. 9 is a schematic explanatory diagram of the relationship between the entity service 12s1 and the business service 12s2.
  • Business data and control data are entities.
  • Entity service A service that implements business logic associated with one of specific entities, and has basic CRUD operations and methods that implement business logic. This entity service automatically generates the S2JDBC function part in the CRUD operation of the database 13d.
  • Business service A service that implements business logic that is not linked to one specific entity, does not have a basic CRUD operation, and uses an entity service.
  • the argument of the method of the service 12s is to specify an instance of an entity class, a list of entity classes, a map (a pair of key and value) or a list of maps, and the number of arguments increases. Avoid.
  • FIG. 10 is a description example of a document of the service 12s.
  • FIG. 11 is a schematic sequence diagram of standard input screen processing in the Web application construction system 10.
  • the browser 20b operates on the client device 20
  • the screen 11d (JSP) operates on the front server 11
  • the process 12p and the service 12s are executed on the logic server 12.
  • the database 13d operates on the database server 13. Also, in FIG. 11, login processing, UI-DB parameter conversion processing, and the like are omitted.
  • a process call is performed from the screen 11d to the process 12p according to the returned UI parameter
  • an input support service call is performed from the process 12p to the service 12s
  • the service 12s to S2JDBC.
  • the database 13d is referred to.
  • a check parameter is returned from the database 13d.
  • the service 12s calls the entity service 12s1 (see FIG. 9) from the business service 12s2 (see FIG. 9), and then the service 12s references the database 13d again by S2JDBC.
  • Business data is returned from the database 13d.
  • the screen item initial value is returned from the service 12s to the process 12p in accordance with the returned business data, and the JSON (screen item initial value) is returned from the process 12p to the screen 11d. It is transmitted to 20b, and is recognized by the user 30 by displaying the screen in the browser 20b.
  • an input check service call (TOROKU) is made from the process 12p to the service 12s, and the database 13d is referenced from the service 12s by S2JDBC.
  • a check parameter is returned from the database 13d.
  • the database 13d is referred again by the service 12s by S2JDBC.
  • Business data is returned from the database 13d.
  • a check result is returned from the service 12s to the process 12p according to the returned business data.
  • JSON input support value + check result
  • the input support item value + check result is returned from the screen 11d to the browser 20b
  • a confirmation screen is displayed on the browser 20b. This is recognized by the user 30.
  • the parameter is converted into an entity in the process 12p.
  • a registration service call entity
  • the database 13d is referenced from the service 12s by S2JDBC.
  • the registration result is returned from the database 13d, and the registration result is further returned from the service 12s to the process 12p.
  • JSON registration result
  • the registration result is further returned from the screen 11d to the browser 20b, and the registration result is displayed on the browser 20b to be recognized by the user 30.
  • FIG. 12 is a screen display example of the entry entry tab of the standard order entry screen for tenant 1
  • FIG. 13 is a screen display example of the item entry tab of the same standard order entry screen.
  • FIG. 14 is a screen display example of the entry input tab of the standard order entry screen for tenant 2
  • FIG. 15 is a screen display example of the detail input tab of the same standard order entry screen.
  • FIG. 16 is a display example of an order list condition setting screen for tenant 1
  • FIG. 17 is a display example of an order list condition setting screen for tenant 2.
  • the extended item column is provided only on the order list condition setting screen of FIG. If such an extended item column is provided, functions can be added safely without depending on other processes by adding a corresponding process even if the number of uses of the extended item column increases for each tenant. .
  • the process 12p is implemented by the script language Ruby, the combination can be easily described. Since everything operates on the JVM (Java virtual machine), the combination does not go through the network, and a light operation is possible.
  • JVM Java virtual machine
  • database access descriptions that tend to be redundant can be unified and managed easily.
  • Transaction control is equivalent to conventional applications, and data consistency can be maintained using database functions, eliminating the need to learn new control methods.
  • multi-tenant support input digits, widths, names, etc. for each tenant can be supported by setting UI parameters. Since the screen design is prepared as a static object and can be dynamically changed at the time of display, customization becomes easier. The configuration dependency with the database 13d is also eliminated.
  • the above-described Web application construction method may be recorded on a computer-readable recording medium in which a program to be executed by a computer is recorded.
  • a recording medium in which a program for executing the Web application construction method is recorded can be provided in a portable manner.
  • the recording medium may be a program medium such as a memory (not shown) such as a ROM because processing is performed by a microcomputer.
  • a program reading device may be provided as an external storage device, and the program medium may be read by inserting a recording medium therein.
  • the stored program may be configured to be accessed and executed by the microprocessor, or in any case, the program is read and the read program is illustrated in the microcomputer.
  • the program may be downloaded to a non-program storage area and the program may be executed. It is assumed that this download program is stored in the main device in advance.
  • the program medium is a recording medium configured to be separable from the main body, such as a tape system such as a magnetic tape or a cassette tape, a magnetic disk such as a flexible disk or a hard disk, a CD-ROM / MO / MD / DVD, or the like.
  • Optical discs IC cards (including memory cards) / optical cards, etc., or mask ROM, EPROM (Erasable Programmable Read Only Memory), EEPROM (Electrically Erasable Programmable Read Only Memory, etc.), flash memory, etc. It may be a medium that carries a fixed program.
  • the system configuration since the system configuration is capable of connecting a communication network including the Internet, it may be a medium that carries the program in a fluid manner so as to download the program from the communication network.
  • the download program may be stored in the main device in advance or installed from another recording medium.
  • the recording medium is read by any of the program reading devices provided in the three servers 11, 12, and 13 provided in the Web application construction system 10, thereby executing the Web application construction method described above.

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)と、業務上の一処理に相当する単位で部品化された1つ以上の標準的機能をサービス(12s)として提供するサ-ビス提供部(12)と、このサ-ビス提供部(12)で提供される1つ以上のサービス(12s)を組み合わせて利用者毎のビジネスロジックをプロセス(12p)として作成するプロセス作成部(12)と、このプロセス作成部(12)で作成されたプロセス(12p)に応じて利用者毎のウェブアプリケーションを構築するウェブアプリケーション構築部(12)とを備え、プロセス作成部(12)で作成されたプロセス(12p)とそのプロセス(12p)に組み合わされているサービス(12s)が1つの仮想マシン上で動作し、それらのトランザクション制御がデータベース部(13)によって行われる。

Description

ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体
 本発明は、いわゆるマルチテナント型ウェブアプリケーションを構築する際に、テナント毎の要件に対応したビジネスロジック構築についての柔軟性を向上させるとともにウェブアプリケーション画面のカスタマイズ容易性をも向上させるウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体に関する。
 従来、企業業務におけるデータエントリシステム、ワークフローシステムなどのビジネスアプリケーションでは、データベースサーバの管理するデータをクライアントからアプリケーションサーバを介して操作するという方式がとられてきた。近年、このようなビジネスアプリケーションはWebアプリケーションとして実現されるようになった。
 このようなWebアプリケーションを実行するアプリケーションサーバを開発する際にデータ、ロジック、画面の各モジュールに分けて記述するフレームワークを提供することにより、Webアプリケーションの開発効率と保守性を向上するための技術が提案されている(例えば、特許文献1参照)。
 さらに、複数の利用者によって同一のアプリケーションおよびハードウェア環境が共有されるとともに、データベースやウェブページなどの設定を利用者毎にカスタマイズすることが可能なマルチテナント型アプリケーションも提供されるようになってきた。
 このようなマルチテナント型アプリケーションでは、利用者毎に専用の環境を構築する必要がないことから、アプリケーションの迅速な導入と、TOC(Total Cost of Ownership)の削減が可能である。また、複数の利用者で同一の環境を利用することで、バージョンアップなどのメンテナンス時の対応が共通化されるため、アプリケーションのメンテナンスを容易に実行することが可能である。
 なお、このようなマルチテナント型アプリケーションでは、複数の全ての利用者に対して、同一バージョンのアプリケーションを提供することになるが、利用者毎に微妙に異なる仕様要求を満たすために、利用者の仕様要求に応じて、利用者自身がアプリケーションのカスタマイズや機能の新規追加を行う機能(即ち、利用者カスタマイズ機能)を持たせることが一般的となっている。
 しかし、利用者による様々な種類のアプリケーションのカスタマイズや追加が行われた際に、例えば、それらの変更を理解するための仕組みを全てアプリケーション側で保持する必要があり、アプリケーション自体が大きく複雑になってしまうという問題点があった。
 そこで、マルチテナント型アプリケーションのカスタマイズ機能に拡張性を持たせると共にメンテナンス時の対応が容易なアプリケーションプログラムの提供システムを提供する技術も提案されている(例えば、特許文献2参照)。
 さらに、Webアプリケーションにおける業務アプリケーションの開発に関し、特に、ビジネスロジック構築における柔軟性とカスタマイズの容易性を担保したマルチテナント型アプリケーションについての技術は他にも提案されている(例えば、特許文献3~5参照)。
特開2008-112460号公報 特開2009-282777号公報 特表2007-531941号公報 特開2009-145972号公報 特開2003-280898号公報
 しかしながら、上述したようなマルチテナント形式のサービス提供をWebアプリケーションで構築する場合、テナント毎の要件に対応したビジネスロジック構築について柔軟性に欠けている。具体的には、次のような問題点が挙げられる。
 ・ビジネスロジックの組み合わせ
 ・ビジネスロジックの順序入れ替え
 ・ビジネスロジックの追加
 ・ビジネスロジック組み合わせの条件分岐
 ・ビジネスロジック内へのテナント判定の混入
 テナント毎の要件を満たすために、これらを個々に実装することでWebアプリケーションの肥大化と複雑化を招いていた。
 SaaS基盤やBPMServerでは、Webサービスを組み合わせてビジネスロジックを構成できる。しかし、個々のサービスが分離独立しておりサービス間は疎結合である。このことにより、組み合わせによる複数ロジック実行時のトランザクションがサービス毎に分離される。トランザクションを連携する規格(Webサービス・トランザクション)はあるが、あまり利用されていない状況であり、エラー処理などに複雑な実装を織り込まなければならない。
 さらに、Webサービスでビジネスロジックを組み合わせると、個々のサービスがネットワークを経由するため、軽快なレスポンスを得にくい。
 一方、上述したようなマルチテナント形式でのWebアプリケーション画面を構築する場合、入力項目の設定や項目タイトルなどはテナント毎に全く同一ではなく、多少の相違点があることが多い。具体的には、例えば次のようなものが挙げられる。
 ・名称が「部署」か「部所」の違い
 ・数量の上限値違い
 ・文字列長の制限
 ・専用項目の用意
 ・必須入力の指定の有無
 また、これらの入力項目とデータベースのテーブル・カラム構成とが密接に連携していることが多く、テナント毎に用意せざるを得なかった。
 本発明の第1の目的は、ビジネスロジックを個々に独立した部品として扱えたり、簡単に組み合わせられたりするとともに、組み合わせたビジネスロジックでトランザクションを統一できるウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体を提供することである。
 本発明の第2の目的は、テナント毎に入力項目の設定や項目タイトルなどが多少異なっている場合であっても、データベースをテナント毎に用意することなくマルチテナント型のWebアプリケーション画面を構築できるウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体を提供することである。
 本発明のウェブアプリケーション構築システムは、同一のサーバ環境を使用する複数の利用者の各々が任意の仕様にカスタマイズして使用することができるマルチテナント型ウェブアプリケーションを構築するウェブアプリケーション構築システムであって、各種データを記憶するデータベースの管理を行うデータベース部と、業務上の一処理に相当する単位で部品化された1つ以上の標準的機能をサービスとして提供するサ-ビス提供部と、このサ-ビス提供部で提供される1つ以上のサービスを組み合わせて利用者毎のビジネスロジックをプロセスとして作成するプロセス作成部と、このプロセス作成部で作成されたプロセスに応じて利用者毎のウェブアプリケーションを構築するウェブアプリケーション構築部とを備え、前記プロセス作成部で作成されたプロセスとそのプロセスに組み合わされているサービスが1つの仮想マシン上で動作し、それらのトランザクション制御が前記データベース部によって行われることを特徴とする。
 ここで、例えば、前記サ-ビス提供部で提供されるサービスはJavaで実装され、前記プロセス作成部で作成されるプロセスはスクリプト言語のJRubyまたはRubyで実装され、前記仮想マシンはJava仮想マシンであってもよい。
 このような構成のウェブアプリケーション構築システムによれば、ビジネスロジックを個々に独立した部品として扱えたり、簡単に組み合わせられたりするとともに、組み合わせたビジネスロジックでトランザクションを統一できる。仮想マシン上で全てが動作するため、組み合わせたサービス同士がネットワーク経由にならないため、軽快な動作が可能になる。トランザクション制御が従来のアプリケーションと同等となり、データベースの機能を使ってデータの整合性を保つことができるので、新しい制御方法を覚える必要がない。なお、前記プロセス作成部で作成されるプロセスをJRubyまたはRubyで実装する場合は、組み合わせを簡単に記述できる。
 また、本発明のウェブアプリケーション構築システムにおいて、前記サ-ビス提供部によって提供されるサービスは、業務データまたは制御データをエンティティとし、そのエンティティのうちで特定の1つと結び付いて、前記データベースに対するデータ操作やエンティティ専用のロジックを有するエンティティサービスと、ビジネスロジックの個々の機能を実装し、データ操作は前記エンティティサービスを介して行うビジネスサービスとを備え、前記エンティティは前記データベース上のテーブルとオブジェクトをマッピングし、前記エンティティサービスの追加/参照/更新/削除操作機能部分が自動生成されることを特徴としてもよい。
 このような構成のウェブアプリケーション構築システムによれば、エンティティサービスの追加/参照/更新/削除操作機能部分が自動生成されるので、冗長になりやすいデータベースアクセスの記述を単一化でき、管理がしやすくなる。
 また、本発明のウェブアプリケーション構築システムにおいて、前記プロセスに対応した画面表示を行う画面表示部をさらに備え、この画面表示部は、テナント毎に割り当てられたテナント識別子と、業務アプリケーションの機能分類毎に割り当てられたアプリケーション識別子と、テナント別に業務アプリケーション画面毎に割り当てられた画面識別子と、業務機能の画面パターンにあわせて用意された専用アクセスパスとの組み合わせから画面表示デザインを決定するとともに、画面の入力項目およびラベル毎に割り当てられた項目識別子毎に設定されたパラメータに基づいて表示制御が行われることを特徴としてもよい。
 ここで、前記パラメータの内容に基づく表示制御には、例えば、表示の種類、値の書式、文言、幅、最大最小値、必須チェックの有無などが挙げられる。
 このような構成のウェブアプリケーション構築システムによれば、テナント毎に入力項目の設定や項目タイトルなどが多少異なっている場合であっても、パラメータを設定することで対応可能なので、データベースをテナント毎に用意することなくマルチテナント型のWebアプリケーション画面を構築でき、データベースとの構成依存もなくなる。
 また、本発明のウェブアプリケーション構築システムにおいて、前記画面表示部は、項目識別子毎に設定されたパラメータの内容を画面表示に動的に反映させることを特徴としてもよい。さらに、前記パラメータの内容は前記データベースに記憶され、前記画面表示部が画面表示を行う際にその画面に必要な項目識別子の設定を前記画面識別子をキーにしてまとめて取得可能であることを特徴としてもよい。
 このような構成のウェブアプリケーション構築システムによれば、画面のデザインを静的な物として用意しておき、表示時に動的に変化させることができるため、カスタマイズ対応がしやすくなる。
 あるいは、本発明のウェブアプリケーション構築方法は、同一のサーバ環境を使用する複数の利用者の各々が任意の仕様にカスタマイズして使用することができるマルチテナント型ウェブアプリケーションを構築するウェブアプリケーション構築方法であって、各種データを記憶するデータベースの管理を行うデータベース管理工程と、業務上の一処理に相当する単位で部品化された1つ以上の標準的機能をサービスとして提供するサ-ビス提供工程と、このサ-ビス提供部で提供される1つ以上のサービスを組み合わせて利用者毎のビジネスロジックをプロセスとして作成するプロセス作成工程と、このプロセス作成部で作成されたプロセスに応じて利用者毎のウェブアプリケーションを構築するウェブアプリケーション構築工程とを備え、前記プロセス作成工程で作成されたプロセスとそのプロセスに組み合わされているサービスが1つの仮想マシン上で動作し、それらのトランザクション制御が前記データベース管理工程によって行われることを特徴とする。
 このような構成のウェブアプリケーション構築方法によれば、ビジネスロジックを個々に独立した部品として扱えたり、簡単に組み合わせられたりするとともに、組み合わせたビジネスロジックでトランザクションを統一できる。仮想マシン上で全てが動作するため、組み合わせたサービス同士がネットワーク経由にならないため、軽快な動作が可能になる。トランザクション制御が従来のアプリケーションと同等となり、データベースの機能を使ってデータの整合性を保つことができるので、新しい制御方法を覚える必要がない。
 また、本発明のウェブアプリケーション構築方法において、前記サ-ビス提供工程によって提供されるサービスは、業務データまたは制御データをエンティティとし、そのエンティティのうちで特定の1つと結び付いて、前記データベースに対するデータ操作やエンティティ専用のロジックを有するエンティティサービスと、ビジネスロジックの個々の機能を実装し、データ操作は前記エンティティサービスを介して行うビジネスサービスとを備え、前記エンティティが前記データベース上のテーブルとオブジェクトをマッピングするマッピング工程と、前記エンティティサービスの追加/参照/更新/削除操作機能部分を自動生成する自動精製工程とをさらに備えることを特徴としてもよい。
 このような構成のウェブアプリケーション構築方法によれば、エンティティサービスの追加/参照/更新/削除操作機能部分が自動生成されるので、冗長になりやすいデータベースアクセスの記述を単一化でき、管理がしやすくなる。
 また、本発明のウェブアプリケーション構築方法において、前記プロセスに対応した画面表示を行う画面表示工程をさらに備え、この画面表示工程は、テナント毎に割り当てられたテナント識別子と、業務アプリケーションの機能分類毎に割り当てられたアプリケーション識別子と、テナント別に業務アプリケーション画面毎に割り当てられた画面識別子と、業務機能の画面パターンにあわせて用意された専用アクセスパスとの組み合わせから画面表示デザインを決定するとともに、画面の入力項目およびラベル毎に割り当てられた項目識別子毎に設定されたパラメータに基づいて表示制御を行うことを特徴としてもよい。
 このような構成のウェブアプリケーション構築方法によれば、テナント毎に入力項目の設定や項目タイトルなどが多少異なっている場合であっても、パラメータを設定することで対応可能なので、データベースをテナント毎に用意することなくマルチテナント型のWebアプリケーション画面を構築でき、データベースとの構成依存もなくなる。
 また、本発明のウェブアプリケーション構築方法において、前記画面表示工程は、項目識別子毎に設定されたパラメータの内容を画面表示に動的に反映させることを特徴としてもよい。さらに、前記パラメータの内容は前記データベースに記憶され、前記画面表示部が画面表示を行う際にその画面に必要な項目識別子の設定を前記画面識別子をキーにしてまとめて取得可能であることを特徴としてもよい。
 このような構成のウェブアプリケーション構築方法によれば、画面のデザインを静的な物として用意しておき、表示時に動的に変化させることができるため、カスタマイズ対応がしやすくなる。
 あるいは、本発明のウェブアプリケーション構築プログラムは、上記ウェブアプリケーション構築方法をコンピュータに実行させることを特徴とする。
 このような構成のウェブアプリケーション構築プログラムによれば、プログラムが実行可能なコンピュータ環境さえあれば、どこにおいても本発明のウェブアプリケーション構築方法を実現することができる。さらに、このウェブアプリケーション構築プログラムを汎用的なコンピュータで実行可能なものにしておけば、本発明のウェブアプリケーション構築方法を実現するために専用のコンピュータ環境を準備する必要もなくなり、本発明のウェブアプリケーション構築プログラムの有用性が高まる。
 あるいは、本発明のウェブアプリケーション構築プログラムを記録した記録媒体は、コンピュータ読み取り可能な記録媒体であって、上記ウェブアプリケーション構築プログラムを記録していることを特徴とする。
 このような構成のウェブアプリケーション構築プログラムを記録した記録媒体によれば、本発明のウェブアプリケーション構築方法を様々な場所や環境で実現することが容易になり、本発明のウェブアプリケーション構築方法の汎用性を高めることができる。
 本発明のウェブアプリケーション構築システムおよびウェブアプリケーション構築方法によれば、ビジネスロジックを個々に独立した部品として扱えたり、簡単に組み合わせられたりするとともに、組み合わせたビジネスロジックでトランザクションを統一できる。仮想マシン上で全てが動作するため、組み合わせたサービス同士がネットワーク経由にならないため、軽快な動作が可能になる。トランザクション制御が従来のアプリケーションと同等となり、データベースの機能を使ってデータの整合性を保つことができるので、新しい制御方法を覚える必要がない。
 本発明のウェブアプリケーション構築プログラムによれば、プログラムが実行可能なコンピュータ環境さえあれば、どこにおいても本発明のウェブアプリケーション構築方法を実現することができる。さらに、このウェブアプリケーション構築プログラムを汎用的なコンピュータで実行可能なものにしておけば、本発明のウェブアプリケーション構築方法を実現するために専用のコンピュータ環境を準備する必要もなくなり、本発明のウェブアプリケーション構築プログラムの有用性が高まる。
 また、本発明のウェブアプリケーション構築プログラムを記録した記録媒体によれば、本発明のウェブアプリケーション構築方法を様々な場所や環境で実現することが容易になり、本発明のウェブアプリケーション構築方法の汎用性を高めることができる。
図1は本発明の第1実施形態に係るWebアプリケーション構築システム10のサーバ構成などを示す機能ブロック図である。 図2はWebアプリケーション構築システム10の各サーバ上で動作する各モジュールとクライアント装置20上で動作するブラウザ20bとの間の呼び出し関係などの説明図である。 図3はいくつかの共通JavaScript関数とHTML要素の記述ルールである。 図4(a)および図4(b)はUIパラメータのイメージを示す表であり、図4(a)はUI_PARAMを示し、図4(b)はUI_INPUTを示す。 図5はJRubyによるDSL(Domain Specific Language:ドメイン固有言語)として記述されたプロセス12pの例である。 図6は図5に例示されたプロセス12pで使用されているDSL関数の概略説明図である。 図7はプロセス、アクションおよびサブアクションについての説明図である。 図8(a)および図8(b)はUI-DBパラメータ変換についての説明図であり、図8(a)が変換前を示し、図8(b)が変換後を示す。 図9はエンティティサービス12s1およびビジネスサービス12s2の関係の概略説明図である。 図10はサービス12sのドキュメントの記述例である。 図11はWebアプリケーション構築システム10における標準的な入力系画面処理の概略シーケンス図である。 図12はテナント1用の標準受注入力画面の見出入力タブの画面表示例である。 図13は図12と同じ標準受注入力画面の明細入力タブの画面表示例である。 図14はテナント2用の標準受注入力画面の見出入力タブの画面表示例である。 図15は図14と同じ標準受注入力画面の明細入力タブの画面表示例である。 図16はテナント1用の受注一覧条件設定画面の表示例である。 図17はテナント2用の受注一覧条件設定画面の表示例である。
 以下、本発明の実施形態を、図面を参照して説明する。
 本発明の第1実施形態に係るマルチテナント型Webアプリケーションを構築するWebアプリケーション構築システム10では、SOA(Service Oriented Architecture:サービス指向アーキテクチャ)の考え方を取り入れ、ビジネスロジックを「プロセス」と「サービス」に分離することとしている。そして、標準的な機能はサービスとして部品化するとともに、テナント(会社など)毎のビジネスロジックは必要な1つ以上のサービスを組み合わせることでプロセスとして作成する。
 将来発生するテナント毎のビジネスロジックの違いは、プロセスをテナント毎にコピーしてからそれを変更することで対応する。サービスの作成には保守性の高いJava(登録商標、以下も同様)を使用し、プロセスの作成には記述性および柔軟性の高いスクリプト言語であるRuby(JRuby)を使用する。
 以下では、次のような項目毎に詳細な説明を行う。
  A.Webアプリケーション構築システム10
  A1.機能ブロック
  A11.サーバ構成
  A12.モジュール呼び出し関係
  A2.処理詳細
  A21.画面(JSP)
  A22.プロセス(JRuby)
  A23.サービス(Java)
  A3.処理シーケンス
  A4.画面表示例
  B.プログラムおよび記録媒体としての実施形態
 <A11.機能ブロック/サーバ構成>
 図1は本発明の第1実施形態に係るWebアプリケーション構築システム10のサーバ構成などを示す機能ブロック図である。
 この図に示すように、Webアプリケーション構築システム10は、画面に関する処理などが主に実装されるフロントサーバ11と、ビジネスロジックなどに関する処理が主に実装されるロジックサーバ12と、各種データを記憶・管理するデータベースに関する処理が主に実装されるデータベースサーバ13とを備えている。このWebアプリケーション構築システム10は、フロントサーバ11およびインターネットなどのネットワークを介して、外部の1台以上のクライアント装置20と接続される。
 なお、この図1では、Webアプリケーション構築システム10は3台のサーバ11、12、13を組み合わせて構成された場合が示されているが、実際のハードウェア構成としては1台のサーバ装置のみで実現することも可能である。
 次にこれらのサーバ11、12、13などで利用されるプロダクトを例示するが、各プロダクトについてはまとめて後述する。
 フロントサーバ11に利用されるプロダクトとしては、例えば、intra-mart、S2Struts、S2DAOなどが挙げられる。画面は標準的なJSP(JavaServer Pages)を利用して実装される。
 ロジックサーバ12に利用されるプロダクトとしては、例えば、Tomcat、S2JDBCなどが挙げられる。プロセスはJRubyを利用して実装される。サービスおよびエンティティはJavaを利用して実装される。
 データベースサーバ13に利用されるプロダクトとしては、例えば、リレーショナルデータベースマネージメントシステム(RDBMS)として市販されているOracleが挙げられる。
 フロントサーバ11からロジックサーバ12への通信はHTTPで行われ、ロジックサーバ12からフロントサーバ11へはJSON(JavaScript Object Notation)が返信される。
 フロントサーバ11からデータベースサーバ13への通信はS2DAOによって参照のみが行われ、データベースサーバ13からフロントサーバ11へはUIパラメータ、アクセス権限、intra-martマスタが返信される。
 ロジックサーバ12からデータベースサーバ13への通信はS2JDBCによって参照および更新が行われ、データベースサーバ13からロジックサーバ12へはUIパラメータ、業務データ、実行ログが返信される。
 クライアント装置20上で動作するブラウザ20bでは、例えば、HTML、JavaScript、jQueryなどが利用される。クライアント装置20からフロントサーバ11への通信はHTTPまたはHTTPSで行われ、フロントサーバ11からクライアント装置20へはHTML、JSONが返信される。
 intra-martは、NTTデータイントラマート社のWebアプリケーションフレームワークであり、Webアプリケーション構築システム10では、主にユーザ、権限管理とW/F機能を利用する。
 jQueryは、JavaScriptのライブラリであり、HTMLやCSSの動的な変更処理を簡略化する。
 S2Strutsは、Seasar2(DIコンテナ)を使用してStruts(Webフレームワーク) を拡張したオープンソースフレームワークであり、Strutsの設定作業を簡略化する。
 S2DAOおよびS2JDBCは、Seasar2を使用してデータベース13d上のテーブルとJavaのオブジェクトをマッピングするO/Rマッパーツールであり、テーブルのCRUD(追加/参照/更新/削除)操作実装を簡略化する。なお、S2JDBCで統一しないのはintra-martでの制限のためである。
 JRubyは、JavaVM上で動作するRuby言語の処理系実装である。JavaからRuby言語で書かれたスクリプトを動作させたり、RubyのスクリプトからJavaのクラス、メソッドを利用することが可能である。
 <A12.機能ブロック/モジュール呼び出し関係>
 図2はWebアプリケーション構築システム10の各サーバ上で動作する各モジュールとクライアント装置20上で動作するブラウザ20bとの間の呼び出し関係などの説明図である。
 この図に示すように、ブラウザ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は、1つのJVM(Java Virtual Machine)上で動作させ、個々の組み合わせのトランザクション制御をデータベース13dと連動できるようにする。
 <A21.処理詳細/画面(JSP)>
 画面11dは標準的なJSPを使用して実装する。図3はいくつかの共通JavaScript関数とHTML要素の記述ルールである。図4(a)および図4(b)はUIパラメータのイメージを示す表であり、図4(a)はUI_PARAMを示し、図4(b)はUI_INPUTを示す。
 図3に示すように、HTMLの入力とラベルの各要素にidを指定する。
 指定したIDがUIパラメータのキー(項目ID)となる。画面からfront11dを経由してlogic12p(プロセス) に送られるパラメータも項目IDをキーとする。ラベルの内容や入力項目の型・桁情報、各要素の幅などはUIパラメータからJavaScriptを使用して動的に設定する。なお、フレームワークの共通JavaScript関数を使用する。
 図4に示すように、UI_PARAMとUI_INPUTとは、いずれもが有するフィールド「入力ID」に同じ値をもつレコード同士が互いにマッピングされる。
 画面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の設定をまとめて一式取得可能にする。
 (7)UI-DBパラメータ変換を行う。
 画面ID+項目IDでデータベース13dのテーブル・カラムをマッピングして、画面ID+項目IDとマッピングを相互変換できるようにする。業務データ取得時はテーブル・カラムから項目IDに変換し、業務データ保存時には、項目IDからテーブル・カラムに変換する。
 また、このような論理構成のための実現方式は次の通りである。
 (1)データベース13dを会社CD毎に分割する。
 (2)会社CD・アプリケーションCD・画面IDとURIをキーに、画面デザインを記述したJSPファイルを特定する。
 (3)JSPファイルには、入力項目やラベルにid=“項目ID”を指定して記述する。
 (4)JavaScriptで動的にUIパラメータの内容を各入力項目やラベルに反映する。
 ここでは、UIパラメータの内容をデータベースに保持する。画面IDをキーにデータベース13dより項目IDのUIパラメータ一式をまとめて取得する。そして、UIパラメータの内容を反映するJavaScrip (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はプロセス、アクションおよびサブアクションについての説明図である。
 画面11dからは、actionメソッドで定義した「アクション」というブロック単位で処理を呼び出す。プロセス12pは複数のアクションからなり、画面11dからの呼出は原則としてアクションを指定する。更新系の画面は原則として、1つの画面11dに対して1つのプロセス12pを持つが、参照のみのプロセス12pは複数の画面11dから共用される。なお、複数のプロセス12p間で処理を共通化するためにDSLのファイル単位で切り出したものを「サブアクション」と呼ぶ。
 また、サーバから画面項目に値を設定する処理を「入力支援」、サーバで画面項目のエラーチェックを行う処理を「項目チェック」と呼ぶ。これらの入力支援および項目チェックは、予め用意したチェック部品をデータベース13dのパラメータで設定することで、プログラムなしに行うことを可能とする。
 図8(a)および図8(b)はUI-DBパラメータ変換についての説明図であり、図8(a)が変換前を示し、図8(b)が変換後を示す。
 entityメソッドで画面11dから送られてきたパラメータをJavaのエンティティクラスのインスタンスに変換する。ここで、エンティティとは、データベース13dのテーブルと1対1に対応するオブジェクトである。
 画面11dから送られた画面項目(uiNo、c04、等)からデータベース13d項目(juchu.s_juchu、juchu.d_juchu、など)への変換は、フレームワークがUIパラメータを参照して自動的に行う。
 例えば、図8(a)および図8(b)に示した場合、entity(:Juchu)では、JuchuオブジェクトのsJuchuプロパティとdJuchuプロパティに、画面11dから送信された値(キーuiNo、c04それぞれの値)を自動的に設定する。ただし、実際には、変換前のハッシュに変換後のキー/値を追加するため、変換前のキー/値も残っている。
 <A23.処理詳細/サービス(Java)>
 サービス12sはJavaで作成する。このサービス12sが提供する機能はWebアプリケーション構築システム10の標準機能とし、テナント(会社)毎のロジックはプロセス12pで吸収するものとする。
 図9はエンティティサービス12s1およびビジネスサービス12s2の関係の概略説明図である。
 この図に示すように、サービス12sの種類としては以下の2種類がある。なお、業務データや制御データをエンティティとする。
 (1)エンティティサービス
 特定のエンティティの1つと結び付くビジネスロジックを実装するサービスであり、基本的なCRUD操作とビジネスロジックを実装するメソッドを持つ。なお、このエンティティサービスは、データベース13dのCRUD操作におけるS2JDBC機能部分を自動生成する。
 (2)ビジネスサービス
 特定の1つのエンティティと結び付かないビジネスロジックを実装するサービスであり、基本的なCRUD操作は持たず、エンティティサービスを使用する。
 また、サービス12sのメソッドの引数には、原則としてエンティティクラスのインスタンスやエンティティクラスのリスト、または、マップ(キーと値の組)やマップのリストを指定することとし、引数の数が多くなることを避ける。
 図10はサービス12sのドキュメントの記述例である。
 この図ではサービス名「受注明細サービス」の例が示されているが、このようにサービス12sのドキュメントはJavadoc形式で記述する。
 <A3.処理シーケンス>
 図11はWebアプリケーション構築システム10における標準的な入力系画面処理の概略シーケンス図である。なお、図2などを参照して上述したように、ブラウザ20bはクライアント装置20上で動作し、画面11d(JSP)はフロントサーバ11上で動作し、プロセス12pおよびサービス12sはロジックサーバ12上で動作し、データベース13dはデータベースサーバ13上で動作する。また、図11では、ログイン処理やUI-DBパラメータ変換処理などは省略されている。
 まず、ユーザ30がキーボードなどを利用してブラウザ20bにURLを入力すると、これがHTTPとなって画面11dへ送信され、さらに画面11dからS2DAOによってデータベース13dの参照が行われる。データベース13dからはUIパラメータ(項目の幅、型、桁情報、ラベル名称、イベント処理など)が返される。
 返ってきたUIパラメータに応じて画面11dからプロセス12pに対してプロセス呼出(INIT)が行われ、さらにプロセス12pからサービス12sに対して入力支援サービス呼出(INIT)が行われ、さらにサービス12sからS2JDBCによってデータベース13dの参照が行われる。データベース13dからはチェックパラメータが返される。この後、サービス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の受注一覧条件設定画面にのみ拡張項目欄が設けられているのがわかる。このような拡張項目欄を設けておけば、テナント毎に拡張項目欄の利用箇所が増えても、対応するプロセスを追加することにより、他のプロセスに依存せずに、安全に機能が追加できる。
 以上で説明した第1実施形態の構成によれば、プロセス12pがスクリプト言語のRubyによって実装されているため、組み合わせを簡単に記述することができる。JVM(Java仮想マシン)上で全てが動作するため、組み合わせがネットワーク経由にならず、軽快な動作が可能になる。エンティティサービス12s1のCRUD操作機能部分を自動生成することにより、冗長になりやすいデータベースアクセスの記述を単一化でき、管理がしやすくなる。トランザクション制御が従来のアプリケーションと同等となり、データベースの機能を使ってデータの整合性を保つことができるので、新しい制御方法を覚える必要が無くなる。また、マルチテナント対応として、テナント毎の入力桁、幅、名称等については、UIパラメータを設定することで対応が可能となる。画面のデザインを静的な物として用意しておき、表示時に動的に変化させることができるため、カスタマイズ対応がしやすくなる。データベース13dとの構成依存もなくなる。
 <B.プログラムおよび記録媒体としての実施形態>
 また、本発明はコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体に、上述したWebアプリケーション構築方法を記録するものとすることもできる。この結果、Webアプリケーション構築方法を実行するプログラムを記録した記録媒体を持ち運び自在に提供することができる。
 なお、本実施の形態では、この記録媒体としては、マイクロコンピュータで処理が行われるために図示していないメモリ、例えばROMのようなものがプログラムメディアであってもよいし、また、図示していないが外部記憶装置としてプログラム読み取り装置が設けられ、そこに記録媒体を挿入することで読み取り可能なプログラムメディアであっても良い。いずれの場合においても、格納されているプログラムはマイクロプロセッサがアクセスして実行させる構成であってもよいし、あるいは、いずれの場合もプログラムを読み出し、読み出されたプログラムは、マイクロコンピュータの図示されていないプログラム記憶エリアにダウンロードされて、そのプログラムが実行される方式であってもよい。このダウンロード用のプログラムは予め本体装置に格納されているものとする。
 ここで、上記プログラムメディアは、本体と分離可能に構成される記録媒体であり、磁気テープやカセットテープ等のテープ系、フレキシブルディスクやハードディスク等の磁気ディスクやCD-ROM/MO/MD/DVD等の光ディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)、フラッシュROMなどによる半導体メモリを含めた固定的にプログラムを担持する媒体であってもよい。
 また、本実施の形態においては、インターネットを含む通信ネットワークを接続可能なシステム構成であることから、通信ネットワークからプログラムをダウンロードするように流動的にプログラムを担持する媒体であってもよい。なお、このように通信ネットワークからプログラムをダウンロードする場合には、そのダウンロード用のプログラムは予め本体装置に格納しておくか、あるいは別な記録媒体からインストールされるものであってもよい。上記記録媒体は、Webアプリケーション構築システム10が備える3台のサーバ11、12、13に備えられるプログラム読み取り装置のいずれかによって読み取られることで上述したWebアプリケーション構築方法が実行される。
 なお、本発明は、その主旨または主要な特徴から逸脱することなく、他のいろいろな形で実施することができる。そのため、上述の実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈してはならない。本発明の範囲は特許請求の範囲によって示すものであって、明細書本文にはなんら拘束されない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
10   Webアプリケーション構築システム
11   フロントサーバ
11d  画面
12   ロジックサーバ
12p  プロセス
12s  サービス
12s1 エンティティサービス
12s2 ビジネスサービス
13   データベースサーバ
13d  データベース
20   クライアント装置
20b  ブラウザ
30   ユーザ

Claims (15)

  1.  同一のサーバ環境を使用する複数の利用者の各々が任意の仕様にカスタマイズして使用することができるマルチテナント型ウェブアプリケーションを構築するウェブアプリケーション構築システムであって、
     各種データを記憶するデータベースの管理を行うデータベース部と、
     業務上の一処理に相当する単位で部品化された1つ以上の標準的機能をサービスとして提供するサ-ビス提供部と、
     このサ-ビス提供部で提供される1つ以上のサービスを組み合わせて利用者毎のビジネスロジックをプロセスとして作成するプロセス作成部と、
     このプロセス作成部で作成されたプロセスに応じて利用者毎のウェブアプリケーションを構築するウェブアプリケーション構築部と
     を備え、
     前記プロセス作成部で作成されたプロセスとそのプロセスに組み合わされているサービスが1つの仮想マシン上で動作し、それらのトランザクション制御が前記データベース部によって行われることを特徴とするウェブアプリケーション構築システム。
  2.  請求項1に記載のウェブアプリケーション構築システムにおいて、
     前記サ-ビス提供部によって提供されるサービスは、
     業務データまたは制御データをエンティティとし、そのエンティティのうちで特定の1つと結び付いて、前記データベースに対するデータ操作やエンティティ専用のロジックを有するエンティティサービスと、
     ビジネスロジックの個々の機能を実装し、データ操作は前記エンティティサービスを介して行うビジネスサービスと
     を備え、
     前記エンティティは前記データベース上のテーブルとオブジェクトをマッピングし、
     前記エンティティサービスの追加/参照/更新/削除操作機能部分が自動生成されることを特徴とするウェブアプリケーション構築システム。
  3.  請求項1または2に記載のウェブアプリケーション構築システムにおいて、
     前記プロセス作成部で作成されるプロセスはRubyで実装されていることを特徴とするウェブアプリケーション構築システム。
  4.  請求項1~3のいずれか1項に記載のウェブアプリケーション構築システムにおいて、
     前記サ-ビス提供部で提供されるサービスはJavaで実装されており、
     前記プロセス作成部で作成されるプロセスはJRubyで実装されており、
     前記仮想マシンはJava仮想マシンであることを特徴とするウェブアプリケーション構築システム。
  5.  請求項1~4のいずれか1項に記載のウェブアプリケーション構築システムにおいて、
     前記プロセスに対応した画面表示を行う画面表示部をさらに備え、
     この画面表示部は、
     テナント毎に割り当てられたテナント識別子と、
     業務アプリケーションの機能分類毎に割り当てられたアプリケーション識別子と、
     テナント別に業務アプリケーション画面毎に割り当てられた画面識別子と、
     業務機能の画面パターンにあわせて用意された専用アクセスパスと
     の組み合わせから画面表示デザインを決定するとともに、
     画面の入力項目およびラベル毎に割り当てられた項目識別子毎に設定されたパラメータに基づいて表示制御が行われることを特徴とするウェブアプリケーション構築システム。
  6.  請求項5に記載のウェブアプリケーション構築システムにおいて、
     前記画面表示部は、項目識別子毎に設定されたパラメータの内容を画面表示に動的に反映させることを特徴とするウェブアプリケーション構築システム。
  7.  請求項5または6に記載のウェブアプリケーション構築システムにおいて、
     前記パラメータの内容は前記データベースに記憶され、前記画面表示部が画面表示を行う際にその画面に必要な項目識別子の設定を前記画面識別子をキーにしてまとめて取得可能であることを特徴とするウェブアプリケーション構築システム。
  8.  請求項5~7のいずれか1項に記載のウェブアプリケーション構築システムにおいて、
     前記パラメータの内容に基づく表示制御には、表示の種類、値の書式、文言、幅、最大最小値、必須チェックの有無の少なくとも1つ以上を含むことを特徴とするウェブアプリケーション構築システム。
  9.  同一のサーバ環境を使用する複数の利用者の各々が任意の仕様にカスタマイズして使用することができるマルチテナント型ウェブアプリケーションを構築するウェブアプリケーション構築方法であって、
     各種データを記憶するデータベースの管理を行うデータベース管理工程と、
     業務上の一処理に相当する単位で部品化された1つ以上の標準的機能をサービスとして提供するサ-ビス提供工程と、
     このサ-ビス提供部で提供される1つ以上のサービスを組み合わせて利用者毎のビジネスロジックをプロセスとして作成するプロセス作成工程と、
     このプロセス作成部で作成されたプロセスに応じて利用者毎のウェブアプリケーションを構築するウェブアプリケーション構築工程と
     を備え、
     前記プロセス作成工程で作成されたプロセスとそのプロセスに組み合わされているサービスが1つの仮想マシン上で動作し、それらのトランザクション制御が前記データベース管理工程によって行われることを特徴とするウェブアプリケーション構築方法。
  10.  請求項9に記載のウェブアプリケーション構築方法において、
     前記サ-ビス提供工程によって提供されるサービスは、
     業務データまたは制御データをエンティティとし、そのエンティティのうちで特定の1つと結び付いて、前記データベースに対するデータ操作やエンティティ専用のロジックを有するエンティティサービスと、
     ビジネスロジックの個々の機能を実装し、データ操作は前記エンティティサービスを介して行うビジネスサービスと
     を備え、
     前記エンティティが前記データベース上のテーブルとオブジェクトをマッピングするマッピング工程と、
     前記エンティティサービスの追加/参照/更新/削除操作機能部分を自動生成する自動精製工程とをさらに備えることを特徴とするウェブアプリケーション構築方法。
  11.  請求項9または10に記載のウェブアプリケーション構築方法において、
     前記プロセスに対応した画面表示を行う画面表示工程をさらに備え、
     この画面表示工程は、
     テナント毎に割り当てられたテナント識別子と、
     業務アプリケーションの機能分類毎に割り当てられたアプリケーション識別子と、
     テナント別に業務アプリケーション画面毎に割り当てられた画面識別子と
     業務機能の画面パターンにあわせて用意された専用アクセスパスと
     の組み合わせから画面表示デザインを決定するとともに、
     画面の入力項目およびラベル毎に割り当てられた項目識別子毎に設定されたパラメータに基づいて表示制御を行うことを特徴とするウェブアプリケーション構築方法。
  12.  請求項11に記載のウェブアプリケーション構築方法において、
     前記画面表示工程は、項目識別子毎に設定されたパラメータの内容を画面表示に動的に反映させることを特徴とするウェブアプリケーション構築システム。
  13.  請求項11または12に記載のウェブアプリケーション構築方法において、
     前記パラメータの内容は前記データベースに記憶され、前記画面表示部が画面表示を行う際にその画面に必要な項目識別子の設定を前記画面識別子をキーにしてまとめて取得可能であることを特徴とするウェブアプリケーション構築方法。
  14.  請求項9~13のいずれか1項に記載のウェブアプリケーション構築方法をコンピュータに実行させるウェブアプリケーション構築プログラム。
  15.  コンピュータ読み取り可能な記録媒体であって、
     請求項14に記載のウェブアプリケーション構築プログラムを記録した記録媒体。
PCT/JP2010/055233 2010-03-25 2010-03-25 ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体 WO2011118003A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2010/055233 WO2011118003A1 (ja) 2010-03-25 2010-03-25 ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体
JP2010540966A JPWO2011118003A1 (ja) 2010-03-25 2010-03-25 ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体
CN201080001696XA CN102317905A (zh) 2010-03-25 2010-03-25 网络应用程序构建系统、网络应用程序构建方法、网络应用程序构建程序以及记录了网络应用程序构建程序的记录介质

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
WO2011118003A1 true WO2011118003A1 (ja) 2011-09-29

Family

ID=44672594

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/055233 WO2011118003A1 (ja) 2010-03-25 2010-03-25 ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体

Country Status (3)

Country Link
JP (1) JPWO2011118003A1 (ja)
CN (1) CN102317905A (ja)
WO (1) WO2011118003A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
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 山东爱拓软件开发有限公司 基于多进程架构思想的嵌入式软件系统构建方法及系统

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5391309B2 (ja) * 2012-05-23 2014-01-15 みずほ情報総研株式会社 情報管理システム、情報管理方法及び情報管理プログラム
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 广州市爱菩新医药科技有限公司 快速构建网络应用程序接口的装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 フレームワークシステム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6968535B2 (en) * 2002-03-21 2005-11-22 Sun Microsystems, Inc. Service mapping method of enterprise application modeling and development for multi-tier service environments
JP2003280898A (ja) * 2002-03-25 2003-10-02 Nri & Ncc Co Ltd ビジネスロジックプログラムを実装・実行するための装置、方法、及びプログラム
CN101140644A (zh) * 2007-10-19 2008-03-12 广东纺织职业技术学院 一种intednet专业技术资格申报系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
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 ジーベル システムズ インコーポレイテッド ウェブベースのアプリケーションをサポートするためのフレームワークを実施する方法、装置及びシステム
JP2004185553A (ja) * 2002-12-06 2004-07-02 Fujitsu Ltd Webユーザインターフェースのコンポーネント化方法及び装置

Cited By (4)

* Cited by examiner, † Cited by third party
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 山东爱拓软件开发有限公司 基于多进程架构思想的嵌入式软件系统构建方法及系统

Also Published As

Publication number Publication date
JPWO2011118003A1 (ja) 2013-07-04
CN102317905A (zh) 2012-01-11

Similar Documents

Publication Publication Date Title
US10546035B2 (en) System and method for data-driven web page navigation control
US8296311B2 (en) Solution search for software support
US7543268B2 (en) Development environment for developing applications using a metamodel and a metadata API
US9996322B2 (en) Dynamically generated user interface
KR101862235B1 (ko) 사용자 인터페이스 요소 지정
WO2011118003A1 (ja) ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体
US20220100479A1 (en) Universal application framework for streamlined frontend development of user interface applications
US9870203B2 (en) Consumption layer for business entities
US20150293764A1 (en) Method and system to compose and execute business rules
US8578278B2 (en) Dynamic user interface content adaptation and aggregation
US8255888B2 (en) API derivation and XML schema derivation for developing applications
US20050071805A1 (en) Developing applications using a metamodel
US20060101051A1 (en) Electronic data capture and verification
US20100153150A1 (en) Software for business adaptation catalog modeling
US20060075382A1 (en) Developing applications using configurable patterns
JP2004280820A (ja) ビジネスソフトウェアアプリケーションをサポートするフレームワーク
US20100153149A1 (en) Software for model-based configuration constraint generation
JP2004280821A (ja) ソフトウェアビジネスプロセスモデル
CN101373431A (zh) 增强型小组件合成平台
US10572278B2 (en) Smart controls for user interface design and implementation
US11468229B2 (en) Describing changes in a workflow based on changes in structured documents containing workflow metadata
US9164776B2 (en) Dynamic determination of navigation targets in a flexible user interface environment
JP2004252951A (ja) 統合業務ソフトウェアの導入運用支援システム
Paz Beginning ASP. NET MVC 4
Magnani et al. BPDMN: A conservative extension of BPMN with enhanced data representation capabilities

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080001696.X

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2010540966

Country of ref document: JP

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10848396

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10848396

Country of ref document: EP

Kind code of ref document: A1