This course is the capstone course in the Database and Web Systems Track. It has evolved from a synthesis of client server and advanced web design. As the definition and implementation of web services continues to develop, it is anticipated that the course will continue to evolve. Surely, this will be the case during this current offering.
The course examines the evolution of 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. It also assumes you have the requisite DBMS and XML knowledge.
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 a high level design experience that allows them to integrate the knowledge and skills they have developed during the program.
· To provide students with an opportunity to implement a network based application modeled in terms of a “Service Oriented Architecture.
· To explore the new kinds of capability that may be developed and deployed using loosely coupled services with published interfaces and dynamic composition.
· 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 traditional client server models, RPC and RMI. To examine how client-server design fits into a web context
· Examine and understand the different design models for web services – specifically to understand the difference between restful web services and message oriented web services.
· To implement various types of web services using servlet, EJB and web service abstract class structures.
· understand and implement public interfaces using Interface Definition Languages and IDL compilers including Reflection and other interface query mechanisms
· 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, specifically the XML parser architecture and the various parser API’s – i.e. SAX, DOM, and Trax.
· 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.
You are expected to be fully aware of your responsibility to maintain a high quality of integrity in all of your work. All work must be your own, unless collaboration is specifically and explicitly permitted as in the course group project. Any unauthorized collaboration or copying will at minimum result in no credit for the affected assignment and may be subject to further action under the University Guidelines for Academic Integrity. You are expected to have read and understood these Guidelines. A document discussing these guidelines was included in your orientation materials.
If you have a disability that requires special testing accommodations or other classroom modifications, please, notify both the instructor and Disability Resources and Services by the second week of the term. You may be asked to provide documentation of your disability to determine the appropriateness of accommodations. To notify Disability Resources and Services, call 64807890 (voice or TDD) to schedule and appointment. The office is located in the William Pitt Union, Room 216.
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 COMES 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 mail note 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 several projects for the course. The class will work together on some or all of these projects. The goal in all efforts will be to implement the projects in the form of web services. 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. A mash-up of restful web services using servlets
2. A message oriented web service defined using WSDL. Course Outline
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 will 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