• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Vertical vs. horizontal schemas

 
Saha Kumar
Ranch Hand
Posts: 218
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello All,

Could someone explain the difference between vertical and horizontal schemas?

Thanks in advance.

-Saha
 
Cameron Wallace McKenzie
author and cow tipper
Saloon Keeper
Posts: 4968
1
Hibernate Spring Tomcat Server
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Here's a little something I wrote a while back about WebSphere clustering, horizontal scaling, and vertical scaling. It applies to whatever architecture you're using:

Deploying J2EE Applications in a Clustered, Scalable Environment

-Cameron McKenzie

http://www.cameronmckenzie.com


What is a cluster?

A cluster is the term given to two or more JVMs working together to serve up a common set of EJBs and Servlets. If you want to workload manage your applications, which essentially means having redundant JVMs on which your applications are running, what you do is set up a �cluster.�

With a cluster, when you deploy your application, rather than deploying to a single JVM, you deploy your application to the cluster. Then each member of the cluster, each Java Virtual Machine that is, is capable of handling requests from clients.

What is Vertical Scaling?

If a cluster is a collection of JVMs working together to provide a workload managed environment, then �vertical scaling� happens when each of those JVMs are running on the same physical machine.

Now I know what you�re thinking: that doesn�t provide any failover support? Well, if the cleaning staff accidentally kicks out the power cord on your server, then indeed, you�re going to experience some downtime.

So what benefit does vertical scaling provide?

Vertical scaling provides a variety of benefits, especially if your environment is heavy on hardware.

First of all, if one JVM goes offline, whether intentionally or not, the other JVMs can pick up the slack, so you do get a certain degree of failover, although its not exactly the level of failover we usually associate with workload management. With vertical scaling, we are still node dependent.

A more likely reason for implementing a vertically scaled environment is to take advantage of powerful, multiprocessor machines.

The fact is, despite the use of our modern, multithreaded operating systems, there are enough concurrent processes within a JVM to make having one java.exe process running on a multiprocessor system a fairly ineffective endeavor. To take maximum advantage of your multiprocessor machine, you should implement vertical scaling and have n-1 JVMs running, where n is the number of processors in your system, and 1 is the number between zero and two.

What is Horizontal Scaling?

Horizontal scaling occurs when you deploy an application across multiple physical machines. Horizontal scaling is traditionally what we think of when the term �workload management� is thrown around.

WebSphere makes implementing horizontal scaling incredibly easy. The first step is to install the base edition of WebSphere onto a couple of different machines, and then install the Deployment Manager on another machine. Make the base editions part of the deployment manager�s administrative domain, and then use the administrative console to create a cluster.

The WebSphere Administrative Console makes it very easy to set up JVMs on multiple nodes that will act as a cluster. When you subsequently deploy your applications to the cluster, the various JVMs on the multiple nodes will take part in serving up the application. If one node goes down, the other JVMs on other nodes will pick up the slack.
 
Cameron Wallace McKenzie
author and cow tipper
Saloon Keeper
Posts: 4968
1
Hibernate Spring Tomcat Server
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
and 1 is the number between zero and two.


Ooops. Sorry, 1 is the integer between zero and two. There are an infinite number of numbers in there.



-Cameron McKenzie
 
Peer Reynders
Bartender
Posts: 2968
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Saha Kumar:
Could someone explain the difference between vertical and horizontal schemas?


Designing Web Services with the J2EETM 1.4 Platform
4.1.2 XML Horizontal and Vertical Schemas

XML schemas, which are applications of the XML language, may apply XML to horizontal or vertical domains. Horizontal domains are cross-industry domains, while vertical domains are specific to types of industries.

[ November 21, 2006: Message edited by: Peer Reynders ]
 
Saha Kumar
Ranch Hand
Posts: 218
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Cameron,

Thanks for the distinction between horizontal and vertical in the J2EE context. This is very interesting and helpful in architecture and implementation considerations.

-Saha
 
Saha Kumar
Ranch Hand
Posts: 218
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Peer,

Thanks for the info. I read the blueprints XML chapter...don't know how I missed this. Thanks for clearing it up!

-Saha
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic