Romulus,
Java Web Development made productive
Carlos A. Iglesias
Luca Garulli
Agenda
Romulus project
First release
JavaTeam
Wapiti
MyCocktail
Janiculum - Roma JSPView
Joe’s story: The lead
I have a new lead. A web for managing online product information, just listing and seeing details
Carlos A: Iglesias - [email protected]> – , Luca Garulli - [email protected]
Javaday Roma III Edizione – 24 gennaio 2009
Joe’s story - Estimation
There is a new possible project, a web for managing an online catalog, could you please estimate the project size?
Well, it seems too easy but this is not the case
Why not ? Come on guys, this is an important project
We will need hibernate for caching, and it requires lots of expertise we do not have
And there is a new version of it, maybe we find some bugs or no documentation
Joe’s story - Estimation (II)
So?
We could find problems with this new technology...
Hey guys, have you thought that the solution should be scalable?
Ok I’m getting scared nowCarlos A: Iglesias - [email protected]> – , Luca Garulli - [email protected]
Javaday Roma III Edizione – 24 gennaio 2009
Joe’s Story - Estimation
(III)
Quit my suffering, how much effort?
Well, we could make an effort... 5 people and 3 months, but not less
6 people 3 months
Come on, this a simple application we are talking about, isn’t that way too much?
Overtimed again… always the same with management Can’t wait to be boss Oh God… always the same with this people! I wish I were a programmer again
Joe’s Story – Preparing the proposal
The baring of a child takes nine months, no matter how many women you use…
Joe’s Story – Possible ending 1
The customer has accepted only 75.000€, so be efficient
Err.. ok,
we will do our best We are doomedWe cannot bend iron with our bare hands…
Software is like bananas, they ripe at the customer site…
Joe’s Story – Possible ending 2
We blew it. The customer has accepted another proposal. Joe, can you explain to me how can we be so expensive?
Web Java Development problems
New trends and issues appear all the time (rich clients, web 2.0, application composition, …)
Too many tools and frameworks
Too much hand-coding
Too many layers
Lessons learnt from RoR
Life can be easier for programmers
RoR is thought by programmers, not companies fighting in the definition of JSRs
PROBLEM SOLVED
The magic of Scaffold
Automatically generates skeleton for CRUD apps
Convention over configuration
Instant feedback
DRY principle
RoR Problems
Huge number of Java developers and production ready Java components installed
Focus on web applications; false sense of productivity
Hides what happens inside
Support: community, personnel, tools
Romulus project
Domain Driven Design and Mashup Oriented Development based on Open Source Java Metaframework for Pragmatic, Reliable and Secure Web Development”
Joint project of Gesfor (ES),
Asset Data (IT), DERI (IE),
UPM (ES), Liferay (DE),
IMOLA (IT) and ICI (RO).
Seventh Framework Programme for Research
and Technological Development: 2007-2013
Romulus goals
Increasing productivity of web software development, focused on Java, based on a metaframework, Domain Driven Development and Model Design Architecture.
Increasing software productivity by using mashup oriented development.
Enhancing the quality of SW development by involving soft goals such as reliability, traceability, security and performance, as well as other quality attributes from the conception of the software.
Balance between client technologies, server technologies and scripting languages
Romulus overview
Security Scalability Testing
M ash u p s Data Enterprise Web Service Portal IDEs
Methodology & Best Practices Semantic
Social Notifier Client Server Scripting Vertical Demostrators
Let’s get real
Success indicators
Reducing time to market Reducing costs
Improving quality
Metaframework +DDD + MDA
Metaframework: ROMA Integrates key frameworks
Uses a set of behaviour interfaces instead of framework APIs directly
Allows to select the targeted framework and change it without touching code But allows to exploit the strengths of underlying frameworks
The aim is to cover the 80-90% of most common functionalities (the most used). The other 10-20% uncovered can be used using the framework implementation Define an agile methodology for web apps based on the metaframework
Mashup Oriented Development
Library of mashable elements ready to use!
IDE plugin for the mashup creation
Data-level mashups – Integration heterogeneous data sources
Mashup web services – compose and provide services such as Google Maps / Yahoo Pipes Portal mashups: services for portlets (comments / ratings, attachments, CMS, ...)
Enterprise mashups: ESB/JBI integration
II
MASHUP ORIENTED DEVELOPMENT
M ash u p s Data Enterprise Web Service
Romulus projects
Java
developers
Producti vity needs Security needs Mashup Community needs Enterpris Reliabilit y needs EndUser Application sMyCocktail
Tool for creating mashups based on Afrous
Similar to Yahoo Pipes.
Full client technology (JavaScript / Ext)
Provides:
Ability to build (and save) mashups from Amazon,
Flickr, Google, …
Operators to manage JSON
Soon: Mashup Editor.
MyCocktail
Case study
Extend Java App functionalities... without
programming
Test scenario: savings
Huge saving compared to custom
development
CRM integration
Amazon product info
Blog, comments on products
…
Wapiti
Wapiti. Web Application Security Scanner
Project created in 2006 by Nicolas Surribas
Written in Python
More than 18,700 downloads in sourceforge.net
Gesfor joins the project in 2008 within Romulus
Refactoring of code, release Wapiti 2.0
Extensibility of attacks; check it with WebGoat
Web interface and portal
Wapiti
Black-box approach
Method: fuzz testing
Vulnerabilities that it can detect:
XSS
SQL Injection
CRLF Injection
Test scenario: savings
Solves security issues often unknown for developers
(SQL injection, XSS, …)
No users access or other security concerns
No costly white box / Black box tests
Application expertly secured
IDE Integration
IDEs
Current console functionalities
Plug-in
Automatic generation of configuration files
Navigation for related resources
Test scenario: savings
No need to learn new IDEs for each framework
Improved efficiency
Roma Janiculum View
Roma – well known “POJO” based Java Web
Metaframework
Default view: Echo2
From Romulus, new modules for Roma:
Janiculum, JSPView module of Roma
Alpha Liferay Enterprise Portal Server integration
Jasper Reporting
Roma Janiculum JSPView
Automatic generation of JSPs
Default main-screen.jsp + css
Full interface can be configured
Modifying main-screen.jsp
Modifying default.jsp for one POJO
Modifying css
Integrated templating mechanism with FreeMaker
JavaTeam
JavaTeam is a forge portal based on Liferay
that integrates Romulus tools:
MyCocktail (Romulus' mashup builder)
Wapiti security test
Blog Demo generated by Roma
And it works as a collaborative platform:
focused on developers (it includes SVN or JIRA portlets)
with a social network approach.
Developers below to different projects.
Try it!
http://www.ict-romulus.eu
Summary. Romulus advantages
Much less code to write, test, maintain and
learn
100% POJO based: easy to understand and
maintain
Much less tools to learn…
…but total freedom if you want to
Secured applications
Portlet development faster
Mashable elements easily integrable
(including portlets)
Is Romulus the solution?
Romulus is not the only effort in
this direction (Grails, Dyango,
RoR)
There are other alternatives for
each of the core components
Sponsoring by big players (Sun)
could change the picture
This is a R&D project!
Per informazioni
Grazie per l'attenzione!
Coordinatore:
Carlos A. Iglesias
Informática Gesfor
Avda. Manoteras, 32 28040 Madrid (Spain)
Email: