Hi, I propose the following definitions and computing platforms for the P5EE initiative. The main thing I wanted to do was propose the range of platforms that P5EE-compliant software should run on (see at bottom). Thoughts are welcome.
Stephen The following definitions are excerpted from http://www.officevision.com/pub/p5ee/enterprise.html Definitions Simply put, something in the realm of computing becomes an "Enterprise" thing when it is worthy of and suitable for use in large enterprises. For the purposes of this P5EE specification, the following definitions will be used. * Enterprise System - Enterprise Software running on an Enterprise Platform * Enterprise Solution - same as an Enterprise System, but emphasizing that the system solves an Enterprise Problem * Enterprise Software - Software that solves an Enterprise Problem (rather than a departmental one) and that is written with an Enterprise Software Architecture * Enterprise Software Architecture - A Software Architecture which allows software to exhibit all of the attributes of an Enterprise System when run on an Enterprise Platform * Enterprise Platform - A set of computing and networking resources which enable installed Enterprise Software to exhibit the full attributes of an Enterprise System (most often referring to availability, scalability, and reliability) The following platform descriptions are excerpted from http://www.officevision.com/pub/p5ee/platform.html The following computing platforms are defined. They are not all Enterprise Platforms. However, they are all platforms which P5EE software should run on. This is because P5EE software will often be developed, demonstrated, evaluated, or even operated initially on these platforms. The software may be upgraded to an Enterprise Platform at any time. This will be one of the major advantages of the P5EE Software Architecture: its support for a variety of Platforms. Platform Overview * CGI only, Single System (unprivileged) - a typical ISP/web-hosting arrangement. * CGI, Single System (unprivileged) - a typical way that a corporate user or university student can set up the platform without getting system administrators involved. This differs from the "CGI only" because the user also has the privilege to run daemons and schedule jobs. * Single User mod_perl, Single System (unprivileged) - a typical way a developer will do development * mod_perl, Single System (unprivileged) - like the "CGI, Single System (unprivileged)" system but higher performance and more resource-intensive * mod_perl, Single System (privileged) - a simple, entry-level production platform. This has only a single, mod_perl-enabled Apache server to handle static and dynamic requests. * Mirrored (unprivileged) - the closest thing to a highly-available system that can be set up by non-privileged users. Data is replicated in near-real time between a collection of machines, and any of the participating mirrors may be used to access the same applications and data. Each of the mirrors may choose to be implemented as one of the other platforms. This also supports the detachment of mirrored systems from the network (i.e. laptops) and later reattachment and synchronization. * Dual Redundant System - entry-level Enterprise platform, offering simple failover from the primary to the backup secondary system (no load-balancing) * Single Site Cluster - typical Enterprise platform, offering virtually unlimited scalability through load-balancing and redundancy of every computing resource * Multi-Site Cluster - global Enterprise platform, offering everything a Single-Site Cluster offers in terms of scalability, but with the added advantage that multiple sites dispersed geographically may handle regional load and guard against major regional catastrophes like earthquake, nuclear attack, etc.
