It's not obvious to have a SOA zone here on DZone, and it's certainly not obvious to be it's zone leader. Because what is SOA? Who knows? We're home for thousands of developers who check on DZone daily for news and information, so let's keep this zone focused on the developer mindset and mentality.
Actually, we do know SOA stands for Service Oriented Architecture. But that doesn't mean anything. Is SOA about web services? No it's not. Is SOA about architecture? Funny enough it's not. Is SOA oriented then in anyway? Well, that up to you and anybody else to decide :-)
For me, SOA is a valuable set of ideas about owning, using and commissioning applications. Let me explain.
SOA can best be expressed - or let's say summarized based of what the SOA experts are saying - into these core ideas:
Migration is very hard: A well-designed SOA application has to take into account that one day data will be migrated, and that there will one or more migration periods.
Data is shared: SOA is about data sharing between partners, customers and suppliers, industry members, schools, governments, networks, ... . You send some data to a SOA application and other people will see it. If an application doesn't involve some sort of data sharing, don't call it SOA.
Services are really service genres: Service implementations are not that exciting. It's the definition of the services that matters, and how they are used together. SOA experts don't care about implementation.
It's very hard: You'd be surprised how hard it is to design complicated applications. Implementation is not so hard if you know what you're doing. It's the design that is the hardest part.
So why do organizations want SOA applications? Why do they want to share data? Because it modernizes everything they do. Being able to share data, have access to shared data and act on it makes organizations (or government) much better organized, much more powerful and much easier to organize.
Everybody knows that SOA is an excuse for the big consultancy companies to charge their biggest customers. But still, these customers may actually benefit. Look at it this way: after 9/11 consultancy companies were selling war games to their customers. At least now they're doing something more useful.
So how do SOA projects come to life? In many cases SOA applications are a requirement imposed by law or treaty (obviously these text don't say: "we need a SOA application", but in many cases it boils down to this). There are countless SOA applications shared by government agencies, police, countries, telecom companies, banks, insurance companies, armies, ... to meet legal obligations. In other cases companies decide to better connect their different departments or divisions.
Is Twitter a SOA application too? SOA applications have to critical, that's why they are most of the time so big. By this definition Twitter is not a SOA application.
So how to get involved in SOA application? The best way to pick an interesting project is through your network. New SOA projects are started all the time, there's definitely opportunity.
What are typical development roles on SOA projects? It depends whether there are GUIs to be built or not.
Without GUIs these are typical development roles:
- Designer: responsible to translate requirements to a well-documented design.
- Developer: skilled developers with experience in messaging, web services, XML technologies, database access, performance optimization, ...
- DBA: database expert, responsible for optimal database performance, data access authorization
- Architect: end-responsible for sound development deliverables, including code quality
With (web) GUIs there can be these additional development roles:
- Junior developer: works on GUI related code
- UX expert: works on the usability of the GUI
- GUI designer: responsible for functionality in GUI
Consider this the kick-start of the SOA zone. I'm looking forward to your comments and feedback so that we can discuss the broadest possible subjects in this zone.