Slides - University of Virginia

advertisement
Collaborative Research: Developing Course
Modules to Teach Service-Oriented
Programming through Exemplification and
Visualization
Xumin Liu, Rajendra K. Raj, Tom Reichlmayr (RIT)
Chunmei Liu (Howard University)
Alex Pantaleev (SUNY at Oswego)
Acknowledgments
 This material is based upon work supported by the
United States National Science Foundation under
Awards No. DUE-1140567, DUE-1141112, and DUE1141200. Any opinions, findings, and conclusions or
recommendations expressed in this material are those
of the authors and do not necessarily reflect the views
of the National Science Foundation.
Overview
 Motivation
 Course Module Approach
 Course Modules
 1 (Consuming a Web Service)
 2 (Building and Deploying a Web Service)
 3 (Web Service Applications)
 Conclusion
Motivation
 Global service-oriented middleware market will grow to
at least $8.2 billion by 2016, according to a
WinterGreen Report1
 Crucial for undergraduate CS/SE students to learn
about web services and service-oriented computing
 Students need repeated exposure to SOP concepts at
different degrees of depth
1http://www.wintergreenresearch.com/reports/SOA%202010%20press%20release.
pdf
Student Goals
 Explain the motivation for learning about serviceoriented programming (SOP)
 Describe the issues and concepts underlying SOP
 Solve problems using SOP techniques
 Gain hands-on experience with SOP
Abstractions: Evolution
 Figure is from Introduction to Web Services by Dr. Marcello La
Rosa, QUT
Object- and Service-Orientation
 Steps in solving a complex problem
 Abstraction
 Decomposes problem into sub-problems
 Solves each sub-problem and composes overall solution
 Object-orientation
 Describes an abstraction using objects
 Objects help to model problem and develop the solution
 Service-orientation
 Describes an abstraction using services
 Services help to model problem and develop the solution
 Developed service can be used to develop new services
Service Oriented Programming
 Basic idea
 Wrap up a software system as a set of services,
accessible via the Internet
 Use services as the building blocks to develop
applications
 Standardize the way of describing, querying, and calling a
service to deal with interoperability issues
Service Oriented Architecture
 A meta-architectural style that supports loosely coupled
services to enable business flexibility in an
interoperable manner
 SOA requires the following
 All functions are defined as services
 All services are independent of each other
 Service interfaces are invocable
Teaching SOP via Course Modules
 Important to incorporate SOP into the curriculum early
 Make SOP materials to instructors as course modules
 A course module is a well-defined, self-contained unit of
instruction that may be incorporated, either as-is or with minor
modifications, within one or more courses offered in diverse
disciplines
 Course modules have become an excellent vehicle for handling
curricular changes quickly
 Vertical integration into the curriculum via repeated
exposure to SOP at different depths
 Three course modules
Course Module Template
Component
Brief Description
Overview
Description, prerequisite knowledge, and learning outcomes
Rationale
Motivation for the module
Recommended use
Recommendations for typical usage
Slides
Module content for lectures or independent learning activities
Sample questions
For use in low-stake quizzes
Labs/assignments
For hands-on experiences in solution design, implementation,
and verification
FAQ
Answers to students frequently asked questions
Readings
Introductory or supplementary materials referenced in module
Links
Pointers to online and other materials used in the module
Module evaluation
Assessment tools to measure learning and module effectiveness
Three Course Modules
 Course module 1
 Introduces SOP into a standard second programming
course, e.g., CS2
 Course module 2
 Presents SOP as a programming paradigm in a mid-level
course, e.g., Concepts of Programming Languages
 Course module 3
 Applies SOP to software design and development in a
senior-level course, e.g., Distributed and Concurrent
Software Systems
Course Module 1
 Targets freshmen computing students
 Lecture slides provide a brief overview of serviceoriented architecture, web service standards, and
fundamental principles of SOP methodology
 Sample questions test materials covered by slides
 Demo showcases development of an application using
web services
 Lab provides step-by-step instructions for calling a web
service
Course Module 2
 Targets mid-level students (sophomores or juniors)
 Lecture slides cover topics including service-orientation,
service-oriented architecture, service description, discovery,
invocation, and composition
 Sample questions test the material covered by slides
 Demo showcases the development of a web service and an
application using web services
 Lab provides step-by-step instructions for developing a web
service and an application by calling a web service
Course Module 3
 Targets senior students
 Lecture slides focus on the architecture, design, and
implementation of enterprise-critical software systems
 Sample questions test the materials covered by slides
 Project asks students to develop an SOP application
reflecting a real-world scenario
Concluding Remarks
Current Status
 All modules have been developed
and tested
 All modules at RIT
 Module 1 at Howard
 Module 1 and 3 at SUNY Oswego
 Initial assessment and revision

Modules and assessment at all
three institutions in 2013-14
 Improvements being pursued

In modules and in assignments
Last Words
 Contact Xumin Liu or any of
us if you want to try out the
developed materials
 xl@cs.rit.edu
 All you have to do is to
provide us with feedback
using our standard surveys
 Languages/platforms
 Java
 NET and C#
Download