Welcome!

Microservices Expo Authors: Pat Romanski, Liz McMillan, Elizabeth White, Stackify Blog, Andreas Grabner

Related Topics: Microservices Expo

Microservices Expo: Article

Glue 4.1 from The Mind Electric

Glue 4.1 from The Mind Electric

What do you do after you've cofounded a company that developed award-winning products for distributed computing, won a Young Entrepreneur of the Year award, and finished a book on Web services? If you're Graham Glass you start another company and continue pushing the envelope of distributed computing.

The company is The Mind Electric (TME) and the envelope is one of simplicity. TME has tried to build a Web services platform with a simple conceptual model and an easy-to-understand API. It is working on a next-generation product they're calling a "Web services fabric" code named GAIA but this review focuses on their current platform, Glue 4.1.

Today APIs are proliferating like rabbits and frameworks are getting larger and more complex. When I wear my developer hat, I prefer to work at the API level. It helps to promote an understanding of the mechanics of the system, but it gets harder and harder to keep up. Graphical tools, like wizards, can hide the complexity of large frameworks, but after the initial code-generation phase is done most of these tools are not useful or tend to get in the way. With the ever-increasing complexity of application servers, Glue takes a welcome step in the right direction, the direction of simplicity.

If you're looking to put your toe in the water of Web services but recoil from the complexity of working with a full-blown J2EE application server, then Glue may be the product for you.

Flavors of Glue
There are two versions of Glue: Standard, which is free but unsupported; and Professional. Although Glue Standard is unsupported by TME, there is an interest group available on Yahoo! that gives you access to the TME user community at large.

Glue Professional comes with support via TME's online issue tracker and includes these high-end features:

  • Turbocharged performance
  • Real-time management console
  • Web service instrumentation
  • EJB integration
  • Reliable/async messaging over JMS
  • LDAP authentication via JAAS
  • WS-security, including digital signatures and encryption
  • WS-routing
  • Remote deployment
  • Virtual services
  • IDE plug-ins

    Getting Started
    You can download Glue from the TME Web site. Installation was quick and simple. I was pleasantly surprised to find that the installer automatically set up my environment. I could get down to running through the examples without additional twiddling. This may seem trivial, but you would be surprised how many platforms require additional setup and configuration (e.g., proper CLASSPATH setting) after the installer has run.

    Glue comes with a full complement of API documentation in Javadoc format and a Users Guide. The installer also sets up links to the online TME interest group and issue tracker.

    The Simplest of Services
    Getting a service up and running in Glue is incredibly easy. Any Java object can become a service by simply publishing an instance of the object to the Glue registry. There is no preprocessing or configuration required.

    Listing 1 (the code is online at www.syscon.com/webservices/sourcec.com) shows a basic object called Converter that converts temperature in Fahrenheit to Celsius. It requires only two lines of code to expose this object as a Web service. Line 25 starts a Web server that accepts messages via the /glue path. Line 26 exports the object as a Web service. Other than the import statements at lines 4 and 5, that's all that's required.

    By default, Glue exports all public, static, and instance methods of the object. If I want to expose only a subset of the methods I can create a Java interface that defines the set of methods I choose to expose. The interface.class is published along with the object and Glue exports the methods of the interface. If I don't have control of the source code of the object, I can control method exposure by supplying a Context object that contains a list of method properties.

    A Simple Client
    Writing a Web service client using Glue is also easy. Listing 2 shows a test client for the Converter service. Line 11 binds to the service and returns an object that implements the published interface. The service can now be treated as a standard Java object.

    There are a few things in this example that need further explanation. The first parameter of the bind method is the URL of the WSDL for the Web service. To obtain the WSDL for the Web service I just need to append .wsdl to the service URL. Glue will generate the WSDL automatically from the interface and cache it for future use. The second argument of the bind is the class of the interface for the service. I didn't define an interface for my Web service, but Glue can generate one from the service definition with its wsdl2java tool.

    This example may seem overly simplistic but TME provides a large assortment of examples that exercise a wide range of Glue's features including support for .NET.

    Advanced Features
    You may worry that a tool that provides such a simple interface would not offer the power and flexibility that a typical large enterprise would need. Glue has more advanced features than most would need.

    If you want to monitor or modify the message stream, Glue provides a feature called Interceptors. Interceptors are leveraged throughout Glue to provide advanced processing of SOAP headers and attachments.

    Glue supports SOAP over the Java Message Service (JMS). Both synchronous and asynchronous messaging styles are supported and services can be published simultaneously over JMS and HTTP.

    For those who insist on only using Java standard APIs, Glue provides implementations of JAX-RPC and JAXM.

    Hard-core techies can completely bypass the use of Java interfaces and Java/XML serialization. Glue provides the ability to directly create, invoke, and process raw SOAP messages.

    Finally, for high-volume systems Glue can reduce the size of SOAP messages by utilizing optimizations like tag substitution, envelope omission, and HREF inlining.

    Interoperability
    Although Glue runs easily out of the box as a stand-alone lightweight application server, it can plug into any application server that supports servlets. In this hosted mode, Glue can expose any stateless session bean as a Web service. The Users Guide provides instructions for installing glue under BEA WebLogic, WebSphere, and SunONE application servers.

    If you're an IDE jockey you'll be happy to find plug-ins for JBuilder, Eclipse, and IDEA.

    Conclusion
    I was definitely happy with the speed at which I could install Glue and get a scratch Web service up and running. But I was really impressed when I began to dig in and found a depth of features I had not expected from a platform that strived for simplicity. I've always liked the adage, "Good tools make simple tasks easy and complex tasks possible." I think that adage sticks with Glue.

    Company Info
    The Mind Electric

    15455 Dallas Parkway
    Millenium Building, 6th Floor
    Addison, TX 75001
    Phone: (972) 764-5115
    Fax: (972) 764-3215
    Web: http://www.themindelectric.com
    E-mail: [email protected]

    Licensing Information
    Developer License: $1000 per developer
    Runtime License: $2000 per CPU

    Testing Environment
    OS: Windows XP Professional (Service Pack 1)
    Hardware: Intel Pentium III – 996 MHz – 512 MB RAM

  • More Stories By Paul Maurer

    Paul Maurer is a principal in the financial services practice of a leading consulting services company.

    Comments (0)

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


    Microservices Articles
    Skeuomorphism usually means retaining existing design cues in something new that doesn’t actually need them. However, the concept of skeuomorphism can be thought of as relating more broadly to applying existing patterns to new technologies that, in fact, cry out for new approaches. In his session at DevOps Summit, Gordon Haff, Senior Cloud Strategy Marketing and Evangelism Manager at Red Hat, discussed why containers should be paired with new architectural practices such as microservices rathe...
    Is advanced scheduling in Kubernetes achievable?Yes, however, how do you properly accommodate every real-life scenario that a Kubernetes user might encounter? How do you leverage advanced scheduling techniques to shape and describe each scenario in easy-to-use rules and configurations? In his session at @DevOpsSummit at 21st Cloud Expo, Oleg Chunikhin, CTO at Kublr, answered these questions and demonstrated techniques for implementing advanced scheduling. For example, using spot instances and co...
    In his session at 20th Cloud Expo, Mike Johnston, an infrastructure engineer at Supergiant.io, will discuss how to use Kubernetes to setup a SaaS infrastructure for your business. Mike Johnston is an infrastructure engineer at Supergiant.io with over 12 years of experience designing, deploying, and maintaining server and workstation infrastructure at all scales. He has experience with brick and mortar data centers as well as cloud providers like Digital Ocean, Amazon Web Services, and Rackspace....
    SYS-CON Events announced today the Kubernetes and Google Container Engine Workshop, being held November 3, 2016, in conjunction with @DevOpsSummit at 19th Cloud Expo at the Santa Clara Convention Center in Santa Clara, CA. This workshop led by Sebastian Scheele introduces participants to Kubernetes and Google Container Engine (GKE). Through a combination of instructor-led presentations, demonstrations, and hands-on labs, students learn the key concepts and practices for deploying and maintainin...
    Docker is sweeping across startups and enterprises alike, changing the way we build and ship applications. It's the most prominent and widely known software container platform, and it's particularly useful for eliminating common challenges when collaborating on code (like the "it works on my machine" phenomenon that most devs know all too well). With Docker, you can run and manage apps side-by-side - in isolated containers - resulting in better compute density. It's something that many developer...
    Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is foundational - something customers routinely cite as a top pain point. In his session at @DevOpsSummit at 21st Cloud Expo, Bill Borsari, Head of Systems Engineering at Datera, explored how organizations can reap the bene...
    As software becomes more and more complex, we, as software developers, have been splitting up our code into smaller and smaller components. This is also true for the environment in which we run our code: going from bare metal, to VMs to the modern-day Cloud Native world of containers, schedulers and micro services. While we have figured out how to run containerized applications in the cloud using schedulers, we've yet to come up with a good solution to bridge the gap between getting your contain...
    In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
    DevOps is speeding towards the IT world like a freight train and the hype around it is deafening. There is no reason to be afraid of this change as it is the natural reaction to the agile movement that revolutionized development just a few years ago. By definition, DevOps is the natural alignment of IT performance to business profitability. The relevance of this has yet to be quantified but it has been suggested that the route to the CEO’s chair will come from the IT leaders that successfully ma...
    Skeuomorphism usually means retaining existing design cues in something new that doesn’t actually need them. However, the concept of skeuomorphism can be thought of as relating more broadly to applying existing patterns to new technologies that, in fact, cry out for new approaches. In his session at DevOps Summit, Gordon Haff, Senior Cloud Strategy Marketing and Evangelism Manager at Red Hat, will discuss why containers should be paired with new architectural practices such as microservices ra...