Developing Web-Enabled Decision Support Systems Developing Web-Enabled Decision Support Systems Ravindra K. Ahuja Industrial & Systems Engineering, University of Florida, Gainesville ahuja@ufl.edu Developing Web-Enabled Decision Support Systems Overview Introduction to Decision Support Systems Building a Web-Enabled Decision Support System Integrating DSS in Business Curriculum JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 2 Developing Web-Enabled Decision Support Systems Decision Support Systems (DSS) A decision support system is an information system that assists the user in decision-making. Knowledge Base Database Model Base GUI User JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 3 Developing Web-Enabled Decision Support Systems Developing Interactive Systems Practical decision making requires developing man-machine interactive systems. Input Data The Model Output, Reports User Interface, Re-optimization JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 4 Developing Web-Enabled Decision Support Systems Importance of DSS Development Skills Help us package models and algorithms. Combine modeling with human experience Highly desirable for consulting jobs for students Useful for academics to get industry grants New consulting opportunities for faculty members JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 5 Developing Web-Enabled Decision Support Systems DSS Development Process Data Storage Mechanism MS Excel, Lotus 123 MS Access, Oracle, MS SQL Server, Dbase Data Manipulation Visual Basic for Applications (VBA) Visual Basic .NET (VB .NET) Java, C/C++ Data Presentation VBA, VB .NET, MS Access, ASP .NET Java Applets JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 6 Developing Web-Enabled Decision Support Systems Two Common Ways to Develop DSS Spreadsheet-Based Decision Support Systems Spreadsheets Excel features VBA for Excel Web-Enabled Decision Support Systems Databases Microsoft Access VB .NET ASP .NET JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 7 Developing Web-Enabled Decision Support Systems Overview Introduction to Decision Support Systems Building a Web-Enabled DSS Integrating DSS in the Business Curriculum JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 8 Developing Web-Enabled Decision Support Systems Components of a Web-Enabled DSS Users Databases Database Management System (Access DBMS) Database Application DBMS Developing GUI Web-Enabling the Application JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 Database 9 Developing Web-Enabled Decision Support Systems Data Modeling Systematically converts E-R Diagram into Relations Company Name DateAdded Symbol Type PID PORTFOLIO STOCK Has Object Data Model Quantity Portfolio PID Name DateAdded Portfolio Details PID Symbol Quantity Relational Data Model Stock Symbol JULY 9, 2004 Company Type INFORMS TEACHING MS WORKSHOP 2004 10 Developing Web-Enabled Decision Support Systems Access DBMS: Developing Environment Access Environment: Facilitates development process. Toolbar Main Menu Database Window Object Bar Table Objects Database View JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 11 Developing Web-Enabled Decision Support Systems Tables and Relationships Tables: Stores data Relationships Window: Relates data Database Tables Attributes JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 12 Developing Web-Enabled Decision Support Systems Queries Queries: Processes data Table Pane Design Grid Query Output JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 13 Developing Web-Enabled Decision Support Systems Data Manipulation using SQL Structured Query Language (SQL) is the most powerful and commonly used query language. Sample SQL Command: SELECT PorfolioID, Name, Type FROM tblPortfolio WHERE Type Like “Auto*” OR Like “Insurance*” JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 14 Developing Web-Enabled Decision Support Systems Components of a Web-Enabled DSS Users Databases Database Management System (DBMS) Developing GUI (VB .NET) Web-Enabling the Application (ASP .NET) JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 Database Application DBMS Database 15 Developing Web-Enabled Decision Support Systems What is .NET ? .NET is a set of Microsoft software technologies for connecting information, people, systems, and devices. .NET Framework is a common layer between .NET applications and Windows OS. . Net Applications VC++ VB C# Other Other Components Class Library Common Language Runtime (CLR) Windows Operating System JULY 9, 2004 .NET Frame work .NET Applications are VB / VC++ / C# programs written on .NET Framework. INFORMS TEACHING MS WORKSHOP 2004 16 Developing Web-Enabled Decision Support Systems VB .NET Developing Environment Visual Studio .NET is the Interactive Development Environment (IDE) for .NET applications. Design Window JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 17 Developing Web-Enabled Decision Support Systems Exploring VS .NET IDE Features … Create new/open existing projects. (Open the existing portfolio application.) Solution explorer lists all the files for the current solution. (Double click ‘Welcome.vb’ file to view its design.) JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 18 Developing Web-Enabled Decision Support Systems Exploring VS .NET ID Features (Contd…) Design Window is the actual work place; displays form design and VB .NET code. (Double click anywhere on this form to open its code window.) ToolBox is a gazette of controls: forms building blocks. (Add a button and label controls to the form.) JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 19 Developing Web-Enabled Decision Support Systems Exploring VS .NET ID Features (Contd…) Properties Window sets properties for controls and in a way their appearance and behavior. (Set Name, Text, Font, Back Color properties on these controls.) Menu bar and Toolbars are handy for supporting operations like save, run, add items. (Save the project and run the application.) JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 20 Developing Web-Enabled Decision Support Systems VB .NET Programming Language Like other programming languages VB .NET supports: Interaction with user (user input / output) Arithmetic, logical, and string operations Control structures Modules, Classes, Procedures, Methods Data structures like arrays A A Loop False True Conditio n Else Condition If B JULY 9, 2004 True False B INFORMS TEACHING MS WORKSHOP 2004 21 Developing Web-Enabled Decision Support Systems Programming…Interactive Process VB .NET is event driven programming. (Double click the button control and add following code for its OnClick event.) Event List Code window lists all the controls and their events for us. (Browse the combo boxes on top of the code window.) JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 22 Developing Web-Enabled Decision Support Systems Programming...Interactive Process (Contd) Programming is even more fun now. Get all the help online as you code. IntelliSense Online tip Organize your code in nice and neat format using region feature of IDE. (Browse through to play with these features.) JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 23 Developing Web-Enabled Decision Support Systems ADO .NET: Database Connectivity ADO .NET structure makes is easy to: Connect to a database Run SQL queries against it Store and further process query results Add/Update/Delete records from database Databases Connection JULY 9, 2004 Data Adaptor (SQL Query) Datasets (Stores query output) INFORMS TEACHING MS WORKSHOP 2004 VB .NET Forms & Controls 24 Developing Web-Enabled Decision Support Systems ADO .NET: Database Connectivity (Contd..) Steps for querying a database and showing results on VB .NET form: Connect to a database (once for a project) Create a data adaptor with desired SQL statement Create a dataset to store query results Bind the control to the dataset Run the query by writing VB .NET code JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 25 Developing Web-Enabled Decision Support Systems Connection, Adaptor, and Dataset Server Explorer makes it easy to connect to a database. (Connect to the Portfolio database.) Drag & Drop Toolbox assists in the creation of data adaptors, and data sets. (Portal form: Add an adaptor and a dataset to get the list of portfolios.) JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 26 Developing Web-Enabled Decision Support Systems Binding Controls to Dataset We then bind controls to datasets to show query results on forms using property window for a control. (Bind the dataset created to the list box on Portal form.) JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 27 Developing Web-Enabled Decision Support Systems Writing Code to Execute a Query? Next we run the query and display the data. It is done by writing 2 lines of VB .NET code. (Write this code for list box control on page load event.) JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 28 Developing Web-Enabled Decision Support Systems VB .NET Events and Data Retrieval Data retrieval (using adaptor and datasets) and VB .NET events can be combined together for interesting functionalities. (On selection of portfolio from list display its details in the data grid control.) JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 29 Developing Web-Enabled Decision Support Systems VB .NET Events & Data Retrieval (Contd..) Steps: Create adaptors and datasets and bind them to respective controls. (Bind to list box and data grid.) Execute a parameter query for second control on some event of first control. (Here we execute parameter query for data grid on selection change event of list box.) JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 30 Developing Web-Enabled Decision Support Systems Add/Update/Delete Records from DB Data adaptor, dataset and their methods makes altering database very easy. (Add these one liners to OnClick event of respective buttons.) Me.BindingContext(DsInvInfo,"tblInvestor") .CancelCurrentEdit() Me.BindingContext(DsInvPort, "tblPortfolio") .RemoveAt (lstPort.SelectedIndex) JULY 9, 2004 OleDbInvInfo.Update(DsInvInfo) INFORMS TEACHING MS WORKSHOP 2004 31 Developing Web-Enabled Decision Support Systems Using VB .NET’s Advance Controls We can use advance controls like Check List Box, Trees controls for nice functionalities. (Use check list box to display list of stocks allowing multiple selections, then display data for all selected stocks in the data grid.) JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 32 Developing Web-Enabled Decision Support Systems Using VB .NET’s Advance Controls (Contd..) We can use advance controls line Date Time Picker for professional looks. (Use this control to allow user choose year for performance graph.) JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 33 Developing Web-Enabled Decision Support Systems VB .NET and OOPS VB .NET is a complete Object Oriented Programming Language (OOPL). VB .NET with its Class structure now supports all three basic OOP principles: Encapsulation Inheritance Polymorphism What it is good for? Data hiding and data encapsulation Code reusability Split the development task into independent modules JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 34 Developing Web-Enabled Decision Support Systems Other Supported Features Exception Handling: Preparing for worse!! (Browse through the code for portfolio form for Try... Catch ... End Try blocks.) Code Debugging: Towards perfection! (Press F5 and click for optimization, debugging window pops up, press F8 to step through.) JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 35 Developing Web-Enabled Decision Support Systems Plug-in Optimization/Simulation Packages Some of the available options are: Optimization code using VB .NET language. (Illustrated next.) Use VB .NET to connect to C/C++ code. (Using DLL files or through flat text files.) Use MS Excel functionalities. For example, we can use Excel Solver functionality to solve small to medium size optimization problems through VB .NET. JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 36 Developing Web-Enabled Decision Support Systems Portfolio Optimization Problem Optimization Code Results On Click User Input JULY 9, 2004 Dataset has Data From Database INFORMS TEACHING MS WORKSHOP 2004 37 Developing Web-Enabled Decision Support Systems Working with Crystal Reports Crystal reports are used to produce professional quality reports/graphs to summarize information. (Plot the pie chart for the output of the portfolio optimization result.) JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 38 Developing Web-Enabled Decision Support Systems Working with Crystal Reports (Contd..) Steps for displaying crystal report on VB .NET form: Have the data to plot in a dataset. (This might be from database or result of some operation like optimization.) Create the crystal report layout using “Report Expert Wizard” (Select type, fields, format etc. for graph.) Associate the crystal report and the dataset in VB .NET code. (This requires only 3 lines of code.) JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 39 Developing Web-Enabled Decision Support Systems Working with Crystal Reports Dataset with data to plot (Contd..) VB .NET Code Chart Expert Wizard Final Graph JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 40 Developing Web-Enabled Decision Support Systems ASP .NET – Web Connectivity ASP .NET = Internet + HTML + VB .NET Knowledge of Web Terms and Internet Hypertext Manipulation Language (HTML) - for data presentation Visual Basic .NET (VB .NET) - code behind web pages, for data manipulation JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 41 Developing Web-Enabled Decision Support Systems How This Works? JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 42 Developing Web-Enabled Decision Support Systems Developing ASP .NET Application Developing ASP .NET Application is very similar to VB .NET Application development. (Make Portal form of VB .NET application web-enabled using ASP .NET.) We use Web Controls and HTML controls for Windows controls used in VB .NET application. VB .NET code with minor additions can be used as ‘code behind’ for ASP .NET pages. HTML code is automatically generated by the Visual Studio .NET IDE. JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 43 Developing Web-Enabled Decision Support Systems Overview Introduction to Decision Support Systems Building a Web-Enabled DSS Integrating DSS in Business Curriculums JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 44 Developing Web-Enabled Decision Support Systems Teaching DSS Development Courses The University of Florida is currently offering two separate courses on DSS Development: Developing Spreadsheet-Based DSS Developing Web-Enabled DSS 3-credit courses Project-oriented courses JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 45 Developing Web-Enabled Decision Support Systems Course Delivery Hands-on course Students bring laptops Instructor uses LCD Projector After basic topics from PowerPoint presentations are taught, we do in-class assignments. Weekly homework assignments. Students do semester-long team projects in which they develop full DSS applications. JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 46 Developing Web-Enabled Decision Support Systems Outline of Web-Enabled DSS Course Part 1: (3 weeks) Database design principles Microsoft Access, Tables, Queries, SQL Part 2: (6 weeks) .Net Platform, VB .Net programming Language Windows forms and controls, Database connectivity Crystal reports Part 3: (3 weeks) HTML, ASP .Net, Database connectivity in Web forms Part 4: (2 weeks) Project work Developing and presenting DSS applications JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 47 Developing Web-Enabled Decision Support Systems Web-Enabled DSS Textbook Abhijit Pol Ravindra K. Ahuja JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 48 Developing Web-Enabled Decision Support Systems The Book Outline Part I: Principles of Database Design Part II: MS Access: A DBMS Part III: DB Programming using VB .NET Part IV: Web-Connectivity using ASP .NET Part V: Case Studies JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 49 Developing Web-Enabled Decision Support Systems Case Studies NASA’s Rocket Science University Student Information System TV Channel Project Airline Scheduling Portfolio Management Online Shopping JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 50 Developing Web-Enabled Decision Support Systems Additional Course Material PowerPoint Presentations Review Questions and Hands-On Exercises Solution Manual for Instructors Student Team Projects Web Resources JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 51 Developing Web-Enabled Decision Support Systems Another DSS Textbook Michelle M. Hanna Ravindra K. Ahuja Wayne L. Winston JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 52 Developing Web-Enabled Decision Support Systems DSS Development Workshop JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 53 Developing Web-Enabled Decision Support Systems Additional Information Course material website: www.ise.ufl.edu/IT Workshop website: www.ise.ufl.edu/DSS Interested in course material? Please give us your card or email address. JULY 9, 2004 INFORMS TEACHING MS WORKSHOP 2004 54