Global Logic sMash Overview And Experiences

31
© Copyright GlobalLogic 2009 www.globallogic.co m sMash Overview & Experiences

description

A web application development experience perspective from an IBM Business Partner comparing WebSphere sMash with Ruby on Rails.

Transcript of Global Logic sMash Overview And Experiences

Page 1: Global Logic   sMash  Overview And  Experiences

© Copyright GlobalLogic 2009 www.globallogic.com

sMashOverview & Experiences

Page 2: Global Logic   sMash  Overview And  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?

Page 3: Global Logic   sMash  Overview And  Experiences

© 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

Page 4: Global Logic   sMash  Overview And  Experiences

© 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

Page 5: Global Logic   sMash  Overview And  Experiences

© 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

Page 6: Global Logic   sMash  Overview And  Experiences

© Copyright GlobalLogic 2009 6

Our introduction to sMash

Page 7: Global Logic   sMash  Overview And  Experiences

© 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.

Page 8: Global Logic   sMash  Overview And  Experiences

© 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

Page 9: Global Logic   sMash  Overview And  Experiences

© 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

Page 10: Global Logic   sMash  Overview And  Experiences

© Copyright GlobalLogic 2009 10

sMash Prototype/Demo Overview

Page 11: Global Logic   sMash  Overview And  Experiences

© 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.

Page 12: Global Logic   sMash  Overview And  Experiences

© Copyright GlobalLogic 2009 12

Project Wireframes

Page 13: Global Logic   sMash  Overview And  Experiences

© Copyright GlobalLogic 2009 13

sMash Feature Ratings

- GlobalLogic’s Viewpoint

Page 14: Global Logic   sMash  Overview And  Experiences

© 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.

Page 15: Global Logic   sMash  Overview And  Experiences

© 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 **

Page 16: Global Logic   sMash  Overview And  Experiences

© 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

****

Page 17: Global Logic   sMash  Overview And  Experiences

© 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

!

Page 18: Global Logic   sMash  Overview And  Experiences

© 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

Page 19: Global Logic   sMash  Overview And  Experiences

© Copyright GlobalLogic 2009 19

sMash vs Ruby On Rails (RoR)

Page 20: Global Logic   sMash  Overview And  Experiences

© 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.

Page 21: Global Logic   sMash  Overview And  Experiences

© 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.

Page 22: Global Logic   sMash  Overview And  Experiences

© 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

Page 23: Global Logic   sMash  Overview And  Experiences

© 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

Page 24: Global Logic   sMash  Overview And  Experiences

© 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.

Page 25: Global Logic   sMash  Overview And  Experiences

© 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

Page 26: Global Logic   sMash  Overview And  Experiences

© Copyright GlobalLogic 2009 26

How does sMash fit in with other Programming Frameworks?

Page 27: Global Logic   sMash  Overview And  Experiences

© 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

Page 28: Global Logic   sMash  Overview And  Experiences

© 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

Page 29: Global Logic   sMash  Overview And  Experiences

© Copyright GlobalLogic 2009 29

sMash –

Future Work

Page 30: Global Logic   sMash  Overview And  Experiences

© 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.

Page 31: Global Logic   sMash  Overview And  Experiences

© Copyright GlobalLogic 2009 31

Thank you