{"id":117,"date":"2006-05-10T18:33:55","date_gmt":"2006-05-11T01:33:55","guid":{"rendered":"http:\/\/www.redmonk.com\/cote\/wp\/?p=117"},"modified":"2006-05-10T18:33:55","modified_gmt":"2006-05-11T01:33:55","slug":"oracle-developer-day-in-austin-soa-bpel-and-xml-dlss","status":"publish","type":"post","link":"https:\/\/redmonk.com\/cote\/2006\/05\/10\/oracle-developer-day-in-austin-soa-bpel-and-xml-dlss\/","title":{"rendered":"Oracle Developer Day in Austin: SOA, BPEL, and XML DLSs"},"content":{"rendered":"<p>\n<a href=\"http:\/\/www.flickr.com\/photos\/cote\/144040134\/\" title=\"Photo Sharing\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/static.flickr.com\/56\/144040134_e97ac99bd9_m.jpg\" width=\"240\" height=\"192\" alt=\"@orcl dev day  atx\" \/><\/a><\/p>\n<p>I went to the Oracle Developer Day in Austin today. My goal was to get a developer level introduction to the Oracle JEE and SOA stack, and the material and instructor, Lynn Munsinger (I believe), did a good job. The goal wasn&#8217;t to cover Oracle the database, but the Java tooling around the database. Thanks to the staff for putting it on ;&gt;<\/p>\n<p>Along with a room full of other people, my former BMC co-worker, <a href=\"http:\/\/www.flickr.com\/photos\/_jon_\/\">Jon Christiansen<\/a> and I were walked through a tour of EJB 3.0, JSF, BPEL, and Oracle&#8217;s involvement in all of the above.<\/p>\n<h2>Barriers &amp; Eclipse<\/h2>\n<p>Being a RedMonkey, I was most interested in <a href=\"http:\/\/www.redmonk.com\/cote\/archives\/2006\/05\/system_z_softwa.html\">low barriers to entry<\/a> and signs for Oracle tools migrating to Eclipse.<\/p>\n<p>While installing Oracle apps is always more tedious than it needs to be, the majority (if not all of them) are free to download and play with. Effectively &#8212; neverminding paying attention to the reams of licenses you click through &#8212; payment is needed until you roll out into production.<\/p>\n<p>When it comes to Eclipse, it turns out the JDeveloper team is in the process of porting several JDeveloper components (EJB 3.0 and JSF\/Oracle ADF) to Eclipse plugins. These aren&#8217;t available yet, but the fact that they&#8217;re working on them is (a.) great for the Eclipse ecosystem, and, (b.) <i>hopefully<\/i> telling of the direction of Oracle tools, that is, moving closer towards being Eclipse based.<\/p>\n<h2>Right-click Coding<\/h2>\n<p>I&#8217;ve never been one for model, tool, or drag-and-drop based development. Oracle development, at least as presented to us and as illustrated in the hands-on-lab (where we actually coded up EJBs and Web Services) is all three of those to the extreme. I call it &#8220;Right-click Coding,&#8221; because you&#8217;re always right clicking on things to configure different wizards and properties instead of writing the code.<\/p>\n<p>While right-click coding can certainly be a development accelerator, my problem with it is that it allows coders to be ignorant about the underlying, generated, hidden code. Of course, I don&#8217;t write in assembly or binary, so that sentiment is somewhat relative. More importantly, if you&#8217;re just writing UIs and services on top of a database and simple workflow, you usually don&#8217;t need much more than the right-click coding style offered by Oracle tools. The misalign often comes from conflated the two types of coders out there: &#8220;application developers&#8221; who create software to sell (the type of coder I am) vs. &#8220;corporate developers&#8221; who write applications for use behind-the-firewall or for one customer. Developing for one customer vs. 100&#8217;s to millions require quite different coding styles and practices.<\/p>\n<p>But, back to my code-fetish thinking: the more important trap  is that a heavy emphasis on tools results in bloated specs and configuration. If you&#8217;re just going to right click to code something, there isn&#8217;t much emphasis on making your code and configuration as lean as possible: you just rely on the machine to spit out and deal with all that complexity.<\/p>\n<h2>RAD!<\/h2>\n<p>In general, my rule of thumb is that you should run away screaming from any vendor that uses the phrase &#8220;drag and drop&#8221; when<br \/>\ntalking about programming. The same is true for the idea of<br \/>\nabstracting away stuff like HTML into layers like JSF. As <a href=\"http:\/\/www.dehora.net\/journal\/2006\/05\/there_is_no_such_thing_as_presentation_free_content.html\">Bill pointed out<\/a>, you always need<br \/>\nto know your medium and audience. So, when you abstract away HTML, you<br \/>\njust end up replicating all the features in HTML. What you want<br \/>\ninstead is a micro-formats approach that constrains itself to HTML,<br \/>\nbut introduces conventions for how to use HTML. Otherwise, you&#8217;ve just<br \/>\ngot yet another XML <a href=\"http:\/\/www.martinfowler.com\/articles\/languageWorkbench.html\">DSL<\/a>.<\/p>\n<p>If you&#8217;re in the Rapid Application Development camp, though, JDeveloper and Oracle development has a lot to offer. The tools are tightly integrated together, and wrapping EJBs in Web Services is snappy. Of course, I&#8217;m not sure how well things will go when you start having to debug and track down problems. I&#8217;m not sure there was a right-click option for &#8220;Fix all broken things.&#8221;<\/p>\n<h2>SOA, BPEL, and XML DSLs<\/h2>\n<p>Coding style wars aside, the SOA and BPEL overviews were quite solid. Oracle did a good job of presenting the whys and even hows of creating a WS-* based SOA with BPEL. I&#8217;m at first dismissive of BPEL because it&#8217;s implemented as an XML DSL (why not just use an existing scripting language like JavaScript), but since we have it, part of me thinks that we should just use it and stop coming up with new workflow standards. We definitely need to stop coming up with XML DSLs: those are just way too much.<\/p>\n<p>On the other hand, all that XML seems like way too much code and config. Much of it seems to stem from the desire to create a standard that&#8217;s  &#8220;language independent&#8221; and, thus, cross-platform. The problem becomes that you end up inventing a whole new <i>language<\/i> because, ultimately, you need to express all the same things in the new XML standard that you can do in the code that implements it.<\/p>\n<p>To my mind, it seems like we need to cut out this middle-layer, and just agree on a scripting language to use instead, as I&#8217;ve been saying, a Domain Specific Language. JavaScript seems like a good contender to me as it&#8217;s relatively complete, politically neutral (can you imagine the Ruby, Java, Python, and Perl people getting along?), easy to learn, and (to my mind, with Rhino and the C based engine) widely available.<\/p>\n<p>I&#8217;ll be curious to see what the open source world&#8217;s answer to workflow\/BPEL is. I always look towards open source to provide the most pragmatic, simple solution. It&#8217;s thanks to Hibernate and Spring, after all, that we have the simplicity goals of JEE 5.<\/p>\n<p><b>Disclaimer:<\/b> BMC and Sun are clients.<\/p>\n<p><!-- technorati tags start --><\/p>\n<p>Technorati Tags: <a href=\"http:\/\/www.technorati.com\/tag\/bpel\" rel=\"tag\">bpel<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/oracle\" rel=\"tag\">oracle<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/programming\" rel=\"tag\">programming<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/xml\" rel=\"tag\">xml<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/System z\" rel=\"tag\">System z<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/ws\" rel=\"tag\">ws<\/a><\/p>\n<p><!-- technorati tags end --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I went to the Oracle Developer Day in Austin today. My goal was to get a developer level introduction to the Oracle JEE and SOA stack, and the material and instructor, Lynn Munsinger (I believe), did a good job. The goal wasn&#8217;t to cover Oracle the database, but the Java tooling around the database. Thanks [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,12,23],"tags":[],"class_list":["post-117","post","type-post","status-publish","format-standard","hentry","category-conferences","category-enterprise-software","category-programming"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/posts\/117","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/comments?post=117"}],"version-history":[{"count":0,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/posts\/117\/revisions"}],"wp:attachment":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/media?parent=117"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/categories?post=117"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/tags?post=117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}