Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

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

Posted on 2011-02-25
3
Medium Priority
?
462 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 1000 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

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Are you an Exchange administrator employed with an organization? And, have you encountered a corrupt Exchange database due to which you are not able to open its EDB file. This article will explain all the steps to repair corrupt Exchange database.
What we learned in Webroot's webinar on multi-vector protection.
Video by: ITPro.TV
In this episode Don builds upon the troubleshooting techniques by demonstrating how to properly monitor a vSphere deployment to detect problems before they occur. He begins the show using tools found within the vSphere suite as ends the show demonst…
In this video, Percona Solution Engineer Rick Golba discuss how (and why) you implement high availability in a database environment. To discuss how Percona Consulting can help with your design and architecture needs for your database and infrastr…
Suggested Courses

705 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