I have a legacy application built on Java, JSF, EJB & JDBC. I have Business logic layer (BLL) implemented as Stateless session beans & Data Access Layer (DAL) layer having DAO using JDBC.


JSP – JSF Backing bean – Business delegate – Stateless Session Bean – DAO – JDBC


Now, I would like to abstract and reuse the existing BLL & DAL layers and expose web service interfaces with maximum reuse of existing code. This is because I need to allow these services to be used by different mobile devices.


1)      What are the best practices and design consideration I need to take care of?

2)      How I can ensure maximum code reuse?

3)      I am more inclined towards using RESTful web services instead of Soap based webservices. What are the issues/risks, I need to take care of?


Any pointers are greatly appreciated.