• Industry Leading Architecture

    Simply Java

    Simply Java

    ZK is renowned for its "Ajax without JavaScript" approach since 2005, enabling developers to build rich Internet applications transparently without any knowledge of Ajax and JavaScript.

    The client engine and update engine in ZK play the roles of pitcher and catcher, rendering Ajax communication transparent to developers. Events triggered by users are encapsulated and marshaled to event listeners running at the server.

    User interface rendered on browsers are surrogated on the server as POJO components, alternation made on the POJO components are reflected to the client transparently.

    With programs executed at the server, developers can leverage all the Java technologies, such as Java EE and Spring, while back-end data and services are readily available.

    Server+client Fusion

    Server+client Fusion

    ZK’s Server+client Fusion gives developers the freedom to leverage the best of both sides.

    The server-centric solution to Ajax brings a productivity boost, robustness, and security to Web application development; while client side solutions endows Web applications with greater controllability and the ability to leverage client side resources.

    ZK marries the benefits of both to bring forth a developer-centric approach where developers continue to build large scale enterprise applications with all the robustness of Java technologies, but also are offered the flexibility to work directly with ZK’s jQuery based widgets to further enhance user experience.

    Native Platform Support

    Write your application once & have it run anywhere, on web, mobile & tablets

    The demand for applications on devices is increasing and as such so is the need to write an application once and have it be optimized for multiple platforms, whether using a mouse or touch. ZK improves this by incorporating responsive design principles meaning developers can create web applications which have an excellent user experience on desktops and tablet devices without writing separate applications.

    Most vendors have a separate touch component set, but this requires implementation of a separate application. ZK has innovated one component set which adapts to various devices bringing true write once, run anywhere. There is no need to maintain different applications, one for the desktop and one for touch devices. Having written your application once, ZK supports multiple platforms for you. Read the philisophy behind or find out how to apply this feature to your appication.

    Object Oriented jQuery

    Object Oriented jQuery

    ZK's client side implementation is based on the de facto standards, jQuery and JSON, leveraging the vast resources and enjoying the company of millions in the community.

    In addition, ZK bestows client side programming with abilities such as inheritance and encapsulation, adopting the object oriented paradigm.

    A load on demand mechanism resembling class loader is implemented to speed up the loading of JavaScript code at start up.

    Pluggable Platform

    Declarative Programming

    ZK User Interface Markup Language (ZUML) makes the design of rich user interfaces as simple as authoring HTML pages. ZUML is a variant of XUL inheriting all features available to XML, and separates the UI definition from the run-time logic.

    ZUML also allows developers to automate CRUD between UI components and the data source with annotations, data binding and MVVM.


    Pluggable Platform

    ZK's architecture is based on units of modularization which are pluggable and replaceable, enabling developers to extend and customize.

    Developers are allowed to inject application specific code throughout the course of program execution, including Ajax communication, event handling, component instantiation, ZUML parsing, among numerous other implications.


    Enterprise Security

    Enterprise Security

    Applications are executed on the server-side in ZK by default; no business logic is ever exposed to the client.

    In addition, ZK protects applications against XSS, DoS, and CSRF. ZK further strengthens authentication and authorization with third party security frameworks such as Spring Security which altogether offers protection from page level to Ajax events.



    Transparent Server Push

    By the introduction of event queue, ZK unifies the handling of server push and Ajax events to a simple publish and subscribe mechanism, rendering server push transparent to the developers.

    ZK shields developers from the complexity of multi-threaded programming that comes with server push.

    Scalability and Availability

    ZK has full clustering support; all UI objects are readily serializable. UI components are designed to minimize memory footprint and maximize performance by optimizing components' state and behavior.

    In addition, developers can improve availability with application specific failover management implementations.

  • Pattern Driven Development

    MVC / MVVM

    MVC / MVVM

    The MVC pattern enforces the decoupling of View, Model, and Controller, making applications more flexible to change and easier to developer.

    The View can be implemented using ZK User Interface Markup Language (ZUML) without any programming; meanwhile, ZK automatically wires the UI components and user events to members in the Controller class.

    The MVVM pattern enforces further decoupling to simplify the application and to make it more flexible to change. With ZK MVVM, most glue logic, including CRUD and state synchronization, is done automatically, while the application focuses more on abstraction of View's states and behaviors rather than UI components.

    Programming Free Data-binding

    Programming Free Data-binding

    ZK's programming free data-binding mechanism automates CRUD between UI components and the data source. Application developers only need to associate data objects with UI components using simple annotations in XML. Not a single line of Java code is required.

    Whenever a view is loaded, the components will be initialized with values of their corresponding data objects. In the event that a data value is updated, the changes will reflect on the UI components. Similarly, data modified on the UI components would be updated to the associated data objects.

    Composites and Macros

    Composites and Macros

    ZK's composite pattern offers developers a template based methodology to compose existing components as a new, reusable component.

    The state and behavior of a composite component can be extended and encapsulated in a Java class to enhance its functionalities.



    Templating

    Templating

    ZK's templating patterns allows a UI presentation to be dynamically composed with templates at runtime using simple annotations.

    A UI presentation in ZK can be customized to satisfy its dependent context; may it be a specific look and feel for a selected group of users, or a set of functionalities enabled only for certain scenarios.

    Event Queue

    ZK's event queue pattern provides a simple API to render all types of events, such as user events, application events, or server push events as a generic event. Hence, all events processing could be generalized as a simple publish and subscription mechanism.

    Furthermore, developers can plug in their own implementation to utilize existing message queues or web services.

    Core Injection

    ZK's pluggable architecture offers developers an abundant set of join points to fully customize the ZK core.

    Developers can inject application specific code to customize the rendering of UI components, error handling, event processing, Ajax communication, and others.

  • Rich Modular UI

    200+ UI Components

    200+ UI Components

    ZK’s 200+ components offer UI designers a variety of feature rich components to meet the demands of enterprise Ajax applications.

    For data presentation, ZK offers the Grid, Listbox, and Tree components. All of which have built in paging, auto-sorting, grouping, load-on-demand, data binding support, frozen columns/rows, in-line editing, master detail, among others.

    To outline an enterprise grade Ajax user interface, ZK offers a wide range of layout components and component attributes. For instance, a Portal Layout with drag-and-drop portal containers. A Border Layout that divides the page into collapsible and adjustable panels. All of which elevates your static 2D page to higher dimensions.

    For professional reporting, ZK has integrated popular third party Ajax components such as JFreeChart, Flash Chart, Fusion Chart, Google Maps, CK Editor, SIMILE Timeline and Timeplots. In addition, the JasperReports component allows users to generate reports in PDF, HTML, XML, DOC, ODT, and XLS formats.

    Components such as Captcha, Color-picker, File Uploader, among the vast and versatility ZK components, all play an integral part of what makes ZK a leading enterprise Ajax solution.

    Polymorphic Components

    Polymorphic Components

    Functionalities are made to be shared among all components and controlled using the same set of APIs. For instance, the drag and drop feature is available to all ZK components and its handle is the same manner for all components.

    ZK makes the behavior of components predictable so developers can easily learn and use to piece together sophisticated enterprise grade user interface.

    bootstrap

    ZK & Bootstrap is the perfect combination

    ZK's theme engine is based on Bootstrap providing developers with the ability to rapidly create their own themes using CSS 3.

    Not only can developer's create their own themes but it is also possible to integrate ZK with Bootstrap's already existing themes. Giving the ultimate power and flexibility to the developer.

    Design and development teams have a much easier job spending less time to create great looking and high performing applications utilizing Bootstrap built on the latest technologies such as HTML 5 and CSS3.

    Recursive Component Composition

    Recursive Component Composition

    ZK components are LEGO-like building blocks; this characteristic enables UI designers to tackle all sorts of UI requirements with the right combination of components and some imagination.

    Furthermore, component composition can be made recursively. For instance, a Grid can be put into another Grid recursively to generate a hierarchical data representation. For another, text boxes can be placed in a List box to make in-place editing possible. This ability to piece together UI components freely makes ZK components incredibly versatile and extensible.

    Multiple Presentations

    Multiple Presentations

    ZK allows a component to be fitted with various sets of DOM structures and behaviors, while its handle and APIs stay the same. Developers can use the same component for different visual representations and change the UI without modifying the application code.

    For instance, a Grid can rendered as is, or with paging at top and/or bottom. Tabbox, Listbox, and Window are the few among many others that offers multiple representations.



    ZK Spreadsheet

    ZK Spreadsheet

    An embeddable Ajax spreadsheet component that allows online collaboration among multiple users.

    It's empowered with advance spreadsheet functionalities such as 3-D Cell Referencing, user defined functions, sorting, filtering, hundreds of built in formula functions, among numerous others.

    ZK Calendar

    ZK Calendar

    ZK Calendar is an Ajax scheduling component readily embeddable into any Java web application.

    ZK Calendar offers functionalities such as filtering, detailed scheduling, multiple time zones, and daily/weekly/monthly views. Properties such as format and style can be easily configured by setting the calendar component's attributes.

  • End-to-End Productivity

    Shallow Learning Curve

    Shallow Learning Curve

    ZK brings the simplicity of desktop programming to Ajax development, thanks to its event driven and component based patterns.

    All events, server push, system events and user activities alike, are encapsulated as generic events to be handled generically. All components are LEGO-like building blocks which allow developers to compose UI with ease.

    In addition, ZK provides a markup language - ZUML, making the design of rich user interfaces as simple and fast as authoring HTML pages. No programming is required.

    Agile Design

    Agile Design

    UI presentation can be done in XML without programming and compilation, so UI designers and business analysts can work together and experiment with different designs on-the-fly.

    The process of UI design can be iterated quickly without Java programming, shortening the design phase and inspiring better design.


    Fast Prototyping

    Fast Prototyping

    To fulfill the complex business requirements, ZK offers 200+ enterprise grade Ajax components right off the box so UI designers can easily find the right component for the right job.

    ZUML enables developers to effectively embed scripting within the markup declarations so a fast proof of concept can be endowed with the behavior and functionalities of its intended purposes, for a quick project kick-off.

    Developers are allowed to handle user interface using any one of the popular scripting languages, such as Groovy, Python, Ruby, and JavaScript. The BeanShell interpreter for Java is set as the default script interpreter

    Rapid Development

    Rapid Development

    ZK is a Java based Ajax framework where instructions are executed at the server by default, Web application developers can continue to use their well versed Java language and all its proven enterprise technologies to develop ZK applications.

    Developers can continue to use their favorite Java IDEs, debuggers, and profilers in their Web development. For Eclipse users, ZK offers ZK Studio, an Eclipse plugin released by the ZK team with features like WYSIWYG UI editor, component palette for easy drag-and-drop building of the UI presentation, and ZK MVC extractor for converting scripting done in the prototyping phase to Java classes, following the MVC pattern to decouple the View from Model and Control. A NetBeans plugin, REM, a contribution from ZK's community, is available for the NetBeans users.

    ZK is component based and event driven, which simplifies Ajax application development to a desktop programming experience without having to be concerned with JavaScript programming, cross-browser issues, complex Ajax communications and other factors well noted for the high cost of Ajax Web development.

    Automated Testing

    Automated Testing

    To facilitate automated testing, ZK offers a straight-forward testing suite, ZATS, allowing developers to test their applications without the need for any servlet container.

    ZATS Mimic can be used with most popular unit testing frameworks such as JUnit and TestNG to provide an easy out-of-the-box way to test your ZK applications. ZATS shortens the development lifecycle of a project as it enables developers to test large sections of their applications quickly and easily by virtue of its automation, the speed at which tests can be written due to the intuitive API along with the fact that application servers are no longer needed makes restarts as a thing of the past.




    Performance Tuning

    Performance Tuning

    ZK's pluggable architecture empowers developers with the flexibility to intercept and inject instructions through out the program execution.

    Developers are given the utilities to analyze the statistics of timestamps of the request-response cycle for each Ajax request; from client request, server side processing, server response, to client side rendering.

    Great efforts are taken to minimize the memory footprint of Ajax components on the server, such as rendering components as stateless when Ajax functionalities are not required. With ZK's Server+client Fusion architecture, developers can also create client-side objects which exist strictly in the browser without burdening the server resources.

    Further more, user activities are grouped based on application's requirements and sent in batch to minimize network traffic.

    All of these architectural innovations allows developers having full control of the Web application and greatly facilitates the performance tuning process.

  • Web Technology Synergy

    W3C Standards

    W3C Standards

    HTML, HTML5, XHTML, XML, CSS, CSS 3, XUL

    Testing Utilities

    Testing Utilities

    Selenium, JUnit, HP LoadRunner, Grinder, NeoLoad, ...

    Reporting Libraries

    Reporting Libraries

    JasperReport, JFreeChart, Flash Chart, Fusion Chart, BIRT

    Java EE Compliance

    Java EE Compliance

    Servlet 2.3/2.4/+, Portlet, JSP, JSF, JPA, EJB, JDO, CDI, JDK 1.4/5/6/+

    Supporting Frameworks

    Supporting Frameworks

    Spring, ZK Spring, Grails, ZKGrails, Struts, Tiles, Liferay, JetSpeed 2, Hibernate, Oracle TopLink, Seam, Seasar...

    Ajax UI Libraries

    Ajax UI Libraries

    jQuery, Flash, CKEditor, SIMILE Timeline, SIMILE Timplot, Google Maps

    Scripting Support

    Scripting Support

    Java, Groovy, JavaScript, Ruby, Python, PHP, Scala, Clojure

    Browser Support

    Browser Support

    IE 6/7/8/9, Firefox, Chrome, Safari, Mobile Safari, IE Mobile, Opera, Webkit, Konqueror, Mozilla

    Mobile Platform Support

    Mobile Platform Support

    iPad, iPhone, Android, Blackberry, JavaME enabled mobile devices

    Web Servers

    Web Servers

    Apache Tomcat, IBM WebSphere, IBM WebSphere Process Server, IBM WebSphere Portal, SAP NetWeaver, Spring tc Server, jBoss Application Server, BEA WebLogic, Oracle OC4J, Sun GlassFish, Jetty, Google App Engine, among other application server compliant with servlet 2.3 specification and above.

  • Open Sourced and Community Driven

    LGPL License

    LGPL

    We believe open source is the best way to build an open, secure, and trustworthy software that millions can depend on.

    ZK 5 CE is freely available under the open source LGPL license. It's free for open source as well as commercial development and deployment.

    ZK PE & EE are freely available for open source GPL compliant projects under the ZK Open Source License.

    Millions of Downloads

    Millions of Downloads

    ZK is open sourced, over 1,500,000 downloads to date across 190 countries, and growing strong.

    As with any healthy open source software project, its community is the driving force behind ZK's evolution. The community depends on the ZK team to deliver a dependable Ajax framework to base their projects on. ZK relies on the feedback and support from the community to grow. ZK becomes more versatile as each feature request is implemented and the framework gets more stable as each reported bug is resolved.

    ZK and its community together form a positive feedback loop that garner each other's momentum toward a greater open source Ajax ecosystem.

    Thriving and Active

    Thriving and Active

    ZK is ranked #1 Ajax framework on SourceForge.

    Code is committed to the ZK repository each day. A ZK version is released every couple of months, with a "freshly release" happening each day.

    ZK is constantly moving forward to bring forth a reliable and feature rich framework on the Java platform.

    Hundreds of open source projects extends, or depends on ZK; ZKGrails and NetBeans REM are two prime examples of quality projects contributed by the great community.

    An Engaging Community

    With tens of thousands of members world wide, enthusiastic "Zeeks" share their development experiences and visions in user groups and forums.

    The ZK framework has been translated to 23 languages by the community, and the source code has been reviewed by experts across fields and industries. Thousands of test cases have been contributed by the community. Hundreds of articles and tutorials on easily accessible on the Internet.

  • Enterprise Proven

    Trusted and Established

    Trusted and Established

    ZK has a solid track record as the trusted framework of choice across industries.

    With over 1,500,000 downloads, ZK empowers a wide variety of companies and institutions, ranging from small to large in multiple industries. Over one hundred Fortune 500 companies, such as Deutsche Bank, Barclays, Sony, Swiss RE, Societe Generale, Lloyds TSB, Oracle, Bank of America and Toyota, and organizations such as US Department of Defense, University of Oxford, United Nations, rely on ZK to power mission critical systems.

    Over 90% of our customers renew our services each year because the technological advantage ZK offers, and also the ZK team's devotion to the success of the clients' mission critical projects.

    Mission Critical Success

    Mission Critical Success

    Tens of thousands of developers choose ZK to build their mission critical projects on, including multi-million dollar systems that serve millions of users and thousands of concurrent ones on an international scale.

    The adoption of ZK is approved in projects within organizations that take strict security measures, such as Department of Defense in US as well as many large international financial firms and health care providers.



    The Leading Enterprise Ajax Solution

    The Leading Enterprise Ajax Solution

    Innovation is the most important force driving the ZK team forward. ZK delivered the first Server+client Fusion technology, the first embeddable Ajax spreadsheet, the first Ajax framework to support Java and Android phones, the first to synergize the power of pure Java, markup and script languages, and more.

    Enterprise Support

    Enterprise Support

    ZK's support team is always dedicated to the success of your project. The ZK core developers who develop the framework are at your disposal to review your code, identify performance bottlenecks, customize and resolve any challenges arose in the development process. Help comes in the form of online or onsite training, consulting, and email incident supports.