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.
[Patterns] Explain the benefit of asynchronous versus synchronous interaction, and describe common design patterns for enterprise applications. Explain service-oriented vs resource-oriented architectures.
[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.
[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.
[Processes] Use UML interaction and activity diagrams, workflow and Petri nets, and BPEL to specify business processes.
[OWL] Use RDFS and OWL to do semantic data modeling.
| 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 |
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