Service-Oriented Architectures and Web Services: Course Tutorial and Lab Notes
This document presents a number of quick-step instructions to get started on writing mini-service-oriented web services-based applications using OpenESB 2.31, Tomcat 6, GlassFish 2.x/3.0.1 with BPEL support, and Java 1.6+ primarily in Scientific Linux 6.6 with user quota restrictions. While the tutorial notes are oriented towards the students taking the SOEN487 on service-oriented architectures (SOA) at Computer Science and Software Engineering (CSE) Department, Faculty of Engineering and Computer Science (ENCS), other may find some of it useful as well outside of CSE or Concordia. The notes are compiled mostly based on the students’ needs and feedback.
💡 Research Summary
The paper presents a comprehensive, step‑by‑step tutorial designed to help students and practitioners quickly build and deploy service‑oriented web applications using a specific open‑source stack. The target environment is Scientific Linux 6.6, a distribution commonly used in university labs, and the tutorial assumes limited user quota and restricted system resources. The core technologies covered are OpenESB 2.31 (the integration and BPEL engine), Apache Tomcat 6 (lightweight servlet container for hosting OpenESB services), GlassFish 2.x/3.0.1 (full‑stack Java EE server providing BPEL execution support), and Java 1.6+ as the programming language.
The document begins with a pedagogical rationale: the SOEN487 course at Concordia’s Faculty of Engineering and Computer Science requires students to experience the entire lifecycle of a service‑oriented architecture, from service contract definition to deployment and testing. The authors then list all required software, explain version compatibility, and provide a concise checklist for pre‑installation tasks such as creating a dedicated user account, configuring disk quotas, disabling SELinux, and opening the necessary TCP ports (8080 for Tomcat, 8081 for GlassFish, etc.).
Installation instructions are presented in a logical order. First, the appropriate JDK is installed and environment variables (JAVA_HOME, PATH) are set. Next, OpenESB is unpacked, OPENSEB_HOME is defined, and the Eclipse‑based IDE is launched. The tutorial walks the reader through adding a “Server” entry in the OpenESB console, selecting Tomcat 6 as the host, and configuring the Service Engine. It then details the deployment of the BPEL plug‑in into GlassFish, including modifications to domain.xml for JNDI resources and data source definitions. Special attention is given to handling quota restrictions: log directories and temporary files are redirected to user‑writable locations, and the tutorial explains how to adjust OpenESB’s internal configuration to avoid writing outside the allotted space.
Two concrete lab exercises illustrate the concepts. The first “HelloWorld” service demonstrates a simple SOAP endpoint, guiding students through WSDL generation, JAXB data binding, and a basic client test using curl or SOAP UI. The second “Calculator” service introduces a more complex BPEL process that orchestrates multiple operations, showing how to model the workflow in the BPEL Designer, package the process as a JAR, and deploy it to GlassFish. After deployment, students verify the service by invoking the endpoint and inspecting the SOAP response.
A dedicated troubleshooting chapter categorises common failures: mismatched JDK versions (resulting in “Unsupported major.minor version” errors), port conflicts (“Address already in use”), BPEL compilation problems (“Invalid BPEL process”), and permission issues caused by quota limits. For each case, the paper supplies concrete commands to adjust the environment, change ports, or rewrite the BPEL file. It also advises raising the logging level to DEBUG, locating the relevant catalina.out and server.log files, and interpreting the stack traces.
From an instructional perspective, the authors propose an automated grading script that invokes each student’s service, checks the SOAP payload, and records pass/fail results. They also suggest containerising the entire stack with Docker to guarantee a uniform environment across different lab machines, and they outline a migration path toward newer technologies such as OpenESB 3.x, Java EE 7, and RESTful microservices.
In summary, the tutorial serves as a practical, resource‑aware guide that enables learners to experience the full SOA development pipeline—service contract design, implementation, BPEL orchestration, deployment on Tomcat/GlassFish, and systematic testing—while navigating real‑world constraints such as limited disk quotas and version incompatibilities. It is valuable not only for the SOEN487 class but also for any developer seeking a hands‑on introduction to open‑source SOA tooling in a constrained Linux environment.
Comments & Academic Discussion
Loading comments...
Leave a Comment