|
|
||
Janice J. Heiss's BlogBusiness ArchivesWhere the Software Met the RoadPosted by hiheiss on May 19, 2006 at 03:53 PM | Permalink | Comments (0)It's day two of JavaOne '06, and I’m over at the Slot Car Racing Programming Challenge area, where the track is heating up. Developers are standing in line, some for the 20th or 30th time! to see if their latest tweaks will pan out as they hoped. A lot has been happening here. The ABC Morning News guys were here with their cameras. Developers are taken with the chance of being onstage with James Gosling and spending some time with him. Gosling himself has been trying out the slot cars off and on for a few days. Some contestants admit that the slot car race brings them back to their childhood. Developer aren’t exactly closet game junkies. I approach one, who asked to be referred to as “Turtle,” and ask him if this is harder than he expected. “It’s very difficult,” says Turtle. (Yes, the name gives away something about his times.) “I have no experience with real-time. There is a lot of tuning, a lot of unknown variables – every car runs a little different. So even if you tweak it right for one car, it may not work for the next. This is about my 15th attempt and I’ve missed two sessions already.” (I’m beginning to understand why he doesn’t want his real name used.) “I’m getting better each time, and finally made it into turn three.” When I ask him how this is affecting him he says he wants to build a race track in his home. “This is a lot of fun. Once your car runs, the times are posted for your machine and you can figure out how fast your car is going at each sensor point. You could copy and paste this if you wanted, but it would be preferable if they gave you all of your races together so you could analyze all of the numbers.” Turtle informs me that the man standing next to him is tied for the lead. His name is Peter Whitfield. “I’m probably the worst Java programmer here – I’m more of a manager than a programmer,” admits Whitfield. “It will be embarrassing if anyone looks at my code. I have no experience with real-time Java, though 20 years ago, I worked with real-time systems. This is a lot of fun and a good opportunity to see how the real-time Java stuff works. It’s easy.” Different strokes for different folks. Peter -- who is quite generous with his time as he keeps eyeing the monitor above the track listing the names of who's in the lead along with who is currently racing -- completed the race in 25.49 seconds somewhere around his 20th trial and estimates that maybe 10 or 12 people out of 100 have made it to the finish line without crashing. Clearly the hardest thing is just making it around the track. I ask him the secret to his success. “Keep it simple -- do the absolute minimum necessary to get the result,” Whitfield explains. “There are guys doing some very sophisticated algorithms but I have not actually modified the sample algorithm at all, I’ve just been changing the parameters. Nothing in this application has been hard. I have an engineering background rather than a pure software development background and this is about manipulating voltages to control the speed, and that’s second nature to me. So my background helps. I have only now started changing the way the real-time stuff works. Until now, I’ve only changed the parameters of the way the speed changes as it goes around the track, so a lot if it involves trying to figure out how, if I change the voltage in one place, it affects the speed in another. That’s what people are missing -- they don’t understand how if they go too fast in one part of the track, it will make the car unstable later. The Java side of it is very easy to pick up because we are given a sample program. We have not had to set up the framework for it. Real-time programming is about understanding physical systems; it's not as abstract as writing UI software. So you need to understand the physics of what you are trying to do and the timing.” Peter went on to say: “I learned that I don’t program in Java often enough, so I hope people aren’t looking over my shoulder when I look up Google to figure out how I do multi-dimensional arrays. You need to be aware of where you are putting your thread to sleep and where it will wake up and if you are doing it in more than one place you need to think of the different permutations and where it can all happen.” And what else is Peter doing at JavaOne?.. “I’ve spent way too much time here. I don’t have a boss so I can sit here and just have fun.” I talk to a few other contestants waiting their turn. Jonathan O’Keefe, who does database programming, is trying out real-time for the first time. And there is Ulrich from Denmark who does web applications and GUI stuff and business logic, and Michael from Germany who does desktop programming and Carl, an American, from a company called Triego Network Security, who manages security information. None have experience with real-time. The line ebbs and flows at various times, but there's always someone racing, and there are a lot folks sitting in front of the machines set up for them on which they work on their real-time programs. Only Carl admits to big ambitions. “At first,” says Carl, “I was over-complicating it by treating it like a J2ME product, but if you are very conservative about the objects you allocate, you can treat it as a regular Java program. You have to keep it simple and not allocate anything in the loop or you will run out of memory. I’m going to try to knock someone off the leader board -- I’ve just started with the base program so there is a lot of room for improvement.” Carl sees uses for real-time Java at his company, Triego. “We do some close to real-time work and try hard to keep our GC under control and use a concurrent generational collector, so the real-time Java technology is very interesting. We could find a lot of use for this technology in the work we do. It’s interesting and the applicability of the predictability of execution time is great.” As I walk away, I see that Robert Chu is tied with Peter Whitfield’s 25.49 seconds time while Richard Yee is third, at 26.18, and Rivera (I don't catch his first name) is fourth at 28.60. I wonder if any of these folks will be in the top three when James Gosling gives his keynote on Friday morning. Time and times will tell. Stay tuned. The winners will be announced and compete one final time at the Gosling keynote on Friday. Should be a lotta fun! Finally, here's a story about the Slot Car Racing Programming Challenge yours truly wrote over on java.sun.com: The 2006 JavaOne Conference Slot Car Racing Programming Challenge
Programming in Real-Time Specification for Java (RTSJ): A Conversation with Distinguished Engineer Greg Bollella Let's Make a Deal: Java and .Net Hold Hands Over Web ServicesPosted by hiheiss on May 18, 2006 at 08:08 PM | Permalink | Comments (3)At JavaOne earlier this week, I took in TS-5540, “Making Java/.Net Technology Based Web Services Interoperability Real” with Sun’s Arun Gupta and Microsoft’s Kirill Gavrylyuk. Sun and Microsoft developers have been meeting at “Plugfests” in Microsoft’s test facilities in Redmond, Washington, where they identify bugs and work to assure interoperability in their web services code. Both have strong customer-driven motivations for removing interoperability barriers between their web services stacks. The collegial environment is reported to have been refreshing and productive. Arun Gupta’s blog has interesting comments: http://weblogs.java.net/blog/arungupta/archive/2005/11/sun_sleepless_i_1.html So here were two developers from corporations that once viewed each other as enemies offering a joint presentation. Economic necessity makes strange bedfellows. Gupta enunciated their basic message: “In this talk, we intend to show you that enterprise web services are real,” said Gupta. “We also intend to show you how web services enable enterprise integration scenarios within and across business boundaries.” Web services are well adopted on both Java and .Net platforms. Recent developments in Microsoft’s Windows Communication Foundation, which is Microsoft’s web services platform, and the open source Glassfish communities’ compatible app server have made interoperability a reality. They are not just talking about a promising future. Gavrylyuk and Gupta presented a scenario with a Sun-managed retail quote service which gets quotes from a service running in a homogeneous environment. It gets quotes from a variety of client services, some of which run in a .NET Microsoft environment. It also gets information from a GlassFish client. In both cases they use secure and reliable communication. They began with consumer integration. Suppose consumers rely on the Sun-managed quote service that uses WCF and Glassfish clients. How to achieve data interoperability? The two managed environments establish what is called a brokered trust relationship through obtaining tokens from STS, Secure Token Service, to authenticate their interactions. Their presentation next focused on the challenges of integrating both businesses and consumers and the road map for the future. The key issue is establishing a contract through data structures. When it comes to XML schema interoperability, they summed up their advice to developers in the memorable acronym, KISS: Keep Interoperable Schemas Simple. They recommend a simple set of de-facto profiles: xs:sequence, xs:element, wrapped arrays, etc. Schemas should be used as data type descriptions, not as validation mechanisms. Avoid complexity unless it’s required, and avoid schema constructs that do not map well onto programming languages. They turned to the issue of binary attachments which Gupta acknowledged has had a “bumpy road over the last few years”. xs:base64Binary is interoperable, but comes with a high processing cost and 30% extra message size. The industry has fallen into two camps: one has gone with SOAP attachments, while the other adopted DIME (Direct Internet Message Encapsulation). Both push the binary data outside of the SOAP envelope. SwA, which is SOAP with attachments, has low interoperability, with attachments outside the SOAP body, and suffers from lack of composition with other web services protocols. DIME has the same problems as SwA. So what to do? MTOM (Message Transmission Optimization Mechanism) comes to the rescue. MTOM works in a simple manner. It is conceptually like a SOAP envelope, but just before the SOAP envelope hits the wire the binary part of the body is serialized as a separate MIME part. Integrating Businesses The key to business integration, not surprisingly, is reliable, secure messaging. With information moving over the web between services, there is a danger of information getting lost and a need for reliable security. Quote service reliability requirements include reliable transfer of messages end-to-end, assurances that orders are not duplicated and secure composition. They then presented a demo of reliable messaging in which a .NET wholesale service was interacting with a Sun managed Java retail quote service in a reliable and secure manner. They turned to the issue of WS-Trust and Security Token Services, which “arbitrate” trust through providing universal token/claim conversion, and support for arbitrary trust patterns in a decentralized manner -- anyone can be STS. They discussed Security Policy and Metadata Exchange whereby WCF Finally, Gavrylyuk discussed Windows Vista Web Services, and the Windows Communication Foundation (WCF -- a.k.a. Indigo) which offers a runtime for building distributed applications. “InfoCards” visualizes a user’s digital identity, Active Directory Federation Services provide an infrastructure for identity and access. Windows Remote Management enables interoperable system management, and something called Web Services For Devices helps with Web Services-based devices interaction. That's all for now, folks. Bare bones of a technical session but hopefully of some value. For more meatier or vegy (if you're a vegetarian) details: Windows Communication Foundation (a.k.a. Indigo) GlassFish Community Web Services Interoperability Portals Web Services Interoperability Blogs Here we go! JavaOne is almost here!Posted by hiheiss on May 10, 2006 at 08:14 PM | Permalink | Comments (0)Among the topics currently scheduled for my editorial beat: -- The Slot Car Programming Challenge wherein developers get to test their skills with Real-Time Java. Standard 1/24 scale cars run around a track with 80 sensors spread along its length with a power supply controlled by an A/D converter driven from a workstation. Contestants have to write software that controls the car while going as fast as possible. The sensors are simple photocell gates like those used to detect paper moving through a printer. The Real-Time Java program senses the track position of a slot car and sets the voltage to the track -- and thus the speed of the car. Attendees with the 3 shortest lap times will have a final run-off during James Gosling’s keynote on Friday. -- The activities of Tommy, the autonomous, unmanned Java technology-powered robotic dune buggy, who will be making myriad appearances. Tommy's software is built on a Java technology-based platform called the Mobile Autonomous X-bot (MAX) developed by Perrone Robotics, Inc. (PRI). PRI-MAX runs on the Java Platform, Standard Edition (Java SE, formerly known as J2SE), and uses the Java Communications API, while Tommy's microprocessors rely on a hardware-based Java Virtual Machine (JVM) running Java Platform, Micro Edition (Java ME, formerly known as J2ME). -- The always-lively discussion at the Fireside Chat wherein JavaOne conference Alumni get to engage with Java luminaries. -- Sun’s Project Tango which addresses interoperability between applications built on Microsoft's Web Services Communications Foundation (WCF, a.k.a. Indigo) and those built with Sun's Java Web Services technologies. -- SOA and developments in open source. -- Twelve Reasons to Use NetBeans Software. Plus numerous other sessions, along with exhibits in the Pavilion and the flexibility to go where the action is. I already feel sleep deprived! RTSJ and the JavaOne Slot Car ChallengePosted by hiheiss on April 07, 2006 at 02:04 PM | Permalink | Comments (0)I recently conducted an interview with Sun's Greg Bollella that debunks some myths about the difficulties of Real-Time Java and touts the coming Slot Car Challenge at JavaOne, which will give developers a chance to write some RTSJ code and see if can guide a slot car around a track with speed and accuracy -- it should be fun. Greg believes that "The Slot Car Challenge at the 2006 JavaOne Conference will prove that anyone can program with RTSJ,” and insists that programming in Real-Time Java is "more like bicycle science than rocket science". Anyone want to ride the bicycle? Conscientious SoftwarePosted by hiheiss on March 30, 2006 at 03:35 PM | Permalink | Comments (1)Conscientious Software: Part One of a Conversation with Sun Microsystems Laboratories' Ron Goldman Here's a rich IMHO interview with Sun's Ron Goldman by yours truly. Ron's a senior staff engineer at Sun Labs who is working with Richard Gabriel to envision a new software model. As we move into a world of massive software interdependence where standalone apps are on the way out, Ron wants to develop ways to make "large systems more robust, stable, and better able to take care of themselves." He wants software to start using cpu cycles "to actively monitor its own activity and environment, to continually perform self-testing, to catch errors and automatically recover from them, to automatically configure itself during installation, to participate in its own development and customization, to pay attention to how humans use it and become easier to use over time, and to protect itself from damage when patches and updates are installed." Are you enticed by his vision?... Meet Java Developer, Arun GuptaPosted by hiheiss on March 20, 2006 at 10:18 AM | Permalink | Comments (0)A "Meet the Engineer" interview I did with Java developer Arun Gupta of Sun might be worth checking out. Arun has useful insights about programming in India and the US, the challenges of developing software, Java APIs for XML Web Services Addressing (JAX-WSA), and efforts to get Sun Microsystems and Microsoft on the same page. He's a smart guy and has a patent related to XML and has several patents pending. Seeing Shouldn't Be Believing or the World According to Josh BlochPosted by hiheiss on March 13, 2006 at 03:18 PM | Permalink | Comments (1)Please check out the interview http://java.sun.com/developer/technicalArticles/Interviews/bloch2006_qa.html I had the pleasure to do Bloch claims that most Speaking of unwarranted optimism, Josh also makes some interesting comments about I totally enjoyed interviewing him. Meet the Engineer Q&A on java.sun.comPosted by hiheiss on March 10, 2006 at 04:54 PM | Permalink | Comments (0)Please check out this Q&A: http://java.sun.com/developer/Meet-Eng/ohair/ I did with Kelly O'Hair, senior staff He was really fun to interview. Asked if he ever feels a sense that he's Kelly is a java.net blogger so check out his blog Putting the Server in Your PocketPosted by hiheiss on June 29, 2005 at 11:07 PM | Permalink | Comments (5)At the June 29, Wednesday morning Platinum session, held from 8:30 to 9:15, Nokia Chief Technology Officer and Senior Vice President Pertti Korhonen provided a vision of the future that promises to take Sun's motto "The network is the computer" to another level, by putting the server in your pocket. Steve Meloan does a really good job of covering the technical moves Nokia and the industry are making to enable this here: http://java.sun.com/javaone/sf/sessions/general/nokia_wednesday.j spso that allows me to wax philosophical :) in this blog. It's a remarkable all-too-implicit vision of a world where extraordinary access to information and communicative power are available anytime, any place. Anyone can contact anyone and information about anything is at your fingertips. That is where we are headed. In another year or so mobile Java devices will be in the hands of a billion people, absolutely awesome. The "power of Java everywhere" is no hype; it's fast becoming real. There is no question that in many domains of life, from medicine to meter readers to industry to friendship and love, it's great. But I remember Jon Krakauer's book, Into Thin Air about a disastrous climb of Mt Everest in which many people died. What was almost unbearably poignant was the story of the leader of the climb, an Australian who found himself stranded at the peak in a severe blizzard at which he had the capacity to speak to his wife in Australia by cell phone, but was unable to get down from the summit before freezing to death. Technology could enable this man to talk to his wife as he was dying but it could not overcome the dubious risk-taking judgment that led to disaster.It's tempting to make this story symbolic of something or other - I don't really know what. Maybe something like the story of the pilot of the plane who doesn't know where he is going but is proud of the fact that he is breaking all speed records. It's all happening so fast, and there is always the law of unintended, unforeseeable consequences. I found myself wanting Korhonen, and everyone else, to get specific about how this technology can help us. The vision can't just be technological, but one that looks more deeply into the nuances of the implications for human life. But perhaps that's what the theme of this conference is hinting at with its emphasis on the word, share.Project Looking Glass: An Expanding Universe on Your DesktopPosted by hiheiss on June 29, 2005 at 10:31 PM | Permalink | Comments (3)I'm at TS-7992 where Project Looking Glass (LG3D), a Java technology-based open source project that brings a richer user experience to the desktop through 3D windowing and visualization capabilities, is being presented to an audience of, I guesstimate, 800 people. LG3D sprang from the very creative heart and mind of Sun's Hideya Kawahara. Recognizing that desktops had not changed substantially in 20 years, he set out to make them more aesthetically appealing and powerful. Operating on the assumption that the next user interfaces would be 3D, he initiated a side project that would consume at least two hours a day of his spare time, plus most of his weekends and holidays for more than a year before taking hold at Sun. To put it mildly, it has taken hold. It's the most popular "app" on java.net (http://lg3d.dev.java.net) with 26,600 source code downloads, plus 600 members (and counting) since the 2004 JavaOne Conference where it was open sourced. So what's the latest? Hideya and Paul Byrne, LG3D project owners, demo'ed a range of 3D images, a music player, scenes in which you could alter the backgrounds with a click, "Alice" an award winning 3D media player (http://alice.dev.java.net) that is the first to utilize the 3D capacity of Looking Glass, and more. CosmoSchedulerD, a three-dimensional application running on LG3D software, created by developers at the Kyushu Institute of Technology in Japan, won a Duke's Choice Award (http://java.sun.com/javaone/sf/dukes_choice_awards.jsp). As a schedule book, it recreates outer space, with your personal solar system built in by arranging the planets according to their dates. The front of the orbit represents the current time, while the size of the planet symbolizes an appointment's importance, which makes it hard to forget an event even a few light years from now. CosmoSchedulerD contains features that ordinary schedule notebooks don't have, such as automatic scheduling, networking, and a workspace manager. Imaginative desktops seem to inspire even more imaginative apps to be built on them. (I can't escape the feeling that talking about innovations on a gorgeous 3D desktop is like a donkey carrying a load of books. Have to shake it off. By all means go check out "Philco" running LG3D, the mock-up on the cell phone, and LG3D on a 3D LCD display, and all the rest on the pavilion floor!) Hideya and Paul gave a brief summary of how to create a "deep" 3D environment. It's built on Java 3D with specialized classes that include a component model, animation system and SceneManager interaction. The LG3D 0.7 release has just arrived. There is now WebStart support (http://lg3d-webstart.dev.java.net) for running the "developers" mode of Looking Glass. It operates in application mode so LG3D can run on top of a user's existing desktop. Java 3D 1.4 now enables performance improvements like shader support. It has Open Solaris support. In the pipeline is tool integration, a visualization library, and "SwingNode" support. There will be greater inclusion of identity and collaboration features and a more task-oriented UI. To run it: http://lg3d-webstart.deve.java.net To get it: http//lg3d-core.dev.java.net To learn more about LG3D: http://java.sun.com/developer/technicalArticles/javaopensource/plg .html http://java.sun.com/developer/technicalArticles/J2SE/Desktop/look ingglass/ A Pragmatic Application of SOA (Service-Oriented Architecture)Posted by hiheiss on June 29, 2005 at 10:06 AM | Permalink | Comments (1)Over at TS-1640 Pragmatic SOA: A Case Study, with developers Ashok Mollin, Ashesh Badani of Sun Microsystems, Inc. and T.N. Subramaniam, Director of Technology at RouteOne LLC Inc. Ed Ort (http://weblogs.java.net/blog/edort/archive/2005/06/pragmatic_soa.html) and Tim Bray (http://www.tbray.org/ongoing/) of Sun are blogging the session in greater detail. I will be doing a story on this for java.sun.com in a month or two so stay tuned. For now, a sneak preview. RouteOne provides a web-based Credit Aggregation Management System (CAMS) created to accelerate the automotive finance process for dealers and their finance sources. The session presented “a real-world implementation of an SOA project at RouteOne LLC and helps explain the architecture and various best practices, design patterns, standards, and technologies involved in building an end-to-end business solution.” The presenters define Service Oriented Architecture (SOA) as “an integrated software infrastructure and design approach, leveraging Web computing standards, for delivering business functions as shared and reusable services.” A lot of people regard SOA as a real challenge, in part because it typically involves both substantial organizational change, in addition to new ways of organizing IT. It seems like a situation in which developers have to be, not only technically sharp, but good listeners who can understand the culture of the company they are working with. Creating a shared service requires technical design prowess — architects have to know who, when, and where in the business process, services will be consumed. And then there is the whole history of ERP enterprise resource planning, in which some CIOs and IT managers experienced a lot of growing pain involving expensive projects that required changing processes across the enterprise as part of automation. It has not always worked out. Some people fear that SOA will bring a lot of pain to companies because it may be bigger than an ERP implementation. So businesses are sometimes understandably cautious. There can be a lot to rethink: development methodology, business impact, infrastructure, budget, organizational design and more. Another challenge involves creating high-level business components that can be re-used and re-configured. One problem is that the requirements that yielded the original component interface were different enough from the new ones so that they required the re-write of substantial functionality. The basic approach of Sun’s Ashok Mollin and Ashesh Badani, along with RouteOne’s T.N. Subramaniam, seems sensible and cautious: Projects need to generate ROI in 12-18 months so start small and be opportunistic. Minimize disruption to existing infrastructure; reduce risk with fewer web services initially while climbing the skill curve. Wrap legacy/existing applications using adapters + WS; Java and .NET interoperability. Evolve into a flexible, standardized architecture; does not mean “rip and replace”. Foster cultural change to encourage reuse. Take a top down approach – let the business drive!
They addressed several critical problems: Single Sign On Transparent login from lender portal Get Dealer Information Accessing volatile dealer information at runtime Import Credit Application Start the process on another system – DSP Orchestration Maintain state and coordinate document exchange in long running transactions with Lender
A summary of their “Pragmatic SOA wisdom: Start simple, don’t let the “alphabet SOAup” overwhelm you. Let business identify the service. Think XML documents not objects. Use SOAP as an envelope, but not for binding. Use WDSL 2.0 for description not code generation. Think asynchronous conversations. Use WSBPEL to orchestrate the process. Use JBI for integration. Keep learning, this is not finished.
Question as I left: Did the large Java developer audience there come away enthusiastic about SOA? There certainly were a lot of smart, probing questions in the brief, casual q &a after this session, if that's any sign. | ||
|
|