Reputation: 2109
I do have many years of experience in large J2EE web applications and high transactional core java applications but never had any experience on SOA.
Currently I am working on a new project but the architecture was already done. We (Java developers) develop EJB services which finally sends JAXB based Java objects to C#.net clients to render the UI which is used only within the company 11000 users. The idea is that, there may be internet users around the world in the future and we will be developing an web application based on J2EE which will be using the same services.
Is this a truly a Service Oriented Architecture? Can SOA done in this way using JAXB bound Java objects which can be consumed from many platforms?
I have never done any SOA work so I want to get some terms correct. Thank you.
Upvotes: 0
Views: 1285
Reputation: 8411
Yes. Thats exactly what SOA is. Ask yourself these questions:
If you are answer is yes, then thats SOA. You will have multiple clients -> calling on a gateway (may be your web server) -> which directs the request to your service. Then returns the data back.
Once you have developed the gateway then all you need to concentrate on is develop the services and some other module can consume it.
Its wonderful to have loose coupling isn't it?
I was in a project that did exactly what you are doing. C# SOA and Java EJBs at the backend.. :)
Upvotes: 1
Reputation: 26727
an architecture to be SOA has to stick to the below rules:
• SOA components are loosely coupled. When we say loosely coupled means every service is self contained and exist in alone logically. For instance we take the ‘payment gateway’ service and attach it to a different system.
• SOA services are black boxes. In SOA services hide there inner complexities. They only interact using messages and send services depending on those messages. By visualizing services as black boxes services become more loosely coupled.
• SOA service should be self defined: - SOA services should be able to define themselves.
• SOA Services are maintained in a listing: - SOA services are maintained in a central repository. Applications can search the services in the central repository and use them accordingly.
• SOA components can be orchestrated and linked to achieve a particular functionality. SOA services can be used/orchestrated in a plug and play manner.
It does not matter what Technologies/language you are using as long you don't break any of the above rules
for more info:
http://www.codeproject.com/KB/aspnet/SoftArch7.aspx
Upvotes: 6
Reputation: 22509
SOA is a buzzword. You can also think about it as RBMDC => "Reusable By Many Different Clients" architecture
It has nothing to do with the actual data type (XML, JSON, binary, etc..) nor with the protocol (HTTP, TCP/IP, SOAP, etc..).
What it really boils down to is you have X "business functions" that you expose to be usable by external or internal clients. These business functions are technically labeled services, hence your architecture is Service Oriented.
What you describe in your example is what buzz architects call SOA => the answer is YES.
Upvotes: 1
Reputation: 18435
SOA doesn't have anything to do with implementation details such as EJB or JAXB. SOA is all about creating loosely coupled, discreet services (usually web services). These services can then be run by any business logic layer to satisfy a business need.
You can then add a UI layer (say java Swing or SWT) onto the business logic layer to create a client application, similarly you could create a web-app. In each case you are using the same web services. This is SOA.
Upvotes: 1
Reputation: 160191
All SOA means is that "external" components can consume functionality. Usually SOA refers to XML/RESTful interfaces, but that's just convention.
http://en.wikipedia.org/wiki/Service-oriented_architecture
Upvotes: 1