<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
<title>Brian O&apos;Neill&apos;s Blog</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/boneill42/" />
<modified>2008-04-08T15:32:22Z</modified>
<tagline></tagline>
<id>tag:weblogs.java.net,2008:/blog/boneill42/104</id>
<generator url="http://www.movabletype.org/" version="3.01D">Movable Type</generator>
<copyright>Copyright (c) 2008, boneill42</copyright>
<entry>
<title>What Ruby could learn from Java (and a bit of the vice-versa), is it time for a Ruby Community Process?</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/boneill42/archive/2008/04/what_ruby_could.html" />
<modified>2008-04-08T15:32:22Z</modified>
<issued>2008-04-08T03:34:15Z</issued>
<id>tag:weblogs.java.net,2008:/blog/boneill42/104.9492</id>
<created>2008-04-08T03:34:15Z</created>
<summary type="text/plain">Ruby works on a much different development cycle, that relies on the code itself for documentation, and the blogosphere for consensus.  This works well for rapidly developed low-risk projects, but is it right for the enterprise?</summary>
<author>
<name>boneill42</name>

<email>brian.oneill@basevoice.com</email>
</author>
<dc:subject>Community</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/boneill42/">
<![CDATA[<p>
The other day one of my team members was complaining about the lack of
documentation in Ruby on Rails.  I had to think for a minute because I
never had problems finding information I needed.  It finally occurred
to me that the ruby development and documentation cycle is very
different than Java's.
</p>

<p>
First of all, ruby code *is* documentation.  The constructs,
conventions and style used in ruby (e.g. the unless construct, and
underscores in verbose method names) make the code more descriptive.
The code is readable.  Evidence of that is found in rdoc, which
is ruby's JavaDoc equivalent.  The actual code is embedded directly into the rdoc pages, as if it were part of the description.... because it is!
</p>

<p>
Ruby also attracts a different crowd (at least for now).  Ruby
developers enjoy riding at the forefront of the technology wave.  This
makes them more likely to have blogs.  And they use those blogs to
document code recipes, successes, etc.  Those blogs get absorbed into
the ethos, indexed by the engines, and reiterated by the rest of the
blogosphere like a big echo chamber.  Consequently, the blogosphere is
the biggest ruby manual and how-to in existence.
</p>

<p>
Now, that suits some, but not everyone.  Despite the readability of
the code, and the mass of the "documentation" on the web, I completely understood what my friend was getting at.  There are very few ruby &quot;specifications&quot; that you can download, read, and process in their entirety.
</p>

<p>
One could argue that the success of Java is in (a large?) part due to
the success of the Java Community Process (JCP).  You may dispute the
quality of the APIs themselves, but the JSRs fill a real need.  The
specifications coming out of the JCP give individuals and enterprises
a firm fixed interface on which to hang their hats.
</p>

<p>
To my knowledge, Ruby has no such organization. Without it, when
developing a ruby application, you are left praying you stumbled upon
the right blog post, at the right time, with the right solution.
</p>

<p>
The importance of community accepted interfaces becomes even more
important when considering pluggability, and solution portability.
Recently, I ran into the need for HTTP Digest authentication in Rails
App.  I found lots of proposed solutions, and a ton of authentication
plugins, gems and modules, but none of them were swappable, and not
one of them offered me a "standard" means of achieving digest
authentication.  In Java, I could have gone to the JCP, found a
suitable interface, examined the vendors that passed the TCK tests,
and gone about my business knowing (at least in part) that the
interface I was about to use had some consensus and support behind it.
</p>

<p>
Alas, I love Ruby.  I love Rails.  They are a joy to program in.  And
for that reason, I'm entirely okay with the "faith factor" required in
pulling down random solutions from blogs.  Hell, if the solution
doesn't work, it will be fun to fix it.  And that is fine for the <a
href="http://www.liquidmirth.com">beer review site</a> I put together, but that is (arguably =) not a mission critical application.  I'm not sure businesses can assume the same risk.
</p>

<p>
I'm not foolish enough to believe the JCP is flawless (e.g. Entity
Beans anyone?), but businesses can't always afford to bet the farm (or
their investor's farms) on solutions not backed by real consensus
organizations.  I understand slow consensus processes run counter to
everything Ruby on Rails stands for, but perhaps the Ruby Community
Process can offer a more agile environment basing specifications on code and capability, not politics and vendor positioning. (which IMHO is the thorn in the side of the JCP)
</p>

<p>
just some more food for thought,<br/>
bone
</p>
]]>

</content>
</entry>
<entry>
<title>Is J2EE Dead?</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/boneill42/archive/2008/03/is_j2ee_dead_1.html" />
<modified>2008-03-03T18:26:57Z</modified>
<issued>2008-03-03T16:30:10Z</issued>
<id>tag:weblogs.java.net,2008:/blog/boneill42/104.9299</id>
<created>2008-03-03T16:30:10Z</created>
<summary type="text/plain">Traditional web application development may be better suited to languages that afford more agile development (e.g. Ruby on Rails) and enterprise application integration needs a SOA &amp; ESB approach (backed by a messaging-system).  This approach isn&apos;t/wasn&apos;t the central focus of J2EE, which may just leave it out in the cold, whilst the younger up and coming specs take the reins.</summary>
<author>
<name>boneill42</name>

<email>brian.oneill@basevoice.com</email>
</author>
<dc:subject>Community: Java Enterprise</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/boneill42/">
<![CDATA[<p>
I recently presented at the <a href="http://www.phillyjug.org/"> Philly JUG</a>.  In <a href="http://phillyjug.jsync.com/meetings/2010-an-acronym-odyssey-by-brian-oneill"> my presentation </a>, I asked the question, "Is J2EE dead?", half-kidding, but mostly serious.
</p>

<p>
I've spent the last six months developing in Ruby (some on Rails). It quickly went from just a past time, where I was developing a silly little beer review site called <a href="http://www.liquidmirth.com">liquidMirth</a> to serious business applications (at the day job: <a href="http://www.rvooz.org"> rVooz</a>).  And now I have to admit, the compile, build, deploy cycle of a standard J2EE application seems unbelievably daunting. Combine that with the cumbersome and seemingly never ending twiddling of meta-data and deployment descriptor files required by the libraries and frameworks (e.g. Spring & Hibernate) that are supposedly helping the problem and you have an incredibly unproductive environment for web application development.  
</p>

<p>
I'd emphasize that this is unproductive for <b>web applications</b>, because web applications need to be especially responsive to user requirements.  J2EE simply isn't agile enough.  There is a <a href="http://gforgeek.blogspot.com/2006/03/better-web-application-development.html">
fantastic video</a> by someone out at NASA JPL that does a fantastic job comparing the latest web application development frameworks.  He does a great job emphasizing this point.
</p>

<p>
Now, all that said, J2EE != Java and Java's present sweet spot is in SOA, and business process integration, where things need to be transactional, and message-oriented/event-driven.  Web frameworks are having trouble in that area, where things don't fit into a nice request/response interaction.  On the "back-end" you need a bit more rigor, and typically you need to integrate with systems that won't conform to convention.
</p>

<p>
So, IMHO -- let more flexible languages accommodate the fickle nature of users.  Use Java, with specifications like JBI and SCA,  to implement an ESB on the back-end to do the heavy business process lifting, systems integration, and B2B style interactions.  
</p>

<p>
And if you do that, you'll quickly realize that you don't need much (if any) of the J2EE spec to get-r-done. Instead, OpenESB in J2SE, ServiceMix, or Mule fill the bill quite nicely.
</p>

<p>
just two cents, and here is another nickel's worth of <a href="http://jlorenzen.blogspot.com/2007/10/no-more-j2ee-webapps.html">similar sentiment</a>.
</p>



]]>

</content>
</entry>
<entry>
<title>Philly Emerging Technologies Event</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/boneill42/archive/2007/12/philly_emerging.html" />
<modified>2007-12-06T15:06:47Z</modified>
<issued>2007-12-06T15:04:35Z</issued>
<id>tag:weblogs.java.net,2007:/blog/boneill42/104.8769</id>
<created>2007-12-06T15:04:35Z</created>
<summary type="text/plain">Philly Emerging Technologies Event: Call for Papers!</summary>
<author>
<name>boneill42</name>

<email>brian.oneill@basevoice.com</email>
</author>
<dc:subject>Community</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/boneill42/">
<![CDATA[<p>I'm Philly born and bred.   And aside from cheesesteaks and soft pretzels, the <a href="http://www.phillyemergingtech.com/">Emerging Technologies Event (ETE)</a> is one of the best things associated with the city of brotherly love.  <a href="http://www.chariotsolutions.com"> Chariot Solutions</a> organizes this event annually and this year looks to be better than ever.</p>

<p>ETE looks to have a block buster lineup covering the latest lightweight/agile development frameworks, web 2.0 concepts, java and ruby/rails. ETE has both business and technical tracks.  So, there is something for everyone.  If you would like to be part of this event, the <a href="http://www.phillyemergingtech.com/call.php"> call for papers</a> just went out.
</p>

<p> Come hang out and while your here grab a cheesesteak and soft pretzel. ;) </p>]]>

</content>
</entry>
<entry>
<title>Communications Binding Components get upgrades</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/boneill42/archive/2007/09/communications_1.html" />
<modified>2007-09-13T15:03:10Z</modified>
<issued>2007-09-12T21:11:34Z</issued>
<id>tag:weblogs.java.net,2007:/blog/boneill42/104.8231</id>
<created>2007-09-12T21:11:34Z</created>
<summary type="text/plain">The xmpp-bc and sip-bc projects just released new versions (0.9.1) of their binding components, now with new and improved collaboration capabilities.</summary>
<author>
<name>boneill42</name>

<email>brian.oneill@basevoice.com</email>
</author>
<dc:subject>Community: Java Communications</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/boneill42/">
<![CDATA[<p>Before JavaOne, two projects kicked-off, <a href="https://xmpp-bc.dev.java.net"> XMPP BC</a> and <a href="https://sip-bc.dev.java.net"> SIP BC </a>. The projects released JBI binding components for both XMPP and SIP providing instant messaging and presence capabilities for those protocols.  Recently, both were upgraded.  </p>

<p>The XMPP binding component now supports groups.  An application developer can quickly orchestrate participation in a Jabber group chat.  The BC provides all of the functions necessary to fully participate including: </p>
<ul>
<li>sending messages to the group chat</li>
<li>joining the group chat</li>
<li>leaving the group chat</li>
<li>inviting others to the group chat</li>
<li>kicking people out of the group chat</li>
</ul>

<p>Also, the XMPP BC now supports complex message types, which means the interface can now handle structured payloads, and a developer can map those entities in a BPEL process.</p>

<p>Additionally, the SIP BC is now easier to use and more capable.  It adds session capabilities (e.g. VoIP) to any application and now allows application developers to setup multiple sessions simultaneously.</p>

<p>Please kick the tires!  Chad Gallemore has an easy to follow <a href="http://gallemore.blogspot.com/2007/08/bridging-gap-xmpp-to-sip-group-chat.html">tutorial </a> that can get you up and running in no time.</p> ]]>

</content>
</entry>
<entry>
<title>ESBs: the value of indoor plumbing, public water and sewer</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/boneill42/archive/2007/09/esbs_the_value.html" />
<modified>2007-09-04T22:06:47Z</modified>
<issued>2007-09-04T22:06:40Z</issued>
<id>tag:weblogs.java.net,2007:/blog/boneill42/104.8172</id>
<created>2007-09-04T22:06:40Z</created>
<summary type="text/plain">Some people question the value of an Enterprise Service Bus (ESB) approach to architecture.  Those disbelievers might just need a larger restroom because the value of a plumbing system is (exponentially?) proportional to the scope of its deployment.</summary>
<author>
<name>boneill42</name>

<email>brian.oneill@basevoice.com</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/boneill42/">
<![CDATA[<p>I just saw <a href="http://blogs.zdnet.com/service-oriented/?p=945"> Joe McKendrick's entry</a> on the value of an ESB.  Although I appreciate his comments, and even agree with some of his points, I don't come to the same conclusions.</p>

<p>There are two things that drive common understanding: shared experiences, and common problems.  The wide acceptance of ESBs is driven by common experiences trying to implement SOA on a large scale with disparate organizations involved.</p>

<p>
Without an ESB, the product of such situations is often a fragile, tightly coupled, tangled web of services that is nearly impossible to change, or even reason about -- this causes a lot of pain that motivates people to consider alternative approaches. (This is often the architectural equivalent of burning your hand on the stove -- something you don't do twice =)
</p>

<p>Now, this is not to say that ESBs for the sake of ESBs is a good idea.  Often, organizational boundaries can be used as a good litmus test when deciding whether or not to use an ESB, but consider "organizational boundaries" in the more broad sense of the term.  This is more than just the end-consumers/producers involved (e.g. trading partners). It takes into account the vendors supplying and integrating the functional components (infrastructure) of the system.  For example, if you're authentication & authorization components are coming from a different vendor than your service stack; you have an organizational boundary you probably want to consider.</p>

<p>Thus, if your scope is small enough, and you are getting all of your infrastructure from the same vendor (and plan to continue to do so), ESBs may not be worth it.</p>

<p>Joe was actually just reacting to an <a href="http://www.ibm.com/developerworks/webservices/library/ws-soa-esbarch/index.html?ca=drs-"> article by Bobby Woolf</a>, which has some good insights in it...
"The problem is this: An ESB by itself produces no business value. An ESB is a means to an end, not the end itself. An ESB is like the electrical wiring or plumbing of an SOA. Plumbing does not produce value; sinks with water coming out of their faucets do."</p>

<p>I completely agree with Bobby's statement and just (IMHO) believe Joe made an incorrect inference.</p>

<p> Faucets and toilets deliver the value, but the pipes are not to be overlooked.  Lets all face it, if it wasn't for plumbing we'd all still be sh*tting in outhouses.  There *is* value in being able to connect a Moen faucet to any well pump, and being able to inject a UV-filter and water softener into the line without disturbing either the faucet or the pump; plumbing enables that.  If we take another step back, there is value in being able to then hook into a public sewer system eliminating the need for everyone to install their own septic system. </p>

<p> 
A real world example of this can be found in <a href="http://gallemore.blogspot.com/2007/08/bridging-gap-xmpp-to-sip-group-chat.html">Chad's SIP to XMPP tutorial</a>.  He was able to build that capability without coding because he used a JBI-based ESB approach.  In this example, the two networks (SIP & XMPP) had "plumbing interfaces", and BPEL could be used as the manifold to connect them.  Consider that Chad could have quickly and easily also added security "in-line" as well that ask the question "Is Alice authorized to talk to Bob?".  These kinds of things are difficult to do without a standards-based, orchestratable messaging and transformation infrastructure (i.e. an ESB).
</p>

<p> So, although plumbing might not be worth it for everyone, I for one don't like having to walk outside to relieve myself -- especially in the dead of winter. =) </p>
]]>

</content>
</entry>
<entry>
<title>An Open Technology Manifesto</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/boneill42/archive/2007/08/an_open_technol.html" />
<modified>2007-08-20T20:16:11Z</modified>
<issued>2007-08-20T20:16:04Z</issued>
<id>tag:weblogs.java.net,2007:/blog/boneill42/104.8060</id>
<created>2007-08-20T20:16:04Z</created>
<summary type="text/plain">A while back some smart people put together the Agile Manifesto.  Since, its been commercialized, productized and sometimes abused, but if internalized it makes everyone&apos;s life a little better.  It might be time for a new manifesto, for Open Technology Development.</summary>
<author>
<name>boneill42</name>

<email>brian.oneill@basevoice.com</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/boneill42/">
<![CDATA[<p>Many people have read <a href="http://steve-yegge.blogspot.com/2006/09/good-agile-bad-agile_27.html"> Stevey's post</a>. where he contrasts agile with Agile.  Stevey does a great job of separating out the important "agile" <a href="http://agilemanifesto.org/"> value system </a> from the methodologies and processes of "Agile" that were created to help the masses implement it. </p>

<p>Because in fact, it is in the implementation of agile that the values sometimes get lost.  Ive' seen Agile often bundled with Extreme Programming tactics (Test-Driven Development, Paired Programming, etc.). which muddied the waters and resulted in teams claiming "agility" simply because they have junit tests.  When people focus on processes, tools and methodologies too much, they can't see the <a href="http://esl.about.com/library/glossary/bldef_130.htm">forest for the trees</a>.</p>

<p>Likewise, I believe we need a similar separation between values and implementation in "open development". In the details of the implementation, there are decisions about licensing (GPL or Apache?), and community (Java.Net or Sourceforge?).  These can be argued just like people argue over the details of Scrum vs. Lean Devlopment vs. RUP.  But in the end, "open development" manifests itself more so within the attitudes of the team members, than in the implementation decisions -- just like "agile".</p>

<p> Thus, humbly, I'd like to propose just such a manifesto:</p>

<p>We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:</p>
<ul> 
 <li>Open discussion over closed "white-paper" analysis. </li>
 <li>Collaborative contributions to existing efforts over proprietary (re)invention. </li>
 <li>Open sharing of experiences over knowledge hording.</li>
</ul>

<p>These combine with an overarching desire to commoditize the lower-level functions of the software stack, allowing all software development (and service-delivery) to focus on ever harder more valuable problems.</p>

<p>Enlightened developers often embrace the above values without knowing it, just like many of the same are inherently agile (in the "move fast and react fast sense of the term"). Others operate with a very closed mentality,  despite the fact that sometimes they've "open sourced" their code.</p>

<p>For example, we often see "white-paper" analysis performed by the evil genius architects that lock themselves in a room with their crystal ball, carefully considering all options, finally emerging with an architecture that accounts for all the requirements, *and* all of the unforeseen changes to come (notice the paradox).  Meanwhile, the enlightened developer has spent the same time discussing the options on a mailing list, effectively forcing some of the "unforeseen" changes forward in time by soliciting input from others and adopting suggestions (even if they don't directly address existing requirements).</p>

<p>Likewise, once an enlightened developer accomplishes a feat, he/she will blog about it to advance the productivity of the community at large, whilst the less enlightened will add this to their little secret bag of tricks enhancing their "job security". (the same developer goes on to prove black is white and gets himself killed in a crosswalk)</p>

<p>I was in diapers when the pioneers were doing the real work on open source. So I feel presumptuous even suggesting such a manifesto and I certainly don't intend to even hint that these are novel thoughts.  I'm sure the likes of Eric Raymond and others have been espousing such values for years.  My only point (if any) is that the Agile Manifesto did a great job of distilling agile into four statements that could be internalized by all.  Open Development might be served well to do the same, separating it away from the "noisy" licensing debates discussing freedoms, and capitalism. </p>

<p> FWIW. </p>
 ]]>

</content>
</entry>
<entry>
<title>JBI: Catch the second wave...</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/boneill42/archive/2007/08/jbi_catch_the_s.html" />
<modified>2007-08-20T16:46:06Z</modified>
<issued>2007-08-20T16:45:58Z</issued>
<id>tag:weblogs.java.net,2007:/blog/boneill42/104.8032</id>
<created>2007-08-20T16:45:58Z</created>
<summary type="text/plain">JBI is gaining strong adoption, but the the real wave is yet to hit as the community forms, and the tooling delivers increased productivity and conveniences.
</summary>
<author>
<name>boneill42</name>

<email>brian.oneill@basevoice.com</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/boneill42/">
<![CDATA[<p>If people remember back to the early days of Java EE (J2EE), there was a lot of promise, but a lot of frustration.  I still have mental scars (and a slight eye twinge) from the countless hours tracking down typos in deployment descriptors.  But, we were willing to endure the pain because there was a lot of power in the platform. </p>

<p>And as a model, J2EE was solid.  Sure, there were squabbles over the value of different parts of the model (e.g. Entity Beans), but the general abstractions and approach were incredibly valuable, as evidenced by its success.  JBI is similarly positioned.</p>

<p>However, mainstream adoption requires not just a solid design model .  Mainstream demands ease of use, immediate gratification, and passionate community support.  This is the fundamental appeal of Ruby/Rails and why J2EE struggled in the beginning.  In the beginning of J2EE, it was a week long effort to get an EJB deployed.  Meanwhile,  Rails has caught on like wild fire because it takes less than 10 minutes to get an entire n-tier application up and running. </p>

<p>In an effort to learn from this, independent of the actual implementation communities (Apache - ServiceMix, Java.Net - OpenESB, etc.), we've created a JBI community site <a href="http://www.jbizint.org">jBIZint</a>, where the various implementation communities can come together to discuss common needs that will improve a user's over all experience.  If this sounds like something you would like to be involved in, please join the  <a href="http://www.jbizint.org/mailinglists.php">mailing lists</a>.</p>

<p>As an example, there are two movements afoot that will improve JBI adoption and ease of use.  The first is a movement to standardize the diagramming technique for service assemblies, and the communication between them.  Much like SCA has done, a standard diagramming technique will allow system designers to communicate effectively, the components, meta-data and communication paths of the services in the system. (Again, please join the discussion on the <a href="http://www.jbizint.org/mailinglists.php">mailing lists</a> to get more info)</p> 

<p>The second movement is to get an "easy-install" package management system in place akin to Debian's apt-get and maven's repositories. (credit <a href="http://www.bruceblog.org">Bruce Snyder</a> for the idea).  This would make it simple to install components through tooling (e.g. Eclipse, NetBeans, or command-line).  The package management system would pull down the component and all of its dependencies (e.g. shared libraries), perhaps even a sample service unit. </p>

<p> Combining standardized diagramming with an easy-to-use package management system should make it even easier to pick up one of the numerous "10-minute" tutorials on JBI, like <a href="http://gallemore.blogspot.com/2007/06/xmpp-to-rss-demonstration.html">Chad's XMPP-RSS Demo</a>, and get it up and running in 2 minutes with an understanding of how and what you did. =)</p>
]]>

</content>
</entry>
<entry>
<title>How JBI can improve your love life. (JBI for Social Networking)</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/boneill42/archive/2007/07/how_jbi_can_imp.html" />
<modified>2007-07-12T19:48:38Z</modified>
<issued>2007-07-12T18:53:14Z</issued>
<id>tag:weblogs.java.net,2007:/blog/boneill42/104.7840</id>
<created>2007-07-12T18:53:14Z</created>
<summary type="text/plain">The JBI specification is about rapid capabilities delivery and service composition.  If employed in just the right manner, this can significantly improve your ability to network socially, which in turn can help out your love life.  Check out this blog to see how you can use JBI to construct a social networking platform.</summary>
<author>
<name>boneill42</name>

<email>brian.oneill@basevoice.com</email>
</author>
<dc:subject>Community: Java Enterprise</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/boneill42/">
<![CDATA[<p>Our team just released four JBI Components, a <a href="http://sip-bc.dev.java.net"> SIP BC</a>, an <a href="http://xmpp-bc.dev.java.net"> XMPP BC</a>, an <a href="http://rss-bc.dev.java.net"> RSS BC</a>, and a <a href="http://uddi-bc.dev.java.net"> UDDI BC </a>.  Having developed those components, we're now reaping the rewards; we're able to combine these low-level collaboration "services" to produce new and cool collaboration capabilities.  Essentially, the four components together create a collaboration platform. One use for just such a platform might be a social networking application.  hmmmm...
</p>

<p>Lets pretend I'm looking for love (in reality, i'm <a href="http://www.mindrain.com">happily married</a>, but we can pretend).  I've joined an online singles dating site and I want to write a quick application that will let me find a date. Lets call this SaaS app the lovinator.</p>

<p>First, things first --- I don't want to have to continually go to the dating site to get the information.  So, I quickly write a <a href="http://wwwsearch.sourceforge.net/mechanize/">a python script to crawl the website</a> looking for profiles of interest.  Once the script finds a profile, it posts the profile to the lovinator.</p>

<p>Fortunately, the lovinator is built on a JBI platform.  An HTTP BC receives the request, which contains a raw XML document that has the profile.  That XML is routed to the RSS BC via a simple BPEL process. On my desktop, I'm subscribed to the lovinator feed, and am able to view new profiles.</p>

<p>I see a particular profile that is interesting.  Now, I want to be able to see when he/she comes online. And since I'm so hip (a.k.a geekish), I have an iPhone with a <a href="http://www.beejive.com/iphone/"> jabber client</a> installed. Lets assume the prospect's XMPP and SIP addresses are in their profile and I'm headed out of the office.  Leveraging the XMPP BC, the lovinator can subscribe to the prospect's presence information and send me an update when he/she comes online; directly to my iphone. Nice.</p>

<p> OK, so now I can peruse prospectives from my desk via RSS, and stalk them from my iphone using XMPP.  The only thing left to do is call them out of the blue. (believe me -- they love that)  Fortunately, the lovinator can do that for me; automagically.  Using the SIP BC to perform a bit of third-party call control (3PCC), the lovinator can setup a call between us. (saves me the time required to look at their number and dial the phone)</p>

<p> Now we're cooking, but where is the social networking aspect?  Well, as I said -- prospects are disseminated over RSS.  So, there is nothing to prevent others from subscribing to the same feeds.  Additionally, it would be trivial to incorporate a Java EE service engine that would allow me (via a webapp) to submit feedback about prospectives. </p>

<p> Lets say that voice conversation didn't go so well.  (e.g. I found out he/she has a dozen cats and lives with his/her mother at the age of 39... and I'm not feline fan)  I could feed that information back into the prospect's profile feed via the webapp. That would get disseminated to all those subscribed, saving other people time and energy -- or making that "special someone's" day. </p>

<p> One can imagine a ton of extensions to the lovinator.  For example once I do find that special someone, the lovinator could send me messages(via the XMPP BC) when their birthday rolls around. (anniversaries, etc) </p>

<p> A bit contrived? perhaps. But the point is that JBI creates a great, extensible, platform with new loosely coupled capabilities being added everyday that we can "wire in" easily.</p>

<p> So, the point is; we save time. </p>
 
<p>Estimated time to develop the lovinator? Only a few weeks. I just checked and the domain lovinator.com is available.  Any takers? =)</p>

<p>For some more realistic use cases you can check out <a href="http://www.jbizint.org/wiki/index.php?title=Use_Cases"> jBIZint</a> where we're trying to outline the "tougher" use cases, that the spec may or may not accommodate.</p>
]]>

</content>
</entry>
<entry>
<title>JBI: Application Development w/o Coding, are we there yet?</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/boneill42/archive/2007/07/jbi_application_1.html" />
<modified>2007-07-02T22:14:58Z</modified>
<issued>2007-07-02T22:14:49Z</issued>
<id>tag:weblogs.java.net,2007:/blog/boneill42/104.7778</id>
<created>2007-07-02T22:14:49Z</created>
<summary type="text/plain">Often people take a look at JBI and expect to be developing new service engines and binding components, but more often than not an application developer won&apos;t need to code anything at all! (or at least thats the vision)</summary>
<author>
<name>boneill42</name>

<email>brian.oneill@basevoice.com</email>
</author>
<dc:subject>Community</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/boneill42/">
<![CDATA[<p>Many people, including myself, approached JBI as a standards-based means of achieving ESB capabilities.  That was the big value proposition.  In the early stages of using it, we treated JBI like JMS on steroids.  It wasn't until later in the game, we realized the full potential of JBI.</p>

<p>And, it really boils down to knowing the <a href="http://www.jbizint.org/wiki/index.php?title=Getting_Started"> Fundamentals of JBI</a>.  For developers like myself that have a tad bit of an attention deficit disorder, it is easy to overlook the implications of those fundamentals.  Specifically, the JBI specification had plans within plans, and <b>containers within containers</b>.</p>

<p>The JBI run-time acts as the first level container, consuming service assemblies for deployment.  Those service assemblies contain service units which get deployed to service engines and binding components.  So, JBI components themselves act as a second-level containers for the artifacts within service units.</p>

<p>This is often misconstrued by people that believe Service Engines *implement* the business logic in an application.  This is not the case.  Instead, business logic gets *deployed* to Service Engines as part of a service unit (within an assembly).  Service Engines contain and execute the business logic, but they by themselves do not provide it.  This is tremendously important because it allows JBI to deliver, "Application Development without coding".</p>

<p>Lets look at an example, the BPEL Service Engine lets me wire together services mapping the results of one service to the inputs of another.  So, without any coding I can deploy a bpel process to the BPEL Service Engine.  Furthermore, I can connect that process to specific transports, like XMPP and SIP by simply deploying service units to the <a href="http://xmpp-bc.dev.java.net">XMPP BC</a> and <a href="http://sip-bc.dev.java.net">SIP BC</a> respectively.
</p>

<p> In this situation, the BPEL SE, XMPP BC and SIP BC are acting as containers for specific business logic and "instances" of capability that could have been defined graphically in an IDE like <a href="http://www.netbeans.org/">NetBeans</a>.
</p>

<p> Thus in our never ending quest to make our lives easier and leave the world of semi-colons, I believe JBI has brought us one step closer.</a>]]>

</content>
</entry>
<entry>
<title>SCA &amp; JBI: Made for each other. (SOA Gone Wild)</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/boneill42/archive/2007/06/sca_jbi_made_fo.html" />
<modified>2007-06-27T19:59:37Z</modified>
<issued>2007-06-27T19:59:20Z</issued>
<id>tag:weblogs.java.net,2007:/blog/boneill42/104.7751</id>
<created>2007-06-27T19:59:20Z</created>
<summary type="text/plain">After some exploration, it appears as though JBI is ideally positioned to serve as a run-time for SCA contributions.  Here are three ways that SCA and JBI complement each other.</summary>
<author>
<name>boneill42</name>

<email>brian.oneill@basevoice.com</email>
</author>
<dc:subject>Community: Java Enterprise</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/boneill42/">
<![CDATA[<p>I agree with Shaun Connolly's
<a href="http://connollyshaun.blogspot.com/2007/03/sca-oasis-and-jcp.html"> observation </a> that "While they [JBI and SCI] may share some similar patterns, those who pit SCA vs. JBI only demonstrate their inability to distinguish between the two perspectives".  </p>

<p>In fact, we set out to prove the assertion that:<br/>
 - JBI and SCA are entirely complementary.</p>

<p>And we've made quite a bit of progress by taking an example <a href="http://www.jbizint.org/wiki/index.php?title=SCA"> SCA composite application / contribution </a> and figuring out how it <a href="http://www.jbizint.org/wiki/index.php?title=SCA_translation_layer">  translates</a> into a JBI runtime environment. But translation is only one example of how JBI & SCA may fit together.  </p>  

<p>There are actually three different relationships that make sense.  First, SCA run-times that already exist (e.g. Tuscany) could be deployed as containers within JBI by packaging them as Service Engines.  JBI would leverage the SCA Service Engine as a means of integrating SCA contributions into a JBI runtime. In this respect, JBI provides an integration backbone that would improve the utility of SCA contributions by making them available to networks, capabilities and systems for which there is no SCA component implementation. (e.g. SIP and XMPP)  Essentially, this would attach an SCA contribution to an bus architecture, with all of the benefits that comes with that. </p>

<p>Secondly, I don't see any reason why there wouldn't be a JBI Component Implementation added to SCA's <a href="http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications"> list</a> of implementations.  This would allow an SCA contribution to declare a JBI service unit (or service assembly) as a component implementation within an SCA contribution. </p>

<p> Lastly and most interesting, JBI can be the run-time for SCA contributions.  In this capacity, a translation layer would translate an SCA contribution into a set of service units deployed to binding components and service engines.  In this <a href="http://www.jbizint.org/wiki/index.php?title=SCA_translation_layer">  example</a>, each binding in the SCA composite application the would result in a service unit bound to a binding component. Likewise, for each service implementation in the SCA composite application, a service unit would be deployed to a service engine. (e.g. bpel, pojo, etc.)</p>

<p>The translation is a tremendously powerful construct. It lets JBI deliver all of the bus-like features, life-cycle management, and administrative controls, while allowing architects to define their composite applications in SCA.</p>

<p>We are working all of this through on <a href="http://www.jbizint.org"> jBIZint </a>.  If all goes well, we hope to deliver a Grand Unified Platform by the end of the year that when combined with Eclipse and/or NetBeans will directly interpret developers brainwaves into SOA. =)</p>




]]>

</content>
</entry>
<entry>
<title>JBI on your cell phone?</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/boneill42/archive/2007/06/jbi_not_just_fo.html" />
<modified>2007-06-23T12:13:51Z</modified>
<issued>2007-06-21T21:56:17Z</issued>
<id>tag:weblogs.java.net,2007:/blog/boneill42/104.7684</id>
<created>2007-06-21T21:56:17Z</created>
<summary type="text/plain">Java Business Integration (JBI) focuses on loose coupling and rapid/dynamic application composition.  This is as applicable to mobile devices as it is the enterprise space, and JBI is by no means tied down to app servers.  </summary>
<author>
<name>boneill42</name>

<email>brian.oneill@basevoice.com</email>
</author>
<dc:subject>Community: Java Communications</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/boneill42/">
<![CDATA[<p>Despite the fact that many early JBI implementations are reusing enterprise infrastructure for their implementations (e.g. JMS messaging backbones and J2EE containers), my prediction is that JBI will start invading the mobile market.  
</p><p>
Already, people are looking to leverage JBI implementations on small footprint platforms as a means of realizing the benefits of an "enterprise" service bus, but without the overhead of the "enterprise".  In this capacity, JBI is a great means of achieving service re-use , while maintaining loosely coupled composition.
</p><p>
For example, JBI may be the best means to inject security into a mobile application.  Since JBI focuses on data flow, , a developer can just "drop in" security components, rewire the messages to first pass through an authentication and authorization engines. Without changing the app at all, it would be capable of invoking services that require digital signatures. I go through this use case <a href="http://www.jbizint.org/wiki/index.php?title=Security_Interceptor"> here</a>.
</p><p>
It is a common misconception that OpenESB is wed to NetBeans and Glassfish. This isn't the case at all.  In fact, you can follow <a href="http://www.jbizint.org/wiki/index.php?title=Getting_Started-OpenESB"> these instructions</a> to get OpenESB up and running in a J2SE environment, with XMPP capabilities and RSS feeds!
</p><p>
Lots of fun. =)
</p>
]]>

</content>
</entry>
<entry>
<title>JBI as a Convergent Communication Platform</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/boneill42/archive/2007/06/jbi_as_a_conver.html" />
<modified>2007-06-18T21:56:19Z</modified>
<issued>2007-06-18T21:48:01Z</issued>
<id>tag:weblogs.java.net,2007:/blog/boneill42/104.7673</id>
<created>2007-06-18T21:48:01Z</created>
<summary type="text/plain">Java Business Integration (JBI) may prove the best environment in which to develop convergent communications applications that (once and for all) integrate the disparate networks (XMPP + SIP). </summary>
<author>
<name>boneill42</name>

<email>brian.oneill@basevoice.com</email>
</author>
<dc:subject>Community: Java Communications</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/boneill42/">
<![CDATA[<p>
I have a hard enough time keeping my mind straight as it is, maintaining multiple internet persona's only makes my life more difficult: a skype account, IRC, AOL, XMPP, Yahoo, email, PSTN, mobile, etc.  Some clients have been doing a better job of bridging the networks from a user perspective, but this does nothing for capabilities development on the server side -- and the disparity between the networks still causes user headache.
</p>

<p> 
For example, even using one of the multi-protocol chat clients, to coordinate a chat-room I need to get everyone to agree on a common protocol, everyone needs accounts, and everyone needs to be on the same "type of network". (ie. firewalls need to permit traffic to the agreed upon network)
</p>

<p> Why? </p>

<p> 
Because there isn't a server out there capable of maintaining presence, and location information across the multiple protocols.  Sure, there are lots of gateways being built (e.g. XMPP -> SIP and back), but this results in the need for <em>nxn</em> gateways.  Any architect will tell you that you need a common normalized schema to reduce the number of necessary conversions.  Then you only need to develop <em>n</em> gateways, each converting from the protocol specific format into the normalized message format.
</p>

<p> Hmmmm, interesting - this sounds awfully familiar.  Enter JBI.</p>

<p>
The devil is in the details, but if we ignore them for a moment, this is exactly the concept behind binding components (BCs) and the normalized message router (NMR).  Over the past six month, we've developed binding components for <a href="http://xmpp-bc.dev.java.net"> XMPP </a>, <a href="http://sip-bc.dev.java.net"> SIP </a>, <a href="http://uddi-bc.dev.java.net"> UDDI </a>, and <a href="http://rss-bc.dev.java.net"> RSS </a>.  The purpose of each of these is to convert between normalized messages and their protocol specific equivalents.
</p>

<p>
Since the BCs expose those disparate communications networks over a single "bus", this appears to be the perfect environment for convergent applications development.  Thus, you could implement a single presence service, a single locations repository, etc.  Finally, I'll be able to join a chat-room over SIP, while friends join over XMPP, with the entire conversation broadcast over RSS. 
</p>

<p>
Now, back to the devilish details.  In a previous life, I spent long hours working on SIP (registrar, presence and proxy) servers.  More specifically a commercial derivative of the NIST <a href="http://jain-sip-presence-proxy.dev.java.net"> JAIN-SIP-Presence-Proxy </a> server.  Recently we've formed a new project, <a href="http://marlin.dev.java.net"> Marlin </a> to attempt the very idea described in this blog, implementing the same capabilities as the JAIN-SIP-Presence-Proxy project, but independent of the protocol.
</p>

<p>
We're putting use cases together <a href="http://www.jbizint.org/wiki/index.php?title=Converged_Chat_Room"> here </a>, and <a href="http://www.jbizint.org/wiki/index.php?title=June_04%2C_2007"> meeting </a> to determine how all of this relates to <a href="http://sailfin.dev.java.net"> Sailfin </a>.
</p>

<p> Its an exciting time to be in communications infrastructure. =) </p>]]>

</content>
</entry>
<entry>
<title>SOA, ESB, JBI &amp; SCA: A caveman&apos;s perspective</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/boneill42/archive/2007/06/soa_esb_jbi_sca_1.html" />
<modified>2007-06-15T14:06:54Z</modified>
<issued>2007-06-15T04:34:26Z</issued>
<id>tag:weblogs.java.net,2007:/blog/boneill42/104.7643</id>
<created>2007-06-15T04:34:26Z</created>
<summary type="text/plain">One caveman&apos;s experiences trying to achieve &quot;SOA&quot;, by implementing an ESB architecture with the Service Component Architecture (SCA), and Java Business Integration (JBI) specifications: an attempt to understand it all.</summary>
<author>
<name>boneill42</name>

<email>brian.oneill@basevoice.com</email>
</author>
<dc:subject>Community: Java Enterprise</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/boneill42/">
<![CDATA[<p>Software development techniques and processes are changing at ever faster rates as open collaboration development spreads globally (thanks to the adoption and promotion of open source software).  As the systems we architect and implement become increasingly complex, the mechanisms, infrastructure and patterns with which we build the complex systems constantly improve to keep the problems tractable.</p>

<p>The Java Business Integration (JBI) specification and Service Component Architecture (SCA) are the latest additions to our tool set.  

Now, I'm a simple man, a caveman really.  And for the last three years, I've been working to construct a multi-channel service oriented architecture for the federal government, with pluggable enterprise services (pub/sub, security/encryption, messaging, VoIP, etc.)</p>

<p>As you can imagine, this is a hard problem for a caveman to solve, especially when you layer in a complicated political landscape filled with software infrastructure vendors, and their professional services divisions.  We needed an industry standard on which to hang our hat.</p>

<p>Now, most people would hang their hats on "Web Services". Those same people would probably define web services as WSDL + SOAP + HTTP + (UDDI).  They would then proceed to convert all RMI, RPC, and potentially database communication into web services: then call that a SOA.  Unfortunately, that only results in a rat's nest of invocations and derived dependencies that can bring down an entire enterprise. (we have the battle scars to prove it)</p>

<p>So, we evolved.</p>

<p>We realized that we needed a common communications backbone to unravel the mess.  Enter Enterprise Service Bus (ESB) concepts, but again we were disappointed.  We looked around for one of these new fangled ESBs, but all we found were re-applied messaging systems that required proprietary extensions to achieve a services layer.  (and we knew enough to stay away from those, and the vendor lock-in that came with them)</p>

<p>SO, we looked long and hard at the writing on the (cave) wall; and found a promising acronym: JBI.  We set about downloading JBI implementations.  Immediately, we were hooked.  JBI provided a standard interface through which we could deliver our enterprise service "lollipops".  Literally, we could drop our lollipops into existing JBI containers, rewire the connections and provide service consumers and producers with security, compression, discovery and other capabilities. Wow, nirvana.</p>

<p>In fact, as cavemen - we were more productive than ever.  We could develop applications without writing a single line of code.  Applications development became a matter of drawing pretty pictures.  Using a palette of components, and drawing lines between them, in minutes we could create new convergent capabilities - e.g. take messages from XMPP, and post them to RSS feeds.</p>

<p>But alas, nothing gold can stay.  The political landscape shifted, and SCA came down from the heavens like a meteor crashing into the earth.   We ran for cover, trying to figure out how SCA fit into our new world view.  What we had heard about SCA was promising, but we had trouble putting our fingers on it.  SCA seemed like a great language with which to communicate with other cave people, a common way to describe what we were building, and compose larger services from smaller, recursively.  This was much needed, and completely complimentary to our new found love - JBI.  As cavemen, we couldn't see where SCA dictated a run-time, but we didn't need it to.  We had JBI already.</p>

<p>Us cavemen proceeded forward with a new world understanding - determined to build a bridge demonstrating an SCA composite application, running in a JBI runtime.  </p>

<p>You can follow along at <a href="http://www.jbizint.org"> jBIZint </a>.</p>







]]>

</content>
</entry>
<entry>
<title>Source Equity: Making Open Technology Development Profitable</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/boneill42/archive/2006/12/source_equity_m.html" />
<modified>2006-12-13T10:50:22Z</modified>
<issued>2006-12-13T10:49:58Z</issued>
<id>tag:weblogs.java.net,2006:/blog/boneill42/104.6160</id>
<created>2006-12-13T10:49:58Z</created>
<summary type="text/plain">Thoughts on an Open Technology Development Model that rewards contributors with equity stakes in the project that could then be used as a basis for revenue sharing: making open development models profitable for contributors, and providing the motivation for developers to invade new markets</summary>
<author>
<name>boneill42</name>

<email>brian.oneill@basevoice.com</email>
</author>
<dc:subject>Open Source</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/boneill42/">
<![CDATA[Increasingly companies are incorporating open communities into their software development strategy.  This allows companies to capitalize on expertise and innovation beyond their enterprise boundaries.<br/><br/>

This works well for markets that can easily attract development communities with cutting edge technology or a sexy problem domain. People are willing to donate time just to get exposure or to learn something new, but how do we expand open technology development into other markets?<br/><br/>

Additionally, in a world where software development is becoming a commodity, how do we ensure that the contributors delivering the value are rewarded appropriately?  In an open development model where enterprises are leveraging external "free labor" forces, it is in the enterprise's best interests to maintain a stable community and to motivate that community in a direction that aligns with their corporate goals.<br/><br/>

Thus,<br/>
What if we began treating software development projects like traditional enterprise ventures?  Using standard agile methodologies, equity could be assigned to user stories based on relative customer value.  As contributors complete user stories, new shares are authorized and granted to those contributors.  Then, revenue could be shared with the development community.  Contributors would receive a share of the revenue based on their equity holdings.<br/><br/>

A model like this would allow non-traditional markets to avail themselves of the open-technology and open-source development communities.  Also, since equity distribution is based only on the delivery of customer value (vice vesting periods), the model provides a low-risk open development model for startups, Startups that couldn't otherwise fund staff, can leverage a much broader community that could share the risk (and consequently the reward) of the venture.<br/>

I've been working this concept for a few years now, trying to evolve the specifics.  You can check out the fruits of my labor here:
<a href="http://www.sourceequity.com"> Source Equity </a><br/><br/>  

Although they are more focused on the "idea farming" phase, a similar concept is being worked by http://www.cambrianhouse.com/.<br/><br/>

I believe this model has other interesting characteristics when you consider the "right to fork", corporate teaming arrangements and work-share, and even applications of the model within enterprises (bonuses based on contributions, etc.); But i'll leave those comments for later blogs. =)<br/><br/>

If you are interested in getting involved, please drop me a note:<br/>
<a href="mailto:bone@alumni.brown.edu"> bone@alumni.brown.edu </a><br/><br/>

All comments are welcome.


]]>

</content>
</entry>
<entry>
<title>Web Services &amp; SLEE -- Whats the best fit?</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/boneill42/archive/2004/04/web_services_sl.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2004-04-01T14:10:07Z</issued>
<id>tag:weblogs.java.net,2004:/blog/boneill42/104.72</id>
<created>2004-04-01T14:10:07Z</created>
<summary type="text/plain">Web Services are catching on fast and furious, but how do these things fit into a SLEE architecture?  Is a HTTP resource adapter the answer?</summary>
<author>
<name>boneill42</name>

<email>brian.oneill@basevoice.com</email>
</author>
<dc:subject>Community: Java Communications</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/boneill42/">
<![CDATA[
Web services...<br>
I do not think it means what you think it means. =)<br><br>

<p>
The word "web" in "web services" is misleading.  Web services do not in any way shape or form depend on the "web".   They are not tied to any specific protocol or means of invocation.  Very generally, a web service is simply a service made available to other loosely coupled systems via an interface that is usually described using the web services description language (WSDL).

<p>
In WSDL, the actual means of invocation (binding and port) are implementation details.  Their could be multiple bindings because the service supports multiple means of invocation, RMI, EJB and SOAP for example.  One can envision a day when HTTP is not the primary protocol via which a service receives and responds to invocations.  This lead me to thinking about SLEE. 

<p>
SLEE is the perfect platform on which to build generic event-driven applicaitons that provide services to external entities.  Via the resource adapters, the application achieves the necessary abstraction layer away from the underlying protocols.  In a SLEE container, I can develop my service without tying it to any particular protocol or invocation method.

<p>
Beautiful, but how does one do this?   The question that is open for debate (and to which I don't have an aswer) is  how does one develop a traditional web service in a SLEE container?  Is it possible?  Is it suggested?  Do I have to first develop it in J2EE then tack on a SLEE mechanism to expose it via other means?  That seems like the wrong solution.

<p>
So, I would like to propose an HTTP adaptor for the SLEE container.  For some reason, I've "heard" this is frowned upon.  In my opinion, this is the cleanest way of building services in the future.

<p> 
Call me silly but I want to develop my service in a Service Logic Execution Environment (without thinking about J2EE), and whether or not it gets invoked via HTTP requests or someone tapping out morse code, is only an implementation detail.

<p>
How does one make this happen?]]>

</content>
</entry>

</feed>