global logic smash overview and experiences
DESCRIPTION
A web application development experience perspective from an IBM Business Partner comparing WebSphere sMash with Ruby on Rails.TRANSCRIPT
© Copyright GlobalLogic 2009 www.globallogic.com
sMashOverview & Experiences
© Copyright GlobalLogic 2009 2
Agenda
• GlobalLogic Overview
• sMash Overview
• sMash Prototype/Demo Overview
• sMash Features Ratings – GlobalLogic’s View Point
• sMash vs. Ruby on Rails (RoR)
• How does sMash fit in GlobalLogic’s thumb rules of Project Estimations?
© Copyright GlobalLogic 2009 3
GlobalLogic Overview
Corporate Overview
• Founded in 2000 and backed by Blue Chip VC’s Sequoia Capital, NEA and New Atlantic Ventures
• Headquartered in Vienna, Virginia with Global Delivery Centers in the US, India, Ukraine and China
• Ongoing partnerships with hundreds of innovative technology clients in the Mobile, Telecom, Consumer, Healthcare and Enterprise product verticals
• Thousands of top-tier software engineers and 1,000+ successful client software product releases
• InfoWorld award-winning distributed Agile method and platform for software development (GlobalLogic Velocity™)
• Solutions that span the entire software product lifecycle
GlobalLogic OfferingGlobalLogic partners with both emerging and established technology leaders to provide software product R&D services on a global scale that increase product quality, reduce time-to-market, and lower development and support costs by 30% or more.
GlobalLogic Recognition
#1 Award for Innovation in Distributed Agile Software Product Development: GlobalLogic Velocity™
Global Services 100 Award for Innovative, Leading Service Delivery
© Copyright GlobalLogic 2009 4
© Copyright GlobalLogic 2008
Nearly 200 Client Partnerships (selected)
Travel & Hospitality
Social Ntwkg & Web 2.0
Media & Entertain -
ment
E-tailing
Gaming
Mobile
© Copyright GlobalLogic 2009 5
Some Products That We Have Built
PaidInterviews – Social Media Career Network Workstreamer – Enterprise 2.0 Collab Tool SpinAct – OnDemand Knowledge Marketplace
PrecisionAds – Targeted Ad Platform Kaboodle* – Social Shopping Community SkyFire – Rich Media Mobile Browser* Acquired
© Copyright GlobalLogic 2009 6
Our introduction to sMash
© Copyright GlobalLogic 2009 7
sMash Overview
• Agile web application platform for developing and running modern web applications.
• Simple environment for creating, assembling and running applications based on dynamic scripting language (PHP, Groovy, Ruby)
• Application programming interfaces optimize for producing REST services
• Rich AJAX based web user interfaces• Integration mash-ups and feeds
A complete platform for developing, assemblingand executing Agile Web 2.0 apps quickly and simply.
© Copyright GlobalLogic 2009 8
Why WebSphere sMash?
• Developers want to:–Build Web apps quickly.–Re-use and combine existing apps simply.–Take an Agile approach to Web app development.
•Quick reaction to change•Cost-effective development•Ease of deployment
Speed, Simplicity, Agility
• Developers are adopting:–Dynamic scripting languages for application logic (PHP, Ruby,
Groovy…)•Low barrier to entry, high productivity•Enable “Search, copy and paste” style development
–REST, JSON to tie Web Apps together•Simple, works well with Ajax
© Copyright GlobalLogic 2009 9
WebSphere sMash – Three Mantras
• Speed– Dynamic scripting languages – Fewer lines of code– Brower based tooling
• Simplicity– Leverage preexisting content– Use the web as your SOA platform– Visual assembly style development
• Agility– Small footprint– Easily modify your application– Restart the server in seconds
© Copyright GlobalLogic 2009 10
sMash Prototype/Demo Overview
© Copyright GlobalLogic 2009 11
GlobalLogic Project Resourcing Systemusing sMash
• Ability to map existing GlobalLogic resource skill sets and to customer specific requirements.
• Ability to forecast customer requirements, translate the same into future revenues.
• Customer Project Dashboard
• Ability to create an inventory of skills and figure out what needs to replenished.
© Copyright GlobalLogic 2009 12
Project Wireframes
© Copyright GlobalLogic 2009 13
sMash Feature Ratings
- GlobalLogic’s Viewpoint
© Copyright GlobalLogic 2009 14
Rating Score Terminology
Rating Scale What we are implying!
***** It is unique in this functionality. Standout from existing options. Love it!
**** Big Plus.
*** Very good implementation; and others have it too.
** Good implementation, but others seem to do it better.
* Well, sMash does not have any of this category! So let us skip this.
© Copyright GlobalLogic 2009 15
Highlights - I
No. Key Highlights GlobalLogic Rating
1Convention over Configuration
Allows developers to focus on writing useful code without the distraction of dealing with complex configuration files.
****
2Focus on RESTful Architecture
Increases the interoperability of the components. ***3
Loosely coupled by design
Enables componentization and extensive code reuse *****
4Enhanced Performance
All the server side scripts including PHP runs on Java Virtual Machine (JVM), which is very mature and stable
*****
5Application-centric runtime
Write the app, run it, and it’s ready for use. No need for a separate application server
****
6Scripting Languages
Low barrier to entry (PHP, Groovy) ****
7Trivial Deployment
Very easy to move an app to other machine : zip, copy , run **
© Copyright GlobalLogic 2009 16
Highlights - II
No. Key Highlights GlobalLogic Rating
8Modular Architecture
Features and pre-build services downloaded as required ***
9
Browser-based tooling for client and server-side development
Includes visual tools to simplify Web application interoperation
****
© Copyright GlobalLogic 2009 17
Non-JTA Support
(Assuming here that is an alternative which sMash is proposing in this scenario)
• Considering that sMash does not support JTA transactions, its ability to build products which has Distributed Transactions that occurs across multiple resources is an area of concern.
– Saw this as a big concern in the message boards as the impediment to build serious applications in sMash
No Longer Valid
!
© Copyright GlobalLogic 2009 18
Some Miscellaneous Limitations
– Not an Open Source– Not so easy to learn, requires experience developers– PHP implementation does not seem to be complete.– Error messages are too generic
• When things go wrong, it’s difficult for users to determine the reason and get things working. Documents needs to be enhanced to ease this pain out.
• For example, some commands (ex model_sync) had no message when an error occurred and other had messages that didn’t give much indication of what to do to fix the situation (ex. zso failed)
– Browser dependency to use AppBuilder, only supports Mozilla Firefox
© Copyright GlobalLogic 2009 19
sMash vs Ruby On Rails (RoR)
© Copyright GlobalLogic 2009 20
sMash Vs. RoR
• sMash seems to be providing an easier approach to configure security rules to secure the application (as compared to Java, RoR, PHP)
– For example – in RoR these rules needs to be programmatically implemented; whereas sMash facilitates the same by adding the rules in the configuration file.
• sMash easily allows you to add various types of Authentication modules without changing the authentication model. Again, this needs to be programmed in RoR.
• sMash rides on the proven and tested and matured Java VM as compared to RoR which is still in its infancy.
• By default, sMash comes with DOJO JavaScript library which is a very heavy library. RoR comes with Prototype which is much lighter.
• RoR comes with three application environments (development, test, and production). All these three come with pre-set configurations. This seems to be missing in sMash.
© Copyright GlobalLogic 2009 21
Third party Application
Flickr API Controller
User
Controller
RSS
Controller
Flicker
Model
Flicker
View
Ruby on Rails Application
ViewsModels
Controller
Calls Flickr API Response renders
as
JSON or XML
Flickr API Resource Model
Zero.Data.Manager
IBM sMash Application
Application Resource Models
Calls Flickr APIResponse renders
as
JSON or XML
MySQL DB
MySQL DB
Flickr API Script
Third party ApplicationNeed
to create a
Flickr API
APIs
automatically
handled in
Resource model
RoR and sMash API Integration Comparison
Key Differences• Very high security mechanism used by sMash to provide API services to the Third Party Application.
• In RoR, we need to write our own API for handling the security mechanism while sMash handles implicitly.
• Need to create a Flickr API in RoR where as in sMash APIs automatically handled in resource model.
© Copyright GlobalLogic 2009 22
RoR and sMash Testing Comparison
rake testrake test
test:unitstest:units test:functionalstest:functionals test:functionalstest:functionals
db:test:preparedb:test:prepare
environmentenvironment db:test:clonedb:test:clone
db:schema:dumpdb:schema:dump db:test:purgedb:test:purge connect to ‘test’ dbconnect to ‘test’ db
?
manual]
automated
sMashsMashRuby on RailsRuby on Rails
© Copyright GlobalLogic 2009 23
RoR and sMash Debugging Comparison
Ruby on RailsRuby on Rails
ruby script/consoleruby script/console
load application codeload application codeload railsload rails
access ‘model’ methodsaccess ‘model’ methods inspect objectsinspect objects
debugdebug?
sMashsMash
© Copyright GlobalLogic 2009 24
RoR and sMash App. Initial Deployment Comparison
Start mongrel services and Restart Apache
Install Ruby, gems and rails
Install Apache and Mongrel App Server
Install Database and Setup Apache
Zip RoR Application
Copy the zip file to the server and Unzip the Application
Load Database Schema into DB
Run the Application
Ruby On Rails IBM WebSphere sMash
Install JDK, require database
Zip the sMash Application
Copy the zip file to the Server and Unzip the Application
Resolve the dependences (zero resolve)
Start the Server (zero start )
Run the application
Key Differences• It takes approx. 4-5 hours to setup the RoR server while sMash takes about 20- 30 minutes.
• RoR requires dependencies like ruby engine, gems installation etc while sMash implicitly resolves all the
dependencies by executing zero resolve command.
• RoR application requires resources having some experience of server configuration while sMash application can be easily deployed by any users.
© Copyright GlobalLogic 2009 25
Copy code to App serverCopy code to App server
Migrate database schemachanges
Migrate database schemachanges
Restart App ServerRestart App Server
Copy code to App serverCopy code to App server
Migrate database schemachanges
Migrate database schemachanges
Restart App ServerRestart App Server
Automated Manual
sMashsMashRuby on RailsRuby on Rails
RoR and sMash App. Ongoing Deployment Comparison
© Copyright GlobalLogic 2009 26
How does sMash fit in with other Programming Frameworks?
© Copyright GlobalLogic 2009 27
Thumb Rule for Time Estimations
• Thumb rule for Estimations (for Web 2.0/Community-based application)
Java, .NET (C#) 8 – 9 months
PHP 7 months
RoR 5 months
sMash 3 – 3.5 months
© Copyright GlobalLogic 2009 28
Thumb Rule for Cost Estimations
Effort CostExtreme Scalability
CostsTotal
RoR100K * 5 months = $500K
3*(Server Costs) == ~$530K
sMash
100K * 3 months = $300K
+ License Fee = $10K
===================
Total = $310K
2 * (Server Costs) +
IBM Websphere License Costs
== ~$345K
• Thumb rule for Project Costs Calculations (for Web 2.0/Community-based application)• Assumptions –
– $100K Monthly Burn Costs– Server Costs == $10K/Server– IBM Websphere License Costs ~ $15K
© Copyright GlobalLogic 2009 29
sMash –
Future Work
© Copyright GlobalLogic 2009 30
Suggested Topics for Technical White Papers
• Continuous Integration Framework using sMash for Agile Environments.
• Doing Test Driven Development (TDD) with sMash
• Comparison between sMash and RoR on dimensions such as Virtual Machines, Performance, and Code Complexity
• Case Study on creating a Mashup using sMash and existing applications in other Technology domains using RESTful Services.
• Comparison between sMash and CakePHP or Zend Framework.
© Copyright GlobalLogic 2009 31
Thank you