ITSE407 : Web Services

Department

Department of Software Engineering

Academic Program

Bachelor in Software Engineering

Type

Elective

Credits

03

Prerequisite

ITSE412ITWT320

Overview

Topics covered in this course include: Apache, TCP/IP, How Does Apache Use TCP/IP; Apache's Flags; Block Directives; Virtual Hosts; HTTP Response Headers; Common Gateway Interface (CGI); Writing and Executing Scripts; Script Directives; Debugging Scripts; Setting Environment Variables; suEXEC on Unix; Handlers; Actions; Authentication; Authentication Protocol Authentication Directives; Passwords Under Unix; Order, Allow, and Deny; Digest Authentication; Anonymous Access; Automatic User Information; Using .htaccess Files; Overrides; MIME, Content and Language Negotiation; Indexing ; Redirection; Proxy Server, Proxy Directives, Caching; Server-Side Includes: Server Status, Server Info, Logging, Authentication; Blocking Access; Counters; Faster CGI Programs; FrontPage from Microsoft; Languages and Internationalization; Server-Side Scripting; Throttling Connections; URL Rewriting; Miscellaneous: MIME Magic, DSO; Security: Apache-SSL, The Apache API, Writing Apache Modules.Laboratory Projects:Students implement a Unix operating system and provide user services, internetwork services and application services to serve external ―client‖ requests.

Intended learning outcomes

Knowledge & understand

  • Explain the benefits of packaging business applications as services over the Internet
  • Identify the requirements of a web service application
  • Demonstrate an understanding of Web Services technologies: SOAP, WSDL, and UDDI
  • Describe and discuss SOAP features, and demonstrate an understanding of WSDL as a vocabulary of Web Services
  • Demonstrate an understanding of how SOA systems differ from traditional non-distributed systems
  • Identify REST constraints and how to construct APIs

Mental skills

  • Analyze the requirements of a web service application
  • Evaluate the specifications and designs of web service applications
  • Demonstrate how REST differ from traditional SOAP and its impact on software quality, efficiency, security, performance, and flexibility
  • Compare best practices of web service application development
  • Differentiate between http methods and select the appropriate ones according to the use case

Practical & professional skills

  • Apply the basic concepts, principles and practices of web services
  • Solve and develop program logic for Web Services systems
  • Apply the techniques and features of SOAP and REST
  • Build a robust and secure APIs
  • perform security evaluation of web service applications or APIs
  • Utilize Web Services to transmit attachments

Generic and transferable skills

  • Using knowledge and sources effectively
  • Searching capabilities
  • Group-working & presentation skills (real-life practical requirement)
  • Discuss and work in a group in order to design, build and deploy a web application
  • Hand in assignments, reports and projects in time
  • Communicate technical and design thinking

Teaching and learning methods

  • Lectures.
  • Tutorials.
  • Problem-based learning.
  • Laboratory and practical training.
  • Mini-projects.

Methods of assessments

  • Midterm Exam = 30
  • Assignments = 10
  • Mini-project = 10
  • Final Exam = 50

Course contents

  • Week1: Quick Introduction. What and why the web service is. Benefits of using web services
  • Week2: Hypertext Transfer Protocol (http) & its headers. http Resource, URL, and methods. http Status-codes and common MIME types
  • Week3: XML language, its main components, and rules. XML parsing and Document Object Model (DOM).
  • Week4: XML parser implementation using DOM library
  • Week5: Introduction to Netbeans & Java EE web application project using Maven
  • Week6: Simple Object Access Protocol (SOAP). Web Service Description Language (WSDL)
  • Week7: SOAP-WS implementation using JAX-WS. Consuming SOAP-WS (WS client) with the help of WSDL.
  • Week8: Service-Oriented Architecture (SOA) and the loosely-coupled concept
  • Week9: Representational State Transfer (REST), Resources, and methods
  • Week10: Types of parameters in RESTful and their use cases
  • Week11: Restful implementation using JAX-RS with the help of JAX-B
  • Week12: REST vs SOAP web services. Consuming RESTful web service (REST client) web and console apps
  • Week13: Authentication, authorization, and security
  • Week14: Request/response filters and message reader/writer interceptors and implementation

Networks Programming (ITSE405)
Mobile Applications Development (ITSE304)
Cryptographic Algorithms and Protocols (ITSE306)
Information Retrieval Systems (ITSE307)
Mobile Operating System (ITSE308)
Programming Paradigms (ITSE309)
Principles of Games Developments (ITSE401)
Multimedia Systems (ITSE404)
Cloud Computing (ITSE406)
Web Services (ITSE407)
Web Applications Development (ITSE408)
Modelling of Complex Systems (ITSE303)
Data Mining/Business Intelligence (ITSE302)
Social Networking (ITSE409)
Logic Programming (ITSE301)
Mathematics I (ITMM111)
Physics (ITPH111)
Problem solving Technic (ITGS113)
Intro to Information Technology (ITGS111)
General English1 (ITEL111)
Arabic language 1 (ITAR111)
Mathematics II (ITMM122)
Arabic language 2 (ITAR122)
General English2 (ITEL122)
Introduction to Programming (ITGS122)
System Analysis and Design (ITGS124)
logic Circuit Design (ITGS126)
Introduction to Networking (ITGS215)
Introduction to Statistics (ITST211)
Object Oriented Programmin (ITGS211)
Introduction to Software Engineering (ITGS213)
Discrete Structures (ITGS217)
Numerical analysis (ITGS219)
Introduction to Databases (ITGS228)
Data Structure (ITGS220)
Foundation of Information Systems (ITGS222)
Introduction to Internet Programming (ITGS226)
Computer Architucture & Organization (ITGS223)
Information Security (ITGS224)
Design and Analysis algorithms (ITGS301)
IT Project Management (ITGS303)
Software Requirements Analysis (ITSE311)
Advanced Databases (ITSE312)
Scientific Writing (ITGS304)
Modern Programming Language (ITSE322)
Software Construction (ITSE321)
Operating System (ITGS302)
Software Design and Architecture (ITSE411)
Advanced Internet Programming (ITSE412)
Human Computer Interaction (ITSE413)
Software Engineering Ethics (ITSE414)
Software Quality Assurance and Testing (ITSE421)
Software Reuse and Component-Based Software Engineering (CBSE) (ITSE422)
Visual Programing (ITSE423)
software design models (ITSE424)