Computer
Science Department
Courant
Institute of Mathematical Sciences
Course Title: Application Servers Course Number: g22.3033-011
Instructor: Jean-Claude Franchitti Session: 11
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. .Net Component-Based Computing Environments
.NET is a vision and set of Microsoft software
technologies for connecting information, people, systems, and devices. The .NET
Framework enables you to call existing Component Object Model (COM) and COM+
components. It also enables .NET Framework—connected components to be exposed
to COM and COM+ development. Additionally, a considerable amount of COM+ 1.0
"plumbing" has been simplified in the .NET Framework.
In this homework, you will experiment with the .Net Environment 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 the .Net as a way to implement rich client support capabilities.
2.1. Software Infrastructure Provided:
1. CORBA and EJB MOO Frameworks used in previous homework.
2. Visual Studio .Net development environment.
3. All the application software needed for this homework
is available from the Microsoft MSDN Library at:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/bdadotnetsamp0.asp.
The .Net architectural applications provided in the
MSDN Library demonstrate the diversity of design approaches possible on the
.NET platform when building distributed applications; a comparative examination
of these designs in light of the tradeoffs between maintainability,
manageability, performance, scalability, and security can be a source of
insight that can help determine the best approach for a given context.
Viable .Net distributed application samples for this
homework include:
a)
Microsoft .Net
Pet Shop: An implementation of the Sun J2EE blueprint application on the .NET
platform.
b)
Duwamish 7 : A
multitier, distributed business-to-consumer commerce application that may be
deployed on a single machine, in a physical two-tier (Web, database)
configuration, or physical three-tier (Web, application, database)
configuration.
c)
Fitch &
Mather Stocks 7: A multitier, distributed business-to-consumer financial
services application.
Additional Sample Applications
1. Students are encouraged to experiment with
some of the 23 code samples provided as part of the MSDN library (http://msdn.microsoft.com/vcsharp/downloads/samples/default.aspx).
These samples show how to work with the most
essential components of the .NET Framework and accomplish common coding tasks
in C#.
3. Questions
1. Preparation phase:
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 .Net infrastructure.
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 the .Net component-based computing environment is 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 the .Net 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 relate 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
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.
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.