Title: PennDOT ATX Project ATAM
1PennDOT ATX Project ATAM
- Team Stalagmite
- Dan Abramovich
- Jeff Ditillo
- Andrew Guletsky
- Oksana Schubert
- Alexey Stolpovskikh
- Dehua Zhang
2Agenda
- Introduction
- Problem space Quality attributes Utility tree
- Architectural views and discussion
- Deployment and logical views
- Run-time views for major system parts
- Transaction processing
- JBoss-based redundancy
- Security
- Administration
- Reports
- Prototypes discussion
- Views are preceded by key decisions/facts to
guide discussion
3Problem Space
- Problem description
- New solution for PennDOT on-line vehicle title
and registration services - Major stakeholders
- PennDOT
- ATX (our clients)
- Participating companies
- Business drivers
- Improve PennDOTs business processes
- Allow ATX to become PennDOTs Business Partner
4Quality Attributes
- Security
- Allow good guys to get in
- Keep bad guys out
- Put blinders on clients to only see allowed
information - Support user roles to limit functionality
- Availability
- Failover
- Recover from errors
- Modifiability
- Extend the system easily
- Update transaction descriptions, op. codes and
fees without code changes - Performance
- Provide reasonable user experience for many
concurrent clients
5Utility Tree
6Deployment ViewsKey decisions/facts
- Requires minimum 2 computers
- AppServer and DB servers combined
- Requires at least 4 computes for high
availability/performance - Replicated DB exposes one virtual IP address
- Gatekeeper exposes one IP address
- Replication and redundancy transparent to ATX
7Deployment View
8High Availability Deployment View
9Logical ViewKey decisions/facts
- Separate Admin and Client interfaces
- Flexible location of Database layer
- Either co-located with AppServer or separate
- Most data storage managed by AppServer container
- Secure channel between client and server
- Role-based authentication and authorization
- Server blade requirements
- Each needs WebSphere MQ client
- Full state replication between blades
- Requirement for replicated file storage (MSCS)
10Logical View
11Run-time View Transaction Processing Key
decisions/facts
- IN and OUT queues hosted by PennDOT
- Transaction descriptions promote Modifiability
- Remedy risk of not having Gatekeeper access
- Make adding new transactions easy
- Clients manage transaction boundaries
- Insure that only successful transactions are
acknowledges to PennDOT - JMS and MDBs used for GK communication
12Run-time View Transaction Processing
Transactions e-v-e-r-y-w-h-e-r-e
- Problems solved by transaction description
- AAMVA record layout layout, field dependency,
and format - Database storage common and unique parts
- Transaction control flow
- Client sends request to PennDOT (via ATX)
- ATX receives asynchronous reply
- Stores reply in DB record
- Client polls for result and discovers DB record
- Client acknowledges receipt
- DB record deleted
- Message committed on Gatekeepers OUT queue
13Run-time View Transaction Processing
14Run-time View RedundancyKey decisions/facts
- Achieves redundancy via client-hosted proxy
- Proxy is supplied by JBoss and free for us
- Proxy is aware of all server blades
- Proxy will failover in case of timeouts
- State replicated between servers in real time
(with very small latency)
15Run-time View Redundancy
16Run-time View SecurityKey decisions/facts
- Container provides security/authentication
infrastructure - Supports security plug-ins
- Requires deployment text files
- Allows for custom security proxies to validate
parameters - Covers both client and admin interfaces
17Run-time View Security
18Run-time View AdministrationKey decisions/facts
- Manages 4 functional areas
- Accounts
- Add/delete users add/delete locations
assign/modify user privileges - Transaction descriptions
- If/when changed by PennDOT
- Fees
- Set/update PCCS discounts, PennDOT charges
- Reports
- ltMore details latergt
19Run-time View Administration
20Run-time View ReportingKey decisions/facts
- Report solution is implemented by JasperReports
(free COTS) - Report viewers hosted by admin interface and
client - Supports custom datasources to massage
transaction records - Scheduler is implemented by COTS
- Final choice TBD
21Run-time View Reporting
22Prototypes Update
- Security
- SSL, login module and custom security proxy ()
- Entity bean performance with large records
- No performance bottlenecks ()
- Transactional (lazy) replication on DB (-)
- JasperReports
- Support for datasources ()
- Difficult to create report templates (-)
- Present trade-off to the client (other candidate
commercial Crystal Reports)
23Prototypes Update (contd)
- Gatekeeper simulator
- Requires update with AAMVA records (?)
- Miniature transaction processor
- JMS and MDB to communicate with WebSphere MQ ()
- Performance questions under stress (-)
- Entity bean primary key auto-increment issue
- JBoss 3.2.0 native support ()
- Need JDBC 3.x compatible driver (-)
- Potentially switch from MS SQL to MySQL
24QA