Este vídeo pertenece al curso Mainframe - Crucial Role in Modern Enterprise Computing de openHPI. ¿Quiere ver más?
An error occurred while loading the video player, or it takes a long time to initialize. You can try clearing your browser cache. Please try again later and contact the helpdesk if the problem persists.
Scroll to current position
- 00:00Welcome to an overview to Mainframe Application
- 00:03Development. My name is Philipp Brune from the
- 00:06New-Ulm University of Applied Sciences.
- 00:09Mainframe application development
- 00:12covers mainly to our mainframe applications cover
- 00:15two main areas of
- 00:18processing or of two types of data processing.
- 00:22And these are the batch processing
- 00:25and the online transaction processing or
- 00:27OLTP type of applications.
- 00:30So these are the two areas where mainframes
- 00:33are classically used
- 00:36to implement business functionality.
- 00:40Batch processing, the name comes from the original
- 00:43punch card badges which really
- 00:46physical badges nowadays, of course,
- 00:48these are just implemented
- 00:51in software and batch
- 00:54processing deals with the asynchronous
- 00:57processing of high data volumes
- 01:00in the background, so without user interaction
- 01:03and is usually used
- 01:06for for all the tasks in a company
- 01:09that, for example, are time related, like
- 01:11booking the salaries at the end of the month or
- 01:13booking the end of day data
- 01:16and so on.
- 01:18Everything that is sort of a background and
- 01:20asynchronously processed.
- 01:22Usually, on the mainframe, these are implemented
- 01:25using the job control language and the
- 01:27job entry subsystem, the JS that
- 01:30you already heard about in the overview and set
- 01:33ups.
- 01:34On the other hand, mainframe, or one of the
- 01:36strengths of the mainframe is online transaction
- 01:38processing. This is usually
- 01:41the software that deals with the online
- 01:43interactive processing of business transactions,
- 01:46for example, bookings, orders and things like that.
- 01:50And these are typically online.
- 01:52So they are synchronous and there's a
- 01:55huge number of transactions in parallel.
- 01:57Just think of retail store where every
- 02:00good that is moved over the cashier machine
- 02:03is, for example, booked out of the
- 02:06stock. So every
- 02:09single product then would create a transaction.
- 02:11So that is a huge number of transactions.
- 02:14And if you think about
- 02:16big companies like, for example, Walmart, which we
- 02:18had already a big retailer, then you have a huge
- 02:21number of transactions.
- 02:23And typically for these kind of systems, we need
- 02:25transaction processing monitors as middleware
- 02:28component, like, for example, that kicks
- 02:31the customer information control system to
- 02:33implement these kind of a high volume transaction
- 02:36throughput applications, ensure
- 02:39the ACID properties and
- 02:43implement distributed transactions.
- 02:45We will learn about all these things in the
- 02:47subsequent chapters.
- 02:49So this is just a sort big picture.
- 02:52We have two classes of systems, batch processing,
- 02:54online transaction processing, and the mainframe
- 02:57has concepts for both.
- 03:00And when we talk about mainframe application
- 03:01development, we have to talk about
- 03:04concepts and tools and languages for these two big
- 03:07areas of applications.
- 03:11Regarding programing and implementing applications
- 03:14on the mainframe, regarding the programing
- 03:16languages, for example, we have different
- 03:20types of tools to implement job
- 03:23control, controlling batch processing.
- 03:26We typically use JCL, the job control language
- 03:29under z/OS.
- 03:30But there are also other possibilities, like, for
- 03:32example, the language Rexx, which IBM
- 03:35featured some years ago for most
- 03:38of their platforms.
- 03:39And you can also use these procedures, but this is
- 03:42less common. So scripting TSO
- 03:45commands and execute them as a job, that's also
- 03:47possible.
- 03:48Regarding implementing business functionality,
- 03:51programing languages on the z/OS
- 03:54and also on the mainframe. We have different kinds
- 03:57of tools as for example, classically
- 04:00the high level assembler.
- 04:01In the past, even business applications were
- 04:03partially written in assembly language.
- 04:05So there's the high-level Macro assembler
- 04:08on z/OS, which is a very powerful assembler
- 04:10language that resembles higher programing
- 04:12language. So it's very expressive regarding
- 04:16more abstract constructs.
- 04:18Then, of course, one of the most
- 04:21important languages for mainframe software
- 04:23development is COBOL, the common business oriented
- 04:25language, a very old, one of the first
- 04:28higher programing languages that still is around
- 04:30and still has a major role in enterprise
- 04:33software development.
- 04:35There's another language called PL/1, which is more
- 04:38or less an IBM product and only
- 04:41common on IBM platforms today, mainly on the
- 04:42mainframe, which is also used
- 04:45for writing business applications.
- 04:47But it has a smaller installed base than COBOL.
- 04:51And of course, all the other languages that, you
- 04:53know, C, C++, classical languages or Fortran
- 04:56are well available on z/OS.
- 05:01The second important language today, of course, is
- 05:03Java on
- 05:06z/OS and on Linux, it is an important language for
- 05:08implementing applications in business and
- 05:11on the mainframe.
- 05:12And IBM has, for example,
- 05:15invested a lot to make the mainframe
- 05:18one of the most performant and powerful
- 05:20Java platforms.
- 05:23And combined with Java,
- 05:26of course, it can run all JVM languages
- 05:29like Scala, which is important for big data, but
- 05:31also, of course, scripting languages like PHP and
- 05:34Python and so on are available on the mainframe.
- 05:39Another kind of software language environment
- 05:41that it's not so well known today
- 05:44as the so-called fourth-generation languages,
- 05:474GL.
- 05:48This comes from the past when there was,
- 05:52one considered higher programing languages, the
- 05:54third generation. And then people said, OK, that's
- 05:56something beyond languages is fourth generation.
- 05:59These are more like software environments for
- 06:01creating business applications.
- 06:03And one of the most prominent examples of that
- 06:06is the natural platform by the
- 06:09German Software AG, which is
- 06:11used to implement business applications.
- 06:14This was some sort of,
- 06:17well, dead-end route for languages.
- 06:19The 4GLs were not really
- 06:23taking over the full software development market.
- 06:26Nowadays, this is more like a legacy technology
- 06:29but still is used.
- 06:31And of course, we need databases to implement
- 06:33business applications.
- 06:34And on the z/OS and mainframe, of course, the most
- 06:37classical database systems is DB2, which is a
- 06:39relational or the first relational database system,
- 06:42and IMS, which is a
- 06:46database management system that's even older than
- 06:48DB2 and it's a hierarchical non-relational
- 06:51database system coming from the
- 06:56z/OS environment. And today one would say
- 06:58this is kind of No SQL database.
- 07:01So, all the ideas
- 07:03are coming back at some point in time in
- 07:06computer science.
- 07:08If we look at the languages, of course, here's a
- 07:10history tree of life and evolution
- 07:13of the languages. And you see COBOL is on the top.
- 07:15It's one of the first programing languages in the
- 07:1750s already.
- 07:18The specification started and it was very
- 07:21influential for other languages, but still is
- 07:23one of the major languages for the
- 07:26developing enterprise applications.
- 07:29And here you see an example.
- 07:31This is just a screenshot of a simple
- 07:34transaction, a COBOL program,
- 07:37transactional COBOL program that should be or could
- 07:40be run on the CICS application server.
- 07:43And you can see the COBOL code here is
- 07:45green and red and white.
- 07:48And the blue part here are some special
- 07:51commands that are basically macro language
- 07:54commands to interact with the CICS
- 07:57transaction monitor. We will have a deeper look on
- 07:59that when we discuss transaction processing.
- 08:02What you can see here is that COBOL is very strict
- 08:05about the indention
- 08:08and or the commands need to be formatted in a
- 08:10certain way and to have started a certain
- 08:13column and then sometimes makes it hard for
- 08:15beginners. Besides this, the language is very,
- 08:18very self explaining.
- 08:20It's close to the English language.
- 08:22You can see identification, division.
- 08:23It's a lot of wording here, a lot of text.
- 08:25That is the idea of COBOL was to create
- 08:28a programing language which resembles
- 08:30the natural English language.
- 08:32So people would not, who were not
- 08:34IT experts would be, the idea was that they should
- 08:37be able to read the problem.
- 08:38So it's sort of like a natural text.
- 08:42And we will have a deeper look on COBOL
- 08:45also in this chapter.
- 08:48Of course, today people are developing business
- 08:51applications with modern client tools like the
- 08:53Eclipse IDE, and there are those plug ins
- 08:55that allow to write
- 08:58COBOL, as you can see here with the eclipse, write
- 09:00it on the PC and then tested remotely on
- 09:04z/OS mainframe, for example.
- 09:07So also for mainframe software development,
- 09:09of course, the modern tools like Eclipse and Git
- 09:12and so on are available.
- 09:15Nowadays, for some years now, besides
- 09:18CORBA, probably the most important language on the
- 09:20mainframe is Java.
- 09:22So it increased a lot in recent years because it's
- 09:25so common to use for business application
- 09:27development. And as you can see, Java is sort
- 09:30of on the other side of the history.
- 09:31It's a rather modern language from the 90s
- 09:35compared to COBOL.
- 09:37And Java is now
- 09:40supported more or less for everything
- 09:43on z/OS. It's supported
- 09:46using the so-called Unix system service
- 09:48environment.
- 09:50So you can write a transaction code
- 09:52in Java and you can also write batch processing
- 09:55programs in Java.
- 09:57And of course, you can use
- 09:59Java with more or less the same JVM
- 10:02implementation.
- 10:03Very performant.
- 10:06On z/OS, as well as on
- 10:08Linux, on the mainframe and Linux on the mainframe,
- 10:11you have, of course, all tools and
- 10:14components and software, open-source
- 10:16tools available for Java development that
- 10:19you are used to from any other platform.
- 10:23A final look on Java involving people
- 10:26will have a look on Java as well.
- 10:27So Java is not only a programing language,
- 10:31of course, in the core, there's the Java standard
- 10:33edition, which is what you would typically install
- 10:35when you download the JDK.
- 10:37The Java Standard Edition is the language itself,
- 10:40the compiler, the runtime environment, the JVM
- 10:44and the standard APIs and the
- 10:46corresponding libraries.
- 10:49However, to develop
- 10:52business applications in Java, you need to know
- 10:54more and you see that the next
- 10:56level is a so-called Java Enterprise edition,
- 10:59as it used to be called, just recently, it was
- 11:02renamed to Jakarta EE and was sort
- 11:05of set free to the open-source community and
- 11:07then over to the open-source community and is now
- 11:10maintained by Apache.
- 11:13And this is basically
- 11:16a specification. So Java is also
- 11:19a product, the JDK, but Java EE
- 11:22or Jakarta EE is, first of all, is a specification
- 11:25that specifies an environment for writing business
- 11:27applications, which involves
- 11:30web front-end, web server, transaction processing
- 11:33and things like that.
- 11:34And this specification then could be
- 11:37implemented by
- 11:40whoever likes to implement it, so there are many
- 11:42different implementations that are all Jakarta or
- 11:45Java EE compliant, like, for example, commercial
- 11:47ones and open-source ones.
- 11:49So that's the JBoss wildfly server which
- 11:52is a free open source implementation.
- 11:54But there are also commercial implementations,
- 11:56like, for example, IBM, WebSphere or Liberty
- 11:59for z/OS. So that is nowadays the
- 12:02new Jakarta EE server by IBM
- 12:05is the Liberty, which is available
- 12:08in the open version for all platforms called Open
- 12:10Liberty. And there's also Liberty
- 12:13for z/OS, which is a licensed product.
- 12:17And besides this, of course, Java is
- 12:19more than just the official specifications.
- 12:21There's the Java ecosystem around,
- 12:24which is a huge ecosystem of open source
- 12:27tools and projects that over the decades
- 12:30evolved around the Java language.
- 12:32There are different IDEs.
- 12:34There are all these projects from the Apache
- 12:36Foundation. There's the Eclipse and the Eclipse
- 12:38Foundation with all the projects, for example,
- 12:41JUnit is a very common tool.
- 12:43We have the spring framework, we have the play
- 12:45framework and we have other languages for the
- 12:47JVM and so on. So becoming a Java
- 12:50developer involves not only the knowledge of the
- 12:52language but also the knowledge of the ecosystem
- 12:55around. And in what follows,
- 12:58we will have a short view on Java and
- 13:01later on have a view on Java or Jakarta EE
- 13:03as a platform for implementing
- 13:06transactional business applications.
- 13:09Not only on the mainframe but, of course,
- 13:12playing an important role on the mainframe.
- 13:16Thank you very much.
To enable the transcript, please select a language in the video player settings menu.