User Tools

Site Tools


dropwizard_for_rpg

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
dropwizard_for_rpg [2014/07/18 07:44]
mihael
dropwizard_for_rpg [2015/02/12 07:42]
mihael [Assets]
Line 1: Line 1:
-====== ​Dropwizard for RPG ======+====== ​BlueDroplet ​====== 
 + 
 +(Dropwizard for RPG) 
 For some time now there is the trend for packaging REST services into a fat executable ready to deploy anywhere without much or any configuration. [[https://​dropwizard.github.io/​dropwizard/​ | Dropwizard]] is such a project. It takes best of breed stuff to create an easy to use platform for developing REST services. For some time now there is the trend for packaging REST services into a fat executable ready to deploy anywhere without much or any configuration. [[https://​dropwizard.github.io/​dropwizard/​ | Dropwizard]] is such a project. It takes best of breed stuff to create an easy to use platform for developing REST services.
  
 Developing REST services on the IBM i server has been very hard and/or complicated. Creating such a platform would ease the integration of the IBM i platform into the rest of the IT application infrastructure. Developing REST services on the IBM i server has been very hard and/or complicated. Creating such a platform would ease the integration of the IBM i platform into the rest of the IT application infrastructure.
 +
 +===== Environment =====
 +Each Dropwizard instance should reside in a separate library. This way we can have duplicate objects on the system but in separate libraries. Each start job should have a configured library list.
  
 ===== Components ===== ===== Components =====
Line 19: Line 25:
  
 ==== Configuration ==== ==== Configuration ====
 +
 +Configuration should be dead simple.
 +
 +=== Values ====
 +  * http.port : HTTP Port (default 8484)
 +  * http.address : HTTP Bind Address (default 0.0.0.0)
 +  * http.admin.port : HTTP Admin Port (default 9494)
 +  * http.admin.address : HTTP Admin Bind Address (default 0.0.0.0)
 +  * logging : Logging (true | false)
 +  * logging.member : Logging configurarion member (default LOGGING)
 +  * template.path : Template Path
 +
 +The user can also enter his custom configuration which he can query with the configuration service program.
 +
 +=== IFS ===
 Normally a stream file in the IFS would be used for storing the configuration of the server/​service. But most IBM i people are not comfortable with using the IFS because they haven'​t used it on a regular basis (or not at all). Normally a stream file in the IFS would be used for storing the configuration of the server/​service. But most IBM i people are not comfortable with using the IFS because they haven'​t used it on a regular basis (or not at all).
  
-Another option would be a data area (as long as the configuration is not too big/​complex) or a database ​file. Though editing a database ​file is not as easy as it should be.+=== Database File === 
 +Simple database file with two fields ​(key, value). The name of the configuration ​file is the same as the program name. Different configurations are stored in different members in the same configuration ​file. At the start of the program the configuration ​file and the member are specified.
  
-Configuration ​should be dead simple.+Special MiWorkplace Plugin for Dropwizard for editing configuration values. Form Editor. 
 + 
 +=== Log Configuration ​=== 
 +The configuration for the logging is stored in the configuration database file. 
 + 
 +==== Authentication ==== 
 +TODO 
 + 
 +=== Basic Authentication === 
 +TODO
  
 ==== Templating ==== ==== Templating ====
Line 30: Line 61:
   * RPG Next Gen Template Engine (not fully developed and not released yet)   * RPG Next Gen Template Engine (not fully developed and not released yet)
   * [[http://​sourceforge.net/​projects/​xmli/​ | XMLi]]   * [[http://​sourceforge.net/​projects/​xmli/​ | XMLi]]
 +
 +Templating should be optional.
 +
 +==== Assets ====
 +As the compiled program on IBM i is not an archive file it (like a Java program) any additional cannot be just added to the compiled object. ​
 +
 +Solution: Through an extra build step any additional asset is put into a source member which is then compiled to a module and added to the bound program object.
 +
 +==== Commands ====
 +At server start a command (and additional parameters) are passed to program. One command would be ''​server''​ which starts the server with the passed configuration.
 +
 +''​server''​ is a standard command provided by the framework.
 +
 +Additional commands can be added via API calls at runtime. Commands are compiled as modules and bound to the program object.
 +
 +==== Admin ====
 +Each BlueDroplet instance provides an admin web application. It displays various application about the server and its registered resources.
 +
 +=== Tasks ===
 +Tasks are actions which can be executed via the admin ui or via a REST call. A task is registered at the application via an API call.
 +
 +==== Health Check ====
 +TODO
 +
 +==== Managed Components ====
 +TODO
  
  
 +{{tag>​ibm rpg}}
dropwizard_for_rpg.txt · Last modified: 2015/02/13 08:41 by mihael