Thoughts about Application Platforms

Thoughts about Application Platforms

There are various platforms in use for applications at UC Davis, and this diversity is likely to to continue into the future.  This document has some initial thoughts about the circumstances in which platform standardization makes sense, and which platforms best fit those circumstances.

For the purposes of this draft, "platform" refers to the stack of middleware, operating system, programming languages, database backends, hardware, etc. that is required to run an application.  It should be noted that some platforms are flexible at some layers of the stack, allowing alternative selections for operating system, hardware, etc., and others are less flexible.

General Thoughts

  • Selection of a platform is generally a balance among a number of possibly competing factors:
    • Learning the platform
    • Writing code
    • Maintaining code
    • Capacity scaling
    • Interoperability with campus standards for identity management, information access, process integration, etc.
    • Robustness, stability, and security of the platform
    • Availability of expertise, support, and infrastructure
  • The importance of these factors to UC Davis for a particular application depends on the context of that application:
    • UCD-wide - One instance providing services for all of UCD
    • Shared - One instance providing services for specific colleges and departments
    • Reused - Multiple instances of an application within specific colleges and departments
    • Local - Applications that are used within a single college or department
  • It also depends on other factors:
    • Volume of use
    • Sensitivity of the data
    • Criticality of the system
    • ...

Using this paradigm, we can represent the appropriateness of various application platforms with the following table, the cells of which are completed in consideration of the competing factors listed above:

Application Context

 

UCD-wide

Shared

Reused

Local

Java

 

 

 

 

.NET

 

 

 

 

ColdFusion (Scripting)

 

 

 

 

Oracle IDS/Forms

 

 

 

 

Oracle RDBMS

 

 

 

 

PHP

 

 

 

 

Other Factors

 

Volume of Use

Sensitivity

Criticality

...

Java

 

 

 

 

.NET

 

 

 

 

ColdFusion (Scripting)

 

 

 

 

Oracle IDS/Forms

 

 

 

 

Oracle RDBMS

 

 

 

 

PHP

 

 

 

 

Things We'll Need

  • Descriptions of standard/canonical platform configurations.
  • Interoperability standards
    • Service bus
    • Workflow
    • IAM
    • Presentation (browser)
  • Repository of information and documentation for developers.  (See, for example, http://tif-infrastructure.ucdavis.edu/for-developers.)
  • Training for developers?