Disclosure of Invention
It is an object of the present invention to provide a new solution to at least one of the above problems.
According to a first aspect of the present invention, there is provided a method for designing a customer relationship management system, including:
determining an industry model of the industry to which the current tenant belongs in a domain model prestored in the PaaS platform;
configuring a customized model corresponding to the current tenant in the field model by using metadata based on the PaaS platform and an industry model of the industry to which the current tenant belongs;
generating a customer relationship management system corresponding to the current tenant according to the customized model corresponding to the current tenant and an industry model of the industry to which the current tenant belongs;
wherein, the design method further comprises: and selecting at least part of the customized model corresponding to the current tenant to be added into an industry model of the industry to which the current tenant belongs.
Optionally, the configuring, by using metadata, the customized model corresponding to the current tenant includes:
determining the demand of the current tenant;
configuring a domain entity and a business logic according to the requirements;
and generating a customized model corresponding to the current tenant based on the PaaS platform by using metadata according to the field entity and the service logic.
Optionally, the design method further includes:
configuring a customized model corresponding to at least two tenants belonging to the same industry by using metadata based on the PaaS platform;
and abstracting an industry model of the industry according to the customized models corresponding to the at least two tenants.
According to a second aspect of the present invention, there is provided a designing apparatus of a customer relationship management system, comprising:
the determining module is used for determining an industry model of the industry to which the current tenant belongs in the domain models pre-stored in the PaaS platform;
the first configuration module is used for configuring a customized model corresponding to the current tenant in the field model by using metadata based on the PaaS platform and an industry model of the industry to which the current tenant belongs;
the generation module is used for generating a customer relationship management system corresponding to the current tenant according to the customized model corresponding to the current tenant and the industry model of the industry to which the current tenant belongs;
and the adding module is used for selecting at least part of the customized models corresponding to the current tenant to be added into the industry model of the industry to which the current tenant belongs.
Optionally, the first configuration module includes:
the demand determining unit is used for determining the demand of the current tenant;
the configuration unit is used for configuring the domain entity and the business logic according to the requirement;
and the generating unit is used for generating a customized model corresponding to the current tenant based on the PaaS platform by using metadata according to the field entity and the service logic.
Optionally, the designing apparatus further includes:
the second configuration module is used for configuring customized models corresponding to at least two tenants belonging to the same industry by using metadata based on the PaaS platform;
and the abstraction module is used for abstracting the industry model of the industry according to the customized models corresponding to the at least two tenants.
According to a third aspect of the present invention, there is provided an electronic device comprising the designing apparatus according to the second aspect of the present invention.
According to a fourth aspect of the present invention, there is provided an electronic device, comprising a processor and a memory, the memory being configured to store instructions for controlling the processor to operate so as to perform the design method according to the first aspect of the present invention.
The method has the advantages that the PaaS platform accumulates a plurality of field models, an abstract travel industry model template library and a corresponding metadata library to form a PaaS platform custom model, and the PaaS platform can quickly apply the accumulated CRM field experience to a new industry model through the custom model, so that the development efficiency of a customer relationship management system is greatly improved, and virtuous cycle from concrete implementation, model abstraction and field accumulation is formed.
Other features of the present invention and advantages thereof will become apparent from the following detailed description of exemplary embodiments thereof, which proceeds with reference to the accompanying drawings.
Detailed Description
Various exemplary embodiments of the present invention will now be described in detail with reference to the accompanying drawings. It should be noted that: the relative arrangement of the components and steps, the numerical expressions and numerical values set forth in these embodiments do not limit the scope of the present invention unless specifically stated otherwise.
The following description of at least one exemplary embodiment is merely illustrative in nature and is in no way intended to limit the invention, its application, or uses.
Techniques, methods, and apparatus known to those of ordinary skill in the relevant art may not be discussed in detail but are intended to be part of the specification where appropriate.
In all examples shown and discussed herein, any particular value should be construed as merely illustrative, and not limiting. Thus, other examples of the exemplary embodiments may have different values.
It should be noted that: like reference numbers and letters refer to like items in the following figures, and thus, once an item is defined in one figure, further discussion thereof is not required in subsequent figures.
Fig. 1 is a flowchart of an embodiment of a method for designing a customer relationship management system according to the present invention.
According to fig. 1, the design method comprises the following steps:
step S110, determining an industry model of the industry to which the current tenant belongs in the domain models pre-stored in the PaaS platform.
A domain model is a visual representation of concept classes within a domain or objects in the real world. Also known as conceptual models, domain object models, and analytical object models. It focuses on analyzing the problem domain itself, exploring important business domain concepts, and establishing relationships between the business domain concepts.
PaaS is an abbreviation for Platform-as-a-Service, meaning Platform as a Service. A business model that provides a server platform as a service. Services provided by programs through a network are referred to as saas (software as a service), and a server platform or a development environment corresponding to the cloud computing era is provided as a paas (platform as a service).
The PaaS can integrate various existing business capabilities, specifically can be classified into an application server, a business capability access, a business engine and a business opening platform, measures and calculates the basic service capability downwards according to the business capability requirement, calls hardware resources through an API provided by the IaaS, provides business dispatching center services upwards, monitors various resources of the platform in real time, and opens the resources to SaaS users through the API.
For PaaS platforms, Gartner divides them into two categories, one is application deployment and running platform apaas (application platform as a service), and the other is integration platform ipaas (integration as service). As a PaaS platform, an APaaS is often referred to as an APaaS, and a PaaS platform referred to in the embodiments of the present invention is also referred to as an APaaS.
The metadata of the PaaS platform is based on an object-oriented concept, and objects in the PaaS platform can be service entities, service logics, UIs, process models, BI models, and even user rights, etc.
In one embodiment of the present invention, before performing step S110, the design method further includes steps S210 and S220 as shown in fig. 2.
Step S210, configuring, based on the PaaS platform, customized models corresponding to at least two tenants belonging to the same industry by using metadata.
And S220, abstracting an industry model of the industry according to the customized models corresponding to the at least two tenants.
Specifically, the same or similar parts in the customized models corresponding to the at least two tenants may be selected, and then the industry models of the industries to which the at least two tenants belong may be abstracted according to the same or similar parts.
Through the steps S210 and S220, an industry model of each industry based on the PaaS platform is abstracted in advance. Therefore, the industry model of the industry to which the current tenant belongs can be determined according to the industry to which the current tenant belongs.
And step S120, configuring a customized model corresponding to the current tenant by using the metadata based on the PaaS platform and an industry model of the industry to which the current tenant belongs.
The industry model of the industry to which the current tenant belongs and the customized model corresponding to the current tenant generally form all configuration data for generating the customer relationship management system.
In an embodiment of the present invention, the step S120 may further include steps S121 to S123 as shown in fig. 2.
Step S121, determining the demand of the current tenant.
The current tenant requirements are specifically functions to be completed by the form, including: the list displays basic information of the person and provides a person adding/deleting/modifying/searching function.
And step S122, configuring the domain entity and the business logic according to the requirement.
And S123, generating a customized model corresponding to the current tenant based on the PaaS platform by using the metadata according to the domain entity and the service logic.
Specifically, the customization model may be developed using an Xtion IDE configuration. For example, a domain entity template, i.e., a worker template, can be selected to generate a domain entity "person", to adjust attributes of the entity "person", and service encapsulation is also performed on the attributes in the PaaS platform, so that technical details such as varchar, int, timestamp, and the like are shielded, and the attribute templates are encapsulated into service expressions such as "amount", "date", "remark", "text", and the like. Establishing a field model 'personnel management' containing field entity 'personnel', adding a service behavior 'personnel query' in the model, wherein the service behavior can be directly written by using Flycode, and can also be quickly generated by using a behavior template provided by a PaaS platform, such as a 'single-object storage template', a 'newly-added template', and the like. Establishing service 'personnel list query', configuring input/output (DTO) and service processing logic implementation (flash), and realizing the functions of querying personnel list results and paging according to different transmitted query conditions. And selecting a UI template, namely a Web end common list page, automatically generating a personnel list inquiry Web page by combining personnel list inquiry service, and self-defining and configuring controls and related event processing logic on the page through the Xtion IDE. And configuring the authority relationship of the roles, which can access the personnel list to inquire the authority relationship of the function points on the Web interface, according to the role authority in the enterprise organization structure of the current tenant. And releasing a service and a UI protocol, and displaying a personnel list query interface in WEB, namely generating a customized model corresponding to the current tenant.
And S130, generating a customer relationship management system corresponding to the current tenant according to the customized model corresponding to the current tenant and the industry model of the industry to which the current tenant belongs.
The foremost is the gateway, which will accept all requests to the PaaS platform. Next, the gateway will obtain the tenant information to which the request belongs according to the tenant/user information in the platform database, and forward the request to the corresponding application server cluster.
Each application server cluster runs a complete PaaS platform system, and each cluster supports thousands of tenants. The PaaS platform is supported by a plurality of existing 10 application server clusters, and all tenants are distributed to each application server cluster in a balanced manner through an API gateway. When the application server cluster receives the request, it will forward the request to the slightly light application server through its built-in load balancer. To simplify the architecture and facilitate scaling, the application servers are stateless and there may be multiple application servers within a cluster to handle large-scale requests.
And finally, the application server calls various dynamic service engines and micro-services in the PaaS platform, accesses a tenant database where tenant data is located and a metadata database of PaaS platform configuration information to process the user request, returns a result and generates a customer relationship management system corresponding to the current tenant.
The application server is mainly used for processing a large number of requests of users, and comprises 4 large core modules: the system comprises a micro-service framework layer, a data access layer, a business micro-service and a basic micro-service. The micro-service framework layer realizes the framework support of basic micro-services, including service publishing, service discovery, RPC, current limiting control, link tracking, service monitoring and the like. And the data access layer realizes the access to the metadata database and the tenant database in a multi-tenant environment. The business micro-service comprises a report service, a UI protocol service, a personal information service, a workflow service, an ETL service and a business engine service, uniformly receives a user request, dynamically loads personal information and authority, generates a business logic, executes a business code, returns an execution result and a corresponding UI layer protocol, realizes user personalized report statistics through the ETL service, and dynamically reads metadata information configured by the workflow service and realizes dynamic workflow by combining the UI protocol service, the personal information service and the business engine service. Basic micro-services provide basic functional services that are not business related: file services, message services, authentication services, scheduling services, and the like.
The PaaS platform comprises a 4-layer framework with a domain model as a core, wherein the framework comprises a presentation layer, a service layer, a domain model layer and a data persistence layer. The presentation layer is used for native rendering of UI interfaces corresponding to all screens by using UI engines corresponding to all terminals at android, ios and web ends through a FlyUI multi-screen UI technology independently developed by the aPaaS to configure the same UI protocol generated by the aPaaS, and calling business logic services provided by the service layer, processing user interaction and business logic processing. The service layer provides service logic service, performs data interaction with the presentation layer through DTO upwards, converts the DTO into a domain entity corresponding to the domain layer through Assemble downwards, calls service processing logic corresponding to the domain model layer, and integrates and calls various system services such as workflow service, infrastructure, external service and the like on the service layer to realize final service logic. The domain model layer is a real core in the business logic system, and comprises a domain entity for abstracting a business scene and a corresponding domain behavior (business logic) on the domain entity, wherein the domain model layer upwards provides business logic realization support for the service layer and downwards accesses and processes the physical database through the data persistence layer. And the data persistence layer is used for packaging a physical data source access interface, and realizing persistence of the domain object mapping of the domain model layer to the relational database and realizing multi-database support on the layer. The infrastructure provides support for the service layer, the field layer and the data layer. All implementations related to specific platforms and frameworks, including logs, authentication, caching, etc., are provided in the infrastructure, avoiding the doping of service, domain, data, and especially domain into these implementations, thereby "polluting" the domain model.
An application instance running on a PaaS platform is generated by combining a large number of objects, or an application instance is described using metadata. For example, when the application is initial, each tenant uses the same industry product version model and objects of the same scale, and the tenant customizes the application by adding and updating the objects, such as adding new UIs and fields, and the system strictly separates the shared and customized objects, so that the shared code can be updated very conveniently, and the customized part of a user cannot affect other users.
During operation, the PaaS platform uses a whole set of domain model dynamic service engine to analyze metadata in a database to dynamically generate a virtual application instance and modules required by the application, and the dynamic service engine is composed of the following 6 parts: the model merging module is used for processing the merging of the industry product model metadata and the tenant custom metadata to generate virtual application instance metadata; the system comprises a dynamic business object construction module, a business logic engine module and an interface assembly module, wherein the interface assembly module dynamically constructs objects, logics and UIs corresponding to tenant applications according to application instance metadata; and the process engine module dynamically constructs a tenant BI report and a workflow according to BI model metadata and process model metadata configured in the Xtion IDE.
As shown in fig. 2, the design method further includes a step S230 of selecting at least a part of the customized model corresponding to the current tenant and adding the selected customized model to an industry model of an industry to which the current tenant belongs.
Therefore, through the design method, the PaaS platform can form a PaaS platform custom model by accumulating a plurality of field models, abstracting the industry model template library and the corresponding metadata library, and can quickly apply the accumulated CRM field experience to a new industry model through the custom model, so that the development efficiency of a customer relationship management system is greatly improved, and virtuous cycle from concrete implementation, model abstraction and field accumulation is formed.
Therefore, the interaction design, implementation and final tenants facing the business tenants can configure professional CRM application; compared with the traditional CRM development, the configuration degree can reach more than 80%, and the development efficiency is averagely improved by 130%. The CRM (customer relationship model) system can realize self-learning and industry knowledge accumulation and support 30 industry CRM fields such as fast marketing, finance and liquor. The unique model interpretation system, the dynamic property and the development efficiency guarantee support the seamless smooth upgrading of the CRM. The microkernel architecture design and the model can be continuously developed and perfected, and the workload of CRM secondary development is reduced by 40%. The technology independence adapts to IT technology development changes, and business requirements are precipitated through a domain model.
The invention also provides a design device of the customer relationship management system. Fig. 3 is a block schematic diagram of an implementation structure of a design apparatus of a customer relationship management system according to the present invention.
As shown in fig. 3, the design apparatus includes a determination module 310, a first configuration module 320, and a generation module 330. The determining module 310 is configured to determine an industry model of an industry to which a current tenant belongs in a domain model pre-stored in the PaaS platform; the first configuration module 320 is configured to configure, based on the PaaS platform and an industry model of an industry to which the current tenant belongs, a customized model corresponding to the current tenant in the domain model by using metadata; the generating module 330 is configured to generate a customer relationship management system corresponding to the current tenant according to the customized model corresponding to the current tenant and the industry model of the industry to which the current tenant belongs.
Fig. 4 is a block schematic diagram of another implementation structure of a design apparatus of a customer relationship management system according to the present invention.
As shown in fig. 4, the first configuration module 320 further includes a requirement determining unit 321, a configuration unit 322, and a generating unit 323. The requirement determining unit 321 is configured to determine a requirement of a current tenant; the configuration unit 322 is used for configuring the domain entities and the business logic according to the requirements; the generating unit 323 is configured to generate a customized model corresponding to a current tenant based on the PaaS platform by using metadata according to the domain entity and the service logic.
Further, the design apparatus further includes a second configuration module 410 and an abstraction module 420. The second configuration module 410 is configured to configure, based on the PaaS platform, customized models corresponding to at least two tenants belonging to the same industry by using metadata; the abstraction module 420 is configured to abstract an industry model of an industry according to the customized models corresponding to the at least two tenants.
On this basis, the design apparatus further includes an adding module 430, configured to select at least part of the customized model corresponding to the current tenant and add the selected customized model to an industry model of an industry to which the current tenant belongs.
The invention also provides an electronic device, which comprises the design device of the customer relationship management system.
Fig. 5 is a block schematic diagram of an implementation structure of the electronic device according to another aspect of the invention.
As shown in fig. 5, the electronic device 500 comprises a memory 501 and a processor 502, wherein the memory 501 is used for storing instructions for controlling the processor 502 to operate so as to execute the design method of the customer relationship management system.
The processor 502 may be, for example, a central processing unit CPU, a microprocessor MCU, or the like. The memory 501 includes, for example, a ROM (read only memory), a RAM (random access memory), a nonvolatile memory such as a hard disk, and the like.
In addition, the electronic device 500 comprises, according to fig. 5, interface means 503, input means 504, display means 505, communication means 506, speaker 507, microphone 508, etc. Although a plurality of devices are shown in fig. 5, the electronic apparatus of the present invention may involve only some of the devices, for example, the processor 501, the memory 502, the display device 505, and the like.
The communication device 506 can perform wired or wireless communication, for example.
The interface device 503 includes, for example, a headphone jack, a USB interface, and the like.
The input device 504 may include, for example, a touch screen, a key, and the like.
The display device 505 is, for example, a liquid crystal display panel, a touch panel, or the like.
The electronic device 500 of the present invention may be, for example, an electronic product such as a mobile phone and a tablet computer.
The above embodiments mainly focus on differences from other embodiments, but it should be clear to those skilled in the art that the above embodiments can be used alone or in combination with each other as needed.
The embodiments in the present disclosure are described in a progressive manner, and the same and similar parts among the embodiments can be referred to each other, and each embodiment focuses on the differences from the other embodiments, but it should be clear to those skilled in the art that the embodiments described above can be used alone or in combination with each other as needed. In addition, for the device embodiment, since it corresponds to the method embodiment, the description is relatively simple, and for relevant points, refer to the description of the corresponding parts of the method embodiment. The system embodiments described above are merely illustrative, in that modules illustrated as separate components may or may not be physically separate.
The present invention may be an apparatus, method and/or computer program product. The computer program product may include a computer-readable storage medium having computer-readable program instructions embodied therewith for causing a processor to implement various aspects of the present invention.
The computer readable storage medium may be a tangible device that can hold and store the instructions for use by the instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic memory device, a magnetic memory device, an optical memory device, an electromagnetic memory device, a semiconductor memory device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: 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), a Static Random Access Memory (SRAM), a portable compact disc read-only memory (CD-ROM), a Digital Versatile Disc (DVD), a memory stick, a floppy disk, a mechanical coding device, such as punch cards or in-groove projection structures having instructions stored thereon, and any suitable combination of the foregoing. Computer-readable storage media as used herein is not to be construed as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., optical pulses through a fiber optic cable), or electrical signals transmitted through electrical wires.
The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to a respective computing/processing device, or to an external computer or external storage device via a network, such as the internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. The network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in the respective computing/processing device.
The computer program instructions for carrying out operations of the present invention may be assembler instructions, Instruction Set Architecture (ISA) instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C + + or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider). In some embodiments, aspects of the present invention are implemented by personalizing an electronic circuit, such as a programmable logic circuit, a Field Programmable Gate Array (FPGA), or a Programmable Logic Array (PLA), with state information of computer-readable program instructions, which can execute the computer-readable program instructions.
Aspects of the present invention are described herein 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 block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.
These computer-readable program instructions may be provided to a processor of a general purpose computer, special purpose 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/acts specified in the flowchart and/or block diagram block or blocks. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer-readable medium storing the instructions comprises an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer, other programmable apparatus or other devices implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions. It is well known to those skilled in the art that implementation by hardware, by software, and by a combination of software and hardware are equivalent.
Having described embodiments of the present invention, the foregoing description is intended to be exemplary, not exhaustive, and not limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein were chosen in order to best explain the principles of the embodiments, the practical application, or technical improvements to the techniques in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein. The scope of the invention is defined by the appended claims.