Monday, January 4, 2010

Section A.2.  Three Open Source Platforms









A.2. Three Open Source Platforms


It is possible to consider a platform from many different levels and many different scopes. Linux, for example, was created on the GNU platform for software development. Bricolage, a content management and publishing system, was created on the platform created by the Perl language and the huge set of libraries written in Perl. The Yahoo! web site was created on a platform assembled from all sorts of software, infrastructure, and applications, from both the commercial and open source realms.


Our analysis will focus on three types of platforms:


  • Platforms for application development

  • Platforms for infrastructure

  • Platforms for applications



A.2.1. Platforms for Application Development


Of the three types of platforms, open source is probably strongest as an application development platform. Open source has always been best at serving the needs of the developers who create it. The challenge for an IT department in choosing open source as an application platform is narrowing the choices to the smallest number of languages. Open source development can occur in C, C++, Perl, Python, PHP, or Java using a variety of different compilers, application servers, and libraries. The problem for IT departments is choosing among these languages. All of them are viable, stable languages that have been used to create great software. The sorts of questions an IT department should ask when looking at using open source as a platform for development include:


  • What libraries are most important to our short-, medium-, and long-term development needs?

  • What related infrastructuresuch as application servers, source code management systems, and debugging and testing environmentsis available?

  • What other applications or important software infrastructure are written in the language?


By asking these questions, an IT department has a better chance of choosing a platform for development that will be reusable and will meet its long-term needs.




A.2.2. Platforms for Infrastructure


For the operating systems, application servers, web servers, and data center management software used to run a computing environment, open source has a variety of interesting platforms. Linux, of course, is the most popular operating system, but it's not the only one. BSD has remained popular. Apache is the most popular web server, with no real competition for general use. MySQL and PostgreSQL are two of many choices available for databases.


When choosing open source as an infrastructure platform, it is important to ask the following questions:


  • What infrastructure software makes the most of the IT department's existing skills?

  • What infrastructure is used by applications of interest to the department?

  • How widely used and supported is the infrastructure component under consideration?

  • How well does any infrastructure component work with existing parts of the department's infrastructure?




A.2.3. Platforms for Applications


Applications are the most difficult of the three forms of open source to assemble into a coherent platform. As most IT veterans know, the largest struggle in most IT departments is to make applications work seamlessly together. Most open source applications were built on open source development environments and infrastructure, but were not constructed to work with any other open source applications.


Another problem for open source applications are the large gaps in terms of the business process coverage that most IT departments need to support. Although open source solutions exist for ERP and CRM, the functional footprint of these applications is smaller than that of their commercial counterparts. The integration with other programs is also far less mature. Furthermore, vast swaths of enterprise applications, such as for SCM, PLM, HR, and SRM, are virtually untouched by open source.


Applications probably represent the largest opportunity for open source, but IT departments should take care to ask the following questions when choosing a set of open source applications:


  • How closely will an application need to work with other applications?

  • How integration friendly is the application?

  • Is the application based on development and infrastructure environments that are already supported or are easily supported?

  • How mature is the application?

  • What APIs or other hooks are provided so that IT departments can develop higher layers of applications?


By asking these sorts of questions, an IT department has the best chance of choosing wisely as it finds its way to the optimal collection of open source.










    No comments: