Syllabus
Web Services and Distributed Computing

INFSCI 2739
Fall, 2013 (214-1)
Class Number: 21602
Monday 3:00-5:50, SIS 522
 
Michael B. Spring
Information Science and Technology
School of Information Sciences
University of Pittsburgh
701B SIS Building
Personal Email: spring@pitt.edu
Class Email: mbsclass@pitt.edu
Office Hours:  Monday-Friday 8:00-6:00
Phone: 412-624-9429
 

Note 1:  This course is still in the process of changing as SOA definitions and technologies change.  Some aspects of assignments and lectures will likely change as the term moves along.  In particular, registries and language tools such as BPEL are in a state of significant flux.

Note 2:  This course has multiple prerequisites -- 2550, 2560 and 2730.  Students should not register for this course without all prerequisites.

Note 3:  This class meets on Mondays and thus is subject to a scheduling anomaly related to the fall break that is scheduled for the week of October 14th.  Monday, October 8th will be a holiday for students, but classes scheduled for Monday will be held on Tuesday and Tuesday classes will not meet that week.  (Confusing?  I understand but it has to do with the classes on each day meeting a given number of times during the term.)  For now just keep in mind that our class scheduled for October 8th may meet on October 9th. I will discuss the situation with you at the beginning of the term.

Background

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.

 

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 from application servers and registries.  The conceptual model of a Service Oriented Architecture combined with standards for web services is enabling new forms of applications.  Finally, competent browser based GUI’s are coming about as a result of browser DOM sophistication, JavaScript capability, and the marriage of the two in the form of AJAX.  As this course is offered, yet additional developments will come about which will shape the face of the next generation web.

Conduct of the Course

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.

Goals

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.

Scope of the course

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

Introduction to the Course

Book

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.

Academic Integrity

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.

Special Considerations

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.

Professionalism and Plagiarism

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.

Course Requirements

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

Service Design

WS-BPEL

WS-* Extensions