Web Services

Credits
6
Types
Specialization complementary (Service Engineering)
Requirements
This subject has not requirements, but it has got previous capacities
Department
ESSI
This course focus on the need for systems interoperability and how Web services, an umbrella concept for different cross-platform solutions based on Web standards, attempt to overcome the many challenges that distributed information systems have addressed in various ways (but not always successfully) in the past. By the end of the course, students will have learned the relevant concepts related to the nature, characteristics and types of Web Services and acquired some experience in consuming, designing, constructing and maintaining services located at the web.

Teachers

Person in charge

  • Carles Farre Tost ( )

Weekly hours

Theory
2
Problems
0
Laboratory
2
Guided learning
0
Autonomous learning
7.11

Competences

Technical Competences of each Specialization

Service engineering

  • CEE5.1 - Capability to participate in improvement projects or to create service systems, providing in particular: a) innovation and research proposals based on new uses and developments of information technologies, b) application of the most appropriate software engineering and databases principles when developing information systems, c) definition, installation and management of infrastructure / platform necessary for the efficient running of service systems.
  • CEE5.3 - Capability to work in interdisciplinary engineering services teams and, provided the necessary domain experience, capability to work autonomously in specific service systems.

Generic Technical Competences

Generic

  • CG5 - Capability to apply innovative solutions and make progress in the knowledge to exploit the new paradigms of computing, particularly in distributed environments.

Transversal Competences

Teamwork

  • CTR3 - Capacity of being able to work as a team member, either as a regular member or performing directive activities, in order to help the development of projects in a pragmatic manner and with sense of responsibility; capability to take into account the available resources.

Basic

  • CB6 - Ability to apply the acquired knowledge and capacity for solving problems in new or unknown environments within broader (or multidisciplinary) contexts related to their area of study.
  • CB8 - Capability to communicate their conclusions, and the knowledge and rationale underpinning these, to both skilled and unskilled public in a clear and unambiguous way.
  • CB9 - Possession of the learning skills that enable the students to continue studying in a way that will be mainly self-directed or autonomous.

Objectives

  1. Ability to design and implement software that interacts with web services and public or private web APIs
    Related competences: CEE5.1, CEE5.3, CB6, CB9, CTR3, CG5,
  2. Understanding of the fundamental Web technologies that are the basis for the development of web services
    Related competences: CB6, CB8, CB9,
  3. Know the different protocols and communication standards for web services
    Related competences: CB6, CB8, CB9,
  4. Ability to design and implement web services, selecting and using the technologies and tools that are most appropriate in each case
    Related competences: CEE5.1, CEE5.3, CB6, CB8, CB9, CTR3, CG5,
  5. Ability to test and monitor web services, selecting and using the technologies and tools that are most appropriate in each case
    Related competences: CEE5.1, CEE5.3, CB6, CB8, CB9, CTR3, CG5,

Contents

  1. Introduction
  2. Origins & Precedents
    Fundamentals of Distributed Sytems. Middleware. SOA
  3. Core Web Technologies
    The Fundamentals: URIs. HTTP. Proxies, caches, cookies. Browser-Based Computing: JavaScript, DOM, AJAX. Server-Side Computing: CGI, PHP, Java Servlets. Web Data Exchange Formats: XML, JSON.
  4. Core WS Protocols
    SOAP and WSDL. RESTful WS.
  5. WS Development
    Properties of a service development methodology. Qualities of service development methodology. Web services development lifecycle.Service analysis, design and construction. Design Patterns for Web Service Development.
  6. Securing WS
    General Concepts. Securing RESTful Web Services. XML Security Standards. Securing WS-* Web Services
  7. Advanced Topics
    WS Evolution, Management, Monitoring, and Testing. Transactions. Composition and Coordination.

Activities

Activity Evaluation act


Theory
20h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
10h

Presentations

In groups of 3-4, s/he prepares a topic to be presented with the help of slides. S/he handles in the slides before the deadline. S/he delivers the presentation and answers the questions from the teacher and his/her classmates. S/he assess the presentations of the other groups.
Objectives: 2 3
Contents:
Theory
6h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
25h

Laboratory: Weekly Sessions

In pairs, s/he works (installs, configures, programs) in order to achieve a certain number of tasks defined in the statement handed in at the beginning of the session, using the required language, tools and resources. In advance, and autonomously, s/he has introduced her/himself to the use of these technologies.
Objectives: 1 2 3 4
Contents:
Theory
0h
Problems
0h
Laboratory
18h
Guided learning
0h
Autonomous learning
27h

Laboratory: Project

In groups of 3-4, s/he designs, implements, and deploys web services. Each week s/he comes to the laboratory session to work on the project, indicate the level of achievement of the milestones set for that session, (re)plan the milestones for the next session, present results, and report doubts and problems. At the end of the project, s/he assess the work of his/her project fellows.
Objectives: 1 2 3 4 5
Contents:
Theory
0h
Problems
0h
Laboratory
10h
Guided learning
0h
Autonomous learning
20h

Final Exam

Written exam of the topics introduced along the course.
Objectives: 1 2 3 4 5
Week: 16
Type: final exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
12h

Teaching methodology

The teaching of the course is structured in lecture sessions and laboratory sessions.

Lecture sessions: 2 hours per week.
The instructors can present some of the course content using slides or other material available at Atenea. There will be also sessions in which students will be required to prepare on their own and present to the class a certain topic.

Laboratory sessions: 2 hours per week.
During the first 9 weeks of the course, and after a brief introduction, the students will be required to complete a certain number of tasks using the computer in accordance with a work plan.
During the remaining weeks of the course, the students, in groups of 3-4, will design and implement a web service project. The lab sessions will be used to work in the project, discuss and fix doubts and problems, plan and manage goals, and present results.

Evaluation methodology

30% Final Exam
30% Weekly Lab Sessions
20% Lab Project
20% Presentations

Bibliography

Basic:

  • Service design patterns: fundamental design solutions for SOAP/WSDL and RESTful Web services - Daigneau, Robert, Addison-Wesley, cop. 2012. ISBN: 9780321544209
    http://cataleg.upc.edu/record=b1409220~S1*cat
  • SOA with REST: Principles, Patterns & Constraints for Building Enterprise Solutions with REST (The Prentice Hall Service Technology Series from Thomas Erl) - Erl, Thomas et al., Prentice Hall, 2012. ISBN: 9780137012510
  • Web services: principles and technology - Papazoglou, M, Pearson, cop. 2008. ISBN: 978-0-321-15555-9
    http://cataleg.upc.edu/record=b1319474~S1*cat

Complementary:

Web links

Previous capacities

Fundamentals of Software Engineering & Programming
Fundamentals of Computer Networks and Internet