I would like to work on a network project which involves java and network. The project should not take more than 2 months to complete. Any suggestions about extensions would be appreciated as well. i would be grateful if you can help.
Sandy
Printable View
I would like to work on a network project which involves java and network. The project should not take more than 2 months to complete. Any suggestions about extensions would be appreciated as well. i would be grateful if you can help.
Sandy
I have always wanted to see a kind of high performance TCP proxy, such as for load balancing and abstraction of internal networking services.
For example, consider an apache service listening on a machine that sits on the edge of an office network, such as faces the internet, where it uses mod_proxy to reverse proxy urls and virtual hosts to internal machines, possibly also running apache or IIS, where to the outside invoking any path has the user experience of it all coming from the same site, but in reality invoking different paths causes the proxy to invoke different requests to different internal services.
Now, the HTTP proxy is pretty un-interesting and probably pretty simple to build even, and likely already beaten to death by now.
So my more interesting proposal would be a TCP proxy for the XMPP (e.g. Jabber messenger protocol). Where we have a single edge network device that listens on the jabber messenger port on the internet waiting for connections. it has basic XMPP protocol support (e.g. smack libary from openfire project) to process the authentication operation. Once authenticated, it in turn invokes a login operation to internal XMPP server(s), but there afterward, the the traffic is proxied in 1:1 between the remote clients and the XMPP server.
The use case is currently most standard XMPP servers allow users to connect to them, the presence is updated and the user appears online to anyone else who is connected. It comes up from time to time where the xmpp server must be rebooted. this is inconvenient if there are many many users connected, as they all get booted out.
So the purpose of the proxy would be to hold and maintain the TCP protocol and basic XMPP alive state during temporary intermediate blips of teh server being rebooted.
To take it further, for situations where many different users would be hosted, but some bunches of users never would interact with other bunches of user (e.g such as a cloud hosted XMPP private service), then each 'customer' containing a handful of users would only want their users to see each other in their roster. So in this sense we could have a dedicated xmpp server instance for a given company, and host it on say server1.mydomain.
the proxy comes in as a mechanism to abstract the public facing URL endpoint, from the physical internal server url, but also to allow us to boot up a second instance of an xmpp service (assuming the presence is managed in a database for pass over coherence), then we can physically switch on the new server instance and switch off the existing one for maintenance, where the proxy is configured to know, or is told to send all traffic between the clients to the new server now. and the motivation of this case being the end user's connection does not drop and they don't experience an interruption.
So with these concepts in mind, maybe then work to create a plugin or modular based core framework that works to handle the common proxy types of operations, such as listening on a server socket, spawning a thread to run a connected client, which could be an object that has the accepted incoming socket, and a client socket to initiate to the internal service, where at this nuts and bolts level, its all just tcp sockets and threads. It is difficult to build a robust network and multi threaded handler, so I thought the proxy appliction framework would be the ideal play ground for interesting networking projects.
wifi hacking and security
my idea is a chat software with a applet gui component for the client and a server that handle simultaniously connections between the connected clients. the server component should also offer functionality for administrators, ex. logging, locking users etc.
the complexity is not very high but to figure out a cute functionality for both users and administrator including the implementation should take two months.