Enjoying the Ride: Web framework alternatives, scalability and flexibility
Topic objectives
Upon the completion of this workshop, developers or managers should be able to:
· Discuss and analyse the latest Web framework technologies based upon experiences so far with Ruby on Rails
· Identify and evaluate challenges and opportunities concerning the use of the latest Web 2.0 technologies and to ‘benchmark’ (compare) other alternatives;
· Discuss and evaluate current Ruby on Rails framework and the alternative emerging technologies.
· Evaluate and devise scalability, flexibility, capacity planning and performance testing strategies for conducting e-commerce.
· Deploy Web 2.0 or later technology in their business environments such as the ideas and methods of the ‘RailsSpace’ approach to the OTBS
· Think critically and analytically when exposed to new technologies.
· Share your findings with your peers and examine what the other team is doing.
IT INFRASTRUCTURE MANAGER’S THREAD (BLUE team)
To Do:
Are we certain that Ruby on Rails is the right platform for Web development?
Your findings should answer that question using the Blue team wiki inside Interact.
Blue team IT managers need to write a team report on the wiki about the alternative frameworks, focusing on issues of scalability, flexibility. In addition a plan for capacity planning, performance testing, site maintenance and future development of the OTBS is presented. Chapter 17 of Hartl et al (2008) is a good place to start. The structure and content and comments made in the wiki report is up to you and your team members.
[This is open to include current alternative frameworks offered by Google Apps, JQUERY, Django, Adobe as well as Java and .NET frameworks that can be included. Your research may also expand the scope to include content management systems.]
The Web 2.0 is no longer a static Web page to show something, the Web 2.0 websites are more interactive with the viewers to receive as well as provide information. According to Tim O' Reilly, the Web 2.0 'can build on the interactive facilities of "Web 1.0" to provide "Network as platform" computing, allowing users to run software-applications entirely through a browser. Users can own the data on a Web 2.0 site and exercise control over that data. These sites may have an "Architecture of participation" that encourages users to add value to the application as they use it.
(O'Reilly, 2005)
O' Reilly, T. (2005). What Is Web 2.0. Retrieved on 24 May 2010 from http://oreilly.com/web2/archive/what-is-web-20.html
The Ruby and Rails is a web development framework that enables the Web 2.0 websites to be easily constructed, the major features can be summarized as below. (LinuxJournal.com, 2008)
- MVC architecture: Ruby on Rails is based on the MVC (Model View Controller) architecture that enables the data to be separated from presentation.
Database Access Library: Ruby on Rails includes a database access library - Active Record - that simplifies data handling in databases. Active Record automatically maps tables to classes and rows to objects.
Libraries for common tasks: Ruby on Rails includes a host of libraries that simplify the coding of common programming tasks such as form validations, sessions management, etc.
AJAX Library: An extensive library of AJAX functions is provided in the Rails framework. Ruby code can be used to generate AJAX code. The associated java scripting required for AJX gets generated automatically.
Convention over configuration: Ruby on Rails does not have any XML configuration files. It includes simple programming conventions that can be used to specify the configuration parameters.
Customized URL: Custom or Search Engine Friendly URLs can be developed using the Ruby on Rails framework.
Debugging: Detailed error logs are provided, making it easier to debug applications.
Components: Components can be used to store reusable code. Components can
- be included to modularize templates.
LinuxJournal.com. (2008). Ruby on Rails Features. Retrieved on 24 May 2010 from http://www.linuxjournal.com/content/ruby-rails-features-railsonrubycom
Besides RoR, there are many Web development platforms on the market, e.g. PHP, Java, .NET, Google Apps... many more. All these frameworks are adopted by different camps and all the proponents support their favor from their point of views. There is no 'absolute' objective comparison because the features and operating environments could be vastly different.
A 'qualitative' comparison by Tim Bray, the Director of Web Technologies of Sun Microsystems, was done by comparing the different Intrinsics. The intrinsics are used to handle issues as below:
Intrinsics
| Issues |
Scaling
| Load Balancing, CPU, Observability, File I/O, Sharing-nothing, DBMS
|
Developer Speed
| Compilation Step, Code Size, Development Step, Configuration Process
|
Development Tools
| IDE, Templating, How many tools? O/R Mapping, Performance, Documentation
|
Maintainability
| MVC, Language count, Object Orientation, Code Size, Readability
|
After consideration of the factors, below is the comparison.
From this comparison, the RoR is good at Development Speed and Maintainability, but not the Scaling and richness of Developer Tools
Bray, T. (2008). Issues in Web Frameworks. Retrieved on 24 May 2010 from http://www.tbray.org/talks/php.de.pdfAnother comparison is done by Sergii Gorpynich, the CTO of Cogniance and leads Cogniance engineering team, five web frameworks are compared: (Gorpynich, 2010)
Web Framework Technologies
|
J2EE/EJB3 |
J2EE/Spring-Hibernate |
Ruby/RoR |
LAMP/Python |
LAMP/PHP |
.NET |
The comparison is based on below factors.
Speed of development - this parameter defines how quickly, easily and with what level of quality you can implement typical features of your web solution - such as user registration and profile management forms, RSS and podcast feeds, browser-based logic etc.
Performance - this defines the degree of scalability and responsiveness of your solution.
Level of adoption by the industry - this factor defines how much of an industry standard given technology is. When defining this criterion, things such as number of well-known web products built on this technology, size of the supporting community, availability of documentation and other learning materials should be taken into consideration.
Learning curve - a level of effort and time required for the project team to develop expertise with this technology. The less known the technology is, the higher the learning risk would be.
Cost of ownership - this variable defines total cost of ownership and includes initial acquisition costs, operating and maintenance costs, and (possibly) switching costs.
By summing the total points, the final result is:
The conclusion here is:
Cumulative data across all requirements suggests that currently Ruby/RoR and Python are the best choices for building Web 2.0 startup, with PHP and Java being good alternatives. .Net is significantly behind its competitors and can hardly be a recommendation.
Gorpynich, S. (2010). Web 2.0 startups. Choice of server-side. Retrieved on 24 May 2010 from http://www.cogniance.com/expertise/white_papers/web2.0-technology-choice
Final Verdict:
Ruby on Rails is the right platform for Web Development.