Db2 For i Innovation: Expect The Unexpected
July 23, 2018 Alex Woodie
When it comes to planning the future of the database at the heart of the IBM i platform, there’s a lot to be said for taking a conservative approach. Why mess with success? But that’s not necessarily the route taken by IBM’s architect for Db2 for i, Scott Forstie, and the IBM i community is the better for it.
As the business architect in charge of Db2 for i, it is Forstie’s job to ensure the database meets the needs of IBM i shops around the world. IBM has a duty to protect the investment that its clients have made in the platform, and keeping the Db2 for i database up-to-date with current standards and has a solid competitive posture against other databases is a big part of the senior software engineer’s job.
But another aspect of Forstie’s job is going beyond the day-to-day and envisioning other ways that Db2 for i can bring value to IBM i users. That sometimes means delivering capabilities to clients that are neither requested nor expected, Forstie told IT Jungle during COMMON‘s recent POWERUp18 conference in San Antonio, Texas.
“Sometimes, clients don’t know to ask for certain things,” Forstie said. “Things that haven’t showed up in the marketplace yet. The reason why they don’t know to ask for it is maybe it’s not something they’re doing today.”
A good example of this was Watson. IBM i shops weren’t clamoring for a way to connect their on-prem IBM i server to IBM’s Watson service running in the cloud so they could apply machine learning, natural language processing, and other artificial intelligence techniques on Db2 for i data, but Forstie could see how it could benefit them anyway.
“Clients weren’t asking us how to engage Watson,” Forstie said. “It was this era of cognitive computing. We as a team started to study this topic and decided we needed to interpret the realm of what’s possible, present it to the clients, and ignite the fire, and say ‘The next step is yours.'”
IBM delivered that Db2 for i-Watson connector in 2017, and customer are now able to take advantage of those AI capabilities. While tapping into Watson may not yet be the primary goal of IBM i developers, the capability is there and ready to be leveraged by those bold enough to push for innovation in their own businesses.
Forstie calls it the start of a new era of creative computing in the datacenter. “We’re not saying ‘Oh let’s focus on a batch process that you’ve been using for a long time and try to make it a little better,'” he said. “It’s about trying to bring this whole idea of cognitive computing, natural language understanding, or even AI and make it relevant to your business.”
If the nine POWERUp18 sessions dedicated to using Watson with IBM i are any indication, the idea is starting to gain traction. It also showed Forstie that IBM i shops, if shown a possible path, can adopt cutting edge technologies into their businesses.
“Most customers, no surprise, are business minded,” he said. “They have to be. They’re weighing all these things – value, risk, their staff – when they put tomorrow’s plan in place. And if you don’t show them the blueprint of something like Web services to talk to Watson, they won’t even consider it.”
A similar thing happened with JSON. The data type, which is formally known as JavaScript Object Notation, has become a de facto standard to exchange data on the Internet. An entire field of NoSQL databases, as exemplified by leaders like MongoDB and Apache Cassandra, store data natively in JSON or a JSON-like format.
Now, storing data in flat JSON documents is much different than storing data in rows and columns. Db2 for i is never going abandon orderly tables and SQL for a bunch of JSON and a new query language. But that doesn’t mean that Db2 for i can’t be augmented with JSON capabilities, and in fact that’s what IBM has done over the past few years, culminating with the recent capability to publish JSON data with IBM i version 7.3.
“I think we, as technologists, have to show them that is it relevant for business,” Forstie said. “Our clients, maybe they’re saying ‘Hey let’s do this better in RPG,’ because they know and love RPG. But behind the scenes, we started to work very aggressively on how can we put the SQL concepts in place to decompose, or to shred, JSON documents into relational data, and also take all the artifacts of the company’s business that are sitting in Db2 for i and publish it – taking rows and columns and actually creating JSON documents and pushing it out as a Web service. It sounds like something that’s a big endeavor but it’s easy to do.”
There are a huge number of ways businesses can leverage the capability to read and write data in JSON using Db2 for i. Since JSON has become the lingua franca of data on the Web and a defacto standard data interchange format, supporting JSON, in retrospect, was a no-brainer for Forstie and his team. (The fact that Oracle and Microsoft moved to support JSON as BLOBs in their RDBMSs also provided some incentive, too.)
Undoubtedly, many IBM i shops will never touch Db2 for i’s JSON capabilities. And that’s just fine with Forstie. In fact, just getting IBM i shops to adopt SQL has proven to be a challenge, what with native record-level access to Db2 for i still running strong for many customers.”
“I don’t propose rip and replace,” Forstie said. “We’re never going to take away record-level access. We love DDS. Don’t get me wrong. All these things that have been around and been the backbone of business – we protect it because they are really precious assets to our clients.”
Customers can do things with the SQL Query Engine (SQE) in one line of code that would take hundreds of lines of RPG to do with record-level access. But giving customers the option to take advantage of new technology – whether it’s Watson or JSON or just regular SQL – is part of the gig.
Recently Forstie and company have spruced up Db2 for i’s OLAP capability, giving customers the capability to do more powerful analytics on the box instead of moving the data elsewhere. In the future, don’t be surprised if you see more AI and machine learning capabilities coming to the IBM i platform, and possibly getting first-class hooks into its first-class database. This is all part of Forstie’s plan to think of ways to use the box before you do.
“It’s not just technology for technology’s sake. It’s business-minded people getting things done,” he said. “So I say, shoot for the stars here. Think of those things that you’ve always wished you knew about your business, and maybe there’s very practical approach to addressing that.”
RELATED STORIES
Q&A With IBM i’s AppDev Architect
Google Close to Launching IBM i Cloud Service, Will Says
I think taking some of the features from Forms DBs like Mongo is a good idea. Adding Variable Element Arrays to DB2 would be a great enhancement. Currently you can create a variable length phone # field in the order header and use pipes | to separate the multiple phone #s. But what if you want to index the records by phone number and name. The prevailing logic is to normalize the phone # to another file. But FormsDB says to leave it in the order header and the database would handle the index for you.
Now that you have the concept, you could have the order items as an array in the order header and the departments as an array associated with the order items. From the programmers stand point, it is easier to have a CRUD program over the order header form instead of multiple normalized files (order header, phone #, items and item departments files). Revelations Software has been doing this since the early 90’s. As we are learning from Mongo, it is also faster than joining multiple normalized files together too.
SORRY TO SAY THS, BUT YOU NEED A PROOF READER BEFORE PUTTING THIS OUT. SOME PARAGRAPHS MAKE NO SENSE, THERE ARE MISSING WORDS HERE AND THERE. GOOD ARTICLE, AS FAR AS CONTENT.