We recently spoke with Freeman Jackson, president of Siliware, an enterprise Java consulting firm based in New York City, and a member of the Object Management Group. Siliware this week unveiled an early version of VisionScript, one of the very first products based on Sun's new Jini technology for automatically connecting networked devices and software applications. In January, Jackson launched a site originally called the Jini Community -- which for legal reasons was renamed JiniVision -- that offers developers discussions, chat, and news on the hot new software technology. Here's what Jackson had to say about the Jini system and on working with Sun in order to create his new product.
In January, Jackson launched a site originally called the Jini Community -- which for legal reasons was renamed JiniVision -- that offers developers discussions, chat, and news on the hot new software technology.
Here's what Jackson had to say about the Jini system and on working with Sun in order to create his new product.
Rubbing Jini's magic lamp
EarthWeb: Now that Jini 1.0 is out, how are you putting it to use?
Jackson: We're not going to wait for electronic devices. We're going to use Jini 1.0 specifically for enterprise software. We're investigating how to use Jini with some Java APIs that traditionally would be used for enterprise work: Jini and JDBC, Servlets, JNDI, Email, Security, and so forth. We're also in the process of putting out one of the first implementations, we believe, of an enterprise product using Jini technology, which we're calling VisionScript.
"VisionScript is a business-rules engine using AI."
EarthWeb: Tell us about that?
Jackson: VisionScript is a business-rules engine and scripting environment for Jini electronic devices and software services.
It is Jini Connection Technology for scripting EJBs, Jini devices and software services, and implementing business logic. It is targeted for system programmers, architects, project leaders, and IT managers. In Siliware's Enterprise Jini Framework, not every knowledge worker is required to know Jini or the Java programming language but can still participate in an organization's knowledge creation process.
The Jini advantage
EarthWeb: What does Jini add to the product?
Jackson: Scalability and functionality for marshaling business logic across an IT infrastructure. It provides functionality for federating Siliware's business engine technology. It also provides enterprise-level lookup and discovery services.
An example that we've done to prove this concept was one using Jini and an agent. It was a Jini software service: all it does is go out and get a URL, but the URL information is specified from a Jini client. The Jini client says, "I want to get the information from a particular Web page." It streams the data across the federation, which is a very hard thing to do in CORBA. The marshaling issues that happen with CORBA, because it's not written specifically for Java, can be quite complex. Whereas, within the Jini model it's very simplified super-glue. This is what we're trying to take advantage of.
EarthWeb: Why did you choose the business-rules engine approach in designing your product?
Jackson: The evolution of Enterprise Jini Computing! I predict that EJC will become the primary platform of choice for business reengineering in the next couple of years. Historically, the number-one problem with enterprise computing has been the lack of formalism between an organization's business requirements and its IT activity. When major corporations start to understand that Jini is an excellent middleware technology, Siliware plans on being the framework of choice.
Here are the three organizational roles that Siliware has identified for an Enterprise Jini Platform:
1. Enterprise Jini System Programmers. They will be required to perform the installation, programming, and administration of Jini ORB services. They will write Enterprise Jini software services and devices with Java APIs, various communication protocols, and our new framework. They will be responsible for connecting VisionScript with their organization's Enterprise Jini APIs.
2. Enterprise Jini Project Leaders/Architects. They will be required to direct system programmers as they write and implement Jini-based EJBs, devices, and services with our framework. They will be required to deploy and implement business rules using Enterprise Jini. They will be responsible for Jini ORB deployment. They will be responsible for writing and maintaining VisionScript rules.
3. Enterprise Jini Senior Management. They will interface with the Project Leaders and Architects to discuss new products and new business rules.
"There are many AI professionals who don't know Jini or Java but who can easily write business rules using VisionScript."
Jini system programmers will be required to work on the low-level plumbing of the enterprise. They will be required to write software services and electronic devices which are 'intergalactic' in the sense that they can be connected using various communication protocols -- such as SNA, RMI, IIOP, DCOM, and so on -- and hardware/software platforms.
With VisionScript, the Jini system programmer is the low person on the pyramid but the most important as far as the actual linking of VisionScript to IT resources. Under the direction of Jini project leaders and architects, they write and implement EJBs, devices, and services that are accessible from the VisionScript environment and a djinn.
The Jini project leaders and architects will be required to help define/implement business rules and direct the Jini system programmers. They constantly interface with executive management and help manage and measure the Jini-based assets. They are responsible for the networking and administration of federations. This group will find the most value of a tool like VisionScript for the management of federations, translating business requirements to programmers and translating IT capabilities to management.
Once an enterprise is Jini-enabled, management can write VisionScript rules without the intervention of architects or programmers and create new information-based products on the fly.
An intelligent audience
EarthWeb: Where do you see VisionScript finding its early audience? And why these people?
Jackson: The AI community. That is where VisionScript has its roots. I think that there are many AI professionals who don't know Jini or Java but who can easily write business rules using VisionScript and in some cases create Jini applications that are much more powerful than non-VisionScript Jini applications.
EarthWeb: Can you disclose a timeline to VisionScript going "gold" -- full release?
Jackson: I would say you should expect a full release in two months. As far as the VisionScript alpha release, 98% of the product is done. We just need to finish coding and testing the data stream from and to the business-rules engine service to the client. We already tackled the problem of making VisionScript a multi-threaded Jini service, coding the rules engine, and streaming rules and data across the djinn, now we are working on making sure that the data is properly formatted to and from the engine. It will take Siliware two more weeks to finish the code, test, bundle, and release VisionScript alpha to the public. Once that is done we don't expect any major overhauls of the code, but we will need to prepare a lot of documentation to explain how it works, market VisionScript to the AI community, and develop a Swing-based GUI Rules Builder.
"When I first downloaded Jini I had some trouble getting it out of the bottle."
We plan on launching it as open source and sharing it with the community. The thing we really want to leverage is the community.
Siliware plans on attracting at least five or six open-source contributors to join its Enterprise Jini initiative. There are literally hundreds of programmers who have already contacted me and want to help. Jini is really hot and a lot of programmers want to make their mark in the industry.
Rolling up his sleeves
EarthWeb: Have you experienced any difficulties in working with Jini? What's the nature of the experience been?
Jackson: Yes, when I first downloaded Jini I had some trouble getting it out of the bottle.
I downloaded the Developer Connection version several months ago. It didn't appear to install properly. I had to make several adjustments to my classpath.
At Siliware, I program and administer several Windows and Linux servers. When I initially downloaded Jini, I tried to make my first wish on the Windows platform but discoverd that my initial Jini configuration required a multicast-enabled server and that Windows does not do multicasting. I also found out about Noel Nuggets -- "Sample Code on Getting Jini Out of the Bottle" -- and Bill Venners' "Jini Code Examples" from Sun's Jini ListServ. I first started with Bill's Jini code examples.
Using Bill's code, I found out how to do a join and lookup in unicast fashion on Windows. So I was able to get past that particular hurdle.
EarthWeb: Did you give any feedback to Sun, and did they give you any feedback, in this process?
Jackson: I put some stuff on the list [Listserv user group] about how I has able to get certain things to work. Another issue also of interest to your readers is handling what's called the policy files for security. It's pretty tricky.
"Most of my clients are interested in using Jini as enterprise technology."
Specifically, when it came to using Jini with servlets, I found I had to make some modifications to the Java security file that comes with the JVM. I don't know even to this day if that was done the best way. So I just put it on the list and I'm waiting for some feedback.
The problem is, in my mind, that I don't know if Sun is going to say, "Yeah, we even care about Jini and servlets at this point in time."