WO2015100646A1 - 软件架构的实现方法和实现平台 - Google Patents

软件架构的实现方法和实现平台 Download PDF

Info

Publication number
WO2015100646A1
WO2015100646A1 PCT/CN2013/091179 CN2013091179W WO2015100646A1 WO 2015100646 A1 WO2015100646 A1 WO 2015100646A1 CN 2013091179 W CN2013091179 W CN 2013091179W WO 2015100646 A1 WO2015100646 A1 WO 2015100646A1
Authority
WO
WIPO (PCT)
Prior art keywords
layer
plug
business
communication
interface
Prior art date
Application number
PCT/CN2013/091179
Other languages
English (en)
French (fr)
Inventor
肖海涛
王冰
何军军
张明贺
刘超
王桥
Original Assignee
北京新媒传信科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京新媒传信科技有限公司 filed Critical 北京新媒传信科技有限公司
Priority to PCT/CN2013/091179 priority Critical patent/WO2015100646A1/zh
Priority to CN201380081137.8A priority patent/CN105745620B/zh
Publication of WO2015100646A1 publication Critical patent/WO2015100646A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Definitions

  • the invention relates to the technical field of computer software application, in particular to a software architecture implementation method and a software architecture implementation level.
  • the software has gradually become an indispensable interactive communication and entertainment tool in the user's life.
  • the software has also evolved into a large service platform that provides users with life support by initially providing a single function or application to the user.
  • the embodiments of the present invention provide a software architecture implementation method and a corresponding software architecture implementation platform, so as to simplify the development operation and improve the software development efficiency.
  • an embodiment of the present invention provides a method for implementing a software architecture, including:
  • the interaction mode is to use the message interaction mode to run the client software, wherein the message interaction mode includes the upper layer logic layer accessing the lower layer logic layer by calling an interface in the lower layer logic layer, and the lower layer logic layer is configured to the upper layer according to the set event mechanism.
  • the logical layer sends a message;
  • the business layer requests the business data and events requested by the service request message, and performs the business operation, and sends the business layer operation result to the communication layer by using the message interaction manner;
  • the basic support layer stores the shared content of each logical layer and the corresponding content corresponding to each logical layer.
  • an embodiment of the present invention provides a platform for implementing a software architecture, including:
  • a logic layer setting unit configured to divide a logical structure of the client software into multiple logical layers, where the logical layer includes a basic support layer and a bottom-up communication layer, a service layer, an application layer/user interface UI layer; and,
  • the message interaction mode between the logic layers is to run the client software by using the message interaction mode, wherein the message interaction mode includes the upper layer logic layer accessing the lower layer logic layer by calling the interface in the lower layer logic layer, and the lower layer logic layer is set according to the
  • the fixed event mechanism sends a message to the upper logical layer;
  • the application layer/UI layer processing unit is configured to receive the service request message from the user through the client software UI provided by the application layer/UI layer according to the content provided by the basic support layer, and send the service request message to the service layer by using the message interaction manner. And, the application layer/UI layer captures the event of the business layer and performs the corresponding business operation, and sends the application layer/UI layer operation result to the communication layer by using the message interaction manner;
  • the service layer processing unit is configured to manage, according to the content provided by the basic support layer, the service data and the event requested by the service request message by the service layer, and perform the service operation, and send the service layer operation result to the communication layer by using the message interaction manner;
  • a communication layer processing unit configured to send, according to the content provided by the basic support layer, the application layer/UI layer operation result and the service layer operation result to the service server by using a communication module of a predetermined communication mode in the communication layer;
  • the basic support layer stores the shared content of each logical layer and the corresponding content corresponding to each logical layer.
  • FIG. 1 is a logic level diagram in an implementation method of a software architecture according to an embodiment of the present invention
  • FIG. 2 is a schematic diagram showing the relationship between logical layers according to an embodiment of the present invention.
  • FIG. 3 shows a schematic diagram of a threading model according to still another embodiment of the present invention
  • FIG. 4 is a schematic diagram of an interaction method based on a callback model according to still another embodiment of the present invention.
  • FIG. 5 is a schematic diagram of an interaction method based on an event model according to still another embodiment of the present invention.
  • FIG. 6 is a schematic diagram showing a specific structure of a communication layer according to still another embodiment of the present invention.
  • FIG. 7 is a flow chart showing a method of installing a plug-in using a plug-in management module according to still another embodiment of the present invention.
  • FIG. 8 is a flowchart of a method for launching a plug-in by using a plug-in management module according to still another embodiment of the present invention
  • FIG. 9 is a diagram showing another method for launching a plug-in by using a plug-in management module according to still another embodiment of the present invention
  • Flowchart FIG. 10 is a block diagram showing the structure of an implementation platform of a software architecture according to still another embodiment of the present invention. detailed description
  • the main purpose of the present invention is to build a good software architecture to make the developed software have superior performance, such as software performance is more reliable, strong, and flexible enough to facilitate the expansion and reuse. Developers can use the software architecture solution in the embodiment of the present invention to easily develop software that integrates multiple functions and applications.
  • FIG. 1 is a schematic diagram showing a logical hierarchy in a method for implementing a software architecture according to an embodiment of the present invention.
  • the logical structure of the client software is divided into multiple logical layers, which include a basic support layer and a bottom-up communication layer (such as a Comm layer), a business layer (such as a Biz layer), and an application (APP) layer/UI ( User Interface, User Interface) Layer.
  • a message interaction mode may be:
  • the upper layer logic layer calls the interface in the lower layer logic layer Access to the underlying logical layer, the lower logical layer sends messages to the upper logical layer according to the set event mechanism.
  • the logical layer also includes a plug-in interface layer (such as a PluginSDK layer) and a plug-in layer (such as a Plugins layer).
  • An interface is provided for the plugin in the plugin interface layer to enable the plugin to access the client software; and the plugin is placed in the plugin layer.
  • a plug-in management module is also set in the business layer, and the plug-in management module performs a management operation of the plug-in.
  • the business layer manages the plug-in of the client software by using the plug-in management module, and the management operation includes at least installation, uninstallation, loading, and startup of the plug-in. .
  • the client software provided in this embodiment is described below in conjunction with a service request operation.
  • the client software receives the service request message from the user through the client software UI provided by the application layer/UI layer according to the content provided by the basic support layer, and sends the service request message to the service layer by using the message interaction manner; and, through the application
  • the layer/UI layer captures the events of the business layer and performs corresponding business operations, and sends the application layer/UI layer operation results to the communication layer by means of message interaction.
  • the client software UI is controlled and managed in the application layer/UI layer, and corresponding business operations are performed according to the captured event of the service layer.
  • the operations performed in the application layer/UI layer mainly include the following:
  • UI control and management For example, providing unified session window management, option window management, and re-encapsulation of UI controls in the application layer/UI layer, creating UI controls with specific functions and behaviors, etc.
  • the CFrame is an application layer/UI layer interface management class container, and the CFrame is used to uniformly store and acquire the interface management class.
  • the application layer/UI layer can use CFrame to obtain the management class of each interface in the layer, thereby obtaining different interface modules, and It can operate on the interface module and execute mutual calls between interfaces. For example, through the call of the interface module, the function of waking up the display of another window that is completely unrelated by one window is performed.
  • the client software manages the service data and events requested by the service request message through the service layer according to the content provided by the basic support layer, and performs the business operation, and sends the service layer operation result to the communication layer by using the message interaction manner.
  • the service data and events of the client software are managed in the service layer, and the business operations are performed.
  • the operations performed at the business layer mainly include the following:
  • Management of business data For example, management of configuration data, management of permission data, and the like.
  • Management of events For example, when the business layer receives a notification to add a friend's data packet, the business layer processes the data packet and throws an event to add a friend, which is handled by another business layer or application layer/UI layer.
  • Interact with communication layer data For example, receiving a SIP packet sent by the communication layer.
  • the container is used in the business layer to handle related operations.
  • a specific example can be as follows: Construct a container of the business layer, such as a container class CSession, which can set multiple business management objects in the business layer (such as plug-in management module)
  • the container class CSession can be a single instance structure, and its life cycle and the life cycle of the process are equal.
  • the container class CSession is initialized at the startup of the program.
  • the initialization of the container class CSession can be used to initialize the business management object corresponding to each service.
  • the container class CSession clear (Clear) method is called, and each can be cleaned up.
  • Business management object related resources such as configuration, memory, and so on.
  • the client software sends the application layer/UI layer operation result and the business layer operation result to the service server through the communication module of the predetermined communication mode in the communication layer according to the content provided by the basic support layer.
  • a communication module of a predetermined communication mode is set in the communication layer.
  • SIP Session Initiation Protocol
  • multiple communication modules are provided in the communication layer to support TCP (Transmission Control Protocol) communication method and HTTPS (Hypertext Transfer Protocol over Secure Socket Layer). HTTP) Tunnel communication method, HTTP communication method, etc.
  • TCP Transmission Control Protocol
  • HTTPS HTTP Transfer Protocol over Secure Socket Layer
  • HTTP Tunnel communication method
  • HTTP communication method etc.
  • the underlying communication details such as various proxy settings, credentials, etc.
  • different communication modes such as SIP, HTTP, file transfer, etc. are also provided in the communication layer for the upper layer to provide an easy-to-use interface for the upper layer to call.
  • the shared content of each logical layer and the corresponding content corresponding to each logical layer are stored in the basic support layer, so that the content provided by the basic support layer supports the operation of each logical layer.
  • the content stored in the underlying support layer includes public helper classes ( Utils ), resources ( Resources ), UI controls ( UiControls ), and online upgrade tools ( Liveupdate ).
  • Utils public helper classes
  • Resources includes program resource package, uniquely designed multi-language language package, which is archived according to language type, supports dynamic insertion of multi-language packages, dynamic multi-language switching, and can customize local language packages according to user needs. Make language design more local. Referring to FIG. 2, a schematic diagram of a relationship between logical layers provided by this embodiment is shown.
  • the application layer/UI layer is strongly related to the business layer, the communication layer and Utils are strongly related, the application layer/UI layer and the business layer need Utils support, the business layer can access the communication layer, and the Resources provides physical data such as pictures to each layer. support.
  • the underlying support layer provides a uniform application interface to the application/UI layer, business layer, communication layer, and plug-in interface layer, reducing code duplication and complexity.
  • a further embodiment of the present invention describes a multi-threaded model in a method for implementing a software architecture. Other aspects of the software architecture implementation method can be found in other embodiments of the present invention. This embodiment adopts the following four types of thread models, except for the business thread, there are only one global thread in the other three classes.
  • the UI thread is the main thread of the interface of the Windows desktop application. Except for business operations that may take a long time, most of the business operations will be executed entirely in the main UI thread, so as to avoid introducing thread synchronization problems, thus reducing development complexity and improving programming and operation efficiency.
  • Business threads A thread that a business thread establishes for a business operation. When a business operation can take a long time, causing the UI thread to block, a business thread can be created for the business operation.
  • the communication thread is the thread used by the communication layer to send and receive SIP packets.
  • SIP communication does not have high traffic and high real-time requirements, and the transceiver operation can be completed in the same thread. Simple operations such as SIP spelling/unpacking are also performed in the communication thread.
  • Timer thread One is the Windows Timer, the other is the thread Timer, which is selected for use according to the specific situation, global sharing.
  • UIMethod UIMethod
  • business methods BizMethod
  • BizMethod business methods
  • BizThread business thread
  • Send operation and the Receive (Recv) operation run on the communication thread.
  • a send queue and a receive queue are respectively established for messages that need to be sent and received, and a timeout queue is established for messages that have not been processed for a predetermined time, in order to facilitate management of the message.
  • the Timeout operation runs on the timer thread.
  • the arrow pointing upwards indicates the interaction according to the event mechanism, and the arrow pointing downward indicates the interface call.
  • Another embodiment of the present invention describes an event mechanism in a method for implementing a software architecture.
  • Other content in the method for implementing a software architecture can be found in other embodiments of the present invention.
  • the event mechanism provided by this embodiment includes two models: a callback model and an event model.
  • An application scenario of the callback model may be: The UI object actively initiates a request, and waits for the server side (or another client, the same below) to return a response and learn the processing result. For example, after a user sends a session message, it needs to know whether the message was sent successfully. There are several features in this scenario:
  • a specific UI object initiates a request and waits for the result to be processed
  • FIG. 4 a schematic diagram of an interaction method based on a callback model provided by this embodiment is shown, which includes the following operations:
  • S400 Record a callback request at the business layer and send a service request to the communication layer according to the callback request.
  • the above callback request is initiated by the UI object in the application layer/UI layer to the business layer.
  • the callback request is logged by the business method in the business layer, for example, by BizMethod (UiCallback, UiContex).
  • S401 Process the service request at the communication layer.
  • the service request is sent out by the sending operation in the communication layer.
  • a callback request is implemented by applying a callback mechanism between the application layer/UI layer, the business layer, and the communication layer through the above steps S400 to S401.
  • step S402 Receive a processing result data packet for the service request at the communication layer, parse the processing result data packet, and convert the data packet into a response message, return the response message to the service layer from the communication layer, and proceed to step S403, where the service layer processes Response message.
  • the response message may be received in real time after the service request is sent, or may be received within a certain time range.
  • the service layer determines whether there is a callback request corresponding to the response message, and if so, confirms that there is a callback request, proceeds to step S404, and if not, ends the operation.
  • S404 The business layer returns a response message to the UI object that initiates the callback request, and performs a callback operation.
  • An application scenario of the event model may be: After the communication layer receives a message from the server side (or another client) (which may be a request or a response), it needs to feed back to the application layer/UI layer for some display or Perform other related actions. There are several features in this scenario:
  • the internal data of the business layer changes, that is, when an event occurs (usually when a message is received from the server side or another client, but not limited to this), all UI objects that need to be concerned about the change are notified (notified) By) ;
  • FIG. 5 a schematic diagram of an event model-based interaction method provided by this embodiment is shown, which includes the following operations: S500: Perform an event subscription.
  • Event subscriptions are made to the business layer by one or more UI objects in the application layer/UI layer.
  • event subscriptions can be performed through event subscription methods such as SubscribeEvent ( BizEvent, UIEventHandler ).
  • the communication layer receives the message and sends the message to the service layer.
  • the message received by the communication layer causes the data of the business layer to change, and the corresponding event occurs.
  • step S502 Determine whether an event occurring in the service layer is subscribed, if yes, proceed to step S503, and if no, end the operation.
  • S503 The business layer notifies the event to the UI object in the application layer/UI layer that subscribes to the event.
  • the present embodiment provides an event registration management mechanism, which combines different functions and application scheduling, has low code coupling degree, clear flow, high performance triggering, and rapid interface response, and maintains the software. At the same time of function and application integrity, the multi-function, application interoperability is completed, which is convenient for developers to maintain and expand the software.
  • Another embodiment of the present invention describes a communication layer in a software architecture implementation method, and a software architecture implementation method thereof Other contents can be found in other embodiments of the present invention. Referring to FIG. 6, a schematic diagram of a specific structure of a communication layer of this embodiment is shown. A service layer management module, a module interface layer, and a module setting layer are set in the communication layer. The following are explained separately:
  • the service layer management module is responsible for the two-way communication call between the service layer and the communication layer.
  • the service layer management module is used to support the interface access of the service layer to the communication layer
  • the SIP communication call interface is provided for the service layer
  • the callback interface is set in the module interface layer.
  • the service layer management module can access the interface of the communication layer according to the service layer, and invoke the communication module in the module setting layer through the communication module interface in the module interface layer to perform communication of the client.
  • a communication module interface (such as a callback interface) corresponding to the communication module and interface data of the communication module interface are set.
  • the interface data may include connection configuration information, a data structure of the received packet, a data structure of the transmitted packet, a connection type, and the like.
  • Receive packet type (type), received SIP request packet (SipRequest), received SIP response packet (SipResponse), and paired send packet ( requestContext ).
  • the type of the received packet may include the following:
  • Send timeout (SEND_TIMEOUT), receive non-Ack request (RECV-REQUEST),
  • connection type provided in this embodiment includes at least four types of UNKNOWN-TCP DIRECT-HTTPS TUNNEL and HTTP, where UNKNOWN indicates an unknown connection type, TCP_DIRECT indicates that TCP i connection mode carries SIP signaling, and HTTPS TUNNEL indicates HTTPS mode bearer. SIP signaling, HTTP means that the HTTP mode carries SIP signaling.
  • a communication module of a predetermined communication mode is set in a module setting layer of the communication layer, and a communication module can provide a communication mode for the client software, and can perform switching of communication modes between different communication modules in the communication layer.
  • a plug-in management module of a service layer in a software architecture implementation method is described.
  • Other content in the software architecture implementation method may be referred to other embodiments of the present invention.
  • a plugin is a software exposed API interface for yourself or a third Used by developers to extend the functionality of the program.
  • This embodiment can support two types of plug-ins, one is a B/S (Browser/Server) mode plug-in, or an external plug-in; one is a client (Client) mode plug-in, or For local plugins.
  • the B/S mode plug-in means that the plug-in runtime environment is limited to the plug-in container specified by the application.
  • Some B/S mode plug-ins require server support (the server is provided for the plug-in developer), and some B/S mode.
  • the plugin only needs an HTML file with a Javascript client script.
  • the plug-in management module performs management operations of the plug-in, such as installation, uninstallation, loading, and startup of the plug-in; and managing the plug-in of the client software through the plug-in management module;
  • FIG. 7 a flowchart of a method for installing a plug-in by using a plug-in management module of the embodiment is shown, which includes the following steps:
  • the plugin management module searches for plugins in the data server.
  • the plug-in management module of the client software includes a plug-in container, and the plug-in container records the plug-in ID of the plug-in.
  • the plug-in ID is sent to the data server to search for the plug-in according to the plug-in ID in the data server.
  • searching for plugins you can search according to the type of plugin, or you can blur the search.
  • the search method is not limited here.
  • the plug-in management module selects a required plug-in according to the search result returned by the data server.
  • the search result includes a plug-in that is searched out or a collection of plug-ins that includes multiple plug-ins, and a plug-in of the B/S mode matching the plug-in ID is selected in the search result.
  • the data server also returns the description of the plugin to the client software side.
  • the description of the plugin can be extended in XML (Extensible Markup Language) format.
  • the description information includes the plugin number, the plugin name, the plugin type, the plugin tag, the running mode, the plugin permission, whether to use other control support, etc., but is not limited thereto, and uses the description information to perform the plug-in between the server side and the client software. Interaction.
  • the plug-in management module can also perform management operations on the plug-in in the B/S mode based on the description information.
  • the plug-in management module displays an authorization page to inform the user of the authorization of the plug-in.
  • the permission requirements of the plugin need to be clearly stated when submitting the plugin.
  • the data server needs to provide a web page for the plugin provider to submit its own list of plugins, the user fills in the relevant information, and gets the plugin ID of the plugin.
  • the plugin information is logged to the server's database.
  • the plug-in provider can set the permission requirements of the plug-in, for example, whether to record user information, whether to access the core business of the software, whether to install ActiveX controls, etc., for management and maintenance.
  • the plugin management module installs the plugin and updates the local data.
  • the plugin management module sends a reference advertisement to the reference advertisement server.
  • a Trackback ie, a reference notification
  • the plug-in's reference notification server which references the permission requirements of the user and plug-in that installs the plug-in in the notification server to facilitate plug-in management.
  • the plug-in management module updates the data to the data server, so that the data server manages multiple functions of the client software including the plug-in.
  • the plug-in management module can know the plug-in that needs to be started according to the selection instruction sent by the user through the menu or the toolbar.
  • S801 The plug-in management module determines whether the selected plug-in is consistent with the currently-executed operation, and if yes, proceeds to step S802, and if no, proceeds to step S803.
  • S802 The plug-in management module determines whether the plug-in is operated by a plurality of people. If yes, the process goes to step S805, and if no, the process goes to step S804.
  • S803 The plug-in management module prompts the user to start the operation.
  • S804 The plugin management module creates a plugin container, and the plugin container can load multiple plugins. Then, the process proceeds to step S806.
  • S805 The plug-in management module issues an invitation to the other party user of the client software having the same plug-in, and proceeds to step S807.
  • S806 The plug-in management module runs the plug-in, and proceeds to step S808.
  • the plug-in management module determines whether the invited other party user accepts the invitation, and if yes, proceeds to step S804, and if no, proceeds to step S803.
  • the plug-in management module sends a reference notification to the plug-in's reference notification server to update the data of the plug-in recorded in the notification notification server.
  • steps S800 to S808 mainly describe the scenario in which the client software starts the plug-in when the initiator of the plug-in is started.
  • the flowchart of the method for starting the plug-in by using the plug-in management module see FIG. 9, includes the following step:
  • the plugin management module receives the plugin invitation.
  • the plug-in management module of the client software on the side of the invitee receives the plug-in invitation sent by the inviter.
  • the plug-in management module determines whether the invited plug-in is installed in the client software, and if yes, proceeds to step S904, and if not, Go to step S902.
  • the plug-in management module determines whether the plug-in needs to be installed in the client software, and if yes, proceeds to step S905, and if no, proceeds to step S903.
  • the plugin management module sends a rejection message to the inviter.
  • the plug-in management module searches for the invited plug-in in the client software, and proceeds to step S906.
  • the plugin management module installs the plugin in the invited client software.
  • the plug-in management module determines whether the found plug-in is compatible with the client software, and if yes, proceeds to step S908, and if no, proceeds to step S907.
  • S907 The plug-in management module creates a separate bearer for the plug-in for the incompatible plug-in, starts the plug-in, and proceeds to step S909.
  • a plug-in container can be used as the carrier of the above-mentioned insert, but the carrier of the insert is not limited to the insert container.
  • S908 The plug-in management module searches for a corresponding bearer for the compatible plug-in in the client software, starts the plug-in, and proceeds to step S909.
  • the plugin management module sends a response to the inviter.
  • a plug-in set can be set for the plug-in of the client software, and the description information or configuration information of the plug-in and the definition of the plug-in behavior can be set in the plug-in set.
  • Different types of plugins can be set in different plugin sets. The plugin set is then loaded into the created plugin container to perform the interaction between the plugin and the client software.
  • the plugin behavior in the plugin set can include getting the number of plugins, adding plugins, removing plugins, sorting plugins, getting all plugins, and finding corresponding plugins.
  • the plug-in management module can manage the plug-in set in a unified manner, and can further expand the plug-in set on the basis of convenient management.
  • the management performed by the plugin management module can include: loading plugins, installing plugins, uninstalling plugins, sending plugin invitations, receiving plugin invitations, getting plugin lists, getting plugin information, saving plugin lists, and updating plugin lists.
  • configuration information is set in the client software for the client mode plug-in, so that the plug-in management module performs management operations on the client mode plug-in according to the configuration information, such as plug-in loading, plug-in uninstalling, etc. .
  • the implementation of the software architecture of the embodiment of the invention supports the external plug-in, so that the developed software is highly portable and reusable. Plug-ins can provide their own services to the outside through the interface, which is highly reusable and easy to port. Adding or reducing plug-ins does not affect the entire architecture. For example, modifying the application during software development and adding and removing plug-ins in the form of a patch package makes the structure of the software easy to adjust and maintain.
  • the implementation scheme of the embodiment of the invention also supports the local plug-in, the plug-in type is clearly divided, the plug-in is independently upgraded, the development is facilitated, and the maintenance cost is reduced.
  • the platform 100 includes a logical layer setting unit 110, an application layer/UI layer processing unit 11 1, a business layer processing unit 112, and a communication layer processing unit 113.
  • the platform 100 further includes a plug-in interface layer processing unit 114 and a plug-in layer processing unit 115. These units are described below.
  • the logic layer setting unit 110 is configured to divide the logical structure of the client software into multiple logical layers, where the logical layer includes a basic support layer and a bottom-up communication layer, a service layer, and an application layer/user interface UI layer;
  • the message interaction mode between the logic layers is established to run the client software by using the message interaction mode, wherein the message interaction mode includes the upper layer logic layer accessing the lower layer logic layer by calling an interface in the lower layer logic layer, and the lower layer logic layer is
  • the set event mechanism sends a message to the upper logical layer.
  • the logic layer setting unit 110 is configured to send a callback request to the service layer by the UI object in the application layer/UI layer; record the callback request at the service layer, and send a service request to the communication layer according to the callback request;
  • the communication layer obtains the response message to the service request
  • the communication layer returns the response message to the service layer, and determines, in the service layer, whether there is a callback request corresponding to the response message, and if yes, returns the response message to initiate the corresponding response.
  • the UI object of the callback request if no, ends the operation.
  • the logic layer setting unit 110 is configured to perform event subscription to the service layer by one or more UI objects in the application layer/UI layer; when an event occurs in the service layer, determine whether the event is subscribed in the service layer. If yes, notify the UI object that subscribes to the event, so that the UI object performs the corresponding operation according to the event that occurs, and if not, ends the operation.
  • the application layer/UI layer processing unit 111 is configured to receive, according to the content provided by the basic support layer, a service request message from the user through a client software UI provided by the application layer/UI layer, and send the service request message to the service by using a message interaction manner. And: the application layer/UI layer captures the event of the business layer and performs the corresponding business operation, and sends the application layer/UI layer operation result to the communication layer by using the message interaction manner.
  • the service layer processing unit 112 is configured to manage, according to the content provided by the basic support layer, service data and events requested by the service request message through the service layer, and perform a service operation, and send the service layer operation result to the communication layer by using a message interaction manner.
  • the business layer processing unit 112 is configured to set a plug-in management module in the business layer, and the plug-in management module performs a management operation of the plug-in, and the management operation includes at least installation, uninstallation, loading, and startup of the plug-in; Software plugin for management Reason.
  • the plugin includes a plugin for the B/S mode and/or a plugin for the client mode.
  • the service layer processing unit 1 12 is configured to download, by using a plug-in ID in the plug-in management module, a plug-in of the B/S mode that matches the plug-in ID from the server side, and description information of the plug-in, to be described by the plug-in management module according to the description information.
  • the management operation of the plug-in of the B/S mode is performed; the configuration information is set for the plug-in of the client mode, so that the plug-in management module performs the management operation of the plug-in of the client mode according to the configuration information.
  • the communication layer processing unit 1 13 is configured to send the application layer/UI layer operation result and the service layer operation result to the service server through the communication module of the predetermined communication mode in the communication layer according to the content provided by the basic support layer.
  • the communication layer processing unit 1 13 is configured to set a service layer management module, a module interface layer, and a module setting layer in the communication layer; use the service layer management module to support the interface access of the service layer to the communication layer, and the service layer
  • the management module invokes the communication module in the module setting layer through the communication module interface in the module interface layer to complete the communication of the client according to the interface access; and sets the communication module interface and the communication module corresponding to the communication module in the module interface layer of the communication layer.
  • Interface data of the interface; a communication module of a predetermined communication mode is set in the module setting layer of the communication layer.
  • the basic support layer stores the shared content of each logical layer and the corresponding content corresponding to each logical layer.
  • the basic support layer stores the following: public accessibility classes, resources, UI controls, and online upgrade tools, where resources include program resource bundles, language packs that support multiple languages.
  • the logical layer divided by the logical layer setting unit 1 10 further includes a plug-in interface layer and a plug-in layer
  • the platform 100 further includes a plug-in interface layer processing unit and a plug-in layer processing unit.
  • the plug-in interface layer processing unit 1 14 is configured to provide an interface for the plug-in in the plug-in interface layer to enable the plug-in to access the client software; and a plug-in layer processing unit 1 15 for setting the plug-in in the plug-in layer.
  • the embodiment of the present invention establishes a good software architecture by rationally layering the logical structure of the client software and establishing an interaction between the layers by using an interface access and event mechanism, and each logical layer is constructed. Separated from each other, easy to split and independently developed, the logic between the layers is strong, and the coupling degree of the code is low. The modification of one layer does not affect the operation of other layers, thus achieving a simpler The way to develop software with superior performance.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

 本发明公开了一种软件架构的实现方法和实现平台。本发明实施例提供的软件架构的实现方法包括:将客户端软件的逻辑结构划分为多个逻辑层;建立各逻辑层之间的消息交互方式;通过应用层/UI层提供的客户端软件UI接收来自用户的业务请求消息,利用消息交互方式将业务请求消息发送至业务层;以及,通过应用层/UI层捕获业务层的事件并执行相应的业务操作,利用消息交互方式将应用层/UI层操作结果发送至通信层;通过业务层对业务请求消息请求的业务数据和事件进行管理,并执行业务操作,利用消息交互方式将业务层操作结果发送至通信层;通过通信层中预定通信方式的通信模块将应用层/UI层操作结果和业务层操作结果发送至业务服务器。

Description

软件架构的实现方法和实现平台
技术领域
本发明涉及计算机软件应用技术领域, 特别涉及一种软件架构的实现方法和软件架构的实现平
背景技术
随着互联网的发展, 软件慢慢成为了用户生活中必不可少的互动沟通交流娱乐工具。 软件也由 最初的向用户提供单一功能或应用, 演变成了为用户提供生活支撑的一个大型的服务平台。
简化 IM客户端的开发效率, 使软件的架构设计和开发过程变得合理高效, 是业界目前亟待解决 的主要问题之一。 发明内容
鉴于上述问题, 本发明实施例提供了一种软件架构的实现方法和相应的软件架构的实现平台, 以达到简化开发操作、 提高软件开发效率的效果。
为了达到上述目的, 本发明实施例采用的技术方案如下:
一方面, 本发明实施例提供了一种软件架构的实现方法, 包括:
将客户端软件的逻辑结构划分为多个逻辑层, 该逻辑层包括基础支持层和从下至上的通信层、 业务层、 应用层 /用户界面 UI层; 以及, 建立各逻辑层之间的消息交互方式, 以利用消息交互方式运 行客户端软件, 其中, 该消息交互方式包括上层的逻辑层通过调用下层逻辑层中的接口访问下层的 逻辑层, 下层的逻辑层按照设定的事件机制向上层逻辑层发送消息;
根据基础支持层提供的内容, 通过应用层 /UI层提供的客户端软件 UI接收来自用户的业务请求 消息, 利用消息交互方式将业务请求消息发送至业务层; 以及, 通过应用层 /UI层捕获业务层的事件 并执行相应的业务操作, 利用消息交互方式将应用层 /UI层操作结果发送至通信层;
根据基础支持层提供的内容, 通过业务层对业务请求消息请求的业务数据和事件进行管理, 并 执行业务操作, 利用消息交互方式将业务层操作结果发送至通信层;
根据基础支持层提供的内容, 通过通信层中预定通信方式的通信模块将应用层 /UI层操作结果和 业务层操作结果发送至业务服务器;
其中, 基础支持层中存储各逻辑层的共有内容以及各逻辑层分别对应的专有内容。
另一方面, 本发明实施例提供了一种软件架构的实现平台, 包括:
逻辑层设置单元, 用于将客户端软件的逻辑结构划分为多个逻辑层, 该逻辑层包括基础支持层 和从下至上的通信层、 业务层、 应用层 /用户界面 UI层; 以及, 建立各逻辑层之间的消息交互方式, 以利用消息交互方式运行客户端软件, 其中, 消息交互方式包括上层的逻辑层通过调用下层逻辑层 中的接口访问下层的逻辑层, 下层的逻辑层按照设定的事件机制向上层逻辑层发送消息;
应用层 /UI层处理单元, 用于根据基础支持层提供的内容, 通过应用层 /UI层提供的客户端软件 UI接收来自用户的业务请求消息, 利用消息交互方式将业务请求消息发送至业务层; 以及, 通过应 用层 /UI层捕获业务层的事件并执行相应的业务操作, 利用消息交互方式将应用层 /UI层操作结果发 送至通信层;
业务层处理单元, 用于根据基础支持层提供的内容, 通过业务层对业务请求消息请求的业务数 据和事件进行管理, 并执行业务操作, 利用消息交互方式将业务层操作结果发送至通信层;
通信层处理单元, 用于根据基础支持层提供的内容, 通过通信层中预定通信方式的通信模块将 应用层 /UI层操作结果和业务层操作结果发送至业务服务器; 其中, 基础支持层中存储各逻辑层的共有内容以及各逻辑层分别对应的专有内容。 由上所述, 本发明实施例通过对客户端软件的逻辑结构进行合理分层以及采用接口访问、 事件 机制建立各层之间交互的技术手段, 搭建了一个良好的软件架构, 各逻辑层之间相互分离, 易于拆 分进行独立开发, 各层之间处理的逻辑性强, 且代码的耦合度低, 对一层的改造不会影响其他层的 运行, 从而达到了以一种更简单的方式开发出性能更加优越的软件的目的。 附图说明
图 1示出了根据本发明一个实施例的软件架构的实现方法中的逻辑层次示意图;
图 2示出了根据本发明一个实施例的一种逻辑层间的关系示意图;
图 3示出了根据本发明又一个实施例的一种线程模型的示意图;
图 4示出了根据本发明又一个实施例的一种基于回调模型的交互方法示意图;
图 5示出了根据本发明又一个实施例的一种基于事件模型的交互方法示意图;
图 6示出了根据本发明又一个实施例的通信层的具体结构示意图;
图 7示出了根据本发明又一个实施例的利用插件管理模块安装插件的方法流程图;
图 8示出了根据本发明又一个实施例的一种利用插件管理模块启动插件的方法流程图; 图 9示出了根据本发明又一个实施例的又一种利用插件管理模块启动插件的方法流程图; 图 10示出了根据本发明又一个实施例的一种软件架构的实现平台结构示意图。 具体实施方式
为使本发明的目的、 技术方案和优点更加清楚, 下面将结合附图对本发明实施方式作进一步地 详细描述。
本发明的主要目的在于搭建一个良好的软件架构使开发出的软件具有更优越的性能, 如软件的 性能更加可靠、 强壮, 且足够灵活、 利于扩展复用。 开发人员使用本发明实施例中的软件架构方案, 能够很简单地开发出集成多个功能和应用的软件。
参见图 1, 示出了本发明一个实施例提供的一种软件架构的实现方法中的逻辑层次示意图。 将客 户端软件的逻辑结构划分为多个逻辑层, 该逻辑层包括基础支持层和从下至上的通信层 (如 Comm 层) 、 业务层 (如 Biz层) 、 应用 (APP ) 层 / UI ( User Interface , 用户界面) 层。 建立各逻辑层之 间的消息交互方式, 以通过各逻辑层之间的消息交互运行客户端软件, 例如, 一种消息交互方式的 示例可以为: 上层的逻辑层通过调用下层逻辑层中的接口访问下层的逻辑层, 下层的逻辑层按照设 定的事件机制向上层逻辑层发送消息。
可选的, 对客户端软件中具有插件的场景, 逻辑层中还包括插件接口层 (如 PluginSDK层) 和 插件层 (如 Plugins层) 。 在插件接口层中为插件提供接口, 以使插件能够访问客户端软件; 以及, 将插件设置在插件层中。 在业务层中还设置有插件管理模块, 插件管理模块执行插件的管理操作, 业务层利用插件管理模块对客户端软件的插件进行管理, 该管理操作至少包括插件的安装、 卸载、 加载和启动等。
下面结合一次业务请求操作, 对本实施例提供的客户端软件进行说明。
首先, 客户端软件根据基础支持层提供的内容, 通过应用层 /UI层提供的客户端软件 UI接收来 自用户的业务请求消息, 利用消息交互方式将业务请求消息发送至业务层; 以及, 通过应用层 /UI层 捕获业务层的事件并执行相应的业务操作, 利用消息交互方式将应用层 /UI 层操作结果发送至通信 层。
本实施例在应用层 /UI层中对客户端软件 UI的控制和管理, 并根据捕获到的业务层的事件执行 相应的业务操作。 具体的, 在应用层 /UI层中执行的操作主要包括如下:
1 : UI的控制和管理。 例如, 在应用层 /UI层中提供统一的会话窗口管理、 选项窗口管理, 以及 对 UI控件进行再度封装, 创建具有特定功能和行为的 UI控件等
2: 和业务层的交互管理。 例如捕获业务层抛出的事件, 根据该事件进行一个业务操作等。 3 : 设置界面管理框架 (CFrame ) 。 CFrame为应用层 /UI层界面管理类容器, 利用该 CFrame统 一存储和获取界面管理类, 应用层 /UI层可使用 CFrame获取到本层中各个界面的管理类, 从而获得 不同的界面模块, 并能对界面模块进行操作, 执行界面间的相互调用。 例如, 通过界面模块的调用, 执行由一个窗口唤起完全不相关的另一个窗口的显示的功能。
其次, 客户端软件根据基础支持层提供的内容, 通过业务层对业务请求消息请求的业务数据和 事件进行管理, 并执行业务操作, 利用消息交互方式将业务层操作结果发送至通信层。
本实施例在业务层中对客户端软件的业务数据和事件进行管理, 并执行业务操作。 在业务层中 设置客户端软件的核心业务逻辑, 对外提供业务对象和方法。 具体的, 在业务层执行的操作主要包 括如下:
1 : 业务数据的管理。 例如, 配置数据的管理、 权限数据的管理等。
2: 事件的管理。 例如, 在业务层收到通知添加好友的数据包时, 业务层处理此数据包并抛出添 加好友的事件,由其他的业务层或应用层 / UI层来处理该事件。
3 : 和通信层数据进行交互。 例如, 接收通信层发送的 SIP数据包。
在业务层中还需要设置供应用层 / UI层调用的接口, 以支持应用层 / UI层对业务层的访问。 在业 务层中采用容器这一技术手段处理相关操作, 一个具体实例可以如下: 构造业务层的容器, 如构造 容器类 CSession, 该容器中可以设置业务层中多个业务管理对象 (如插件管理模块) , 具体的, 容 器类 CSession可为单实例结构, 其生命周期和进程的生命周期相等。 容器类 CSession在程序启动时 候初始化, 通过容器类 CSession的初始化可以对每个业务对应的业务管理对象进行初始化; 用户注 销或者掉线的时候调用容器类 CSession的清除(Clear )方法, 可清理每个业务管理对象相关的资源, 例如配置、 内存等等。
再次, 客户端软件根据基础支持层提供的内容, 通过通信层中预定通信方式的通信模块将应用 层 /UI层操作结果和业务层操作结果发送至业务服务器。
本实施例在通信层中设置预定通信方式的通信模块。 例如, 对于 SIP ( Session Initiation Protocol, 会话发起协议)通信, 在通信层中设置多个通信模块分别支持 TCP ( Transmission Control Protocol, 传输控制协议 )通信方式、 HTTPS ( Hypertext Transfer Protocol over Secure Socket Layer, 安全 HTTP ) 通道(Tunnel )通信方式、 HTTP通信方式等。 在通信层中还可以对底层通信细节(如各种代理设置、 凭证等等) 进行封装, 并进行对 SIP 协议的拼包、 解包。 为实现逻辑层之间的交互, 在通信层中还 针对 SIP、 HTTP. 文件传输等不同的通信方式为上层分别提供简单易用的接口, 供上层调用。
本实施例在基础支持层中存储各逻辑层的共有内容以及各逻辑层分别对应的专有内容, 以利用 基础支持层提供的内容支持各逻辑层的运行。 在基础支持层中存储的内容包括公共辅助工具类 ( Utils )、 资源( Resources ) 、 UI控件( UiControls )和在线升级工具( Liveupdate )。 其中, Resources 包括程序资源包、 独特设计的支持多国语言的语言包, 该语言包按照语言类型归档, 支持多语言包 的动态插入、 多国语言动态切换, 并可根据用户的需求定制本国语言包, 使语言设计更加本地化。 参见图 2, 示出了本实施例提供的一种逻辑层间的关系示意图。 应用层 /UI层与业务层具有强相关, 通信层和 Utils具有强相关, 应用层 /UI层、 业务层需要 Utils 的支持, 业务层可以访问通信层, 而 Resources 向各层提供图片等实体数据的支持。 基础支持层可以向应用层 /UI层、 业务层、 通信层和 插件接口层提供统一的应用接口, 降低代码重复性和复杂度。 本发明又一个实施例对软件架构的实现方法中的多线程模型进行说明, 软件架构的实现方法中 的其他内容可以参见本发明其他实施例。 本实施例采用如下四类线程模型, 其中除业务线程外, 其 他三类只存在一个全局线程。
( 1 ) UI线程。 UI线程为 Windows桌面应用程序的界面主线程。 除可能耗费较长时间的业务操 作外, 大部分业务操作将完全在 UI主线程中执行, 这样尽量避免引入线程同步问题, 从而降低开发 的复杂度, 提高编程和运行效率。
( 2 ) 业务线程。 业务线程为业务操作所建立的线程。 当一个业务操作可能耗费较长时间, 从而 造成 UI线程阻塞时, 可以为该业务操作创建业务线程。
( 3 )通信线程。 通信线程为通信层收发 SIP数据包所使用的线程。 SIP通信不具有大流量、 高 实时性要求, 收发操作可以在同一个线程中完成。 通信线程中还会进行 SIP拼 /解包等简单操作。
( 4 ) 定时器 (Timer ) 线程。 一个是 Windows Timer, 另外一个是线程 Timer, 根据具体情况选 择使用, 全局共享。
参见图 3 , 示出了本实施例采用的线程模型的示意图。 UI 方法 (UIMethod ) 和业务方法 ( BizMethod ) 可以运行在 UI线程 ( UIThread ) 上, BizMethod还可以运行在业务线程 ( BizThread ) 上, 发送(Send )操作和接收 (Recv )操作运行在通信线程上。 为需要发送和接收的消息分别建立 发送队列和接收队列, 并为超过预定时间仍未处理的消息建立超时队列, 以便于对消息的管理。 超 时判断 (Timeout )操作运行在定时器线程上。 朝向上方的箭头表示按照事件机制的交互, 朝向下方 的箭头表示接口调用。
本发明又一实施例对软件架构的实现方法中的事件机制进行说明, 软件架构的实现方法中的其 他内容可以参见本发明其他实施例。 本实施例提供的事件机制包括两种模型: 回调 (Callback )模型 和事件 (Event )模型。
回调模型的一种应用场景可以为: UI对象主动发起请求, 等待服务器侧(或另一客户端, 下同) 返回应答, 得知处理结果。 例如, 用户发送会话消息后, 需要知道该消息是否发送成功。 在该场景 下有以下几个特点:
1 : 特定的 UI对象主动发起请求, 并等待处理结果;
2: 只有动作发起对象需要关心该处理结果;
3 : 该处理结果在可预测的时间内 (最长为该动作的超时时间) 一定会返回;
4: 从发起请求到处理结果的返回, 需要传递一些上下文信息。
参见图 4, 示出了本实施例提供的一种基于回调模型的交互方法示意图, 包括如下操作:
S400 : 在业务层对回调请求进行记录并根据该回调请求发送业务请求至通信层。 上述回调请求 是由应用层 /UI层中的 UI对象向业务层发起的。 在业务层中通过业务方法记录该回调请求, 例如, 通过 BizMethod ( UiCallback, UiContex ) 处理回调请求。
S401 : 在通信层对业务请求进行处理。 通信层中通过发送操作将业务请求发送出去。
通过上述步骤 S400至 S401在应用层 /UI层、业务层和通信层之间应用回调机制实现了一个回调 请求。
S402: 在通信层接收对业务请求的处理结果数据包, 对处理结果数据包进行解析并将其转换为 响应消息, 从通信层将该响应消息返回至业务层, 进入步骤 S403 , 由业务层处理响应消息。 响应消 息可以是在业务请求发送后实时接收到的, 也可以是在一定时间范围内接收到的。
S403 : 在业务层中判断是否存在回调请求。
业务层判断是否存在与响应消息对应的回调请求, 若是, 确认存在回调请求, 进入步骤 S404, 若否, 结束操作。
S404: 业务层将响应消息返回至发起回调请求的 UI对象, 执行回调操作。
事件模型的一种应用场景可以为: 通信层收到服务器侧 (或另一客户端) 的消息 (可能是请求 也可能是应答)后, 需要反馈到应用层 /UI层上进行某种展示或进行其他相关动作。 在该场景下有以 下几个特点:
1 : 业务层内部数据发生改变, 即发生了一个事件时 (通常是收到服务器侧或另一客户端的消息 时发生, 但不限于此) , 通知到需要关心该变化的所有 UI对象(被通知者) ;
2: 关心该变化的 UI对象可能不只一个;
3 : 该变化发生的时机对于被通知者不可预知;
4: 被通知者需要 "订阅" 该事件后才可被通知。
参见图 5, 示出了本实施例提供的一种基于事件模型的交互方法示意图, 包括如下操作: S500: 执行事件订阅。
由应用层 /UI层中的一个或多个 UI对象向业务层进行事件订阅, 在业务层中可以通过事件订阅 方法如 SubscribeEvent ( BizEvent, UIEventHandler )执行事件的订阅。
在事件订阅完成后, 执行如下步骤 S501至 S504的操作。
S501 : 通信层接收到消息, 将消息发送至业务层。 通信层接收到的消息会导致业务层的数据变 化, 从而发生相应事件。
S502: 业务层中判断发生的事件是否被订阅, 若是, 进入步骤 S503 , 若否, 结束操作。
S503 : 业务层将事件通知给应用层 /UI层中订阅该事件的 UI对象。
S504: 被通知的 UI对象根据发生的事件执行相应操作。
由上, 本实施例通过上述操作, 提供了一种事件注册管理机制, 把不同的功能和应用调度结合, 代码耦合度低、 流程清晰且具有高性能触发、 界面反应迅速的优点, 在保持软件功能和应用完整性 的同时, 完成了多功能、 应用的互通, 便于开发人员对软件的维护和扩展。 本发明又一个实施例对软件架构的实现方法中的通信层进行说明, 软件架构的实现方法中的其 他内容可以参见本发明其他实施例。 参见图 6, 图中示出了本实施例的通信层的具体结构示意图, 在 通信层中设置业务层管理模块、 模块接口层和模块设置层。 下面分别进行说明:
业务层管理模块:
业务层管理模块负责业务层与通信层的双向通信调用, 例如, 利用业务层管理模块支持业务层 对通信层的接口访问, 为业务层提供 SIP 通讯调用接口, 在模块接口层中设置回调接口等。 业务层 管理模块可以根据业务层对通信层的接口访问, 通过模块接口层中的通信模块接口调用模块设置层 中的通信模块, 以执行客户端的通信。
模块接口层:
在通信层的模块接口层中设置与通信模块对应的通信模块接口 (如回调接口) 以及通信模块接 口的接口数据。 接口数据可以包括连接配置信息、 接收包的数据结构、 发送包的数据结构、 连接类 型等。
参见下述表 1, 示出本实施例提供的连接配置信息。 表 1
Figure imgf000007_0001
接收包的类型 (type ) 、 收到的 SIP请求包 ( SipRequest ) 、 收到的 SIP回应包 ( SipResponse ) 和配对的发送包 ( requestContext ) 。 其中, 接收包的类型可以包括如下:
发送超时 ( SEND— TIMEOUT ) 、 收到非 Ack请求 ( RECV— REQUEST )、
收到回应 ( RECV— RESPONSE ) 、 收到成功回应 ( RECV— RESPONSE— 200 ) 、 收到 Ack 请求 ( RECV ACKREQUEST )。
本实施例提供的发送包的数据结构中包括如下信息:
业务层传递的上下文 ( bizContext ) 和 SIP数据包 ( sipMessage )
本实施例提供的连接类型至少包括 UNKNOWN- TCP DIRECT- HTTPS TUNNEL和 HTTP 四 种类型, 其中, UNKNOWN表示未知的连接类型, TCP— DIRECT表示 TCP i连方式承载 SIP信令, HTTPS TUNNEL 表示 HTTPS方式承载 SIP信令, HTTP表示 HTTP方式承载 SIP信令。
模块设置层:
在通信层的模块设置层中设置预定通信方式的通信模块, 一种通信模块可以为客户端软件提供 一种通信方式, 并可以在通信层中执行通信方式在不同通信模块之间的切换。 本发明又一个实施例对软件架构的实现方法中的业务层的插件管理模块进行说明, 软件架构的 实现方法中的其他内容可以参见本发明其他实施例。 插件是一种软件公开 API接口供自己或者第三 方开发者使用, 以扩展程序功能的应用。本实施例可支持两种类型的插件,一是 B/S ( Browser/Server, 浏览器 /服务器)模式的插件, 或称为外接插件; 一种是客户端 (Client )模式的插件, 或称为本地插 件。 B/S模式的插件指插件的运行环境限定在应用程序指定的插件容器中, 有的 B/S模式的插件需要 服务器支持(该服务器为插件的开发者提供) , 有的 B/S模式的插件只需要一个带有 Javascript客户 端脚本的 HTML文件即可。
在业务层中设置插件管理模块, 该插件管理模块执行插件的管理操作, 如插件的安装、 卸载、 加载和启动; 通过插件管理模块对客户端软件的插件进行管理;
参见图 7, 示出了本实施例的利用插件管理模块安装插件的方法流程图, 包括如下步骤:
S700: 插件管理模块在数据服务器中搜索插件。
客户端软件的插件管理模块中包括插件容器, 插件容器中会记录插件的插件 ID , 当需要请求某 一插件时, 将插件 ID发送至数据服务器, 以在数据服务器中根据该插件 ID搜索插件, 搜索插件时 可以根据插件类型进行搜索, 也可以模糊搜索, 在此不对搜索方法进行具体限定。
S701 : 插件管理模块根据数据服务器返回的搜索结果, 选取需要的插件。
搜索结果中包括搜索出的一个插件或者包括多个插件的插件集合, 在搜索结果中选取与插件 ID 匹配的 B/S模式的插件。
数据服务器还会将插件的描述信息返回至客户端软件侧。 插件的描述信息可以使用 XML ( Extensible Markup Language , 扩展性标识语言)格式, 方便扩展。 描述信息包括插件编号、 插件名 称、 插件类型、 插件标签、 运行模式、 插件权限、 是否使用其他控件支持等, 但不局限于此, 运用 此描述信息进行服务器侧和客户端软件之间的插件的交互。 插件管理模块也可以根据描述信息执行 对 B/S模式的插件的管理操作。
S702: 插件管理模块显示授权页面, 告知用户插件的授权。
插件的权限要求, 需要在提交插件时明确说明。 在向数据服务器提交插件时, 数据服务器需要 提供一个 Web页面, 供插件提供方提交自己的插件列表, 用户填写相关信息, 获得插件的插件 ID。 插件信息记录至服务器的数据库中。 插件提供方可设置插件的权限要求, 例如, 是否记录用户信息, 是否可以访问软件的核心业务, 是否需要安装 ActiveX控件等, 以便于管理与维护。
S703 : 插件管理模块安装插件, 更新本地数据。
当客户端软件侧满足插件权限要求, 将插件安装在客户端软件中, 更新客户端侧的本地数据。 S704: 插件管理模块发送引用通告到引用通告服务器。
安装完插件后, 发送一个 Trackback (即引用通告) 到插件的引用通告服务器, 引用通告服务器 中记录安装插件的用户和插件的权限要求, 以便于插件管理。
S705 : 插件管理模块更新数据到数据服务器, 以便于数据服务器对客户端软件的包括插件在内 的多个功能进行管理。
参见图 8, 示出了本实施例的一种利用插件管理模块启动插件的方法流程图, 包括如下步骤: S800: 插件管理模块启动选择的插件。
插件管理模块可以根据用户通过菜单或工具条发送的选取指令, 获知当前需要启动的插件。 S801 : 插件管理模块判断选取的插件是否与当前要执行的操作相符合, 若是, 进入步骤 S802, 若否, 进入步骤 S803。
S802: 插件管理模块判断该插件是否多人运行, 若是, 进入步骤 S805, 若否, 进入步骤 S804。 S803 : 插件管理模块向用户提示启动操作结束。
S804: 插件管理模块创建插件容器, 插件容器可以装载多个插件。 然后, 进入步骤 S806。 S805 : 插件管理模块向其他具有相同插件的客户端软件的对方用户发出邀请, 进入步骤 S807。 S806: 插件管理模块运行插件, 进入步骤 S808。
S807: 插件管理模块判断被邀请的对方用户是否接受邀请, 若是, 进入步骤 S804, 若否, 进入 步骤 S803。
S808 : 插件管理模块更新引用通告服务器。
插件启动完成后, 插件管理模块发送一个引用通告到插件的引用通告服务器, 对引用通告服务 器中记录的插件的数据进行更新。
上述步骤 S800至 S808主要对客户端软件作为插件启动的发起方时启动插件的场景进行说明, 对接受插件启动邀请的一方,其利用插件管理模块启动插件的方法流程图,参见图 9, 包括如下步骤:
S900: 插件管理模块接收到插件邀请。
被邀请方一侧的客户端软件的插件管理模块接收邀请方发送来的插件邀请。
S901 : 插件管理模块判断客户端软件中是否安装了被邀请的插件, 若是, 进入步骤 S904, 若否, 进入步骤 S902。
S902: 插件管理模块判断客户端软件中是否需要安装该插件, 若是, 进入步骤 S905, 若否, 进 入步骤 S903。
S903: 插件管理模块向邀请方发送拒绝消息。
S904: 插件管理模块在客户端软件中查找被邀请的插件, 进入步骤 S906。
S905: 插件管理模块将插件安装在被邀请的客户端软件中。
S906: 插件管理模块判断查找到的插件是否与客户端软件兼容, 若是, 进入步骤 S908, 若否, 进入步骤 S907。
S907:插件管理模块为不兼容的插件创建针对该插件的独立承载体,启动该插件,进入步骤 S909。 示例性的, 可以采用插件容器作为上述插件的承载体, 但插件的承载体不局限于插件容器。 S908 : 插件管理模块在客户端软件中为兼容的插件寻找对应的承载体, 启动该插件, 进入步骤 S909.
S909: 插件管理模块向邀请方发送响应。
本实施例可以为客户端软件的插件设置一个插件集, 在插件集中设置插件的描述信息或配置信 息, 以及插件行为定义。 可以将不同类型的插件分别设置在不同的插件集中。 然后将插件集装载在 创建的插件容器中, 来执行插件和客户端软件之间的交互。
插件集中的插件行为可以包括获取插件数量、 添加插件、 删除插件、 插件排序、 获取全部插件 和查找对应插件等。 插件管理模块可以统一管理插件集, 在便于管理的基础上还可对插件集再进行 扩展。 插件管理模块执行的管理可以包括: 加载插件、 安装插件、 卸载插件、 发送插件邀请、 接收 插件邀请, 获取插件列表、 获取插件信息、 保存插件列表和更新插件列表等等。
对于为客户端模式的插件, 在客户端软件中为客户端模式的插件设置配置信息, 以由插件管理 模块根据该配置信息执行对客户端模式的插件的管理操作, 如插件加载、 插件卸载等。
本发明实施例的软件架构的实现方案支持外接插件, 使开发出的软件可移植性强、 重用力度大。 插件可通过接口向外部提供自己的服务, 复用力度大, 移植方便。 增加或减少插件不影响整个体系 结构, 例如, 在软件开发的过程中修改应用程序, 通过补丁包的形式增删插件, 从而使软件的结构 容易调整、 易维护。 本发明实施例的实现方案还支持本地插件, 插件类型划分清晰, 支持插件独立 升级, 便利开发, 降低了维护成本。
本发明又一个实施例还提供了一种软件架构的实现平台 100。 参见图 10, 该平台 100 包括逻辑 层设置单元 110、 应用层 /UI层处理单元 11 1、 业务层处理单元 112和通信层处理单元 113。 对于客户 端软件包括插件的场景, 平台 100中还包括插件接口层处理单元 114和插件层处理单元 115。 下面分 别对这些单元进行说明。
逻辑层设置单元 110, 用于将客户端软件的逻辑结构划分为多个逻辑层, 该逻辑层包括基础支持 层和从下至上的通信层、业务层、应用层 /用户界面 UI层; 以及, 建立各逻辑层之间的消息交互方式, 以利用消息交互方式运行客户端软件, 其中, 消息交互方式包括上层的逻辑层通过调用下层逻辑层 中的接口访问下层的逻辑层, 下层的逻辑层按照设定的事件机制向上层逻辑层发送消息。 具体的, 逻辑层设置单元 110,用于由应用层 /UI层中的 UI对象向业务层发送回调请求; 在业务层对该回调请 求进行记录并根据该回调请求发送业务请求至通信层; 当通信层获取到对业务请求的响应消息时, 从通信层将该响应消息返回至业务层, 在业务层中判断是否存在与该响应消息对应的回调请求, 若 是, 将响应消息返回至发起该对应的回调请求的 UI对象, 若否, 结束操作。 以及, 逻辑层设置单元 110, 用于由应用层 /UI层中的一个或多个 UI对象向业务层进行事件订阅; 当业务层中发生一个事件 时, 在业务层中判断该事件是否被订阅, 若是, 则通知订阅该事件的 UI对象, 以使该 UI对象根据 发生的事件执行相应操作, 若否, 结束操作。
应用层 /UI层处理单元 111 , 用于根据基础支持层提供的内容, 通过应用层 /UI层提供的客户端 软件 UI接收来自用户的业务请求消息, 利用消息交互方式将业务请求消息发送至业务层; 以及, 通 过应用层 /UI层捕获业务层的事件并执行相应的业务操作, 利用消息交互方式将应用层 /UI层操作结 果发送至通信层。
业务层处理单元 112, 用于根据基础支持层提供的内容, 通过业务层对业务请求消息请求的业务 数据和事件进行管理, 并执行业务操作, 利用消息交互方式将业务层操作结果发送至通信层。 进一 步的,业务层处理单元 112,用于在业务层中设置插件管理模块,插件管理模块执行插件的管理操作, 管理操作至少包括插件的安装、 卸载、 加载和启动; 利用插件管理模块对客户端软件的插件进行管 理。 其中, 插件包括 B/S模式的插件和 /或客户端模式的插件。 具体的, 业务层处理单元 1 12, 用于 利用插件管理模块中的插件 ID从服务器侧下载与插件 ID匹配的 B/S模式的插件和该插件的描述信 息, 以由插件管理模块根据描述信息执行对 B/S 模式的插件的管理操作; 为客户端模式的插件设置 配置信息, 以由插件管理模块根据该配置信息执行对客户端模式的插件的管理操作。
通信层处理单元 1 13, 用于根据基础支持层提供的内容, 通过通信层中预定通信方式的通信模块 将应用层 /UI层操作结果和业务层操作结果发送至业务服务器。 具体的, 通信层处理单元 1 13, 用于 在通信层中设置业务层管理模块、 模块接口层和模块设置层; 利用业务层管理模块支持业务层对通 信层的接口访问, 以及由该业务层管理模块根据接口访问, 通过模块接口层中的通信模块接口调用 模块设置层中的通信模块, 以完成客户端的通信; 在通信层的模块接口层中设置与通信模块对应的 通信模块接口以及通信模块接口的接口数据; 在通信层的模块设置层中设置预定通信方式的通信模 块。
其中, 基础支持层中存储各逻辑层的共有内容以及各逻辑层分别对应的专有内容。 基础支持层 存储如下内容: 公共辅助工具类、 资源、 UI控件和在线升级工具, 其中, 资源包括程序资源包、 支 持多国语言的语言包。
进一步的, 逻辑层设置单元 1 10划分的逻辑层还包括插件接口层和插件层, 则平台 100还包括 插件接口层处理单元和插件层处理单元。 插件接口层处理单元 1 14, 用于在插件接口层中为插件提供 接口, 以使插件能够访问客户端软件; 插件层处理单元 1 15, 用于将插件设置在插件层中。
本发明产品实施例中各单元的具体工作方式可以参见本发明方法实施例中的相关内容。
由上所述, 本发明实施例通过对客户端软件的逻辑结构进行合理分层以及采用接口访问、 事件 机制建立各层之间交互的技术手段, 搭建了一个良好的软件架构, 各逻辑层之间相互分离, 易于拆 分进行独立开发, 各层之间处理的逻辑性强, 且代码的耦合度较低, 对一层的改造不会影响其他层 的运行, 从而达到了以一种更简单的方式开发出性能更加优越的软件的目的。
以上所述仅为本发明的较佳实施例而已, 并非用于限定本发明的保护范围。 凡在本发明的精神 和原则之内所作的任何修改、 等同替换、 改进等, 均包含在本发明的保护范围内。

Claims

权利 要求 书
1、 一种软件架构的实现方法, 包括:
将客户端软件的逻辑结构划分为多个逻辑层, 所述逻辑层包括基础支持层和从下至上的通信层、 业务层、 应用层 /用户界面 UI层; 以及, 建立所述各逻辑层之间的消息交互方式, 以利用所述消息交 互方式运行客户端软件, 其中, 所述消息交互方式包括上层的逻辑层通过调用下层逻辑层中的接口 访问下层的逻辑层, 下层的逻辑层按照设定的事件机制向上层逻辑层发送消息;
根据所述基础支持层提供的内容, 通过所述应用层 /UI层提供的客户端软件 UI接收来自用户的 业务请求消息, 利用所述消息交互方式将所述业务请求消息发送至所述业务层; 以及, 通过所述应 用层 /UI层捕获所述业务层的事件并执行相应的业务操作, 利用所述消息交互方式将应用层 /UI层操 作结果发送至所述通信层;
根据所述基础支持层提供的内容, 通过所述业务层对所述业务请求消息请求的业务数据和事件 进行管理, 并执行业务操作, 利用所述消息交互方式将业务层操作结果发送至所述通信层;
根据所述基础支持层提供的内容, 通过所述通信层中预定通信方式的通信模块将所述应用层 /UI 层操作结果和所述业务层操作结果发送至业务服务器;
其中, 所述基础支持层中存储所述各逻辑层的共有内容以及各逻辑层分别对应的专有内容。
2、 根据权利要求 1所述的方法, 其中, 所述方法还包括:
在所述业务层中设置插件管理模块, 所述插件管理模块执行插件的管理操作, 所述管理操作至 少包括插件的安装、 卸载、 加载和启动;
利用所述插件管理模块对客户端软件的插件进行管理;
其中, 所述插件包括浏览器 /服务器 B/S模式的插件和 /或客户端模式的插件。
3、 根据权利要求 2所述的方法, 其中, 所述逻辑层还包括插件接口层和插件层, 所述方法还包 括:
在插件接口层中为插件提供接口, 以使插件能够访问客户端软件;
以及, 将插件设置在插件层中。
4、 根据权利要求 1所述的方法, 其中, 所述下层的逻辑层按照设定的事件机制向上层逻辑层发 送消息包括:
由应用层 /UI层中的 UI对象向业务层发送回调请求;
在业务层对该回调请求进行记录并根据该回调请求发送业务请求至通信层;
当通信层获取到对所述业务请求的响应消息时, 从通信层将该响应消息返回至业务层, 在业务 层中判断是否存在与该响应消息对应的回调请求, 若是, 将所述响应消息返回至发起该对应的回调 请求的 UI对象, 若否, 结束操作。
5、 根据权利要求 1所述的方法, 其中, 所述下层的逻辑层按照设定的事件机制向上层逻辑层发 送消息包括:
由应用层 /UI层中的一个或多个 UI对象向业务层进行事件订阅;
当业务层中发生一个事件时, 在业务层中判断该事件是否被订阅, 若是, 则通知订阅该事件的 UI对象, 以使该 UI对象根据发生的事件执行相应操作, 若否, 结束操作。
6 、 根据权利要求 1所述的方法, 其中, 所述方法还包括:
在所述通信层中设置业务层管理模块、 模块接口层和模块设置层;
利用所述业务层管理模块支持业务层对通信层的接口访问, 以及由该业务层管理模块根据所述 接口访问, 通过所述模块接口层中的通信模块接口调用所述模块设置层中的通信模块, 以完成客户 端的通信;
在通信层的模块接口层中设置与通信模块对应的通信模块接口以及通信模块接口的接口数据; 在通信层的模块设置层中设置预定通信方式的通信模块。
7、 根据权利要求 2所述的方法, 其中, 所述利用所述插件管理模块对客户端软件的插件进行管 理包括: 利用插件管理模块中的插件 ID从服务器侧下载与所述插件 ID匹配的 B/S模式的插件和该插件 的描述信息, 以由插件管理模块根据所述描述信息执行对所述 B/S模式的插件的管理操作;
为客户端模式的插件设置配置信息, 以由插件管理模块根据该配置信息执行对所述客户端模式 的插件的管理操作。
8、 根据权利要求 1所述的方法, 其中,
在所述基础支持层中存储的内容包括公共辅助工具类、 资源、 UI控件和在线升级工具, 所述资 源包括程序资源包、 支持多国语言的语言包。
9、 一种软件架构的实现平台, 包括:
逻辑层设置单元, 用于将客户端软件的逻辑结构划分为多个逻辑层, 所述逻辑层包括基础支持 层和从下至上的通信层、 业务层、 应用层 /用户界面 UI层; 以及, 建立所述各逻辑层之间的消息交互 方式, 以利用所述消息交互方式运行客户端软件, 其中, 所述消息交互方式包括上层的逻辑层通过 调用下层逻辑层中的接口访问下层的逻辑层, 下层的逻辑层按照设定的事件机制向上层逻辑层发送 消息;
应用层 /UI层处理单元, 用于根据所述基础支持层提供的内容, 通过所述应用层 /UI层提供的客 户端软件 UI接收来自用户的业务请求消息, 利用所述消息交互方式将所述业务请求消息发送至所述 业务层; 以及, 通过所述应用层 /UI层捕获所述业务层的事件并执行相应的业务操作, 利用所述消息 交互方式将应用层 /UI层操作结果发送至所述通信层;
业务层处理单元, 用于根据所述基础支持层提供的内容, 通过所述业务层对所述业务请求消息 请求的业务数据和事件进行管理, 并执行业务操作, 利用所述消息交互方式将业务层操作结果发送 至所述通信层;
通信层处理单元, 用于根据所述基础支持层提供的内容, 通过所述通信层中预定通信方式的通 信模块将所述应用层 /UI层操作结果和所述业务层操作结果发送至业务服务器;
其中, 所述基础支持层中存储所述各逻辑层的共有内容以及各逻辑层分别对应的专有内容。
10、 根据权利要求 9所述的平台, 其中,
所述业务层处理单元, 用于在所述业务层中设置插件管理模块, 所述插件管理模块执行插件的 管理操作, 所述管理操作至少包括插件的安装、 卸载、 加载和启动; 利用所述插件管理模块对客户 端软件的插件进行管理;
其中, 所述插件包括浏览器 /服务器 B/S模式的插件和 /或客户端模式的插件。
1 1、 根据权利要求 10所述的平台, 其中, 所述逻辑层设置单元划分的逻辑层还包括插件接口层 和插件层, 所述平台还包括插件接口层处理单元和插件层处理单元,
所述插件接口层处理单元, 用于在插件接口层中为插件提供接口, 以使插件能够访问客户端软 件;
所述插件层处理单元, 用于将插件设置在插件层中。
12、 根据权利要求 9所述的平台, 其中, 所述逻辑层设置单元, 用于由应用层 /UI层中的 UI对 象向业务层发送回调请求; 在业务层对该回调请求进行记录并根据该回调请求发送业务请求至通信 层; 当通信层获取到对所述业务请求的响应消息时, 从通信层将该响应消息返回至业务层, 在业务 层中判断是否存在与该响应消息对应的回调请求, 若是, 将所述响应消息返回至发起该对应的回调 请求的 UI对象, 若否, 结束操作。
13、 根据权利要求 9所述的平台, 其中, 所述逻辑层设置单元, 用于
由应用层 /UI层中的一个或多个 UI对象向业务层进行事件订阅; 当业务层中发生一个事件时, 在业务层中判断该事件是否被订阅, 若是, 则通知订阅该事件的 UI对象, 以使该 UI对象根据发生 的事件执行相应操作, 若否, 结束操作。
14、 根据权利要求 9所述的平台, 其中, 所述通信层处理单元, 用于
在所述通信层中设置业务层管理模块、 模块接口层和模块设置层; 利用所述业务层管理模块支 持业务层对通信层的接口访问, 以及由该业务层管理模块根据所述接口访问, 通过所述模块接口层 中的通信模块接口调用所述模块设置层中的通信模块, 以完成客户端的通信; 在通信层的模块接口 层中设置与通信模块对应的通信模块接口以及通信模块接口的接口数据; 在通信层的模块设置层中 设置预定通信方式的通信模块。
15、 根据权利要求 10所述的平台, 其中, 所述业务层处理单元, 用于利用插件管理模块中的插 件 ID从服务器侧下载与所述插件 ID匹配的 B/S模式的插件和该插件的描述信息, 以由插件管理模 块根据所述描述信息执行对所述 B/S 模式的插件的管理操作; 为客户端模式的插件设置配置信息, 以由插件管理模块根据该配置信息执行对所述客户端模式的插件的管理操作。
16、 根据权利要求 9 所述的平台, 其中, 所述基础支持层存储如下内容: 公共辅助工具类、 资 源、 UI控件和在线升级工具, 其中, 所述资源包括程序资源包、 支持多国语言的语言包。
PCT/CN2013/091179 2013-12-31 2013-12-31 软件架构的实现方法和实现平台 WO2015100646A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2013/091179 WO2015100646A1 (zh) 2013-12-31 2013-12-31 软件架构的实现方法和实现平台
CN201380081137.8A CN105745620B (zh) 2013-12-31 2013-12-31 软件架构的实现方法和实现平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/091179 WO2015100646A1 (zh) 2013-12-31 2013-12-31 软件架构的实现方法和实现平台

Publications (1)

Publication Number Publication Date
WO2015100646A1 true WO2015100646A1 (zh) 2015-07-09

Family

ID=53492989

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2013/091179 WO2015100646A1 (zh) 2013-12-31 2013-12-31 软件架构的实现方法和实现平台

Country Status (2)

Country Link
CN (1) CN105745620B (zh)
WO (1) WO2015100646A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020223997A1 (zh) * 2019-05-05 2020-11-12 东北大学 一种存算显全局可配置的数据分析软件架构设计方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107145353A (zh) * 2017-05-05 2017-09-08 武汉斗鱼网络科技有限公司 软件框架及软件框架设计方法
CN109412840A (zh) * 2018-10-08 2019-03-01 郑州云海信息技术有限公司 一种数据获取方法及sdn控制器
CN109857502A (zh) * 2019-01-24 2019-06-07 苏州思必驰信息科技有限公司 实现业务逻辑与显示分离的方法及业务逻辑与显示分离的系统架构
CN110471757B (zh) * 2019-03-29 2023-04-14 重庆长安汽车股份有限公司 一种车载智能天线系统的软件架构及汽车
CN111176724B (zh) * 2019-10-18 2022-06-28 华为云计算技术有限公司 一种软件架构分析的计算机实现方法及其装置
CN110825395B (zh) * 2019-10-23 2023-04-07 中冶赛迪信息技术(重庆)有限公司 多插件分层部署系统、设备及介质
CN114327466B (zh) * 2022-01-30 2024-05-17 重庆长安汽车股份有限公司 一种车载app模块间消息解耦的实现方法及系统
CN114237699B (zh) * 2022-02-24 2022-05-03 四川信用通数字科技股份有限公司 一种配置脚本的导出方法、装置及存储介质
CN114816347B (zh) * 2022-04-15 2023-03-24 巨翊科技(上海)有限公司 一种软件架构的搭建方法、装置及系统
CN115794040B (zh) * 2022-11-14 2024-02-06 深圳十沣科技有限公司 构造cae软件架构的方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030078960A1 (en) * 2001-04-30 2003-04-24 Murren Brian T. Architecture and process for creating software applications for multiple domains
CN101056262A (zh) * 2007-03-26 2007-10-17 宝丽雅智能系统(深圳)有限公司 应用系统业务数据和网络数据的连接与交换方法
CN101996071A (zh) * 2009-08-20 2011-03-30 上海杉达学院 一种信息控制系统的软件架构及构建方法
CN103036917A (zh) * 2011-09-29 2013-04-10 北京神州泰岳软件股份有限公司 客户端平台的实现方法及客户端平台

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101360263A (zh) * 2007-07-31 2009-02-04 华源润通(北京)科技有限公司 一种移动查询系统的客户端以及前后台数据处理方法
CN101826018B (zh) * 2010-05-20 2014-05-14 瑞斯康达科技发展股份有限公司 一种网元管理系统界面交互开发系统及方法
WO2012142854A1 (zh) * 2011-04-18 2012-10-26 北京新媒传信科技有限公司 一种应用服务平台系统及其实现方法
CN103034477B (zh) * 2011-09-29 2016-06-29 北京新媒传信科技有限公司 一种组件式开放架构模型实现方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030078960A1 (en) * 2001-04-30 2003-04-24 Murren Brian T. Architecture and process for creating software applications for multiple domains
CN101056262A (zh) * 2007-03-26 2007-10-17 宝丽雅智能系统(深圳)有限公司 应用系统业务数据和网络数据的连接与交换方法
CN101996071A (zh) * 2009-08-20 2011-03-30 上海杉达学院 一种信息控制系统的软件架构及构建方法
CN103036917A (zh) * 2011-09-29 2013-04-10 北京神州泰岳软件股份有限公司 客户端平台的实现方法及客户端平台

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020223997A1 (zh) * 2019-05-05 2020-11-12 东北大学 一种存算显全局可配置的数据分析软件架构设计方法

Also Published As

Publication number Publication date
CN105745620A (zh) 2016-07-06
CN105745620B (zh) 2019-04-30

Similar Documents

Publication Publication Date Title
WO2015100646A1 (zh) 软件架构的实现方法和实现平台
EP3336697B1 (en) Edge computing platform
CN109525624B (zh) 一种容器登录方法、装置及存储介质
WO2020177564A1 (zh) Vnf的生命周期管理方法及装置
US10999405B2 (en) Method for processing access requests and web browser
WO2023093429A1 (zh) 微应用的运行方法、装置、设备、存储介质及程序产品
Bouloukakis et al. Automated synthesis of mediators for middleware-layer protocol interoperability in the IoT
EP2620872A1 (en) Method and device for callback processing in telecommunication capacity opening
CN110995797B (zh) 多层b/s与c/s混合式软件系统、各层之间异步实时通信方法
WO2022037612A1 (zh) 提供应用构建服务的方法及应用构建平台、应用部署方法和系统
JP2022514834A (ja) Mpeg nbmpにおいてメディアコンテンツを処理する方法、装置、及びプログラム
EP3782061A1 (en) System and method to securely execute datacenter management operations remotely
US11853808B2 (en) Visual cluster deployment and operation system and method
CN102523109A (zh) 资源状态更新方法、管理客户端及服务器
WO2023093452A1 (zh) 资源交互方法、装置、终端及存储介质
TWI356301B (en) Memory management system and method for open platf
US11411812B2 (en) Dynamic service creation for microservice-based integration service
CN112905337A (zh) 软硬件混合部署的MySQL集群调度方法及装置
CN115248692A (zh) 一种支持多种深度学习框架模型云端部署的装置及方法
Wang Mobile cloud computing
CN116204239A (zh) 业务处理方法、装置和计算机可读存储介质
CN108696550B (zh) 快速构建和复制云的系统和方法
CN112612428B (zh) 一种提升Codeigniter框架性能的方法及装置
JP2021184235A5 (zh)
CN113946614A (zh) 一种iOS基于静态库的网络数据传输方法、装置及系统

Legal Events

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

Ref document number: 13900808

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13900808

Country of ref document: EP

Kind code of ref document: A1