Presentation Slides: Micro services – Java, the Unix Way

Here are some interesting slides from a talk on Micro services:

http://2012.33degree.org/talk/show/67

From the summary:

“Write programs that do one thing and do it well. Write programs to work
together” was accepted 40 years ago yet we have spent the last decade building
monolithic applications, communicating via bloated middleware and with our
fingers crossed that Moore’s Law keeps helping us out. There is a better way.

Micro services. In this talk we will discover a consistent and reinforcing set
of tools and practices rooted in the the Unix Philosophy of small and simple.
Tiny applications, communicating via the web’s uniform interface with single
responsibilities and installed as well behaved operating system services. So,
are you sick of wading through tens of thousands of lines of code to make a
simple one line change? Of all that XML? Come along and check out what the
cools kids are up to (and the cooler grey beards).

This is a talk about building micro-services using simple java tools

Jetty: Open Source Servlet Container & HTTP Server

Jetty logo

I’ve recently become interested in Microservices and Jetty is a good choice of servlet container for running and serving microservices.

From the Jetty homepage:

Jetty provides a Web server and javax.servlet container, plus support for SPDY, WebSocket, OSGi, JMX, JNDI, JAAS and
many other integrations. These components are open source and available for commercial use and distribution.

Features

  • Full-featured and standards-based
  • Open source and commercially usable
  • Flexible and extensible
  • Small footprint
  • Embeddable
  • Asynchronous
  • Enterprise scalable
  • Dual licensed under Apache and Eclipse

Sonatype Nexus: Repository management tool that proxies remote repos and allows sharing of artifacts between teams

Sonatype logo

The Sonatype Nexus webpage says:

Sonatype Nexus sets the standard for repository management providing
development teams with the ability to proxy remote repositories and share
software artifacts. Download Nexus and gain control over open source
consumption and internal collaboration.

At work, we’re using Ant to manage our builds. We store artifacts from other teams in a common module. It would be nice to manage those external dependencies in a tool like Nexus.

Monogame: Open source implementation of Microsoft’s XNA 4.x Framework

Monogame hero

I came across this on the FLOSS Weekly Podcast episode 286

From the Monogame website:

  • Managed Code – By leveraging C# and other .NET languages on Microsoft and
    Mono platforms you can write modern, fast, and reliable game code.

  • Cross-platform – We currently support iOS, Android, Mac OS X, Linux,
    Windows, Windows 8 Store, and Windows Phone 8 with even more platforms on the way.

  • Open-source – All the code is available to you ensuring you’ll have the
    ability to make changes when you need to or even port to whole new platforms.

  • Community – With 100s of games shipped we have built up a vibrant
    community of developers which use MonoGame for both fun and profit.

Monogame logo

http://www.monogame.net/

XMLBeam: Java library to project parts of a XML DOM tree into Java objects via XPath instead of using data binding

xmlbeam image

I haven’t tried this, but it looks interesting. It seems to be designed to
help break the dependency between the XML structure and the structure of your
code. With most data binding libraries, you either make your api mirror the
structure of the XML, or you transform the data to match your API. This lets
you map data from the XML directly onto Java objects using XPath and
annotations.

Take a look at the XMLBeam introduction page.

Sample from the website:

Access XML data directly via XPath-annotated Java interfaces:

<xml>
   <example>
      <content type="foo" >bar</content>
   </example>
</xml>

public interface Example {

    @XBRead("/xml/example/content")
    String getContent();

    @XBRead("/xml/example/content/@type")
    String getType();

}