Solved

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

Posted on 2011-02-25
3
460 Views
Last Modified: 2013-11-05
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
Comment
Question by:krella
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 27

Expert Comment

by:mrcoffee365
ID: 34982565
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
 

Author Comment

by:krella
ID: 34983158
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
 
LVL 27

Accepted Solution

by:
mrcoffee365 earned 250 total points
ID: 34983780
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

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Getting to know the threat landscape in which DDoS has evolved, and making the right choice to get ourselves geared up to defend against  DDoS attacks effectively. Get the necessary preparation works done and focus on Doing the First Things Right.
Choosing a core focus or particular set of features and options can be tough. To help out, we’re going to highlight a handful of things your business needs on one of your social media pages. In other words, if one of these is missing, you should imp…
In this video, viewers are given an introduction to using the Windows 10 Snipping Tool, how to quickly locate it when it's needed and also how make it always available with a single click of a mouse button, by pinning it to the Desktop Task Bar. Int…
In this brief tutorial Pawel from AdRem Software explains how you can quickly find out which services are running on your network, or what are the IP addresses of servers responsible for each service. Software used is freeware NetCrunch Tools (https…

636 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question