This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
Nowadays, due to the importance of internet, web pages play very important role in every places, to everyone, and anytime. This research is talking about different Java Web Application Framework that commonly use on creating dynamic websites.
Because of the requirement of web users are getting higher, they requires better interfaces, powerful functions and user friendly web application, so web application framework helped developer in creating dynamic web pages to fulfill web users' requirements.
In this research, there are many chapters that explain what and how frameworks do and features provided by frameworks. There are introduction to frameworks, which gives description and idea what is a web application framework, and what can framework do.
There are a lot of web application frameworks in the world now, for Java web application frameworks, there are almost 30 of them. This research will focus on 4 of the popular Java framework available, GWT, Apache Struts, Spring, and also ZK. Four of these popular frameworks are common use nowadays and they have their own tools provided to help developer.
Web Application Framework can help developer to create a dynamic websites that comes with good interface and powerful functions. Not only functions, tools provided by frameworks sometimes are very useful. This research will provide clear explanation of the functions and features provided by 4 of the popular java web application frameworks.
Aims of Research
The main aim of this research is to implement web application framework into the restaurant system. There are a lot of web application frameworks and many of them are popular and came with a lot of functions and features. In order to achieve the main aim, understanding web application framework is very important. Then, by knowing the functions and features it provide, testing template and component are very useful. Because the restaurant system is going to be coded in Java, so the APIs that supported by framework are very important thing to consider. Thus, understanding all the functions and supports given are the main thing to consider, so performance will improve while problems while doing the system can be prevented.
To identify frameworks and web applications frameworks.
To classify different types of web application frameworks and their backgrounds.
To identify supports and functions provided by frameworks.
To compare the functions and supports provided, and determine strength and weakness of different framework.
To apply components and development tools provided to improve system performance.
To implement web application framework into the system after comparing some of the popular frameworks.
Chapter 2.0 Framework & Web Application Framework
2.1 What is Framework?
Framework is actually tools and frameworks become more and more powerful and they really provided a lot of powerful functions to help programmers in development. In simple way, framework makes itself easily to work with other complex technologies, it provides functions or extra features that can be easily implemented on other programming language and makes development more convenience and simple.
An attempt to define what the term "framework" means, Marc Clifton (2003) says, in another word, a framework is a set of common software building blocks that programmers can use, extend or customize for specific computing solutions. With frameworks, developers do not have to start from scratch each time they want to write or code a new application. Frameworks are built from collection of objects so both of the design and code of the framework may be reused. Since everything is reusable, developer can save a lot of time to start everything from zero. It makes web developing much more easier because all of the objects and solutions existed in the framework library.
2.2 What is Web Application Framework?
A recent study (Malcolm Tatum, 2010) shown the behaviors of web application frameworks. A web application framework is a software framework that is designed to support the development of dynamic websites, web applications, and web services, example Ajax. The framework aims is to connect with common activities performed in creating websites. Most of the frameworks provide libraries for database access, template frameworks and session management functions, and the most important key function of web application framework is, they often promote code reuse.
Critical Evaluation - Chapter 2
Framework and web application frameworks are important for developer because they can use framework to extend or customize specific computing solutions. Frameworks also help developer to save their time because they do not need to scratch from beginning each time they want to start a new application.
For web application frameworks, they usually provide a lot of functions that are common in use and they can be reuse from time to time. With those features they provided, developers are allowed to use them instantly instead of scratching all over again from base.
For the Final Year Project, developing a restaurant system, web application framework will be implemented into this restaurant system, this could probably save time of developing, and it can makes developing easier and simpler with all the functions provided by framework. Of course with the aid of web developing frameworks, This is probably help in developing the system.
Web applications playing a very important role for developer not only in developing web pages, maybe a lot of computing solutions, desktop base applications, etc. For a web application framework user, In other word, we hope that more and more powerful features can be provided by those web applications in future time.
Chapter 3.0 Types of available java frameworks
Web application frameworks unable to supports all programming languages available. They support only particular programming languages. Currently, there are a lot of frameworks available. There are more than 30 different web application frameworks that supported Java.
3.1 Google Web Toolkit (GWT)
GWT is open source, completely free, and used by large amounts of developers around the world. Google Web toolbox is an extra features that provided by GWT to help developers in order to reduce their workload. In Google Web Toolbox, there are 4 main items.
SDK - Contains JAVA Libraries, Compiler, development server.
Speed Tracer - Pin Point performance problems in your web applications
Plug-in for Eclipse - provides supports and functions in Eclipse.
GWT Designer - Create user interface in very short time with tools and layout assist.
Spring is a popular and widely deployed open source framework that helps developers build high quality applications in short period of time. Spring provides a consistent programming and configuration model that is easily understand and adopted by large amounts of developers around the world.
Nothing like the traditional Java EE platform, Spring provides a range of capabilities for creating enterprise Java, rich web, and enterprise integration applications that can be consumed in a lightweight manner.
Spring for Enterprise Java Applications: Spring provides the powerful programming model for modern enterprise Java applications by insulate business objects from the complexities of platform services for application component management, Web services, transactions, security, remote, messaging, data access, aspect-oriented programming and more
3.3 Apache Struts
Apache Struts is a free open-source framework for creating Java web applications.
Web applications change from conventional websites in that web applications can create a dynamic response. Many websites deliver only static pages. A web application can work together with databases and business logic engines to make specially a response.
Web applications based on Java Server Pages sometimes commingle database code, page design code, and control flow code. In practice, we find that unless these concerns are divided, larger applications become hard to maintain.
One way to separate concerns in a software application is to use a Model-View-Controller (MVC) architecture. The Struts framework is designed to help developers create web applications that utilize MVC architecture.
The framework provides three key components:
A "request" handler provided by the application developer that is mapped to a standard URI.
A "response" handler that transfers control to another resource which completes the response.
A tag library that helps developers creates interactive form-based applications with server pages.
3.4 ZK Framework
ZK is the most proven Ajax + Mobile framework designed to maximize enterprise operation efficiency and minimize the development cost by its groundbreaking Direct RIA Architecture. ZK simplifies and increase speed of the creation, deployment and maintenance of rich Web Applications.
With the direct UI implementation, developing web applications is as straightforward and intuitive as programming desktop applications. By directly communicating with database and enterprise resources, developers no need to worry about exposure of client side business logic and business data in transit.
Critical Evaluation - Chapter 3
After doing research on these 4 popular Java Web Application Frameworks, there are a lot of powerful features provided by all of the frameworks above, and they also come with development environment which help developer to use the functions provided more easily and straight forward.
By importing libraries that provided, developer can use all the utilities, functions and some specific features provided by each of the framework.
Since there are so many frameworks out there, some popular frameworks can really help creating a website easier. Every of the frameworks have its own functionality and features.
Sometimes introduction of a framework is important because is the introduction and explanation are good enough, people will get attracted to read in detailed
Chapter 4.0 Functions and Features provided by Java Web Development Framework
4.1 Functions and features of Google Web Toolkit (GWT)
Speed Tracer is a Google Chrome extension that helps to identify and fix performance problems in the web applications. It visualizes metrics that are taken from low level instrumentation points inside of the browser and analyzes them as the web application runs. Using Speed Tracer, it able to get a better picture of where time is being spent in your application
Plug-in for Eclipse
The Google Plug-in for Eclipse is the fastest way to start developing Google Web Toolkit and App Engine applications, installing the plug-in to deploying an Ajax "Hello World" in minutes.
GWT Designer is a powerful and easy to use bi-directional Java GUI designer that makes it very easy to create GWT GUI applications without spending a lot of time writing code to display simple forms. With GWT Designer developers can create complicated windows in minutes. Use the visual designer and Java code will be generated automatically.
Developing with Google Web Toolkit (GWT)
Constructing AJAX applications in this manner is more productive thanks to a higher level of abstraction on top of common concepts like DOM manipulation and XHR communication.
(Google Code, 2010)
4.2 Functions and Features of Spring Framework
Spring is a layered Java/J2EE application platform, based on code published in Expert One-on-One J2EE Design and Development.
The most complete lightweight container, providing centralized, automated configuration and wiring of application objects. The container is non-invasive, capable of assembling a complex system from a set of loosely-coupled components in a consistent and transparent fashion.
A common abstraction layer for transaction management, allowing for pluggable transaction managers, and making it easy to demarcate transactions without dealing with low-level issues. Generic strategies for JTA and a single JDBC Data Source are included.
A JDBC abstraction layer that offers a meaningful exception hierarchy (no more pulling vendor codes out of SQLException), simplifies error handling, and greatly reduces the amount of code that needs to write. Developers will never need to write another finally block to use JDBC again.
Integration with Toplink, Hibernate, JDO, and iBATIS SQL Maps: in terms of resource holders, DAO implementation support, and transaction strategies. First-class Hibernate support with lots of IoC convenience features, addressing many typical Hibernate integration issues.
(Spring Source, 2010)
4.3 Functions and Features of Apache Struts
The framework is written in the popular and versatile Java programming language. Java is an object-orientated language, and the framework makes good use of many object-orientated techniques. In addition, Java natively supports the concept of threads, which allows multiple tasks to be performed at the same time. A good understanding of Java, and especially object-orientated programming (OOP) and threading, can assist developer to fully utilize the features.
Apache struts can also help to be alert of the programming challenges specific to develop and using application frameworks. Like most of the Java applications, framework objects are designed as JavaBeans. Following the JavaBeans design patterns makes the framework's classes easier to use. Although JavaBeans were first created for visual elements, these object design patterns have been found to be useful as the basis for any reusable component, like the other used by the framework.
Benefits of Struts:
Open source - it is free and it's been built collaboratively and tested by many people.
Good tag libraries
Good MVC framework - you can concentrate more on business logic and less on the plumbing
Flexible and maintainable - XML configuration files make it easy to customize actions. To add functionality, you simply need to create an
Action, a Form, and the JSP -- the framework takes care of the rest
Facilitates I18N and L10N.
It's a lightweight framework. It doesn't force you to use everything it provides.
(Apache Software Foundation, 2010 )
4.4 Functions and Features of ZK Framework
Benefits of using ZK:
Rich user experience
Over 200 off-the-shelf state-of-art XUL/HTML-complaint Ajax components
Numerous third party widgets: JFreeChart, JasperReports, Google Maps, FCKeditor, Timeline, Timeplot, ExtJS, Dojo etc.
CSS-based skinning, template-based looks and customizable behavior
Drag-and-drop, animation, context menus, and so on
Bookmark management supported
ZK increase developer's productivity significantly by allowing direct implementation and manipulation of user interfaces, databases and enterprise resources.
With direct programming, developing Web applications is as simple and intuitive as programming desktop applications
Displaying data client side is accomplished automatically by transparent and on-demand synchronization between client and server
ZK is the leading open source Ajax + Mobile framework. The ZK developer community is extremely active with over 20 translations, 100 articles/blogs, 100,000 lines of codes, 1,500,000 downloads from 190+ countries.
Standards-based : ZK is a standard-compliant solution
With XUL and HTML compliant components, ZK protects enterprise applications from behind-closed-doors and proprietary technologies.
ZK also complies with JSP, JSF, Portlet and Java EE technologies, including the ability to integrate with existing enterprise environments and Java IDEs
Markup and scripting Languages: ZK applications can be built using pure Java, markup and/or scripting languages.
With XUL/XHTML, designing rich User Interface is as simple as authoring HTML pages
With Java, Groovy and mixture of other scripting languages supported, developing applications is as rapid as prototyping
With remarks and data-binding, accessing database and backend resources can be accomplished smoothly without writing Java code
With Web Accessibility compliance, enterprise applications can be easily be made accessible to people with disabilities
Direct Push: ZK provides exceptionally strong and intuitive Direct Push technology enabling spontaneous updates sent by the server to Ajax browsers and mobile devices. With ZK's Direct Push technology, responsive and dynamic enterprise solutions can be created at lowest cost. The technology is also based on strict standards and therefore supports all kinds of application servers and browsers.
Extensibility and Customizability: ZK is fully customizable and extensible with a modular plug-and-play architecture.
With CSS, templates and macro components, the look and behavior of components can be changed dramatically without modifying the application
With a pluggable UI factory, each user can have a custom UI loaded from a database or other resource
With pluggable variable resolvers and data binding, access to enterprise resources can be achieved automatically
With a pluggable performance monitor, the performance of a ZK application can be measured easily; not only the processing time but the communication time as well
Clustering and Failover: ZK supports high scalability and availability with serializable user interfaces and a pluggable failover manager. ZK is also compatible with the clustering and load balancing support found in modern application servers.
ZK extends the reach of enterprise Internet applications to 1 billion mobile devices with minimal cost. ZK supports Java Mobile, Android, and various mobile browsers.
ZK technical support is designed to save development time and enable enterprises to achieve the highest level of user experience, productivity, and performance.
ZK provided Development Tool: ZK Studio
ZK Studio is a visual integrated development environment providing intuitive tools that span the entire application development lifecycle. Tools are included for UI design, prototyping, development, and deployment when implementing ZK applications.
ZK Studio provides content assistance, WYSIWYG visual development, hyperlink navigation, variable highlighting, syntax coloring, and many other exciting features. ZK Studio is the most efficient way to develop Ajax applications.
Critical Evaluation - Chapter 4
Looking through four of the web application framework above, ZK has provided a lot of benefits, functions, features and some powerful components and development tools. Different web application framework provides similar functions in different way.
Talking about GWT, it provides 4 main functions and features which can make web development slightly easy to use, but it is quite complicated comparing to some other frameworks. The structure between GWT and database are quite confusing and it is not suitable for beginner user because of the complicated logics and structures.
Spring Framework, it is proven as the most complete lightweight container, providing centralized, automated configuration and wiring of application. The capacity needed for Spring Framework is very tiny, but the functions provided are not as powerful as the other frameworks.
Apache Struts, it is well known for its good MVC framework - you can concentrate more on business logic and less on the plumbing. In the same way, it also known as a very lightweight framework and it never force you to use all the things it provide, you can simply choose the part you like and use.
ZK framework provide very powerful supports and documentation for users' guidance, tutorials and demo that makes users easy to understand. ZK also provide powerful features and security comparing to other frameworks. It is more easy to use and with the plugin for eclipse, developer can use ZK Studio to design and develop websites. Although GWT also provide plugin for Eclipse, but ZK Studio comes with better functions.
In the restaurant system, ZK is a very suitable framework because it can really meet requirements of the restaurant system which required high interaction between client and server, powerful and user friendly interface design. ZK also provide features that can connect to Google Map or Google translate which is easy to implement. User can locate the location of restaurant using Google Map functions implemented in the system, and also can translate the system into different languages using Google Translate and also i18n.
For my opinion, a good restaurant system requires instant data transfer, and also awesome interface, and most important, it must be very user friendly. ZK came with very good looking components and they are very powerful. They can be written in ZUL and modify their design with CSS.
Chapter 5.0 Comparing Apache Struts, Spring, GWT, and ZK
Google Web Toolkit (GWT)
Yes (Java, ZUML)
Table 1.0: Web Application Framework for Java and Features provided of each framework.
Ajax is a group of interrelated web development techniques used on the client-side to create interactive web applications. With Ajax, web applications can retrieve data from the server asynchronously in the background without interfering with the display and behavior of the existing page.
Table 1.0 showed that 4 of these frameworks supported Ajax. But according to research, ZK are the most proven Ajax application. It has outstanding Ajax supports comparing to the other frameworks.
5.2 Model-View-Controller (MVC Framework)
In recent study, Dean Helman(1998) stated that MVC is software architecture, considered as an Architectural pattern used in software development. The model is used to manage information and notify observers when that information changes.
Model - Business Logic
View - Presentation Logic
Controller - Application Logic
MVC is very important because it could influence the structure of a system. A good system must have very good structure. GWT are not MVC Framework supported comparing to the other 3 frameworks. Without MVC the system might be very hard to maintain, enhance or change.
5.3 Internationalization (i18N)
In a research made by Tomohiro Kubota (2010), he explained that I18n is making applications works in multiple languages and locales. I18N provide supports that are fully integrated into the classes and packages that provide language or culture dependent functionality.
Internationalization (i18n) is very important for most of the web pages nowadays. It makes applications to work in multiple languages and locales, allowed different people to use the same single system. Especially for Restaurant System, people from different country might be visiting the restaurant, so i18n provides translate locales and format allowed different people in different country to use the same system, it is very convenience and useful and it is very famous and popular nowadays.
5.4 Testing Framework
( KentBeck, Donald G. Firesmith, 1998) Testing framework is aimed at providing the reader various Test Types, Test Phases, Test Models and Test Metrics and guide as to how to perform effective Testing in the project. Example likeMockito, JUnit, TestNG, Selenium, WOUnit, jsUnit, etc, are some famous testing framework available.
Talking about testing framework, it is quite useful and important while performing testing on new developed projects. Different frameworks might use different testing unit, but some of the frameworks don't even come with testing framework. In order to make a better quality application, unit testing is very important.
5.5 Security Framework
(Prunicki, A. Elrad, T, 2006) Security framework is an authentication and access-control framework. Some main features of security frameworks are Authentication Flow, Key Authentication Features, Key Authorization Features, Instance-Based Security Features, and etc.
Security Framework is a framework that provides advanced authentication, authorization and some security features for applications. ZK Frameworks come with Spring Security which is a powerful and highly customizable authentication and access-control framework. It is the de-facto standard for securing Spring-based applications that could ensures the quality of the security of applications.
5.6 Template Framework
(Matthew Kendall, 2000) Developers can use a template to layout the Web pages, and they can replace it once their requirements changed. Template Framework can describe as a very useful features to help developer in some special ways to enhance their codes.
Template Framework is a feature for developers to replace layout once their requirements changed. Example for ZK, it provides Macro Components, which implemented a class deriving from the ZK library. It is flexible, but it requires deeper understanding of ZK. I've implemented Macro Components on my Final Year Project Restaurant System, which it can makes the code with extra security and better quality.
5.7 Important Considerations when choosing a web development framework
For final year project the restaurant system, it is a need to use a web application framework to help developing dynamic web pages.
ZK provides functions and security models that suit and meets all the requirements of the restaurant system.
Most of the frameworks are free, but not all of them. GWT, ZK, Spring, and Apache Struts are all free frameworks.
ZK is free and is an Open Source Ajax framework.
Almost every framework out of there uses the MVC pattern. It makes the code tighter which ultimately results in better application.
ZK supports MVC patterns just like the other frameworks. Besides, it also provides tools to help developers to create a better structured web page.
As a web developer, applications and equipments needed to host a web site is not as easy as you think. Some frameworks can be run in a shared host but some required relatively non-traditional setups which might cost large amounts of cash.
ZK is a java web application framework that can run in a shared host.
Ease of Installation
Installation of framework plays a very important role. Installing a framework requires several steps to get it work correctly.
ZK Studio provides Eclipse plugin that can be installed just by few steps.
Every framework has own naming conventions, directory structure, etc. Some frameworks are very strict but some are very flexible.
Learning on how to implement is an important thing to consider. Some complex framework structure might cause a lot of time just to learn how to use it.
Core library is why most people adopt a framework. It frees you from writing redundant codes, but still provide a way for you to tinker if you need more features.
ZK has almost all the libraries and documentation that meets the requirements of the restaurant system.
Almost every application has to access database.
While choosing an application, choose one that you don't need to switch out databases, framework will takes care of that.
Included JS Library
Unit testing is important for a developer to briefly test the code. Choosing a framework with unit testing supports are barely important.
ZK provides unit testing supports like JUnit and Mockito.
Input and Output, network latency, are often the issue rather than a framework's scalability.
Framework documentation is the key to success. Well explained and detailed documentation might bring in more people.
ZK provides a complete documentation and supports library for users to explore and view.
Even with proper documentation, you are going to have errors and bugs that you have to ask the community behind the framework for help.
ZK provides a community forum for developers and the administrator to communicate and solve problems.
With a big framework, there are thousands of programmers sitting through the code and putting it through its paces on a daily basis.
Bugs and updates will be fixed from time to time by powerful and experienced programmers.
Ease of Creating and Extension and Availability
Framework covers all the important bases of an application.
While choosing a framework, keep in mind the availability of plugins.
Critical Evaluation - Chapter 5
By doing research on some of the important features of web application frameworks, showed that there are a lot of powerful features and functions to support a web application development. Although some of the framework doesn't come with all the features provided, but all of them have different advantages, some of provide not very complete functions and features, but with the extra lightweight and independent ability, it has own advantages.
But comparing the four frameworks which are GWT, spring framework, Struts and ZK. ZK Framework provides almost complete important features, powerful security, well-structured architecture, and also easy to use. All the features provided by ZK can surely enhanced the quality of our restaurant system, maybe we are not going to use all of the powerful features provided by ZK, but in future enhancements of restaurant system, all the functions can be implemented.
All of the frameworks provides different features and different benefits, but there are no such thing like they are good or bad, different framework have their own abilities. While we are going to select a framework for our applications, don't think of all the features it provide, select those we really met the requirements of the system.
Chapter 6.0 Importance of Web Application Framework
6.1 Importance of Web Application Framework
With the help of web application framework, web page designer or developer can simply design and create a full dynamic website within a short range of time. By the same time, it also provide powerful functions that you can just include it with just few simple steps.
6.2 Benefits of using Web Application Framework
Save time to develop a web page start from zero. With the features and library provided by frameworks, developer can simply reuse them.
Save cost. By using some open source framework, company can save cost to register with some other frameworks if the framework meets the company requirements.
Save resources and man power. If company wanted to start developing a website, firstly they have to scratch the base, preparing library and create methods they wanted to. But with aid of framework, they save a lot of resources and man power in creating common features that are provided by framework.
By using framework, developer can simply create some powerful dynamic websites that full interactive because this is the most important that a developer can produce a high quality website in a short period of time.
Critical Evaluation - Chapter 6
This reports shows that web application framework is very important in web page development nowadays. Company can save costs and also time by implementing web application framework while they are developing dynamic web pages. Powerful features provided by frameworks also help developer to cut down their time and cost, providing more time to enhance the features of application but not the base.
With the aid of ZK Application framework, I strongly believe that my restaurant system can be done in time, easier for me to change things, not easy to confuse and also can improve quality of performance and also user friendly in use. Using ZK Framework can shorten the coding period significantly, makes the system better in quality and performance.
There are too many benefits and advantages using web application framework, especially ZK Framework which provides very powerful and complete features, maybe we unable to implement all the features provided, but in future time, maybe the system can be enhance to become better quality and performance.
Chapter 7.0 Achievement of Objectives
7.1.1 To identify frameworks and web applications frameworks.
As statements stated in chapter 2, framework and web application frameworks are different in terms of the concept. Web application framework is a technology that support in development of web pages
7.1.2 To classify different types of web application frameworks and their backgrounds.
In chapter 3, there are few types of popular Java Web Application Framework. Introduction of each of the framework help us to understand and classify the differences between them.
7.1.3 To identify supports and functions provided by frameworks.
Features and supports for the 4 frameworks stated are clearly stated in chapter 4. Strengths and weaknesses, functions and support given are stated and explained in chapter 4. Basic supports by frameworks are identified.
7.1.4 To compare the functions and supports provided, and determine strength and weakness of different framework.
Comparison between frameworks was made in chapter 5, as result shown, strength and weaknesses of each framework was determined.
7.1.5 To apply components and development tools provided to improve system performance.
Chapter 6 stated the importance of web application framework can help in developing or designing. Understanding the important criteria while selecting a web application framework can help to prevent errors and difficulty while developing a web page.
7.1.6 To implement web application framework into the system after comparing some of the popular frameworks.
After completing the research, ZK framework was selected to be implemented in Restaurant System. Comparing and considering the functions and features, ZK Framework are the best framework for restaurant system.
Finally I've been studied through some of these frameworks, and I had decided that ZK Framework is the best framework. I can implements the features provided by ZK into my project. And I believe that it can help me to improve my Final Year Project quality and functions.
This report let me to learn a lot of important information that I didn't learn in college. This can be considered as my extra knowledge and it really let me know how important to select a framework for my Final Year Project.
After I done the research on web application, I understand that web application framework really help developer a lot in developing websites. While I surfing through the internet looking for information for my research, I found something interesting that a lot of big company using Web Application Framework for their official websites. I found this on ZK official website that stated some companies who using ZK to develop: Sun Microsystems, DreamWorks Animation, Alcatel-Lucent, eBay, Toyota, Samsung, Sony, Fujitsu, LG, etc. There are really a lot of big companies that using ZK because of its functionality and features.
I believe, by using ZK Framework and Eclipse for my FYP, I can develop a better quality of webpage. And I've learnt a lot of its benefits and functionalities while I having my internship. After this research, I am pretty sure that ZK Framework really meets my requirements and it come with some interesting functions that I really love to implement them on my Final Year Project.