JNBridge Logo

JNBridge is 10!

Tuesday, Jan. 31st 2012

Join us, we’re celebrating: JNBridge is 10 years old! And what a decade it’s been. We’re going to celebrate all year, but to kick it off we’ll start with a brief retrospective of 2002.

Ten things that happened 10 years ago:

  1. In January, Sun and Microsoft settled their suit. Sun had sued Microsoft for incompletely implementing the Java 1.1 standard. Microsoft paid Sun $20 million, and agreed to phase out their version of Java.
  2. J2SE 1.4 was released on February 6, 2002.
  3. Microsoft .NET Framework version 1 was released on February 13, 2002.
  4. JNBridgePro version 1.0 was released June 3, 2002. Version 1.0 was a one-way bridge that allowed .NET to call Java.
  5. JNBridgePro version 1.1 was released on August 9, 2002, it added support for J2EE.
  6. JNBridge’s press releases early in the year instructed the reader how to pronounce .NET (“dot net”).
  7. JNBridgePro version 1.2, released November 8, 2002, added “one-and-a-half-way” bridging, allowing implicit calls from Java to .NET.
  8. The first commercial application using JNBridgePro pulled media advertising information from a Java-based system for a search engine company. A version of that application is still in use today.
  9. The second commercial application using JNBridgePro enabled a financial call center to strip Java-based telephony information and pop it into .NET-based screens. That application has been performing flawlessly for almost 10 years.
  10. We started bidding on “Java” and “.NET” keywords in Google AdWords in September.  .NET was so new that Google search didn’t know what to make of it yet, so our initial campaigns included lots of negative keywords such as fish and fishing.
  11. Going to 11, ten years ago the JNBridge logo looked like this. old logo Good grief!

Farewell, JavaOne

Thursday, Sep. 29th 2011

JNBridge has had a presence at JavaOne every year for the last six years, from giving talks to exhibiting. They’ve been good years:  we’ve greatly appreciated and value the face-to-face conversations about solving real world problems. Back in 2005 we even got to hang out in Microsoft’s booth, and watch the shock and awe as hard-core Java developers witnessed fences starting to mend.

2010 brought a huge transition to JavaOne, as it morphed from its own event in the Moscone Center under the auspices of Sun to a satellite event of Oracle Open World, relegated to a rabbit warren of hotels around Union Square. Despite all the resulting downsides, we had a good show, as we got to engage with what became new customers and help them quickly solve their interoperability pain.

This year, the downsides have tipped the scale, and we decided to pull out. This decision wasn’t taken lightly — backing out of a commitment is a serious, angst-raising business around here. It wasn’t any single thing, but a whole lot of small things that pushed us away.

We don’t wish to sound snarky or petty, but little things matter, a lot. Despite signing on the dotted line to exhibit in 2011 at the 2010 show, we, like the rest of the world, were left in the dark to interpret bits of speculation in the media about whether JavaOne 2011 would even happen.  When it was announced last April, we were left to discover the news on the web — somehow we’d fallen off of the exhibitor email distribution list, and we stayed off.  When we finally woke up and realized what had happened, it was too late — the desirable hotels were booked, and the stress level of trying to get the team into decent housing was the final straw. This was on top of the hay pile of stuff we experienced last year. No media services: the media room was way off in the bowels of the Moscone Center, journalists and analysts either couldn’t find us or couldn’t fit the 15 minute trek uphill into their crowded schedules.

Other downsides weren’t exclusive to us, they impact all attendees. Relegating JavaOne to the outskirts of Oracle Open World forces it to be a bastard step-child — there’s no way a show of what’s now reduced to 3000 attendees can get the attention it deserves while competing for resources against a 40,000 attendee show. Many services, like extended registration hours and evening events, are that 15-minute walk away. The physical location is a rabbit warren – making both sessions and the exhibit floor difficult to find, so everyone struggles just to figure out where they are going. Gone are the chance confabs in the hall. Gone is the ability to walk up to anyone at the party and ask “so, what do you think?”, as in all probability are they are attending a very different event. We maintain that the Java community deserves better.

Finally, we recognize that we embarked upon a costly experiment some years ago. Would spending our resources and our time on trade shows be fruitful? It’s a tough and rather subjective thing to measure. In retrospect it was probably the right decision. But times have changed, and we now need to experiment with other ways to engage. Look for us in other venues in the coming months and quarters. If you have a preferred way of interacting, we’re all ears!

So, farewell JavaOne. We wish you, and the Java community, much success.

Addendum: Wayne Citrin, our CTO, will be wandering the halls the first two days. Give him a shout at @waynecitrin if you’d like to hook up.

Posted by Deborah | in Announcements, Events, General | 1 Comment »

JNBridgePro and Windows 8: It already works

Tuesday, Sep. 27th 2011

We were at Microsoft’s Build conference in Anaheim a few weeks ago, where they unveiled their upcoming Windows 8 operating system.  In case you hadn’t caught the news, Windows 8 contains two distinct user experiences: a traditional “Desktop” experience which resembles Windows 7, and a new, touch-centric “Metro” experience.  The Desktop experience allows you to access the full .NET Framework as before; Metro applications run in a much more restricted runtime environment.

We’ve spent some time with Windows 8, and we’re happy to report that JNBridgePro, as it’s currently released, already works just fine with Windows 8 in desktop mode. So, if you’re already using JNBridgePro and want to move your application to Windows 8, or to create a new application for the Windows 8 desktop, JNBridgePro is as easy to use as always.

We’re also happy to report that the JNBridgePro plug-in for Visual Studio will work with the upcoming Visual Studio 11 Developer Preview with only minor changes, which will be incorporated in an upcoming JNBridgePro release.  This means that JNBridgePro will be ready for the new Visual Studio by the time VS 11 is released, and likely sooner.  In the meantime, if you want to use JNBridgePro in conjunction with VS 11 development, we recommend using the standalone proxy generation tool.  If you’d like to be a tester for the JNBridgePro plug-in for VS 11, please contact us.

As might be expected, Metro-style development, along with the more restrictive WinRT and new .NET Metro profile, offer a few challenges.  During the run-up to the Windows 8 release, we will be addressing those challenges.

We’d be interested to know whether any customers or prospective customers are planning to produce Metro apps, and whether they anticipate building .NET/Java interoperability into those applications.  If you are planning to produce such applications, we’d like to hear from you, and work with you, at this early stage in the Windows 8 product cycle — please contact us.

Over the coming months, we’ll periodically post new blog entries discussing interesting technical aspects of Metro and WinRT, as they affect interoperability.  We expect to learn a lot during this process, and we look forward to sharing it with you.

Posted by Wayne | in Announcements, General | 1 Comment »

JNBridgePro 6.0 is available! Integrate Java & .NET in the cloud.

Monday, Jun. 6th 2011

Whew! We’ve made our committed deadline: JNBridgePro version 6.0 is now available for download.

This new version supports Java/.NET interoperability projects where one or both of the end points are in the cloud. JNBridgePro 6.0 enables you to build and distribute integrated applications anywhere, including:

  • Intra-cloud, where both end points reside in the same cloud, either in the same or separate instances
  • Inter-cloud, where the instances belong to different clouds — even across cloud vendors
  • Ground-to-cloud and cloud-to-ground, where one end point is in a cloud instance and the other is an application running on the ground

JNBridgePro 6.0 extends its full set of interoperability features from the ground to the cloud, so now you can build integrated applications that run anywhere. Read more details and check out some sample use case scenarios.

You may have recently seen a wee bit of press about our launch. As Michael Coté from RedMonk says: “There’s so much valuable data and process locked in Java and .Net applications that can’t just be left behind in whatever cloud-y future is out there – and refactoring all of that to be cloud friendly would be an onerous task. Instead, you need tools that help modernize those pools.”

Try it out for yourself! We’re eager to hear what you think.

Posted by JNBridge | in Announcements | Comments Off

Java in the Azure Cloud

Tuesday, Apr. 26th 2011

Microsoft has been promoting the use of Java in the Azure cloud, and has been providing lots of material showing how it’s done. They’ve also been distributing Java tools for Azure, including an SDK for Eclipse, and an Azure accelerator for Tomcat. Their latest offering is the “Windows Azure Starter Kit for Java,”? which provides tools for packaging and uploading Java-based Web applications running on Tomcat or Jetty. In considering this, the main question that comes up is “Why?”?

It doesn’t work

“It doesn’t work”? is an extreme statement, isn’t it? And Microsoft has demonstrated that it can create Java Web apps and run them on Azure, so why do I say it doesn’t work? The problem is that these examples are extremely constrained. For example, Azure makes a virtue of its lack of a persistence mechanism. Instances can fail or restart at any time, which means that data isn’t persistent between instances, and applications therefore must not depend on persistent data. However, both Java Web applications and the servers they run on do depend on some sort of persistence or state. With effort, the applications can be re-engineered, but one has to wonder whether it’s worth the effort to do this, or whether the time might be spent moving to a different cloud offering where this re-engineering doesn’t need to be done. There’s also the problem that the Tomcat and Jetty servers themselves require persistent data to be stored. And the problem gets even worse when we go from a simple servlet container to a full-fledged application server like JBoss, WebLogic, or WebSphere: application servers, and the Java EE programs that run on them, rely even more deeply on persistent data. While some Java EE application servers can be altered to use alternative persistence mechanisms like Azure storage, the process is arcane to most Java EE developers and not worth the trouble; it would probably be simpler to use a cloud offering where the application server can be deployed without alteration.  In addition, a default application server relies on an extensive array of network endpoints for a variety of protocols that exceeds the number allowed by a worker role or a VM role. To run an app server on Azure, it is necessary to cut down the number of endpoints to the point where much useful functionality is lost. While it may be possible to construct Java EE examples that work as demos, it’s unlikely that any real Java EE apps, web-enabled or otherwise, can be migrated to the Azure cloud without drastic, impractical or impossible, modifications to the underlying application servers in order to accommodate the persistence and networking issues.

It’s not what users want

Beyond the technical issues in getting an app server running on the Azure platform, we need to ask why we would want to do this on a Platform-as-a-Service (PaaS) such as Azure, when it would be far simpler to run such an application on an Infrastructure-as-a-Service (IaaS) offering like Amazon EC2. It’s one thing to say it can be done; it’s another thing to actually want to do it, as opposed to the easier alternatives. The market seems to bear this out – a recent Forrester study shows that Eclipse (that is, Java) developers prefer Amazon EC2 or Google App Engine, while Visual Studio (that is, .NET) developers prefer Windows Azure. Developers really don’t want to go through the contortions of packaging up their Java app plus the app server or servlet container, then configure and start it up as a special action under elevated privileges in an Azure worker role, just so that they can run Java EE, when they can easily install their application on a convenient Amazon EC2 image.

What users do want, it doesn’t do

Users will want to do things with Java on Azure, but not what the creators of the Azure Starter Kit for Java think they want to do. Rather than running a self-contained Java server in an Azure role (something they can more easily do elsewhere), they will want to integrate their Java with the .NET code more directly supported by Azure. For example, they may well have a Java library or application that they want to integrate with their .NET application. Depending on the Java side’s architecture, the Java might run in the same process as the .NET code, or it might run in its own process, or even a separate worker role. In any case, the Java side wouldn’t need to run in a full-fledged app server; it would simply expose an API that could be used by the .NET application.

A scenario like this is exactly the sort of thing that JNBridgePro supports. Java can be called from .NET code, and can run in the same process or in separate processes running on different machines. Up until now, those JNBridgePro deployments have been in on-premises desktop and server machines. In our upcoming JNBridgePro Cloud Edition, it will be just as straightforward to implement these interoperability scenarios in the cloud.

In summary, there’s a role for Java in the Azure cloud, but we think Microsoft is pushing the wrong scenarios. The Azure Starter Kit for Java is clever, but it (incompletely) solves a problem that cloud developers don’t have, while ignoring the real-world problems that cloud developers do have.

Posted by Wayne | in Cloud | 2 Comments »