New York University

Computer Science Department

Courant Institute of Mathematical Sciences

 

Homework #7 – CORBA 3 Component-Based Computing Environments

 

Due Date: 12/23/11 (choose one assignment among hw#6-8)

 

Course Title: Application Servers                                            Course Number: g22.3033-006

Instructor: Jean-Claude Franchitti                                            Session: 9

 

 

1. Ongoing Project Background

 

This homework follows the course on-going project approach described in the homework #1 specification. You should keep enriching your framework-based enterprise application design, and take advantage of the application server platforms used to implement/deploy your application. Your application should be developed in such a way as to be shielded as much as possible from the underlying software infrastructure. For that reason, it is a good idea to build your applications around a portable application framework. As portability issues arise, you will learn how to improve the design of your applications to make them more portable across application server platforms.

 

2. CORBA 3 Component-Based Computing Environments

 

CORBA 3 provides specifications in the area of Java and Internet Integration, Quality of Service Control and the CORBAcomponent architecture. Integration features include support for objects by value, Java to IDL mapping, interoperable naming service, and firewall capabilities. Quality of service features include support for asynchronous messaging, and policies to control the quality of service of invocations. Support was also added for minimum, fault-tolerant, and real-time CORBA primarily intended for embedded and card-format systems. The CORBAcomponent package is a major milestone for CORBA as it provides for a container environment that packages transactions, security, and persistence, and provides interface and event resolution. As such the CORBAcomponent architecture allows integration with Enterprise JavaBeans, and provides a software distribution format that enables a CORBAcomponent software marketplace.

 

In this homework, you will experiment with a CORBA 3 CCM platform in the context of the framework-based application developed as part of previous assignments on top of the CORBA and J2EE Component-Based Computing Environments. You may wish to extend the application you developed so far to motivate the need for migration to a CORBA 3 platform as a way to  handle J2EE and CORBA component interoperability within a single container.

 

2.1. Software Infrastructure Provided:

 

Programming environment

 

1.       CORBA and EJB MOO Frameworks used in previous homework

2.       Other development tools best suited for CORBA 3 development environments

3.       All the application software needed for this homework is contained in archives posted on the course Web site under demos. The distribution archives contains programs for the various types of implementations mentioned in this homework.

 

Additional Sample Applications

 

1.       No additional sample applications are provided for this homework

 

3. Questions

 

1.       Preparation phase:

 

  1. Select a technology infrastructure that is compatible with the application infrastructure required for this homework.
  2. Install the application infrastructure software, and experiment with it.
  3. Experiment with the sample application on the selected platforms.
  4. Refine your framework-based enterprise application and extend it to make use of the  CORBA 3 component model. Your application should involve a CORBA client interacting with a J2EE EJB, and should also involve connectivity between a J2EE EJB and a CORBA object implementation. If your application is well designed you should simply have to extend existing services or create separate services that extend the semantics of your application. You may wish to keep using a  combination of infrastructure frameworks for the time being.

 

2.       Prepare a short report documenting your refined framework-based enterprise application (using software engineering standards), and explaining its motivation.

 

3.       Prepare a short report including functional diagrams and screenshots (as needed) to demonstrate your understanding of the infrastructure software. Explain the infrastructure software differences between the application you developed in previous assignments and the one you are developing for this homework.

 

4.       Develop and deploy your framework-based enterprise application as follows on top of a CORBA 3 infrastructures. You are welcome to either reuse services provided by the sample application or complement them. Document the benefits and deficiencies of the approach on which CORBA 3 component-based computing environments are based and explain (as needed) how it limits your ability to develop the various application components you have envisioned for your enterprise application. Note that you do not need to provide a complete implementation of your application in this homework. You should restrict yourself to what you feel is feasible based on time and the level of support provided by the infrastructure software. Your application should be tuned for efficiency as allowed by the underlying infrastructure software, and you should document your performance engineering approach. You should conclude your report by suggesting, and implementing (as time allows) an improved Application Server model.

 

5.       Explain how you would refine the “analyzer” tool you started designing in previous assignments to  capture information about the version of the applications deployed in previous assignments, and re-deploy them as XML-based web applications such as: (a) the   SpyWeb” applications provided as support material under demo programs on the course Web site, (b) applications based on the Cocoon 2 XSP framework, and (c) applications based on a CORBA 3 framework. Note that the target application should again maintain a strict separation between content, style, and logic. As for previous assignments, your analyzer should strive to extract and represent a generic model of your application using a suitable markup language. You should comment on the merit of your proposed approach as it relates to the one followed by Sygel’s “Wonder Machine” as illustrated in the weekly session slides for session 8. You should related this proposed approach to the Model Driven Architecture (MDA) being specified by the OMG as a general purpose alternative to vendor specific solutions such as Microsoft .NET and Sun ONE.

 

6.       Extra Credit: Implement a prototype of the analyzer tool described in question 5 (ongoing)

 

5. Deliverables

Please provide an electronic copy of your homework submission as one zip archive by sending it to the course TA by the beginning of next class. The archive should include your application software, any modified infrastructure software, a readme file describing the environment setup required to run your application, and your homework report (in word or text format). You should name your archive using the following convention for all homework archives: name_hw?_fa08.zip, where name may include additional underscore characters as needed. You are also required to provide a hard copy of your homework reports at the beginning of each session or according to the homework submission scheduled spelled out in the homework specification.

 

6. Grading

 

All assignments are graded on a maximum scale of 10 points. Your grade will be based equally on:

 

a.       The overall quality of your documentation.

b.       The understanding and appropriate use of application server related technologies.

c.       Your ability to submit working and well-commented code.

d.       Extra credit may be granted for solutions that are particularly creative.

 

7. Additional Information

 

Please let the TA know as soon as possible about teaming arrangements. You will need to stay with the same team for the duration of the course. You should only submit one report/archive per team for each assignment. To balance things out, the final grading in the course will take into account the fact that you are working as a team instead of individually, so you should feel free to work individually as well. Note that the final take home examination will require individual work.