title: OSGi vs Spring vs Struts vs EJB vs. Hibernate -- a totally newbie's question
body: <p>I am not familiar with these "framework" "components" at all, but can someone give me a 101 introduction about what the relationship they are to each other? Basically, I want to know roughly about:</p>
  
  <ol>
  <li><p>what and what are counterparts to each other</p></li>
  <li><p>what and what are complementary technology (e.g., A as a framework can be used with B as a component)</p></li>
  <li><p>what big names have I missed above list which I should not have?</p></li>
  </ol>
  
  <p>Can anyone give me a high level intro? After reading the first two answers, can someone give more explanation about Spring vs. OSGi -- are they in separate market (Enterprise vs. Mobile)?</p>
  
  <p>Many thanks</p>