The details of the present invention will be more readily understood from a detailed description of the preferred embodiments taken in conjunction with the following figures.
Please refer to
The distributed push-pull information service system 10 according to the first embodiment of the present invention comprises an information service server 20 and at least one client device 30 remote from the server 20. The information service server 20 can retrieve various kinds of information from one or more information providers 40, and then reorganize these retrieved information into predetermined formats, and then compress the reorganized information to minimize its size, and then store these compressed information for later usage. Examples of the information providers 40 can be news provider such like BBC news or CNN news, stock data provider such like NYSE/NASDAQ, or even internet search engine such as Google. The client device 30 can connect to and login the server 20 via a communication medium 50 for obtaining the information stored in the server 20 by means of a pushing technique or a pulling technique. Common examples of the communication medium 50 can be GSM, GPRS, CDMA, DAB (Digital Audio Broadcasting), WLAN, ADSL or even Cable TV.
In the first embodiment of the present invention, the information provided by the information service server 20 includes at least a first kind and a second kind of information. The first kind of information will be transmitted to the client device 30 in a pushing basis, such as broadcasting. On the other hand, the second kind of information will be provided to the client device 30 in a pulled basis under user's demand. The client device 30 can send a pulling request to the server 20 for acquiring the second kind of information. Please refer to
The display module 31 can display at least a text and a graphic. Common examples of the display module 31 can be TFT LCD, STN LCD, plasma display, image projector, monitor and etc.
The connecting module 32 can communicate with the external information service server 20 by using a protocol supported by that server 20. Common examples of the protocol which can be applied in the present invention include but not limited to: GSM, GPRS, CDMA, DAB, WLAN, LAN, ADSL, Cable TV, and etc. In this preferred embodiment, the connecting module 32 of the client device 30 further comprises: a TCP/IP module 321 for communicating using WLAN/LAN protocol, an SMS module 322 for performing SMS functions, an HTTP module 323 for accessing and browsing internet via ADSL, an SSL module 324 for performing secured internet trading, a Mail module 325 for receiving/sending Email via internet, a GSM/GPRS module 326 for communicating using GSM/GPRS protocol, a CDMA module 327 for communicating using CDMA protocol, and a DAB module 328 for communicating using DAB protocol.
The user interface 33 can accept commands from a user 61 and display texts and graphics on the display module 31 according to the commands. The user interface 33 further comprises: a graphic user interface module 331, a connector UI module 332, a portfolio editor UI module 333, a RT UI module 334, a TA UI module 335, an option UI module 336, a news UI module 337, and an order UI module 338. The graphic user interface module 331 is able to transform raw data into graphics, and to transform locations of the graphic into raw data such like time periods. The connector UI (User Interface) module 332 can present a login screen on the display module 31 and allow the user 61 to perform login operation. The portfolio editor UI module 333 allows the user 61 to select stocks, news, or other information (such like leisure information, entertainment information, weather information, traffic information, banking information, sports information, gaming information, gambling information, commerce information etc.) according to the commodity & sector module 351, and to edit user-defined stock data according to the portfolio information module 352. The RT (Real Time) UI module 334 allows the user 61 to access data processed by the RT Data Storage-Parsing-Interpretation Engine 353. The TA (Technical Analysis) UI module 335 not only allows the user 61 to access historical data, but also the data processed by the TA data module 354 and to generate corresponding technical diagrams or graphics that can be displayed on the display module 31. The option UI module 336 allows the user 61 to access data processed by the option data module 355. The news UI module 337 allows the user 61 to browse news records of the new data module 356. The order UI module 338 allows the user 61 to make orders to buy or sell stock or option or future commodities via the order information module 357.
The core engine 34 is able to interact with the user interface 33 and the server 20, and to handle data coming from the connector module 32, and to process commands input from the user interface 33. In the first preferred embodiment, the core engine 34 further comprises: a login interface module 341, a data packet transfer interface module 342, an authentication module 343, a keep-alive module 344, a header processing module 345, and a cryptography module 346. The login interface module 341 can establish communication between the client device 30 and the server 20, and can establish intercommunication between other modules of the client device 30. The data packet transfer interface module 342 can provide a unified format of data packages for data module 34, even when the data packages are from different connecting module 32, using different protocols, or containing different types of information. The authentication module 343 can generate and send the authentication to the server 20 when the user 61 tries to login the server 20 by operating the connector interface 33. The keep-alive module 344 can maintain connection between the client device 30 and the server 20, even when the user 61 does not operate the client device 30 for a period of time or when there is a transmission interruption due to the nature of mobile environment. The header processing module 345 is to process headers of data packages. The cryptography module 346 is to encrypt and decrypt data.
The data module 35 is coupled to the core engine 34 for further processing data received from the core engine 34 according to the type of data and then storing the processed data to a memory 36. In the first preferred embodiment, the data module 35 further comprises: a commodity & sector module 351, a portfolio information module 352, a RT Data Storage-Parsing-Interpretation Engine 353, a TA data module 354, an option data module 355, a news data module 356, and an order information module 357. The commodity & sector module 351 is for processing data in the type of name and classification of stock data. The portfolio information module 352 is for processing data in the type of user-defined stock data. The RT Data Storage-Parsing-Interpretation Engine 353 is for processing, calculating and analysing data in the type of realtime stock data. The TA data module 354 is for processing data in the type of historical stock data and company profile and financial statements etc. The option data module 355 is for processing data in the type of option market data. The news data module 356 is for processing data in the type of news. The order information module 357 is for processing data in the type of user's order data.
Please refer to
The authentication billing module 225 checks the validity of an authentication of the client device 30 before allowing that client device 30 to either receive broadcasted information or send pulling requests. The intelligent transfer module 226 controls a data flow rate between the client devices 30 and the server 20, and transmits pulling requests and different kinds of information between these modules. When the amount of client devices 30 (ie. users) increases, the server 20 only needs to increase the number of the intelligent transfer module 226 for expanding its capacity. The communication module 25 is for recognizing protocols supported by the client devices 30 and for communicating with client devices 30 by using the same protocols. Examples of the above mentioned communication protocols can be but not limited to: TCP/IP, SMS, HTITP, SSL, GSM/GPRS, CDMA or DAB. The client's operating system module 24 presents examples of the operating systems of client devices 30, which could be supported by the server 20. In this embodiment, the client's operating system module 24 can further comprises a A8 Tele OS module 241 which supports a protocol specially designed by the designer of the system, a PPC module 242, a Palm module 243, a Symbian module 244 and a Linux module 245. Typical examples of communication protocols which might be used by the operating systems of client devices 30 and yet be supported by the server 20 of the present invention can be but not limited to: GSM, GPRS, CDMA, DAB, WLAN, ADSL and Cable TV. The load balance firewall module 227 is coupled between the communication module 25 and the intelligent transfer module 226. The load balance firewall module 227 is able to encrypt/decrypt data to be transmitted, and to prevent data overload and hacking from the client devices 30. The customer database 228 stores customer data of client devices 30. The customer data includes at least the validity of authentication of the client device 30. The CRM module 229 is connected with the customer database 228 for allowing users of the client devices 30 to make payments for obtaining valid authentications, or to perform on-line purchasing of stocks, options or future commodities. The secure order module 230 is connected between the intelligent transfer module 226 and an external trading organization 62 such as NYSE, NASDAQ through security firms 63 such as Fidelity or AmeriTrade. The secure order module 230 provides a secure mechanism for users of the client devices 30 to make trading orders to that trading organization 62 through said server 20 in condition that the authentication of that client device 30 is valid. The historical database 231 is connected to the data integration module 222. Information obtained (including historical information) from the information providers 40 is first compressed by the data compression module 221 and then integrated by the data integration module 222 and then stored in the historical database 231 for later usage.
Please refer to
(A) Authentication Flow:
A client user 61 operates the client device 30 by using the user interface 33 to send his/her account, password, and IMEI (or other unique number, i.e. UID) to the authentication billing module 225 through intelligent transfer module 226 of the server 20. The authentication billing module 225 verifies these information and sends back the server's 20 IP and port with client's access right to the client device 30 through the intelligent transfer module 226. The client device 30 then ends this authentication process after receiving the information.
An example of detailed operation of the authentication process is illustrated as following:
1. The user 61 operates the client device 30 and switches it into the screen of “connector UI 332”, then input his/her account number and password, and then click “login” or “transmit”.
2. The connector UI 332 transmits the information of account number and password to the login interface 341 to add the information of IMEI (or UID) of that client device 30. Then the combined information is encrypted by the authentication module 343 and is added with a header for distinguishing the type of the data (such as Authentication), and then is transmitted to the intelligent transfer module 226 of the server 20.
3. When the intelligent transfer module 226 receives the authentication data, it will transmit this authentication data to the authentication billing module 225 for checking its validity.
4. When the authentication billing module confirms that the account number, password and deadline for using the service are still valid, a confirmation signal (i.e. the result of authentication) will be sent back to the authentication module 343 of client device 30 via the intelligent transfer module 226 of server 20.
5. The authentication module 343 of client device 30 transmits such result of authentication to the connector UI 332 through the login interface 341.
6. The connector UI 332 displays the result of authentication on the display module 31. If the result of authentication is “valid”, then the server's 20 IP and port information will be stored in the memory 36 of client device 30 for later push/pull operations.
(B) Push Flow:
After a client user is verified through the authentication flow, the client device 30 can start the push flow as described below. First, the client device 30 sends its portfolio and access right to the intelligent transfer module 226 of server 20. Then, when the intelligent transfer module receives these portfolio information and client's access right, it begins filtering the data from realtime data broadcast module 223 according to its portfolio and access right, and then pushes the data to the client device 30. The push flow ends when the client device 30 closes the connection.
The distributed information service system of the present invention also discloses the concept of “Intelligent Push”, that is, only the information which is currently requested by the user 61 will be pushed to the client device 30 instantly. Unlike the historical information such as news or technical analyses which are not time critical, such information to be transmitted by “Intelligent Push” is usually time critical and is meaningful only at that time when the user 61 is making the request. Once the user 61 stops watching the screen, such as switching the screen into other functions or system switch to screen saving mode, then it will be meaningless for the server 20 to keep pushing such information to the client device 30. Therefore, such “Intelligent Push” will be started for sending realtime data at the time when the user 61 makes the request, and will be stopped anytime when the user 61 leaves the current screen. As a result, only most interested information or data will be pushed at most desired time, and thus the usage of bandwidth is highly efficient.
An example of detailed operation of the “Intelligent Push” process is illustrated as following:
1. The user 61 operates the client device 30 and switches it into the screen of “top five bid-ask records” of RT UI module 334.
2. The RT UI module 334 transmits the code of stock currently shown on the display module 31 to the data packet transfer interface 342.
3. The information of the code of stock is then added with a header (or command) for distinguishing the type of the data (such as “top five bid-ask records”), and then transmitted to the intelligent transfer module 226 of the server 20.
4. Upon receiving this header (command), the intelligent transfer module 226 will instantly add the information of “top five bid-ask records” of this stock at that time into the push flow, and then push this information to the client device 30.
5. The data packet transfer interface 342 of client user 30 receives this pushed information, stores it into the memory 36, and then allows the RT UI module 334 to read and update this “top five bid-ask records” information from the R data module 353 so as to shown them onto the display module 31.
6. When the user 61 leaves the screen of “top five bid-ask records”, the RT UI module 334 sends a signal to the data packet transfer interface 342 of client device 30 to inform the finished usage of the “top five bid-ask records” function.
7. The data packet transfer interface 342 then adds a header (or command) for distinguishing the type of the data (such as “leaving top five bid-ask records”), and then transmits this command to the intelligent transfer module 226 of server 20.
8. The intelligent transfer module 226 stops adding the information of “top five bid-ask records” into the push flow after receiving this command.
(C) Keep-Alive Flow:
Once the authentication is successfully verified, the keep-alive flow starts. First, the intelligent transfer module 226 of server 20 initiates this keep-alive flow by sending keep-alive messages with queue size, current time, and other information at specified interval. Then, the keep alive module 344 of client device 30 echoes these keep-alive messages back to the intelligent transfer module 226. As the keep alive module 344 keeps responding to the keep-alive messages, the connection between the server 20 and the client device 30 continues. The keep-alive flow will be ended when the user 61 closes the connection. When the client didn't receive the keep alive message in a time period, the client assumes the connection between it and server is dead then client re-link the connection from authentication flow.
(D) Pull Flow:
During the connection is alive, a client device 30 can send the pull command to retrieve historical information from server's 20 database 231 or other information like “user defined stock data”. For example, the client device 30 sends the command to the intelligent transfer module 226 of server 20, wherein the command can include: code of stock, type of data, period of time, or other reference, etc. When the intelligent transfer module 226 receives such pull command, it sends a control signal (command) to the interactive data query module 224 so as to acquire corresponding data from the database 231. This corresponding data is then pulled back to the client device 20. Finally, the client device 20 ends this “Pull Flow” service by closing the connection.
The distributed information service system of the present invention also discloses the concept of “Intelligent Pull”, that is, when the user 61 makes a pull request, only the information which is absent in the memory 36 of client device 30 will be pulled. Unlike the conventional pulling technology which always pull all information corresponding to the user's pull request, the “Intelligent Pull” technology of the present invention will firstly check the content of the memory 36 to find out the latest data relevant to the request, and then only the missing data will be pulled from the server 20, and thus the usage of bandwidth is highly efficient.
An example of detailed operation of the “Intelligent Pull” process is illustrated as following:
Please refer to
1. The user 61 operates the RT UI module 334 and switches the screen to show “realtime chart of stock”.
2. The RT UI module 334 checks the content of the memory 36, and find out that the latest data stored in the memory 36 relevant to the selected stock is till AM 10:00, however, the current time is AM 11:00 now. Therefore, the RT UI module 334 sends the parameters of command including the code of stock and the time period of update (e.g., AM 10:00˜11:00) to the data packet transfer interface 342.
3. The data packet transfer interface 342 adds a header (or command) to these parameters to become a complete command for distinguishing the type of the data (such as “detail transaction records of this stock”), and then transmits it to the intelligent transfer module 226 of the server 20.
4. The intelligent transfer module 226 decrypts this command, reads the type of data, code of stock, and time period of update, and transmits these parameters to the interactive data query module 224.
5. The interactive data query module 224 then acquires corresponding data based on these parameters, and transmits those corresponding data back to the client device 30.
6. The data packet transfer interface 342 of client device 30 receives and stores those corresponding data into the memory 36, and then sends a control signal (command) to the RT UI module 334.
7. The RT UI module 334 access the complete data (including the data pre-stored in the memory and the data currently received) from the memory 36 through the RT Data Storage-Parsing-Interpretation Engine 353, and then refresh the diagram of realtime stock price shown on the screen of display module 31.
In this preferred embodiment, the distributed information service system of the present invention further discloses the concept of “Filter by User Defined Equation”, an example of detailed operation of the “Filter by User Defined Equation” process is illustrated as following:
1. The user 61 operates the user interface 33 and switches the display module 31 into the screen of “Filter by User Defined Equation”, and then input the conditions of user's choice, for example, top five of most popular stocks, top five of stocks with highest price-raise, and etc.
2. The user interface 33 sends these conditions to the data packet transfer interface 342.
3. The data packet transfer interface 342 adds a header (or command) to these conditions to become a complete command for distinguishing the type of the data (such as “Filter by User Defined Equation”), and then transmits it to the intelligent transfer module 226 of the server 20.
4. The intelligent transfer module 226 decrypts this command, reads the conditions, and then transmits these conditions to the interactive data query module 224.
5. The interactive data query module 224 then acquires corresponding data based on these conditions, and transmits those corresponding data through the intelligent transfer module 226 back to the client device 30.
6. The data packet transfer interface 342 of client device 30 receives and stores those corresponding data into the memory 36, and then refresh the screen of display module 31 to show the user defined stock data.
Please refer to
Please refer to
The first keyword refers to a specific term to be searched; and the second keyword refers a specific time period to be searched. Any information stored in the server 20 meets that specific term during that specific period of time will be transmitted to the client device 30 as a result of the search. Moreover, the time period can be selected by choosing two different locations of a graphic shown on the display module 31 by using the graphic user interface module 331. Locations of the graphic will then be transformed to corresponding raw data of time periods so as to act as keywords “T1” and “T2”. Typically, the unit of time period “T1” and “T2” can be as short as seconds, or as long as months, depending on the type of information. For example, for time sensitive information such as future/option/best-five records, the time period can be as short as seconds. However, for some information such like news/reports/historical-data, the time period can be as long as months or even years. Because the time period can be used as a keyword for performing a search, only information that the user is interested most will be transmitted to the client device 30. Moreover, the graphic user interface module 331 is capable of displaying on the display module at least a first frame 311 containing a first graphic and a second frame 312 containing text information; wherein the first and second frames 311, 312 are independently functioning and are operative in the same time. As a result, users are able to access data and operate the client device 30 in a more efficient way.
Please refer to
Please refer to
Please refer to
While the invention has been described by way of examples and in terms of the preferred embodiments, it is to be understood that the invention is not limited thereto. To the contrary, it is intended to cover various modifications and similar arrangements and procedures, and the scope of the appended claims therefore should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements and procedures. Accordingly, that above disclosure should be construed as limited only by the metes and bounds of the appended claims.