java_mouse
java_mouse

Reputation: 2109

Is this a service oriented architecture?

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

Answers (5)

sethu
sethu

Reputation: 8411

Yes. Thats exactly what SOA is. Ask yourself these questions:

  1. Are you developing a layer which encapsulates business logic.. maybe interacts with a database while doing so?
  2. Is that layer being designed in such a way that multiple views, or other layers can call on to obtain information?

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

Massimiliano Peluso
Massimiliano Peluso

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

tolitius
tolitius

Reputation: 22509

  • Is this a truly a Service Oriented Architecture?

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

Qwerky
Qwerky

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

Dave Newton
Dave Newton

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

Related Questions