Imagine a situation where you own a successful company whichthat has received contracts to develop an application for two different clients. The specificationspecifications for the application are nearly identical for the two clients. However, though bothBoth clients manage data using SQL databases, but one company uses a proprietary database and the other uses an open source alternative., Thiswhich implies that your application will have to have its's [[persistence layer]] will need to be implemented in two different ways. Many more implementations may be neededFurther, as new clients arise., Youradditional bestimplementations choicemay tobe solveneeded. In this portability problem in Java EE would becase, using onethe of core J2EE patterns—DataData Access Object.Thispattern patternwould ensuresensure the right amount of abstraction and encapsulation ofrequired allto access to any dataof sourcethe varying backend databases.