Uploaded image for project: 'JS - JobScheduler'
  1. JS - JobScheduler
  2. JS-795

Replace the built-in http-server of JS by Jetty

    XMLWordPrintable

Details

    Description

      Replace the built-in http-server of JS by Jetty

      The built-in http-server of JobScheduler is more or less a rudimentary HttpServer. It is part of the core engine. A lot of more and more important features and capabilities are not implemented and therefore missing. Some of them are requested by some users in the meantime very often, e.g. connecting by https, audid trail by request logs, ldap, compression.

      Instead of extending the built-in server component a decision was made to replace this by the open source web server jetty (read more at http://eclipse.org/jetty/).

      Advantages and future possibilities (in a random sequence):

      1) https-authentication

      Additionaly to the presently http-authentication of JS a https-authentication will be possible. The configuration of the users credentials would be easier than with JS.

      http://wiki.eclipse.org/Jetty/Feature/Realms

      2) ease of implementing addtional JS-commands and answers

      e.g. JSON, REST, -response
      special context-handlers
      user- and role-specific handling of request/commands

      3) LDAP

      http://wiki.eclipse.org/Jetty/Tutorial/JAAS#LdapLoginModule
      http://jira.codehaus.org/browse/JETTY-471

      4) request logs

      Request logs are a record of the requests that the server has processed. There is one entry per request received, and commonly in the standard NCSA format so they can be conveniently analysed by tools like webalizer.

      Jetty provides an implementation called NCSARequestLog which supports the NCSA format in files that can be rolled over on a daily basis.

      The logback project offers another implementation of RequestLog interface providing very rich and powerful HTTP-access log functionality,

      Alternatively, if neither of these options suits you, you can implement a custom request logger by implementing Jetty's RequestLog.java interface and plugging it in in similar fashion to the NCSARequestLog.

      read more at http://irc.codehaus.org/display/JETTY/Logging+Requests

      http://wiki.eclipse.org/Jetty/Feature/Jetty_Logging#Using_Access_Logging

      5) using war-files with the Operations Center (JOC)

      http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty
      http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/WebComponents3.html
      http://www.java-tips.org/other-api-tips/eclipse/how-to-make-war-file-in-eclipse.html

      6) http-compression

      http://serverfault.com/questions/279057/how-can-i-enable-gzip-compression-in-jetty
      http://www.robertgering.de/tutorials/gzip-vom-servlet/

      7) JSP

      Jetty can act as an JSP server like tomcat (javax servlet container)). this will give us more flexibility in terms of new requests from our users, e.g. implementing new commands and/or new functionality.

      8) Ease of Customizing

      Presently the http-authentication of JS can be changed only by restarting the JS. With Jetty a restart will no longer needed.

      9) RAP Rich Ajax Platform

      Jetty can act as an Server for any RAP application. JSCockpit will be a RAP application.

      10) support of BIRT reports

      Jetty can be used as a BIRT Viewer. BIRT will be the favourite platform for reporting in JS.

      11) Integration of ActiveMQ into the JobScheduler

      http://docs.codehaus.org/display/JETTY/Integrating+with+ActiveMQ

      More Jetty features: http://wiki.eclipse.org/Category:Jetty_Feature

      A critical issue could be the real-time reporting of the logs to the web-browser. May be that this http://wiki.eclipse.org/Jetty/Feature/Continuations is a thinkfull alternative for the currently used method with JS server.

      Attachments

        Issue Links

          Activity

            People

              oh Oliver Haufe
              kb Klaus-Dieter Buettner (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: