Teaching J2EE and Web Services Using Eclipse
Objectives
The goal of this project is to develop modular, reusable instructional materials to teach J2EE and Web Services concepts, system design, and programming within an Eclipse framework.
These materials will cover a broad range of topics from thin and thick clients, to servlets, EJBs, SOAP, WSDL, UDDI, and other related topics. All will be based on WebSphere or WebSphere SDK technologies. Individual lessons will be composed of multiple components, including text, code, and diagrams. Components will be modular so that they can be accessed and combined in different ways to suit the needs of different courses, instructors, and users/learners. This will also facilitate update and expansion as these technologies evolve and grow. I try to make these materials a "model curriculum" in J2EE and Web Services, but one that can be adapted to meet specialized needs. IBM has close working relationships with the universities and colleges in the Research Triangle Park area; I will utilize these relationships to first disseminate these materials in this area and, then, more broadly.
A second goal is to situate these materials within Eclipse. I envision that a user attempting to learn a particular J2EE or Web Service technology will be able to view a relevant lesson, peruse an accompanying code sample, compile and run that code, and then adapt or extend it to serve some other purpose or to explore other features.
All components will be accessible through a Web server and viewable through a Web browser. I will develop necessary Eclipse plug-ins and configuration files so that they may also be viewed within Eclipse, either as local data or from a central server. I will develop additional plug-ins to facilitate selection and reuse of components or inclusion of new components to form new and/or specialized lessons. Finally, the Eclipse resources will be tested and modified as necessary so that they be incorporated into the Eclipse-based WebSphere Application Developer's Studio.
Deliverables
1. Approximately 25 updated and modular lessons dealing with J2EE and Web
Services concepts and technologies.
2. Eclipse plug-ins and configuration files for accessing and viewing lessons.
3. Eclipse plug-ins to compile, run, and update sample code contained in
lessons.
4. Eclipse plug-ins for selecting, updating, and adding lesson components and
for building and storing new lessons structures.
5. WebSphere plug-ins and other resources, adapted as required from Eclipse
resources.
Background
This project is based on some seven years experience teaching Web-based programming, in Java. During that time, I have developed four courses that are relevant. They are Introduction to WWW Programming (http://www.cs.unc.edu/Courses/comp117/), Advanced WWW Programming (http://www.cs.unc.edu/Courses/comp118/), Enterprise Computing (http://www.cs.unc.edu/Courses/comp119/), and Web Services (http://www.cs.unc.edu/Courses/comp190/). All courses are taught on-line and some 75 lessons have been developed -- all Web-accessible -- to support them. The lessons dealing with J2EE and Web Services are based on IBM's WebSphere and WebSphere SDK technologies. These materials, especially those used in the latter two courses, will constitute the starting point for the revised lessons that will be developed and modularized for this project.
A second project, entitled Object-Oriented Content, is concerned with research dealing with modularizing and reusing information using J2EE technology. A partial working prototype system has been completed, and I am currently working on components that will enable a user to select and restructure modular content elements to form new content objects. This work will constitute the starting point for Eclipse plug-ins as well as middle- and back-end components needed to support the modular reuse aspects of the project.
Thus, this project is based on a substantial body of prior work as well as hands-on experience in using the relevant technologies and teaching them to others.
Workplan and Schedule
Work will proceed in three stages, each lasting for approximately four months, beginning January 1, 2003.
Phase 1 will be concerned with selecting those lessons or topics most relevant for J2EE and Web Services, refactoring them into components, and then updating and rewriting them as needed to make them modular and reusable. This work is expected to be completed by May, 2003.
Phase 2 will be concerned with an initial set of plug-ins to make the revised lesson components -- including text, code, and diagrams -- accessible within Eclipse. Included will also be plug-ins to support compiling, running, and editing sample code. This work is expected to be completed by September, 2003.
Phase 3 will be concerned with additional plug-ins to search for and select lesson components and to build new lesson structures. This work is expected to be completed by the end of December, 2003.
Current Support and Relationships
During the past two years, IBM has very generously provided support for the work I have been doing in J2EE and Web Services in the form of two equipment grants. We have been given ten e-class servers, sufficiently powerful to run WebSphere, DB2, and VisualAge, which have been used both for student team projects and for development of course materials.
During the Spring semester, 2003, I will be supported by a UNC Research and Study leave to work at IBM's Hursley facility in England, specifically with their WebSphere group there. I plan to learn more about MQSeries resources, to develop additional lessons dealing with messaging and document-oriented Web Services, and to update existing lessons that are part of this project.
During the past two years, I have developed several very helpful cooperative relationships with IBM personnel in the area. These include Kyle Brown, a Senior Member of the Technical Staff and the author of the very excellent textbook on enterprise systems and WebSphere. I have been asked by Kyle and his co-authors to preview the new edition of their text and provide comments. I expect this experience to help with the updating of lesson materials for this project. I have also developed a good working relationship with Andy Rindos, IBM's university liaison in the area. I expect to work with Andy in disseminating the materials to be developed to other nearby schools.
Resources Requested
I request $30,000 for this project. These resources will be used to obtain time for myself to work on this project and to employ students (graduate and/or undergraduate) to help with the programming.