CSC 750 Service-Oriented Computing

Concepts, theories, and techniques for Web services. This course examines architectures for Web applications based on the classical publish, find, and bind triangle, but formulates it at a higher level. It considers sophisticated approaches for the description, discovery, and engagement of Web services. This course emphasizes Web service composition. Key topics include semantics, transactions, processes, agents, quality of service, compliance, and trust. 3 credit hours.

 
   
   
Prerequisite
 

Graduate standing in computer science.
Knowledge of discrete mathematics.

 

Course Objectives  

On completion of this course, students will be able to do the following.

  • Design and launch Web services.
  • Use, in their own programs, Web services published by others.
  • Employ the publish, find, bind architecture for Web services and to use the corresponding standards, in particular, Web Services Description Language (WSDL), Simple Object Access Protocol (SOAP), and Universal Description, Discovery and Integration (UDDI).
  • Conceptually model Web services and formulate specifications of them in the Resource Description Framework (RDF) and the Web Ontology Language (OWL).
  • Perform matchmaking on Web services.
  • Develop registration and discovery techniques for Web services.
  • Apply principles of distributed transactions, business processes, business protocols, rules, and agents to specify, monitor, and manage the behavior of composed services.
  • Evaluate emerging and proposed standards for the main components of Web services architectures.


Course Requirements  

Homework: 3 assignments (5%)
Examinations: 1 (35%)

Software Requirements: N/A: All necessary software will be available for use on NCSU laboratory computers or for free download for academic purposes.

5-6 programming assignments (60%)


Textbook  

Required: Transparencies. These will be available on-line. I will be writing
on the slides in class, so it will help to have them handy during class to take
notes on.

Required: Service-Oriented Computing: Semantics, Processes, Agents by Munindar P. Singh and Michael N. Huhns, John Wiley & Sons, 2005. ISBN 0-470-09148-7.

 

Motivation  

This course will address the concepts and techniques of Web services. It introduces the basic Web services standards and have students apply them in programming assignments. However, the main emphasis of this course is on the concepts that underlie the syntactic details of the standards. The largest component of the course will be a project proposed by the students and approved by Dr. Singh after one or more iterations. Ideally, the project should be something that takes advantage of the student’s life situation, current employment, or past experiences, yet provides a setting in which to deepen knowledge of the topics of this course. Team projects are acceptable: their scope would be commensurate with the numbers of members on a team. Students will be given an opportunity to identify team members.

Web services have become an important paradigm for information technology
architectures and applications. The basic standards and existing literature on Web services have been focused on the lower-level, infrastructural matters. But as these become well-understood, emphasis has shifted to deeper foundational topics. In particular, in emerging practice, the classical Web services triangle of publish, find, and bind is being upgraded to sophisticated descriptions, discovery, and engagement. This upgrade requires the introduction of techniques for information and process semantics, specifically, conceptual modeling, ontologies, matchmaking, messaging, transactions, and processes.

Web services require a strong open systems perspective. For example, services in general are not invoked but are engaged, meaning that the interactions one has with them are quite unlike method invocations and are better modeled as parts of extended conversations. Protocols, in this sense, replace programming interfaces as an abstraction for programming. Similarly, discovering the right service is more than simply looking up a directory with a method signature, and involves considerations of application-level trust.

Some of the key techniques for Web services were developed in the areas of databases, distributed computing, artificial intelligence, and multiagent systems, and can be readily adapted for service composition. Other techniques must be developed from scratch, so as to address the essential openness and scale of Web applications that previous work did not need to address.

This course seeks to discuss the key concepts for Web services leading up to service composition. Its intent is to formulate the foundational concepts of Web services, to evaluate existing approaches, and to present existing techniques from other areas that can be adopted for services, and lastly to introduce emerging techniques for addressing challenges that are unique to services.

This course is self-contained, and gives the essential background for anyone planning to learn about and contribute to the principles and applications of services.


Course Outline  

The following are the main topics of this course.

  1. Introduction
    * Brief history of information technology
    * Distributed computing in the large
    * Motivations for composition
    * Challenges for composition
  2. Web Services Architectures and Standards
    * Basic concepts
    * Directory services
    * SOAP
    * WSDL
    * UDDI
  3. Enterprise architectures
    * Integration versus interoperation
    * J2EE
    * .NET
    * Legacy systems
  4. Problems and challenges
    * Evaluation of current architectures and standards
    * Prelude to techniques
    * Key challenges
  5. Description: Modeling and representation
    * Conceptual modeling
    * Ontologies and knowledge sharing
    * Relevant standards: RDF, RDFS, and OWL
    * Inferencing and tools
    * Matchmaking
  6. Engagement
    * Peer to peer computing
    * Messaging
    * Transactions
    * Process specification
    * Relevant standards: BPEL4WS, WSCI, WS-Tx, WS-C, ebXML
    * Relaxed transactions
    * Exception handling
  7. Collaboration
    * Describing collaborations
    * Agents
    * Multiagent systems
    * Agent communication languages
    * Protocols
    * Commitments and contracts
    * Planning
    * Consistency maintenance
    * Relevant standards: FIPA, OWL-S
    * Economic models
    * Organizational models
  8. Selection
    * Quality of service
    * Application-level trust
    * Reputation mechanisms
    * Referral systems
  9. Engineering
    * Engineering composed services
    * Compliance
    * Trust
    * Privacy
  10. Synthesis
    * Common threads
    * Open problems
    * Status and trends

 

Computer and Internet Requirements  

NCSU has recommended minimum specifications for computers used for classes. Depending on your computer needs, we recommend your computer meet or exceed the following minimum specifications below.

PCs must have an Intel-compatible 800 MHz processor, 256 MB RAM, 8 GB hard drive with 1 GB free space available, 256 Color Display, CD-ROM drive, 800x600 (min.) video adapter, sound card, and speakers. The operating system should be Windows 2000 or XP. Real One Player Basic (available free online) and high speed Internet connection such as cable, DSL, T1 or LAN will be required for EOL courses.

MAC users must have a G3 processor with firewire and USB factory built-in, 256 MB RAM, 10 GB with 1GB free space available, 256 Color Display, CD-ROM drive, 800x600 (min) video adapter, sound card, and speakers. The operating system must be MacOS 10.3 (minimum) along with the above RealOne and Internet specifications above .

For more detailed information on computer specifications and recommendations, please refer to our website at: http://engineeringonline.ncsu.edu/currentstudents/computeraccess.htm

 

Instructor  

Dr. Munindar P. Singh, Professor
Department of Computer Science
North Carolina State University
Engineering Building II, Suite 3320
Campus Box 8206
Raleigh, NC 27695-8206

Phone: (919) 515-5677
Fax: (919) 513-7896
E-Mail: singh@ncsu.edu (preferred means of communication)