• Like
Creating an RAD Authoratative Data Environment
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Creating an RAD Authoratative Data Environment

  • 523 views
Published

Sharing data in agencies can be a burden, with users placing data on numerous desktop packages, the idea of sharing becomes impossible. However, new RAD tools allow quick web applications to be …

Sharing data in agencies can be a burden, with users placing data on numerous desktop packages, the idea of sharing becomes impossible. However, new RAD tools allow quick web applications to be developed to replace the Excel, MSAcces, and Filemaker data stores, with real , controlled authoritative database integration.
This presentation defines both the problem space, and the proposed solution.
See www.data4USA.com for more information

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
523
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
7
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Data Sharing Architecture 1 Art Nicewick
  • 2. 3/6/2009 12:46:08 PM 2
  • 3. Origins of data sharing architecture Initiative (November 2007) I need a database, to share education programs and I have a MAC Greg, can Art help Kim? Art, help Kim?, Hmm, Filemaker is not SQL Compliant, and MSAccess does not run on the MAC, We need something better. O.K., What should we do? 3
  • 4. 3 Areas of Data Integration• Collect Data Data – Bring data in to Collection Sharing Dessemination structured format• Share IRIS TMS Raisers Edge $ Gallery Data – DefineReference IRIMS COE FMS Authoritative Data AI $ Vista• Disseminate Empl Text 5 4 3 2 1 – Make data Bar graph available to users Gallery Data 4
  • 5. Questions this presentation tries to answer? Data • What problem is being addressed by a web database Collection • When should Filemaker or MSAccess be used to address this problem Raisers IRIS TMS Edge • When should Metastorm be used to address this COE FMS IRIMS ProblemAI $ Vista • Why was PHPRunner selected for the web database Empl front end • How is the PHPRunner architecture to fullfull the Gallery requirement that there will be little to none application Data code in the implementation (allowing allowing it to be easily ported to a new application (DCLPA used as example). 5
  • 6. Types of Gallery Data sharing Word Docs One user at a time, not Excel shared MSAccess Isolated non-integrated database (Stand- Filemaker alone) shared between a handful of users, Highly customized Departmental Systems integrated to authoritative source, Authoritative [ Missing Gap] Need to have customized departmentusers across departments, shared with many systems Data Systems customizable Workflow (IRIS) that reference authoritative dataRaisers Edge Many users shared, expensive, little- TMS customization Internet Enterprise-wide and beyond. 6 Intranet
  • 7. Database ?• The gallery has two definitions of a database. – MSAccessFilemaker (Single Platform) – SQL ServerPostgress (Multiple Platform) 7
  • 8. Pluses and Minus of COTs• Cots are very inexpensive solution.. However: – They frequently do not have everything you need, and you cannot easily modifyExtend them – They will not follow any naming standards based on your organization – The governance of the codelogic and schema is outside of the clients control (Although the Actual data is in their control) – They cannot “Alone” be used to collect the Gallery’s Data needs – They need to be extended! 8
  • 9. Documentation (UDB) Project to Define when and how to define different application architectures (Nov, 2007)Project Folder• ngagrouptTDPProjectsUDB - User Database DeploymentDocuments – Proposed End User Data Architecture Implementations (UDB) 20071129a.doc – Filemaker and SQL Compliant Database(UDB) 20080109c.doc – User Database Prototype and Alpha Five(UDB).doc – End User Database Deployments Summary (UDB) 20071128a.doc 9
  • 10. Fate of UDB projectThere was concern at the time, that the UDB approach would cause“End Users” to be involved in the development process and that TDPwould be unable to control their development demands.The contrarian position was that TDP would still be the primarydevelopers for any enterprise component of the architecture (e.g. DataModel) and the proposed solution would eliminate the current practiceof users “independently” developing on systems that could not beshared, secured or extended to the enterprise (e.g. Filemaker,MSAccess, …)These considerations were never resolved and the project wascancelled in February of 2008.However, the issues still exist, and the proposed architecture is stillworth reviewing. 10
  • 11. What is a Database? (Two Views) Technologist Programmer Business Analysts End User understanding of the term understanding of the term IDE + Presentation + Integrated Business Rules + Data Storage Development Environment (IDE) “Tools” An all-in-one System where I Presentation “Front End” Can save data (e.g. MSAccess) A part of a Single Product much larger Business System, used to View Application Store and share “Business Rules” Data (e.g. MSSQL) Multi-Product010010101001010101010101010101 Database Technologist View What is a (Storage) Database?010101010101010100010010010101 11
  • 12. Examples of “Single” verses “Multi” software applicationsApplication Front End Business Rules Database Storage Development Presentation Application EnvironmentSingle product SystemsGallery Archives DB File MakerRequest Management System File MakerPurchase Card MS AccessExcel ExcelMulti-Product SystemsAsset Inventory MS Access MSSQL MS AccessEmployee Database MS Access MSSQL MS AccessPortfolio Extensis (Service) Web Portfolio MSSQL VendorInside.Nga.Gov Web MasonPerlCGI PostgresSQL EclipseIRIS Web Metastorm MSSQL MetastormFMS Java Applet J2EE Oracle OracleFormsTMS Visual Basic Visual Basic MSSQL Visual BasicRaisers Edge Visual Basic Visual Basic MSSQL Visual BasicPaper Conservation Web PHP MSSQL PHPRunner 12
  • 13. Where is the Data• Single version of Truth 13
  • 14. Worst Case • Data Everywhere, No single version of truth • How is correct? Exhibition Code: 23 = ZZ Exhibition Code: 23 = XX Exhibition Code : 21 = AA Exhibition Code: 23 = XX Exhibition Code: 23 = XX Exhibition Code: 23 = XXExhibition Code : 23 = YY Exhibition Code : 21 = AA Exhibition Code: 21 = AA Exhibition Code: 21 = ZZ 14
  • 15. Data Duplication (or Silos) Who is the authoritative source ? I have the Latest Phone Numbers I have an I have the I need an old Phone # latest phone Arts in my file numbers Phone # A X8 rt 00 0 A Art X6 rt 6 54 X654 A X8 rt 5 000Keeping local copies of data caused obvious problems. ManualSynchronization process are difficult to maintain. 15
  • 16. Goal• Single version of truth• Defined Source of Authoritative data Exhibition Code: 23 = XX 16
  • 17. Using Authoritative Source Authoritative Source I have theI need an latest phone Arts numbers Phone # Official Phone BookUsing a single source for the data, provides all the systems with the latest upto data information 17
  • 18. Not one answer !• Different users• Different needs 18
  • 19. Option 4. Five Strategies Option 3. Shared Shared Enterprise Enterprise Data (Fat Client) Data OPTION 3 Within Single Department Authoritative Data (Thin Client) Option 5. File Maker Application 1 Custom X (Thin Temp Storage or Local Copy Storage Only Client) Conversion PHP No Data Storage PHP Applciation Dept COption 1. OPTION 4 OPTION 1 OPTION 2Single Single User Within Single Department Option 2. Non-Authoritative Data Cross Departments Non-Authoratative Authoritative Data Read OnlyUser Access Shared File Access Maker Department File Maker Data Dept A Dept B Application 2 ` (Fat Client) 19
  • 20. Attributes Not Displayed in Slides• Conditions for selecting each deployment• User responsibility in each deployment• Number of users estimates for each deployment• TDP Role in each deployment• ... Proposed End User Data Architecture Implementations (UDB) 20071129a.doc 20
  • 21. Option 1 – Single User • A single user works alone, disconnected from the rest of the world. With there own version of the data • This is another example of a “Single User” application. Filemaker, Excel and Access also fit into this category. • A minor improvement, is to allow this “single user” the ability to linked to existing ‘authoritative source’. This is mostly a “Reporting: feature. For example, Greg and Alan Newman use this method for reporting Authorization One Time Load Optional•Susan’s Pull from IA to Excel•TMS Crystal Reports 21•Raisers Edge Queries
  • 22. Option 2 – Multi-User Departmental Application for Departmental-only Data • This is a multiple user application. The data in this situation is not ‘authoritative’ to the Gallery and therefore is considered a ‘copy’ of some other data stored as a Gallery resource. This Architecture assume simple business rules, and little to no workflow. Independent User User / User Developer AFM AFM AFM•Gallery Filemaker Archives 22•AFM Access database
  • 23. Option 2 – Multi-User Departmental Application for Departmental-only Data • This is a multiple user application. The data in this Access Databases is not ‘authoritative’ to the Gallery and therefore is considered a ‘copy’ of some other data stored as a Gallery resource. However, the accessed “read-only’ Central data is Authoratative. This Architecture assume simple business rules, and little to no workflow. Linked to Authoritative Source Authorization Read Only (RO) User (RO) (RO) User / User Developer•Old patch reporting Model 23
  • 24. Option 3 – Multi-User Departmental Application for Gallery-Wide Data This architecture attempts to blend the “ease of use” of a “Single product System” with the centralized control of the “Enterprise Database”. This Architecture assumes simple business rules, and little to no workflow. Web XDO Data User Consistency Verfication Authorization User Authoritative Source Other .. IRIMS RE IRIS DAC TMS AFM End User Developer•Asset Inventory 24•Scott Steven Employee Database
  • 25. Option 4 - Multi-User Gallery-Wide Application for Gallery-Wide Data This architecture extends the previous architecture to limit the impact of “Client Maintenance” by using a thin client Web Based Application.. User Consistency Checking XDO Authorization User Authoritative User Source Other .. IRIMS WEB RE IRIS DAC TMS User TDP DPUB User Convert Deploy to To Server / PHP Generated End User from User Developer Data Model•DCLPA Data PHP•VDMS Model Runner 25 DM Overrides•Patch Reporting
  • 26. Option 5 - Strategic Applications Consistency User Checking XDO Authorization User Authoritative Source Other .. IRIMS RE IRIS User DAC TMS WEB TMSWEB Other .. TRAIN iHeat User DPUB User Developer Complex Web Services , User Native AJAX ,•IRIS Code Complex 26•Art Extract TDP application Rules
  • 27. Metastorm• Not around when UDB study was developed (Dec 2007)• Today, I would define it as a hybrid of Complex Business Rules and Generated application 27
  • 28. Architecture Web Browser `PHPRunner Application Server (Web Server) SQL Server Database 28
  • 29. What kind of tool do we need to do this ?Required:- Must be easy to build – Low Maintenance- Must use database standards- Must have Security- Must have adequate performanceDesired:- We did not need to install it (e.g. Web based)- Was reasonably priced- Will be easy to maintain in the future (Standards based)- We should be able to easily replace it ! 29
  • 30. A few options• MSAccess• Filemaker• PHPRunner• MetaStorm• Custom Web Develop? (Mason,Perl,CGI)• Other? 30
  • 31. MSAccess (November 2007) I need a database, to share education programs and I have a MAC Will you change to a PC, then we’ll give you Microsoft Access In that case, “Nevermind” Hmm, We really cannot ignore the requirement for MACs. For that matter,expense to install is so high, a web solutionwould save the gallery the most money.. The Web should be a requirement. 31
  • 32. Filemaker !Required:- Must be easy to build – Low Maintenance- Must use database standards- Must have Security- Must have adequate performanceDesired:- We did not need to install it (e.g. Web based)- Was reasonably priced- Will be easy to maintain in the future (Standards based) 32
  • 33. Filemaker !Required:- Must be easy to build – Low Maintenance- Must use database standards- Must have Security- Must have adequate performance How about File Maker to a SQL Database … Isnt that a feature a feature of Filemaker server?Desired: that called ESS (External Data Sources)? Isnt- We did not need to install it (e.g. Web based)- Was reasonably priced- Will be easy to maintain in the future (Standards based) 33
  • 34. Problems With Filemaker• “Filemaker External SQL Sources (ESS) In Depth” (Filemaker publication) – “Value lists cannot be based on data in an ESS table” – “in a FileMaker Pro context, date-only or time-only data entry will not be valid” – ESS data in FileMaker Pro has the potential to be slightly out of date – Binary data is not supported by ESS at present – Scrolling operations … can be problematic in large record sets. . . . and will perform fairly slowl – Sort not performed in database – The ESS feature set is primarily designed to allow FileMaker Pro solutions to integrate data from SQL-based solutions. ESS is not primarily intended as a means to scale solutions beyond the bounds of a purely FileMaker Pro based solution. – See: Filemaker and SQL Compliant Database(UDB) 20080109c.doc 34
  • 35. Problems With Filemaker• “Filemaker External SQL Sources (ESS) In Depth” (Filemaker publication) – “Value lists cannot be based on data in an ESS table” “Value lists cannot be based on data in an ESS table” – “in a FileMaker Pro context, date-only or time-only data entry will not be valid” Means – ESS data in FileMaker Pro has the potential to be slightly out of date – Binary data is not supported by ESS at present No field list validation (Dropdown List) from – Scrolling operations … can be problematic in large record sets. . . . and will perform fairly slowl non-Filemaker authoritative sources! – Sort not performed in database – The ESS feature set is primarily designed to termsFileMaker Pro solutions to Or in simple allow integrate data from SQL-based solutions. ESS is not primarily intended as a means to scale solutions beyond the bounds of a purely FileMaker Pro based solution. “Can’t validate against to authoritative data” – See: Filemaker and SQL Compliant Database(UDB) 20080109c.doc 35
  • 36. Filemaker (My Last Straw)From: John Blakeley [mailto:john@fbsl.co.nz]Sent: Tue 1/8/08 2:27 PMTo: Nicewick, ArthurSubject: RE: your post on Filemaker about ODBC conversion errorsHi ArthurThanks and a happy New Year to you!We gave up on the idea of pulling data from Filemaker using it as a linked server. In theend we scheduled a script to run that exported data on an hourly basis. SQL would thenimport it. We had to use MS scheduled tasks to open a FM file that would autostart anexport script as FM server schedule cannot run scripts that arent web compatible.Nothing is ever simple in Filemaker! One day...CheersJohn BlakeleyJohn Blakeley Mobile: + 64 21 948037Email: john@fbsl.co.nzSkype: john.blakeley BayviewNorth ShoreNew Zealand 36
  • 37. Filemaker (My Last Straw)From: John Blakeley [mailto:john@fbsl.co.nz]Sent: Tue 1/8/08 2:27 PMTo: Nicewick, ArthurSubject: RE: your post on Filemaker about ODBC conversion errorsHi ArthurThanks and a happy New Year to you!We gave up on the idea of pulling data from Filemaker using it as a linked server. In theend we scheduled a script to run that exported data on an hourly basis. SQL would thenimport it. We had to use MS scheduled tasks to open a FM file that would autostart anexport script as FM server schedule cannot run scripts that arent web compatible.Nothing is ever simple in Filemaker! One day...Cheers “We gave up on the idea of pulling dataJohn BlakeleyJohn from Filemaker using it as a linked server” Blakeley Mobile: + 64 21 948037Email: john@fbsl.co.nzSkype: john.blakeleyBayviewNorth ShoreNew Zealand 37
  • 38. Not Filemaker – Then what? 38
  • 39. Prototyped Typical “Types” of Assets , with issue numbers mapped“Lookup” provides means to search for Issuance 39
  • 40. Rated the best Easy to Learn Use Can be extended Can integrate with Cots Packages “Open” Architecture Java Server Ruby on Rails Alpha Cold .NetPHPRunner Faces Active Scaffold Five Fusion Netbeans 40
  • 41. PHPRunnerRequired:- Must be easy to build – Low Maintenance Very little coding- Must use database standards Yes- Must have Security Pretty good, but we need to make it better- Must have adequate performance Looks OK, Need testingDesired:- We did not need to install it (e.g. Web based) Yes- Was reasonably priced Yes- Will be easy to maintain in the future (Standards based) Standard Industry Language (PHP) Framework not widespread as we would 41 like
  • 42. es PHPRunner Code Generation e ang Ch reak od n’t b des C o a W upgr by Data DB Definitions Rules Security / s n ge Navigation C ha ak de ’t bre desCo on ra Framework Relationship W upg Custom by Framework Code Tables Web Relationships Generator Forms Framework Upgra Reve des will rt cha ge Codes nges chan by Code break Overrides t” “Migh rades. Codes upg t em Overrides , B ut t he sy s Access Routine y to will tr it.. Screen nt preve Customizations 42 Templates
  • 43. es PHPRunner Code Generation e ang Ch reak od n’t b des C o a W upgr by Data DB Definitions Rules Security / s n ge Navigation C ha ak de ’t bre desCo on ra Framework Relationship W upg Custom by Framework Code Tables Web Relationships Generator Forms Framework Upgra Reve des will rt cha ge Codes nges chan by Code break Overrides t” “Migh rades. Codes upg t em Overrides , B ut t he sy s Access Routine y to will tr it.. Screen nt preve Customizations 43 Templates
  • 44. UI Templates Layouts 44
  • 45. UI Styles 45
  • 46. UI Templates Layouts 46
  • 47. Field Name and Column Order 47
  • 48. Charts 48
  • 49. Reports 49
  • 50. Searchable (Advanced and Simple) Reports, Charts, Tables, … 50
  • 51. End User Reports Creation (Web Based)• Very Simple• Version 1 is very limited• Tightly integrated with Security• Version 2 expected in the summer 51
  • 52. How about Metastorm• Workflow Focus• Excellent integration with in-box process• Ideal for “Approval” Processing• Ideal for “Request” processing• Somewhat RAD• No focus Data model• No focus of Data Business Rules• “Probably” ported from non-relational 52
  • 53. Web Database vs Workflow• PHPRunner (Web Database) has the user create the a normalized database (Modeling Business Rules) , then “Semi- Automatically” creates the User Interface• Metastorm (Workflow) has the user create a workflow , and then “Semi- Automatically” creates a “deNormalized” (Technical) database behind it 53
  • 54. Metastorm vs Web Database• PHPRunner is “Only” code development, The tools is run on “ApachePHP”. Therefore there is no license issues for users (unlimited users) – PHPRunner toolkit $300 per developer – Unlimited users – No Additional cost• Metastorm provides both a “Toolkit” and a “Runtime” environment. The runtime environment cost – User License $149.88 per named user (not concurrent) – Work Workgroup Server, restricted to a maximum of 250 named users$17,984.89 per server – The Gallery has purchased 8 developer licenses at ~$2500 each (Need to verify) – Note: I current do not know many users exist in metastorm, We may be required to purchase more licenses. However, once purchased, a single user license will work with unlimited Workflow task (However, we may need addition servers) 54
  • 55. Replacing Filemaker and MSAccess• PHPRunner is a Database driven tool and is therefore dependent on a normalized data model. Filemaker and MSAccess are also database driven tools that are also dependent on normalized data models. Therefore, PHPRunner should be ideal for database application migration of systems like “Gallery Archives”.• Metastorm is “Workflow” focused and does not allow the user to define the database. For pure data storage, it is not a good application. However, For workflow, it is very good. 55
  • 56. PHPRunner Normalized Data Model Simple CRUD User Interface- Clean Data Type - Basic Menu- Logical Business Modeled Data Model - No “Workflow” or “Inbox”- Data enforced Business Rules - Light integration with Email- Easy to report - Decent report generation Header (e.g. Auto Name, Address ) Generated Admin Child1 Child3 Reference Child2 Tables(e.g. Child1 Kids (Roles ) (e.g.Names) Kids (e.g. Cars) Names) 56
  • 57. Metastorm Complex Workflow DeNormalized Data Model- Great “Inbox” - Data not always Types (Integers are character )- “Approvals” out of box - Single Logical Table storing parents and children- Logical Diagramming of Workflow - “Temp” Screen data stored in Database- Tight integration with Email - Fields defined but not used- “Bad” report generation - Admin screen cannot be linked to data model Keys Header (e.g. Child1 Child2 Child3 Temp And Name, (e.g. Kids (e.g. Screen (Roles) Pointers Address ) Names) Cars) Data Auto ignore ignore ignore ignore Generated ignore ignore ignore ignore ignore ignore ignore ignore ignore ignore ignore ignore ignore ignore ignore ignore Admin Reference Tables ignore ignore ignore ignore ignore ignore ignore ignore ignore ignore ignore ignore 57
  • 58. Metastorm and Workflow• RADVisual development of Workflow is what Metatstorm is good at!• A good standard for Workflow application in the Gallery 58
  • 59. Data Model Differences Keys Header (e.g. Child1 Child2 Child3 Temp And Header Name, Pointers Address ) (e.g. Kids Names) (Roles) (e.g. Cars) Screen Data (e.g. Name, ignore ignore ignore ignore Address ) ignore ignore ignore ignore Parent ignore ignore ignore ignore ignore ignore ignore ignore Admin ignore ignore ignore ignore Reference Child1 Child2 Child3 Tables ignore(e.g. Child1 Kids (Roles ) (e.g. ignore ignore ignoreNames ) Kids Cars) (e.g. ignore ignore ignore ignore Names) ignore ignore ignore ignore 59
  • 60. PHPRunner (DCLPA) Data Model RequestStatuses RequestBulkClassificationCounts Exhibitions Column Name Data Type Allow Nulls RequestBulkClassificationCount_id Classifications Column Name Data Type Allow Nulls RequestStatus_id int Request_id Column Name Data Type Allow Nulls Exhibition_id int Name nvarchar(100) CountForClassification Classification_id int code nvarchar(50) DropDown_Display_Order int Classification_id Name nvarchar(50) Name nvarchar(100) LastUpdateUserName nvarchar(50) isNGA LastUpdateUserName nvarchar(50) isMaintainedInTMS bit LastUpdateTime datetime Comment LastUpdateTime datetime Comment nvarchar(MAX) SetToThisWhenFirstReportIs... bit RequestReason_id int DropDown_Display_Or... int Requests * Loans Column Name Data Type Allow Nulls Column Name Data Type Allow Nulls Loan_id int Request_id int Name nvarchar(50) EntryShortcutSelect_... int DropDown_Display_Order int RequestReason_id int RequestTMSObjects RequestNonTMSObjects * Comment nvarchar(MAX) RequestType_id int RequestTMSObject_id RequestNonTMSObject_id RequestStatus_id int RequestReason_id int Request_id ExhibitionActivities * Name RequestReportDACs ExhibitionActivity_id Requestor_id int NGAContactGallery_id LastUpdateUserName nvarchar(50) TMSObject_id LastUpdateTime datetime RequestReport_DAC_id Comment nvarchar(300) SortOrderInReport Request_id RequestReport_id EntryShortcutAjax_TMSObje... Name QuickNotes nvarchar(MAX) DAC_Record_id RequestDate datetime RequestReason_id Comment LastUpdateUserName nvarchar(50) isOnWorklog LastUpdateUserName LastUpdateTime datetime LastUpdateTime LoanActivities RequestReports * Exhibition_id int Column Name Data Type Allow Nulls Column Name Data Type Allow Nulls ExhibitionActivity_id int LoanActivity_id int RequestReport_id int ExhibitionOtherActivit... int Name nvarchar(50) Request_id int EntryShortcutAjax_M... int RequestReportWorkOrders Comment nvarchar(MAX) ReportType_id int Loan_id int RequestReport_WorkOrder_id RequestReportTechnicalInfos LastUpdateUserName nvarchar(50) StartedDate datetime LoanActivity_id int RequestReport_id RequestReport_id LastUpdateTime datetime EndedDate datetime WorkOrder_Line TechnicalNotes RequestReason_id int Conservator_id int WorkOrderType_id BetaRadiograph Description nvarchar(MAX) LastUpdateUserName XRayFluorescenceSpectroscopy User_id int LastUpdateTime InfraredSpectroscopy RequestApprovingRoles RequestReportStatus_id int MicroFadometer RequestApprovingRole_id AnalogImageLocation_id int FourierTransformInfraredSpectroscopy Request_id IncludeInFinalObjectR... bit RequestTypes * FluorescenceSpectroscopy Column Name ApprovingRole_id Report nvarchar(MAX) RequestReasons * ApprovingUser_id ColorSpectroscopy RequestType_id LastUpdateUserName nvarchar(50) Column Name None Name Approval_id LastUpdateTime datetime RequestReason_idWorkOrderTypes RequestReportAttachments * Other isMajor Comment RequestTMSObject_id int DropDown_Display_Order WorkOrderType_id RequestReportAttachment_id OtherDescription isMinor LastUpdateUserName Attachment nvarchar(MAX) Name Name RequestReport_id isQuick LastUpdateTime Image nvarchar(MAX) LastUpdateUserName FileName isLoan RequestNonTMSObjec... int LastUpdateTime Comment isBulk isObjectRequired isMultiObjectsAllowed RequestTypeApprovingRoles RequestTypeApprovingRole_id isApprovalRequired RequestType_id DropDown_Display_Order ApprovingRole_id LastUpdateUserName ReportTypes Conservators Comment Column Name Data Type Allow Nulls RequestReportStatuses Conservator_id LastUpdateUserName ReportType_id int ReportTypeGroups RequestReportStatus_id Gallery_id LastUpdateTime ReportTypeGroup_id int ReportTypeGroup_id Name Comment Name nvarchar(100) Name DropDown_Display_Order isInEmployeeDirectory isTechnicalAnalysis RequestTypeReasons * LastUpdateUserName nvarchar(50) ReportType_id LocalVersionOfName RequestTypeReasons_id LastUpdateTime datetime isDetailedExam LastUpdateUserName LastUpdateUserName RequestType_id isValidWithBulk bit isTreatmentProposal LastUpdateTime LastUpdateTime RequestReason_id isValidWithQuick bit isObjectReport isValidWithMajor bit isOther isValidWithMinor bit LastUpdateUserName 60 DropDown_Display_Or... int LastUpdateTime
  • 61. PHPRunner (DCLPA) Data Model Requests RequestStatusesRequest_id Column Name RequestBulkClassificationCounts Exhibitions Column Name Data Type Allow Nulls RequestBulkClassificationCount_id Classifications Column Name Data Type Allow Nulls RequestStatus_id EntryShortcutSelect_MajorTMSObj... int Column Name Data Type Allow Nulls Request_id Exhibition_id int Name RequestReason_id nvarchar(100) CountForClassification Classification_id int code nvarchar(50) DropDown_Display_Order int Classification_id Name nvarchar(50) Name nvarchar(100) RequestType_id LastUpdateUserName nvarchar(50) isNGA LastUpdateUserName nvarchar(50) isMaintainedInTMS bit LastUpdateTime RequestStatus_id datetime Comment LastUpdateTime datetime Comment nvarchar(MAX) Requestor_id SetToThisWhenFirstReportIs... bit RequestReason_id int DropDown_Display_Or... int Comment QuickNotes RequestDate LastUpdateUserName Requests * Loans Column Name Data Type Allow Nulls Column Name Data Type Allow Nulls LastUpdateTime Loan_id int Request_id int Exhibition_id Name nvarchar(50) EntryShortcutSelect_... int DropDown_Display_Order int RequestReason_id int RequestTMSObjects ExhibitionActivity_id RequestNonTMSObjects * Comment nvarchar(MAX) RequestType_id int RequestNonTMSObject_id RequestTMSObject_id ExhibitionOtherActivity_id RequestStatus_id int RequestReason_id int Request_id ExhibitionActivities * Name RequestReportDACs EntryShortcutAjax_MajorTMSObje... ExhibitionActivity_id Requestor_id int NGAContactGallery_id LastUpdateUserName nvarchar(50) TMSObject_id LastUpdateTime datetime RequestReport_DAC_id Comment nvarchar(300) EntryShortcutAjax_TMSObje... Loan_id SortOrderInReport Request_id RequestReport_id QuickNotes nvarchar(MAX) Name DAC_Record_id LoanActivity_id RequestDate datetime RequestReason_id Comment LastUpdateUserName nvarchar(50) isOnWorklog LastUpdateUserName LastUpdateTime datetime LastUpdateTime LoanActivities RequestReports * Exhibition_id int Column Name Data Type Allow Nulls Column Name Data Type Allow Nulls ExhibitionActivity_id int LoanActivity_id int RequestReport_id int ExhibitionOtherActivit... int Name nvarchar(50) Request_id int EntryShortcutAjax_M... int RequestNonTMSObjects RequestReportWorkOrders RequestTMSObjects ReportType_id int RequestReports RequestApprovingRoles Comment nvarchar(MAX) RequestReport_WorkOrder_id RequestReportTechnicalInfos Column Name Loan_id RequestBulkClassificationCounts int LastUpdateUserName nvarchar(50) Column Name StartedDate datetime LoanActivity_id int Column Name RequestReport_id Column Name RequestReport_id Column Name LastUpdateTime datetime EndedDate datetime WorkOrder_Line RequestReport_id RequestApprovingRole_id RequestNonTMSObject_id RequestTMSObject_id Conservator_id int TechnicalNotes RequestBulkClassificationCount_id RequestReason_id int WorkOrderType_id Request_id BetaRadiograph Request_id Name Request_id Description nvarchar(MAX) Request_id LastUpdateUserName XRayFluorescenceSpectroscopy User_id int ReportType_id ApprovingRole_id NGAContactGallery_id LastUpdateTime TMSObject_id InfraredSpectroscopy CountForClassification RequestApprovingRoles RequestReportStatus_id int StartedDate MicroFadometer ApprovingUser_id RequestApprovingRole_id Request_id EntryShortcutAjax_TMSObject_id AnalogImageLocation_id int Classification_id Request_id IncludeInFinalObjectR... bit EndedDate FourierTransformInfraredSpectroscopy RequestTypes * Approval_id FluorescenceSpectroscopy isNGA Column Name ApprovingRole_id Report nvarchar(MAX) Conservator_id RequestReasons * Comment ApprovingUser_id ColorSpectroscopy RequestType_id LastUpdateUserName nvarchar(50) Comment Column Name Description None Name LastUpdateUserName Approval_id LastUpdateTime datetime RequestReason_idWorkOrderTypes RequestReportAttachments * Other isMajor Comment RequestTMSObject_id int User_id DropDown_Display_Order LastUpdateTime WorkOrderType_id RequestReportAttachment_id OtherDescription isMinor LastUpdateUserName Attachment nvarchar(MAX) RequestReportStatus_id Name Name RequestReport_id isQuick LastUpdateTime Image nvarchar(MAX) FileName LastUpdateUserName RequestNonTMSObjec... int AnalogImageLocation_id isLoan LastUpdateTime Comment isBulk IncludeInFinalObjectReportRequestReportTechnicalInfos isObjectRequired Report isMultiObjectsAllowed RequestTypeApprovingRoles Column Name RequestTypeApprovingRole_id LastUpdateUserName isApprovalRequired RequestReport_id DropDown_Display_Order RequestType_id LastUpdateTime ApprovingRole_id TechnicalNotes LastUpdateUserName ReportTypes Conservators RequestTMSObject_id Comment BetaRadiograph RequestReportStatuses Column Name ReportType_id int Data Type Allow Nulls ReportTypeGroups RequestReportStatus_idAttachment Conservator_id RequestReportWorkOrders LastUpdateUserName XRayFluorescenceSpectroscopy Gallery_id LastUpdateTime ReportTypeGroup_id Name Image Column Name InfraredSpectroscopy ReportTypeGroup_id int RequestReportDACs Comment Name nvarchar(100) Name Column Name DropDown_Display_Order RequestNonTMSObject_id isInEmployeeDirectory RequestReportAttachments RequestTypeReasons * RequestReport_WorkOrder_id MicroFadometer LastUpdateUserName nvarchar(50) isTechnicalAnalysis ReportType_id LocalVersionOfName isDetailedExam Column Name RequestTypeReasons_id RequestReport_id LastUpdateTime datetime RequestReport_DAC_id LastUpdateUserName LastUpdateUserName FourierTransformInfraredSpectroscopy isTreatmentProposal RequestType_id RequestReportAttachment_id WorkOrder_Line isValidWithBulk bit LastUpdateTime LastUpdateTime RequestReport_id RequestReason_id FluorescenceSpectroscopy isValidWithQuick bit isObjectReport RequestReport_id WorkOrderType_id DAC_Record_id isOther ColorSpectroscopy isValidWithMajor bit FileName LastUpdateUserName LastUpdateUserName isValidWithMinor bit Comment None Comment DropDown_Display_Or... int LastUpdateTime LastUpdateTime LastUpdateUserName Other OtherDescription LastUpdateTime 61
  • 62. Requests Column Name Request_id PHPRunner EntryShortcutSelect_MajorTMSObj... RequestReason_id RequestType_id (DCLPA) RequestStatus_id Requestor_id Comment Key tables Data QuickNotes RequestDate LastUpdateUserName Model LastUpdateTime Exhibition_id ExhibitionActivity_id ExhibitionOtherActivity_id EntryShortcutAjax_MajorTMSObje... Loan_id LoanActivity_id RequestNonTMSObjects RequestTMSObjects RequestReports RequestApprovingRoles Column Name RequestBulkClassificationCounts Column Name Column Name Column Name Column Name RequestReport_id RequestApprovingRole_id RequestNonTMSObject_id RequestTMSObject_id RequestBulkClassificationCount_id Request_id Request_id Name Request_id Request_id ReportType_id ApprovingRole_id NGAContactGallery_id TMSObject_id CountForClassification StartedDate ApprovingUser_id Request_id EntryShortcutAjax_TMSObject_id Classification_id EndedDate Approval_id isNGA Conservator_id Comment Comment Description LastUpdateUserName User_id LastUpdateTime RequestReportStatus_id AnalogImageLocation_id IncludeInFinalObjectReportRequestReportTechnicalInfos Report Column Name LastUpdateUserName RequestReport_id LastUpdateTime TechnicalNotes RequestTMSObject_id BetaRadiograph Attachment RequestReportWorkOrders XRayFluorescenceSpectroscopy Image Column Name InfraredSpectroscopy RequestReportDACs Column Name RequestNonTMSObject_id RequestReportAttachments RequestReport_WorkOrder_id MicroFadometer Column Name RequestReport_id RequestReport_DAC_id FourierTransformInfraredSpectroscopy RequestReportAttachment_id WorkOrder_Line RequestReport_id FluorescenceSpectroscopy RequestReport_id WorkOrderType_id DAC_Record_id ColorSpectroscopy FileName LastUpdateUserName Comment None Other LastUpdateUserName Comment LastUpdateTime 62 LastUpdateTime OtherDescription
  • 63. PHPRunner Actual Data Requests Request Report Request Report WorkordersNormalized means the new child tables can be added or deleted, with little impact 63On the rest of the database, also unlimited child tables can be added
  • 64. PHPRunner• Focus on “Data Model” in database and not in “Application Logic” – Example • DCLPA – Lines of PHP code [~75 lines] • DCLPA – Custom HTML [~86 lines] • Tables 40 tables • Database Stored Procedure Code [~250 lines]Designed to be easily replaceable with new “user Interface” tool (if desired) 64
  • 65. IRIS Data ModelLine_Items ( Deliverables ( The Metastorm Data Model is Generated to Support the Workflow EFOLDERID nvarchar (31) NOT NULL , Id int IDENTITY (1, 1) NOT NULL , AO_AccNum AO_Artist AO_ArtTreatment nvarchar nvarchar smallint (250) (250) NULL NULL NULL , , , Name Cost nvarchar int NOT (250) NOT NULL , NULL Work_Order ( AO_Complete _Total money NULL , EFOLDERID nvarchar (31) NOT NULL , AO_DateNeeded datetime NULL , Account nvarchar (250 ) NULL , AO_Deliverables nvarchar (250) NULL , AO_AccNum nvarchar (250 ) NULL , AO_Description ntext NULL , AO_Artist nvarchar (250 ) NULL , AO_DexNum nvarchar (250) NULL , AO_ArtTreatment smallint NULL , AO_Dimensions nvarchar (250) NULL , AO_Complete _Total money NULL , AO_ExistingAssets ntext NULL , AO_DateNeeded datetime NULL , Diagrams. AO_Height int NULL , AO_Deliverables nvarchar (250 ) NULL , Projects AO_Id nvarchar (250) NULL , AO_Description ntext NULL , AO_Info ntext NULL , AO_DexNum nvarchar (250 ) NULL , AO_Lecture smallint NULL , ( AO_Dimensions nvarchar (250 ) NULL , AO_LightAngle nvarchar (250) NULL , Id int IDENTITY (1, 1) NOT NULL , AO_Duty1 nvarchar (250 ) NULL , AO_lineItemNum nvarchar (250) NULL , Name varchar (400) NOT NULL AO_Duty2 nvarchar (250 ) NULL , AO_LocalPrinting smallint NULL , AO_ExistingAssets nvarchar (250 ) NULL , AO_NewAssets ntext NULL , AO_Height int NULL , AO_NonNGAObj smallint NULL , AO_Id nvarchar (250 ) NULL , AO_ObjectClass nvarchar (250) NULL , AO_Lecture smallint NULL , AO_PhotographicCost money NULL , AO_LightAngle nvarchar (250 ) NULL , AO_Prepress smallint NULL , AO_lineItemNum nvarchar (250 ) NULL , AO_ProductionJournal ntext NULL , AO_LocalPrinting smallint NULL , AO_Quantity int NULL , AO_NewAssets nvarchar (250 ) NULL , AO_SpecialDeliveryInstructions ntext NULL , AO_NonNGAObj smallint NULL , AO_Spectrum nvarchar (250) NULL , AO_ObjectClass nvarchar (250 ) NULL , AO_Status nvarchar (250) NULL , AO_PhotographicCost money NULL , AO_Title nvarchar (250) NULL , AO_Prepress smallint NULL , AO_Total money NULL , AO_ProductionJournal ntext NULL , AO_TreatmentPhase nvarchar (250) NULL , AO_Quantity int NULL , AO_VisualReference smallint NULL , AO_SpecialDeliveryInstructions ntext NULL , Requestors It is not a logical Representation of AO_Web smallint NULL , AO_Spectrum nvarchar (250 ) NULL , AO_Width int NULL , ( AO_Staff 1 nvarchar (250 ) NULL , Assignee 1 nvarchar (250) NULL , AO_Staff 2 nvarchar (250 ) NULL , Assignee 2 nvarchar (250) NULL , Id int IDENTITY (1, 1) NOT NULL , AO_Status nvarchar (250 ) NULL , checkDeliverables smallint NULL , Name varchar (250) NOT NULL , AO_Status 1 nvarchar (250 ) NULL , DeliverablesAmount int NULL , Office varchar (150) NULL , AO_Status 2 nvarchar (250 ) NULL , destinationFolderId nvarchar (250) NULL , Phone varchar (50) NULL , AO_Studio 1 nvarchar (250 ) NULL , destinationFolderName nvarchar (250) NULL , eName varchar (150) NULL AO_Studio 2 nvarchar (250 ) NULL , Difference _Total money NULL , AO_Title nvarchar (250 ) NULL , Duty 1 nvarchar (250) NULL , AO_Total money NULL , Data Business Rules Duty 2 nvarchar (250) NULL , AO_TreatmentPhase nvarchar (250 ) NULL , EP_AdditionalDetails ntext NULL , AO_VisualReference smallint NULL , EP_ArtTreatment smallint NULL , AO_Web smallint NULL , EP_Cell nvarchar (250) NULL , AO_Width int NULL , EP_Complete _Total money NULL , Assignee 1 nvarchar (250 ) NULL , EP_Contact nvarchar (250) NULL , Assignee 2 nvarchar (250 ) NULL , EP_DateNeeded datetime NULL , BriefDescription ntext NULL , EP_Dress EP_Email nvarchar nvarchar (250) (250) NULL NULL , , eEvent ( checkDeliverables Code smallint nvarchar (250 ) NULL NULL , , EP_EventEnd datetime NULL , eFolderID nvarchar (31) NOT NULL , Comments ntext NULL , EP_EventName nvarchar (250) NULL , eEventID int NOT NULL , CostAdjustments float NULL , EP_EventStart datetime NULL , eVersion int NULL , DateBilled datetime NULL , EP_EventType nvarchar (250) NULL , ePriority smallint NULL , DateDelivered datetime NULL , EP_ExistingAssets ntext NULL , eEventTime datetime NULL , DateNeeded datetime NULL , EP_Fax nvarchar (250) NULL , eEntryTime datetime NULL , DateSubmitted datetime NULL , EP_Info ntext NULL , eDeadline datetime NULL , DeliverablesAmount int NULL , EP_Lecture smallint NULL , eMapName nvarchar (31) NULL , DeliveryMedia nvarchar (250 ) NULL , EP_lineItemNum nvarchar (250) NULL , eFromStage nvarchar (31) NULL , DivisionCenter nvarchar (250 ) NULL , EP_LocalPrinting smallint NULL , eActionName nvarchar (31) NULL , Duty 1 nvarchar (250 ) NULL , EP_Location nvarchar (250) NULL , eToStage nvarchar (31) NULL , Duty 2 nvarchar (250 ) NULL , EP_NewAssets ntext NULL , eUserName nvarchar (100) NULL , EmailAddress nvarchar (250 ) NULL , EP_PhotographerEnd datetime NULL , eFlagName nvarchar (63) NULL , EmailMessage ntext NULL , EP_PhotographerStart datetime NULL , eFlagFolder nvarchar (31) NULL , EmailSubject nvarchar (250 ) NULL , EP_PhotographicCost money NULL , eAlertMessage nvarchar (250) NULL , EP_AdditionalDetails ntext NULL , EP_Prepress smallint NULL , eNotes ntext NULL EP_ArtTreatment smallint NULL , EP_ProductionJournal ntext NULL , EP_Cell nvarchar (250 ) NULL , EP_SpecialDeliveryInstructions ntext NULL , EP_Complete _Total money NULL , EP_Total money NULL , EP_Contact nvarchar (250 ) NULL , EP_VisualReference smallint NULL , EP_DateNeeded datetime NULL , EP_Web smallint NULL , EP_Dress nvarchar (250 ) NULL , Line _Item _Total money NULL , EP_Email nvarchar (250 ) NULL , memAssignments ntext NULL , EP_EventEnd datetime NULL , msg nvarchar (250) NULL , EP_EventName nvarchar (250 ) NULL , NAO _ArtTreatment smallint NULL , EP_EventStart datetime NULL , NAO _Complete _Total money NULL , EP_EventType nvarchar (250 ) NULL , NAO _DateNeeded datetime NULL , EP_ExistingAssets nvarchar (250 ) NULL , NAO _Deliverables nvarchar (250) NULL , EP_Fax nvarchar (250 ) NULL , NAO _Description ntext NULL , EP_Lecture smallint NULL , Workflow Diagramming is NAO _Dimensions nvarchar (250) NULL , EP_lineItemNum nvarchar (250 ) NULL , NAO _ExistingAssets ntext NULL , EP_LocalPrinting smallint NULL , NAO _Height int NULL , EP_Location nvarchar (250 ) NULL , NAO _ID nvarchar (250) NULL , EP_NewAssets nvarchar (250 ) NULL , NAO _Info ntext NULL , EP_PhotographerEnd datetime NULL , NAO _Lecture smallint NULL , EP_PhotographerStart datetime NULL , eFolder NAO _lineItemNum nvarchar (250) NULL , EP_PhotographicCost money NULL , NAO _LocalPrinting smallint NULL , EP_Prepress smallint NULL , NAO _NewAssets ntext NULL , ( EP_ProductionJournal ntext NULL , NAO _ObjectType nvarchar (250) NULL , EP_SpecialDeliveryInstructions ntext NULL , eFolderID nvarchar (31) NOT NULL , EP_Total money NULL , Where Metastorm Excels NAO _PhotographicCost money NULL , eParent nvarchar (31) NULL , NAO _Prepress smallint NULL , EP_VisualReference smallint NULL , eFolderName nvarchar (31) NULL , NAO _ProductionJournal ntext NULL , eStageName nvarchar (31) NULL , EP_Web smallint NULL , NAO _Quantity int NULL , eMapName nvarchar (31) NULL , FundSource nvarchar (250 ) NULL , NAO _Source nvarchar (250) NULL , initStatus nvarchar (250 ) NULL , eServerName nvarchar (31) NULL , NAO _SpecialDeliveryInstructions ntext NULL , Instructions ntext NULL , eCategory nvarchar (31) NULL , NAO _Total money NULL , LineItems nvarchar (250 ) NULL , eOriginator nvarchar (100) NULL , NAO _VisualReference smallint NULL , eSubject nvarchar (250) NULL , mediaPrice money NULL , NAO _Web smallint NULL , eArchived smallint NULL , NAO _ArtTreatment smallint NULL , NAO _Width int NULL , ePriority smallint NULL , NAO _Complete _Total money NULL , nextStage nvarchar (250) NULL , NAO _DateNeeded datetime NULL , eActionCount int NULL , O_ArtTreatment smallint NULL , eCreationTime datetime NULL , NAO _Deliverables nvarchar (250 ) NULL , O_Complete _Total money NULL , eEntryTime datetime NULL , NAO _Description ntext NULL , O_DateNeeded datetime NULL , eUpdated datetime NULL , NAO _Dimensions nvarchar (250 ) NULL , O_Deliverables nvarchar (250) NULL , NAO _ExistingAssets nvarchar (250 ) NULL , eDeadline datetime NULL , O_Description ntext NULL , NAO _Height int NULL , eActionTime datetime NULL , O_ExistingAssets ntext NULL , NAO _ID nvarchar (250 ) NULL , eActionName nvarchar (31) NULL , O_Height int NULL , eActionUser nvarchar (100) NULL , NAO _Lecture smallint NULL , O_Info ntext NULL , eFragmentStack ntext NULL NAO _lineItemNum nvarchar (250 ) NULL , O_Lecture smallint NULL , NAO _LocalPrinting smallint NULL , O_lineItemNum nvarchar (250) NULL , NAO _NewAssets nvarchar (250 ) NULL , O_LocalPrinting smallint NULL , NAO _ObjectType nvarchar (250 ) NULL , O_NewAssets ntext NULL , NAO _PhotographicCost money NULL , O_PhotographicCost money NULL , NAO _Prepress smallint NULL , O_Prepress smallint NULL , NAO _ProductionJournal ntext NULL , O_ProductionJournal ntext NULL , NAO _Quantity int NULL , O_Quantity int NULL , NAO _Source nvarchar (250 ) NULL , O_SpecialDeliveryInstructions ntext NULL , NAO _SpecialDeliveryInstructions ntext NULL , O_Total money NULL , NAO _Total money NULL , O_VisualReference smallint NULL , NAO _VisualReference smallint NULL , O_Web smallint NULL , NAO _Web smallint NULL , O_Width int NULL , NAO _Width int NULL , old _parent nvarchar (250) NULL , nextStage nvarchar (250 ) NULL , old _parent _foldername nvarchar (250) NULL , O_ArtTreatment smallint NULL , Old _Total money NULL , O_Complete _Total money NULL , prnt nvarchar (250) NULL , O_DateNeeded datetime NULL , prntFolderName nvarchar (250) NULL , O_Deliverables nvarchar (250 ) NULL , ProductionStartDate datetime NULL , O_Description ntext NULL , Requestor nvarchar (250) NULL , O_ExistingAssets nvarchar (250 ) NULL , result nvarchar (250) NULL , O_Height int NULL , resultCount int NULL , O_Lecture smallint NULL , Staff1 nvarchar (250) NULL , O_lineItemNum nvarchar (250 ) NULL , Staff2 nvarchar (250) NULL , O_LocalPrinting smallint NULL , Status nvarchar (250) NULL , O_NewAssets nvarchar (250 ) NULL , Status 1 nvarchar (250) NULL , O_PhotographicCost money NULL , Status 2 nvarchar (250) NULL , O_Prepress smallint NULL , Studio 1 nvarchar (250) NULL , O_ProductionJournal ntext NULL , Studio 2 nvarchar (250) NULL , O_Quantity int NULL , tmpPrnt nvarchar (250) NULL , O_SpecialDeliveryInstructions ntext NULL , txtUrgent nvarchar (250) NULL , O_Total money NULL , type nvarchar (250) NULL , O_VisualReference smallint NULL , urgent smallint NULL , O_Web smallint NULL , WO_initiator nvarchar (250) NULL , O_Width int NULL , EP_OfficePhone nvarchar (250) NULL , OrderCloseDate datetime NULL , WorkOrderApproved nvarchar (250) NULL , OrderStatus nvarchar (250 ) NULL , AO_Medium nvarchar (250) NULL , OrderTotal float NULL , newPhotography smallint NULL , p_Total money NULL , AO_Other smallint NULL , prntFolderName nvarchar (250 ) NULL , AO_Unknown smallint NULL , ProductionJournal ntext NULL , AO_AssetName nvarchar (250) NULL , ProjID nvarchar (250 ) NULL , AO_EAStatus nvarchar (250) NULL , ProjNum nvarchar (250 ) NULL , AO_FileName nvarchar (250) NULL , PurchasingCategories nvarchar (250 ) NULL , NAO _AssetName nvarchar (250) NULL , RecipientName nvarchar (250 ) NULL , NAO _EAStatus nvarchar (250) NULL , RecipientOffice nvarchar (250 ) NULL , NAO _FileName nvarchar (250) NULL , RecipientPhone nvarchar (250 ) NULL , NAO _Other smallint NULL , RequestorName nvarchar (250 ) NULL , NAO _Unknown smallint NULL , RequestorOffice nvarchar (250 ) NULL , O_Other smallint NULL , RequestorPhone nvarchar (250 ) NULL , O_Unknown smallint NULL , Result nvarchar (250 ) NULL , Deliverables nvarchar (250) NULL , Staff 1 nvarchar (250 ) NULL , Quantity int NULL Staff 2 nvarchar (250 ) NULL , Status nvarchar (250 ) NULL , Status 1 nvarchar (250 ) NULL , Status 2 nvarchar (250 ) NULL , Studio 1 nvarchar (250 ) NULL , Studio 2 nvarchar (250 ) NULL , Temp 1 nvarchar (250 ) NULL , tempUrgent smallint NULL , test nvarchar (250 ) NULL , Type nvarchar (250 ) NULL , urgent smallint NULL , UserName nvarchar (250 ) NULL , UserType nvarchar (250 ) NULL , VenueCode nvarchar (250 ) NULL , VisualServiceContractNum nvarchar (250 ) NULL , WO_initiator nvarchar (250 ) NULL , 65 WOTotal float NULL , OfficePhone nvarchar (250 ) NULL , EP_OfficePhone nvarchar (250 ) NULL , WorkOrderApproved nvarchar (250 ) NULL , AO_Medium nvarchar (250 ) NULL , AO_Other smallint NULL , AO_Unknown smallint NULL , FiscalYear nvarchar (250 ) NULL , NAO _Other smallint NULL , NAO _Unknown smallint NULL , O_Other smallint NULL , O_Unknown smallint NULL , PayerDepartment nvarchar (250 ) NULL , USSGL nvarchar (250 ) NULL , DateDeliveryFinalized datetime NULL , DateSentPicked datetime NULL , countChildren int NULL
  • 66. IRIS Data ModelLine_Items ( Deliverables ( EFOLDERID nvarchar (31) NOT NULL , Id int IDENTITY (1, 1) N AO_AccNum nvarchar (250) NULL , Name nvarchar (250) N AO_Artist nvarchar (250) NULL , Cost int NOT AO_ArtTreatment smallint NULL , AO_Complete _Total money NULL , AO_DateNeeded datetime NULL , AO_Deliverables nvarchar (250) NULL , AO_Description ntext NULL , AO_DexNum nvarchar (250) NULL , AO_Dimensions nvarchar (250) NULL , AO_ExistingAssets ntext NULL , AO_Height int NULL , AO_Id AO_Info AO_Lecture AO_LightAngle nvarchar ntext smallint nvarchar (250) (250) NULL NULL NULL NULL , , , , Projects ( Id int IDENTITY (1, 1) AO_lineItemNum nvarchar (250) NULL , Name varchar (400) AO_LocalPrinting smallint NULL , AO_NewAssets ntext NULL , AO_NonNGAObj smallint NULL , Database AO_ObjectClass nvarchar (250) NULL , AO_PhotographicCost money NULL , AO_Prepress smallint NULL , AO_ProductionJournal AO_Quantity ntext int AO_SpecialDeliveryInstructions ntext NULL NULL NULL , , , Enforce integrity AO_Spectrum AO_Status nvarchar nvarchar (250) (250) NULL NULL , , Not used AO_Title nvarchar (250) NULL , AO_Total AO_TreatmentPhase money nvarchar (250) NULL NULL , , (Possible?) AO_VisualReference smallint NULL , AO_Web AO_Width Assignee 1 smallint int nvarchar (250) NULL NULL NULL , , , Requestors ( Assignee 2 nvarchar (250) NULL , Id int IDENTITY (1, 1) N checkDeliverables smallint NULL , Name varchar (250) N DeliverablesAmount int NULL , Office varchar (150) destinationFolderId nvarchar (250) NULL , Phone varchar (50) destinationFolderName nvarchar (250) NULL , eName varchar (150) Difference _Total money NULL , Duty 1 nvarchar (250) NULL , Duty 2 nvarchar (250) NULL , EP_AdditionalDetails ntext NULL , EP_ArtTreatment smallint NULL , EP_Cell nvarchar (250) NULL , EP_Complete _Total money NULL , EP_Contact nvarchar (250) NULL , EP_DateNeeded datetime NULL , EP_Dress EP_Email nvarchar nvarchar (250) (250) NULL NULL , , eEvent ( EP_EventEnd datetime NULL , eFolderID nvarchar (31) EP_EventName nvarchar (250) NULL , eEventID int 66 NOT EP_EventStart datetime NULL , eVersion int EP_EventType nvarchar (250) NULL , ePriority smallint EP_ExistingAssets ntext NULL , eEventTime datetime
  • 67. Line_Items IRIS Data Model ( EFOLDERID nvarchar (31) NOT NULL , AO_AccNum nvarchar (250) NULL , AO_Artist nvarchar (250) NULL , AO_ArtTreatment smallint NULL , AO_Complete _Total money NULL , AO_DateNeeded datetime NULL , AO_Deliverables nvarchar (250) NULL , AO_Description ntext NULL , AO_DexNum nvarchar (250) NULL , AO_Dimensions nvarchar (250) NULL , AO_ExistingAssets ntext NULL , AO_Height int NULL , AO_Id AO_Info AO_Lecture nvarchar ntext smallint (250) NULL NULL NULL , , , Art Object AO_LightAngle nvarchar (250) NULL , AO_lineItemNum nvarchar (250) NULL , AO_LocalPrinting smallint NULL , AO_NewAssets ntext NULL , AO_NonNGAObj AO_ObjectClass smallint nvarchar (250) NULL NULL , , Where type = AO_PhotographicCost money NULL , Art Non AO_Prepress smallint NULL , “Art” IRIS Temp AO_ProductionJournal ntext NULL , AO_Quantity int NULL , AO_SpecialDeliveryInstructions ntext NULL , AO_Spectrum nvarchar (250) NULL , Event AO_Status nvarchar (250) NULL ,Folder ID Object Other AO_Title nvarchar (250) NULL , Art AO_Total money NULL , Screen AO_TreatmentPhase nvarchar (250) NULL , AO_VisualReference smallint NULL , AO_Web smallint NULL , AO_Width int NULL , Assignee 1 nvarchar (250) NULL , Data Assignee 2 nvarchar (250) NULL , checkDeliverables smallint NULL , DeliverablesAmount int NULL , destinationFolderId nvarchar (250) NULL , destinationFolderName nvarchar (250) NULL , Difference _Total money NULL , Duty 1 nvarchar (250) NULL , Art Duty 2 nvarchar (250) NULL , EP_AdditionalDetails ntext NULL , EP_ArtTreatment smallint NULL , EP_Cell nvarchar (250) NULL , ignore EP_Complete _Total money NULL , Object EP_Contact nvarchar (250) NULL , EP_DateNeeded datetime NULL , ignore ignore ignore EP_Dress nvarchar (250) NULL , EP_Email nvarchar (250) NULL , EP_EventEnd datetime NULL , Info EP_EventName nvarchar (250) NULL , EP_EventStart datetime NULL , EP_EventType EP_ExistingAssets EP_Fax EP_Info nvarchar ntext nvarchar ntext (250) (250) NULL NULL NULL NULL , , , , Events EP_Lecture smallint NULL , EP_lineItemNum nvarchar (250) NULL , EP_LocalPrinting smallint NULL , EP_Location EP_NewAssets nvarchar ntext (250) NULL NULL , , Where type = ignore Event info ignore ignore EP_PhotographerEnd datetime NULL , EP_PhotographerStart datetime NULL , “Event” ignore EP_PhotographicCost money NULL , EP_Prepress smallint NULL , EP_ProductionJournal ntext NULL , EP_SpecialDeliveryInstructions ntext NULL , EP_Total money NULL , EP_VisualReference smallint NULL , EP_Web smallint NULL , Line _Item_Total money NULL , memAssignments ntext NULL , msg nvarchar (250) NULL , NAO_ArtTreatment smallint NULL , NAO_Complete _Total money NULL , NAO_DateNeeded datetime NULL , NAO_Deliverables nvarchar (250) NULL , Non Art ignore NAO_Description ntext NULL , ignore Event info NAO_Dimensions nvarchar (250) NULL , ignore ignore NAO_ExistingAssets ntext NULL , NAO_Height int NULL , NAO_ID NAO_Info NAO_Lecture nvarchar ntext smallint (250) NULL NULL NULL , , , Object NAO_lineItemNum nvarchar (250) NULL , NAO_LocalPrinting smallint NULL , NAO_NewAssets ntext NULL , NAO_ObjectType nvarchar (250) NULL , NAO_PhotographicCost NAO_Prepress money smallint NULL NULL , , Where type = NAO_ProductionJournal ntext NULL , NAO_Quantity NAO_Source int nvarchar (250) NULL NULL , , “Non Art” ignore NAO_SpecialDeliveryInstructions ntext NULL , ignore ignore NonArt NAO_Total money NULL , ignore NAO_VisualReference smallint NULL , NAO_Web smallint NULL , NAO_Width int NULL , nextStage nvarchar (250) NULL , O_ArtTreatment smallint NULL , O_Complete _Total money NULL , O_DateNeeded datetime NULL , O_Deliverables nvarchar (250) NULL , O_Description ntext NULL , O = Other O_ExistingAssets ntext NULL , O_Height int NULL , O_Info ntext NULL , O_Lecture smallint NULL , ignore O_lineItemNum nvarchar (250) NULL , O_LocalPrinting smallint NULL , ignore ignore ignore Other O_NewAssets ntext NULL , O_PhotographicCost money NULL , O_Prepress smallint NULL , Where type = O_ProductionJournal ntext NULL , O_Quantity int NULL , O_SpecialDeliveryInstructions O_Total ntext money NULL NULL , , “Other” O_VisualReference smallint NULL , O_Web smallint NULL , O_Width int NULL , old_parent nvarchar (250) NULL , old_parent_foldername nvarchar (250) NULL , Old_Total money NULL , prnt nvarchar (250) NULL , ignore prntFolderName nvarchar (250) NULL , ignore ignore ignore Other ProductionStartDate datetime NULL , Requestor nvarchar (250) NULL , result nvarchar (250) NULL , resultCount int NULL , Staff 1 nvarchar (250) NULL , Staff 2 nvarchar (250) NULL , Status nvarchar (250) NULL , Status 1 nvarchar (250) NULL , Art Status 2 nvarchar (250) NULL , Studio 1 nvarchar (250) NULL , Studio 2 nvarchar (250) NULL , tmpPrnt nvarchar (250) NULL , Object txtUrgent nvarchar (250) NULL , type nvarchar (250) NULL , urgent smallint NULL , ignore ignore WO_initiator nvarchar (250) NULL , EP_OfficePhone nvarchar (250) NULL , ignore ignore WorkOrderApproved nvarchar (250) NULL , AO_Medium nvarchar (250) NULL , newPhotography smallint NULL , AO_Other smallint NULL , Info AO_Unknown smallint NULL , AO_AssetName nvarchar (250) NULL , AO_EAStatus nvarchar (250) NULL , AO_FileName nvarchar (250) NULL , NAO_AssetName nvarchar (250) NULL , NAO_EAStatus nvarchar (250) NULL , NAO_FileName nvarchar (250) NULL , NAO_Other smallint NULL , NAO_Unknown smallint NULL , ignore O_Other smallint NULL , 67 O_Unknown smallint NULL , Event info ignore ignore Deliverables nvarchar (250) NULL , ignore Quantity int NULL
  • 68. Why Normalize• 1. To free the collection from undesirable inserts, update and deletion dependencies;• 2. To reduce the need for restructuring as new types of data are introduced• 3. To be more informative to users;• 4. To make simplify query statisticsE.F. Codd, "Further Normalization of the Data Base Relational Model" 68
  • 69. Normalization (Date & Codd)First Normal Form: Create separate tables for each group of related data and identify each row with a unique column or set of columns (the primary key). I.e. Use Codes not ValuesSecond Normal Form: Remove subsets of data that apply to multiple rows of a table and place them in separate tables and create relationships between these new tables and their predecessors through the use of foreign keys. I.e. Store one “logical” table per “Table”Third Normal Form: Remove columns that are not dependent upon the primary key. I.e. Do not store data that is not related to key 69
  • 70. Metastorm Actual Table (Imaging_Services_LI) Logical Header Table info (2NF) Logical Logical Art Table Info (2NF) Event Line Values Logical Not Codes Non Art (1NF issue) Data (2NF) Work Order LinesMiscellaneous Data (Not Shown in this sample) 70
  • 71. MetastormNote: These are problems with the Metastormarchitecture, The Metatstorm developer needs towork within these confines.Key Take Away:MetaStorm is very good for workflow, BUT, not it isnot architected well for data management 71
  • 72. Normalizing IRIS• Complex set of views created to make IRIS “Look” as if it was Normalized• Stored in Separate Database• Cannot be used for update• Performance issues make these not feasible with complex joins Projects Headers Lines Workflow for with events Imaging for lines common Requestors Request info Workflow events Lines for Lines for Lines for Lines for For header Event Art other nonart request request request request Deliverables 72
  • 73. Documentation (DIR)• Project Folder – ngagroupTTDPProjectsDIR- DIV Images Request System• Documents – Converting Metastorm Schema in a Reportable ERD model (DIR)-20070919a 1 1.doc 73
  • 74. Architecture Web Browser `PHPRunner Application Server (Web Server) SQL Server Database 74
  • 75. Screen Customization Very hard to say “no” since, it so easy … However, I really demand a very good reason, and prefer To avoid this . . . Lots of this, can cause serious maintenance issues 75
  • 76. Screen CustomizationOverride events can behard to say “no” since, it so easy … However, Very added in define locations I really demand a very good reason, and preferThis little block of code says To avoid this . . .1. Prompt user message to load approvals2. If selected, CallLots of this, can cause serious maintenance issues database routine to do itThe goal is to keep the maximum amount of code in thedatabase, in case we want to a new frond end .Making it“upgrade” or “migration” proof 76
  • 77. Business Modeling through Data Model• Define Relationships Between Data Parent Primary Eye Color: Bwn Home Child Child Child 77
  • 78. Architecture Web Browser `PHPRunner Application Server (Web Server) SQL Server Database 78
  • 79. DCLPA (July 2008) The current Filemaker database on the MAC is having lots of problems, I need help Greg and Art, Can you Help us Lets help them This sounds like an opportunity to test out the ideas I have to fix the Gallerys Data Problems. Lets do it O.K. Sounds Feasible This will help Conservation figure out how we 79 do things… Were on board!
  • 80. DCLPA (July 2008) I need a database, to share education programs and I have a MAC Will you change to a PC, then we’ll give you Microsoft Access In that case, “Nevermind” Hmm, We really cannot ignore the requirement for MACs. For that matter,expense to install is so high, a web solutionwould save the gallery the most money.. The Web should be a requirement. 80
  • 81. DCL-PA Database• Existing Filemaker Database deemed inappropriate• TDP brought in to DCL-PA to address storage of filemaker application issues• TDP was also simultaneously undertaking an Data Quality (DQ) initiative to connect system to authoritative sources.• DCL-PA was in a good position to leverage both initiatives• DCL-PA was adopted as DQ Candidate 81
  • 82. Time• Working with DCLPA to document existing processes (~ 1 FTEWeeks)• Working with DCLPA to defineimprove processed and to define the data relationships (~ 1-2 FTEWeeks)• Requirements and Design (~1 week)• CodingUI (~ 2 FTEWeeks)• Testing (~ 1 Week)• Development of ADS Charter (?) 82
  • 83. Data Model Iterations Refined the data model as we to envision how use cases would work with it ! Request ApprovingUserRoles ApprovingRoles ApprovingRole_id Request_id A pprovingUserRole_id RequestTypeApprovingRoles Name Request Status Type_of_work_ind A pprovingUser_id LastUpdateUserName RequestTypeApprovingRole_id A pprovingRole_id RequestType_id Request_status_id Type of Work Comments LastUpdateTime ApprovingRole_id Type of Work Name LastUpdateUserName Comments Name Type_of_work_ind LastUpdateTime LastUpdateUserName Type_of_work_ind Request_status_id Type of Work Name LastUpdateTime RequestTypes Request Status Name Major? RequestType_id Name Request_datetime isMajor TMS (External) Requestor_id RequestApprovingRoles isMinor RequestA pprovingRole_id Requestor Name ApprovingUsers Request_id LastUpdateUserName Object_id LastUpdateTime Phone Number A pprovingUser_id ApprovingRole_id User_id isQuick Classification ApprovingUser_id Name isBulk Accession # Object_id Approval_id Artist LastUpdateUserName Comments Title Classification LastUpdateTime Requestors Date/Period Accession # Approvals LastUpdateUserName A pproval_id LastUpdateTime Medium Artist Request Requestor_id Paper/Support(s) Title Requestors Name Gallery_id (Badge number) Mark(s) Date/Period isApprovedType of Work Request_id Inscription (s) Medium Requestor_id LastUpdateUserName Type_of_work_ind Name Dimensions Paper/Support(s) Gallery_id (Badge number) LastUpdateTime Type_of_work_ind Donor Mark(s) Type of Work Name Collection Requestor Name Request_status_id Inscription(s) Major? Events Loan Dates Dimensions Gallery Name Users Requests XRFStatuses Request_date Donor XRFStatus_id User_id Request_id Event_id Location Code – translated Collection RequestStatuses Name Requestor_id Loan Dates Username RequestStatus_id TMSObject_id Name to general code Events LastUpdateUserName Password RequestReason_idRequest Status Object_id email Name RequestType_id ---> TMS LastUpdateTime Location Code – translated Event_id DropDown_Display_Order Request_status_id Description Event_Group_id to general code LastUpdateUserN... RequestStatus_id LastUpdateUserName Event Name LastUpdateTime LastUpdateTime Requestor_id Name Short Description Comments Event Group Event_Group_id Requestors Type_of_work_ind Request Events QuickNotes Requestor_id Event_Group_id Long Description RequestDate Event Group Name RequestEvent_id LastUpdateUserName Gallery_id ---> ASD. Employee Table Name WorkOrderTypes LastUpdateTime CommentsTMS (External) Request_id Request Events Event Group WorkOrderType_id Exhibition_id isInEmployeeDirectory Event_id ExhibitionActivity_id LocalVersionOfName Event_Group_id Name Object _id Request Event Statuses RequestEvent_id LastUpdateUserName Classification_id Request_event_status_id Event Group Name LastUpdateUserName LastUpdateTime Request_event_status_id Request_id LastUpdateTime Started_on test_id Name Event_id IRIS (External) Completed_on Request Event Statuses ReportTypes ReportTypeGroups Event_Group_id Event Name ReportType_id ReportTypeGrou... Conservator_id Request_event_status_id RequestReportWorkOrders WorkOrder_Line_ID IRIS (External) Request_event_status_id RequestReport_WorkOrder_id ReportTypeGroup_id Name Description Name isTechnicalAnalysis Conservators WorkOrder_Line_ID Status Name RequestReport_id LastUpdateUserName isDetailedExam BT_Image_Workorder_line_id Status Name WorkOrder_Line Event_Group_id ---> IRIS Line LastUpdateTime Conservator_id WorkOrderType_id Analog Image Locations DT_Image_Workorder_line_id Started_on_Datetime LastUpdateUserName AT_Image_Workorder_line_id Gallery_id (Badge number) Analog_Image_location_id Completed_on_Datetime Conservators LastUpdateTime Conservators Analog_Image_location_id Name RequestReports Conservator_id Name Conservator_id RequestReport_id Gallery_id Conservator_id ----> ASD Employee Extensis _Image_Pointer Analog Image Locations Name Request_id Comments Gallery_id (Badge number) ReportType_id isInEmployeeDirectoryDCL Paper Portfolio Images Comment Employees (External) Analog_Image_location_id StartedDate LocalVersionOfName Description Name RequestReportDACs Extensis_Image_Pointer Gallery_id RequestReport_DAC_id EndedDate LastUpdateUserName Analog Location Name BT_Image_Workorder_line_id Gallery Name Conservator_id LastUpdateTime RequestReport_id DT_Image_Workorder_line_id DAC_Record_id ---> Portfolio (DCL-PA) Description User_id DCL Paper Portfolio Images Employees (External) Comments AnalogImageLocations AT_Image_Workorder_line_id LastUpdateUserName RequestReportStatus_id AnalogImageLocation_id LastUpdateTime A nalogImageLocation_id Extensis _Image_Pointer Gallery_id Name Analog_Image_location_id IncludeInFinalObjectReport LastUpdateUserName Gallery Name Report LastUpdateTime Analog Location Name LastUpdateUserName LastUpdateTime Extensis _Image_Pointer RequestReportStatuses RequestReportStatus_id Name DropDown_Display_Order ReportType_id LastUpdateUserName Comment 83
  • 84. Simplified Requests Column Name Request_id EntryShortcutSelect_MajorTMSObj... RequestReason_id Data RequestType_id RequestStatus_id Requestor_id Comment Model QuickNotes RequestDate LastUpdateUserName LastUpdateTime Exhibition_id ExhibitionActivity_id ExhibitionOtherActivity_id EntryShortcutAjax_MajorTMSObje... Loan_id LoanActivity_id RequestNonTMSObjects RequestTMSObjects RequestReports RequestApprovingRoles Column Name RequestBulkClassificationCounts Column Name Column Name Column Name Column Name RequestReport_id RequestApprovingRole_id RequestNonTMSObject_id RequestTMSObject_id RequestBulkClassificationCount_id Request_id Request_id Name Request_id Request_id ReportType_id ApprovingRole_id NGAContactGallery_id TMSObject_id CountForClassification StartedDate ApprovingUser_id Request_id EntryShortcutAjax_TMSObject_id Classification_id EndedDate Approval_id isNGA Conservator_id Comment Comment Description LastUpdateUserName User_id LastUpdateTime RequestReportStatus_id AnalogImageLocation_id IncludeInFinalObjectReportRequestReportTechnicalInfos Report Column Name LastUpdateUserName RequestReport_id LastUpdateTime TechnicalNotes RequestTMSObject_id BetaRadiograph Attachment RequestReportWorkOrders XRayFluorescenceSpectroscopy Image Column Name InfraredSpectroscopy RequestReportDACs Column Name RequestNonTMSObject_id RequestReportAttachments RequestReport_WorkOrder_id MicroFadometer Column Name RequestReport_id RequestReport_DAC_id FourierTransformInfraredSpectroscopy RequestReportAttachment_id WorkOrder_Line RequestReport_id FluorescenceSpectroscopy RequestReport_id WorkOrderType_id DAC_Record_id ColorSpectroscopy FileName LastUpdateUserName Comment None Other LastUpdateUserName Comment LastUpdateTime 84 LastUpdateTime OtherDescription
  • 85. Simplified Data Model Request to fix paper Request id: 1 Date: 1/1/90 RequestNonNGA Item 3 NGA Item 2 3 XX Y Approved NonNGA Item 5 10 Papers X Approved NGA Item 1 10 Prints Deputy Approved Non TMS Tallies TMS Object Request Approvals Object (Bulk Counts) Reports Examination Treatment Report related Report related Report related Report related Report IRIS Portfolio attachements Tech Info Work Orders Images (DAC) Excel Tech Notes Image ID: 16 Excel Spreadsheet Tech Notes Work Order 10 For exam Image ID: 16 Spreadsheet Work Order 10 Image ID: 16 PDF For exam Work Order 10 Image ID: 14 Work Order 23 85
  • 86. Recent Changes Request TMS ObjectNon TMS / Tallies TMS Object Request Approvals Object NonTMS Object (Bulk Counts) Reports Report related Report related Report related Report related Report IRIS Portfolio attachements Tech Info Work Orders Images (DAC) 86
  • 87. Architecture Web Browser `PHPRunner Application Server (Web Server) SQL Server Database 87
  • 88. Rapid application development From Wikipedia• Rapid application development is a software development methodology, which involves iterative development and the construction of prototypes. theis a merger of various The speed and agility of It RAD tools, allows the structured techniques, especially the data also take Information communication of the design process to driven place In the “Prototype” instead of only the “Design Engineering with prototyping techniques to accelerate software Document”. systems development.• RAD calls for a picture is worth a thousand structured techniques and “If the interactive use of words, a prototype prototyping is worth a thousand Pictures” to define users requirements and design the final system. Using structured techniques the developer first builds - Anonymous preliminary data models and business process models of TEXT the business requirements. Prototyping then helps the analyst TEXT+DIAGRAMS (MODELS, UML,DFD,…) and users to verify those requirements and to formally TEXT+DIAGRAMS + PROTOTYPES refine the data and process models. The cycle of models, then prototypes, then models, then prototypes and so forth on, ultimately results in a combined business requirements and technical design statement to be used for constructing new systems. 88
  • 89. The Big Question ?• Will the “Prototype” ever be good enough to become a real “applications”? Then this Prototype model become “real” powerful• Historically “No”• What’s new?• Dynamic Languages PHP, Ruby, JavaScript and relational database are now making it possible (and inexpensive) 89
  • 90. RADPrototype Development Collect user Requirements Develop Develop/ Initial Update Design Prototype Collect Verify With Document User changes User Approved System 90
  • 91. PHPRunner (step 1)Map relationships between tables 91
  • 92. All the web pages in the application 92
  • 93. User Interface Model Where did “Work Log” come from? Why doesnt “Request” point to “Request Classification count?” Data Model Request Non TMS Tallies TMS Object Request Approvals Object (Bulk Counts) Reports Web Pages related to structure Report related Report related Report related 93 Of request Report Tech Info IRIS Work Orders Portfolio Images (DAC) Report related attachements
  • 94. User Interface Model 94
  • 95. “Request” and “Work Logs” both store data Usersame place (Request Table), they as in the Interface Model are only different in which tables are Linked to them, what appears on there screens and processing rules. Request AKA “Treatment Reports”Request : Reports Allowed : Object Required : Bulk counts not allowed : Have linked Object Report : Approvals (Major Only) Work Logs : Do not contains reports : Allow for Tallies : Object Optional : No Approvals : Simple and Freeform 95
  • 96. Links to Authoritative Sources Portfolio IRIS Employee Database TMS Public Data Extract Nightly Rebuild TMS 96
  • 97. Data Sharing “vwRmt” Create view [dbo].[vwRmtEmployee] as ( SELECT [ID#] . . . ,[RestrictAlpha] ,[PayPlan] ,[Sponsor] ,[Super#] from NGA-LANDESK.Employee.dbo.[T-Employees] where [LastName] is not null 97
  • 98. DocumentationProject Folder•ngagroupTTDPProjectsPCD - Paper Conservation DatabaseKeys Documents•General Design - Draft (PCD) 20090327a.doc•DCL-PA Database 2.ppt 98
  • 99. Future Features• Tabs between children in table• More links to Reports• WebCast for training• Single Signon Integration• Web Reporting• Audit Trail• Mail and Public folders 99
  • 100. Tricks• Triggers to allow multiple selection features• Cascading Drop Down to Emulate Field existence• DB Constraints formatted as error messages• JavaScript as column values• Other . . . 100
  • 101. Toolkit Problems• Multiple Fields to perform different types of selects• Only 2-Level Hierarchy supported• UI customizations might be lost during regeneration 101
  • 102. IssuesMajor Issues• Maintenance – Bugs, Enhancements, Upgrades, Reports – What if the toolkit can’t do it ! (Limitations/Tricks) – Generated code issues (re-customizations) – Dependence on toolkit (Double edge sword)Other Issues• Performance – Network, Query, Concurrency, Scalability• Misc – Security, Upload File Placement, – Editing Capabilities (i.e.Spellcheck), – Search (Attachments), Audit Trail, Delete Logic 102
  • 103. Other Issues• Scope• Production Planning• Testing and QA• Data Conversion• Procedures and documentation• Web Reports• Iterations and upgrades• Integration with existing processes 103
  • 104. End of Main Presentation• Questions 104