Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Alison Butterill
butteril@ca.ibm.com
Simplify IT
2006 IBM Corporation
IBM System i
The information contained in this document has not been submitted to any
formal IBM test and is distributed on an as is basis without any warranty
either express or implied. The use of this information or the implementation
of any of these techniques is a customer responsibility and depends on the
customers' ability to evaluate and integrate them into the customers'
operational environment. While each item may have been reviewed by IBM
for accuracy in a specific situation, there is no guarantee that the same or
similar results will result elsewhere. Customers attempting to adapt these
techniques to their own environment do so at their own risk.
Reproduction:
i want an i.
RPG Modernization
IBM System i
Why SOA?
Does this sound like applications in your shop?
Have difficulty in adapting applications for business changes
Functionality within applications is not modularized to support reusability
High costs, time consuming and lacks integration across business units
Application portfolio misaligned to business strategy
Proprietary applications are fragmented and unable to talk to one another
Lack enterprise-wide, cross-data sharing capabilities
IT resources are tied up with no bandwidth for new projects
Uncertainty about the long-term role of the existing portfolio
Difficulty linking applications to modern technologies
IBM System i
Why Modernize?
The interface is changing.
yThe preference is for GUI as opposed to green screen.
yIntegration with new architectures requires modular code
The Choices
yGet new applications.
yModernize current applications.
Considerations
yProtect investment in current working code.
yProtect investment is staff who understand the business application.
yProtect investment in staff who understand the code.
yReduce the maintenance overhead.
RPG Modernization
IBM System i
ALL002A *PGM
Work with Products
PRODUCT
CATEGOR
ALL002B *PGM
Product Maintenance
STOCKMV
ALL003A *PGM
Prompt Categories
ALL004A *PGM
List Stock Movement
i want an i.
IBM System i
Focussed on language
Code snippets
Translates into opcodes and variables
Display
Screen
Process
Read Screen
Process Result
Display
Screen
Access DB
Process
Process
Display
Screen
Display
Screen
Access DB
Process
Display
Screen
Access DB
Process
RPG Modernization
Access DB
Process
Access DB
Process
i want an i.
Process
2006 IBM Corporation
IBM System i
i want an i.
IBM System i
= business function
Marketing Application
Marketing
Fulfillment Application
Collections
Inventory Management
Single tier implementations (DSP, DB, logic etc intertwined in one program)
Business functions have unique and proprietary interfaces, restricting re-use
Process difficult to manage and adapt
Changes to the process are difficult to implement
New processes designed this way require long development cycles
Result: Business cannot operate on demand
i want an i.
RPG Modernization
IBM System i
Customer
Division
Customers now order online using a web browser and the Internet
Business partners can order using a web service call from their own process
i want an i.
IBM System i
Division
Shared
Services
Billing
Marketing
i want an i.
RPG Modernization
Receivables
IBM System i
Division
Shared
Services
Supplier
Inventory Management
i want an i.
IBM System i
Division
Shared
Services
Supplier
Outsourced
Shipping is not a core competency
i want an i.
RPG Modernization
Shipping
IBM System i
Remove
bottleneck
Division
Shared
Services
Supplier
Outsourced
i want an i.
Alternative flow
path
IBM System i
RPG III,
COBOL/400
or CL/400
Java Bean
ILE
Srvpgm
Browser
Interface
RPG Modernization
Logic
User
Interface DB
Stored
Procedures
DB triggers
Graphical
Interface
i want an i.
Java Bean
DB
constraints
2006 IBM Corporation
IBM System i
RPG III,
COBOL/400
or CL/400
RPG
Procedures
Local variables
Integration with Java
Extended names, expanded
limits
Ability to work with XML files
COBOL
Call to procedures
Expanded limits
Ability to work with XML files
Current language standards
CL
New logic control
commands
Expanded number of files
supported
Variables
i want an i.
IBM System i
Recompile as ILE CL
i want an i.
RPG Modernization
IBM System i
A Word on Conversion
CVTRPGSRC only does a syntax conversion
Third party and local conversion GREATLY increase the likelihood of testing
requirements.
Important to understand the tool and its conversion process
i want an i.
IBM System i
i want an i.
RPG Modernization
IBM System i
i want an i.
IBM System i
RPG III,
COBOL/400
or CL/400
Logic
User
Interface DB
Modular Design
Code reuse
Improved quality of code
Maintenance
Less maintenance repetition
Easier to determine location of required changes
Compiles are faster?
Distribution of business function
Can distribute code as required
i want an i.
RPG Modernization
10
IBM System i
RPG
proc
CL
proc
C
proc
RPG
proc
RPG
proc
COBOL
proc
RPG
Pgm
ILE
RPG
Pgm
CL
Pgm
OPM
IBM System i
*PGM A
*MODULE A
CALLB B
Multiple Call
Entry Points
*MODULE B
*MODULE Y
CALLPRC P2
RPG
PRC Y
CL
*MODULE Z
Bind by Copy
Bind by
Reference
PRC P1
PRC P2
RPG Modernization
11
IBM System i
Service Programs
y*SRVPGM object type
yA collection of commonly used modules packaged together
yA kind of "subroutine library"
yUses fast static call - static bind by reference
yCannot be called dynamically
yMultiple entry points
CL
Source
X
CRTCLMOD
RPG
Source
Y
CRTRPGMOD
C
Source
Z
*MODULE X
*MODULE X
PRC X
*MODULE Y
PRC Y
CRTCMOD
*MODULE Z
PRC P1
PRC P2
i want an i.
PRC X
CRTSRVPGM...
MOD(X Y Z)
*MODULE Y
PRC Y
*MODULE Z
PRC P1
PRC P2
2006 IBM Corporation
IBM System i
RPG IV Subprocedures
This is the RPG IV name for a User-Defined Procedure or BIF
Subprocedures can:
yDefine their own local variables
This provides for "safer" development since only the code
associated with the variable can change its content
yAccess Global variables
Those defined in the main body of the source
This includes access to any files defined in the program
yBe called recursively
The Compilation Unit can have any number of subprocedures
yEach must have its own prototype
By "Compilation Unit" we mean those source lines processed by
the compiler in a single compilation
yThis includes any /COPY members
i want an i.
RPG Modernization
12
IBM System i
Taking Inventory
Impact Analysis
Structure Charts
Data Flows
Data Modelling
Pseudo Code
Word & Visio Export
Business Rules
Drill-down Inquiry
i want an i.
IBM System i
RPG III,
COBOL/400
or CL/400
Graphical
Interface
Browser
Interface
i want an i.
RPG Modernization
Logic
User
Interface DB
ReFacing
Translation of data stream
Re-direction
Alternate interface with redirect intercept
Crafting of new
CGI-bin
Java JSP, JSP, rich client
2006 IBM Corporation
13
IBM System i
Web browser
HTTP
server
TCP/IP
HTML &
images
CGI-Bin
programs
Net.Data
IFS
QSYS.LIB
DB2/400
i want an i.
Macros
SQL
C, CL, RPG,
COBOL, Java,
REXX
IBM System i
*PGM
User Interface
Logic
DDS
Data
Buffer
Display
File (DSPF)
Time:8:05
date:Oct 22,2000
Enter
Business Logic
Conversion
done during
development
DB Logic
Web
Model
Data
Buffer
5250 screens
Graphical Objects
Server ?
Browser
i want an i.
RPG Modernization
14
IBM System i
*PGM
User Interface
Logic
Data
Buffer
Display File
Objects
date:Oct 22,2000
Enter
Business Logic
5250 screens
DB Logic
Transformation
Engine
Java
Components
Development
Tool
Application
Server ?
Browser
i want an i.
IBM System i
Java Applets
Open connection,
request page (URL)
Send page,
close connection
Web browser,
Java virtual
machine
HTTP
server
HTML &
images,
Applets
i want an i.
RPG Modernization
15
IBM System i
Rich Client
HTTP / TCP
communications
Desktop Client
GUI
Communication code
Business logic
HTTP
server
Application
Server ?
Server Application
Communication code
Business logic
Data Access
Printing
i want an i.
IBM System i
RPG III,
COBOL/400
or CL/400
Browser
Interface
RPG Modernization
Logic
User
Interface DB
Stored
Procedures
DB triggers
Graphical
Interface
i want an i.
SQL
Data Definition
Data Manipulation
Advanced Functions
Referential Integrity
Triggers
Stored Procedures
Check Constraints
Remote Database Access
DB
constraints
2006 IBM Corporation
16
IBM System i
Delete request
Delete denied
Invoices
4711
4711
Parent
file
Constraint
s
Enforce
constraint
4711
Dependent
file
i want an i.
IBM System i
Check Constraints
What are they?
NEW DATA
RANGE CHECKING
... BETWEEN 0 AND 100
DOMAIN VALIDATION
... IN (IA,NY,CA)
DATA FILTER
(Business Rules)
Valid Data
New Row
FIELD COMPARISONS
... ORDER < INVENTORY
i want an i.
RPG Modernization
17
IBM System i
Triggers: An Example
SENDFAX
program
4711
IBM System i
RPG III,
COBOL/400
or CL/400
Integration with Java
JNI
Java toolbox
Integration with ILE modules
CALLP
CALLB
APIs
i want an i.
RPG Modernization
Graphical
Interface
Browser
Interface
Logic
User
Interface DB
Stored
Procedures
DB triggers
DB
constraints
2006 IBM Corporation
18
IBM System i
Socket / Queue
User
interface
code
Router
Call
Pgm / Srv Pgm
Program Call
Tightly coupled
Fixed max length input/output
parameters
JDBC
Easy to implement
Messaging
Loosely coupled
Unknown length parameters
Flexibility
Cross Program/ Cross Application
System i5
Applications
i want an i.
IBM System i
Socket / Queue
WMQ
IBM Toolbox for Java
Java sockets code
Router
User
interface
code
Call
Pgm / Srv Pgm
Pgm / Srv Pgm
Pgm / Srv Pgm
Web Services
JDBC
Stored Procedures
System i5
Applications
i want an i.
RPG Modernization
19
IBM System i
RPG III,
COBOL/400
or CL/400
Logic
Java Bean
User
Interface DB
Web Services
Java
RPG, COBOL
Graphical
Other
Interface
XML
Browser
Transfer of data
Interface
Transaction Processing
i want an i.
Stored
Procedures
DB triggers
DB
constraints
2006 IBM Corporation
IBM System i
Integration of Applications
Problem:
Integrating software applications across multiple operating systems, programming
languages, and hardware platforms is
Difficult
Not something that can be solved by any one particular proprietary environment
Solutions:
Web Services
Other XML
Other Solutions
i want an i.
RPG Modernization
20
IBM System i
i want an i.
IBM System i
WAS
Business
Logic
Component
(RPG or
COBOL)
Business logic
does not know it
is begin invoked
as a Web service
i want an i.
RPG Modernization
TCP/IP Network
SOAP over HTTP
Client
application /
B2B app
21
IBM System i
WAS
SOAP over HTTP
DataQ
TCP/IP Network
Some Web
service
Thin
Java
Wrapper
Thin
Java
wrapper
RPG/
COBOL
program
i want an i.
IBM System i
SOA in a Box??
Order
Commerce
Processing
Warehouse
Customer
Service
Linux
Firewall
WebSphere
Commerce
Apache
HTTP
Server
RPG Order
Entry
System
(Take order
via Web)
C++ Order
Fulfillment
System
(Fulfill
order)
MQ Fulfill
Visual Basic
Order
Acknowledge
ment System
(acknowledge
order)
WBI Acknowledge
WBI Order
Forward
e-mail customer
MQ Confirm
MQ GL entries
HQ
Accounting
POWER
POWER Hypervisor
Hypervisor
i want an i.
RPG Modernization
22
IBM System i
Summary
1. Move to modern compilers
2. Modularize the code using ILE
3. Replace components as
business dictates
RPG III,
COBOL/400
or CL/400
Java Bean
Java Bean
ILE
Srvpgm
Logic
User
Interface DB
Stored
Procedures
DB triggers
Graphical
Interface
Browser
Interface
DB
constraints
i want an i.
IBM System i
IBM(logo)
AS/400e
iSeries
e (logo) business
OS/400
IBM
Lotus, Freelance Graphics, and Word Pro are registered trademarks of Lotus Development Corporation and/or IBM Corporation.
Domino is a trademark of Lotus Development Corporation and/or IBM Corporation.
C-bus is a trademark of Corollary, Inc. in the United States, other countries, or both.
Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both.
ActionMedia, LANDesk, MMX, Pentium and ProShare are trademarks of Intel Corporation in the United States, other countries, or both.
UNIX is a registered trademark of The Open Group in the United States and other countries.
SET and the SET Logo are trademarks owned by SET Secure Electronic Transaction LLC.
Other company, product and service names may be trademarks or service marks of others.
Information is provided "AS IS" without warranty of any kind.
All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and
performance characteristics may vary by customer.
Information in this presentation concerning non-IBM products was obtained from a supplier of these products, published announcement material, or other publicly available sources and does not
constitute an endorsement of such products by IBM. Sources for non-IBM list prices and performance numbers are taken from publicly available information, including vendor announcements and
vendor worldwide homepages. IBM has not tested these products and cannot confirm the accuracy of performance, capability, or any other claims related to non-IBM products. Questions on the
capability of non-IBM products should be addressed to the supplier of those products.
All statements regarding IBM future direction and intent are subject to change or withdrawal without notice, and represent goals and objectives only. Contact your local IBM office or IBM authorized
reseller for the full text of the specific Statement of Direction.
Some information in this presentation addresses anticipated future capabilities. Such information is not intended as a definitive statement of a commitment to specific levels of performance, function
or delivery schedules with respect to any future products. Such commitments are only made in IBM product announcements. The information is presented here to communicate IBM's current
investment and development activities as a good faith effort to help with our customers' future planning.
Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary
depending upon considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no
assurance can be given that an individual user will achieve throughput or performance improvements equivalent to the ratios stated here.
Photographs shown are of engineering prototypes. Changes may be incorporated in production models.
i want an i.
RPG Modernization
23