IBM I Application Development Rational Developer
IBM I Application Development Rational Developer
Tim Rowe
Application Business Architect, Development Environments, IBM i Development
Agile Development
– Work in highly collaborative groups
– Time line is strict
– Small adaptive modules
Framework Development
– Consistency in code creation
– Component based
– Model – View – Controller
– Agile
Services Orientation
– Componentized code
– Business based
– Distributed function
1
IBM Power Systems
y
ector
es Dir
Servic
SOA
2
IBM Power Systems
Common development
infrastructure for Power and the
world around Power
3
IBM Power Systems
i Architecture
Language Runtimes (RPG, COBOL, C, C++)
Multi-core
Multi-threads
Hayden Lindsey
Vice President and Distinguished Engineer
Enterprise Modernization, Modeling,
Construction and Compilers
IBM Rational
4
IBM Power Systems
Compilers on IBM i
5
IBM Power Systems
Modern RPG
/FREE
read file; // Get next record
dow not %eof(file); // Keep looping while we have a record
if %error;
dsply ‘The read failed’;
leave;
else;
chain(n) name database data;
time = hours * num_employees
+ overtime_saved;
pos = %scan (‘,’ : name);
name = %xlate(upper : lower : name);
exsr handle_record;
read file;
endif;
enddo;
begsr handle_record;
eval(h) time = time + total_hours_array (empno);
temp_hours = total_hours - excess_hours;
record_transaction();
endsr;
/end-free
11 © 2011 IBM Corporation
12 IBM
© 2011 IBM Corporation
Confidenti
al
6
IBM Power Systems
<?xml?>
Custom
Devices
XML
Future
Interfaces
Devices
Rich
RPG IV Mobile
Clients
+ Open Browsers
Access
SOA
Interface Databases
Web
Browsers
RPG Application
IBM i
14 © 2011 IBM Corporation
7
IBM Power Systems
Handler Defined
program
I/O buffer
WRITE record
Other information:
•state
•names
•pointers
IBM i
15 © 2011 IBM Corporation
8
IBM Power Systems
DB2
Community
Edition
9
IBM Power Systems
19 © |2011
22-Sep-11 | 19
IBM Corporation
19 Modernizing IBM I legacy applications with PHP
Zend PHP
– New IBM i PHP Toolkit – GA EOY 2011
Call *PGM, *SVRPGM, *CMD, PASE utilities
– Enhanced Database support – May 2011
Local DB support for MySQL, DB2
Remote DB support for MsSQL, Oracle
DB2
DB2
Oracle
Oracle
Remote DB Connection
IBM/Zend MsSQL
–
MsSQL
PHP Toolkit MySQL
MySQL
20 © 2011 IBM Corporation
10
IBM Power Systems
http://174.79.32.155/wiki/XMLService/XMLService
The basic idea of XMLSERVICE is to allow any scripting language to use XML input/output
documents to drive XMLSERVICE job(s) calling PGMs, SRVPGMS, CMDs, PASE shells.
Call ILE or shell scripts from local PHP OR remote PHP environment
XML based
11
IBM Power Systems
Portal
Portal
Wiki
Bulletin Board
Content Management System
12
IBM Power Systems
Productivity: The measure of output from a process, such as output per labor-hour.
Higher More
Higher Cost
More Application
Profit Output
Profit Effectiveness
Output Modernization
¹ Based on IBM customer study, “Making a Business Case for IBM Rational Developer for i”
13
IBM Power Systems
14
IBM Power Systems
From this…
Shortcut to open a
member, Ctrl + Shift +
A
30 © Copyright 2011 IBM Corporation © 2011 IBM Corporation
30
15
IBM Power Systems
16
IBM Power Systems
Cross reference
information
From this…
Compile Errors
17
IBM Power Systems
…To This
Launch compiles
directly from editor or
pop-up menu.
Compile errors
automatically downloaded
and shown in Error List
From this…
18
IBM Power Systems
Application Diagram
Subroutine ChgOrder calls
something inside the
ROUTINES member
ORDENTR
ORDENTRmembermember
expanded
expandedtotoview
viewaa
call
callgraph
graph
Application Diagram
Application Diagram
– Provides developers with a graphical overview of the structure of their native i5/OS
applications
Call graph showing subroutine, procedure, and program calls
ILE program and service program bindings
– Currently supports ILE RPG, ILE COBOL, CL, programs and service programs
19
IBM Power Systems
From this…
20
IBM Power Systems
From this…
Integrated Debugger
21
IBM Power Systems
1400
Transactions per Second
+68% +78%
1200
1000
800
600
400
200
0
Native JDBC Toolbox JDBC
22
IBM Power Systems
23
IBM Power Systems
47 IBM
© 2011 IBM Corporation
Confidenti
al
48 IBM
© 2011 IBM Corporation
Confidenti
al
24
IBM Power Systems
49 IBM
© 2011 IBM Corporation
Confidenti
al
50 IBM
© 2011 IBM Corporation
Confidenti
al
25
IBM Power Systems
In the example below, there is only one “makeTitle” procedure with a UCS-2 parameter and return
value. If the passed parameter is alpha or DBCS, it will be converted to UCS-2 on the call. The
procedure will work with the UCS-2 parameter and return a UCS-2 value. This returned value can
then be converted on assignment to alpha or DBCS, if necessary.
Example: Sort the INFO array by the SALARY subfield and search for the
name. Note that 'Jack' in the NAME subfield of the INFO array.
Sort a data structure array using one subfield as a key
// sort by name
SORTA info(*).name;
26
IBM Power Systems
The (*) index identifies the array to be sorted. Any other arrays in the expression
must have a numeric index.
The subfields preceding the (*) index indicate the array to be sorted. The subfields
following the (*) array represent the key to be searched or sorted.
53 IBM
© 2011 IBM Corporation
Confidenti
al
D meetings S D DIM(100)
/free
// sort descending, with the
// most recent date first
sorta(d) meetings;
54 IBM
© 2011 IBM Corporation
Confidenti
al
27
IBM Power Systems
55 IBM
© 2011 IBM Corporation
Confidenti
al
56 IBM
© 2011 IBM Corporation
Confidenti
al
28
IBM Power Systems
A R CUSTREC
A CUSTNM 25A ALIAS(CUSTOMER_NAME)
A CUSTAD 25A ALIAS(CUSTOMER_ADDRESS)
A ID 10P 0
D custDs e ds ALIAS
D QUALIFIED EXTNAME(custFile)
/free
custDs.customer_name = 'John Smith';
custDs.customer_address = '123 Mockingbird Lane';
custDs.id = 12345;
58 IBM
© 2011 IBM Corporation
Confidenti
al
29
IBM Power Systems
59 IBM
© 2011 IBM Corporation
Confidenti
al
60 IBM
© 2011 IBM Corporation
Confidenti
al
30
IBM Power Systems
The new countprefix option enables RPG programmers to get more information about an
XML document using XML-INTO.
61 IBM
© 2011 IBM Corporation
Confidenti
al
The countprefix option gives the prefix for the subfields to receive the count of the number of
XML elements used to fill the RPG array.
<team>
<manager>Jack Spratt</manager>
<emp>John Smith</emp>
<emp>Mary Jones</emp>
</team>
The RPG data structure.
D team DS
D manager 25A
D emp 25A dim(100)
D numemp 10i 0
62 IBM
© 2011 IBM Corporation
Confidenti
al
31