javnat
Question #1JavNat Architecture
How would you describe the architecture of a converted JavNat applications?
Answer:
A converted JavNat application can be described as a stateful model->view->controller application.
The model is a set of J2SE (POJO) class derived from the original Natural application with 1 class to 1 Natural object.
The view is a set of JSPs derived from the screens in the original Natural application.
The controller is a servlet that manages the interaction between the model and view.
Question #2Super/Sub Descriptors
How are super/sub descriptors handled in a JavNat conversion?
Answer:
As part of the normalization step, physical columns are created on the new tables for each of the super and sub descriptors. Also, a database trigger is created for that table that does the following:
Ensures that the column is set directly.
Set the value in that column based on its components in ADABAS.
Question #3Predict Verification Rules
How do you deal with Predict Verification Rules on Maps?
Answer:
We request the Natural application source in SAGs SYSTRANs format and there is an option when extracting a SYSTRANs that allows the predict rules to in incorporated into the map source.
S/C Type ....................... S
From Library ................... resour__
Map Name ....................... smm*____
Incorporate all Predict Rules .. Y (Y/N)
Unload Associated Free Rules ... N (Y/N)
To Library ..................... ________
The results is source of the predict rule imbedded in the map source:
...
*S**RULEVAR F01#STARTING_DT
*S**INCDIC ;
*S***
*S*** PROCESSING RULE: DATEVR WAS GENERATED BY PREDICT
*S*** VERIFICATION-TYPE: EQUAL ON: 92-05-27 AT: 10:46
*S***
*S**IF & NE ' '
*S** IF & NE MASK(YYYY'-'MM'-'DD) OR & <= '1900-00-00'
*S** REINPUT 'Invalid Date' MARK *& ALARM
*S** END-IF
*S**END-IF
...
Question #4Batch: JCXML
What is JCXML?
Answer:
JCXML is an XML based design that mimics features of JCL. Those steps in a JCL job stream that execute a Natural program are easily converted to JCXML steps.
It has features which replicate the concepts of JCL, for example:
a job can have multiple steps
steplibs can be incorporated
files associations ("DDName" -> filename)
DISP parameters
Most JCL steps contain more than just Natural based steps. These steps may include simple steps such as IEBGENERS, IEFBR14 and SORTS. It may also include more complex steps that execute complex COBOL, PL/1 or Assembler code.
In order to allow for these steps to be included in that JCXML stream just as they were in the original JCL stream, JavNat contains a Java interface that allows for a class to be written that can accept any number of parameters in the JCXML step. Within a class any process can be written to replace the mainframe function or some other application can be called to handle the work.
Question #5IDE requirement
What IDE is required to maintain the application?
Answer:
Any IDE that supports Java language can be used to maintain a JavNat application. Support for J2EE development and debugging is an asset.
Currently, Oracle JDeveloper, Apache Eclipse and IBM's Rational Application Developer are being used to maintain JavNat applications.
Question #6Hosting the converted application
What is required to host a JavNat application?
Answer:
A JavNat application is designed to be delpoyable on any J2EE application server that supports J2EE 1.4 or higher.
It has currently been deployed in production to:
Oracle 9ais/OC4J Apache Tomcat V4/V5 IBM Websphere Application Server (WAS)
It has also been tested under:
BEA WebLogic Server
SUN's Glassfish
Question #7Batch
How is batch handled?
Answer:
The JavNat batch environment is designed to act the same as the Natural batch environment. That is, the JavNat modules that execute in the online environment are no different from the modules execute in batch.
A batch job is triggered using a JCL-like specification XML file that we call JCXML. When the JCXML file is passed to the JavNat base class NatSubmit (fbda.javnat.NatSubmit), it will start a JavNat session and execute the steps specified in the JCXML file.
The batch implementation has no dependencies on the J2EE environment that is used in online JavNat applications. It is typically triggered using a Windows Batch file or a UNIX script.
Question #8Security considerations
How is security implemented in a JavNat application?
Answer:
There are 2 layers of security in Natural applicaitons.
- Authentication
In the original application this would typically be handled by RACF. Each JavNat application has a custom java class which is responsible for authenticating the username and password. This authentication can be any method the customer requires. Some of the solutions implemented in previous projects are as follows:
- Using a LDAP server
- Using a database username and password as authentication
- Using a table within the target RDBMS which holds the username and password
- Security built into the application
All security that is built in to the application is automatically maintained in conversion. No intervention is required at this level.
Question #9Report handling: formatting
How will reports, including those that are 132 columns wide on the original system, maintain the same format in the new system?
Answer:
A number of approaches are available depending on the printing environment and requirements.
    
For example we can generate pdfs for printing to a local printer, with the scaling handled automatically through use of the FOP libraries (an open source Java printing/report formatting technology).
    An alternative strategy that has been employed is to use the appropriate PCL (Printer Command Language) code to change the orientation of the output to landscape and adjust the font.
Question #10Report handling: General
How are reports handled in JavNat?
Answer:
The Natural statements that are used to produce reports in a Natural system are converted to Java and function exactly as they did in Natural.
The output of these statements is controlled by one of many specialized classes (JavNat printer based java classes) designed to take the report produced by JavNat and either send it to a printer, save it as a PDF or e-mail it to a recipient.
New specialized classes can be created as needed and are easily specified within a JCXML step or within the J2EE JavNat configuration file for online report generation.
Question #11EDCDIC to ASCII sorting and collation issues
How does the JavNat converted application handle the differences bewteen the 2?
Answer:
In the converted Java (JavNat) code all comparisons between alphanumeric variables use EBCIDIC encoding to ensure that it works the same on an ASCII platform as it did on an EBCDIC platform.
In the dml there are two potential issues:
Sorts of alphanumeric data
Comparisons of alphanumeric data
All situations where DML is accessing the relational database using alphanumeric values and either sorting or doing comparisons (GT, LT, GE, LE, THRU etc) are identified before conversion in the NatMiner DNA Reports. As part of the conversion each of these potential problems is analyzed in conjunction with the customer and resolved on an individual basis using one of the following strategies:
Use the NLS_SORT parameter to specify a new sort order in the database.
Change the DML itself.
Question #12Use of HTML / CSS / javaScript / AJAX on JavNat screens.
Can other web 2.0 technologies be used in a JavNat application?
Answer:
Yes! JavNat applications are designed to run under a J2EE server and use JSPs as the presentation layor so the following technologies:
HTML
CSS
javaScript
AJAX
Tag libraries