1. Field of the Invention
This invention relates generally to visual mapping systems, and, more particularly, to a visual mapping system that can exchange data with external data sources.
2. Description of the Background Art
A visual map is a diagram that represents ideas and/or information in topics. Examples of visual maps are mind maps, topic maps, semantic networks, and concept maps. Visual maps are increasingly used to help people generate, classify, and/or organize ideas and information and to see such ideas and information in a hierarchical, visual layout.
Visual maps are used for project management, work-flow analysis, organizational charts, and other purposes.
There are software programs that enable people to easily create visual maps. Mindjet Corporation's MindManager® software is an example of such software. In known visual mapping software applications, users create topics in a visual map by inserting or importing texts and graphic elements into topics.
It is often desirable to integrate data from an external data source into a visual map. It can be easier to view and digest information from an external data source in the context of a visual map because the visual map provides a graphical display of information. It also is often desirable to export data in a visual map to an external data source.
There is a need for a visual mapping system that can import data from and export data to an external data source on the “back-end” without the user having to initiate the data exchange in real-time through a visual map. There is also a need for a system that allows topics with external system data to be stored and searched separately from a visual map file and to be accessed by multiple users.
The present invention provides an improved system and method for integrating external system data into a visual map. The visual mapping system of the present invention is based on a client-server architecture. The visual mapping system includes at least one server and at least one client visual mapping application through which a user can view, create, and edit visual maps. The server manages the storage and retrieval of maps and topics in the visual mapping system.
The server obtains data from an external system, where the data can be “pushed” to the server by the external system or the data can be “pulled” from the external system by the server (e.g., the server can send a request to the external system for data satisfying certain criteria). The server organizes the data from the external system into topics. It then stores the topics in the database (where “storing” the topic can include instructing a database server to store the topics). The topics are stored individually in the database so that they can be separately searched and retrieved. The server provides the topics to the client visual mapping application when the user requests the topics. The server also can export to an external system data that a user inputted into a topic.
The client visual mapping application does not need to be running for the server to import data from or export data to an external system. In other words, data exchange with external systems happens on the “back-end” and does not require the user to be using the visual mapping system at the time of the data exchange. This way external system data can be ready for the user to view in a visual map the next time a user opens a visual map. Because the server can both import and export data, the present invention can be used to enable a user to exchange data with multiple external systems via a visual map interface.
Because topics are stored individually in a database, topics with external system data can be shared across multiple visual maps by multiple users. The topics are indexed so that they can be easily searched by users.
a-b are a flow chart that illustrates a method for exporting data to an external system.
a-5c are tables that illustrate an example of how topics are stored in a database.
a-6c are tables that illustrate an example of how workspaces are stored in a database.
a-12b are a flow chart that illustrates how a visual mapping system can create the visual maps shown in
The visual mapping system of the present invention is based on a client-server architecture which includes at least one server and one client visual mapping application. Users create, view, and edit visual maps through a client visual mapping application that communicates with a server in the visual mapping system. The server manages the storage and retrieval of topics in a visual map and provides them to client visual mapping applications upon request.
The server searches (or initiates a search) of the index in response to a user entering search criteria for a topic/map search or opening of a visual map with topics (250). The relevant topics are then sent to the user's client visual mapping application (260).
The server communicates with external systems independent of the client visual mapping applications. In other words, the client user application need not be running for the server to import data from an external system. The server is running applications to import and/or export data on its own, thereby providing “back-end” integration of data from external systems. This way large amounts of data can be imported and organized into topics while the user is doing something else, and, when the user interfaces with the visual mapping system through a client visual mapping application, the server is ready to search for and retrieve topics and maps with external system data.
Because topics are stored individually, they can be used in different maps and by different users. By integrating external system data into topics that can be shared across multiple maps and users, the visual mapping system does not have to repeat requests for the same external system data for each user. If a topic with requested external system data already exists and the user has access rights to the topic, then the server in the visual mapping system can simply retrieve such topic from the database instead of having to re-obtain the data from the external system.
An external system is a system or software application that is external to the visual mapping system. There are many different type of external systems from which the server in the visual mapping system can retrieve data. The server can search websites for data to import. The server also can import data from various business enterprise systems, such as project management systems, accounting systems, Customer Resource Management (CRM) systems, Enterprise Resource Planning (ERP) systems, contact information systems, etc. Data from more than one external system can be inserted into a topic. In one embodiment, the server in the visual mapping system can search websites or request data from business systems based on criteria previously enter by a user through a client visual mapping application or by a system administrator through a configuration tool that interfaces with the server.
Data can be imported into topics that are tailored to display a specific type of content in a certain way. For instance, the data can be imported into “content-specific topics” described in U.S. patent application Ser. No. 11/478,220 titled “System and Method for Providing Content-Specific Topics in a Mind Mapping Application” filed on Jun. 29, 2006 with inventors Michael B. Jetter, Richard Barber, Michael Scherotter, Stefan Funk, Andrew Mochalasy, and Peter Hizalev, the contents of which are incorporated by reference as if fully disclosed herein.
The server may export data in the topics in response to a request from an external system for data meeting certain criteria (360). In such case, the server searches the database for topics meeting the criteria of the request (365). Alternatively, the visual mapping system may run programs to send data meeting certain criteria to external systems (360). In such case, the server may periodically search for topics meeting such criteria (365). For instance, the visual mapping server may be programmed to perform searches at certain times or certain intervals. The server may also export data based on criteria entered by a user or a system administrator.
In response to finding topics meeting the search criteria, the server extracts the applicable data from such topics (370) and sends it to the applicable external system(s) (380). The external system may send a response back to the server, and, if so the server receives the results (390), and updates the applicable topics with the results (395). The next time a user views the topics, the user will see the updated version of the topics.
When a user searches for a map or a topic, the user's client visual mapping application 410 sends the search criteria to the server query module 430. The server query module 430 formulates a search query for the applicable topics and sends the query on to the database query module 460, which searches the index 465 for topics meeting the search criteria. A list of topics/maps meeting the search criteria is then sent to the server query module 430, which forwards the list to the applicable client visual mapping application 410. If a user wants to load a topic or map from the list into the client visual mapping application 410, the client visual mapping application 410 requests the topic/map from the server query module 430, which then formulates an applicable query for the database query module 460. The database query module 460 retrieves from the database 470 the requested topic, or in the case of a map, the topics in the map, and sends them to the server query module 430, which passes them on to the applicable client visual mapping application 410. More details of how a user can search and retrieve topics and visual maps in the visual mapping system are described in the co-pending application titled “System and Method for Enabling a User to Search and Retrieve Topics in a Visual Map on an Individual Basis,” filed on Dec. 12, 2007 with inventors Richard Barber, Peter Hizalev, Andrew Mochalskyy, and Stefan Funk, the contents of which are incorporated by reference as if fully disclosed herein.
In one embodiment, the sever query module 430 communicates with the database server 450, the client visual mapping applications 410, and external systems 407 via networks 440, 425, and 415, respectively. These networks may be the same network or different networks. They may a private network or the Internet (or a combination of both).
The server query module 430 organizes data from external systems 407 into topics and forwards the topics onto the database query module 460 for storage in the database 470. When data is to be sent to an external system 407 (either by the request of the visual mapping system or an external system), the server query module 430 formulates a query request with search criteria for topics, and sends the query to the database query module 460, which then searches the database 470 for topics meeting the search criteria.
Translational layers 405 enable the server query module 430 to communicate with external systems. Each translational layer 405 formats communications from an external system into a format understandable by the server query module 430. Similarly, each translational layer 405 formats communications from the server query module 430 into a format understandable by the applicable external system 407.
A client visual mapping application 410 may be a software application running on a user's computer or may be a browser-based application (where a user interfaces with the visual mapping server 420 through a web browser).
In one embodiment, the server query module 430 communicates with the database query module 460 in XML or SOAP, and the database query module 460 communicates with the database using SQL.
Those skilled in the art will appreciate that
A user can select the “map” link 1040 in each topic to see a map that illustrates the location of the applicable hotel, restaurant, or site. Users can also make a reservation at a hotel or restaurant by clicking on the “book it” or “make a reservation” links 1050, 1060. Clicking on a link pulls up a form in which a user enters the desired dates, time, and other information necessary to make a reservation (in an alternate embodiment, the link can take a user directly to an external reservation website). After a reservation is made and confirmed, the map is updated to show that a reservation is made, as shown in
The flowcharts in
If a user enters data for making a hotel or restaurant reservation, the data is saved with the applicable topics. In one embodiment, when a user saves a topic with a reservation request (1265), the server query module 430 extracts the applicable reservation data and sends it to a reservation service via a translational layer 405 (1270). The reservation service may be different from the travel website from which the travel information was retrieved and, thus, the translational layer 405 may be different than the translational layer referenced in step 1220. The reservation service then attempts to make the reservation and sends a message back to the server 420 indicating whether or not the reservation was made (1280). The server query module 430 then updates the applicable topic to show whether or not the reservation was made (1290). If the user is viewing the topic at the time the topic is updated, the server query module 430 dynamically updates the user's client visual mapping application 410 so that a user can immediately see the change. If the user has already closed the map with the topic, the user will see the results the next time the user loads the topic through which the user made the reservation request (topics 1070, 1080 and 1090 in
The present invention also can be used to support workflow between external systems. For example, a user can view a visual map with data from a CRM system. The topics in the map can be configured to display invoice information and provide an interface through which a user can approve invoices. If a user approves an invoice through the visual map, then notice of the approval can be sent to an external accounting system.
a-5c and 6a-6b are example, simplified tables that illustrate how topics, maps, and workspaces can be stored in a database. These examples are described with respect to the example maps in
b illustrates an example of how maps are stored. In this embodiment, a map is just the central or primary topic in the map from to which all other topics directly or indirectly connect. The table in
c illustrates a Change Log table. The Change Log table lists each change associated with a topic. For instance, the table shows that the topic with topic ID “2” (“Dog Food” in
In one embodiment, the visual mapping system supports workspaces, where users belonging to a workspace can share documents in the workspace. Workspaces are assigned IDs, and
c is a table that relates each workspace to a map by relating each workspace to the main topic ID for the map (e.g., the central topic). In this example, workspace “1007” (“Work”) includes maps having main topic IDs “802,” “764” (map not shown), and “985” (map not shown). Workspace “1008” (“Play”) includes maps having main topic IDs “1” and “675” (map not shown).
As will be understood by those familiar with the art, the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Accordingly, the above disclosure of the present invention is intended to be illustrative and not limiting of the invention.