title: Java inter-web application communication design?
body: <p>We're designing two distinct systems which can be simulated by the following typical example.</p>
  
  <p>Web App #1 - Course catalog (allows updating / populating the course catalog)</p>
  
  <ul>
  <li>Professors</li>
  <li>Course (courseCode, professorId, list of Prerequisites, grade scale used)</li>
  <li>Prerequisites (courseCode and minimum grade required)</li>
  <li>GradeScale (i.e. A-F, 1-100, pass/fail)</li>
  </ul>
  
  <p>Web App #2 - Student catalog (handles students registering for new courses, seeing their transcript, etc)</p>
  
  <ul>
  <li>Student</li>
  <li>Transcript (what courses did they take and what final grade)</li>
  </ul>
  
  <p>Data that needs to pass between the two systems (there will be more calls and stuff that needs to be handed back and forth, but this gives the idea that it's a 2-way flow of questions and answers):</p>
  
  <ol>
  <li>Does a student have the pre-reqs needed to take a particular course?</li>
  <li>Pulling details from the course catalog to create a full transcript</li>
  </ol>
  
  <p>From reading, it seems our options are:</p>
  
  <ol>
  <li>Create EJBs for the underlying data model, then have the web applications use the EJB interface.</li>
  <li>Use a REST or Web Service interface between the two applications.</li>
  <li>RMI or other Java remoting?</li>
  </ol>
  
  <p>Which way would you cut this up into JARs/WARs/EARs?</p>