Flattr this!

Run PHP-GTK applications, and serve them over the Internet, really, really interesting new alternative for running PHP-applications. GTK + user interface elements that are very rich and powerful. There is a free visual tools for creating GTK + user interface that can be used to quickly create a PHP-GTK applications that have rich user interfaces.

In addition, being able to run a remote GUI applications over the Internet also opens up interesting possibilities. In fact, providing the user interface for applications running on the remote computer is not entirely new concept.

System X Windows, or simply X, is a protocol that allows exactly that since 1984, when it was created at the Massachusetts Institute of Technology. It was accepted by most UNIX systems, for example, Linux, as the de facto standard way to display the user interfaces.

This allows applications to run on one computer and see its user interface window on another computer. I remember using multiple X applications running on expensive workstations UNIX, when I was in college in the late ’80s and early ’90s. It was great because I could use a cheaper car to see the application’s user interface, running on expensive workstations, of which I was able to connect to the LAN.

X Windows is more complex than the protocol, for example, VNC. VNC keeps sending over the network all the graphical side of the screen dumps of what has changed. That’s why it’s so slow.

On the other hand, X Windows only sends small packets with options graphics commands that display side must fulfill in order to make a graphical application.These commands are easier and require much less data, such as “draw a line from that point to this point,” or “draw the text in this position using this font” and so on.

The concept of X is so complex that it was used by a company called Citrix to bypass expensive licenses Microsoft Windows NT Workstation. That Citrix made this option to use X to create a virtual graphics card drivers for Windows NT, which made it possible to run applications on a Windows NT server and display their user interfaces in cheaper computers that do not need to run a copy of the operating system Windows NT Workstation Edition.

X Windows is the default way to display the user interfaces for Linux, though the user is on the same machine as the application that it works. X Windows server program running in the background and applications interact with it to send commands to provide user interface and windows graphics.

As you can see so far, X Windows can also be used to display a user interface for remote applications like supply a few GTK + backend Broadway. The difference is that X Windows is a completely different protocol than HTTP. Many firewalls are used, for example, your corporate network, not to mention HTTP-traffic pass, but they block X protocol traffic. So this is a clear advantage of the approach Broadway.

However, there are several stumbling blocks that make it not yet possible to use PHP-GTK with Broadway. One problem is that the current version of PHP-GTK only supports GTK + version 2.

It may not be difficult to get it to work with GTK + 3 also, but the fact is that currently there is not much development going on in the PHP-GTK project. Group motivated developers should go back to the project and update it to make it work with GTK + version 3.

It’s not hard to make that happen, but someone has to do it. If you are interested and you have enough knowledge of the language C, you can join the PHP-GTK project, and work on it.

Another challenge is to determine whether the use of PHP-GTK applications via the Web technically efficient solution, compared to traditional AJAX applications based PHP + JavaScript Web.

The fact is that when the application is running on the server resources that it consumes will be made the primary server. When I say resources, I mean mostly memory. A typical HTTP request is handled by PHP has a very short life. It usually takes between 10 MB and 20 MB of RAM. So you can run as many PHP requests in parallel, as the available memory on the server permissions.

Desktop application, such as based on GTK +, does not leave until the user exits.Since the amount of RAM that it will take a long time may become significant, depending on what he does. The same Web server might not be able to run as many PHP-GTK based application instances, such as traditional web applications PHP can work with the simultaneous user access.

Maybe the memory usage is not your problem, especially if you only want to serve PHP-GTK applications on the basis of a limited number of users, such as those in corporate networks. In this case, serving PHP-GTK applications on the Web can be a very interesting solution.

As mentioned above, running PHP-GTK applications to be served via the Internet is not yet possible, but he can not take a long time to happen, if this possibility issufficient interest in the community of PHP.

In spite of this very interesting new way to develop rich user interface applications,PHP Web, there are circumstances explained above, which makes it less than ideal, as compared with traditional applications based on PHP HTML, CSS, JavaScript and AJAX requests.

Nevertheless, this new space that you can follow the following possible future eventsthat may make it more viable solution for creating rich user interfaces for PHP-applications.

<< Using PHP-GTK to serve Web Applications to HTML 5 Browsers