S609. RDz and Source Control Management Systems Michael Erichsen michael.erichsen@xact.dk www.xact.dk Agenda Source Control Management (SCM) What it does Some product examples Integrating RDz with SCM Architectural problems Technical solution models Practical examples SCLM Endevor ChangeMan Rational Team Concert 1
SCM or Chaos Coordinate the work of teams and individual developers Annotate and comment your work Version Control Check out, check in (commit), build, rollback, branch, merge, view history New development, maintenance/bug fixing, testing Lifecycle Management 2
Terminology What's in a name? that which we call a rose By any other name would smell as sweet; Library management Source control management Application lifecycle management Different names Also a difference in age and functional richness ITIL Service Transition 3
Change Management Minimal disruption of services Reduction in backout activities Economic use of resources involved in the change Service Asset and Configuration Management Identification Planning Change Control Change Management Release Management, and Maintenance 4
Release and Deployment Management Planning the rollout Procedures for distribution and installation Communicating and managing expectations Controlling distribution and installation From Understanding Version- Control Systems by Eric Raymond VCS Year Verbs Conflict Model Units of Commit atomicity Data model resolution operatio n SCCS 1972 13 locking local access files - - RCS 1982? 7 locking local access files - - DSEE/ClearCase 1984 >130 locking local access files - - CVS 1984-1985 32 merge-beforecommit centralized files non-atomic snapshot client-server merge-beforecommit centralized Subversion (svn) 2000-2004 32 or client-server filesets atomic snapshot locking BitKeeper 1997-1999? commitbefore-merge decentralized filesets atomic changeset Arch 2001-2002 107 merge-beforecommit decentralized filesets atomic changeset ArX 2003 44 merge-beforecommit decentralized filesets atomic changeset Monotone (mtn) 2003 63 commitbefore-merge decentralized filesets atomic changeset 5
Typical SCM Operations Transfer code between editors and the control manager Handle parallel development by locking or merging Combine elements into packages or streams Handle dependencies Build executables Promote from development through production Manage metadata Versioning and tracking Deployment A few Words on Some of the Mainframe Products Librarian Applied Data Research Ameritech CA Panvalet Pansophic CA ClearCase Apollo Atria PureAtria Rational IBM Endevor Business System Technology CA ChangeMan Serena ISPW ISPW Rational Team Concert IBM 6
Librarian Panvalet 7
SCLM ClearCase 8
Endevor ChangeMan ZMF 9
ISPW Rational Team Concert 10
Why do you need an Integrated Development Environment? How can RDz Complicate your Life even Further in a Source Control World? SCM Has its own terminology Has a standard for data set names Syntax checkers Has its own views on data and relations Controls the build process RDz Syntax checkers Has its own views on data and relations Has a standard for data set names Has its own terminology Controls the build process 11
Three Components of RDz Workstation RDz Connectivity FTP Remote Execution SOAP REST And more Host Developer for System z The Host Environment Runtimes Tools Developer for System z 12
Applications on the Host COBOL PL/I HLASM Rational Asset Analyzer File Manager Your SCM Product Debug Tool Fault Analyzer CICS DB2 IMS MQ How do you integrate RDz with an SCM? CARMA (Common Access Repository Manager) Specific vendorsupplied interfaces 3rd party interfaces Roll your own RDz Connectivity Developer for System z 13
Common Access Repository Manager (CARMA) Workstation RDz View CARMA Plug-in Connectivity Host CARMA RAM SCM Server platform for Source Control Managers Uses a Repository Access Manager (RAM) to call SCM Connectivity part of RSE What is a RAM? A RAM is a dynamically linked library (DLL) with entry points for all its API functions Typical RAM pattern: 1. Determine what instance and/or member the request applies to 2. Contact the SCM to carry out the requested operation 3. Allocate any memory necessary to return the result 4. Fill the allocated memory with the result 5. Return the result to CARMA 14
CARMA functions Browse, extract, create, update and delete an SCM member Get and update SCM member metadata Copy a member to and from a PDS or SDS Lock, unlock, check in, and check out a member Browse an SCM member's history The RDz Remote Resource Access API RDz or 3 rd party plug-ins Project API Remote Resource API Connectivity Host RSE 15
3rd Party Interfaces Help user companies to customize the RDz- SCM interface exactly to their existing processes Roll Your Own Workstation Extending the CARMA plug-in A standard Eclipse plug-in Add custom actions at Eclipse extension points Use the Remote Resource Access API Manipulate host resources directly from an Eclipse plug-in inside RDz Connectivity Host Replacing the RAM on the host Build your own CARMA client on the Workstation to match it 16
SCLM Overview Library Manager Keep developers from overwriting each other's work Move source from one set of development libraries to the next Keep back-level versions of source and an audit trail Configuration Manager Track how pieces of an application fit together Source code, object and load modules, test cases and documentation Used to control compiling, linking, and promoting an application SCLM Structure Optional feature of ISPF Installed as part of your general z/os installation Macros, procedures, modules and samples reside in ISP.SISP* The SCLM project database A set of related partitioned data sets Source and non-source software components SCLM project definition and control information is contained in an assembled and linked PROJDEFS data set SCLM project cross-reference and accounting data sets are VSAM clusters 17
Creating a Project SCLM Project Hierarchy Release Test Dev1 Dev2 18
Using SCLM Interfacing RDz to SCLM Move editing from 3270 ISPF to the workbench Keep SCLM as our SCM Seamless integration wanted Call SCLM commands from RDz Display results in RDz 19
The CARMA Interface to SCLM SCLM Developer Toolkit Eclipse-based plug-in application Provides services to Eclipse projects and host based SCLM projects Supports both workstation and mainframebased languages 20
SCLM DT Host Configuration Customize Developer for System z configuration files ISPF.conf rsed.envvars Optional tasks Long/short name translation support Ant for JAVA/J2EE build support Update SCLM to define SCLMDT-specific parts Language translators for JAVA/J2EE support SCLM types for JAVA/J2EE support DEMO 21
SCLM DT and RDz RDz Endevor Implementation Pre-built RAM's Endevor SCM RAM and SCM packages RAM Existing CARMA Views in RDz CARMA Repositories CARMA Version History CARMA Fields Table Endevor-specific wizards and editors Parameter gathering Package editor Developer for z configuration 22
Developer for z Configuration CARMA server start-up CRASTART (subtask within RSE) Batch submit Create CARMA VSAM data sets CRADEF, configuration data set CRAMSG, message data set CRASTRS, custom string data set Developer for z Configuration CRASRV.properties RSE interface to CARMA crastart*.conf CRASTART server start-up CRASUB* Batch submit server start-up CRASHOW and CRATMAP Endevor SCM RAM configuration files CRANDVRA Endevor SCM RAM allocation exec 23
The Endevor-RDz Challenge Source and dependent copybooks must be extracted to a remote RDz project from the Endevor Syntax check, content assist and other nice editor features live in the RDz environment RDz relies on its own build procedures and property groups to do syntax check Builds are done by Endevor after checking the source in again DEMO 24
Serena ChangeMan ZMF for Eclipse Serena ChangeMan ZMF for Eclipse provides plug-in integration between ChangeMan ZMF and RDz An optional licensed feature of ChangeMan Does not use CARMA or RSE or Host Developer for z Goes directly to the ChangeMan repository in zfs ChangeMan Components Workbench Plug-in Invokes a Web Service Web Application Server Connects via TCP/IP Software Repository Returns the artifact 25
The ChangeMan Perspective Serena Explorer 26
Checking in from RDz to ChangeMan RTC and RDz Use RTC for source control Integrate RTC with your existing SCM 27
RTC used from RDz The System z Jazz Gateway 28
Conclusions RDz and the SCM both want to be in control Must design to fit your environment A clash of vocabularies SCM vocabulary known by the veterans RDz vocabulary intuitive to newcomers Conclusions Many ways to connect to the SCM CARMA a generic solution Each vendor their own model RDz with SCM nice and useful for the developers When up and running 29
S609. RDz and Source Control Management Systems Michael Erichsen michael.erichsen@xact.dk www.xact.dk 30