ICC 2020 Live Dev Panel
Paul: Hello, and welcome to “The Developer Panel: What's Next for Ignition” at ICC 2020. Thanks for joining us for our first-ever livestream Developer Panel. We are really excited to have so many folks participating today. My name is Paul Scott. I'm the Training Content Manager at Inductive Automation, and I'll be the moderator for today's panel. And I'm joined by our panelists: our VP of Technology, Colby Clegg, and our Director of Software Engineering, Carl Gould.
Also, before we get started, we wanted to announce the winner of the Ignition Exchange Challenge. In this contest, we invited the Ignition community to create an innovative resource and share it with the community by uploading it to the Ignition Exchange. We received a lot of exciting entries, so today we're announcing the top three entries as well as our one winner. Each of the top three entries will be featured on the Ignition Exchange, and our winner will receive an Amazon gift card. So, here are the top three entries we received.
Paul: The Flare API demo by Keith King is one of the three finalists. This is a demonstration that reads room and vent data from the Flare API, displays it in tables on views and dynamically creates tags based on UDT tags, that could be used for additional functionality. The Greenhouse Temperature Control App by Mathias Bjerglund Poulsen is another of our finalists. This resource is a smartphone app that allows you to control the temperature in your greenhouse remotely. And now it's time for the grand prize winner. The winner is Ad Hoc Roster by Will Rooney. With this resource, Vision clients can manage custom rosters with specific notification types, delays and notification re-tries in a simple-to-use interface. The Ad Hoc Roster can manage multiple rosters that belong to specific online pipelines. It streamlines the development process by simplifying the creation of new rosters and pipelines. Congratulations to Will. Yeah, you win our grand prize of a $200 Amazon gift card and the opportunity to be featured on the Inductive Conversations Podcast.
Paul: Also, thank you to our Onboard partners Advantech, OnLogic, Opto 22 and Uticor for donating some of their amazing hardware to the Exchange Challenge finalists. Each of our three finalists will receive an Advantech UNO-2271G, an OnLogic IGN700, an Opto 22 groov EPIC, and an Uticor i-Edge panel PC. We also wanted to give an honorable mention to Andrew Geiger. Andrew has been a great contributor to the Exchange with multiple resources uploaded. We really appreciate your contributions, Andrew. Thank you. We also wanted to thank everyone who entered the Exchange Challenge, as well as everyone who contributed a resource to the Exchange so far. We really look forward to the new Exchange resources that you'll be developing between now and the next ICC.
Paul: Alright, with that taken care of, let's get to our panel discussion. So if you've been to any of our past ICCs, you've probably seen Carl and Colby before. They've spoken at every ICC, and they have been the lead developers of the Ignition platform from the very beginning. Colby is our VP of Technology, and he works continually to make Ignition do more things in more places, focusing on data management, performance and distributed computing. Carl is our Director of Software Engineering. He continues to lead the development of Ignition and to innovate new ways to elevate the software and really the industry as a whole. The goal of our live session is to discuss any and all aspects of Ignition's new features. 8.1, the future, really anything else that comes up along the way. And there's literally no one better qualified to discuss all of that than these two gentlemen. So guys, did you wanna go ahead and give everyone a brief idea of what this session's about, what we're gonna be doing?
Carl: Sure. So the ICC is a really important time for Colby and I, because it's a time for us to get together and get feedback directly from all of you. And usually we're up on stage at the Dev Panel, and we've done it every year at the ICC, and people seem to really enjoy watching us squirm as we try to answer your questions live.
Colby: Yeah, with the virtual conference this year, it's obviously a very different feeling. A little bit less risk that we're gonna have something thrown at us, which is good, but on the downside, we don't have the direct connection with you guys. But that said, we wanted to try to maintain the experience as much as possible, which is why we're doing this session live, and why we have the discord chat running, as Paul mentioned. So definitely send in your questions and we have our whole team trying to respond, but also pull them out and organize them for us so hopefully we can get to as much as we can.
Paul: Yeah, so definitely, please get those questions out there so we can get to them.
Colby: And don't worry, that's why we have Paul here. They didn't trust us to choose our own questions, so he's gonna make sure we don't just pick the easy ones.
Paul: I won't be too mean. Well, maybe. So, hopefully everyone's had a chance to watch the keynote at this point. If not, it sits up there. But maybe, just to give everyone a quick recap of the sort of larger ticket items that are in 8.1, that might be a good idea.
Carl: Sure. So the main takeaway is that Ignition 8.1 is LTS. And so, LTS means long-term support, and that means we are gonna be continuing to provide support and updates to 8.1 for five years from now.
Colby: Yeah, and that's really important because we have a lot of customers who only want to upgrade to LTS versions. We have a lot of customers who like to upgrade to every version and to get all the new things right away, but a lot of people have to be a little bit more conservative with their update cycles. So that means that for them, this is the first time that they'll be able to take advantage of a lot of the great changes we made in 8, and especially the Perspective Module.
Carl: And now that said, there are a lot of important new updates in Ignition 8.1. There's some updates to the Perspective Module, we're introducing Perspective Workstation, also some new Perspective components like the Power Chart and the Symbols. And there's also important updates to the platform, like the new Quick Start system.
Paul: Awesome. Alright, so let's go ahead and maybe dive into each one of those and give folks a better idea of what they are. My background with the company has been really on the training side of things, so showing people how to use the software. So, Quick Start stands out to me because that definitely supports that whole idea. But really Quick Start isn't just one thing. It's actually kind of the culmination of a bunch of different aspects, right?
Colby: Yeah, it's a number of different features and a lot of new work that we put together to create a really great first-time experience for people. We really want to focus on education and on getting people up and going with Ignition as quickly as possible, so Quick Start helps us to make that easy.
Carl: Yeah, Ignition can be kind of a difficult product to describe in a really clear and concise way, and so we often just tell people, "Oh, go download it and try it for yourself." But when you do that, you just get a blank copy of Ignition, and if you're brand new to control software or brand new to Ignition, it can be sort of difficult to know what to do with this blank installation that you've just put on your computer. And so Quick Start really helps us in this situation, and since we're switching up the format here, we figured might as well make this even more fun with some live demos. So rather than just talk about it, let's take a quick look at it here.
Carl: So what I've got here is a brand new installation of Ignition 8.1, and we've gone through commissioning and we've landed here where you get to choose whether or not you want Quick Start or not. If you already know how to use Ignition, you know exactly what you're gonna be doing with its installation, just hit "No" and you'll just go into regular Ignition. But if you're new, you want to explore what Ignition's got going for you, you can just hit "Yes, enable Quick Start" and Quick Start will start pre-configuring Ignition with a bunch of things, like a bunch of self-contained samples.
Carl: So, a tag provider and a simulated device connection and a local historian and a local SQLite database, all of the various bits of pieces that you need to configure inside of Ignition to get started and take advantage of all of the things that Ignition can do. Once that's all set up, you've got this little Explorer bar on the right that sort of holds your hand as you start going through the motions of getting started, how to launch the Designer and how to open the project and take it apart, and how to launch the project. And so, probably the most important part of the Quick Start system is the Quick Start sample project that takes advantage of all those things that get pre-configured.
Carl: And the sample project is really designed to do two things. One is that you can just run the sample project and use it to explore all of the features that Ignition has to offer, and two is that it was designed to be taken apart and reverse-engineered in the Designer. I'm gonna just as quick as I can kind of do those two things here, I don't wanna spend too much time in these demos because I wanna have time for questions, but just to give you a sort of quick look at what this thing looks like, here is the Quick Start project where you can explore the various features that Perspective and Ignition has to offer, how does historical data work and all these screens are designed to demonstrate and explain how these things work. There's also a section that shows you how various responsive layouts get put together and demonstrates how they work. And so you can go ahead and launch each of these, which boils the different layout strategy down into its simplicity so that you can really understand just the layout piece of these things.
Carl: And then lastly, there is a library of all of the components available in Ignition and examples of how they all work and explanations. So if you're brand new to Ignition, this is a really useful place to get started trying to understand the totality of what's available to you. And then if you open this thing up in the Designer, you can then take it all apart. And so what we've found is that people really love to learn by reverse engineering, by taking things apart, and so that's what this project has been designed to do. So I'll log in here, and this is sort of also showing another piece of Ignition 8.1, which is that the IdP style log-in is now available throughout the system and in the designer.
Colby: So as he logs in, I wanna answer a question I've seen a couple of times here. It says, "Can you create your own Quick Start templates?" which I take to mean all of those pre-configured items in the Gateway. I know there's in relation to Docker, in relation to the deployment. So it's an actually an interesting question, Quick Start itself of course is a packaged set of things for one, for the purpose of getting going, but all of those, there were some improvements made in terms of the ability to import micro-elements of a system, and we will definitely continue to develop that. And so it will in essence, that idea of taking a composition of settings and different parts of the system and integrating it into a new set-up will definitely become something more official going forward.
Carl: I would also say the Exchange would be a good way to do that as well. Okay, so now that I have the Quick Start project open in the Designer, you can sort of see how it's laid out, and you can see how it's all organized in a sort of straightforward manner. So if you wanted to sort of tease apart that screen that showed bindings and try to understand how they work, you could just open this up and start tearing it apart. And if I wanted to sort of maybe see, "How did that time series chart get configured?" you can just drill in here and explore how it all works. So a big design constraint that we stuck with designing the Quick Start project is that we wanted to do things in the most straightforward, simple way possible. So there's not a bunch of complex scripting or anything like that in here. Everything's put together in the most straightforward way possible.
Carl: I wanna move on real quick from Quick Start, but while I'm here in the Designer, I wanted to show another small feature of 8.1, and that is that all of the resource work spaces in the Designer now have a more friendly welcome section. So if you were brand new to Ignition, you open up the Designer and you're trying to get started with alarm notification pipelines, for example, rather than just be greeted with a giant, blank, grey rectangle, you now have this sort of welcoming screen where you have a link to the user manual and a way to quickly help you get started, including some templates. So if I've never made an alarm pipeline before, maybe I can pick from one of these templates and now I'm not starting with a total blank slate at this point, which we think is a really useful leg up if you're getting started with Ignition.
Paul: Right on. So one question that did kinda come up that's pretty relevant to what we're talking about here is, are there any plans or what plans are there for making the Designer more user-friendly? Do we have anything and plan in regards to UI UX or other changes to the Designer?
Carl: Well, I hope that we've just done that to a large degree. We did really focus in Ignition 8.1 on beginner-friendly features, trying to make things more approachable, easier to use.
Colby: Those so-called blank state screens, they're more than just getting started. They are also pinned down the corner so it's a place to come back to, and you'll see a list "most recently used" and so on. So that's kind of nice. One thing that actually didn't make it into the RC1 but will come in very soon, is that we've reworked the tag browse tree and the experience of creating tags. So that's an example. Again, for people who know Ignition, maybe not a big deal. But for people getting started, we were looking at the UX of how people... You come in, you have a tag browse... Your first job is to bring data into the tag system. And so we realized that that was a place we could improve. So those little things, we have our team of designers who are working really a lot on analyzing each aspect of the experience.
Colby: Now, I think in that question also there was a mention of work spaces and the idea that when you're building a project, you're bouncing around between workspaces because you're going to reports, you're going to the scripting, you're going to name queries, for example, while you're also working on your screens and views and so that's an interesting idea. Currently, there are some areas where you can pop things out, like scripting, for example. A lot of people don't know you can pop those out and work on them in parallel. But it's definitely something we'll consider going forward more. Basically taking the Designer and making it more multi-monitor-supported in essence, I think.
Carl: Yeah. That's a good idea.
Paul: So all these ideas, these user experience changes we're making, they feel like kind of Maker Edition plays into part of that. Is that an accurate statement?
Colby: Yeah. Absolutely. Again, in the theme of education, it all comes together into making Ignition as accessible as possible. Maker Edition was an important step in that regard obviously. The biggest thing is that the best way to learn something is by doing it, and so it gives people an environment where they can build something that's actually meaningful and they can use in their houses and such.
Paul: Speaking of, what's the reception been for Maker?
Carl: Oh, it's been great. We've gotten so much enthusiasm and positive response from people about Maker Edition, and it's been really fun to see tech communities tangential to ours, home automation is a big one, catch wind of it and pick up on it really quick and start using it. I think we've had over 3000 Maker Edition licenses created, so it's definitely getting used and that's really gratifying.
Colby: Yeah, it's kinda fun this morning watching all the chat channels as the community comes together, the first thing they're talking about is Maker and what they've done and what they've built, so I think it's great for our community.
Paul: Well done. Awesome. Okay. Moving back to the larger features: Perspective Workstation, let's do a quick overview of what that is.
Carl: Yeah. Absolutely. Perspective Workstation is a dedicated desktop application to run your Perspective application in. So this is a desktop application for Windows, Mac and Linux, great for dedicated workstations in a controls room or a dedicated panel PC that's running one of those operating systems. And it's got built-in support for multi-monitor mode and full-screen mode.
Paul: Awesome. So really what we're seeing with 8.1, Perspective really isn't just for mobile anymore, right? It's a bit... It's kind of branching out a bit?
Colby: Yeah. Definitely. When we first launched Perspective, the focus was on mobile for a few reasons. First of all, that's what Ignition had the greatest need for, and then also to keep the scope hopefully a little bit limited as we got the product out there and got it in people's hands. But right off the bat, that got thrown out the window and people started using it for...
Carl: Yeah. That worked for about five minutes.
Colby: Really incredible, big projects. And so over the last 18 months or so, there have been some really incredible projects built. And so now with Workstation, this is something that we always knew we'd get to but we're finally there, and so between the native apps, the web browser, and Workstation we now have delivery channels for all the major ways you would use it, and it really has become the modern visualization system.
Carl: If I go back to the home page, you'll see that there is now a section to go download Workstation and install it 'cause it is a separate desk-type application but it's embedded inside of Ignition like the design launcher or the client launcher and I've already done that. So once you have it installed, again just like the Vision client launcher, you've got to go and add a Perspective application to it to run. So let's go ahead and do that. There's lots of Gateways on this network organized like this one and of course, here I am leaning again on the Quick Start system because I already have a project in my brand new Ignition installation, and before I run it inside of Workstation, let's take a quick look at what the configuration options are because that's a big part of the charm of Workstation. Where I can choose between running in it windowed mode or kiosk mode, which will run in full screen mode. I can choose some policies, like if there are web links embedded in my Perspective project, should those be blocked, should they open the system browser, etc. And perhaps most interestingly, there is built-in configuration for setting up a multi-monitor application.
Carl: So this is a little hard to demonstrate on a laptop and a webcast, but if you had multiple monitors set up you would see multiple display options listed here, and you could pick which page in your Perspective application showed up on which monitor, and then when you launched your application, you would get Perspective spreading across all the monitors that you had configured right away when you ran it. So if I go ahead and run this Quick Start, what we'll see is the same application that I had run previously in Chrome, here we are running it, except now we're out of the browser environment. No more URL bar. So really a much more suitable situation for running a controls application in a dedicated workstation.
Colby: And so, a lot of questions around, can you use sensors or get access to other things on the desktop, and I think that's important to touch on because it is much more than just a wrapper around a web browser.
Carl: Yeah, that's right, that's absolutely right. So now that when we run inside of a web browser, we are sort of at the mercy of whatever APIs have been standardized in the web world and adopted by the browsers that we want to support, but when we're running inside of our own frame, we can do whatever we'd like. And so along those lines, one of the first things that we'd like to start supporting is access to serial port and access to the file system. Those are two requests that we know are immediately useful in a lot of applications. Access to other peripherals is definitely on the table. Webcam is an interesting idea.
Carl: Yeah, sound would be good. So it's all there, we just have to build a support and access to it.
Paul: A couple more questions from chat. Perspective Workstation, how will navigation work when accessing remote gateways, how's that gonna come into play?
Carl: Just like it does in the browser, honestly. So if you're gonna re-target, if you will, and Perspective is a much simpler idea because you're just following a link. And so that's where that link policy is gonna come into play, so if you just set your link policy to be in frame, if you navigate to a project on another Gateway, it'll just seamlessly go right over there.
Paul: Alright, and another one, will Perspective Workstation require a separate license? I don't know if you wanna touch upon that here, but...
Carl: Yeah, sure. It's not a separate license, but just like when you buy Perspective, you can sort of choose what you're buying, you can choose the full license or mobile only or browser only, while now Perspective is now added to that mix, so you can choose... I'm sorry, Workstation is added to that mix, you can choose Workstation only or the full license gives you all three — mobile, browser and Workstation — or you can mix and match as you'd like.
Paul: So in some regard, the answer is yes, and that it's a separate item that you purchase, but it's important to say, you don't do it per runtime. The unlimited licensing still applies, you buy it for the server, and then all of the Workstation installations because it is installed on those remote computers, they are enabled by connecting to that Gateway.
Carl: Right on!
Paul: Alright, let's... We'll keep moving along, talking about different features and we can always double-back if the folks have more questions. So Workstation was kind of a big requirement for a lot of folks to get Perspective on the plant floor, right. In that same vein, a really sort of powerful charting solution is also a requirement. So that's why the Power Chart is kind of exciting. You wanna talk about that?
Carl: Yeah, yeah, absolutely. Trending and historical data is really sort of a major cornerstone of most applications that people build using Ignition, and so we've been wanting to offer an ad hoc trending component in Perspective since day one. So we're really excited to be able to introduce the Power Chart. I'm gonna bring up a demo of it real quick while Colby talks about the features.
Colby: Well, so when we started off, our first goal was to introduce something akin to the Easy Chart. Now, if you're not familiar with Vision's Easy Chart, what that is, is much like our situation here, when Vision first was released, we had charts and different charting tools. And they were great, but they were a little bit complicated to use, and so at some point we wanted to introduce something that made it very easy to get going with charting, drag-drop support and so on. And so kind of the same thing here, Perspective has had charting capability since the beginning, but we wanted to introduce a similar kind of ease of use. Once we got going, we realized that Easy Chart for Perspective just didn't do enough. And so we wanted to bump up the name while we were at it as well.
Carl: Yeah, so everything, even though I'm in the design environment right here, everything that we're looking at is runtime accessible features, right. So this component is totally self-contained, as soon as you drag it on screen, it has the ability to be completely configured at runtime by the user. So again, I'm leaning on all of the various simulators and resources that Quick Start put together for us. So I've already got some tags and they're already logging history to a little sample historian we have. Of course, I just installed this thing, so there's not much data. So we'll switch it to maybe the last 20 minutes or something. And you can see how easy it is to just get some tags showing up. The Power Chart has a built-in pen table where you can control the visibility of and the configuration of all your pens. So all of the configuration of the chart has a runtime reconfigurable UI built-in. So if I wanted to change the name of this pen or maybe the line thickness or something, I can do it right from inside of here, I can turn pens on and off, and I can completely reconfigure really everything about the chart, add axes, subplots, new pens, which columns are being shown on the table, everything is right there with built-in UI.
Carl: There's also the ability to do X traces, and now we have the ability to do multiple X traces at once. So you can just drop X traces onto this chart wherever you'd like, and in real-time mode, they'll stay where you go and show you what data is there as the data sort of slides under the X trace. And there's also a new feature of what we're calling brushed ranges. So I can sort of pick a period and brush the time range across it, and my pen table will then turn into a statistical analysis table for the period of time that I've selected. So that's a fun new feature as well. And the last thing I wanna talk about here, I'm rushing through these demos because I wanna get to questions, and Travis and Kevin are gonna do a much better demo of this at some point in the near future here. But we now have built in support for annotations, which is exciting.
Colby: Yeah. And so the annotations are actually a feature that we've introduced for the entire tag historian system. So here in the chart, you can create them, view them, but they're actually being stored all the way down in the historian and they're accessible through scripting functions in queries and so on. So that's pretty exciting. And that's... An example, this chart pulls together, this component pulls together a lot of feature requests over the years. And so we've had so many requests in regards to the Easy Chart, and as we set out to build this, we were able to really incorporate a lot of those. So I see, there's a question, "Will there be a tag browser component for Perspective?" Well, it's been built and been used inside of... Here, I'm not sure if it's packaged up yet as a component, but it totally can be. For so long, you had to compose these types of systems yourself with all the components and the bindings between them, and so now we've put all those tools in there, you can hide them if you want, or you can bring them in, but it's all at your fingertips.
Carl: Right. Yeah. Not only is it all runtime-configurable, but also everything that you configure is, of course, exposed on the property model. So it can be... You can have it both ways, configure it yourself ahead of time, or let the user configure it at runtime.
Colby: And I think that plays into the question of, "Can you save the charts that people create?"
Carl: Oh, yeah.
Carl: Yeah, absolutely.
Colby: Yeah. Because everything's exposed through the property tree.
Carl: Yeah. Right. So the pens that you create, the axes that you create are all exposed here in the property tree, so all you need to do is persist this JSON data somewhere and load it up via binding or a script and reconfigure charts.
Paul: And another chat question for the chart, "Does the Power Chart have a bar chart option, and also can you double click, dig into the bars on the chart to get more information?"
Carl: Right. So this isn't very good data for bar chart data, so it's not gonna look very good. But bar rendering is just an option for each of the pens. So you can turn any pen into a bar chart essentially, and each series is individually selectable. It looks like the bars are as well, and I think that's gonna be exposed on the property model, although I'd have to get back to you about specifics about how that works.
Paul: Okay. Actually still related, "Are only points configured to be logged in the historian available to the Power Chart? Can I use a transaction group and put that on the chart?"
Colby: Oh no, that's interesting. Because we did take a different approach with the data for this chart, which is to say that it is all driven by the historian system, but that brings up some interesting questions like, what do you do with normal database data or calculations and such? So one of the things we've done in it one, is we've introduced a new historian query source that lets you query wide table data. So very useful if you have a lot of data stored with transaction groups, with the historical groups or standard groups. And so you can go in there and browse your database, your data sources, your tables, find your time series data in your wide tables, and it will integrate it in like normal tag history data. And we'll continue to expand that functionality. Calculations aren't totally done yet, but they'll be coming soon, and we'll be adding more like mean query support and so on. So it's kind of an interesting change. And that again is not, because of the nature of the change, it is made for the chart but it applies to everything in Ignition. So even the Easy Chart, for example, in Vision can take advantage of that same feature.
Paul: Yeah. I was playing around with it, trying to write some documentation for it and I didn't realize how much I wanted it until I played with it. I was like, "Oh man, all these years, would've been great to have this the whole time." All right. I don't wanna go too off-track here, we do have a bunch of stuff we gotta go through. So as far as other sort of big-ticket items, we did add some additional components to Perspective, the Perspective Symbols. Do you wanna talk about those?
Carl: Yeah. Sure. So we've been dreaming about these for a while. So it's a collection of HMI and P&ID symbol components. Again, I'm gonna start bringing up a little demo while Colby talks about them.
Colby: Yeah. So the goal here was to, first of all, make things that look really good. Second goal was to do it in a way that you didn't have to manipulate the imagery yourself, do a lot of complicated binding. So the components, they understand what they are, they expose their data in a way that makes sense, and thus makes it very easy to set up as you can just drag tags on to them. So basically, we wanted to really just elevate the experience of creating HMI screens, which is a major use case for the product.
Carl: Yeah, absolutely. It's kind of the bread and butter. So I've got these symbols all dragged out onto this view here, and so you can sort of take a peek at what they look like. And what's interesting about the symbols is that they're just a lot easier to use than flat graphics would be, because they know how to render themselves in a variety of different visual configurations. So if I wanted the pump outlet to be on the left, for example, I could just change that directly on here because the pump understands what it's trying to draw. So it can expose in its property model all of its different visual configuration options. As opposed to flat graphics where you'd have to use 2D graphics operations to flip and mirror and move around paths and whatnot. And furthermore, the components understand the concept of state.
Carl: So they know that their purpose in life is to render some sort of dynamic state from some sort of process value. So this pump knows how to render itself in some interesting way when it's running versus stopped, versus faulted. Or the vessel knows how to render itself at 50% full or whatnot. So it becomes trivial to start binding these into dynamic process variables.
Colby: The other thing that's really great about these is that there's three distinct built-in visual styles. So, in the same component, same configuration, you can choose to render them as a kind of the standard format or a high-performance HMI format or the more realistic mimic format. And so that's something that can apply on the component level or on the project level, and it's a pretty cool feature because we've talked about high-performance HMI, for example, for years at the conference in sessions and webinars, and so now we have built-in support for that type of styling. But you don't have to lock yourself in one way or the other. There's people who like animations and such, and they can do that too.
Carl: Yep, best of both worlds.
Paul: Right on. We do have some related questions here. First of all, drawing tools for Perspective?
Carl: Yeah, good question. So that's definitely one of our top priorities here going forward, is to add built-in drawing tools so that you can make your own 2D graphics from scratch, but it is not there right now.
Colby: In piping.
Carl: Right, there's a lot more to come here. So, along the lines of this sort of, "Let's make these P&ID and HMI style screens easier to create," symbols is one aspect that we were excited to be able to deliver, and the next one that we're currently working on is piping. So we have a really interesting feature we're working on that lets you connect components together automatically with pipe segments and manipulate those pipe segments, and get them to look exactly how you want. Which is often one of the frustrating painful parts of putting those types of screens together especially if you're using raw 2D drawing types of tools. So we're hoping to be able to provide an even more compelling experience than just 2D drawing tools would offer, although we will be doing both, of course.
Paul: Alright. One more for the symbols here. Can we create our own Perspective Symbols?
Carl: Okay, so there's a few different ways to think about that. On one hand, a Perspective Symbol is essentially a dynamic drawing that exposes basically parameters that manipulate the drawing. And so you could certainly create your own today by just putting a drawing in a view and using input parameters to manipulate the drawing yourself. So from that point of view, absolutely, you could just go and create that using the tools you have today. The other way to maybe think about that is, as a module author, could you take the framework we've created to render these sorts of dynamic SVGs and create your own components that were like our symbol components? I don't know if we have those parts published in the SDK right now, but it's certainly a reasonable ask, and it could be done, I think without much fuss.
Paul: Alright, that's great. Alright, so we'll keep moving on here. So Perspective has absolutely matured. Thinking back to the Ignition 8 beta days to now, we've done so much to the module. It's definitely been the forefront and the main focus of a lot of our visualization development efforts. But what about our longtime users though? What do we envision for Vision going forward?
Colby: A lot more puns.
Carl: Right. So, Perspective is the focus, clearly. That's where we're focusing our development effort. It's still a pretty new product, so it's very much still maturing, whereas Vision is pretty mature. And so that being said, we definitely recognize that the majority of our customers have applications written in Vision, and those applications are still very, very much crucial to their operations. And so the fact that Ignition 8.1 is LTS means that we have at least five more years of support and updates for the Vision Module.
Colby: Yeah, and we're gonna continue to put important updates into it. One very important update that was made for 8.1 is full support for IdP authentication. Which means you can now use two-factor authentication with Vision as well. You saw when Carl logged in to the Designer, it was using IdP. And so that means... And we've done it on the Gateway as well. So now across the board, we have one standard modern solution for authentication. And so those are the types of updates that Vision will continue to get to make sure that it's up-to-date, especially in security, but in regards to performance and stability and so on.
Paul: Right on. So let's change track a little bit. So, something that's not really a feature in this software, but we're still really excited about is that we're gonna start publishing these official Ignition containers. You wanna go and talk about that and what that means for our users?
Colby: Yeah, sure. So, the first important point is to understand why containers are important. And on that subject, I saw we actually have two sessions going on at the conference. So, there's two sessions live right now that they talk about how containerization can be leveraged in the industrial space. But really quickly, containers are basically mini-VMs, lightweight VMs that let you run applications on top of a virtualized host. And so that means you can get a lot of flexibility in terms of spinning things up, changing where they run, and that in turn has a big impact for how you manage versions and security updates and so on. So Docker is one of the most popular containerization applications, and so by publishing our own official images, you can run Ignition in this way in minutes, very simple, very easily.
Carl: Yeah. We would be remiss if we didn't give Kevin Collins a shoutout here because he has been generously maintaining a community-maintained Docker image on Docker Hub for a while now, and so we thank you very much for that, Kevin.
Colby: And he's one of the co-hosts of the session with Kymera, as well, I believe. So I'm looking forward to seeing him.
Carl: Yeah. A real expert. And so he has set the bar high for us, so now it's up to us to make sure that our official Inductive Automation-published Docker image meets the standard that he's set. But yeah, we're excited to have officially supported images for Docker, it's an important gesture for us.
Colby: And why this is kind of pertinent at the moment is because up until now, we haven't had a really great way to sell these types of licenses; that is, our server-based licensing, isn't really that compatible with this type of dynamic or almost microservice-style approach to running software, but 8.1 has changed that.
Carl: Right. We actually introduced these changes with Maker Edition, so in 8.0.14, we added some new activation and licensing technology into the platform that, right now, only Maker Edition is making use of. But we will be rolling out commercial options built on that activation technology soon, and those will be really perfectly well suited for the more elastic types of setups that you often see with a Docker-based infrastructure.
Paul: So does that mean we're gonna be seeing a pay-as-you-go sort of Ignition model in the near future?
Colby: Well, the point is to leverage all of these tools to offer flexibility and to be able to create the best modern architectures. Ignition itself is very well suited for this. First of all, being platform-agnostic, being compatible with Linux, that alone in the industry is pretty special. But it's modular architecture already also lends itself to the idea of running various instances that have their own specific purposes.
Carl: Yeah. You know we have a variety of plans of how to attack this. And to be absolutely clear, like Colby said, these are just options, we're not making any big drastic changes here to our business model, but we sell perpetual licenses right now. Well, the next logical step is to sell perpetual licenses that use this leased activation technology that we've come up with to make them more compatible with Docker-based installations. We're also looking at publishing Ignition on the Amazon AMI Marketplace, and so that'll offer a pay-as-you-go option, a completely new way of buying Ignition. And we're also working with a few partners that are trying to spin-up some OEM-hosted applications that are built using Ignition, and so they need a really different activation structure for the way their infrastructure works. So all these things are sort of simmering right now, it's a little too early to talk about them in any great detail, but we're excited about them.
Colby: Well, Carl said it, and I wanna highlight it again that it's not our goal to switch our business model or go to any kind of a pure SaaS offer or anything like that. We really see these tools as tools, and we want to make it as effective as possible to leverage them. And long story short, we're trying to offer these new options in a way that's compatible and in line with our standard licensing.
Paul: Right on. Okay, so switching gears again, we've been talking about what is going in 8.1, but let's talk about how we got there, specifically on the development side, so with Ignition 8, we adopted this release train idea, so the idea is that we have these sort of regular release, regular release cycle. Is that going to continue in 8.1?
Carl: Yeah, absolutely. The release train concept has been really important for us, it has really allowed us to deliver a consistent and predictable release cadence, which is really important for getting fixes out on time, and it's been, overall, a very successful strategy for us. The trick is that now that we're LTS and 8.1, the focus of what these trains are trying to deliver is changing.
Colby: Yeah, so 8.1 is, in a lot of ways, kind of the culmination of what we started when we first started working on 8.0 some years ago. And so when we released 8.0, it was a major change, but we had a long list of things that we wanted to get to as quickly as possible and so we delivered a lot of those over the 17 update releases over the last 17 months. But in 8.1, as Carl just said, that focus is gonna change and we're gonna focus a lot more on features that are on changes that improve reliability, stability, and in performance.
Paul: Right on. So kinda again, looking forward, what does 8.1 really mean in the future, mean for our long-term road map?
Carl: Well, so in the short term, we have some features that we feel like are safe to add because they're purely additive. So what I mean by that is that features like new drivers, for example, we're working on an IEC 61850 driver, we're able to add that without changing big parts of the platform which has risks, new Perspective components is another good example of features that we feel like are still appropriate to add in the 8.1 timeline, but aside from those sorts of additive features, yeah. The focus shifts from adding features to sort of other things.
Colby: Yeah, one of the most common criticisms we hear, we hear a lot of people ask, when you're gonna slow down. And I think that's what we're trying to get at is that it's not the... I've even seen it this morning on the chat, they say, "How do you maintain quality when you have such an aggressive release schedule"? Well, the point of the release train isn't to be an aggressive schedule, it's to be a reliable cadence, we're only aggressive in terms of what we try to put into each update.
Carl: The scope of what we're trying to put in.
Colby: The scope of each update, that's what we're trying to get to. But it doesn't mean that we're gonna slow down in general, we're trying to say that we're changing the focus for the release branch and then we'll have a lot of stuff going on in parallel that will come out down the road.
Carl: Yeah, things like focusing on our own testing infrastructure and focusing on things that can make troubleshooting and diagnostics easier, that's a big one, that'll be really helpful. Focusing on getting published performance benchmarks for all of the different sub-areas of Ignition, so that there is a better understood expectation of a performance envelope, those sorts of things are really what the focus is shifting to now.
Colby: Yeah, and I'd like to say that company-wide, we're making a lot of changes to try to improve the overall customer experience, and so here in this panel, we talked a lot about... We talked exclusively about the product, but I wanted to point out that concurrent to 8.1, you'll see that we're gonna introduce some changes to our support system, our TotalCare offering. Small changes, but that's the tip of the iceberg. We're trying to... We're looking at all of our systems internally and looking at the customer experience from the support front door all the way through the lifecycle of the way that we prioritize features, customer bug reports, for example, and improve transparency, improve visibility for customers, and so on. So all of these things are being actively worked on at the moment.
Paul: Yeah, I think if you look at a lot of the features we put into 8.1, you can kind of start to see that sort of that new initiative that focuses on improving user experience is really starting to shine through. Glad to hear it's like a company-wide sort of initiative too.
Colby: Absolutely, it's one of our classical points that we've leaned on so much, what we offer this industry is a great experience, that's what we believe, and so we are, as we grow, we're constantly working on making sure that's true.
Paul: Right on, so again, still kinda looking at the future, do you guys wanna touch up on 8.2 just a little bit?
Carl: Yeah, yeah, let's talk about it. So the timeframe for 8.2 is fall of 2022, and that time frame is going to really give us a chance in the near term to get through some backlog items that we've accumulated, and also give us a chance to dream big for 8.2.
Paul: Okay, cool, did you wanna maybe talk about what's gonna be in 8.2? What are we percolating here?
Colby: Well, very broadly, the focus will be on enterprise again, and I say again because in the past we've done a number of releases and focuses around that introducing the Gateway Network, for example, introducing the Enterprise Administration Module, and these have been used to great effect in terms of building out massive systems and really growing the presence of Ignition throughout our larger customers. But now at this point, we step back, we see the technological landscape, we see the user landscape, and we think there's a lot of opportunity to do another round of innovation on it.
Paul: Awesome, so you already kinda mentioned, just out of band, a couple of changes you've made to the historian system already, is that sort of implying that we're getting a new historian system in the near future or?
Colby: Well, data is definitely important, we see what people are doing with data, we see the way they've used our historian, and now we're starting to use other tools in the marketplace to achieve data goals, let's say, so definitely data would be a focus.
Carl: Yeah, often times when we talk about changes to the historian or some sort of next gen historian, that the discussion is often about, "Well, what's the technology you're using to actually store the time shares data," and that is an important component of any historian, of course, but I think what's much more interesting and more ripe for some interesting innovation is how data and historical data play across the whole enterprise architecture. So how multi-tier architectures achieve roll-up of data. I definitely think that hybrid architectures of on-prem software mixed with SaaS software is going to become more and more commonplace, and so how do you move between those two worlds? How do you sort of get a cohesive picture that operates in those sorts of environments? So I think you're gonna see some interesting stuff along those lines in 8.2.
Paul: Right on. Alright, so we are getting towards the end here, but we do have a whole bunch of questions that were brought in, so maybe I just threw a bunch at you guys and we'll see what we can do with them. Are there any plans for integrating Ignition systems seamlessly with version control systems?
Colby: That can be a few things, we'll start with one easy thing, which is exposing more of the data in a format that's very compatible. So we've done some work, the project system has mostly exploded and is fairly compatible, I know a lot of different modules still store things in kind of an opaque way so we can improve that. But tags and internal Gateway settings and so on, absolutely, those can be... We're gonna keep working towards making those compatible.
Carl: Right. So I think that's one half of it, and I think that's probably the bulk of the work needed on our part, is making sure that we're storing all configuration in a human and source-control-compatible way. I also think there's probably some room for some actual integration where Ignition is aware of source control systems, but that's gotta come after the first part because of that, the first part of storing all configuration in a file format that's compatible source control, it's not really worth tackling the second part.
Paul: Okay, any plans for built-in context menu for Perspective, like JMenu in Ignition?
Carl: Yes, that is definitely on the road map. There's not too much more to talk about other than, yeah, we're planning that.
Paul: Should we do the Python 3 question?
Colby: Yeah, let's do it. Let's do the greatest hits.
Colby: Python 3.
Paul: Will we ever see Python 3 in Ignition? Ever?
Carl: At the risk of being a broken record and just replaying my answer from last year 'cause nothing has really changed, I don't really think that's the right way to think about it, because I don't think that... So Python 3 is not really super-compatible with Python 2. So if we're gonna go through the pain to change to basically a different language... I think of Python 3 as just a different language than Python 2, essentially. There's not a great upgrade path. So without a great upgrade path we don't really have backwards compatibility. And I think we can all agree that backwards compatibility is pretty important when it comes to the scripting system. So I think what we're really talking about with a someday move to Python 3 is really a someday move to a multi-scripting-language Ignition, where whenever you write a script, you're picking which language you wanna write your script in. I think that's the way it's gotta go. That's a lot of work for only a pretty incremental gain in my opinion. So it's definitely not super-high on our priority list. Just thankful we're not stuck with Visual Basic for Applications.
Paul: Alright, I think we've got time for one more. How about a script debugging tool? Is that on the roadmap for 8.1?
Carl: Yeah, this gets asked every year also pretty much. Is it on the road map for 8.1? No. No, that would definitely fall under the making changes that are risky in the platform category that we're trying to avoid so that's definitely not on the roadmap for 8.1. We have actually made some... A little bit of progress in this area. One of the changes we made along the 8.0 line that we sort of snuck in there was the ability to actually interrupt running scripts, which is really nice. So if you write a rogue script that spins off forever you can now stop it, which is...
Colby: That's something.
Carl: It sounds good. It's good.
Colby: A better...
Carl: Baby steps.
Colby: A better script editor. Now that's interesting because we do have an improved script editor that hasn't been completely rolled out through the system yet. Right.
Colby: And so we'll...
Carl: Yeah, better script adding experience is something that we're nearly finished with. But a full debugging experience is tricky to say the least, because we run scripts in so many different environments across different processes that it's gonna be a little tricky. Perhaps the most approachable way would be to add it just to the script playground where you are sort of able to take any script you want and run it in a debugging area versus being able to put breakpoints anywhere, across anywhere that scripting is available throughout the product. That might be a little tricky, but we're very aware of that feature request.
Colby: And if we're talking about the greatest hits of questions, let's go with the tag cross-reference tool. Carl, why don't you tell us what's going on with the tag cross-reference tool. No but actually, because we have been discussing this lately.
Carl: We have.
Colby: We kinda joke a little bit, we know... But we know the real need of what people are trying to get to.
Carl: So we actually came up with a pretty actionable plan for it a month or two ago. So the real trick about a tag cross-reference tool is that it's never gonna be 100% reliable because there's many ways to dynamically reference tags in Ignition where you're not just referencing them dynamically, but you're literally constructing the reference dynamically. So it's not really... We're not able to statically analyze exactly where any tag is gonna get used. That said we can get closer than nothing, and we can certainly do a pretty good job at finding all of the direct... We can do a really good job of finding all the direct tag references. We can do a reasonable job at finding some of the indirect references, so I do think that that is a tool that is well within the realm of realistic to ask for.
Colby: I wanna point out because they're gonna cut us off soon, we didn't want this to roll all day long, we want to be respectful of your time as well. But we're gonna be answering questions in the Discord channel as long as you want today. So we'll keep our eye out there. We have again, most of our team here answering questions as well. So I just want to point that out.
Carl: Stick around.
Paul: Alright, so we're getting kinda to the closing point as you just mentioned there. That's about all the time we have for this year's Developer Panel. Before we go, we do wanna invite you to watch as many ICC Community Sessions as you like. All of our session content from this year is viewable here on the ICC website. To watch a session, navigate over to the schedule page, choose any session and click the Watch Video button. Also, several of our Ignition ecosystem partners, distributors and collective groups are presenting their own events over the next several days. You can find these events listed on the ICC Schedule page below the Community Sessions. Please register separately for each event you wish to attend. With that, thanks Carl and Colby, thanks everyone for watching. Have a great day and enjoy the rest of the conference.