CS 548 / SOC 542

Engineering of Enterprise Software Systems

Sample Syllabus


Course Objectives

This course will cover the issues in designing and engineering large enterprise software systems. Such systems are typically distributed and requiring increasingly complex inter-enterprise as well as intra-enterprise coordination. Technologies such as Web Services provide platforms for building such systems, and service-oriented architecture is an emerging idiom for structuring such systems. Integration of enterprise applications, including legacy applications, is driving the adoption of SOA. This course will focus on analysis and design of enterprise software systems, with particular emphasis on service-oriented design. Some background in Web Services is also covered.


The course is largely vendor-neutral, with short reviews in one or two places of technological solutions. Instead the emphasis of the course is on “design patterns” that the working software engineer for enterprise systems can use to develop SOA for enterprise computing. The course introduces SOA and relates it to existing practices, including BPM and workflow. Case studies of the use of SOA are also presented. The course also delivers specific “best practices” that the software engineer can use for application, legacy and enterprise integration.


Either CS 549 Distributed Systems or SOC 641 Distributed Application Development are a useful companion course. In those courses, students use a programming environment such as JEE or WCF, and learn about algorithms for supporting reliable distributed applications. This course focuses on the proper design patterns for engineering the architecture of such applications.

Course Outcomes

  1. [Patterns] Explain the benefit of asynchronous versus synchronous interaction, and describe common design patterns for enterprise applications.  Explain service-oriented vs resource-oriented architectures.

  2. [XML] Use XML Schema for data modeling, and explain how to use tools such as XQuery, XSLT, SAX and DOM, and Web services, for XML-based applications.

  3. [Transactions] Explain the use of transactions for serializability and recoverability in distributed applications, and the use of business activities and sagas for long-lived applications.

  4. [Processes] Use UML interaction and activity diagrams, workflow and Petri nets, and BPEL to specify business processes.

  5. [OWL] Use RDFS and OWL to do semantic data modeling.

Texts

  1. [KBS] Required: Enterprise SOA: Service-Oriented Architecture Best Practices by Dirk Krafzig, Karl Banke and Dirk Slama. Prentice-Hall, 2005.
  2. [SH] Required: Service-Oriented Computing: Semantics, Processes, Agents by Munindar P. Singh and Michael N. Huhns. Prentice-Hall, 2005.
  3. [Han] Recommended: SOA Using Java Web Services by Mark Hansen. Prentice-Hall, 2007.

Grading

The breakdown of grades is as follows:

Course Schedule



Week Topics Covered
Reading
Assessment


Week 1 Introduction: Introduction to service oriented architecture.  Virtualization and cloud computing.  Virtual organizations.  Review of middleware.  RPC and RMI environments.  Message-oriented middleware and message brokers.  Web services.  The logic of application servers.
KBS 1, 2, 3
SH 1, 5



Week 2
Enterprise application integration: Synchronous and asynchronous messaging patterns for enterprise integration.  Enterprise service bus and service oriented architecture.  The importance of loose coupling.  Service discovery.
KBS 1, 2, 3
SH 1, 5



Week 3 Data modeling with XML Schemas: XML and the Web.  Namespaces.  Data modeling with XML schemas: Functional and object-oriented patterns.
XML Schema Primer
Journal #1


Week 4 Applications of XML: Data transformations using XSLT.  XML Databases. Database querying using XQuery.  Web services: SOAP and WSDL.  Interaction patterns and message exchange patterns.  Application-oriented networks.
SH 2
Han 2.1-2.3, 4

Assignment 1: XML Schema


Week 5 Architectures for Web Services: Service oriented architecture: basic services and process-oriented SOA.  REST and resource-oriented architecture.  Example APIs. 
KBS 4, 5, 6
SH 3



Week 6 Transactions: Distributed systems versus network applications.  Transactions and ACID properties.  Serializability and recoverability.  Pessimistic concurrency control.  Optimistic concurrency control.  Nested transactions.  Transactional queues.
KBS 8
SH 11
Assignment 2: XQuery and Web Services


Week 7 Service coordination:  Transaction processing monitors and commitment protocols.  SOA design patterns for distributed data integrity. Orchestration and choreography of services.  Examples taken from JEE and/or WCF.
SH 12 Midterm


Week 8 Service composition: Orchestration and choreography of Web services.  Model driven architecture (MDA).  Behavioral modeling in UML.  Interaction and collaboration.  Activity diagrams.  Business artifacts.
SH 13.2 Journal #2


Week 9 Workflow modeling: Introduction to workflow modeling.  WfMC reference model.  Basic Petri nets.  High level Petri nets.  Modeling workflow with Petri nets: workflow nets.  Resource classification and management.  Workflow patterns.
SH 13.3
Journal #3


Week 10 Business Process Modeling: Modeling Business Process Modeling Notation (BPMN).  Complex business processes and asynchronous interaction.  Fault handling.  Business activities and compensating actions.  Business Process Execution Languaage (BPEL) and its relation to BPMN.  BPEL4People and WS-HumanActivity.  Orchestration and choreography revisited.  Web Service Choreography Description Language.  
KBS 7
SH 13.4
Assignment 3: UML


Week 11 Semantic data modeling:  The vision of the Semantic Web.  Resource Description Framework (RDF).  Data modeling with RDF Schemas.  Semantic queries.
SH 6 Assignment 4: Workflow


Week 12 Ontologies: Ontologies and model-driven architecture.  Web ontology language (OWL).  Applications: Data integration and service discovery.

Assignment 5: BPEL and BPMN


Week 13 Service Design Patterns:  Principles of service design.  Basic service design patterns.  Process-oriented design patterns.
KBS 9.1, 10
SH 22, 23
Assignment 6: RDF and OWL

Class Format

  1. Lecture slides: I will be making slides available for the lectures at the start of each week. You should download and view these materials as soon as possible.
  2. Audio and video materials: I will be providing audio and video materials to supplement the lecture slides during the course of the term.  These will be available through iTunes University.
  3. Reading: There will be reading associated with each topic. It is highly recommended that you do the reading. You should view the slides as intended to draw out what is important in the reading and explain the key points of understanding. By doing the reading, you will get much better depth of understanding in the material than can be made available in the slides alone. Readings will be from the texts and from other on-line materials as the term progresses.
  4. Exams: There will two exams, a midterm exam and a final exam.
  5. Homework: There will be several written homework assignments.
  6. Journals: You should maintain a journal relevant to the course, with three entries in total. For each entry, pick some topic relevant to the course and do some on-line research concerning that topic. Write up the result of your research and provide it, with your web links, as your journal entry. You will be required to provide journal entries during the course of the term.

Ethical Conduct

Cheating during in-class tests or take-home examinations or homework is, of course, illegal and immoral. A Graduate Academic Evaluation Board exists to investigate academic improprieties, conduct hearings, and determine any necessary actions. The term "academic impropriety" is meant to cinlude, but is not limited to, cheating on homework, during in-class or take-home examinations, and plagiarism.

Consequences of academic impropriety are severe, ranging from receiving an "F" in a course, to a warning from the Dean of the Graduate School, which becomes a part of the permanent student record, to expulsion.


The Graduate Student Handbook, Academic Year 2006-2007, Stevens Institute of Technology, page 10