A Tale of Two Systems
René Reitsma, Oregon State University
Kevin Krueger, Oregon State University
Copyright Year: 2017
Publisher: Oregon State University
Conditions of Use
Table of Contents
- 1. TeachEngineering (TE) Overview
- 2. Why Build (Twice!) Instead of Buy, Rent or Open Source?
- 3. TE 1.0 – XML
- 4. TE 2.0 – JSON
- 5. Relational (TE 1.0) vs. NoSQL (TE 2.0)
- 6. Document Accessioning
- 7. Why Build Revisited
- 8. The Develop… Test… Build… Deploy Cycle
- Appendix A: When Editing Code Files, Use a Text Editor; Not(!) a Word Processor
- Appendix B: (Unintended?) Denial of Service Attack
- Appendix C: Fake Link Requests
- Appendix D: I am robot…
About the Book
This is the story of a web-based information system rebuild. The system in question is www.teachengineering.org, a digital library of K-12 engineering curriculum that was built from the ground up with established technology and which for 13 years enjoyed lasting support from its growing user community and its sponsors. These 13 years, however, cover the period during which smart phones and tablets became commonplace, during which the Internet of Things started replacing the Semantic Web, during which NoSQL databases made their way out of the research labs and into everyday development shops, during which we collectively started moving IT functions and services into ‘the cloud,’ and during which computing performance doubled a few times, yet again. During this same period, TeachEngineering’s user base grew from a few hundred to more than 3 million users annually, its collection size quadrupled, it went through several user interface renewals, and significant functionality was added while having an exemplary service record, and it enjoyed continued financial support from its sponsors.
In this monograph we provide a side-by-side of this rebuild. We lay out the choices made in the old architecture —we refer to it as TE 1.0— and compare and contrast them with the choices made for TE 2.0. We explain why both the 1.0 and 2.0 choices were made and discuss the advantages and disadvantages associated with them.
About the Contributors
René Reitsma is a professor of Business Information Systems at Oregon State University’s College of Business. He grew up and was educated in the Netherlands. Prior to receiving his PhD from Radboud University in 1990, he worked at the International Institute for Applied Systems Analysis (IIASA) in Laxenburg, Austria on a project developing an expert system for regional economic development. René joined the University of Colorado, Boulder’s Center for Advanced Decision Support in Water and Environmental Systems (CADSWES) in 1990, working on the design and development of water resources information systems. In the summer of 1998 he accepted a faculty position in Business Information Systems at Saint Francis Xavier (STFX) in Nova Scotia, Canada. He joined the faculty at Oregon State University in 2002.
Kevin Krueger is Founder and Principal Consultant at SolutionWave, a boutique custom software development firm. With more than 15 years of software development experience, he currently specializes in web application development. He enjoys the exposure to a wide variety of industries that being a consultant affords him. Depending on the client, he acts in a number of roles including softwaredeveloper, product manager, project manager, and business analyst. He has worked on projects for Fortune 500 organizations, large public institutions, small startups, and everything in between.