|   Foundation 
                                      Components  
                                    Relationships 
                                      and Dependencies between the Foundation 
                                      Components 
                                    It 
                                      is important to understand how the foundation 
                                      components build the architecture of OpenUSS 
                                      together. As you can see in the architecture 
                                      specification of OpenUSS, the system 
                                      provides some foundation components such 
                                      as Student, Assistant, Faculty, Administrator, 
                                      Semester, Subject, etc. that should be used 
                                      to handle common services at a faculty or 
                                      a university. Figure 1 shows the relationships 
                                      and dependencies between these foundation 
                                      components.  
                                    The 
                                      Enrollment component will be used 
                                      mostly to communicate with the Extension 
                                      Components of the OpenUSS system. An enrollment 
                                      can be compared with an order. It's a combination 
                                      between a customer, a product and a time 
                                      point. An enrollment is a combination between 
                                      a faculty, a subject 
                                      and a semester.  
                                    As 
                                      a summary: 
                                      Most of Extension Components should have 
                                      a relationship with the Enrollment component, 
                                      if they have or want to persist and save 
                                      some data. 
                                    For 
                                      example: If someone wants to build a Lecture 
                                      Extension Component, then she or he has 
                                      to save some informations and relationships 
                                      between the lecture and the enrollment itself 
                                      (An enrollment can have many lectures but 
                                      a lecture will always be owned by one specific 
                                      enrollment. Please be careful: an enrollment 
                                      is not the same as a subject!).  
                                    In 
                                      the most cases you will have to extend the 
                                      Enrollment component. Mailing list, Discussion, 
                                      Excercises, etc. all depend on the enrollment. 
                                      In some exceptions maybe you also want to 
                                      extend some other components. More about 
                                      this later in the Extension 
                                      part. 
                                      
                                      
                                    Figure 
                                      1: UML class diagram for the Foundation 
                                      Components 
                                      
                                    Design 
                                      Pattern for the Foundation Component  
                                    Every 
                                      foundation component can be divided into 
                                      three categories as we have seen it in the 
                                      components specification 
                                      before: Business Object, Workflow Object 
                                      and Relationship Object. Figure 2 helps 
                                      you to understand this situation. It shows 
                                      how we can handle a complex (n:m) relationship 
                                      within the foundation components within 
                                      the EJB architecture (Enterprise JavaBeans). 
                                      As an example we use the relationship beetween 
                                      an Assistant Foundation Component and a 
                                      Faculty Foundation Component (as normally 
                                      an assistant can work in many faculties 
                                      and a faculty could have many assistants 
                                      as well). This design pattern for the foundation 
                                      components should be used all over the OpenUSS 
                                      system.  
                                      
                                      
                                    Figure 
                                      2: Design pattern for Foundation Components 
                                      in OpenUSS 
                                      
                                    Figure 
                                      3 until 5 show the detail information of 
                                      every BO, WO and RO. 
                                      
                                      
                                    Figure 
                                      3: Assistant Foundation Component BO and 
                                      WO 
                                      
                                      
                                    Figure 
                                      4: AssistantFaculty 
                                      Foundation Component RO 
                                      
                                      
                                    Figure 
                                      5: Faculty Foundation Component BO and WO 
                                      
                                    We 
                                      will provide you with some templates to 
                                      make such a relationship easier to handle. 
                                      To look at the source code we recommend 
                                      you to directly browse it in the CVS.  |