Detailed Description
In order that those skilled in the art will better understand the present invention, a technical solution in the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in which it is apparent that the described embodiments are only some embodiments of the present invention, not all embodiments. All other embodiments, which can be made by those skilled in the art based on the embodiments of the present invention without making any inventive effort, shall fall within the scope of the present invention.
It should be noted that the terms "first," "second," and the like in the description and the claims of the present invention and the above figures are used for distinguishing between similar objects and not necessarily for describing a particular sequential or chronological order. It is to be understood that the data so used may be interchanged where appropriate such that the embodiments of the invention described herein may be implemented in sequences other than those illustrated or otherwise described herein. Furthermore, the terms "comprises," "comprising," and "having," and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, system, article, or apparatus that comprises a list of steps or elements is not necessarily limited to those steps or elements expressly listed but may include other steps or elements not expressly listed or inherent to such process, method, article, or apparatus.
Fig. 1 is a functional block diagram of an application support platform according to an embodiment of the present invention. As shown in fig. 1, the application support platform adopts a micro-service architecture mode and a modularized encapsulation mode, and is divided into a basic application and a plurality of application components, wherein,
The application component is used for providing specific application functions for the application support platform;
The basic application is used for providing a basic framework for the application supporting platform and providing basic services for various application components;
The application supporting platform adopts a layered design and comprises a data access layer, a business logic layer and a representation layer, wherein,
The data access layer is responsible for interacting with the database storage system;
the business logic layer is responsible for processing specific business logic;
the representation layer is responsible for displaying data and interfaces.
Aiming at the architecture mode of the application support platform, a micro-service architecture mode is adopted, and the application support platform is divided into basic application and application components in the form of micro-service components. Each application component is responsible for specific business functions and logic. The basic application provides a basic framework for the application support platform and provides basic services for various application components. The application support platform also exists in a hierarchical design, i.e., the application support platform is divided into a data access layer, a business logic layer, and a presentation layer. The data access layer is responsible for interacting with a storage system such as a database, the service logic layer is responsible for processing specific service logic, and the presentation layer is responsible for presenting data and interfaces.
The application support platform may also modularly encapsulate the functionality and logic of each application component to facilitate code maintenance and extension. Each application component is automatically updated according to the change of the version number, namely, once the version number is changed, the system is automatically updated to a preset version number without manual participation. The application support platform further comprises a data storage module, wherein the data storage module is used for managing files and data storage in the application support platform.
On the other hand, the application support platform may be modularly encapsulated for the public service. For example, the service system needs a plurality of services, and needs to install a plurality of services, and after the installation is completed, the system is initialized. Containerization techniques, such as Docker, are employed to achieve higher portability and consistency. Each microservice component can be packaged into a container, ensuring deployment consistency in different environments, and providing the ability to flexibly expand. In a micro-service architecture, load balancing is used to distribute requests to different micro-service instances to improve performance and availability. Meanwhile, a fault-tolerant mechanism is introduced, so that the system can tolerate partial faults and continue to provide services when the micro service fails. Best practices for security are implemented, including authentication and authorization, to ensure that only authorized users have access to certain parts of the system. Communication between microservices also requires encryption and authentication to protect confidentiality of data. The code of each microservice is managed using a version control system to ensure that changes are tracked and rolled back to the previous version, helping to cope with the emergency of errors or problems. System performance is continually optimized, improving bottlenecks through performance testing and analysis. At the same time, a feedback loop is established to obtain improvement suggestions from actual user feedback.
The purpose of basic application support is to provide a highly extensible application support platform to solve the common pain point problem in traditional application development. The method aims at establishing a unified and standardized basic framework, so that data interaction among different applications is more convenient, user authority management is finer, and system operation is more stable. The invention can provide a reliable infrastructure for developers of various applications, promote the rapid and efficient development of the applications, and provide powerful support for technical innovation in various fields.
The base application support not only provides the base frame capability, but also provides a series of specific application components that mate and support each other, forming a complete, highly customizable base application support system. The method has the core value of providing a general solution for various application scenes, and can find an applicable solution on the platform no matter enterprise-level application, cloud service, mobile application or Internet of things application, thereby greatly reducing development period and development cost.
Illustratively, the application components include a unified authentication module, a unified flow module, a unified service module, a unified reporting module, a unified portal module, a unified form module, a message center module, and a unified application module. The unified authentication module is used for managing user identity verification and authorization. The unified flow module is used for designing, executing and monitoring the business flow and the workflow. The unified service module is used for managing services and APIs of the application support platform, including creation, reading, updating and deleting of data. The unified report module is used for providing data source configuration, report design and report authorization service corresponding to the report. The unified portal module is used for providing an integrated entry point for a user to access each application component and the basic application of the application supporting platform. The unified form module is used for creating and managing various forms, such as questionnaires, data acquisition forms and reimbursement forms. The message center module is used for managing various messages generated by the application support platform and carrying out configuration management on each user account. The unified application module is used for carrying out application management and application authorization on various applications and carrying out application monitoring.
The basic application comprises a system management module, a system authority module, a unified log module, a unified audit module, a task scheduling module, a personal center module and a function configuration module, wherein the system management module is used for carrying out system configuration on the application supporting platform, providing a system template and monitoring the application supporting platform. The system authority module is used for carrying out user management, organization management, post management and rights management on the application supporting platform. The unified log module is used for recording the activities and the operations of the application supporting platform so as to support fault elimination. And the unified auditing module is used for auditing the authority change, the security event, the user change and the password change of the application supporting platform. The task scheduling module is used for configuring, managing, monitoring and recording task logs of the tasks of the application supporting platform. The personal center module is used for recording basic information, user organization, user authority and user log. The function configuration module is used for carrying out style or layout configuration, map configuration and workbench configuration on the application support platform.
It should be noted that the system authority module is a core of the system and is used for functions such as user registration, login, personal data management, authority control and the like. The modular packaging ensures that the user management functions exist independently and are easy to expand and customize, and simultaneously, the rights of the users and roles are managed to limit the access to the system functions and data. The rights logic can be made configurable and easily expandable by modular packaging. The unified service module is used for managing data of the system, including creation, reading, updating and deleting (CRUD operation) of the data. This module can be independent of business logic, ensuring consistency and security of data. If the system needs to search and filter large amounts of data, the modular packaging can separate the search engine and filtering logic to improve performance and scalability. Files and data storage in the system are managed by a storage and file management module. This may include file upload, store, retrieve and delete functions.
Integration with external systems, third party services or mobile applications is performed through integration and API modules. This module may include API design, document generation, and data format conversion. The unified log module is used for recording system activities and operations to support fault removal and security audit, and can help track problems and maintain the security of the system. And designing, executing and monitoring the business process and the workflow through the process center module. This module may include a workflow designer, a flow execution engine, and task management, and reusable workflow components may be provided through modular packaging to simplify modeling and management of business flows. The unified forms module is used for creating and managing various forms, such as questionnaires, data acquisition forms and reimbursement forms. This module may include form designer, data collection and form storage functions that can help users easily create and customize various form types through modular packaging. The unified service module is used for managing services and APIs inside and outside the system, can provide service catalogues, version control and access control, and can simplify service registration and call through modularized packaging so as to support loose coupling of the system. The unified portal module provides an integrated entry point for users to access various functions and modules of the system, the modules can comprise a dashboard, a navigation menu and a single sign-on, and the user can be allowed to customize the dashboard and the menu through modularized packaging so as to meet the personalized requirements. The unified authentication module is a key component of the application support platform and is used for managing user identity verification and authorization. It ensures security of the system and protection of data while providing a user friendly authentication experience.
The core module is designed initially to provide a modular, maintainable, scalable way to build complex applications and systems in software development. These core modules typically include the most basic, critical functional components in the system. The method has the following advantages:
Modularization, namely dividing the functions of the system into independent modules, wherein each module has specific responsibilities and interfaces. This makes the system easier to understand and maintain, as the function of each module is clearly visible.
Maintainability-the design of the core module encourages good programming practices, including intra-module consistency and code annotation. This helps to reduce maintenance costs and allows the system to operate stably for long periods of time.
Scalability-the core module should be designed to be scalable so that it does not destroy existing core functions when new functions or modules are added in the future. This reduces the evolution costs of the system.
Multiplexing-the functions in the core module can be multiplexed in the whole system, so that the requirement of repeatedly writing the same functions is reduced. This saves time and development resources.
The risk is reduced, and the design of the core module can reduce the risk in the process of system development and maintenance. These modules can provide a reliable basis as they are well designed and tested.
Team cooperation-clear design of core modules and interface specifications facilitate collaborative work between different developers or teams. Each team may focus on developing, testing, and maintaining a particular module without interfering with each other.
Customization-the core module provides a stable foundation, but also allows developers to customize the system according to specific needs. This balance may meet various needs of different users.
Furthermore, the application support platform has an expandable design, which is as follows:
the core function module and the peripheral function module are mutually isolated, so that the core function of the system is more stable and is not easy to be influenced by external environment.
Plug-in expansion, namely providing a plug-in expansion mechanism, enabling a developer to write a custom plug-in to expand the functions of the system, and allowing a user to flexibly add or expand specific functional modules according to service requirements.
Abstract extension interface-to allow external application programs or services to integrate with the system, provide extension points or insertion points, allow developers to add custom code in the system, well-defined APIs and extension points can make it easier for third party developers to extend system functionality. An abstract interface is defined for the extended functional module to reduce the coupling of the extended functional module to the core functional module.
Modular architecture-splitting the system into separate modules or components, each module being responsible for a specific function. The modules communicate using clear interfaces and APIs, enabling them to be developed, tested and maintained relatively independently.
Configurability-allowing a user or administrator to customize the behavior and appearance of the system through a configuration interface. Rich configuration options are provided to meet the needs of different users. The configurability may reduce the difficulty of customization and expansion without modifying the code.
On the other hand, the system stability is optimized by using the supporting platform, and the main expression is as follows:
load balancing, namely dispersing the system load to a plurality of micro-service components by adopting a load balancing mechanism so as to improve the concurrency processing capacity and stability of the system.
Fault-tolerant processing, namely providing a fault-tolerant processing mechanism to capture and process abnormal and error conditions in the system and ensure the stable operation of the system.
Monitoring and logging, namely monitoring and logging the system in real time so as to discover and solve potential problems and faults in time.
Error handling and exception handling implementing a robust error handling mechanism that is capable of capturing and handling potential error and exception conditions, using appropriate logging and monitoring tools to discover and resolve problems in time.
And (3) performance optimization, namely performing performance analysis and optimization on the system, finding out potential performance bottlenecks, improving the performance bottlenecks, and improving the response speed and throughput of the system by using methods such as caching technology, asynchronous processing, concurrency control and the like.
The fault-tolerant design is to implement a fault-tolerant mechanism in consideration of the faults and unavailability of the system components, ensure that the system can still normally operate when part of the components are faulty, and ensure the reliability and the restorability of the data by using redundancy and backup strategies.
Security and protection measures, including access control, authentication and authorization mechanisms, protect the system from malicious attacks and data leakage, periodically perform security assessment and vulnerability scanning, and repair potential security vulnerabilities.
On the other hand, the maintainability of the application support platform is improved, and the maintenance performance is mainly shown as follows:
The modularized design ensures that the functions and logic of each micro-service component are clear and definite through the modularized design, is convenient for the maintenance and updating of codes, designs and realizes reusable codes, and ensures that maintenance personnel can easily understand and modify the codes.
And writing clear and detailed documents including system architecture, module functions, interface descriptions and the like so that maintenance personnel understand the working principle of the system.
And (3) testing and verifying, namely performing comprehensive testing and verifying, and ensuring the correctness and stability of the system.
Periodic maintenance and updating, namely, making a periodic maintenance plan, including installation of system patches and updates, optimization and cleaning of databases, management of log files and the like, and periodically checking and updating third party libraries and components on which the system depends, so as to ensure that the system uses the latest, safe and stable version.
Training and knowledge sharing, namely providing training and knowledge sharing opportunities, so that maintenance personnel can know the working principle and maintenance flow of the system, establish a knowledge base or internal documents, and record and share maintenance experience and best practice.
Further, in terms of the application support platform's ability to continue to improve, it appears as follows:
Architecture assessment-the system architecture is assessed periodically to find potential problems and bottlenecks and to take corresponding optimization measures.
And (3) upgrading and improving the system according to the development of the technology and the change of the service requirement so as to meet the continuously-changing service requirement and the technology development trend.
Agile development process, i.e. adopting agile development method such as Scrum or Kanban to respond to the change of demand more quickly, dividing development task into small and manageable parts, carrying out iterative development, and delivering new functions and improvements periodically.
Key Performance Indicators (KPIs) are tracked by determining key performance indicators, such as response time, user satisfaction, etc., to measure system performance, set targets and monitor KPIs periodically, and identify problems in time and take action to improve performance.
In terms of broad adaptability and safety of the system, the following is expressed:
flexible integration means-flexible integration means are provided to facilitate integration and interaction with other systems. For example, communication with other systems may be through API interfaces, message queues, and the like.
Multi-platform compatibility-ensuring that the application support platform can run on different operating systems (e.g., windows, macOS, linux) and accommodate different hardware configurations.
The user interface and interaction design is optimized to accommodate the screen size and resolution of different devices.
Multilingual support-providing multilingual interfaces and content to meet global user needs. Internationalization and localization are supported, including date, time, currency, etc. format adaptations.
Flexible configuration and customization, namely flexible configuration options are provided, so that a user can perform personalized setting according to own requirements and preferences.
The plug-in and extension mechanisms are supported so that users can customize the capabilities of the functionality and extension platform according to their own needs.
Identity authentication and rights control-providing an identity authentication and rights control mechanism to ensure that only legitimate users can access and use system resources. The method can be realized by adopting schemes such as multi-factor identity authentication, role authority control and the like.
And data encryption and privacy protection, namely encrypting, storing and transmitting sensitive data, and protecting the data safety and privacy of users. The method can be realized by adopting symmetric encryption, asymmetric encryption and other technologies.
According to the technical scheme provided by the embodiment of the invention, the functions and the components of the application support platform are divided into independent modules by introducing the dynamic modularized architecture, so that the modules can be dynamically loaded and unloaded according to the requirements. And a self-adaptive resource management mechanism is designed, system resources are dynamically allocated and optimized according to the current load and the current demand, and the performance and the expandability of the system are improved. And the distributed deployment architecture is adopted, the functions and tasks of the application support platform are distributed to a plurality of nodes for parallel processing, and the processing capacity and the expandability of the system are improved. An intelligent decision and optimization engine is introduced, and various decisions and optimizations of an application support platform are automatically and intelligently processed by utilizing a machine learning and optimization algorithm. And designing an expandability testing and evaluating framework, and comprehensively testing and evaluating the expandability of the application supporting platform by simulating large-scale users and loads so as to improve the architecture flexibility and expandability of the application supporting platform.
Fig. 2 is a flowchart of an application management method provided by the present invention. The method is applied to an application support platform, the application support platform is divided into a basic application and a plurality of application components, and the method comprises the following steps:
S101, providing specific application functions for the application support platform through the application component.
S102, providing a basic framework for the application support platform through the basic application, and providing basic services for various application components.
The application supporting platform is designed in a layered mode, and comprises a data access layer, a service logic layer and a representation layer, wherein the method further comprises the steps of interacting with a database storage system through the data access layer, processing specific service logic through the service logic layer, and displaying data and interfaces through the representation layer.
According to the technical scheme provided by the embodiment of the invention, the functions and the components of the application support platform are divided into independent modules by introducing the dynamic modularized architecture, so that the modules can be dynamically loaded and unloaded according to the requirements. And a self-adaptive resource management mechanism is designed, system resources are dynamically allocated and optimized according to the current load and the current demand, and the performance and the expandability of the system are improved. And the distributed deployment architecture is adopted, the functions and tasks of the application support platform are distributed to a plurality of nodes for parallel processing, and the processing capacity and the expandability of the system are improved. An intelligent decision and optimization engine is introduced, and various decisions and optimizations of an application support platform are automatically and intelligently processed by utilizing a machine learning and optimization algorithm. And designing an expandability testing and evaluating framework, and comprehensively testing and evaluating the expandability of the application supporting platform by simulating large-scale users and loads so as to improve the architecture flexibility and expandability of the application supporting platform.
Fig. 3 shows a schematic diagram of the structure of an electronic device 10 that may be used to implement an embodiment of the invention. Electronic devices are intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. Electronic equipment may also represent various forms of mobile devices, such as personal digital processing, cellular telephones, smartphones, wearable devices (e.g., helmets, glasses, watches, etc.), and other similar computing devices. The components shown herein, their connections and relationships, and their functions, are meant to be exemplary only, and are not meant to limit implementations of the inventions described and/or claimed herein.
As shown in fig. 3, the electronic device 10 includes at least one processor 11, and a memory, such as a Read Only Memory (ROM) 12, a Random Access Memory (RAM) 13, etc., communicatively connected to the at least one processor 11, in which the memory stores a computer program executable by the at least one processor, and the processor 11 may perform various appropriate actions and processes according to the computer program stored in the Read Only Memory (ROM) 12 or the computer program loaded from the storage unit 18 into the Random Access Memory (RAM) 13. In the RAM 13, various programs and data required for the operation of the electronic device 10 may also be stored. The processor 11, the ROM 12 and the RAM 13 are connected to each other via a bus 14. An input/output (I/O) interface 15 is also connected to bus 14.
Various components in the electronic device 10 are connected to the I/O interface 15, including an input unit 16, such as a keyboard, mouse, etc., an output unit 17, such as various types of displays, speakers, etc., a storage unit 18, such as a magnetic disk, optical disk, etc., and a communication unit 19, such as a network card, modem, wireless communication transceiver, etc. The communication unit 19 allows the electronic device 10 to exchange information/data with other devices via a computer network, such as the internet, and/or various telecommunication networks.
The processor 11 may be a variety of general and/or special purpose processing components having processing and computing capabilities. Some examples of processor 11 include, but are not limited to, a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), various specialized Artificial Intelligence (AI) computing chips, various processors running machine learning model algorithms, digital Signal Processors (DSPs), and any suitable processor, controller, microcontroller, etc. The processor 11 performs the respective methods and processes described above, such as an application management method.
In some embodiments, the application management method may be implemented as a computer program tangibly embodied on a computer-readable storage medium, such as the storage unit 18. In some embodiments, part or all of the computer program may be loaded and/or installed onto the electronic device 10 via the ROM 12 and/or the communication unit 19. When the computer program is loaded into the RAM 13 and executed by the processor 11, one or more steps of the application management method described above may be performed. Alternatively, in other embodiments, the processor 11 may be configured to perform the application management method in any other suitable way (e.g., by means of firmware).
Various implementations of the systems and techniques described here above may be implemented in digital electronic circuitry, integrated circuit systems, field Programmable Gate Arrays (FPGAs), application Specific Integrated Circuits (ASICs), application Specific Standard Products (ASSPs), systems On Chip (SOCs), load programmable logic devices (CPLDs), computer hardware, firmware, software, and/or combinations thereof. These various embodiments may include being implemented in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be a special or general purpose programmable processor, operable to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
A computer program for carrying out methods of the present invention may be written in any combination of one or more programming languages. These computer programs may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus, such that the computer programs, when executed by the processor, cause the functions/acts specified in the flowchart and/or block diagram block or blocks to be implemented. The computer program may execute entirely on the machine, partly on the machine, as a stand-alone software package, partly on the machine and partly on a remote machine or entirely on the remote machine or server.
In the context of the present invention, a computer-readable storage medium may be a tangible medium that can contain, or store a computer program for use by or in connection with an instruction execution system, apparatus, or device. The computer readable storage medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. Alternatively, the computer readable storage medium may be a machine readable signal medium. More specific examples of a machine-readable storage medium would include an electrical connection based on one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
To provide for interaction with a user, the systems and techniques described here can be implemented on an electronic device having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the electronic device. Other kinds of devices may also be used to provide for interaction with a user, for example, feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback), and input from the user may be received in any form, including acoustic input, speech input, or tactile input.
The systems and techniques described here can be implemented in a computing system that includes a background component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a user computer having a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such background, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a Local Area Network (LAN), a Wide Area Network (WAN), a blockchain network, and the Internet.
The computing system may include clients and servers. The client and server are typically remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. The server can be a cloud server, also called a cloud computing server or a cloud host, and is a host product in a cloud computing service system, so that the defects of high management difficulty and weak service expansibility in the traditional physical hosts and VPS service are overcome.
It should be appreciated that various forms of the flows shown above may be used to reorder, add, or delete steps. For example, the steps described in the present invention may be performed in parallel, sequentially, or in a different order, so long as the desired results of the technical solution of the present invention are achieved, and the present invention is not limited herein.
The above embodiments do not limit the scope of the present invention. It will be apparent to those skilled in the art that various modifications, combinations, sub-combinations and alternatives are possible, depending on design requirements and other factors. Any modifications, equivalent substitutions and improvements made within the spirit and principles of the present invention should be included in the scope of the present invention.