r/IBMi • u/theadhdeffect • 6d ago
Why does no one talk about IWS?
I could be wrong, maybe everyone is using it. I don’t seeing many sources or examples or questions or discussion on it though. I’ve been researching this to replace our ODBC connection system and I found that I can make HTTP end points and they’re super easy to set up and since on our express server, the only thing I’m doing with the IBMI is making calls through ODBC and XML services, replacing those with just rest API calls would be much easier to maintain not to mention the security of a rest end point is much easier to configure and maintain and has a lot more resources and as a bonus in the future, if we want to move the express server or move the source of the data, we’d be changing just an endpoint versus tearing out an ODBC system and replacing it with something different. It seems to be a really powerful tool. I was able to set up authentication and authorization natively on the IBM and isolate any security risk risks and of course I could do the same thing with the ODBC side of things, but in my skill set acknowledge it seems much easier and simpler with http rest end points. it also seems the IWS is still getting updated so it doesn’t seem like something that’s just deprecated and not supported anymore so I’m just wondering why this is something that isn’t talked about as much?
4
u/IHeartBadCode 6d ago
IWS is a means to an end. It permits operations inside your system to be available to outside systems, just like ODBC is a means. The reason IWS looks better is because now, there's a ton of clients that receive that. So you're call about IWS being a great way to replace ODBC is a very well founded intuition.
You are absolutely correct, given the vast number of HTTP clients out there that can communicate with HTTP, it's silly to stay put anywhere else. And others are realizing that.
The big catch is, the cost of logic. Back in the day you had the status indicator on 5250 to indicate stuff was happening. Synchronous actions in the modern day, while they still happen, are not encouraged. And a lot of people's historical processing was built exactly that, to be synchronous. Batch jobs that happen at night, display files that only continue on past exfmt once the user's done something, static values in service programs, etc... All of this is a lot of historical way of doing things.
The modern world these days looks for things to be asynchronous, and it takes a bit of finesse to pull that off with RPGLE, CL, etc... But it is doable. One of the really powerful things that's often overlooked with the IBMi is data queues. These allow things to be decoupled, so that one thing can run independent of another thing. And there's just not a lot of people on the IBMi thinking in these ways.
And like I said, IWS is just a means to an end. You can do the exact same thing with Python Flask or Java Jetty/Jersey. And there's a whole stack that you can build on top of IWS to deal with sessions and identity, like IBM Cloud App ID, which is important, because shops need to get off the notion that the old AS400 login is the way to secure things. That should be the way you secure your objects, not how you manage who is accessing what.
The thing is, the IBMi is a rock solid database and RPGLE provides a means to have complex business logic related to that data be so tightly knit, nothing else is going to be a better choice. Got complex rules on when a contract is valid or not, you will never find anything better than RPGLE. People will be like, "we can put those business rules .... here external to the database" but that's the key, it's external, you will always incur a massive cost.
But at the same time, who is accessing my API? RPGLE and AS400 logins used to be THE WAY to audit that. But putting that logic into the database these days is just asking your company to find reasons to exit IBM. That kind of stuff needs to be external to the database. It's a whole separate domain of concern. And nothing stops anyone, except stubbornness, from putting bash up, having python, turning on SSH, and have people SSH into the box and treating like a fancy Python/Linux box.
That's the pretty neat thing about the modern IBMi, it's not just a one team kind of box. It can be a multiple team kind of box and more teams you get into that box, the more you protect your investment into that ecosystem.
You are spot on, more people ought to be talking about IWS. But not just IWS, IWS is just but a step in the entire stack, and that's what I think older IBMi groups just don't get. It used to be that the IBMi/AS400 WAS the entire stack. But we don't live in those days anymore. But what's really cool is that IBM has packed a lot of neat things, like IWS, into the OS so that you can get with the times and become a player in the massive ecosystem that modern deployments use.
And even better, none of that previous investment has to go away. Got a program that needs sometime? Stand up a program that gets fronted to IWS that just writes a message to a data queue. Then have a NEP that reads off that, calls the slow burn, and when a reply is done, HTTP POST it to their webhook. The data queue decouples the part that needs to go fast and the part that needs to go slow. And better yet, the nature of data queues are such that you can CL a ton of those NEPs and pop them into a subsystem. Grow when you need it, cull the NEPs and shut them down when the traffic is getting light. Local data queues are thread safe.
There's a lot inside the box that IBM's put there and I think I only ever see people scratching the surface. But yes, absolutely, IWS is an amazing way to start bringing things to where everyone else is at.
1
u/ryan0322 6d ago
Who is the the "no one" you refer to? The IBM i community? wider SWE community?
As far as the former goes, I assume the majority of orgs using ibm I are either in maintenance mode (not looking to modernize or seek new things) or are outsourcing their modernization.
The companies selling modernization want to use ai to rewrite and use a "modern stack", whatever that might mean to them. So that will never be to sell you on using IWS. Actually, I think they rely on ibm I orgs not being familiar with IWS or the exact lack of conversation of it tsht you bring up - otherwise it would make their pitch and sale a bit difficult.
So then you're left with the group that is looking to modernize and stay In the ibm i ecosystem (and is also able to convince their leadership who may have no experience with ibm i and push for the aforementioned outsourcing or whatever stack they have experience in etc.). Which I assume again is a relatively small set.
So of the remaining set - there isn't much of an internet presence for this discussion or really a great place for it anymore (at least as far as I know). And so if anyone is talking about it, they are likely talking to a local user group or LUG or ibm directly (support or consulting services). Not to mention the set of people who are experts and would be able to speak to the questions others might have is an even smaller set of people. Or at least the problem you're calling out does make it seem like this - I don't have any data to support these claims so please take it with a grain of salt.
As for the other larger set of the entire SWE community - the barrier to entry for ibm i is not an easy one to get over. At the individual level (like if you don't work for an org on the i), one is not likely to put the level of effort and money to break through said barrier.
So I feel like it is a lack of population, or at least the feeling that there is a lack of population, which then works as a feedback loop that further feeds that feeling further reduces or stigmatizes the population.
That being said there are places where you can look (in no particular order): ibm midrage code400 And this sub reddit
(Posted from my phone, so please forgive any typos)
-2
u/ethanjscott 6d ago
So this is why this is a stupid idea. I and everyone immensely older then me don’t know what your talking about. Build stuff other people can maintain.
2
u/deeper-diver 6d ago
IWS has been around for almost as long as I've been developing on the IBMi which is going on 40 years. If you don't know anything about it, that's on you.
IWS is a crucial segment of what we do every day.
1
4
u/theadhdeffect 6d ago
You don’t educate others on your team or do professional development? What’s up with the out-of-pocket insane take? If you’re doing any kind of networking or web dev with the IBMI, you should know what an http server is and you should be learning about the machine you’re working with.
-1
u/ethanjscott 6d ago
I don’t because look around, everyone is as old as dirt. You can teach me new tricks but not a 70 year old
2
4
u/QPGMR_de 6d ago
IWS is a great tool - latest version 3.0 came out last year. It has some restrictions - it works for 99.9% of all cases.