This week has been a bit of a fast track when it comes to training. As well as spending two days on a SAP XI (Exchange Infrastructure / EAI) training workshop, I have had some time to check out JBoss SEAM.
The SAP XI stuff relates to the Client needing to upgrade their existing EAI platform (eGate) to a newer version. As it will eventually involve recoding of all interfaces, due to no backward compatability, they are taking the opportunity to look at other platforms. And since 80% of their systems are SAP based, XI seems to the the natural and logical solution.
So the workshop I attented was aimed at gaining a high level understanding of the product. It’s sold as something related to J2EE, but in my opinion isn’t really related to J2EE. Sure it lives inside a J2EE app server, but as far as the developer is concerned, all they do is create a toolbox of objects (data structures, mapping rules, business processes, etc). And this is all done graphically! Then they hook it all together and configure it. OK – I haven’t done anything hands on, nor seen anything complex done, but I am sure that does involve writing a bit of Java at some stage. Out of interest, mappings are done using XSLT, which is run on the data structures which are defined as XML docs.
I also spent time looking at JBoss SEAM, which is a project that combines your database, Hibernate (ORM), Ant and the JBoss IDE (in Eclipse) to mean that all you need to do to create a complete back end is the following:
1) Create a config file with database connection details
2) Click a button on a GUI to generate a project
3) Build and deploy that project to JBoss
The result is that a web app gets deployed which connects to EJBs to provide all the functionality to read/update/insert rows in the DB.
While the GUI isn’t that useful (although its a basic starting point for a JSF GUI), what is useful is that the entire data layer is built. All you need to do is write some services (in an SOA) / business logic to implement the business processes to hook the datalayer together as you want.
OK – Chordiant has been doing this for years… but SEAM is free and based purely on EJB standards (3.0).
So, this week I have spent a lot of time learning technologies which remove the requirement to actually code. For a few years I have been reading that this is the way programming is going (building using wizards and then just worrying about config), but its finally coming to fruition…
I’m still sceptical about how techy you need to be to use these tools/frameworks. I’m of the opinion that as soon as an error occurs, you need to be able to get out the debugger and dig deep. I’m lucky that when I learned to code, it was using a text editor, so I have the skills to do this. Sadly lots of newbie developers (especially off shore ones!) don’t have those skills. They learn to build apps using tools like this and then can’t debug them or optimise them, etc.
So, if you are mentoring someone who is building systems like this, make sure you get them to spend time learning the technologies (Hibernate, JSF, XSLT, EJB, etc) using a text editor, command line compiler, command line deployer, etc. When they have to start debugging a complex problem, they will have the skills needed.