Sun Microsystems has announced the release of the open source JDesktop Network Components (JDNC) Project on Javadesktop.org. JDNC includes the lightweight JDNC Markup Language, and aims to "simplify the development of rich networked desktop applications by means of a set of high-level user interface components with built-in networking and data-binding support."
The JDNC Markup Language is "a simple, extensible XML-based markup language that enables developers to configure JDNC based clients using XML and deploy them either as Java Web Start applications or as applets in a standard browser."
JDNC "leverages the power of J2SE and Swing while providing a higher level API, as well as an optional XML markup language, which enables common user-interface functionality to be constructed more quickly, without requiring extensive Swing or GUI programming skill. Additionally, JDNC simplifies the task of connecting a rich client to a J2EE backend, including JDBC and WebServices."
JDNC has a specific goal to make programming shortcuts accessible to a broader developer base, and especially to markup language developers. It will allow a wider audience to build "rich, data-centric, Java desktop clients for J2EE-based network services comparable to what enterprise developers typically build, such as SQL database frontends, forms-based workflow, and data visualization applications.
Three standard client deployment options are supported for JDNC, since is completely Java-based: (1) as a standalone application; (2) an application deployed with Java WebStart; (3) Applet deployed in a browser using Java Plugin. "When using the JDNC markup language, the same JDNC XML markup file may be used in all three cases. JDNC provides the bootstrapping classes which interpret the XML file and realize its contents in the appropriate toplevel UI container."
Offered under the Lesser General Public License (LGPL), JDesktop Network Components is one of several open source projects announced by Sun at the JavaOne 2004 Conference. Other technologies contributed to open source include Project Looking Glass, Java 3D Desktop Technology, and JDesktop Integration Components (JDIC).
About the JDNC Markup Language
The JDNC Markup Language is a high-level XML language for declaratively defining an enterprise desktop client. The development web site provides the JDNC Markup Schema — a browsable schema documentation which defines the syntax for combining elements and attributes, a JDNC XML Markup Tutorial, and JDNC Markup Examples (set of example JDNC markup files showing how to construct common scenarios)...
"There are a variety of ways in which you can get started with JDNC, depending on your needs. If you are a web developer currently using HTML and JavaScript, you might be pleasantly surprised at how easy it is to use JDNC components in a web-started application or an applet. If simplicity is key, you might want to start with a markup language interface to JDNC components. If flexibility is paramount, you may use JDNC components directly through their Java API. Whichever approach you take, you will never sacrifice extensibility, as both JDNC components and their XML interface are fully customizable.
Web developers who do not want to code in Java may use JDNC components through JDNC markup language. JDNC Markup Language is not a user interface markup language, but an extensible configuration language for UI and non-UI components alike. JDNC Markup Language brings renewed excitement to the Java platform by making it accessible to a whole new constituency of developers, who might not have considered Java otherwise...
Extensibility: JDNC Markup Language can be used in compound documents that can host markup elements from the JDNC schema as well as from other user-defined schemas. Advanced developers may plug in their own domain-specific schema extensions and tag libraries for object realization..." [from the Guide and Tutorial]
Motivation for JDesktop Network Components (JDNC)
"Over the years, we have consistently heard feedback about building Java desktop clients that can be summed up in just one word: simplify. Skilled developers have been able to create all kinds of rich, responsive applications in Java, however developers with less time to invest are often thwarted by the size and complexity of the interfaces they need to master.
This situation is not peculiar to Java: all of the platforms that provide comprehensive support for building desktop applications, like GNOME, KDE, and Mac OS X are necessarily complicated. However, what some of them have, and what Java lacks, is a shortcut for developers who are building applications that match a small number of common archetypes. Database and web service front ends, forms-based workflow applications, and simple chart/graph information visualization clients are good examples of these common archetypes.
Thus, we have initiated a new open source project on javadesktop.org, JDesktop Network Components (JDNC), which aims to provide the shortcuts required to construct these sorts of desktop applications in significantly less time by reducing the learning, design, and coding requirements. Additionally, JDNC has a specific goal to make these shortcuts accessible to a broader developer base. This ambition has led us to develop a high level XML markup language for JDNC which makes the richness of the Java client platform, previously accessible primarily to Java developers, amenable to markup developers as well! The goal to make Java desktop client development accessible to a wider audience is also driving our focus to make JDNC a natural companion for development tools, which is a critical requirement..." [from the Overview article]
Principal references:
- Sun announcement 2004-06-28: "Sun Contributes Four Java Breakthroughs to Open Source Community Including 'Project Looking Glass' and JAVA 3D. Project Looking Glass Will be Available to Developers on java.net. Additional Contributions Advance Adoption, Stimulate Growth and Promote Innovation."
- JDNC Project home page
- JDNC Markup Language Users Guide. By Ramesh Gupta.
- JDNC XML Markup Tutorial. "The data for this demo comes from a file generated by a WebService that accesses global weather data from weather stations all over the world at the moment of the query. Information about each weather station, including country of origin, geographical coordinates and elevation, is included as well as temperature (in Celsius), visibility, humidity, and wind strength and direction at the moment of sampling."
- JDNC documentation
- JDNC Features Summary. June 17, 2004 or later. "The features in JDNC are being driven by the functionality needs of enterprise clients and by what's currently complex to construct using base J2SE APIs. We anticipate this feature list to grow substantially as developers use JDNC in real world app scenarios. Documentation for JXTable/JNTable Components, JTreeTable/JNTreeTable Components, JForm/JNForm Components, JNEditor Component, MetaData & DataBinding, UI Framework."
- "More For Less: JDesktop Network Components." By Amy Fowler. June 21, 2004. Overview article.
- "The JDNC Project Debuts." Weblog entry from Amy Fowler. June 23, 2004.
- "Getting Started with JDNC." Guide which introduces the JDNC concepts and explains how to develop and deploy using both the markup and API layers.
- JDNC API
- JDNS demonstrations
- Contributing to the JDNC Project
- JDNC Forum
- Mailing list archive for 'jdnc@jdnc.dev.java.net'
- JavaDesktop web site. News, discussions, technical articles, and open source projects that use the Java 2 Platform, Standard Edition (J2SE) APIs to produce applications with rich client interfaces.
- 2004 JavaOne Conference
- Press:
- "Java Trends: Exclusive Interview with Amy Fowler." By Joe Ottinger and Amy Fowler. In Java Developer's Journal (JDJ) (May 5, 2004).
- "Desktop Java: JDNC Released as Open Source Project." In LinuxWorld (June 24, 2004).
- "Sun Opens Some Java Source Code." By Stephen Shankland. In CNET News.com (June 27, 2004).
- "Sun Opens Up Desktop Code." By Michael Singer. From Internetnews.com (June 28, 2004).