moved to better jinetd setup
[org.ibex.jinetd.git] / www / index.html
1 <html>
2 <body>
3
4 <h1>Jinetd: inetd for Java</h1>
5
6 <h3> What is it? </h3>
7
8 Jinetd does for TCP what servlet containers do for HTTP.
9
10 <h3> Isn't HTTP all that matters? </h3>
11
12 There are now Java servers for almost every network protocol: HTTP,
13 SMTP, IMAP, POP3, NNTP, DNS, <a
14 href=http://www.jcraft.com/jsch/>SSH</a>, <a
15 href=http://telnetd.sourceforge.net/index.html>TELNET</a>, CIFS/SMB,
16 and plenty of others.  Using servers written in buffer-overflow-free
17 languages is the most important step towards maintaining network
18 security and stopping worms.
19
20 <h3> Huh? </h3>
21
22 Jinetd listens on the ports and interfaces you specify.  When it
23 receives a connection, it loads the code designated to handle that
24 protocol and hands off the connection.
25
26 <h3> Isn't that trivially simple? </h3>
27
28 While jinetd is an extremely lightweight server, it allows multiple
29 different network protocol handlers to share the following facilities:
30
31 <ul><li> No need for "start", "stop", or "reload" commands:
32     <ul>
33         <li> Automatic reloading of services when a .jar, .class, or
34              .java file changes; just drop in the new code or
35              <tt>touch</tt> the jar file to trigger a restart.
36
37         <li> Services can add their own configuration files to the
38              "watched" list.
39
40         <li> Connections are always accepted immediately, even if the
41              service's code is still initializing itself.  The
42              connection is paused until the service finishes loading,
43              at which point it is handled.  No more "503 Server
44              Unavailable" messages for your users when you restart a
45              context; the user just experiences a brief delay before
46              the webpage loads.
47     </ul>
48
49     <li> Edit-in-place development
50     <ul>
51         <li> Automatic compilation of .java files for a service;
52              automatic reload once compilation completes
53     </ul>
54
55     <li> Self-restart
56     <ul>
57         <li> jinetd is usually invoked from a "respawn" line in /etc/inittab
58
59         <li> when it detects that its .jar files have been modified,
60              it exits and lets init respawn it
61
62         <li> when resources run critically low (ie low memory), jinetd
63              will abort the JVM and let init respawn it -- the only
64              way to kill runaway threads in Java.
65     </ul>
66
67     <li> No configuration files to edit -- host-to-service and
68          port-to-service mappings are inferred from directory layout.
69
70     <li> Shared virtual host settings
71     <ul>
72     <li> Arrange your content by (virtual) host rather than by service
73          -- for example, the HTTP and NNTP content for
74          "www.megacz.com" are kept side by side in
75          "/jinetd/host/com/megacz/HTTP" and
76          "/jinetd/host/com/megacz/NNTP".
77     </ul>
78
79 </ul>
80
81 </body>
82 </html>