Archive for the ‘Uncategorized’ Category
Flex, Flash, and GLUE – What Are YOU Sniffing?
I’ve grown a bit bored with Java of late so I am switching gears. I looked around and decided I could either tackle .NET or I could jump on the rich-client bandwagon. Mastering .NET is mostly about translating my existing knowledge to a new toolset, which has value, but is not fun. Rich Web clients (or whatever monicker is hot today) promise more entertainment value for the time invested in them because the results of my efforts are something I can look at, point to, and show others. (My wife doesn’t know a Web Service from a JavaBean, so it always gives me pleasure when I am working on something that I can show her.) Besides, I work primarily on my Mac PowerBook (and if you had one, you would too!), so .NET presents a bit of an inconvenience to learn right now.
So rich Web client technologies win my attention for the next couple of months. Now I just need to choose the one with which to start. Macromedia’s Flash Pro has possibilities, but plays to my weakness: graphic design. Macromedia Flex seems to have a lot going for it and is targeted squarely at me: server junky with some visual design skills who creates highly interactive data-driven Web applications. There are other rich Web client implementations that interest me, but the most intriguing one is the Spring Rich Client Platform, which I first heard about this morning on Keith Donald’s blog.
So, having looked around, I decided that Flex is the best match for me right now. I ordered the developer Flex CD and I’ve been working my way through the online documentation. I consider myself hard to impress, but I really think that Macromedia hit the nail on the head with Flex: declarative UI layout (MXML), clean and pretty interfaces with consistent behaviors, scripting for the client-side interactivity (ActionScript/ECMAscript), support for drag-n-drop (I’m not a big fan of DnD, but most “normal” users with whom I speak like it), data binding (making easy things easy), and use of Web Services to interact with business logic (so it can be written with J2EE or .NET). When I get the trial / developer CD, I’ll try regenerating a couple of more complex and interactive interfaces I have ever built and let you know what I think.
In the mean time, I thought that I should brush-up on my Flash and see what can be done “freehand”, so I ordered Macromedia Flash MX Professional 2004 for Server Geeks, chosen for its high rating on Amazon.com, and my enjoyment of authors unafraid to poke fun at their audience in the titles of their books. I’m one of those people who is never satisfied to own just one book on a topic, so I hunted a bit and found Macromedia Flash MX 2004 for Rich Internet Applications as well. And while I was buying books, I decided to pick up some material for my annual week-long fishing trip in the Canadian bush in late June, so I grabbed Complexity: The Emerging Science at the Edge of Order and Chaos. I have grown interested in complexity theory from my project management readings, particularly Jim Highsmith’s Agile Project Management: Creating Innovative Products.
But enough about books — back to technology!
I am playing with GLUE from webMethods (which acquired The Mind Electric, the original creators of GLUE). From the hour I have spent with it, I have found it to be the easiest-to-learn-and-adopt Java WebServices provider with which I have worked. I’ll share more thoughts about the framework as I gain greater familiarity with it.
I’ll keep you informed of my impressions and experiences with Flex, Flash Pro, and GLUE. And maybe I’ll have some book reviews for you in a month or so.
APEs and Idiots
I love watching a knowledgeable and patient person get pushed beyond reasonable limits by the imbecilic hordes and consequently have to lay the smack down. Yes, I’d like extra butter on my popcorn, please.
Service Oriented Architecture
I suppose it is time for me to speak up about SOA. First let me say that I have not read any of the “media buzz” articles about SOA. If you take any of those frothing technology journalists seriously, you will come to believe that every new technology is the second coming, that every old technology failed to deliver on the hype (and forget who over-hyped it), and that everything you know about application development will be obsolete tomorrow — each and every tomorrow. I try to get my information from the technology’s documentation and form my own conclusions.
Somewhere between the press releases and the technology specifications are some good resources to quickly understand a given technology. For SOA, these resources include: the definition of SOA, this article introducing SOA to technologists, and this article introducing SOA to business people. What you find from these sources is that SOA does not introduce anything new to our technological toolkit. So why does anybody care? Well, I’m not really sure.
A key idea seems to be that services are different than the remote components provided by EJB, CORBA, and DCOM because services are loosely coupled. It is all about loose coupling. And reusability.
Isn’t loose coupling a best practice of design? And wasn’t reusability the holy grail of that old buzzword: components? Hey, while I’m thinking about it, isn’t this whole “service” approach to development one of the underpinnings of JINI and JavaSpaces? (JINI — that technology looking for a problem — seems to be suffering the same fate as too many other great technologies: it was ahead of its time.)
Some proponents of SOA proclaim it to be the next great paradigm shift in the software development industry — the successor to object-oriented practices. And indeed, SOA does promote a healthy separation between business process logic and business data. This is not in conflict with OO (as it usually practiced today). Anyone who can find a hole in the ground with two hands, a map, and a flashlight should be able to recognize when process logic is going to be the heavily reused portion of an application and provide an entry point to that process for the use of external or future agents.
This approach was adopted years ago (nearly decades ago) for computer based training (CBT). Organizations wanted integration of their training resources, so learning management systems (LMS’s) were developed that implemented certain interfaces (AICC, SCORM, and so on) and defined interfaces for training modules to implement. The “services” of training management were loosely coupled in an extensible manner with the “services” of training content providers.
Martin Fowler has pointed out that a lot of IT infrastructure is already “service-oriented”, but that the “service providers” are databases.
So, I guess I have this to say about SOA: duh! You shouldn’t need a pundit to tell you that it is a good idea to make critical IT infrastructure prone to reuse accessible within your enterprise.