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!

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.

#6

Neil Pitman commented on 14 Oct 2002

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...)

#5

Jon Strande commented on 12 Oct 2002

Jason,

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

Jon

#4

Jon Strande commented on 12 Oct 2002

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

#3

Rajesh Iyer commented on 11 Oct 2002

I agree. The article was pretty much useless.

#2

David Plass commented on 11 Oct 2002

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.

Neil Pitman wrote: 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...

Neil Pitman wrote: 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...)

Jon Strande wrote: 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

David Plass wrote: 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!

Jason Brome wrote: 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...

IT professionals are also embracing the reality of Serverless architectures, which are critical to developing and operating real-time applications and services. Serverless is particularly important as enterprises of all sizes develop and deploy Internet of Things (IoT) initiative...

As you know, enterprise IT conversation over the past year have often centered upon the open-source Kubernetes container orchestration system. In fact, Kubernetes has emerged as the key technology -- and even primary platform -- of cloud migrations for a wide variety of organizat...

This month @nodexl announced that ServerlessSUMMIT & DevOpsSUMMIT own the world's top three most influential Kubernetes domains which are more influential than LinkedIn, Twitter, YouTube, Medium, Infoworld and Microsoft combined.
NodeXL is a template for Microsoft® Excel® (200...

Because Linkerd is a transparent proxy that runs alongside your application, there are no code changes required. It even comes with Prometheus to store the metrics for you and pre-built Grafana dashboards to show exactly what is important for your services - success rate, latency...

At CloudEXPO Silicon Valley, June 24-26, 2019, Digital Transformation (DX) is a major focus with expanded DevOpsSUMMIT and FinTechEXPO programs within the DXWorldEXPO agenda. Successful transformation requires a laser focus on being data-driven and on using all the tools availabl...