Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
1
MSE Portfolio Presentation 1
Doug Smith
November 13, 2008
http://people.cis.ksu.edu/~dougs/Site/Welcome.html
2
2
Overview
► High Level Goals
● Satisfy the software engineering portfolio requirements of the MSE program.
● Solve a technical problem at work while doing so.
► Technical Problem
● Scalable replicated metadata caching for an enterprise scale workflow system.
► Approach
● Distill the target system to a smaller representation of the essential transactions
● Use the MSE Portfolio software development life-cycle to design and build the pared-down system, using the same architectural patterns and technology stack as the target system.
● Produce a scalable replicated caching solution as part of the MSE project that can be applied to the target system.
3
3
What is workflow metadata, and why cache it?
►Workflow metadata describes process execution
● Process steps, data, presentation, routing rules, etc.
►Good candidate for caching
● Metadata is rarely updated in production environment
● Metadata is constantly read
� Data validation, rule evaluation, etc.
►Much easier and cheaper to scale in the application tier
● Cheaper compute cycles in the application tier, scalable via adding boxes to load balanced server pool
● Persistence tier scalability is expensive and complex
4
4
What is enterprise scale?
► High volumes
● 1050 different processes
● 600,000 process instances active at any given time
● 20% annual growth in the number of active process in a year
● 17% annual growth in the number of process instances in a year (and associated transactions)
► Business critical
● Service level agreements specify less than one hour unscheduled outage per year
5
5
Project Technology Stack
6
6
Project Physical Architecture
7
7
Project Functional Scope
►Design and build a process execution engine
● Engine can execute simple processes based on a
subset of BPMN
►Engine provides two types of services
● Process definition services for creating the metadata
the engine uses at process execution
● Process execution services that use the metadata to
control the execution of process instances
8
8
Project Quality Attributes
► QA1 - The solution may not degrade average response time or throughput for transactions involving cached data.
► QA2 - Functional correctness must be maintained when caching is enabled.
► QA3 - Application availability must not be compromised by the caching solution. The solution must provide the ability to survive failure of cluster members without compromising application availability or system correctness.
► QA4 - The solution shall provide a role-based security model to constrain access to the functions and data associated with the system based on roles.
► QA5 – the solution shall provide basic authentication and identity management, where users are required to authenticate prior to accessing the system, and user identities associated with one or more roles.
► QA6 – the solution must be scalable to 16 JVMs evenly distributed among 4 physically distinct servers, and reduces database requests for workflow metadata by at least 50%.
► QA7 - data access must be consistent across all JVMs serving application requests. It is unacceptable for results produced by the application to differ based on the server or JVM servicing the application request. In other words the view of the data across all cluster members must be consistent.
► QA8 - the solution must provide the ability to add and remove cluster members as needed without causing errors.
9
9
Use Cases – Process Definition
10
10
Use Cases – Process Execution
11
11
Project Plan – Work Breakdown Structure
mse_project [0]
[dur = 195 days]
Elaboration [2]
[dur = 63 days]
Architecture
Design [2.4]
[dur = 10 days]
Executable
Architecture
Prototype [2.7]
[dur = 20 days]
Formal
Requirements
Specification [2.3]
[dur = 10 days]
Phase II Stakeholder
Review [2.10]
[dur = 5 days]
Prepare
Presentation II [2.9]
[dur = 4 days]
Presentation I
Action Items [2.1]
[dur = 2 days]
Presentation II
[2.11]
[dur = 0 days]
Project Plan II
[2.8]
[dur = 3 days]
Technical
Inspection [2.5]
[dur = 1 day]
Test Plan [2.6]
[dur = 5 days]
Vision Document
Updates [2.2]
[dur = 3 days]
Inception [1]
[dur = 65 days]
Executable
Prototype [1.2]
[dur = 38 days]
Phase I
Stakeholder Review
[1.7]
[dur = 5 days]
Prepare
Presentation I [1.6]
[dur = 2 days]
Presentation I [1.8]
[dur = 0 days]
Project Plan I
[1.3]
[dur = 3 days]
Project WebSite
[1.5]
[dur = 4 days]
SQA Plan [1.4]
[dur = 3 days]
Vision Document
[1.1]
[dur = 10 days]
Production [3]
[dur = 67 days]
Assessment
Evaluation [3.5]
[dur = 3 days]
Component
Design [3.2]
[dur = 15 days]
Formal Technical
Inspection Letters
[3.9]
[dur = 0 days]
Prepare Presentation
III [3.10]
[dur = 2 days]
Presentation II
Action Items [3.1]
[dur = 2 days]
Presentation III
Stakeholder Review
[3.11]
[dur = 5 days]
Presentation III
[3.12]
[dur = 0 days]
Project Evaluation
[3.7]
[dur = 5 days]
References [3.8]
[dur = 2 days]
Source Code [3.3]
[dur = 15 days]
System
Assessment [3.4]
[dur = 15 days]
User Manual [3.6]
[dur = 3 days]
12
12
Project Plan – Elaboration Phase
13
13
Cost Estimate
► COCOMO II Selected
● Allows refinement as project proceeds
● Effort calculated at 1292 hours; project plan effort works out to 555 hours assuming
15 hours/week.
● Conclusion: variance explain by position in the ‘Cone of Uncertainty’ (or the student
is doomed).
Figure from Software Estimation: Demystifying the Black Art, Steve McConnell, Microsoft Press, 2006.
14
14
SQA Plan Highlights
► Project quality must satisfy the project committee.
► Documentation set defined by MSE portfolio requirements.
► Standards
● Documentation standards – MSE Portfolio
● IEEE Standard for Software Test Documentation (IEEE Std 829-1998)
● IEEE Standard for Software Quality Assurance Plans (IEEE Std 730-1998)
► Metrics
● Source lines of code produced by the project
● Time spent during the project
► Reviews and Audits
● MSE Portfolio Presentations
● Student Technical Inspections
► Testing
● Unit tests using JUnit framework, Integration tests using SoapUI, Scale tests using SoapUI or JMeter (TBD)
● Tests results will be captured and published on the project web site
15
15
Demonstration
►Goal
● Demonstrate the project is technically feasible
● Demonstrate the student is capable of doing the work
►Technical success factors
● Implement web services using Hibernate with JBoss Cache integrated as a second level cache provider
● Show caching and replication of data between multiple JVMs
16
16
Action Item - Summarize