Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 465
  • Last Modified:

Connecting the web service's tier to the application tier:What protocol / language should I use?

Hello, we are currently trying to architect a 3 tier solution for a web application with all tiers separated by a DMZ. The first tier being the web servers, the second tier being where the application logic or messaging takes place, and the third is the Oracle databases. What would be the best protocol or language to use for the web servers to send commands and / or methods to the application tier? Would SOAP be an appropriate protocol for this? Or is SOAP strictly used for front end POST methods? I know SOAP uses XML, so should the Java on the web servers strictly use XML? Please let me know the best course of action.
0
krella
Asked:
krella
  • 2
1 Solution
 
mrcoffee365Commented:
In my experience, using XML to communicate within an application is the slowest in terms of performance of any of the methods.  If your tiers are on different networks, it's possible that network communication will be so slow that it will dwarf the time spent reading and producing XML, but if you are on the same internal network -- and I'm not sure where your "DMZ" falls on this -- then you'll notice the performance slowdown.

So we always recommend XML for external communications and either serialized objects or plain text for internal communications.  Direct communications, as in Oracle thin client, is even better.
0
 
krellaAuthor Commented:
Thanks Mr. Coffee. We are planning on using the thin client with the syntax below to connect to Oracle.

"jdbc:oracle:thin:@machine_name:1521:database_name",

Would you recommend this is done on the application tier? In a nutshell we would like the web tier to pass parameters and arguments to the app tier. Then the app tier performs the business logic. Then relevant data is stored in the DB. Does this sound like the best way to architect the tiers?
0
 
mrcoffee365Commented:
That is the classic architecture.

Just be warned that every network communication layer you put in your communication path causes a delay.  So 3 computers, communicating for every request, will add up.  It does keep things extremely separate.

If your machines can handle it, you might consider combining the containers for the web tier and the application tier.  Keep the software architecture so that the classes are separate, but run them in the same JVM, which would normally mean within the same webapp container, say under JBoss/Tomcat (or Websphere, Weblogic, whatever).

But your plan is the classic architecture recommended by consultants.  In my experience, it has caused significant performance bottlenecks -- but then every architecture has problems.  You'll have to solve something with each one.
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now