700 likes | 1.52k Views
IBM i Application Development Tools and compilers WDS, RDi, RDi SOA, RTCi. Mar 2009. Disclaimer. Acknowledgement: This presentation is a collaborative effort of the IBM i Application Development product management team, this includes work done by: System I Ad Team, Toronto, SVL, and Raleigh
E N D
IBM i Application Development Tools and compilersWDS, RDi, RDi SOA, RTCi Mar 2009
Disclaimer Acknowledgement: • This presentation is a collaborative effort of the IBM i Application Development product management team, this includes work done by: • System I Ad Team, Toronto, SVL, and Raleigh Disclaimer: • 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: • The base presentation is the property of IBM Corporation. Permission must be obtained PRIOR to making copies of this material for any reason.
Agenda • Introduction – Taking Inventory! • RPG Update (V6R1, and beyond) • RPG Café • RDi • RTCi *** New product *** • Packaging update • Summary
Taking inventory IBM i Application Development Tools & Compilers RDi RDi SOA RTCi Core IBM i features RDi + IBM i Articgfacts Client Products RSE RBD + Subset of RAD IBM i Project E/C/D SCM Prog Vfy WorkItems & Build i Projects Iteration planning WDS ILE Compilers* ILE RPG ILE COBOL Green-screen AD Tools Host Products ILE C++ ILE C PDM SEU DFU SDA RLU OPM Compilers* CGU ISDB AFP Legacy RPG Compilers Compare/Merge Legacy COBOL Compilers *Note: There are other compilers owned by STG/Rochester, shipped with i5/OS: CL, DDS, SQL preproc, etc
Rational Developer for iModern Developer Tools for the IBM i • For customers who… • Need to understand their existing applications • Want to be more productive • Want to use modern development tools • Need to attract and retain IBM i developers • Business Value • Improve developer productivity • Reduced learning curve for future enterprise modernization efforts • Single development environment for all platforms • Integration with modern lifecycle tools • Key Capabilities • Modern, graphical, tightly integrated development tools • Tightly integrated remote edit, compile, search and debug • Graphical overview of program structures • Visual screen designer • 2009 Release • Key customer enhancement requests • Enhanced integration with RTCi
Rational Team Concert for iNative Change Management for IBM i • For customers who need to… • Meet regulatory and audit requirements • Response rapidly to business requirements • Manage native IBM i and distributed development • Manage global software teams • Improve productivity and reduce costs • Business Value • Manage IBM i application development • Improved collaboration among all stakeholders • Real time insight into project status • Single solution for IBM i and distributed • Key Capabilities • Traceability of development process • SCM for native IBM i source (RPG, COBOL, CL, DDS) • Customizable process, work items, and workflow • Project, team, and individual dashboards • 2009 Release • Improved scalability for large applications • Build and Promotion support
Rational Team Concert A New Family of Products based on Jazz Technology • Consolidates the team’s assets and activities on a Team Server • Optimized for Agile development teams • In-place collaboration between team members • Support and enforcement for development processes • Transparency of status and trends through automated data-gathering and reporting • Low administrative footprint • ClearCase & ClearQuest Connectors Rational Team Concert for i V1.0 Rational Team Concert For i New Family of Products based on Jazz Technology for IBM i • Jazz Team Server which runs natively on the IBM i OS and using DB2 for i • Integration with RDi to enable team collaboration support • Capabilities for native IBM i application developers writing in RPG, COBOL, CL, DDS, etc. • Build system toolkit which runs natively on IBM i (Run IBM i commands and call native programs) • Support for IBM i file systems: Libraries and IFS • Enables teams to collaborate in real time in the context of their work with integrated software delivery lifecycle tools • Provides visibility into accurate current project health information drawn directly from actual work across the team • Automates traceability and auditability by managing artifactsand their inter-relationships across the lifecycle • Enables custom process enactment via process automation & definable checkpoints • Provides an extensible technology platform for building products & adapters The Jazz Platform: An Open, Services Oriented Architecture that
Rational Developer for i for SOA ConstructionEnterprise Generation Language for the IBM i • For customers who need to… • Create rich Web 2.0 applications • Provide Web and Web service interfaces to their native applications • Write new business applications • Who need to target multiple platforms • Business Value • Reduce development costs • Simplify and accelerate deployment of SOA applications • Reuse existing IT assets such as RPG and COBOL programs • Key Capabilities • Create rich Web 2.0 applications and Web services • Leverage DB2 for i and existing RPG and COBOL programs • All the capabilities of Rational Developer for i and Rational Business Developer • 2009 Release • Updated to include latest Rational Developer for i and Rational Business Developer releases
Agenda • Introduction – Taking Inventory! • RPG Update (V6R1, and beyond) • RPG Café • RDi • RTCi *** New product *** • Packaging update • Summary
RPG IV – V6R1 • Ability to run concurrently in multiple threads • Static (*Allthread) for fields • Serialize at the procedure level • Specify Main procedure to be called • No RPG Cycle is used • Local File support • Define files in a procedure after the ‘P’ Specification • Enhancements related to the use of files; • Qualified formats • LIKEFILE Keyword • New Template keyword • Passing files as parameters • EXTDESC to specify file to be used at compile time • Allow Data structure in the result field for EXTFMT • Significantly higher limits for the size of variables • Size of variables to 16MB from 64K • Number of elements in an array 16MB(16 million) from 32K • Length of string literals to 16MB from 32K • Relaxation of some UCS-2 rules (available starting in V5R3 through PTFs). • Miscellaneous enhancements • Reduce module size • Store parameter info in the program
ILE RPG enhancements - threads Ability to run concurrently in multiple threads: • When THREAD(*CONCURRENT) is specified on the Control specification of a module • Multiple threads can run in the module at the same time. • By default, static variables will be defined so that each thread will have its own copy of the static variable. This makes them thread-safe. • Individual variables can be defined to be shared by all threads using STATIC(*ALLTHREAD). These variables are not thread-safe, by default. • D sharedFld S 10A STATIC(*ALLTHREAD) • A procedure can be serialized so that only one thread can run it at one time, by specifying SERIALIZE on the Procedure-Begin specification. • P serialProc B SERIALIZE
Agenda • Ability to run concurrently in multiple threads • Static (*Allthread) for fields • Serialize at the procedure level • Specify Main procedure to be called • No RPG Cycle is used • Local File support • Define files in a procedure after the ‘P’ Specification • Enhancements related to the use of files; • Qualified formats • LIKEFILE Keyword • New Template keyword • Passing files as parameters • EXTDESC to specify file to be used at compile time • Allow Data structure in the result field for EXTFMT • Significantly higher limits for the size of variables • Size of variables to 16MB from 64K • Number of elements in an array 16MB(16 million) from 32K • Length of string literals to 16MB from 32K • Relaxation of some UCS-2 rules (available starting in V5R3 through PTFs). • Miscellaneous enhancements • Reduce module size • Store parameter info in the program
ILE RPG enhancements – main without cycle Ability to define a main procedure which does not use the RPG cycle • MAIN keyword on the H specification designates one subprocedure as being the main procedure, that is, the procedure that gets control when the program gets called. • Other than being the program-entry procedure, the main subprocedure is like any other subprocedure. It does not use the RPG cycle. • The prototype for the main subprocedure must have the EXTPGM keyword; the main subprocedure can only be called by a program call. • H MAIN(ordEntry) • D ordEntry PR EXTPGM(‘W23OE14X’) • D parms … • P ordEntry B • D ordEntry PI • D parms … • ... • P E
Agenda • Ability to run concurrently in multiple threads • Static (*Allthread) for fields • Serialize at the procedure level • Specify Main procedure to be called • No RPG Cycle is used • Local File support • Define files in a procedure after the ‘P’ Specification • Enhancements related to the use of files; • Qualified formats • LIKEFILE Keyword • New Template keyword • Passing files as parameters • EXTDESC to specify file to be used at compile time • Allow Data structure in the result field for EXTFMT • Significantly higher limits for the size of variables • Size of variables to 16MB from 64K • Number of elements in an array 16MB(16 million) from 32K • Length of string literals to 16MB from 32K • Relaxation of some UCS-2 rules (available starting in V5R3 through PTFs). • Miscellaneous enhancements • Reduce module size • Store parameter info in the program
ILE RPG enhancements – local files Files defined in subprocedures • Local F specifications follow the Procedure-begin specification and precede the Definition specifications. • P writeRecs b • Foutfile o e disk • D data ds likerec(rec) • C write rec data • P writeRecs e • I/O to local files can only be done with data structures. There are no I and O specifications for local files. • By default, the storage associated with local files is automatic; the file is closed when the subprocedure returns normally or abnormally. • The STATIC keyword indicates that all invocations of the procedure will use the same open file. If the file is open when the procedure returns, it will remain open for the next call to the procedure.
Agenda • Ability to run concurrently in multiple threads • Static (*Allthread) for fields • Serialize at the procedure level • Specify Main procedure to be called • No RPG Cycle is used • Local File support • Define files in a procedure after the ‘P’ Specification • Enhancements related to the use of files; • Qualified formats • LIKEFILE Keyword • Template keyword • Passing files as parameters • EXTDESC to specify file to be used at compile time • Allow Data structure in the result field for EXTFMT • Significantly higher limits for the size of variables • Size of variables to 16MB from 64K • Number of elements in an array 16MB(16 million) from 32K • Length of string literals to 16MB from 32K • Relaxation of some UCS-2 rules (available starting in V5R3 through PTFs). • Miscellaneous enhancements • Reduce module size • Store parameter info in the program
ILE RPG enhancements – avoid compile-time overrides (F) EXTDESC keyword and EXTFILE(*EXTDESC) • EXTDESC keyword • Identifies the file to be used for an externally-described file (at compile time). • The filename is specified as a literal in one of the forms 'LIBNAME/FILENAME' or 'FILENAME'. • FoutputF o e disk extdesc(‘MYLIB/MYFILE’) • This removes the need to provide a compile-time override for the file. • EXTDESC can be used to solve the problem where a record format has the same name as the file. When EXTDESC is used to locate the file, then any name can be used as the RPG-internal name for the file. • The EXTFILE keyword is enhanced to allow the special value *EXTDESC, indicating that the file specified by EXTDESC is also to be used at runtime. • FoutputF o e disk extdesc(‘MYLIB/MYFILE’) • F extfile(*extdesc)
Agenda • Ability to run concurrently in multiple threads • Static (*Allthread) for fields • Serialize at the procedure level • Specify Main procedure to be called • No RPG Cycle is used • Local File support • Define files in a procedure after the ‘P’ Specification • Enhancements related to the use of files; • Qualified formats • LIKEFILE Keyword • New Template keyword • Passing files as parameters • EXTDESC to specify file to be used at compile time • Allow Data structure in the result field for EXTFMT • Significantly higher limits for the size of variables • Size of variables to 16MB from 64K • Number of elements in an array 16MB(16 million) from 32K • Length of string literals to 16MB from 32K • Relaxation of some UCS-2 rules (available starting in V5R3 through PTFs). • Miscellaneous enhancements • Reduce module size • Store parameter info in the program
ILE RPG enhancements – larger fields Larger limits for data structures, and character, UCS-2 and graphic variables: • Data structures can have a size up to 16,773,104. • Character definitions can have a length up to 16,773,104. (The limit is 4 less for variable length character definitions.) • The LEN keyword can be used instead of the Length entry to define the length of a variable or DS • UCS-2 and Graphic definitions can have a length up to 8,386,552 double-byte characters. (The limit is 2 less for variable length definitions.) • The VARYING keyword allows a parameter of either 2 or 4 indicating the number of bytes used to hold the length prefix. A parameter of 4 is required if the defined length is over 65535.
ILE RPG enhancements - %ADDR for varying data %ADDR(varying_field : *DATA) • The %ADDR built-in function is enhanced to allow *DATA as the second parameter to obtain the address of the data part of a variable length field.
Agenda • Ability to run concurrently in multiple threads • Static (*Allthread) for fields • Serialize at the procedure level • Specify Main procedure to be called • No RPG Cycle is used • Local File support • Define files in a procedure after the ‘P’ Specification • Enhancements related to the use of files; • Qualified formats • LIKEFILE Keyword • New Template keyword • Passing files as parameters • EXTDESC to specify file to be used at compile time • Allow Data structure in the result field for EXTFMT • Significantly higher limits for the size of variables • Size of variables to 16MB from 64K • Number of elements in an array 16MB(16 million) from 32K • Length of string literals to 16MB from 32K • Relaxation of some UCS-2 rules (available starting in V5R3 through PTFs). • Miscellaneous enhancements • Reduce module size • Store parameter info in the program
ILE RPG enhancements – new UCS-2 rules Relaxation of some UCS-2 rules • The compiler will perform some implicit conversion between character, UCS-2 and graphic values, making it unnecessary to code %CHAR, %UCS2 or %GRAPH in many cases. This enhancement is also available through PTFs for V5R3 and V5R4. • Implicit conversion is now supported for • Assignment using EVAL and EVALR • Comparison operations in expressions and using fixed form operations IFxx, DOUxx, DOWxx, WHxx, CASxx, CABxx, COMP. • Note that implicit conversion was already supported for the conversion operations MOVE and MOVEL.
Agenda • Ability to run concurrently in multiple threads • Static (*Allthread) for fields • Serialize at the procedure level • Specify Main procedure to be called • No RPG Cycle is used • Local File support • Define files in a procedure after the ‘P’ Specification • Enhancements related to the use of files; • Qualified formats • LIKEFILE Keyword • New Template keyword • Passing files as parameters • EXTDESC to specify file to be used at compile time • Allow Data structure in the result field for EXTFMT • Significantly higher limits for the size of variables • Size of variables to 16MB from 64K • Number of elements in an array 16MB(16 million) from 32K • Length of string literals to 16MB from 32K • Relaxation of some UCS-2 rules (available starting in V5R3 through PTFs). • Miscellaneous enhancements • Reduce module size • Store parameter info in the program
ILE RPG enhancements – reduce module size Eliminate unused variables from the compiled object: • New values *UNREF and *NOUNREF are added to the OPTION keyword • For the CRTBNDRPG and CRTRPGMOD CMDs, and for the OPTION keyword on the Control specification. • The default is *UNREF. • *NOUNREF • Indicates that unreferenced variables should not be generated into the RPG module. • Reduces program size • If imported variables are not referenced, it can reduce the time taken to bind a module to a program or service program.
Agenda • Introduction – Taking Inventory! • RPG Update (V6R1, and beyond) • RPG Café • RDi • RTCi *** New product *** • Packaging update • Summary
New Café 'Home' Page • Cafe Home • EGL • RPG • C++ (In progress) • ???
Café For RPG Community • Join • Download • Product trials • Sample code • Learn • Documentation Corner • Articles, Presentations • Demos • Sandbox • Share • Forums • Blogs • Ratings • Comments • Share code • Partners • Goings On • Shape Future Enhancements
Café For RPG Community • Forums • Features • Blogs • All Cafes
RPG Café Preview Demo - Menus • Products • RDi • RDi SOA • RTCi • WDS (IBM WebSphere Development Studio for i) • Partners • List of participating partners • Resource Library • Articles, Presentations, Books • Downloads • Goings On • . . . • Hubs • RDi • RDi SOA (links to EGL i Hub) • RTCi • Forums • Cafe Feedback (all Cafes) • Discuss RPG features/requirements • Blogs • Blogs apply to all Cafes • List Blogs by activity • List Blogs by most recent • Invite Input for Subjects/Authors of interest • Hubs • RDi • RDi SOA (links to EGL i Hub) • RTCi
Agenda • Introduction – Taking Inventory! • RPG Update (V6R1, and beyond) • RPG Café • RDi • RTCi *** New product *** • Packaging update • Summary
Eclipse & Rational: What is RDi? • Rational Developer for i • Application Development Tool for RPG, COBOL, CL, etc. • Tightly integrated set of tools • Modern, graphical, workstation based tools • PDM / SEU like features to make transition easier • Remote access to i5/OS development resources • Libraries, objects and members • CL commands • Jobs • Integrated file system • Replacement for SEU/PDM and CODE/400 • But so much more than just a replacement
Eclipse & Rational: Why the move away from 5250 tools? • Integrated set of tools for developing i5/OS applications • Tools based on Eclipse open source IDE • Integrated with change management systems • Open source tools • Vendor tools • Improve productivity for native development • Closely integrated edit, compile, run / debug experience • Tools to help better understand large applications • Lower learning curve for other technologies • Learn the Workbench tools with RPG / COBOL development • Then branch into Web, XML and Web Services development using the same tools platform
Install 7.1 • Consists of 2 CD’s • Installation time: approx 10min • Hardware: • Pentium III 800 MHz processor minimum (higher is recommended) • 512 MB RAM; 1 GB RAM recommended • Supported Install OS’s: • Microsoft Windows XP Professional • Microsoft Windows 2000 Professional • Microsoft Windows 2000 Server & Advanced Server • Microsoft Windows Server 2003 Standard Edition & Enterprise Edition • Microsoft Windows Vista Business, Enterprise, and Ultimate
Edit: Accessing Libraries, Objects and Members • Remote Systems View • Shows all connections • Allows drill down access to remote objects • Expanding a connection shows “subsystems” • These are not i5/OS job subsystems • Just different parts of the i5/OS you can access • Drill down to access • Subsystems • Objects • Commands • Jobs • IFS files • Qshells
Use local pulldown to see additional columns Object Table View, like PDM • Can also • Change contents • Subset contents • Position list • Print list • …. Just like PDM!
Ctrl+Shift+F5 Outline View Refresh: This populates Outline view Click on entry to position to it
Verify – Error List Double clicking on error takes you to error in source
Content Assist Use Ctrl+Space for context-sensitive selection Available for RPG and COBOL
Debug: Overview • RPG, Cobol, CL, C, and C++ • ILE and non ILE, incl. free-form RPG • DB2 and SQL stored procedures • Batch, interactive, and Multi-Threaded Applications • Client/Server Applications • Distributed Applications • Java
Modernization: Application Diagram Overview • Provides graphical overview of 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 • service programs
Application Diagram Outline View • Outline view shows high level overview of the current diagram • Two modes • Thumbnail mode shows graphical overview • Shaded area represents the portion of the diagram currently visible in the editor • Text mode shows list of members, programs and service programs • Expand member to show list of subroutines and procedures
Modernization: Application Diagram Subroutine ChgOrder calls something inside the ROUTINES member ORDENTR member expanded to view a call graph Subroutine RqsPart calls subroutine Process Subroutine WrtDtaQ calls program QSNDDTAQ
Modernization: SOA support • Capability only available if RDi is installed with • Rational Application Developer • Rational Business Developer • etc. • Exploit existing logic • All source code is generated • Secure Sockets Layer (SSL) support • Easy to use generated WSDL & Java
New Offerings for RDi • You asked “Give us better incentives to move to RDi”! We listened to you… • New Discounted feature for RDi • RDi Retail price: $795.00 • RDi discount is -40% off retail price • Feature number: 0004 • Product id: 5733-RDI • Discount: 40% • End per user price: $477.00 • Condition: • Have ADTS • Active on SWMA Kiss ADTS goodbye, and Welcome RDi home!
Top Dozen reasons to move to RDi… (In no order) • Multiple connections to IBM i machines • Connections to Linux, Unix, and System z • Working in disconnected mode • Local program verification • Error list • Outline view • Easy access to /Copy members • Conversion to Free form RPG • Display F-Spec content in a view • Code assist • Application diagram • Syntax checking • Table view like PDM
Agenda • Introduction – Taking Inventory! • RPG Update (V6R1, and beyond) • RPG Café • RDi • RTCi *** New product *** • Packaging update • Summary
Collaboration Challenges with Enterprise teams How can see the status of all of my teams in one place? Why are some teams not following our agreed upon process? How are our fellow teams in other platforms organized? Who is working on what? How can we verify that all of the components of an enterprise application have been built properly? Our enterprise development teams working on different platforms are struggling to communicate. How can we collaborate in the context of our work Why and when was this code change made? Low Complexity High Complexity We need to deploy an enterprise application to our System z, System i, and Unix servers. How can we coordinate that deployment? Distributed software development teams across the hall or spread around the world face similar challenges The build was broken by another team, how can our team repair w/o waiting
A sample lifecycle: How do we collaborate? Request Enhancement Approve UI Design Test changes to ensure they meet the requirement Approve changes End User Create Iteration plan and schedule to coordinate delivery Add Work to iteration Plan and assign to Developers Approve Technical Design Check progress on iteration plan Approve Upgrade to Production system Dev Mgr Design changes to components Request Design Approval Deliver Code changes Integration Testing COBOL/RPG Developer Design changes to component Request Design Approval Deliver Code Changes Integration Testing Java Developer Deploy Build to z or i QA System Schedule And Deploy Enhancements To Production System z or i Admin Deploy Build to Linux, Unix, Windows QA System Schedule And Deploy Enhancements To Production System Linux/Unix/Windows Sys Admin
What is Jazz? Jazz is a vision for integrating work across the software lifecycle, and a technology platform designed to enable that vision ***Jazz is to the server as eclipse is to the workstation*** Innovation Evolution A major investment by IBM to create a scalable, extensible team collaboration platform Many Rational products will evolve to support the Jazz technology platform over time, bringing a host of next-generation capabilities to the Rational Software Delivery Platform. Community Vision Jazz.net – an online venue for open commercial development of the Jazz platform and Jazz-based products. Our vision for the future of software delivery -- supporting diverse types of teams and a workforce that is increasingly organizationally and globally distributed, fluid and dynamic. 50