Inhalt
Software Engineering for Web Services
Web services are business services offered via the web. These services are requested by clients using the http protocol. Typical web services are employed by E-commerce applications like online-shops or business-to-business applications with a Service Oriented software Architecture (SOA). This course teaches the concepts and implementation of web services as beeing the state-of-the-art for performing loosly-coupled business transactions over the internet. It practises the development of web services based on the platform independant Java technology and the established XML-based web services standards such as SOAP, WSDL and REST. Students will learn how to implement and deploy web services and web services clients in a modern integrated development environment.
Course Objectives
By the end of this course, students should
- understand the fundamental concepts and characteristics of web services,
- be familiar with the basic web service standards SOAP, WSDL and UDDI,
- undestand the architectual style of RESTful web services,
- be able to implement web services based on the standard Java-APIs for web services and XML processing,
- be able to deploy a web service by using an application server,
- be able to implement a web service which accesses a database,
- be able to implement and deploy simple web service clients,
- understand and be able to use integrated software development tools such as the NetBeans IDE.
The achievements will be tested with a written final exam.
Prerequisites
- familiarity with Object Oriented Programming
- some advances in Java programming
- networking fundamentals
- basic knowledge of software design patterns, algorithms and data structures
Course Materials
- Slides
- Introduction to Web Services
- Building Web Services and Applications with Groovy on Grails
- Basic Groovy
- JavaServer Pages Fundamentals
- Working with the Java DB Database
- XML and Java
- Route Transmission and Control - A Practical Web Service Example
- The Coffee Break Application - An Example for a Complex Web Service
- Securing a Web Service
- External Materials
- Java Platform, Enterprise Edition (Java EE) Technical Documentation
- JAX-RPC Evolves into Simpler, More Powerful JAX-WS 2.0
- Web Services Made Easy with JAX-WS 2.0
- Web Services, Part 1: SOAP vs. REST
- Web Services, Part 2: WSDL and WADL
- Article " Building Web Services the REST Way" by R. L. Costello
- Wikipedia Article about Database Transactions
- The Java EE 6 Tutorial
-
Your First Cup: An Introduction to the Java EE Platform
- Developer Documentation
Lab Exercises
- A barebone SOAP-Based Web Service
- A
barebone RESTful Web Service
- Preparing Presentations of the JAX-WS supporting Standards and APIs (assignment counts for final grade)
- Getting Started with JAX-WS Web Services - a NetBeans tutorial (web service with 3 kinds of clients)
- Building a Grails Application with a RESTful Web Service Interface (assignment counts for final grade)
- Create an E-mail Register as a Web Service (assignment counts for final grade)
- Example for consuming a SOAP-based web service from the
internet:
- Developing JAX-WS Web Service Clients - a NetBeans tutorial
- Example for consuming a popular RESTful web service:
- Creating a Graphical Client for Twitter - a NetBeans tutorial
- Getting Started with RESTful Web Services - a NetBeans tutorial
- XML Processing Examples for SAX and DOM
- Securing the E-mail Register
Software Downloads to Create a Development Environment
- Java Technology Home Page (choose the SDK Standard Edition SE)
- NetBeans IDE (choose the "all" download package)
- Groovy on Grails
Student Presentations
- Java SE 6 by Thrubhuvan Babu
- Java API for XML Web Services and Grails by Shiraz Gilani
- MTOM and Grails by Omid Givehchi
- SOAP and Grails by Dawn Sasikumar
- JAXR and Grails by Magda Scobota
- WSDL and Grails by Vijayaraj Mahendran
- XML and Grails by Fadi Yamani
- UDDI and Grails by Luo Yaoyao
- Grails by Jan Deppe
Final Exam
Literature
- G. Alonso, F. Casati, H. Kuno, V. Machiraju: Web Services - Concepts, Architectures and Applications. Springer-Verlag Berlin Heidelberg New York, 2004, ISBN 3-540-44008-9
- Jendrock, Evans, Gollapudi, Haase, Srivathsa: The Java EE 6
Tutorial - Basic Concepts, 4th edition. Oracle and Addison
Wesley, 2011, ISBN 0-137-08185-5
- Jose Sandoval: RESTful Java Web Services. Packt Publishing
Ltd., Birmingham, UK, 2009, ISBN 978-1-847196-46-0
- B. McLaughlin: Java & XML. O‘Reilly Media, Inc., Sebastopol, California, 2001, ISBN 0-596-00197-5
- Judd, Nusairat, Shingler: Beginning Groovy and Grails -From
Novice to Professional. Apress 2008, ISBN 978-1-4302-1046-7
Master Thesis Proposals
1) Two Master Thesis offerings in Cooperation with Daimer AG
Remote Daten- und Softwareupdates für Erprobungsfahrzeuge
Online-gestütztes Benutzerprofilmanagement im Fahrzeug
2) Web Service Based Instrumentation
Background to the Study
For automated test and measurement tasks, modern electronic test and measurement instruments (oscilloscopes, analyzers, generators, multimeters) communicate with computer systems via a LAN, USB, or GPIB interface using Standard Commands for Programmable Instruments (SCPI). The range of application programs and instrument drivers is dominated by platform dependent, proprietary software products (e.g. LabView by National Instruments). The aim of this master thesis is to bring object oriented, web enabled, platform independent software technology to this kind of applications.
The Research and Design Problems to Solve
The idea is, that each instrument offers its capabilities as a
RESTful Web service. Those Web services can then be orchestrated
to implement web-based Test and Measurement applications. - For
instance, a sweep generator and a spectrum analyzer may be
orchestrated to measure the frequency response of an amplifier.
Since there is a broad range of different equipment offering 3
kinds of computer interfaces, object oriented generalization
structures should be used to classify instruments, instrument
commands, and hardware interfaces. A concept of XML-based
instrument descriptions could be most advantageous and should be
explored. The implementation of a platform independent software
architecture most flexible and easy to use is the mayor research
and design problem to solve.
To prove the concept, RESTful web services for two instruments and a prototype Web application should be developed. The Web application should orchestrate the web services to measure and display the frequency response of the AC range of a digital Multimeter connected to a sweep generator. The application development time should be compared with a LabView™ based solution.
Research Questions
- How does the derived system compare to existing applications and technologies?
- What is the most appropriate way to abstract the hardware interfaces?
- What is the most appropriate way to abstract the instruments?
- What is the most appropriate way to classify the SCPI commands?
- What are the benefits of using RESTful Web services?
References
- Using XML and Java for Astronomical Instrument Control: http://www.adass.org/adass/proceedings/adass99/O8-03/
- SCPI-Spezifikation: www.ivifoundation.org/docs/SCPI-99.PDF
- The JPIB project: Java & IEEE488 integration:
http://jpib.sourceforge.net/
proposed on 31 January 2011, thesis supervisor: Prof. Dr.-Ing. T. Korte


