Note: This course has multiple prerequisites -- 2550, 2560 (formerly 2870) and 2730 (formerly 2872). Students may not register for this course without all prerequisites. In rare instances, the instructor will waive a given prerequisite for a particular student, but the explicit permission of the instructor is required and students should petition for the exception in writing with an explanation of how they have acquired the skills developed in the required course.
This course is the capstone course in the Database and Web Systems Track. It has evolved from a synthesis of Document Processing, Client Server, Interactive Systems and Database courses. The Spring 2007 offering will be the first formal offering of the course. This course examines advanced techniques to client server computing in the context of the world wide web. It provides an opportunity to integrate the knowledge and skills obtained in the prerequisite courses to the design and develop a functioning distributed application. This course assumes you have at your disposal competence in multiple programming languages and operating systems. Most programming examples in this course will be given in Java, but you will be free as a group to select other alternatives. It also assumes you have the requisite DBMS and XML knowledge.
Several forces are shaping the next generation of the web. We are finally, after more than two decades, seeing the beginning of a form of “thin client”. The notion of an Object Request Broker Architecture shows signs of emerging in the form of web services. New levels of browser based GUI’s are coming about as a result of browser DOM sophistication, JavaScript capability, and the marriage of the two as AJAX. As this course is offered, yet additional developments will come about which will shape the new face of the next generation web.
IS 2739 is a capstone graduate course in which students share the responsibility for creating a learning experience. The instructor’s role is less to direct and spoon feed and more to stimulate and guide learning. The instructor and students share the responsibility to make the course work. While much can be learned by rote memorization, things learned by memorization tend not to be the skills that one generalizes and applies in later life. A different kind of learning takes place when students engage in the process actively. This course is based upon students being actively engaged in producing products that work.
The goals of this capstone course are as follows:
· To provide students with an opportunity to implement XML based interface solutions between loosely coupled services.
· To provide students with a high level design experience that allows them to integrate the knowledge and skills they have developed during the program.
· To provide students with a hands on experience with the full range of technologies that support service oriented approaches.
· To provide students with an opportunity to reflect on the differences between traditional client server, SOA, and Web service approaches to systems.
In this course, students will:
· review the history of distributed systems with an examination of RPC, RMI and CORBA. client-servers design , and clients,
· design and develop web systems that allow people to conduct business.
· understand the nature, functionality, and limitations of various standards and specifications that support service orientation, specifcially the XML parser architecture and the various parser API’s – i.e. SAX, DOM, and Trax.
· understand and implement public interfaces using Interface Definition Languages and IDL compilers including Reflection and other interface query mechanisms
· Servlet, EJB and web service abstract class structures.
· DBMS APIs and SQL will be reviewed and XML databases and XQuery will be introduced.
· Directory Services, Application Servers and Registries.
· Security and configuration issues for enterprise systems.
· Design issues for n-tier distributed systems.
· The design of marketplaces
The primary resources for the course are materials on the web itself. We will use one book as an initial guide to web services. books for the course will be those shown below.
· Service-Oriented Architecture (SOA): Concepts, Technology, and Design by Thomas Erl, Prentice Hall PTR (August 2, 2005) ISBN: 01318585802000, ISBN: 0-13-927955-5
There are a couple things that you need to keep in mind as you start this course. Any documents you submit should be carefully proofread and formatted professionally. The paper should provide all the necessary information – your name, your email address, student ID, the course, the term, the CRN, and the assignment for which the paper is submitted. Any code that is submitted should be thoroughly tested to insure that I will be able to run it on any machine. The project source code and executable files should both be included. The material, if it is extensive, should be zipped up in a zip or jar file. Care should be taken to make sure that all necessary supporting DBMS and lib or jar files are included. A readme file should be included that explains any particular constraints or steps that need to be taken. ALL CODE THAT COME FROM ANY SOURCE OTHER THAN YOUR HEAD NEEDS TO BE FULLY AND CAREFULLY MARKED. This includes code which you have adapted from some source but which is essentially someone else’s work. Failure to note such use is cause for a grade of 0 on the assignment and an F in the course. All of your code should be carefully and professionally commented and explained. In both the mailnote to which the project is attached and in the main file of the project, you should include:
The names of all participants
Email addresses and student IDs
The course, the term, the CRN
The assignment for which the paper is submitted.
Copies of sample code and other resource materials will be made available at http://www.sis.pitt.edu/~mbsclass.
There will be three project for the course and all students will work on all three projects. The nature of the first two projects will be defined by the instructor. The final project will be proposed by the instructor, but may be modified in discussion with the class. Regardless, the final project will be defined in more detail by the class.
1. Understanding J2EE
•JSP/Servlets and MVC
•AJAX
•EJB
•SUN Java System AS
2. A Model For Collaborative Authoring
•Basic Services
•Editing
•Access Control
•Import/Export
•Logging
•Versioning
3. A Model for Alumni/Grad Student Services
• To be defined in class
The instructor will lecture on topics as required by the project you will undertake. These lectures will cover any topics needed, but it is anticipated that they may well include the following:
•Understanding SOA and WS
•Services, descriptions, and messaging
•Coordination, Orchestration, and Choreography
•Advanced Messaging, Metadata, and Security
•Service Orientation Principles
•Application and Business Layers
•Service Orientated Analysis
•SOA Design – WSDL and SOAP
•Service Design
•WS-BPEL
•WS-* Extensions