Traditional Web Based Application Structure Frameworks define how
Traditional Web Based Application Structure Frameworks define how the application is designed, organised and deployed across various tiers.
Spring Sample MVC Layout JDBC could be substituted by an alternate object relational persistence and query layer such as Hibernate. Spring provides excellent support to for Hibernate.
Spring Services • Inversion of Control The basic concept of the Inversion of Control pattern (dependency injection) is that developers don’t need to create any objects but describe how they should be created. Here one doesn’t have to directly connect the components and services together in code but describe which services are needed by which components in a configuration file. • Aspect Oriented Programming AOP allows to dynamically modify the static model to include the code required to fulfil the secondary requirements without having to modify the original model. Better still, this additional code can be placed in a single location rather than having to scatter it across the existing model. • Data access & Transaction Management. • MVC • Batch Processing • Authentication & Authorization • Messaging • Web Services
Spring Cons Pros 1. Popular and well supported framework for web and enterprise wide applications 1. Higher learning Curve 2. Needs experienced java developers. 2. Open Source, no vendor lock-in 3. Spring has a layered architecture, meaning that you can choose to use just about any part of it in isolation, yet its architecture is internally consistent. More time needed for development initially especially for developers new to Spring. However there are long term benefits of having a robust framework in place. 4. Provides an end to end solution. View layer, Database, Security, Webservices…. . 5. Support community in terms of online forums, books, training courses 6. Easy to buy in resources for development 7. Facilitates good programming practices and loose coupling between interfaces. 8. Enables POJO programming.
Spring Why Spring? • Spring seems a good choice, when there is scope of reuse of components being developed and/or Web service integration. • Also, if one would like to any other open source frameworks for different layers in the application then Spring fits the bill very well. • Spring being layered in nature, one doesn’t have to use Spring all the way through, one could just as easily bring in Hibernate for database access and persistence or Struts for MVC. • Spring runs on all web containers and application servers, as well as standalone applications. • Most mission critical systems, large transactional systems can be developed using Spring.
Oracle ADF Framework • MVC style of development with special consideration to separate Model and the Business Service Layer. • SOA development support. • Introduction of ADF Business Components in the Business services layer, providing out-ofthe-box services such as transaction management, resource pooling, locking, declarative validation rules, translation, and object-relational mapping • Built-in implementation of common J 2 EE design patterns and infrastructure code in the framework • Declarative style for defining user security for authentication and authorization.
Oracle ADF Cons Pros 1. Excellent tooling support - JDeveloper offers visual and declarative tools for each layer of ADF (end-to-end solution) 1. Less control over user interface and design in comparison with non declarative tools. 2. ADF Faces provides Oracle Forms like interface, which is easy for Forms developers. 2. JDeveloper is a Oracle propriety product, thus vendor lock in. 3. Declarative development approach reduces the learning curve for developers new to Java EE technologies. 3. Does not integrate easily with non Oracle products/open source frameworks. 4. Declarative approach increases productivity creating rich java applications with reduced effort. 4. JDeveloper is a free IDE, however support and maintenance for IDE is charged. 5. JDeveloper as a IDE, that provides tools, plug -ins that make development more of plug and play. 5. JDeveloper with Oracle ADF needs a runtime license when deployed outside of an Oracle Application Server. 6. 11 g release allows declarative style of defining security profiles. Security can be associated with specific web pages, task flows, users and user groups. This is done using the JAAS security model. 7. Serviced by Oracle Support
Oracle ADF Why Oracle ADF? • Where everything is Oracle (app server, authentication etc), vendor lockin is not a concern and/or we need to tightly couple with existing Oracle stored procedures, ADF is sensible. • When the team to start developing a Java EE project, comes from a Oracle Forms background or are PL/SQL developers, they would find the transition smoother. • JDeveloper is an excellent tool that integrates very well when implementing a Oracle ADF project, and it helps one to clearly define each component in a declarative manner. • With ADF providing support for Ajax and rich UI interfaces, it is becoming easier for non Java developers to start developing rich Java based applications.
PHP ZEND • MVC style of development. • Suited to Web Content based applications, and flashy websites. • Good support for Internationalisation. • Web service support specially for developing Restful services. • Offers services such as authorization, acl, cache, logging, mail. • Simpler deployment.
PHP/ZEND Cons Pros 1. Good choice when developing websites, CMS applications. 1. Not suited for larger enterprise wide systems or B 2 B kind of applications. 2. Excellent support for web application development in terms of api’s available. 2. 3. Served directly from the web server (apache). Thus no need of any other deployment container. Simpler deployment. ZEND IDE is the available for professional PHP development, however it’s a licensed product. 3. Not ideal for server centric development. 4. Lack of standards with regards to design patterns and unit testing. 4. Generally suited to application written using LAMP stack. (Linux, Apache, My. SQL and PHP). 5. Shorter learning curve. 6. Support for OO is available from 5. 0 onwards. 7. Can consume webservices
j. Query – A Java. Script Framework • j. Query is a lightweight Java. Script library that allows interaction between Java. Script and HTML elements. • j. Query is a free open-source software, usually just a single Java. Script file containing all common DOM, Event, Effects and Ajax functions. • j. Query works on an array of browsers. Such as Firefox 1. 0+, Internet Explorer 5. 5+, Safari 1. 3+, and Opera 8. 5+. • j. Query can be used with any web programming language JSP, ASP, PHP etc. . • Features are: • DOM element selections functions, traversal and modification • Events • CSS manipulation • Effects and animations • Ajax • Extensibility • Utilities - such as browser version and the each function. • Java. Script Plugins
j. Query – A Java. Script Framework Why j. Query? • Check the system requirements. If the application being developed needs a rich UI heavy interface, with dynamically changing elements. It would be advisable to make using of a Java. Script framework. • Projects that have made use of j. Query as a javascript framework are: • Common Timetabling • Total Rewards System • If the application needs any Ajax capabilities, j. Query provides good support for Ajax based development. • j. Query works just as well with any other Java. Script framework. Thus if one chooses to implement j. Query with another Java. Script framework, then this too is feasible. • j. Query also has a shorter learning curve for developers who have worked with java scripting, CSS and is familiar with XPath syntax.
What to pick Whatever be the new system being developed, base your choice on the following factors. 1. Business Requirement 2. Scalability 3. Timescales 4. Budget 5. In-house Skills 6. Support Team Skills
- Slides: 13