Methods and techniques for delivering rich java applications over thin-wire connections with high performance and scalability
First Claim
1. A method for delivering applications over a network in which the business logic of the application is running on the backend server, the user interface of the application is rendered on a client-device who is connected to the backend server via a network. The Graphics User Interface API and event processing API of the application is implemented to be network-aware instead of being local machine centric as traditional GUI APIs:
- running an application on the backend server. The application in turn invokes GUI API to present its user interface. However, the network-aware GUI API is invoked;
translating the application'"'"'s presentation layer information into a pre-determined format based messages which describes the Graphical User Interface, event processing registries and other related information. Such information describes the presentation layer of the application in a high level, object level, which minimizes network traffic;
sending such messages to the client device via a network;
processing the messages and rendering the user interface by a client-side program, which delivers the best possible user experience for that device according to the capability of the specific client device. transmitting necessary user input and client-side events back to the server by the client-side program via a predetermined protocol;
processing the user input and client-side events on the backend server, translating such events and inputs as if they were locally generated, and sending such translated events and inputs to the application for processing;
encoding and routing the output of the application to the client device using the predetermined messaging format; and
, further processing the output by the client-side program to refresh the Graphical User Interface thereat.
15 Assignments
0 Petitions
Accused Products
Abstract
A method for delivering applications over a network in which the business logic of the application is running on the backend server, while the user interface of the application is rendered on a client-device who is connected to the backend server via a network. The Graphics User Interface API and event processing API of the application is implemented to be network-aware instead of being local machine centric as traditional GUI APIs: The method includes the following. Running an application on the backend server. The application in turn invokes GUI API to present its user interface, whereby the network-aware GUI API is invoked. Next, translating the application'"'"'s presentation layer information into a pre-determined format based messages which describe the Graphical User Interface, event processing registries and other related information. Such information describes the presentation layer of the application in a high level, object level, which minimizes network traffic. Next, sending such messages to the client device via a network and then processing the messages and rendering the user interface by a client-side program, which delivers the best possible user experience for that device according to the capability of the specific client device. Next, transmitting necessary user input and client-side events back to the server by the client-side program via a predetermined protocol followed by processing the user input and client-side events on the backend server, translating such events and inputs as if they were locally generated, and sending such translated events and inputs to the application for processing. Next, encoding and routing the output of the application to the client device using the predetermined messaging format and finally further processing the output by the client-side program to refresh the Graphical User Interface thereat.
131 Citations
21 Claims
-
1. A method for delivering applications over a network in which the business logic of the application is running on the backend server, the user interface of the application is rendered on a client-device who is connected to the backend server via a network. The Graphics User Interface API and event processing API of the application is implemented to be network-aware instead of being local machine centric as traditional GUI APIs:
-
running an application on the backend server. The application in turn invokes GUI API to present its user interface. However, the network-aware GUI API is invoked;
translating the application'"'"'s presentation layer information into a pre-determined format based messages which describes the Graphical User Interface, event processing registries and other related information. Such information describes the presentation layer of the application in a high level, object level, which minimizes network traffic;
sending such messages to the client device via a network;
processing the messages and rendering the user interface by a client-side program, which delivers the best possible user experience for that device according to the capability of the specific client device. transmitting necessary user input and client-side events back to the server by the client-side program via a predetermined protocol;
processing the user input and client-side events on the backend server, translating such events and inputs as if they were locally generated, and sending such translated events and inputs to the application for processing;
encoding and routing the output of the application to the client device using the predetermined messaging format; and
,further processing the output by the client-side program to refresh the Graphical User Interface thereat. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A server-side API based programming model for network programming, which frees or greatly simplifies the complexity of network programming by freeing developers from client-side issues:
-
The presentation layer of the application is written using this server-side API;
The business logic layer and data layer of the application is written using other appropriate server-side technologies;
The supporting infrastructure of this server-side API sends the application'"'"' user interface information to the client-side device for presentation, handles communications problems, renders the application'"'"'s user interface and dispatches necessary user input events back to the server for processing.
-
-
20. A method and system for delivering existing Java applications over the network without modification of the application'"'"'s code and without downloading the application to the client side:
-
The system re-implements standard Java GUI APIs such as AWT and Swing into a network-aware implementation without changing the APIs, enabling existing Java applications to run on this network-aware GUI API without modifications;
The Java application runs completely on the server-side. The network-aware API translates and delivers the application'"'"'s presentation information into short messages based on formats such as XML via a certain communication protocol;
The system'"'"'s client-side program that understands these messages interprets and renders the user interface of the Java applications, essentially produces the look and feel of the application as if the entire application is running on the client device;
The client program further interacts with the user, dynamically updates the user interface and sends necessary user inputs back to server for processing;
The system'"'"'s server program receives such user inputs, translates them into Java compatible user inputs, such as Java events, and further routes such user inputs to the Java application for processing;
The output of the Java application'"'"'s processing is sent to the system'"'"'s client program, which updates the user interface of the application.
-
-
21. A method and system for delivering the same application over some network to multiple devices, maximizing the user experience of each device by best leveraging the specific capability of each device, without rewriting the application specifically for each device:
-
The system runs the application on the server side;
The system'"'"'s server-side program translates and delivers the presentation information of the application into messages based on selected format such as XML. Such messages contain high level description of the application'"'"'s user interface. Such high level, instead of pixel level or graphics primitive level description, gives sufficient flexibility in interpretation without losing the gist of the information;
Specific client-side programs are built for each specific client device leveraging the special features of each device. This client-side program interprets these messages and renders the user interface of the applications in a way that is best optimized for the client device, delivering the best user experience possible on that specific client device. The client-side program accepts user inputs, update the user interface, and sends necessary user inputs back to the server;
The system'"'"'s server program receives such user inputs, translates them into application compatible user inputs, and further routes such user inputs to the application for processing;
The output of the application'"'"'s processing is sent to the system'"'"'s client program, which updates the user interface of the application accordingly.
-
Specification