Sandra Rogers, program director for service-oriented architecture (SOA), Web services, and integration research at IDC, was recently asked what professional role becomes particularly important as the SOA movement evolves. Her answer: software architect.
As she explained in a recent issue of Optimize Magazine, "They play a critical role in terms of understanding standards and influencing what type of platform is used for development. These architects are acting as a centralizing force within the business community. That skill set has always been critical but is being developed more...This kind of environment is moving from a hard-coded to a model-driven type of system. The ability to abstract business and system rules in a consistent way is extremely important. A lot of configuration, scripting, and optimization is going on. Those kinds of skill sets have been necessary before, but they need to be balanced between the world we have now and the world we’re trying to get to."
She contends that understanding these "interdependencies" is critical to further advancement. "There have always been interdependencies between development and production, but that line is starting to blur," she adds. "With a dynamic system that’s ever changing, development becomes a consistent state versus something with specific stages. We have a ways to go before we’re there."
Indeed, it's the interdependencies, she believes, that represent the biggest pitfalls and challenges for the Web services world as we go forward. "As far as we’ve come, we are still building the standards," she concludes. "There are performance issues we haven’t dealt with yet. Security is being handled, but we don’t know to what degree. Another pitfall is understanding how many different technologies are out there that are starting to overlap, getting that end-to-end process view, and utilizing services in a dynamic context. There’s everything you need in a traditional system, such as redundancy and uptime support. There’s also the issue of semantics. When you define a discrete system, you can define all the elements so that all the parts of the system are using the same semantics. In a system using Web services, you still have to address all the distributed entities and understand the XML dialects."