Almost all application languages can use Db2 for z/OS. It surprises me when discussing the Db2 interfaces with management, architects, application managers and developers that they are not aware of wide variety, new languages and interfaces available to Db2 for z/OS and Db2 LUW. Below is only a partial list of some of the newest and latest application languages that Db2 for z/OS and Db2 LUW can leverage easily.
Apple Swift Probably one of the newest application languages, Apple’s Swift has the ability to reference Db2 for z/OS. The support for Swift started a while back, and IBM is in the development and testing phase of it fourth version of Db2 for z/OS drivers. To access the beta program for Db2 for z/OS drivers click here. Swift is pretty cool since it uses static data types and has some neat features like ILC with C and PL/I interfaces.
Apache Spark Apache Spark for z/OS provides a powerful platform for application processes to interface with Db2, VSAM, IMS, open source NoSQL HDFS and many other data platforms and interfaces. Apache Spark for z/OS provides a great data layer interface for accessing legacy and new NoSQL data stores. This flexibility of Spark provides a single data layer for optimizing access to start machine learning (ML) experiments using your Db2 z/OS to train ML models. More information on Apache Spark can be found by clicking here and here.
Scala Scala and the Lift Framework provide another great way to access Db2 z/OS and Db2 LUW database information. Scala uses standard JDBC and SQLJ methods to provide connectivity to the Db2 options, just like it does to many other platforms and DBMSs. Scala can be used with Spark and other data access frameworks such as Activate Framework, Anorm, ScalikeJDBC and Squeryl. Example source code for a Scala applications referencing Db2 using the JDBC API and another example of the Scala application using the Spark SQL module can be found by clicking here. Also if your company is starting their Machine Leaning initiative, Db2 for z/OS is key along with Spark and Scala. Check out this article for more information.
Db2 Java Java of course is the standard development language and easily references the Db2 for z/OS and Db2 LUW data for any type of mobile, IoT or analytics application. I have written previously on Java Db2 access and performance. Those Db2 Java various connectivity and performance blogs are listed below.
- Java Database Exception Handling
- Vital Java DB2 SQL Performance Considerations
- Two Java Items to Check to Improve DB2 Performance
- DB2 Java Application Performance: Monitoring and SQL Improvements
node.js Db2 for z/OS can use the industry standard node.js interface to retrieve JSON data just as it is retrieved from other open source JSON data stores. A good example and step-by-step instructions for getting an example Db2 for z/OS node.js JSON application going can be found by clicking here and another here.
Db2 PHP PHP has been around for many years and interfaces nicely with Db2 and many other databases. One of the most popular applications in the world, Facebook had many parts of its front end interface written in PHP which has been optimized to use XHP. The runtime is HipHop for PHP. Facebook continues to develop a variety of products in a variety of languages such as C++ and a new language, D. A good example for connecting a PHP application to Db2 can be found by clicking here.
Db2 Python Python, its Django framework and the SQL Alchemy Engine API have been used for a long time as PHP interfaces with SQLite, Db2, Hadoop and other open source DBMSs. A good example for connecting Python to Db2 for z/OS can be found by clicking here. For a great tutorial of examples of building Django applications can be found by clicking here.
Ruby Ruby and Ruby on Rails have been around for many years and have been great for developing application quickly through the easy application programming language and IDE development environment. Db2 Ruby on Rails development for simple applications is quite quick, but some complex business logic can be challenging to customize. An example of building Db2 Ruby on Rails can be found by clicking here.
Db2 Hibernate This product is not really my favorite interface, but I have worked with Db2 Hibernate, the object relational data mapper ORM product, with clients over the years. Hibernate can cause performance issues due to the way it persists data within applications, so be careful on how much data is held persisted in the Hibernate layer. A Stack Overflow question and answer discussion that can be found by clicking here covers Hibernate configuration properties required within a Db2 Hibernate connection configuration file so that a Db2 Hibernate ORM mapping can be established. Also, I wrote about some of the many important performance Hibernate Db2 considerations in this blog post from several years ago.
Db2 RESTful API Every company is interfacing with mobile and IoT applications through RESTful services. Db2 provides these RESTful service natively through DDF. Db2 for z/OS has a great RESTful interface without the need of a specific “Db2 driver” as detailed in this two part article here.
These are only some of the most recent IBM Db2 for z/OS and Db2 Family application language interfaces. New programming languages continue to be developed and become more specialized. IBM and Db2 are committed to making the database information available by continually providing new application interfaces available. Share this information with your management and application developers so they know that their data is always accessible through Db2. What are the newest and next application languages for which Db2 needs an interface?
Dave Beulke is a business strategist, systems architect and performance expert specializing in big data, data warehouses and high-performance internet solutions. He is an IBM Gold Consultant, Information Champion, President of DAMA-NCR, former President of International DB2 User Group (IDUG) and frequent speaker at national and international conferences. His strategies, architectures and performance tuning techniques enhance analytics, security and performance so organizations can better leverage their information assets and save millions of dollars in time to market, CPU, development and overall costs. Follow his blog at davebeulke.com or on Twitter here (@DBeulke) or connect through LinkedIn here (https://www.linkedin.com/in/davebeulke).