CN117692318A - Background multi-application customizable SaaS configuration method - Google Patents

Background multi-application customizable SaaS configuration method Download PDF

Info

Publication number
CN117692318A
CN117692318A CN202311777608.0A CN202311777608A CN117692318A CN 117692318 A CN117692318 A CN 117692318A CN 202311777608 A CN202311777608 A CN 202311777608A CN 117692318 A CN117692318 A CN 117692318A
Authority
CN
China
Prior art keywords
configuration
parameters
basic
application
modules
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
Application number
CN202311777608.0A
Other languages
Chinese (zh)
Inventor
于志杰
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.)
Beijing Bailong Mayun Technology Co ltd
Original Assignee
Beijing Bailong Mayun Technology Co ltd
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 Beijing Bailong Mayun Technology Co ltd filed Critical Beijing Bailong Mayun Technology Co ltd
Priority to CN202311777608.0A priority Critical patent/CN117692318A/en
Publication of CN117692318A publication Critical patent/CN117692318A/en
Pending legal-status Critical Current

Links

Abstract

The invention relates to a background multi-application customizable SaaS configuration method, in particular to the background multi-application customization configuration field, which defines basic database configuration, basic server configuration, basic security configuration, basic network configuration, basic storage configuration and basic log configuration of different application systems, divides the application system into a plurality of independent modules according to single responsibility and components of the application system, classifies parameters and configuration items according to the modules and functions to which the modules belong, the importance and the influence scope of the modules and the configuration items, the security level of the modules and the data types of the modules and defines parameters and configuration options, freely combines resource templates into an overall architecture according to the functional requirements of different applications, and establishes an efficient and reliable application hosting system by utilizing the parameters corresponding to the functional requirements of the applications in the architecture and the behavior modes and styles in the configuration control modules.

Description

Background multi-application customizable SaaS configuration method
Technical Field
The invention relates to the field of background multi-application customization configuration, in particular to a background multi-application customizable SaaS configuration method.
Background
Along with the increase of the enterprise scale and the improvement of the business complexity, the enterprise faces many challenges and opportunities in the process of the scale increase and the improvement of the business complexity, and personalized function expansion and integration are realized, so that the enterprise can quickly build, deploy and maintain a plurality of application programs.
In the conventional software development and deployment modes, enterprises often need to independently develop, configure and deploy for each application program, and the modes have a plurality of problems including repeated labor, resource waste and integration among application programs, so that development of a background multi-application customizable SaaS configuration method is very necessary.
Disclosure of Invention
Aiming at the technical problems in the prior art, the invention provides a background multi-application customizable SaaS configuration method, which solves the problems in the background art.
The technical scheme for solving the technical problems is as follows: a background multi-application customizable SaaS configuration method comprises the following steps:
s101: defining basic database configuration, basic server configuration, basic security configuration, basic network configuration, basic storage configuration and basic log configuration of different application systems;
s102: dividing the application system into a plurality of independent modules according to single responsibility and components of the application system, and identifying the dependency relationship between the modules by analyzing and recording the calling sequence and the time relationship between the modules through time sequence;
s103: classifying parameters and configuration items according to the modules and functions to which the parameters and configuration items belong, the environment to which the parameters and configuration items are applicable, the importance and influence scope of the parameters and the configuration items, the security level of the parameters and the configuration items and the data types of the parameters and the configuration items;
s104: freely combining the resource templates according to the functional requirements of different applications to form an overall framework, and configuring the behavior mode and the style in the control module by utilizing parameters corresponding to the functional requirements of the applications in the framework;
s105: establishing an efficient and reliable application hosting system, wherein the system comprises application data isolation and resource allocation supporting multiple tenants;
in a preferred embodiment, in S101, a basic database configuration is defined, including a database type, a hostname, a port, a user name, and a password, for database deployment and management of different application systems, a basic server configuration is defined, including an operating system type, a memory, a CPU, and a disk capacity, for server deployment and management of different application systems, a basic security configuration is defined, including access control, authentication, and an encryption method, for security management of different application systems, wherein the access control performs authorized access to system resources, the configuration of access control is performed through a user, a role, and a permission, the authentication performs validation of the user and the role identity, the encryption method performs protection of data through a transmission security protocol and data encryption and decryption, a basic network configuration is defined, including an IP address, a DNS, and a subnet mask, a network management for different application systems, a basic storage configuration is defined, a storage log management for different application systems, a basic log configuration is defined, including a log level, a path, a log format, a path, a port, a temporary mail configuration, a mail configuration, and a temporary mail configuration are allocated to different application systems, and a user name is defined, and a temporary mail configuration is used for different application systems.
In a preferred embodiment, in S102, the universal resources and configuration templates of different application systems of the temporary data center are invoked, and the application system is divided into a plurality of independent modules according to a single responsibility and components of the application system, wherein each module has a single responsibility and is only responsible for a single explicit function and service, the basic database configuration, the basic server configuration, the basic security configuration, the basic network configuration, the basic storage configuration and the basic log configuration are split into different modules, the invoking sequence and the time relationship between the modules are recorded through time sequence analysis, the dependency relationship between the modules is identified, including direct dependency and indirect dependency, wherein the direct dependency refers to the module directly invoking the function and the service of another module, the indirect dependency refers to the module indirectly invoking the function and the service of another module, the invoking interface is defined for the direct dependency, the interaction mode and the communication protocol for acquiring data are defined for the indirect dependency, the invoking path and the communication protocol are defined for the indirect dependency, each module is packaged into an independent deployable and manageable unit, and the API is provided for the invoking interface and the other integrated module.
In a preferred embodiment, in S103, the classifying parameters and configuration items according to the modules and functions to which they belong includes database connection parameters, logging configuration, and caching policy, classifying parameters and configuration items according to the environments to which they apply, including development environments, test environments, and production environments, classifying parameters and configuration items according to their importance and scope of influence, including necessary parameters, optional parameters, global configuration items, and local configuration items, classifying parameters and configuration items according to their security levels, including sensitive configuration items and non-sensitive configuration items, classifying parameters and configuration items according to their data types, including string types, integer types, boolean types, and date-time types, classifying parameters and configuration items according to naming specifications, where the naming specifications are that each of parameters and configuration is marked with an asterisk about a name variable and in the upper right corner, for dividing the name variable and improving its readability.
In a preferred embodiment, in S104, according to the functional requirements of different applications, including a user interface, data processing logic, and a service interface, the resource templates are freely combined to form an overall architecture, the parameters corresponding to the functional requirements of the applications in the architecture and the behavior modes and styles in the configuration control module are utilized, the resource templates are selected as the basis by utilizing the client requirements including enterprise marks, characteristics, brand images, the interface styles, the replacement icons, and the resource templates for adjusting the layout are personalized, the personalized customization utilizes plug-in to dynamically add and delete the functional templates of the resource templates, adds new API interfaces through restful API, and the scalability is improved by utilizing the basic storage configuration defined in S101.
In a preferred embodiment, in the step S105, an efficient and reliable application hosting system is established, including supporting multi-tenant application data isolation and resource allocation, where the data isolation calls the basic storage configuration of the different application systems defined in the step S101 to store data of different tenants separately, and each tenant can only access the data of the tenant itself in the corresponding application system, where the resource allocation includes computing resources, storage resources and network bandwidth resources, and isolates the data and application programs of different tenants from each other, so as to prevent security problems of the individual tenants from affecting other tenants, and the application hosting system is used to provide a combined management function for creating, editing and deleting tenant information by an administrator, and manage access rights and resource allocation of each tenant.
The beneficial effects of the invention are as follows: the user can customize and configure multiple application environments according to own needs, personalized needs of different service scenes are met, repeated labor and resource waste are reduced through unified platform and modularized configuration design, application development and deployment efficiency is improved, new application program modules can be added and integrated at any time, enterprises can flexibly expand according to service development needs, a set of unified management interfaces and tools are provided, the enterprises can monitor, manage and maintain deployed application programs conveniently, a stable application hosting platform is established, reliable application service environments are provided for the users, and stable operation of the services is guaranteed.
Drawings
FIG. 1 is a flow chart of the method of the present invention;
Detailed Description
The following description of the embodiments of the present application will be made clearly and fully with reference to the accompanying drawings, in which it is evident that the embodiments described are only some, but not all, of the embodiments of the present application. All other embodiments, which can be made by those skilled in the art based on the embodiments herein without making any inventive effort, are intended to be within the scope of the present application.
In the description of the present application, the terms "first," "second," and the like are used for descriptive purposes only and are not to be construed as indicating or implying relative importance or implicitly indicating the number of technical features indicated. Thus, a feature defining "a first" or "a second" may explicitly or implicitly include one or more of the described features. In the description of the present application, the meaning of "a plurality" is two or more, unless explicitly defined otherwise.
In the description of the present application, the term "for example" is used to mean "serving as an example, instance, or illustration. Any embodiment described herein as "for example" is not necessarily to be construed as preferred or advantageous over other embodiments. The following description is presented to enable any person skilled in the art to make and use the invention. In the following description, details are set forth for purposes of explanation. It will be apparent to one of ordinary skill in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and processes have not been described in detail so as not to obscure the description of the invention with unnecessary detail. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
The embodiment provides a background multi-application customizable SaaS configuration method as shown in fig. 1, which specifically comprises the following steps:
s101: defining basic database configuration, basic server configuration, basic security configuration, basic network configuration, basic storage configuration and basic log configuration of different application systems;
further, defining a basic database configuration, including database types, hostnames, ports, user names, passwords, for database deployment and management of different application systems, defining a basic server configuration, including an operating system type, a memory, a CPU, a disk capacity, for server deployment and management of different application systems, defining a basic security configuration, including access control, authentication, encryption methods, for security management of different application systems, wherein the access control performs authorized access to system resources, the configuration of access control is performed through users, roles and authorities, the configuration of access control is performed according to different application systems, the authentication confirms the user and role identities according to different application systems, wherein the encryption methods protect data through a transmission security protocol and data encryption decryption, define a basic network configuration, including an IP address, a DNS, a subnet mask, for network management of different application systems, define a basic storage configuration, including a file system, a disk size, a backup policy, for storage management of different application systems, define a basic log configuration, including log levels, logs and paths, for management of different application systems, define a TP basic configuration, including a port, a service mail configuration, a user name, a temporary mail configuration, and a temporary mail configuration to different application systems.
S102: dividing the application system into a plurality of independent modules according to single responsibility and components of the application system, and identifying the dependency relationship between the modules by analyzing and recording the calling sequence and the time relationship between the modules through time sequence;
further, the general resources and configuration templates of different application systems of the temporary data center are called, the application system is divided into a plurality of independent modules according to single responsibility and components of the application system, each module has single responsibility and is only responsible for single specific functions and services, the basic database configuration, the basic server configuration, the basic security configuration, the basic network configuration, the basic storage configuration and the basic log configuration are divided into different modules, the calling sequence and the time relation among the modules are recorded through time sequence analysis, the dependency relation among the modules is used for identifying, including direct dependency and indirect dependency, wherein the direct dependency refers to the modules directly calling and acquiring functions and services of another module, the indirect dependency refers to the modules indirectly calling and acquiring functions and services of another module, the calling interface is defined for the direct dependency, the interaction mode and the communication protocol are used for acquiring data, the interaction mode comprises a data format and a data transmission mode, the calling channel is defined for the indirect dependency relation, the data calling path and the communication protocol are used for acquiring independent deployable and manageable units and providing API interfaces, and calling and integrating other modules.
S103: classifying parameters and configuration items according to the modules and functions to which the parameters and configuration items belong, the environment to which the parameters and configuration items are applicable, the importance and influence scope of the parameters and the configuration items, the security level of the parameters and the configuration items and the data types of the parameters and the configuration items;
further, the parameters and configuration items are classified according to the modules and functions to which the parameters and configuration items belong, including database connection parameters, log record configuration and cache strategies, the parameters and configuration items are classified according to the environments to which the parameters and configuration items are applicable, including development environments, test environments and production environments, the parameters and configuration items are classified according to importance and influence ranges of the parameters and configuration items, including necessary parameters, selectable parameters, global configuration items and local configuration items, the parameters and configuration items are classified according to the security levels of the parameters and configuration items, including sensitive configuration items and non-sensitive configuration items, the parameters and configuration items are classified according to the data types of the parameters and configuration items, including character string types, integer types, boolean types and date and time types, and the parameters and configuration items are classified according to naming specifications, wherein the naming specifications are that each related to name variables are marked by star numbers and in the upper right corner, and are used for dividing the name variables and improving the readability of the name variables.
S104: freely combining the resource templates according to the functional requirements of different applications to form an overall framework, and configuring the behavior mode and the style in the control module by utilizing parameters corresponding to the functional requirements of the applications in the framework;
further, according to the functional requirements of different applications, including a user interface, data processing logic and a service interface, the resource templates are freely combined to form an overall architecture, the parameters corresponding to the functional requirements of the applications in the architecture and the behavior mode and style in the configuration control module are utilized, the resource templates are selected as the basis by utilizing the client requirements including enterprise marks, characteristics and brand images, the interface styles, the replacement icons and the resource templates for adjusting the layout are customized individually, the function templates are dynamically added and deleted by utilizing plug-in, a new API interface is added by utilizing RESTful AP I, and the expandability is improved by utilizing the basic storage configuration defined in S101.
S105: establishing an efficient and reliable application hosting system, wherein the system comprises application data isolation and resource allocation supporting multiple tenants;
further, an efficient and reliable application hosting system is established, which comprises application data isolation and resource allocation supporting multiple tenants, wherein the data isolation calls the basic storage configuration of different application systems defined in S101 to store data of different tenants separately, each tenant can only access data of the tenant itself in the corresponding application system, the resource allocation comprises computing resources, storage resources and network bandwidth resources, the data and application programs among different tenants are isolated from each other, the security problem of a single tenant is prevented from affecting other tenants, the application hosting system is utilized to provide a combined management function, and the manager is used for creating, editing and deleting tenant information and managing access authority and resource allocation of each tenant.
In the foregoing embodiments, the descriptions of the embodiments are focused on, and for those portions of one embodiment that are not described in detail, reference may be made to the related descriptions of other embodiments.
It will be appreciated by those skilled in the art that embodiments of the present invention may be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flowchart illustrations and/or block diagrams, and combinations of flows and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
While preferred embodiments of the present invention have been described, additional variations and modifications in those embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. It is therefore intended that the following claims be interpreted as including the preferred embodiments and all such alterations and modifications as fall within the scope of the invention.
It will be apparent to those skilled in the art that various modifications and variations can be made to the present invention without departing from the spirit or scope of the invention. Thus, it is intended that the present invention also include such modifications and alterations insofar as they come within the scope of the appended claims or the equivalents thereof.

Claims (8)

1. A background multi-application customizable SaaS configuration method is characterized by comprising the following steps:
s101: defining basic database configuration, basic server configuration, basic security configuration, basic network configuration, basic storage configuration and basic log configuration of different application systems;
s102: dividing the application system into a plurality of independent modules according to single responsibility and components of the application system, and identifying the dependency relationship between the modules by analyzing and recording the calling sequence and the time relationship between the modules through time sequence;
s103: classifying parameters and configuration items according to the modules and functions to which the parameters and configuration items belong, the environment to which the parameters and configuration items are applicable, the importance and influence scope of the parameters and the configuration items, the security level of the parameters and the configuration items and the data types of the parameters and the configuration items;
s104: freely combining the resource templates according to the functional requirements of different applications to form an overall framework, and configuring the behavior mode and the style in the control module by utilizing parameters corresponding to the functional requirements of the applications in the framework;
s105: an efficient and reliable application hosting architecture is established, including supporting multi-tenant application data isolation and resource allocation.
2. The background multi-application customizable SaaS recited in claim 1, wherein: in the step S101, defining basic database configuration, including database types, host names, ports, user names and passwords, and being used for the database deployment and management of different application systems;
defining basic server configuration including operating system type, memory, CPU and disk capacity for server deployment and management of different application systems;
defining basic security configuration, including access control, authentication and encryption methods, for security management of different application systems;
defining basic network configuration including IP address, DNS and subnet mask for network management of different application systems;
defining basic storage configuration including file system, disk size and backup strategy for storage management of different application systems;
defining basic log configuration, including log level, log format and log path, for log management of different application systems;
defining basic mail configuration, including SMTP server, port, user name and cipher, for mail transmission of different application systems, and transmitting the universal resource and configuration template of different application systems to temporary data center.
3. The background multi-application customizable SaaS recited in claim 2, wherein: defining access control in basic security configuration to authorize access to system resources, configuring access control by users, roles and authorities, distributing different authorities to different users and roles according to different application systems, wherein authentication confirms user and role identities, and an encryption method protects data through a transmission security protocol and data encryption and decryption.
4. The background multi-application customizable SaaS recited in claim 1, wherein: in S102, the general resources and configuration templates of different application systems of the temporary data center are invoked, and the application system is divided into a plurality of independent modules according to a single responsibility and components of the application system, wherein each module has a single responsibility and is only responsible for a single and definite function and service, and the basic database configuration, the basic server configuration, the basic security configuration, the basic network configuration, the basic storage configuration and the basic log configuration are split into different modules, and the invoking sequence and the time relationship between the modules are recorded through time sequence analysis, so as to identify the dependency relationship between the modules.
5. The method for configuring a background multi-application customizable SaaS recited in claim 4, wherein: the dependency relationship comprises direct dependency and indirect dependency, wherein the direct dependency refers to that a module directly calls and acquires the function and service of another module, the indirect dependency refers to that the module acquires the function and service of another module through indirect call of other modules, an interface is defined for the direct dependency, an interaction mode and a communication protocol are used for acquiring data, the interaction mode comprises a data format and a data transmission mode, an interface channel is defined for the indirect dependency, the interface channel is used for acquiring a data call path and the communication protocol, each module is packaged into an independent unit capable of being deployed and managed, and an API interface is provided for calling and integrating of other modules.
6. The background multi-application customizable SaaS recited in claim 1, wherein: in the step S103, the parameters and the configuration items are classified according to the modules and the functions to which the parameters and the configuration items belong, wherein the parameters and the configuration items comprise database connection parameters, log record configuration and cache strategies;
classifying parameters and configuration items according to the applicable environments, including development environments, test environments and production environments;
classifying parameters and configuration items according to importance and influence scope, wherein the parameters and the configuration items comprise necessary parameters, optional parameters, global configuration items and local configuration items;
classifying parameters and configuration items according to the security level of the parameters and the configuration items, wherein the parameters and the configuration items comprise sensitive configuration items and non-sensitive configuration items;
classifying parameters and configuration items according to the data types, including character string types, integer types, boolean types and date and time types;
the parameters and configuration items are classified according to a naming convention that each of the parameters and configurations are marked with an asterisk and in the upper right hand corner with respect to the name variable for partitioning the name variable and improving its readability.
7. The background multi-application customizable SaaS recited in claim 1, wherein: in S104, according to the functional requirements of different applications, including user interfaces, data processing logic, and service interfaces, the resource templates are freely combined to form an overall architecture, the parameters corresponding to the functional requirements of the applications in the architecture and the behavior and style in the configuration control module are utilized, the resource templates are selected as the basis by utilizing the client requirements including enterprise marks, characteristics, brand images, the interface styles, icon replacement and layout adjustment are customized individually, the function templates are dynamically added and deleted by plug-in customization, a new API interface is added by means of restful API, and the expandability is improved by utilizing the basic storage configuration defined in S101.
8. The background multi-application customizable SaaS recited in claim 1, wherein: in the step S105, an efficient and reliable application hosting system is established, including supporting multi-tenant application data isolation and resource allocation, where the data isolation calls the basic storage configuration of different application systems defined in step S101 to store data of different tenants separately, and each tenant can only access data of its own corresponding application system, where the resource allocation includes computing resources, storage resources and network bandwidth resources, and isolates data and application programs of different tenants from each other, so as to prevent security problems of a single tenant from affecting other tenants, and the application hosting system is used to provide a combined management function for an administrator to create, edit and delete tenant information, and manage access rights and resource allocation of each tenant.
CN202311777608.0A 2023-12-22 2023-12-22 Background multi-application customizable SaaS configuration method Pending CN117692318A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311777608.0A CN117692318A (en) 2023-12-22 2023-12-22 Background multi-application customizable SaaS configuration method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311777608.0A CN117692318A (en) 2023-12-22 2023-12-22 Background multi-application customizable SaaS configuration method

Publications (1)

Publication Number Publication Date
CN117692318A true CN117692318A (en) 2024-03-12

Family

ID=90136919

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311777608.0A Pending CN117692318A (en) 2023-12-22 2023-12-22 Background multi-application customizable SaaS configuration method

Country Status (1)

Country Link
CN (1) CN117692318A (en)

Similar Documents

Publication Publication Date Title
US10601875B2 (en) Automated multi-level federation and enforcement of information management policies in a device network
US20200334023A1 (en) Self-moving operating system installation in cloud-based network
JP6718530B2 (en) Image analysis and management
CN109194506B (en) Block chain network deployment method, platform and computer storage medium
EP2880837B1 (en) Automated multi-level federation and enforcement of information management policies in a device network
RU2541935C2 (en) System and method for deploying preconfigured software
WO2022015855A1 (en) Cloud data fake platform and saas orchestration
US11062041B2 (en) Scrubbing log files using scrubbing engines
US20130091183A1 (en) Volume Management
EP3646549A1 (en) Firewall configuration manager
US10542048B2 (en) Security compliance framework usage
US11812273B2 (en) Managing network resource permissions for applications using an application catalog
CN114650170B (en) Cross-cluster resource management method, device, equipment and storage medium
US11146560B1 (en) Distributed governance of computing resources
US20210360038A1 (en) Machine policy configuration for managed devices
CN111935195B (en) Distributed system management method, device, storage medium and distributed management system
JP2007525728A (en) Hierarchical service management system
CN114586032B (en) Secure workload configuration
CN117692318A (en) Background multi-application customizable SaaS configuration method
Vijaya Bharati et al. Data storage security in cloud using a functional encryption algorithm
CN112015524A (en) Workflow deployment method, equipment, system and storage medium
US11934817B2 (en) Systems and methods for deploying federated infrastructure as code
Buchanan et al. Azure Arc-Enabled Kubernetes: Getting Started
WO2022087536A1 (en) Systems and methods for deploying federated infrastructure as code
CN117519834A (en) Method and system for realizing user-defined function of CSI plug-in

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination