Digital Edition

SYS-CON.TV
Jon's Weekly JSR Roundup Week 1 - JSR 94, Java Rule Engine API
Jon's Weekly JSR Roundup Week 1 - JSR 94, Java Rule Engine API

Not so long ago I read a great article from a senior level developer, who wrote that as we mature we learn when to look for available libraries before we rush in and build our own. He was referring to the plentiful number of open source projects that exist. Well, there are certainly plenty of those around, but there are also a number of emerging APIs coming right from Sun and the Java Community Process (JCP) - these specifications are known as Java Specification Requests (JSRs). This column will focus on the as many of the JSRs as possible going through the JCP and strive to keep you, the reader, informed of the comings and goings over at the JCP.

Now, as it turns out, about the same time I read that wonderful article I was thinking about building a Rules Engine. So, instead of diving right in and writing one from scratch, I went out and started looking for one on the Web. That is when I came across the JCP Web site and JSR 94, the Java Rule Engine API. More on JSR-94 a little later; first let's learn about the JCP.

The JCP, as defined at www.jcp.org: "The JCP holds the responsibility for the development of Java technology. As an open, inclusive organization of active members and non-member public input, it primarily guides the development and approval of Java technical specifications. Anyone can join the JCP and have a part in its process, and you don't even have to join to contribute as a public participant."

What this means is that any of us can join the process - power to the people! More than just having a say in the process, for $100 any individual can submit a JSR (it does cost more for companies to submit something). The point is that the process is open to anyone, so if you have an idea for an API, you can submit it - visit the following URL for an overview of the process: http://jcp.org/introduction/overview/

The process basically works like this: when a JSR is submitted, first it is reviewed and voted on within 14 days by the EC (Executive Committee. If the committee approves the JSR; the second step occurs: the creation of a community draft and the formation of an expert group. Following the draft and formation of the expert group, there is a community review (30-90 days) and another EC vote (7 days). If it is approved, then the third step is where the JSR team completes the specification and creates a public draft/final release, followed by another review and then a proposed final draft and then a final release. The fourth and last step in the process is the maintenance of the JSR.

Okay, back to the Rules engine. The detail for the Rule Engine API is located at http://jcp.org/jsr/detail/94.jsp. You can get a good bit of information about the Rule Engine API from this page. The format on this page is the same format for all of the JSR's. The page describes the proposed spec, the target platform (J2SE, J2EE, or J2ME), what need the JSR will address, and so on. Near the top of the page is very important section entitled "Status'". This section is ordered with the most recent status at the top. As you can tell from the JSR 94 page, the status just completed the Public Review stage (it closed on September 11, 2002). By clicking on the Public Review link, you are taken to the details of the public review, and there is a link on the page where you can download the specification - after agreeing to the license.

After downloading the specification, you can see that there is plenty of stuff in the 6+mg distribution including a Reference Implementation (RI), the full JavaDoc as well as a PDF of the specification that includes a complete overview of the architecture and example code. The distribution also includes all the third party, open-source libraries that the Rule Engine uses as well as the full Technology Compatibility Kit (TCK) with all of the test code for proving that the RI is compatible with the JDK. Is Java great or what?

Now that we have covered the JCP, JSR 94 - Java Rule Engine API, the only things left for future columns are the numerous other specifications that are currently going through the process. My aim for the weeks and months ahead is to keep you informed of the status of these proposed JSRs, as well as provide some technical details about them.

Please feel free to let me know what you think; I am always available to talk about Java!

Resources:

Java Community Process site - http://www.jcp.org

The Java Community Process(SM) Program - JSRs: Java Specification Requests - Detail (http://jcp.org/jsr/detail/94.jsp)

http://herzberg.ca.sandia.gov/jess/ri_overview.shtml (Missing file from the JSR public review package)

About Jon Strande
Jon Strande is a consultant with Perfect Order in
Harrisburg, PA. Jon is a Java Certified Programmer who
has written several articles on Java and was the past
president of his local JUG.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

And what about IBM Alphaworks..

Read this and tell me what it means. I can play with it but it might not even become a product. And if it does, I have no clue what the real licensing/price will be. I suppose that I could rip off the code, but it still remains IBM's so if it became big and they found out, they'd nail my hide to the wall.

No guarantees, no responsibility, complete retention of rights. It would be different if it were a product because then I could see how it works to decide whether to buy it or how to use it.

What is the point of this type of opensource? (I asked them, but they did not answer)

Note: alphaWorks technologies are early versions of what may, or may not, become IBM products or offerings. These technologies are not generally available and are provided "AS IS" without any warranties, either express or implied. Unless otherwise stated, alphaWorks technologies are provided pursuant to the terms of the IBM alphaWorks license agreement and are licensed only for a 90-day evaluation period.

I don't agree that the article was useless, although I too believed it would discuss the rules engine. Good technology is only part of the question. How it becomes standardized it just as important, otherwise you'll just have a mishmash like SourceForge. (Which I respect in many ways, but...)

Jason,

Great points! Thank you for the detailed information and feedback. I really appreciate it!

Jon

David,

Thank you for your feedback. I think that the JSR process is very important! I also want to point out that the purpose of the column is to educate people about the process and keep people up to date on some of the specification requests

I agree. The article was pretty much useless.

This article was useless -- it covers the JSR Process -- but who cares about that! I still have to wait until Sun fixes bugs. I wanted to learn about the Rule Engine API, which he didn't "cover" AT ALL!

The only issue to be wary off when downloading any software - be it Open Source or Reference Implementations from the JCP site - are the terms and conditions of the license. These may be restrictive in terms of packaging, usage within commercial applications, or may, in the case of this rules engine, only allow a 30 day period of internal-use evaluation.

Here's an important snippet from the license for JSR-94:

3.1 License Grant. Subject the terms of this Agreement, including, but not limited to this Section 3 and the Restrictions contained in Section 4, below, Original Contributor hereby grants to Recipient a personal, non-exclusive and non-transferable right to use the pre-final version of the Specification Package for internal evaluation and testing purposes only, for a limited period of Thirty (30) days from date of download.

3.2 Limitations. Recipient hereby acknowledge and agree: (i) that delivery of the Specification Package to you does not grant to you any rights to use the Specification Package for any purpose, except such internal evaluation and testing; (ii) that you will not disclose the Specification package to any third party without the prior written consent from the Original Contributor. (iii) that you will stop using and destroy the Specification Package in their entirety within thirty (30) days from the date of the download of the Specification Package.

3.3 Reservation of Rights. All rights not specifically granted to you herein are retained by the Original Contributor.




ADS BY GOOGLE
Subscribe to the World's Most Powerful Newsletters

ADS BY GOOGLE

Dynatrace is an application performance management software company with products for the informatio...
In his session at 21st Cloud Expo, Michael Burley, a Senior Business Development Executive in IT Ser...
Having been in the web hosting industry since 2002, dhosting has gained a great deal of experience w...
NanoVMs is the only production ready unikernel infrastructure solution on the market today. Unikerne...
All in Mobile is a mobile app agency that helps enterprise companies and next generation startups bu...
CloudEXPO | DevOpsSUMMIT | DXWorldEXPO Silicon Valley 2019 will cover all of these tools, with the m...
Yottabyte is a software-defined data center (SDDC) company headquartered in Bloomfield Township, Oak...
SUSE is a German-based, multinational, open-source software company that develops and sells Linux pr...
Your job is mostly boring. Many of the IT operations tasks you perform on a day-to-day basis are rep...
Serveless Architectures brings the ability to independently scale, deploy and heal based on workload...
Technological progress can be expressed as layers of abstraction - higher layers are built on top of...
When building large, cloud-based applications that operate at a high scale, it’s important to mainta...
Whenever a new technology hits the high points of hype, everyone starts talking about it like it wil...
Big Switch's mission is to disrupt the status quo of networking with order of magnitude improvements...
Lori MacVittie is a subject matter expert on emerging technology responsible for outbound evangelism...
Every organization is facing their own Digital Transformation as they attempt to stay ahead of the c...
"Calligo is a cloud service provider with data privacy at the heart of what we do. We are a typical ...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, disc...
Bill Schmarzo, Tech Chair of "Big Data | Analytics" of upcoming CloudEXPO | DXWorldEXPO New York (No...
Chris Matthieu is the President & CEO of Computes, inc. He brings 30 years of experience in developm...