<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/&quot;CEINQHs-fCp7ImA9WhVbE08.&quot;"><id>tag:blogger.com,1999:blog-17460203</id><updated>2012-05-29T13:16:31.554-07:00</updated><category term="toolkit" /><category term="criminal" /><category term="flash" /><category term="Fender" /><category term="adobe max 2007" /><category term="adobemax2007" /><category term="rheem" /><category term="nitobi" /><category term="free" /><category term="soa" /><category term="customer" /><category term="community" /><category term="ryan stewart" /><category term="409" /><category term="adobe" /><category term="web20expoberlin" /><category term="RIA" /><category term="OSMF" /><category term="james ward" /><category term="change caption" /><category term="App Store SEO" /><category term="emea" /><category term="SWC" /><category term="Microphones" /><category term="Flex SQL assembler" /><category term="oreilly" /><category term="lies" /><category term="flex tutorials" /><category term="semantics" /><category term="smash mouth" /><category term="etech" /><category term="Flash Builder 4 tutorial." /><category term="free flex training" /><category term="yerba mate" /><category term="asswipes" /><category term="surreal" /><category term="helicopter" /><category term="adobe cloud computing" /><category term="chambers" /><category term="johnny" /><category term="Rogers sucks" /><category term="Forensic Architecture" /><category term="irrational" /><category term="java" /><category term="albelli" /><category term="airbus" /><category term="Jochem van Dieten" /><category term="automobiles" /><category term="brandenburg" /><category term="BAM" /><category term="Charlton" /><category term="Flex builder" /><category term="bitpakkit" /><category term="webvisions" /><category term="samples" /><category term="CEM" /><category term="artificial" /><category term="create or die" /><category term="LiveCycle" /><category term="TV is dead" /><category term="jon bosak" /><category term="interview" /><category term="flash builder 4 launched" /><category term="Software as a Service" /><category term="trouble" /><category term="Adobe LiveCycle ES" /><category term="flickr" /><category term="billy" /><category term="movieset" /><category term="design" /><category term="defense" /><category term="adobemax2008" /><category term="oline" /><category term="marc thiele" /><category term="SOPA" /><category term="moscone" /><category term="dr dobbs" /><category term="service composition" /><category term="league" /><category term="technology" /><category term="Randy Rampage" /><category term="galaxy nexus" /><category term="democracy" /><category term="enterprise suite" /><category term="dwaynes world" /><category term="soundbooth" /><category term="helcion" /><category term="debugger" /><category term="punk" /><category term="whistler" /><category term="search engine" /><category term="geo-tagged" /><category term="akweli parker" /><category term="adobe is really cool" /><category term="censorship" /><category term="service aggregation" /><category term="Bob Glushko" /><category term="new features" /><category term="free training" /><category term="Apollo" /><category term="olympics" /><category term="hybrids" /><category term="burton" /><category term="April" /><category term="dubai" /><category term="cloud hosting" /><category term="tagga" /><category term="nickull" /><category term="Teched" /><category term="services" /><category term="code" /><category term="Duanes World" /><category term="adobe evangelist twitter handles" /><category term="canada" /><category term="update" /><category term="Adobe Digital Enterprise Platform" /><category term="adobe customer experience management" /><category term="tricks" /><category term="Open Data" /><category term="John Markoff" /><category term="Google Android Development" /><category term="free source code. mobile open source" /><category term="playbook" /><category term="Adobecem" /><category term="Adobe LiveCycle ES2" /><category term="cons" /><category term="entropia" /><category term="adobe max 2009" /><category term="Don't order from City Centre florists" /><category term="music" /><category term="blankets" /><category term="manes" /><category term="death penalty" /><category term="web 2.0 slides" /><category term="mobile payment gateways" /><category term="builder" /><category term="ross ladell" /><category term="Strat" /><category term="hot water heater" /><category term="phishing" /><category term="why air might not work" /><category term="Beyer Dynamics" /><category term="mobile development" /><category term="code example" /><category term="Android tutorials" /><category term="vomit" /><category term="hillcrest plumbing" /><category term="behavior" /><category term="portland" /><category term="nexus one" /><category term="8.2" /><category term="source code" /><category term="rich tretola" /><category term="john" /><category term="High speed internet test" /><category term="SOA Reference Architecture" /><category term="government 2.0" /><category term="Zend extensions" /><category term="duanesworld tv" /><category term="mobile" /><category term="DOA" /><category term="Wolfram alpha" /><category term="breaking things" /><category term="spammers are scum" /><category term="bpm" /><category term="22nd Century video" /><category term="Capgemini" /><category term="making money" /><category term="funny" /><category term="dopplr" /><category term="encoding" /><category term="mike" /><category term="duane nickull" /><category term="gingerbread" /><category term="doug mccune" /><category term="broken luggage investigation" /><category term="AIR example" /><category term="future of TV" /><category term="pixton" /><category term="hosted services." /><category term="flash player 10" /><category term="scatterheart" /><category term="ontology" /><category term="Dries Buytaert" /><category term="Flash SEO Optimization Tips" /><category term="freedom" /><category term="presentation" /><category term="library" /><category term="Foo Camp 2008" /><category term="toyota prius" /><category term="standard" /><category term="Jeff Myers" /><category term="no means no" /><category term="mix2r" /><category term="first order logic" /><category term="Adobe LiveCycle Training" /><category term="Adobe MAX Free" /><category term="web 2.0" /><category term="adobe max discounts" /><category term="sun" /><category term="EDA" /><category term="concert" /><category term="Flash Builder 4 tutorial" /><category term="google nexus one" /><category term="Tour de LiveCycle" /><category term="adobe tv" /><category term="URGENT" /><category term="Richmond Nissan" /><category term="barcode" /><category term="google. android" /><category term="duane" /><category term="out of memory error" /><category term="halo 2" /><category term="bad" /><category term="yerba matte" /><category term="james governor" /><category term="acronyms" /><category term="andre michelle" /><category term="tim" /><category term="UML" /><category term="XML" /><category term="Developer" /><category term="adobe max 2008 dates sessions" /><category term="Spoiler" /><category term="car dock" /><category term="Bola Rotibi" /><category term="gaming" /><category term="user" /><category term="Nigeria" /><category term="automobile" /><category term="photobucket" /><category term="ray hartmann" /><category term="david recordon" /><category term="android" /><category term="integration" /><category term="Web 2.0 presentation" /><category term="toxic" /><category term="adobe reader beta" /><category term="illegal." /><category term="Android central" /><category term="crank it up" /><category term="swf" /><category term="hands on code camp" /><category term="setup Adobe AIR" /><category term="w2e" /><category term="scam" /><category term="flash player 11" /><category term="watched folders" /><category term="web 2.0 definition" /><category term="ColdFusion" /><category term="flash lite mobile" /><category term="froyo" /><category term="SEO secrets" /><category term="conker" /><category term="max2008" /><category term="xinnet" /><category term="sap tech ed 2009 craig cmehil" /><category term="colleen nystedt" /><category term="MVC" /><category term="javascript" /><category term="free adobe products" /><category term="redmonk" /><category term="search engines" /><category term="Award" /><category term="anne zelanka" /><category term="charting" /><category term="web2expoberlin" /><category term="AJAX" /><category term="clive goodinson" /><category term="mexico" /><category term="Stop online piracy act" /><category term="stress factor 9" /><category term="ontolog forum" /><category term="tricks and Black Magic" /><category term="kapow" /><category term="AIR chromeless application" /><category term="2012" /><category term="adam pease" /><category term="max2007" /><category term="user group" /><category term="adobe max 2010" /><category term="harley earl" /><category term="download" /><category term="web 2.0 architecture" /><category term="computational" /><category term="Tour Tracker" /><category term="quebec" /><category term="crime" /><category term="smart car" /><category term="spammers" /><category term="class" /><category term="EAI" /><category term="Service Oriented Architecture" /><category term="Shure" /><category term="Adobe enterprise software" /><category term="Air canada" /><category term="victoria" /><category term="bad customer service example. worst failure in customer service." /><category term="ben stucki" /><category term="idea" /><category term="XMP" /><category term="free flex builder" /><category term="patterns" /><category term="pixel bender" /><category term="Developer Express" /><category term="AS3" /><category term="version 8" /><category term="tattoo" /><category term="dedicated website hosting" /><category term="Flex 4 examples" /><category term="norovirus" /><category term="samsung" /><category term="major" /><category term="CEM for Architects" /><category term="SOAP" /><category term="filereference" /><category term="dollars" /><category term="certification" /><category term="uberity" /><category term="Flash Builder 4 tutorials" /><category term="Episode 1" /><category term="mix2r.com" /><category term="mobile application development strategy" /><category term="intelligent" /><category term="composition" /><category term="microphone" /><category term="aggregation" /><category term="music 2.0" /><category term="maps" /><category term="slashdot" /><category term="guayaki" /><category term="what is it like to be an evangelist" /><category term="pipa" /><category term="adobe max 2011" /><category term="ripped off" /><category term="flash builder 4.5" /><category term="joel solomon" /><category term="Mobile Enterprise Application Platform" /><category term="marriott hotels" /><category term="bootleg software." /><category term="Flex Mobile development" /><category term="new auto" /><category term="max 2009" /><category term="energy efficient house" /><category term="kevin lynch" /><category term="club intrawest points for sale" /><category term="broadband speed checker" /><category term="CS 5.5" /><category term="convergence" /><category term="show 2" /><category term="hosting" /><category term="flexico" /><category term="sumo" /><category term="Adobe resource synchronizer" /><category term="Berlin." /><category term="war" /><category term="Flash indexing" /><category term="susanne tabata" /><category term="SaaS White Paper" /><category term="SAP" /><category term="audio" /><category term="OSCON" /><category term="learn mobile development" /><category term="FATC10" /><category term="LC ES" /><category term="telephone. PIN" /><category term="Andrea Reimer" /><category term="video" /><category term="Flex" /><category term="mountain bike" /><category term="iOS" /><category term="mashup" /><category term="Forms" /><category term="actionscript" /><category term="2008" /><category term="cars" /><category term="training" /><category term="MEAP" /><category term="MAX 2008" /><category term="rich" /><category term="LiveCycle ES2" /><category term="creation" /><category term="es" /><category term="battery" /><category term="2007" /><category term="root" /><category term="bunk" /><category term="pdf" /><category term="Stefan D'amore" /><category term="ooxml" /><category term="i love slashdot" /><category term="read this before sending flowers in Vancouver" /><category term="Duane Nickull SEO TIps" /><category term="SVCC" /><category term="Broadcasting 2.0" /><category term="LEED" /><category term="Flash SEO" /><category term="what to do when you're bored" /><category term="race" /><category term="Hinchcliffe" /><category term="die welt" /><category term="I love germany" /><category term="service oriented  architecture" /><category term="dangers of cloud computing" /><category term="berlin" /><category term="hollyhock" /><category term="education" /><category term="6S Marketing" /><category term="$2.00" /><category term="java one" /><category term="challenge" /><category term="duane's world" /><category term="data mapping" /><category term="ichabod" /><category term="David eaves" /><category term="ebay" /><category term="perl" /><category term="multiple screen" /><category term="cool cars" /><category term="executive" /><category term="anne 2.0" /><category term="Panda" /><category term="kenneth MacKenzie" /><category term="cairngorm" /><category term="advertising" /><category term="Tim Oreilly" /><category term="composite application" /><category term="22nd century" /><category term="UN/CEFACT" /><category term="idol" /><category term="Wikipedia" /><category term="ebXML" /><category term="webkit" /><category term="patent troll" /><category term="Adobe Stimulus program" /><category term="Marcus Metzner." /><category term="Merchant processing accounts" /><category term="XFN" /><category term="asinine" /><category term="forms gone wild" /><category term="FB4" /><category term="catalyst" /><category term="Yahoo AS3" /><category term="charlotte" /><category term="vancouver international airport" /><category term="london" /><category term="cs5" /><category term="open standards" /><category term="mp3 player" /><category term="blazeDS" /><category term="Adobe AIR for Android tutorials" /><category term="Adobe MAX 2008" /><category term="axis2 + jboss 5" /><category term="tretola" /><category term="air" /><category term="cloud computing" /><category term="Norbert Mikula" /><category term="Flash Builder" /><category term="blackcomb" /><category term="team best yet" /><category term="sqlite" /><category term="SCA" /><category term="dayglow abortions" /><category term="heavy metal" /><category term="Adobe training" /><category term="http://blogs.zdnet.com/service-oriented/" /><category term="issue" /><category term="ipod touch firmware update" /><category term="Google" /><category term="distiller" /><category term="Adobe AIR tutorials" /><category term="European Broadcasters Union" /><category term="inference" /><category term="acrobat" /><category term="1" /><category term="Duanes world 12" /><category term="Flash player 10.3" /><category term="blackberry" /><category term="silicon valley code camp" /><category term="hero sdk" /><category term="Flex Tutorial" /><category term="open data foundation" /><category term="demonstration" /><category term="sucks" /><category term="weird" /><category term="web2expo." /><category term="no PC" /><category term="learn flex in one week." /><category term="rotten" /><category term="html5 flash" /><category term="toyota" /><category term="apache flex adobe flash air" /><category term="university" /><category term="install" /><category term="collabrative" /><category term="bloodied but unbowed" /><category term="swf SEO" /><category term="sad" /><category term="ADEP" /><category term="max 2008 milan" /><category term="Rode" /><category term="Precision Bass" /><category term="action builder" /><category term="simple 3d effects" /><category term="Schema" /><category term="open source" /><category term="4.0" /><category term="webmaniacs" /><category term="website hosting" /><category term="MAX Milan 2008" /><category term="location" /><category term="delusional" /><category term="PHP and Flex" /><category term="iphone" /><category term="Software Architecture lessons" /><category term="intelligence" /><category term="Flash and the City 2011" /><category term="Shaw high speed internet rocks" /><category term="WUG" /><category term="tips" /><category term="Mac" /><category term="microformat" /><category term="group" /><category term="eclipse" /><category term="Adobe tech summit 2008" /><category term="mike chambers" /><category term="search engine optimization" /><category term="air drag and drop example" /><category term="working with XML" /><category term="Web 3.0" /><category term="adobe edge" /><category term="FLEX AIR" /><category term="future" /><category term="Barreto" /><category term="contest" /><category term="Android market" /><category term="SOA is not dead" /><category term="TV" /><category term="ISO 32000" /><category term="reviews" /><category term="Customer Experience Management" /><category term="video games" /><category term="san francisco" /><category term="online security" /><category term="security" /><category term="thomas" /><category term="Web Services" /><category term="1980's hair band" /><category term="models" /><category term="ecma 376" /><category term="Adobe AIR" /><category term="Steve Jones" /><category term="india" /><category term="media framework" /><category term="moron sopa" /><category term="great" /><category term="ZIO" /><category term="double neck" /><category term="David RR Webber" /><category term="los angeles" /><category term="max" /><category term="zxdata" /><category term="social networks" /><category term="nickull 7th heaven" /><category term="andre" /><category term="prerelease" /><category term="north carolina" /><category term="html" /><category term="warranty" /><category term="fun" /><category term="china" /><category term="mobile code tutorial open source drawing magic screen draw pro" /><category term="architecture" /><category term="examples" /><category term="experience management" /><category term="brady forrest" /><category term="world record software downloads in one day" /><category term="soa and web 2.0" /><category term="Auditude" /><category term="nutraways" /><category term="form design" /><category term="environmentally clean house design" /><category term="Lee Brimelow" /><category term="charland" /><category term="flex 3" /><category term="universe software" /><category term="ensemble" /><category term="apple" /><category term="duane's world 13" /><category term="AIR tutorial" /><category term="Adobe labs" /><category term="andy powell" /><category term="sex pistols" /><category term="criminals" /><category term="Dion" /><category term="Google indexing flash" /><category term="Google Android SEO" /><category term="foresight" /><category term="SaaS" /><category term="zak greant" /><category term="silverlight vs flash" /><category term="Canon" /><category term="javaone" /><category term="Business Objects" /><category term="comparison" /><category term="enterprise" /><category term="air 2.5 mobile" /><category term="blakout" /><category term="blog hosting" /><category term="webinale" /><category term="html 5" /><category term="web 2expo berlin" /><category term="mobile tipping point" /><category term="web 2.0 design patterns" /><category term="flex videos" /><category term="HTML5" /><category term="google android" /><category term="linux" /><category term="molehill 3d" /><category term="S4M" /><category term="roger roberts" /><category term="love for software" /><category term="jack wilber" /><category term="REST" /><category term="#adobemax" /><category term="2d" /><category term="tutorial" /><category term="spatialkey" /><category term="developer tools" /><category term="OASIS" /><category term="h.264" /><category term="free mobile programming tutorials" /><category term="happy" /><category term="first" /><category term="ace koden" /><category term="matt mackenzie" /><category term="adobeMAX2010" /><category term="webinars" /><category term="endpoints" /><category term="tamarin" /><category term="criticism" /><category term="SEO" /><category term="3D" /><category term="yahoo maps" /><category term="jboss" /><category term="microsoft" /><category term="two" /><category term="adobe max" /><category term="chaos" /><category term="ace kodan" /><category term="livecyclemax" /><category term="onair" /><category term="data" /><category term="vancouver" /><title>Technoracle (a.k.a. "Duane's World")</title><subtitle type="html">Rants, raves and random brain dumps on Technology including Architecture, Mobile SEO, Search Engine Optimization, Ontology, Clean Energy, Software Development, Neo4J &amp;amp; other Graph Databases, Cypher, LiveCycle ES, Adobe MAX, Open Data, Service Oriented Architecture (SOA), Web 2.0, Music, Flex, PDF, LiveCycle, AIR, Mobile Development, Tutorials, Technology and most importantly our own damn opinions!</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>706</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/technoracle" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="technoracle" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CUEFSHYzfSp7ImA9WhVbE0w.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-3009050801158169119</id><published>2012-05-29T10:46:00.005-07:00</published><updated>2012-05-29T10:46:59.885-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-29T10:46:59.885-07:00</app:edited><title>Where Facebook is Heading?</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Recently there has been a lot of hyperbole around Facebook. &amp;nbsp;The &lt;a href="http://arstechnica.com/gadgets/2012/04/facebook-buying-instagram-for-1-billion/"&gt;acquisition or Instagram for $1 billion&lt;/a&gt;, the rumors of a &lt;a href="http://www.gadgetbox.msnbc.msn.com/technology/gadgetbox/facebook-phone-rumor-just-wont-die-734982"&gt;Facebook phone&lt;/a&gt; and now the &lt;a href="http://online.wsj.com/article/BT-CO-20120529-708783.html"&gt;potential acquisition of Opera&lt;/a&gt;. &amp;nbsp;I predicted the IPO would be a bad investment and the recent news consolidates my feelings about a company that is running amok. Why would Facebook, a company that &lt;a href="http://news.cnet.com/8301-30685_3-57359606-264/ex-firefox-exec-shaver-has-plans-for-facebooks-android-app/?tag=mncol;txt"&gt;according to some&lt;/a&gt; can't even build a good mobile application, consider buying a browser? &amp;nbsp;At Technoracle, we are not analysts but once in a while like to express opinions on current trends.&lt;br /&gt;
&lt;br /&gt;
An acquisition of Opera would not be very beneficial for either company, nor would it be of much use in generating revenue for Facebook. &amp;nbsp;Facebook is a platform and Opera users already use Facebook. &amp;nbsp;We seriously doubt it would mean every Opera user would instantly become a new Facebook user. &amp;nbsp;Even if they did, to what end?&lt;br /&gt;
&lt;br /&gt;
We are not alone in these thoughts either. &amp;nbsp;&lt;a href="http://www.pcmag.com/article2/0,2817,2404976,00.asp"&gt;Trip Chowdry writes&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;"Buying Opera will likely be another stupid acquisition, the previous one being Instagram,"&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Trip Chowdhry is a managing director of equity research at Global Equities Research. &amp;nbsp;We differ on rationale slightly. &amp;nbsp;Trip notes that buying Opera would potentially narrow Facebooks's ecosystem, not expand it. &amp;nbsp; &amp;nbsp;The one item that Facebook needs to desperately expand upon is revenue generation. &amp;nbsp;Some &lt;a href="http://www.neontommy.com/news/2012/05/facebook-IPO-lawsuit-front-imprudent-investing"&gt;investors have launched lawsuits&lt;/a&gt; alleging alleges that the defendants (Zuckerberg et al) hid the company's weakened growth forecasts from investors prior to the acquisition. &amp;nbsp;Whether this is true or not, growing revenue is one thing that keeps Wall Street happy.&lt;br /&gt;
&lt;br /&gt;
Rather than go out and acquire technology, Facebook needs to wrangle in revenue producing companies or monetize their current investments. The IPO is done, the war chest is full of money. &amp;nbsp; Now is the time to build the business model that ensures long term success. &amp;nbsp;Remember MySpace? &amp;nbsp;The public is fickle and Facebook is not&amp;nbsp;infallible. &amp;nbsp;MySpace's fall from grace happened so quickly most bands don't even bother with it anymore.&lt;br /&gt;
&lt;br /&gt;
The acquisition of Instagram is also causing head shaking. &amp;nbsp;Instagram, as many have noted, is not technically a large amount of work to recreate. &amp;nbsp;They do have a solid install base which could be a play for users yet I suspect that two developers could re-create the applications in a week. &amp;nbsp;Filters are not hard to build. &amp;nbsp;Sharing photographs is a feature already built in to most modern camera equipped phones today.&lt;br /&gt;
&lt;br /&gt;
The current Facebook API's and mobile applications are basically wrappers around the website. &amp;nbsp;So what is the long term plan here? &amp;nbsp;Let's try and sum up what we see happening.&lt;br /&gt;
&lt;br /&gt;
Is it possible that Facebook wants to enter the contextual, POS advertising market? &amp;nbsp;Imagine this scenario. &amp;nbsp;You are walking down the street and your Facebook phone buzzes. &amp;nbsp;It alerts you that one of your Facebook friends is 100 meters away. &amp;nbsp;A backend algorithm has deduced that both of you like Starbucks (tm) and it sets up a DM to your friend suggesting you meet at the starbucks adjacent to your corner for a quick beverage. &amp;nbsp;It also provides you with a code for a discount on Starbucks which is tracked and revenue shared back to Facebook.&lt;br /&gt;
&lt;br /&gt;
This scenario could offer a white boxed customer loyalty program for many businesses. &amp;nbsp;Unlike the Groupon model where drastic discounts can cause issues, Facebook could potentially use a 4Square type model to build a new contextual advertising market place.&lt;br /&gt;
&lt;br /&gt;
For this scenario, &amp;nbsp;you would need the following components:&lt;br /&gt;
&lt;br /&gt;
1. Large social graph&lt;br /&gt;
2. A GPS enabled phone or mobile app that can use GPS data&lt;br /&gt;
3. Either a proper mobile app or an HTML5, location aware browser that can be used to display the data&lt;br /&gt;
4. A deeper understanding of consumer spending habits and impulse purchases&lt;br /&gt;
5. A way to share the memories or post photos&lt;br /&gt;
&lt;br /&gt;
Is this where Facebook is heading?&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-3009050801158169119?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/3009050801158169119/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/05/where-facebook-is-heading.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/3009050801158169119?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/3009050801158169119?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/05/where-facebook-is-heading.html" title="Where Facebook is Heading?" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0AMRng4fSp7ImA9WhVUGEo.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-2426481937228265755</id><published>2012-05-24T09:09:00.002-07:00</published><updated>2012-05-24T09:09:47.635-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-24T09:09:47.635-07:00</app:edited><title>My Thoughts on Adobe Creative Cloud vs CS 5.5.</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Recently there has been a lot of advertising urging me to "upgrade" from CS 5.5 to the Adobe Creative Cloud. &amp;nbsp;I am&amp;nbsp;hesitant&amp;nbsp;for a few reasons. &amp;nbsp;The first is pricing. &amp;nbsp;Right now &lt;a href="https://creative.adobe.com/plans"&gt;introductory pricing&lt;/a&gt; is between free (introductory trial) $29.95 and $79.95 per year. &amp;nbsp;This is noted as "Introductory pricing. &amp;nbsp;My concern is that instead of buying the software as I have in the past, I am not in a model whereby I will be paying rent every month. &amp;nbsp;There is no guarantee that pricing will not go up in the future either. &amp;nbsp;I am concerned about a new model where I pay monthly revenues every month, even if I do not require or use the software.&lt;br /&gt;
&lt;br /&gt;
The next part is fairly obvious. &amp;nbsp;Storage will cost money. &amp;nbsp;The $79.95 plan (roughly $950 per year), comes with twenty (20) GB of storage. &amp;nbsp;I have episodes of Duane's World that are over 100 GB. &amp;nbsp;How much is this going to cost me? &amp;nbsp;Maybe I archive it locally?&lt;br /&gt;
&lt;br /&gt;
Some good points should be the performance. &amp;nbsp;I will definitely be trying some of the more computationally expensive tasks from the free account to test. &amp;nbsp;Another benefit is that all my files (well 20GB of them) are with me wherever I go.&lt;br /&gt;
&lt;br /&gt;
Adobe has put a lot of thought into this and it will be interesting to see what percentage of CS 5 and 5.5. users actually jump to the cloud or upgrade further. &amp;nbsp;I'm not a good designer (as is obviously by my blog design) and probably cannot make use of most of the features. This makes me happy to stay on 5.5.&lt;br /&gt;
&lt;br /&gt;
I'd like to hear stories from those on the Creative Cloud. &amp;nbsp;What kind of experience are you having?&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-2426481937228265755?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/2426481937228265755/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/05/my-thoughts-on-adobe-creative-cloud-vs.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/2426481937228265755?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/2426481937228265755?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/05/my-thoughts-on-adobe-creative-cloud-vs.html" title="My Thoughts on Adobe Creative Cloud vs CS 5.5." /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;C08CSXk4cCp7ImA9WhVUE0s.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-702868667736886956</id><published>2012-05-18T09:51:00.001-07:00</published><updated>2012-05-18T10:24:28.738-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-18T10:24:28.738-07:00</app:edited><title>Apple 10.7.4 IMPORTANT NOTICE BEFORE UPGRADING!</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
I had a hard drive issue the other day and decided to upgrade and re-install my OS on a new drive. &amp;nbsp;I started by installing OSX Snow Leopard and then upgraded to Lion 10.7, which immediately prompted some updates to the OS, leaving me with 10.7.4. My machine is a Mac Pro running 2 X 3 GHz Quad-Core Intel Xenon processors.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-w_C40d-b4-8/T7Z5ZUZxy7I/AAAAAAAABTg/wL9OkAB2LjY/s1600/Screen+Shot+2012-05-18+at+9.27.02+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-w_C40d-b4-8/T7Z5ZUZxy7I/AAAAAAAABTg/wL9OkAB2LjY/s400/Screen+Shot+2012-05-18+at+9.27.02+AM.png" width="335" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
To my horror, when I went to install Sorenson Squeeze 5, which is market on the outside package as "Universal" install for Mac meaning it runs on both PPC and Intel architectures. &amp;nbsp;When you open the folder, there are two installers - one for Intel based Macs (like mine) and one for PPC based Macs.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-dVt4W-C5IeM/T7Z5wcEtTDI/AAAAAAAABTo/hUxe0hYZsY8/s1600/Screen+Shot+2012-05-18+at+9.28.12+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="143" src="http://1.bp.blogspot.com/-dVt4W-C5IeM/T7Z5wcEtTDI/AAAAAAAABTo/hUxe0hYZsY8/s400/Screen+Shot+2012-05-18+at+9.28.12+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
PPC is no longer supported but to my horror, when I tried to install the Intel version, I got the following message.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-u75PXI4Swvg/T7Z53lPeH2I/AAAAAAAABTw/fxLDi6O44VY/s1600/Screen+Shot+2012-05-18+at+9.28.29+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="131" src="http://2.bp.blogspot.com/-u75PXI4Swvg/T7Z53lPeH2I/AAAAAAAABTw/fxLDi6O44VY/s400/Screen+Shot+2012-05-18+at+9.28.29+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
I got the same behavior with several other "universal" installs so I set up a call with Apple to discuss this, thinking it is obviously a bug. &amp;nbsp;The call took place at 9:00 AM PDT and I am going to share with you what was said to me. &amp;nbsp;BTW = if anyone from Apple wants to know who the person was, the case was &lt;b&gt;Express Lane Case 315474064&lt;/b&gt;: Scheduled Support Call. &amp;nbsp; &amp;nbsp;First &amp;nbsp;the Apple guy told me it was because Lion no longer supports PPC. &amp;nbsp;I told him that up until the day before, I had my Final Cut Pro and Sorenson running on this same machine with the Lion OSX. &amp;nbsp;He was unapologetic and told me I just had to just pay Apple to upgrade to a newer version of Final Cut Pro. &amp;nbsp;My reaction was to put my hands up and say "don't shoot" but I politely suggested this sort of&amp;nbsp;behaviour&amp;nbsp;was not appropriate given the stamp "Universal" means it runs on Intel. &amp;nbsp; I also told him that by him telling me I had to go and upgrade all my software was akin to robbery. &amp;nbsp; I told him I was going to blog about this and he got really worried and said he had not said anything and I should refer to the website. &amp;nbsp; &amp;nbsp;He said "I didn't say that and anything you say you are making up".&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Sorry pal. &amp;nbsp;The truth is the truth and this blog stays here! &amp;nbsp;That's final. &amp;nbsp;Nio court gag order will take this down.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Well, I am blogging about because other people might want to know about this. &amp;nbsp;There is an error and I hope someone from Apple reads this and sorts it out. &amp;nbsp; Please be warned!&amp;nbsp;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-TJcnOCD9SHs/T7aE7HpdXoI/AAAAAAAABUI/o5-TdkNVyJ4/s1600/Screen+Shot+2012-05-18+at+10.19.46+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-TJcnOCD9SHs/T7aE7HpdXoI/AAAAAAAABUI/o5-TdkNVyJ4/s320/Screen+Shot+2012-05-18+at+10.19.46+AM.png" width="239" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
Dear Apple: &amp;nbsp;Please explain what "universal" really means? &amp;nbsp;From their &lt;a href="http://www.apple.com/hk/en/intel/"&gt;website&lt;/a&gt;:&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
"&lt;span style="background-color: white; color: #888888; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Helvetica, Arial, Verdana, sans-serif; font-size: 16px; line-height: 22px; text-align: -webkit-auto;"&gt;Now every new Mac ships with an Intel processor. Experience delightful responsiveness from the smallest Mac mini to the most beefed-up Mac Pro. Use one of more than 7,000 universal applications that take full advantage of the Intel chip."&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;span style="background-color: white; color: #888888; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Helvetica, Arial, Verdana, sans-serif; font-size: 16px; line-height: 22px; text-align: -webkit-auto;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;span style="background-color: white; color: #888888; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Helvetica, Arial, Verdana, sans-serif; font-size: 16px; line-height: 22px; text-align: -webkit-auto;"&gt;Hmmmm.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-702868667736886956?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/702868667736886956/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/05/apple-1074-important-notice-before.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/702868667736886956?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/702868667736886956?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/05/apple-1074-important-notice-before.html" title="Apple 10.7.4 IMPORTANT NOTICE BEFORE UPGRADING!" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-w_C40d-b4-8/T7Z5ZUZxy7I/AAAAAAAABTg/wL9OkAB2LjY/s72-c/Screen+Shot+2012-05-18+at+9.27.02+AM.png" height="72" width="72" /><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;DkAEQXw9eSp7ImA9WhVUEUo.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-8541400913141908329</id><published>2012-05-16T06:25:00.000-07:00</published><updated>2012-05-16T06:25:00.261-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-16T06:25:00.261-07:00</app:edited><title>Adobe LiveCycle ES3 (version 10.0) Download</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Adobe has recently announced that &lt;strong&gt;Adobe LiveCycle ES3&lt;/strong&gt;
 is available as a download. &amp;nbsp;This announcement was met with some great 
enthusiasm by the community, none less than us here at Technoracle. &amp;nbsp;The 
brand itself had been subject of much speculation regarding it’s future 
and we are happy to see the investment into LiveCycle continue. &amp;nbsp;This 
re-invigorates our own investment to work with this excellent SOA 
platform.&lt;br /&gt;
&lt;br /&gt;

Having now been accepted into the Adobe&amp;nbsp;Enterprise Solution Partner 
Program, we are extremely excited to be amongst the first in the world 
to offer you, the customers, the ability to purchase Adobe LiveCycle ES3
 and professional services around it, starting from initial project 
consulting to complete project management. &amp;nbsp;In case you haven’t heard, 
there are several new features that many enterprises have asked for. &amp;nbsp; 
Our great former colleagues Jeff Stanier and Dave Welch have done a 
spectacular job of making this release a “must have”.&lt;br /&gt;
&lt;br /&gt;

LiveCycle ES3 first and foremost incorporates the Data Services ES3 
module (version 4.6.1), an optimized Java server framework that can 
enhance and simplify the development of rich, data-intensive enterprise 
and mobile applications. &amp;nbsp;This includes several mobile platforms such as
 iOS, Android etc.&lt;br /&gt;
&lt;br /&gt;

ES3 also offers a new SAP to Java connector for creating front-end 
interfaces to SAP systems. Alongside this update are connectors for 
FileNet 5 and easier SharePoint server farm deployment and integration.&lt;br /&gt;
&lt;br /&gt;

Our favorite new feature is within LiveCycle Designer. &amp;nbsp;When you add a
 new submit button, Designer allows you to select an encryption method 
and choose from from several XML encryption/decryption algorithms. &amp;nbsp; 
This will help with many accounts we are currently working on.&lt;br /&gt;

Out mobile MEAP-lite platform is also a good way to add custom mobile
 functionality for wireless device integration into business process.&amp;nbsp; Companies like Uberity have already released a great free and open source mobile SMS module 
including the full source code and binaries at&amp;nbsp;&lt;a href="http://blog.uberity.com/2012/02/extending-adobe-livecycle-es-to-use-sms-in-business-processes/" target="_blank" title="Uberity LiveCycle ES3 SMS Module"&gt;http://blog.uberity.com/2012/02/extending-adobe-livecycle-es-to-use-sms-in-business-processes/&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;

So why wait? &amp;nbsp;Get started today. &amp;nbsp; Contact us, a company founded
 by former top LiveCycle ES rock stars and engineering managers.&amp;nbsp; 
Leave a omment if you wish to inquire about our services around LiveCycle ES3.&lt;br /&gt;

&lt;br /&gt;

&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-8541400913141908329?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/8541400913141908329/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/05/adobe-livecycle-es3-version-100.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/8541400913141908329?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/8541400913141908329?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/05/adobe-livecycle-es3-version-100.html" title="Adobe LiveCycle ES3 (version 10.0) Download" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkEHRX4-fCp7ImA9WhVUEUw.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-2463108920743220978</id><published>2012-05-15T13:43:00.003-07:00</published><updated>2012-05-15T13:43:54.054-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-15T13:43:54.054-07:00</app:edited><title>Neo4J Tutorial #4: Registering a shutdown hook</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
In the previous tutorials on Neo4J, we discussed what Neo4J is, how to start it and use Cypher for basic queries and &lt;a href="http://technoracle.blogspot.ca/2012/05/third-neo4j-tutorial-getting-started.html"&gt;getting started with Neo4J and Java&lt;/a&gt;. &amp;nbsp;In the third of these, we had hinted there are some things you should do that are best practices in a proper environment.&lt;br /&gt;
&lt;br /&gt;
To start this tutorial, please first follow the 3rd of the series from&amp;nbsp;&lt;a href="http://technoracle.blogspot.ca/2012/05/third-neo4j-tutorial-getting-started.html"&gt;http://technoracle.blogspot.ca/2012/05/third-neo4j-tutorial-getting-started.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
You' notice that on Neo4J's pages, they discuss a shutdown hook. &amp;nbsp;So what exactly is that and why would anyone use it?&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-4-egzaeAW7o/T7K3McyVXKI/AAAAAAAABSs/nPRFcXnAZWg/s1600/Screen+Shot+2012-05-15+at+1.05.15+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="98" src="http://3.bp.blogspot.com/-4-egzaeAW7o/T7K3McyVXKI/AAAAAAAABSs/nPRFcXnAZWg/s400/Screen+Shot+2012-05-15+at+1.05.15+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
If you examine the code on the previous tutorial, you will see that you can shutdown a database by simply calling grapDB,shutdown(); &amp;nbsp;These lines of code are shown above. &amp;nbsp;Note that calling shutown() only tries to shutdown the database. &amp;nbsp;The Shutdown hook simply ensures that the database shuts down cleanly.&lt;br /&gt;
&lt;br /&gt;
To add a shutdown hook to the code in the previous tutorial, navigate to the createDB() method and register a shutdownhook handler right under the line where you create the database. &amp;nbsp;With the new line added, your code should look like this:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-LcGhiSDrQXU/T7K4iQnCF8I/AAAAAAAABS0/puiRuuks014/s1600/Screen+Shot+2012-05-15+at+1.11.26+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="51" src="http://2.bp.blogspot.com/-LcGhiSDrQXU/T7K4iQnCF8I/AAAAAAAABS0/puiRuuks014/s400/Screen+Shot+2012-05-15+at+1.11.26+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
At this time, you may notice red X's as this introduces errors into the project. &amp;nbsp;We have registered a shutdown hook which takes a single argument of &amp;nbsp;the graphDB instance it will register the hook for. &amp;nbsp;Now it is time to write the hook. &amp;nbsp;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-CJZ1MFrp2Nc/T7K_pevv7MI/AAAAAAAABTI/ewtUvms--O0/s1600/Screen+Shot+2012-05-15+at+1.41.42+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="121" src="http://4.bp.blogspot.com/-CJZ1MFrp2Nc/T7K_pevv7MI/AAAAAAAABTI/ewtUvms--O0/s400/Screen+Shot+2012-05-15+at+1.41.42+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
registerShutdownHook() is a static method that returns nothing (void). &amp;nbsp;The syntax above is a bit confusing given line 91 calls addShutDownHook on a new thread and closes around line 99, hence the erroneous looking but much required "});" syntax. &amp;nbsp;This essentially encapsulates the functionality. &amp;nbsp;&lt;span class="s1"&gt;&amp;nbsp; The&amp;nbsp;&lt;/span&gt;shutdown hook ensures that the Neo4j instance shuts&amp;nbsp;down nicely when the VM exits (even if you "Ctrl-C" the&amp;nbsp;running instance before it has finished running. &amp;nbsp;Try running this example now with the modifications and you should see the following print out in your console.&lt;br /&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-5LwPPy-Ty_A/T7K_4hP9hCI/AAAAAAAABTQ/hq21dEtzVyI/s1600/Screen+Shot+2012-05-15+at+1.42.53+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="96" src="http://3.bp.blogspot.com/-5LwPPy-Ty_A/T7K_4hP9hCI/AAAAAAAABTQ/hq21dEtzVyI/s400/Screen+Shot+2012-05-15+at+1.42.53+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-2463108920743220978?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/2463108920743220978/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/05/neo4j-tutorial-4-registering-shutdown.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/2463108920743220978?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/2463108920743220978?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/05/neo4j-tutorial-4-registering-shutdown.html" title="Neo4J Tutorial #4: Registering a shutdown hook" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-4-egzaeAW7o/T7K3McyVXKI/AAAAAAAABSs/nPRFcXnAZWg/s72-c/Screen+Shot+2012-05-15+at+1.05.15+PM.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUEHQHs_eSp7ImA9WhVVFUo.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-8049104767028882723</id><published>2012-05-08T12:01:00.003-07:00</published><updated>2012-05-09T08:33:51.541-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-09T08:33:51.541-07:00</app:edited><title>Third Neo4J Tutorial: Getting Started with Java</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
In this tutorial we will learn how to talk to Neo4J using
Java.&amp;nbsp; There are a few tutorials from Neo
Technologies which are very useful however I have my unique style of teaching
and want to explain this technoracle-style.&lt;br /&gt;
&lt;br /&gt;
First, if you haven’t already familiarized yourself with &lt;a href="http://technoracle.blogspot.ca/2012/04/getting-started-with-neo4j-beginners.html"&gt;Getting Start with Neo4J&lt;/a&gt; and the &lt;a href="http://technoracle.blogspot.ca/2012/04/neo4j-installing-running-and-shell.html"&gt;Getting Started with the Neo4J Cypher Shell&lt;/a&gt;, check out those two articles.&lt;br /&gt;
&lt;br /&gt;
Here are the steps to communicating with Neo4J from a Java environment. &amp;nbsp;This tutorial should take you about 30 minutes to complete.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;SETUP&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
1. &amp;nbsp;Ensure you have the right version of Java and the Java JDK environment set up properly. On a Mac, this is probably already done for you.  On a PC, you might have to manually download and install the right version of Java and set the PATH and JAVA_HOME environmental variable from scratch.&amp;nbsp; 

&lt;br /&gt;
&lt;br /&gt;
2. Download and install Neo4J.  In this tutorial I am using &lt;a href="http://neo4j.org/download/"&gt;Neo4J 1.8 M01 release&lt;/a&gt;.  I installed it on my OSX 10.7.3 laptop under my home directory (/Users/dnickull/Software/Neo4J_1.8/)&lt;br /&gt;
&lt;br /&gt;
3. &amp;nbsp;Ensure you have the correct version of Eclipse installed.  For this tutorial, I downloaded &lt;a href="http://www.eclipse.org/downloads/"&gt;Eclipse Indigo&lt;/a&gt; Service Release 1, Build id: 20110916-0149. &amp;nbsp;I use the version entitled Eclipse IDE for Java EE Developers.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;STARTING THE PROJECT&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
4. &amp;nbsp;Within Eclipse, select File -&amp;gt; new -&amp;gt; Java Project and give the new project a name. In my case I m calling mine “Neo_1.8”.  Select Next.&lt;br /&gt;
&lt;br /&gt;
5. &amp;nbsp;Under the second &lt;b&gt;&lt;i&gt;new project page&lt;/i&gt;&lt;/b&gt;, select &lt;b&gt;Java Build Path (1)&lt;/b&gt; the &lt;b&gt;libraries tab (2)&lt;/b&gt; and then click on &lt;b&gt;Add External Jars (3)&lt;/b&gt;.  This will allow you to browse for external jar files.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-tdLIrTDATGk/T6ldlRYYCVI/AAAAAAAABQA/DOGwBARxG78/s1600/Screen%2BShot%2B2012-05-07%2Bat%2B7.59.34%2BPM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="265" src="http://1.bp.blogspot.com/-tdLIrTDATGk/T6ldlRYYCVI/AAAAAAAABQA/DOGwBARxG78/s400/Screen%2BShot%2B2012-05-07%2Bat%2B7.59.34%2BPM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
6. &lt;b&gt;Browse&lt;/b&gt; to the directory you installed Neo4J under and look under the “libs” directory.&amp;nbsp;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-Urf0UcR6Xss/T6lf8Rn4yRI/AAAAAAAABQI/H-GaT9XMIyw/s1600/Screen+Shot+2012-05-08+at+11.03.04+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="202" src="http://1.bp.blogspot.com/-Urf0UcR6Xss/T6lf8Rn4yRI/AAAAAAAABQI/H-GaT9XMIyw/s320/Screen+Shot+2012-05-08+at+11.03.04+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&amp;nbsp;7. Click on one of the *.jar files under that directory and hit the mnemonic key to select all (Command –A on OSX, Control A on PC).  Click A&lt;b&gt;dd&lt;/b&gt; and &lt;b&gt;Finish (&lt;/b&gt;even if you're not from Finland ;-).&amp;nbsp;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&amp;nbsp;8. In Eclipse, &lt;b&gt;right click &lt;/b&gt;(Control click on PC) on the “&lt;b&gt;src&lt;/b&gt;” folder of your newly created Eclipse project and select &lt;b&gt;New -&amp;gt; Package&lt;/b&gt;.  In the dialog window, &lt;b&gt;add a new package name&lt;/b&gt;.  In the figure below, I added &lt;b&gt;com.technoraclesystems.neo4jutils&lt;/b&gt;. Hit the &lt;b&gt;Finish&lt;/b&gt;&amp;nbsp;button.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-K-_DB5T3SvE/T6lhAr9SN1I/AAAAAAAABQY/lvP-CnlhAqE/s1600/Screen+Shot+2012-05-06+at+9.25.14+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="207" src="http://1.bp.blogspot.com/-K-_DB5T3SvE/T6lhAr9SN1I/AAAAAAAABQY/lvP-CnlhAqE/s400/Screen+Shot+2012-05-06+at+9.25.14+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="" style="clear: both; text-align: left;"&gt;
9. &lt;b&gt;Right click&lt;/b&gt; (PC) or Control Click (OSX) on the newly created package name and select “&lt;b&gt;New -&amp;gt; Java Class&lt;/b&gt;”.  Provide a name for your class.  In the example below I created a public class called &lt;b&gt;HelloNeo4J. &amp;nbsp;&lt;/b&gt;Click &lt;b&gt;Finish&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;b&gt;&lt;a href="http://3.bp.blogspot.com/-3-p79w65OCM/T6lgindxSlI/AAAAAAAABQQ/FD9BX39SK_w/s1600/Screen+Shot+2012-05-06+at+9.26.31+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/-3-p79w65OCM/T6lgindxSlI/AAAAAAAABQQ/FD9BX39SK_w/s400/Screen+Shot+2012-05-06+at+9.26.31+PM.png" width="343" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
10. Add the following import statements into your project.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-QYuOhRImcUo/T6liIF3DccI/AAAAAAAABQg/WzmNB2oFsL8/s1600/Screen+Shot+2012-05-08+at+11.12.27+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="176" src="http://2.bp.blogspot.com/-QYuOhRImcUo/T6liIF3DccI/AAAAAAAABQg/WzmNB2oFsL8/s400/Screen+Shot+2012-05-08+at+11.12.27+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
11.&amp;nbsp;Next we have to create the path to the actual Neo4J instance you installed.  This is done with one line of code.  Just below the class declaration, add the following line replacing the path with your path to the Neo4J 1.8.  Note that the path on a PC will use the “\” chafacter instead of the “/” character and you will also have to escape it by placing a second “\” in front of each path separator. &amp;nbsp;THis should be the first line under your public class HelloNeo4J { statement.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-RXQ9J5kI3Gk/T6liqE3JseI/AAAAAAAABQo/kbkuHON_7mE/s1600/Screen+Shot+2012-05-08+at+11.14.46+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="32" src="http://3.bp.blogspot.com/-RXQ9J5kI3Gk/T6liqE3JseI/AAAAAAAABQo/kbkuHON_7mE/s400/Screen+Shot+2012-05-08+at+11.14.46+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
12.&amp;nbsp;For this simple tutorial, we will create 5 new class member variables as shown below on lines 19 - 23.  Note that I have closed the imports statements but Eclipse keeps the lines numbers intact.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-j3fXiBf6aeE/T6ljF9Ho78I/AAAAAAAABQw/oqvIwCRiyTs/s1600/Screen+Shot+2012-05-07+at+8.10.03+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="218" src="http://2.bp.blogspot.com/-j3fXiBf6aeE/T6ljF9Ho78I/AAAAAAAABQw/oqvIwCRiyTs/s400/Screen+Shot+2012-05-07+at+8.10.03+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
13. The variables will be used as follows in the program.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; a. &lt;b&gt;myString&lt;/b&gt; – concatenates various strings to print back to the console&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; b. &lt;b&gt;graphDB&lt;/b&gt; – an instance of Neo4J to work with&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; c. &lt;b&gt;myFirstNode&lt;/b&gt; – a neo4J node&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; d. &lt;b&gt;mySecondNode&lt;/b&gt; – a second neo4J node&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; e. &lt;b&gt;myRelationship&lt;/b&gt; – the simple relationship between the two nodes.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;14. The next item to create is a static method to declare the list of relationships  In this case we are using the word “&lt;b&gt;KNOWS&lt;/b&gt;”, which sub-types the neo4J interface &lt;b&gt;RelationshipTypes (&lt;a href="http://api.neo4j.org/1.8.M01/org/neo4j/graphdb/RelationshipType.html"&gt;API Docs&lt;/a&gt;).&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-exu3yoXxr6M/T6lkRzNjtDI/AAAAAAAABQ4/Gy0u6GF3JWA/s1600/Screen+Shot+2012-05-08+at+11.20.01+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="55" src="http://1.bp.blogspot.com/-exu3yoXxr6M/T6lkRzNjtDI/AAAAAAAABQ4/Gy0u6GF3JWA/s400/Screen+Shot+2012-05-08+at+11.20.01+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
15. A relationship type is mandatory on all relationships and is used to navigate the node space. RelationshipType is in particular a key part of the &lt;b&gt;traverser framework&lt;/b&gt; but it's also used in various relationship operations on &lt;b&gt;Node&lt;/b&gt;.   RelationshipType is designed to work well with Java 5 enumerationss. This means that it's very easy to define a set of valid relationship types by declaring an enum that implements RelationshipType and then reuse that across the application.&lt;br /&gt;
&lt;br /&gt;
16. Now we need to implement our &lt;b&gt;main() &lt;/b&gt;method.  The main method has 3 basic parts.  The first is to &lt;b&gt;instantiate myNeo4JInstance&lt;/b&gt;, an embedded instance of Neo4J.  There are then consecutive calls to &lt;b&gt;createDb()&lt;/b&gt;, &lt;b&gt;removeData()&lt;/b&gt; and &lt;b&gt;shutdown()&lt;/b&gt;. &amp;nbsp;Add the stub code for these methods.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-ipD4wirbgL0/T6niBtvCIVI/AAAAAAAABSA/xk5p0y2maeA/s1600/Screen+Shot+2012-05-08+at+8.15.27+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="212" src="http://1.bp.blogspot.com/-ipD4wirbgL0/T6niBtvCIVI/AAAAAAAABSA/xk5p0y2maeA/s400/Screen+Shot+2012-05-08+at+8.15.27+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
17.  The first method to complete will be the &lt;b&gt;createDb()&lt;/b&gt;.  Add the following lines of code to this method.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;NOTE:&lt;/b&gt; &lt;i&gt;This is a bare bones, minimal tutorial. &amp;nbsp;In production, there are several other items to take care of such as registering a shutdown hook to ensure the database stops properly. &amp;nbsp;This would normally be done at this stage. &amp;nbsp;Read more about the importance of the shutdown hook here &lt;/i&gt;-&amp;nbsp;&lt;a href="http://docs.neo4j.org/chunked/stable/tutorials-java-embedded-setup.html"&gt;http://docs.neo4j.org/chunked/stable/tutorials-java-embedded-setup.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-ofTQKZLados/T6lnOLPAhsI/AAAAAAAABRQ/6MPycqKn4So/s1600/Screen+Shot+2012-05-08+at+11.34.10+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="57" src="http://2.bp.blogspot.com/-ofTQKZLados/T6lnOLPAhsI/AAAAAAAABRQ/6MPycqKn4So/s400/Screen+Shot+2012-05-08+at+11.34.10+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;THE TRANSACTION&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
18. The first line calls the GraphDatabaseFactory method to create a new instance of the embedded Neo4J which takes one argument, the DB_PATH we set up earlier. &amp;nbsp;The second line start a new transaction named &lt;b&gt;tx.&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
19. The next line will set up a new Transaction with the identifier “tx” and calls the graphDB’s &lt;b&gt;createNode()&lt;/b&gt; method.  The transaction basically has two main parts:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;b&gt;&amp;nbsp;try
{&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Some logic&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tx.success&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
finally
{&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tx.finish();&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;b&gt;&amp;nbsp;}&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
20. The idea is that your application logic goes under the try.  All your application logic should be executed before the &lt;b&gt;tx.success()&lt;/b&gt; statement.  If all goes well, tx.success marks the transaction as successful but does not actually commit it.  This is only done when &lt;b&gt;tx.finish() &lt;/b&gt;is called.  If &lt;b&gt;tx.falure()&lt;/b&gt; is thrown during the logic phase, the database is rolled back.  This is about as simple and elegant as it gets.&lt;br /&gt;
&lt;br /&gt;
Here is how our logic will go to create a very simple graph of two musicians who know each other.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-GSwrVPw-CCc/T6lp1p9utrI/AAAAAAAABRc/LTKyBfB3bJM/s1600/Screen+Shot+2012-05-08+at+11.45.16+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="232" src="http://3.bp.blogspot.com/-GSwrVPw-CCc/T6lp1p9utrI/AAAAAAAABRc/LTKyBfB3bJM/s400/Screen+Shot+2012-05-08+at+11.45.16+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
21. Lines 44 and 45 set properties for myFirstNote while lines 46-47 do the same for mySecondNode. &amp;nbsp;Starting on line 49, a relationship is created between those two nodes using the type from our Java enum, namely "KNOWS". &amp;nbsp;This is all printed to string before &lt;b&gt;tx.success()&lt;/b&gt; is called. &amp;nbsp;&lt;b&gt;tx.finish()&lt;/b&gt; is where the transaction is actually committed.&lt;br /&gt;
&lt;br /&gt;
22. Next we will tackle the &lt;b&gt;removeData()&lt;/b&gt; method, which will be executed next in the main method.  This essentially undoes all the work we just completed.  Modify the contents as follows.  Note that this uses the exact same transaction construct as when we created the database.
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-Hmezr_wtyRo/T6lrhPAoB3I/AAAAAAAABRk/-dc4gGCL0_U/s1600/Screen+Shot+2012-05-08+at+11.52.22+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="141" src="http://1.bp.blogspot.com/-Hmezr_wtyRo/T6lrhPAoB3I/AAAAAAAABRk/-dc4gGCL0_U/s400/Screen+Shot+2012-05-08+at+11.52.22+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
23. Line 70 basically provides a start context for the transaction by looking for myFirstNode and calls the delete() method on the relationship. &amp;nbsp; &amp;nbsp;The same delete() method is then called on both other nodes.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
24. The last portion of the code to write is to shutdown the database.  Luckily once more the engineers from Neo4J have provided a great method for doing this, aptly named shutdown().&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-YjLH4lH89Vk/T6lsO2bSBYI/AAAAAAAABRs/nvGIYXoR7Rg/s1600/Screen+Shot+2012-05-08+at+11.55.37+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="78" src="http://4.bp.blogspot.com/-YjLH4lH89Vk/T6lsO2bSBYI/AAAAAAAABRs/nvGIYXoR7Rg/s320/Screen+Shot+2012-05-08+at+11.55.37+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;RUN THE PROJECT&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
25. That is it! &amp;nbsp;If you run your project, all should go well and you should see the following in your console.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-6dq-2j_UnmQ/T6lsobLIHwI/AAAAAAAABR0/ruRMdcT-fjw/s1600/Screen+Shot+2012-05-08+at+11.57.09+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="56" src="http://4.bp.blogspot.com/-6dq-2j_UnmQ/T6lsobLIHwI/AAAAAAAABR0/ruRMdcT-fjw/s400/Screen+Shot+2012-05-08+at+11.57.09+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
If you would like the source code for this project, please email me duane at nickull dot net. &amp;nbsp;Also, this is very important to remember. &amp;nbsp;&lt;b&gt;&lt;i&gt;This is a very basic tutorial.&lt;/i&gt;&lt;/b&gt; &amp;nbsp;It is very important to learn about other methods and hooks such as the synch hook, shutdown hook and how to clear the database in order to use Java safely with Neo4J. &amp;nbsp;There is a great tutorial at&amp;nbsp;&lt;a href="http://docs.neo4j.org/chunked/stable/tutorials-java-embedded.html"&gt;http://docs.neo4j.org/chunked/stable/tutorials-java-embedded.html&lt;/a&gt;&amp;nbsp;that explains more and the Java API docs are at&amp;nbsp;&lt;a href="http://api.neo4j.org/1.8.M01/"&gt;http://api.neo4j.org/1.8.M01/&lt;/a&gt;.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;b&gt;SOURCE CODE&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span class="s1"&gt;package&lt;/span&gt; com.technoraclesystems.neo4jutils;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p3"&gt;
// From the //neo4j_install_dir/&lt;span class="s2"&gt;lib&lt;/span&gt; directory&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span class="s1"&gt;import&lt;/span&gt; org.neo4j.graphdb.Direction;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span class="s1"&gt;import&lt;/span&gt; org.neo4j.graphdb.GraphDatabaseService;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span class="s1"&gt;import&lt;/span&gt; org.neo4j.graphdb.Node;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span class="s1"&gt;import&lt;/span&gt; org.neo4j.graphdb.Relationship;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span class="s1"&gt;import&lt;/span&gt; org.neo4j.graphdb.RelationshipType;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span class="s1"&gt;import&lt;/span&gt; org.neo4j.graphdb.Transaction;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span class="s1"&gt;import&lt;/span&gt; org.neo4j.graphdb.factory.GraphDatabaseFactory;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span class="s1"&gt;public&lt;/span&gt; &lt;span class="s1"&gt;class&lt;/span&gt; HelloNeo4J {&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div class="p4"&gt;
&lt;span class="s3"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="s1"&gt;private&lt;/span&gt;&lt;span class="s3"&gt; &lt;/span&gt;&lt;span class="s1"&gt;static&lt;/span&gt;&lt;span class="s3"&gt; &lt;/span&gt;&lt;span class="s1"&gt;final&lt;/span&gt;&lt;span class="s3"&gt; String &lt;/span&gt;&lt;span class="s4"&gt;DB_PATH&lt;/span&gt;&lt;span class="s3"&gt; = &lt;/span&gt;"/Users/duanenickull/Software/neo4j-community-1.8.M01/"&lt;span class="s3"&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; String &lt;span class="s4"&gt;myString&lt;/span&gt;;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; GraphDatabaseService &lt;span class="s4"&gt;graphDb&lt;/span&gt;;&lt;/div&gt;
&lt;div class="p5"&gt;
&lt;span class="s3"&gt;&amp;nbsp; &amp;nbsp; Node &lt;/span&gt;myFirstNode&lt;span class="s3"&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div class="p5"&gt;
&lt;span class="s3"&gt;&amp;nbsp; &amp;nbsp; Node &lt;/span&gt;mySecondNode&lt;span class="s3"&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; Relationship &lt;span class="s4"&gt;myRelationship&lt;/span&gt;;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &lt;span class="s1"&gt;private&lt;/span&gt; &lt;span class="s1"&gt;static&lt;/span&gt; &lt;span class="s1"&gt;enum&lt;/span&gt; RelTypes &lt;span class="s1"&gt;implements&lt;/span&gt; RelationshipType&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; {&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="s4"&gt;KNOWS&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; }&lt;/div&gt;
&lt;div class="p2"&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &lt;span class="s1"&gt;public&lt;/span&gt; &lt;span class="s1"&gt;static&lt;/span&gt; &lt;span class="s1"&gt;void&lt;/span&gt; main( &lt;span class="s1"&gt;final&lt;/span&gt; String[] args )&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; {&lt;/div&gt;
&lt;div class="p2"&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HelloNeo4J myNeoInstance = &lt;span class="s1"&gt;new&lt;/span&gt; HelloNeo4J();&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myNeoInstance.createDb();&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myNeoInstance.removeData();&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myNeoInstance.shutDown();&lt;/div&gt;
&lt;div class="p2"&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; }&lt;/div&gt;
&lt;div class="p2"&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &lt;span class="s1"&gt;void&lt;/span&gt; createDb()&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; {&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="s4"&gt;graphDb&lt;/span&gt; = &lt;span class="s1"&gt;new&lt;/span&gt; GraphDatabaseFactory().newEmbeddedDatabase( &lt;span class="s4"&gt;DB_PATH&lt;/span&gt; );&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Transaction tx = &lt;span class="s4"&gt;graphDb&lt;/span&gt;.beginTx();&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="s1"&gt;try&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="s4"&gt;myFirstNode&lt;/span&gt; = &lt;span class="s4"&gt;graphDb&lt;/span&gt;.createNode();&lt;/div&gt;
&lt;div class="p4"&gt;
&lt;span class="s3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="s4"&gt;myFirstNode&lt;/span&gt;&lt;span class="s3"&gt;.setProperty( &lt;/span&gt;"name"&lt;span class="s3"&gt;, &lt;/span&gt;"Duane Nickull, I Braineater"&lt;span class="s3"&gt; );&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="s4"&gt;mySecondNode&lt;/span&gt; = &lt;span class="s4"&gt;graphDb&lt;/span&gt;.createNode();&lt;/div&gt;
&lt;div class="p4"&gt;
&lt;span class="s3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="s4"&gt;mySecondNode&lt;/span&gt;&lt;span class="s3"&gt;.setProperty( &lt;/span&gt;"name"&lt;span class="s3"&gt;, &lt;/span&gt;"Randy Rampage, Annihilator"&lt;span class="s3"&gt; );&lt;/span&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="s4"&gt;myRelationship&lt;/span&gt; = &lt;span class="s4"&gt;myFirstNode&lt;/span&gt;.createRelationshipTo( &lt;span class="s4"&gt;mySecondNode&lt;/span&gt;, RelTypes.&lt;span class="s4"&gt;KNOWS&lt;/span&gt; );&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="s4"&gt;myRelationship&lt;/span&gt;.setProperty( &lt;span class="s5"&gt;"relationship-type"&lt;/span&gt;, &lt;span class="s5"&gt;"knows"&lt;/span&gt; );&lt;/div&gt;
&lt;div class="p2"&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="s4"&gt;myString&lt;/span&gt; = ( &lt;span class="s4"&gt;myFirstNode&lt;/span&gt;.getProperty( &lt;span class="s5"&gt;"name"&lt;/span&gt; ).toString() )&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + &lt;span class="s5"&gt;" "&lt;/span&gt; + ( &lt;span class="s4"&gt;myRelationship&lt;/span&gt;.getProperty( &lt;span class="s5"&gt;"relationship-type"&lt;/span&gt; ).toString() )&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + &lt;span class="s5"&gt;" "&lt;/span&gt; + ( &lt;span class="s4"&gt;mySecondNode&lt;/span&gt;.getProperty( &lt;span class="s5"&gt;"name"&lt;/span&gt; ).toString() );&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.&lt;span class="s4"&gt;out&lt;/span&gt;.println(&lt;span class="s4"&gt;myString&lt;/span&gt;);&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tx.success();&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="s1"&gt;finally&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tx.finish();&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; }&lt;/div&gt;
&lt;div class="p2"&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &lt;span class="s1"&gt;void&lt;/span&gt; removeData()&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; {&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Transaction tx = &lt;span class="s4"&gt;graphDb&lt;/span&gt;.beginTx();&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="s1"&gt;try&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="s4"&gt;myFirstNode&lt;/span&gt;.getSingleRelationship( RelTypes.&lt;span class="s4"&gt;KNOWS&lt;/span&gt;, Direction.&lt;span class="s4"&gt;OUTGOING&lt;/span&gt; ).delete();&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.&lt;span class="s4"&gt;out&lt;/span&gt;.println(&lt;span class="s5"&gt;"Removing nodes..."&lt;/span&gt;);&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="s4"&gt;myFirstNode&lt;/span&gt;.delete();&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="s4"&gt;mySecondNode&lt;/span&gt;.delete();&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tx.success();&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="s1"&gt;finally&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tx.finish();&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; }&lt;/div&gt;
&lt;div class="p2"&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &lt;span class="s1"&gt;void&lt;/span&gt; shutDown()&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; {&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="s4"&gt;graphDb&lt;/span&gt;.shutdown();&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.&lt;span class="s4"&gt;out&lt;/span&gt;.println(&lt;span class="s5"&gt;"graphDB shut down."&lt;/span&gt;);&amp;nbsp; &amp;nbsp;&lt;/div&gt;
&lt;div class="p1"&gt;
&amp;nbsp; &amp;nbsp; }&amp;nbsp; &amp;nbsp;&lt;/div&gt;
&lt;div class="p1"&gt;
}&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Enjoy and have fun!&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-8049104767028882723?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/8049104767028882723/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/05/third-neo4j-tutorial-getting-started.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/8049104767028882723?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/8049104767028882723?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/05/third-neo4j-tutorial-getting-started.html" title="Third Neo4J Tutorial: Getting Started with Java" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-tdLIrTDATGk/T6ldlRYYCVI/AAAAAAAABQA/DOGwBARxG78/s72-c/Screen%2BShot%2B2012-05-07%2Bat%2B7.59.34%2BPM.png" height="72" width="72" /><thr:total>3</thr:total></entry><entry gd:etag="W/&quot;DUMGSH86eyp7ImA9WhVVEUo.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-892681418182954382</id><published>2012-05-03T09:44:00.000-07:00</published><updated>2012-05-04T17:23:49.113-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-04T17:23:49.113-07:00</app:edited><title>What is LiveCycle ES</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style="font-family: inherit;"&gt;I get asked all the time – “What is LiveCycle ES”? This is a question I had to answer while at Adobe but somehow the way this question is answered now has changed from an outsider perspective. &amp;nbsp; I find myself describing it in terms of business capabilities and value rather than the technology itself. Nevertheless, if you want to know what LiveCycle is, this blog post should provide a solid background.&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: #f8f9f8; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-top-style: none; border-top-width: 0px; color: #434343; font-size: 0.875em; margin-bottom: 1.5em; margin-top: 0.5em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: -webkit-auto; vertical-align: baseline;"&gt;
&lt;span id="more-84" style="border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-top-style: none; border-top-width: 0px; font-family: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: inherit;"&gt;LiveCycle is an enterprise software system that solves problems pertaining to mass scale processing of Portable Document Format (PDF) documents. While individual users of PDF’s tend to use Adobe Acrobat or Reader for working with PDF, LiveCycle is meant to aid the processing of tens of thousands of LiveCycle PDF documents. Hence, it is an enterprise solution that anyone who currently uses paper forms should look at if they are wanting to streamline the ingestion of data from forms. Likewise, it had many modules that can mitigate problems around PDF such as document security (think of Wiki-leaks).&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div 'helvetica="" -webkit-auto;="" 0.5em;="" 0.875em;="" 0px;="" 1.5em;="" arial,="" baseline;"="" font-family:="" font-size:="" helvetica,="" margin-bottom:="" margin-top:="" neue',="" padding-bottom:="" padding-left:="" padding-right:="" padding-top:="" sans-serif;="" text-align:="" vertical-align:=""&gt;
&lt;span style="font-family: inherit;"&gt;LiveCycle itself is comprised of several components. I’ll walk through each of these components one at a time. the main component is akin to what many call an Enterprise Service Bus or ESB for short. This includes a set of common services, a common environment of service execution, a registry-repository system, workflow and storage components to name a few components. LiveCycle ES installs as a server and the server can bind to many different types of common enterprise infrastructure components including directories (LDAP for example). Below is a depiction of the server side component of LiveCycle ES.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href="http://www.uberity.com/wp-content/uploads/2012/04/What-is_LiveCycle-ES-Uberity.png" style="-webkit-transition-delay: 0s; -webkit-transition-duration: 0.2s; -webkit-transition-property: color; -webkit-transition-timing-function: ease-in-out; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-top-style: none; border-top-width: 0px; color: #cb30d1; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;img alt="What is Livecycle - the server component explained." class=" wp-image-86 aligncenter" src="http://www.uberity.com/wp-content/uploads/2012/04/What-is_LiveCycle-ES-Uberity.png" style="border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-style: initial; border-top-style: none; border-top-width: 0px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" title="What-is_LiveCycle-ES-Uberity" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style="color: #cb30d1;"&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style="font-family: inherit;"&gt;The server’s core services are all registered in a registry. &amp;nbsp;There can be orchestrated and used to perform different types of operations on PDF documents and with extensions, to also talk to mobile (wireless) devices. &amp;nbsp;At the bottom of the Service tier is a Service Provider Interface (SPI) which is where back end systems often integrate. &amp;nbsp;Systems such as SAP that might consume and produce massive amounts of data for government or finance could link in to this layer to offer PDF forms as a point of interaction with humans, then automatically accept, validate and consume the form data provided by the user. &amp;nbsp;The users themselves can access data (by requesting a PDF form or perhaps by being pushed notifications of events) via the Service Invocation Layer at the top. &amp;nbsp;This is a J2EE server and can be set up in many different ways. &amp;nbsp;One option is often to install it on site however for evaluation, I have found that using the Amazon cloud is one of the best ways for evaluation. &amp;nbsp;I have experience with this and we have found that while it takes an average first time installation of LiveCycle’s server on Red Hat Enterprise Linux with full SSL/TLS configuration and testing afterwards to take many over 2.5 days. &amp;nbsp;I highly recommend the turnkey Windows server installation however I do offer a flat fee to install this on the cloud for evaluation.&lt;/span&gt;
&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style="font-family: inherit;"&gt;So what are the core component and services LiveCycle offers? &amp;nbsp; Here is a brief rundown. &amp;nbsp;The following is not an exhaustive list, rather an example to help explain what LiveCycle is.&lt;/span&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;b&gt;Forms ES&lt;/b&gt; – this module can be licensed to automate just about every aspect of forms processing. &amp;nbsp;The ability to save money over paper forms is astounding.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;b&gt;Barcoded Forms ES&lt;/b&gt; – the barcoded forms module allows forms to be printed with a corresponding 2D bar code that can later be electronically scanned to recapture the form data electronically. &amp;nbsp;This is useful if you wanted to create something like an electronic voting system that had a fully audit able paper trail or if you needed someone to electronically fill out a form and sign it then mail it in to you for ingestion into your systems.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;Digital Signatures ES&lt;/b&gt; – since many companies use digital signatures now, often deemed more reliable and audit able than wet ink signatures, PDF documents support this feature. &amp;nbsp;The LiveCycle Server can perform massive scale operations using the Digital Signatures module like validating 100,000 signatures to ensure certificates have not been revoked.&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Output ES&lt;/b&gt; – Our put is used often for production print.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;PDF Generator ES &lt;/b&gt;– this module provides almost every possible method for generating PDF, PostScript, FXA, XDP or other related files.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Process Management ES &lt;/b&gt;– LiveCycle ES contains a full blown business process management capability.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Reader Extensions ES &lt;/b&gt;– this module of LiveCycle unlocks features in Adobe Reader that enable it to perform more like Acrobat. &amp;nbsp;These extensions are often cheaper as a solution than forcing all users to buy copies of Adobe Acrobat.&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Rights Management ES&lt;/b&gt; – Rights Management is one of our favorite modules. &amp;nbsp;You can use this to protect documents from beign distributed beyond what you want and even expire a document. The perfect solution to Wikileaks!

There are many other modules and this is only designed to show you a small cross section of LiveCycle.&lt;/div&gt;
&lt;br /&gt;
So what does LiveCycle look like when you use it? &amp;nbsp;This is actually very dependent upon your role. &amp;nbsp;There are Adminstrators and other various types of power users. &amp;nbsp;This group use the administrative console which is web based.&lt;br /&gt;
&amp;nbsp;
&lt;a href="http://www.uberity.com/wp-content/uploads/2012/04/LiveCycle-Administrators-view.png" style="-webkit-transition-delay: 0s; -webkit-transition-duration: 0.2s; -webkit-transition-property: color; -webkit-transition-timing-function: ease-in-out; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-top-style: none; border-top-width: 0px; color: #cb30d1; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;img alt="The Adobe LiveCycle ES Administrator view" class=" wp-image-88 aligncenter" height="96" src="http://www.uberity.com/wp-content/uploads/2012/04/LiveCycle-Administrators-view.png" style="border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-style: initial; border-top-style: none; border-top-width: 0px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" title="LiveCycle-Administrators-view" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Most people who work with received forms or kick off business processes will use the Workspace interface. &amp;nbsp;This is where privileged users can also receive work that has been queued up for them to work with.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;

&lt;span style="-webkit-transition-delay: 0s; -webkit-transition-duration: 0.2s; -webkit-transition-property: color; -webkit-transition-timing-function: ease-in-out; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-top-style: none; border-top-width: 0px; color: #cb30d1; font-family: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;a href="http://www.uberity.com/wp-content/uploads/2012/04/What-is-LiveCycle-Workspace.png" style="-webkit-transition-delay: 0s; -webkit-transition-duration: 0.2s; -webkit-transition-property: color; -webkit-transition-timing-function: ease-in-out; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-top-style: none; border-top-width: 0px; color: #cb30d1; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;img alt="LiveCycle Workspace" class=" wp-image-89 aligncenter" height="225" src="http://www.uberity.com/wp-content/uploads/2012/04/What-is-LiveCycle-Workspace.png" style="border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-style: initial; border-top-style: none; border-top-width: 0px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" title="What-is-LiveCycle-Workspace" width="400" /&gt;&lt;/a&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;For users who design actual PDF forms, this class will spend a lot of time in the Adobe LiveCycle Designer view. If you have ever wonder “what is LiveCycle Designer”, this is what you will see.&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="-webkit-transition-delay: 0s; -webkit-transition-duration: 0.2s; -webkit-transition-property: color; -webkit-transition-timing-function: ease-in-out; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-top-style: none; border-top-width: 0px; color: #cb30d1; font-family: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;a href="http://www.uberity.com/wp-content/uploads/2012/04/LiveCycle-Forms-Designer.png" style="-webkit-transition-delay: 0s; -webkit-transition-duration: 0.2s; -webkit-transition-property: color; -webkit-transition-timing-function: ease-in-out; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-top-style: none; border-top-width: 0px; color: #cb30d1; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;img alt="Adobe LiveCycle Designer" class=" wp-image-91 aligncenter" height="295" src="http://www.uberity.com/wp-content/uploads/2012/04/LiveCycle-Forms-Designer.png" style="border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-style: initial; border-top-style: none; border-top-width: 0px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" title="LiveCycle-Forms-Designer" width="400" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #cb30d1;"&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style="font-family: inherit;"&gt;Another class of developer users for LiveCycle will bind these PDF forms into Business Processes. &amp;nbsp;These users will spend a lot of time in LiveCycle WorkBench. &amp;nbsp;This is an eclipse based environment where business processes can be designed by using assets (such as the form above) in combination with business logic and LiveCycle Services. &amp;nbsp;This view looks similar to the graphic below.&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;
&lt;a href="http://www.uberity.com/wp-content/uploads/2012/04/liveCycle-Businesss-Process.png" style="-webkit-transition-delay: 0s; -webkit-transition-duration: 0.2s; -webkit-transition-property: color; -webkit-transition-timing-function: ease-in-out; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-top-style: none; border-top-width: 0px; color: #cb30d1; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;img alt="LiveCycle Business Process view" class=" wp-image-92  aligncenter" height="263" src="http://www.uberity.com/wp-content/uploads/2012/04/liveCycle-Businesss-Process.png" style="border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-style: initial; border-top-style: none; border-top-width: 0px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" title="liveCycle-Businesss-Process" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span style="font-family: inherit;"&gt;Finally, the Business process users will also rely on a set of services. &amp;nbsp;The view to these services are provided via the service registry. &amp;nbsp;The service registry interface is easy to use and will be the subject of future Educational Series videos that show LiveCycle Help.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;

&lt;a href="http://www.uberity.com/wp-content/uploads/2012/04/LiveCycle-Services-View.png" style="-webkit-transition-delay: 0s; -webkit-transition-duration: 0.2s; -webkit-transition-property: color; -webkit-transition-timing-function: ease-in-out; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-top-style: none; border-top-width: 0px; color: #cb30d1; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;img alt="What are LiveCycle ES Services?" class=" wp-image-93  aligncenter" height="304" src="http://www.uberity.com/wp-content/uploads/2012/04/LiveCycle-Services-View.png" style="border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-style: initial; border-top-style: none; border-top-width: 0px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" title="LiveCycle-Services-View" width="436" /&gt;&lt;/span&gt;&lt;/a&gt;

&lt;span style="font-family: inherit;"&gt;This blog post only covers the basic elements of LiveCycle ES. &amp;nbsp;To put all the pieces together, this is what a fully implemented architecture could look like.&lt;/span&gt;



&lt;a href="http://www.uberity.com/wp-content/uploads/2012/04/Screen-Shot-2012-04-09-at-8.41.13-PM.png" style="-webkit-transition-delay: 0s; -webkit-transition-duration: 0.2s; -webkit-transition-property: color; -webkit-transition-timing-function: ease-in-out; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-top-style: none; border-top-width: 0px; color: #cb30d1; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;
&lt;span style="font-family: inherit;"&gt;&lt;img alt="LiveCycle ES Architecture with Uberity Mobile Deployment" class=" wp-image-94 aligncenter" height="268" src="http://www.uberity.com/wp-content/uploads/2012/04/Screen-Shot-2012-04-09-at-8.41.13-PM.png" style="border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-style: initial; border-top-style: none; border-top-width: 0px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" title="Screen Shot 2012-04-09 at 8.41.13 PM" width="382" /&gt;&lt;/span&gt;&lt;/a&gt;


&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;As you can see, the development tools also include Java IDE’s such as Intellij and Eclipse. &amp;nbsp;I have produced a few LiveCycle tutorials on how to invoke LiveCycle from a Java environment using Eclipse and the LiveCycle SDK. &amp;nbsp;These are available at:&lt;/span&gt;

&lt;span style="font-family: inherit;"&gt;The setup video is here:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;


&lt;span style="-webkit-transition-delay: 0s; -webkit-transition-duration: 0.2s; -webkit-transition-property: color; -webkit-transition-timing-function: ease-in-out; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-top-style: none; border-top-width: 0px; color: #cb30d1; font-family: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;a href="http://blog.uberity.com/2012/03/uberity-video-education-series-livecycle-es/" style="-webkit-transition-delay: 0s; -webkit-transition-duration: 0.2s; -webkit-transition-property: color; -webkit-transition-timing-function: ease-in-out; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-top-style: none; border-top-width: 0px; color: #cb30d1; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" target="_blank" title="Uberity LiveCycle ES java invocation"&gt;http://www.uberity.com/2012/03/uberity-video-education-series-livecycle-es/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;and a video of how to migrate from EJB invocation to SOAP is here:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;


&lt;span style="-webkit-transition-delay: 0s; -webkit-transition-duration: 0.2s; -webkit-transition-property: color; -webkit-transition-timing-function: ease-in-out; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-top-style: none; border-top-width: 0px; color: #cb30d1; font-family: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;a href="http://blog.uberity.com/2012/04/tutorial-invoke-livecycle-es3-using-soap/" style="-webkit-transition-delay: 0s; -webkit-transition-duration: 0.2s; -webkit-transition-property: color; -webkit-transition-timing-function: ease-in-out; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-top-style: none; border-top-width: 0px; color: #cb30d1; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" target="_blank" title="Invoking LiveCycle ES3 using SOAP"&gt;http://www.uberity.com/2012/04/tutorial-invoke-livecycle-es3-using-soap/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;Also shown above is the fact that third parties can develop their own functionality around LiveCycle ES. &amp;nbsp;I've decided to spend some time building mobile interactions that integrate with the Adobe LiveCycle ES3 platform. &amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;The next time you hear someone ask “What is LiveCycle”, this is a blog postI hope will help others answer that question.&lt;/span&gt;

&lt;span style="font-family: inherit;"&gt;As with all our posts, if you do not feel your questions are answered here or want to follow up, please contact us at duane at nickull dot net for more information. &amp;nbsp;My experience can save your company money. I can show you how a forms initiative will be more successful on LiveCycle ES than any other platform. &amp;nbsp;Whether it be a PDF form, HTML5 or custom native iOS application, my friends and I are here to help.&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-892681418182954382?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/892681418182954382/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/05/what-is-livecycle-es.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/892681418182954382?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/892681418182954382?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/05/what-is-livecycle-es.html" title="What is LiveCycle ES" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;C0ANQn44eip7ImA9WhVWFk4.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-4131698646603107310</id><published>2012-04-27T06:24:00.000-07:00</published><updated>2012-04-28T09:49:53.032-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-28T09:49:53.032-07:00</app:edited><title>A Tribute to Todd Simko</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
I was planning on continuing my series of blog posts today on Neo4J however I was saddened yesterday but the news of the death of Todd Simko. &amp;nbsp;Todd was once the members of one of my favorite bands (Pure) and also someone whom I had the joy of working with in the studio. &amp;nbsp;This photo was taken the last time we were together with John Webster recording our second studio album at mushroom studios. &amp;nbsp;Todd Simko has a credit on 22nd Century's 2011 "Where's Howie!??" but the words "mastered by Tom Simko" just don't do him justice.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-NuE1JOWutk0/T5nz38a7sTI/AAAAAAAABPI/TiZ2x8NNdMg/s1600/Screen+Shot+2012-04-26+at+4.03.29+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="330" src="http://3.bp.blogspot.com/-NuE1JOWutk0/T5nz38a7sTI/AAAAAAAABPI/TiZ2x8NNdMg/s400/Screen+Shot+2012-04-26+at+4.03.29+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;/div&gt;
&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;b&gt;Left to right - John Webster, myself (Duane Chaos) and the late Todd Simko.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-size: x-small;"&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I clearly remember this day. &amp;nbsp;We were trying to do the final mixing of the song Runaway and John kept blowing fuses and getting frustrated. &amp;nbsp; The studio runner (Alexis) went out and came back with some fine French wine which we made short work of. &amp;nbsp; I distinctly remember John Webster repeating "&lt;b&gt;&lt;i&gt;keep that stuff away from the mixing console you two&lt;/i&gt;&lt;/b&gt;" about every five minutes. &amp;nbsp; These were good times. &amp;nbsp;Just guys, hanging out doing music, there was no time, we were all in the present and enjoying that special moment. &amp;nbsp;Todd, may you rest in peace. &amp;nbsp;Your inspiration to so many of us will never die. &amp;nbsp;Thank you for the gifts and memories you gave us both in person and on stage. &amp;nbsp; &amp;nbsp;Your style inspires today and your friendliness is infectious. &lt;br /&gt;
&lt;br /&gt;
Addendum: &amp;nbsp;Todd's wife issued a statement which I will repeat here:&lt;br /&gt;
&lt;br /&gt;
"Minna Simko has offered the following statement on Facebook concerning her husband's passing:&lt;br /&gt;
&lt;br /&gt;
"Todd may your soul be finally at peace. You are not only the most fantastic father and husband one could have, but also you were also a great friend, musician, teacher, guide, mentor and music engineer.&lt;br /&gt;
&lt;br /&gt;
"The music community has suffered now a great loss and talent. Not only did you touch all the hearts of people in music but also in the lives of family, my peers and especially our daughters friends and family. You will forever remain close by in our hearts and you will be greatly missed by all."&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-4131698646603107310?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/4131698646603107310/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/04/tribute-to-todd-simko.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/4131698646603107310?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/4131698646603107310?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/04/tribute-to-todd-simko.html" title="A Tribute to Todd Simko" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-NuE1JOWutk0/T5nz38a7sTI/AAAAAAAABPI/TiZ2x8NNdMg/s72-c/Screen+Shot+2012-04-26+at+4.03.29+PM.png" height="72" width="72" /><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;CUYARn45cCp7ImA9WhVWFUg.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-8802398404066736074</id><published>2012-04-26T14:08:00.000-07:00</published><updated>2012-04-27T11:59:07.028-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-27T11:59:07.028-07:00</app:edited><title>NEO4J - Installing, Running and the Shell!</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Yesterday I write &lt;a href="http://technoracle.blogspot.ca/2012/04/getting-started-with-neo4j-beginners.html"&gt;a brief intro to Neo4J&lt;/a&gt; and promised to write more. &amp;nbsp;Yesterday's post focused in on what a Graph Database is. &amp;nbsp;Today we'll actually download and install the software itself. &amp;nbsp;First, and I know you all hate this part, please make sure you have the pre-requisites installed. &amp;nbsp;The people who write most software today all take time to document this so you get to have a better experience.&lt;br /&gt;
&lt;br /&gt;
For reference, the machine I am on is a Mac Pro, 12 GB RAM and running OSX 10.7.3. It has 2 X 3 GHz Quad Core Intel Xeon processors so it should make short work of anything I through at it. &amp;nbsp;My machine is Unix based so please modify the instructions based on your operating system. &amp;nbsp;Linux users will be roughly the same.&lt;br /&gt;
&lt;br /&gt;
1. Grab your browser (Chrome of course) and point it at&amp;nbsp;&lt;a href="http://neo4j.org/download//"&gt;http://neo4j.org/download/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
2. There are a variety of options open. &amp;nbsp;Unless you want to start with the über - enterprise version or &lt;a href="https://github.com/neo4j/community"&gt;build Neo4J Community from GitHub source&lt;/a&gt;, simply grab the latest stable version. &amp;nbsp;In this case it is the Community (ie "free") version 1.7. &amp;nbsp;If you have a slow connection, use the time wisely to view&lt;a href="http://video.neo4j.org/YMD/need-a-graph-database-like-twitter-is-built-on-neo4j-delivers-emileifrem-tells-why/"&gt; Emil's video&lt;/a&gt; while the download completes. &amp;nbsp;You will have to choose a location for the download.&lt;br /&gt;
&lt;br /&gt;
3. Unpack the source with whatever tools your Operating System provides. &amp;nbsp;Once unpacked, it will look something like this:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-yUEMHPs23I8/T5mb2lssuYI/AAAAAAAABN4/AuXGnT_tN3I/s1600/Screen+Shot+2012-04-26+at+10.33.01+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="196" src="http://3.bp.blogspot.com/-yUEMHPs23I8/T5mb2lssuYI/AAAAAAAABN4/AuXGnT_tN3I/s320/Screen+Shot+2012-04-26+at+10.33.01+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
4. &amp;nbsp;To start Neo4J, it is quite easy. &amp;nbsp;Grab a terminal (Shell) and navigate to the &lt;b&gt;&amp;lt;neo4J_Home_Directory&amp;gt;/bin&lt;/b&gt; directory and type in &lt;b&gt;&lt;i&gt;sh ./neo4j &lt;/i&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; This will give you a list of available options for starting the database as shown below:&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-4XZUV8Wd8vk/T5mfhkvq1nI/AAAAAAAABOE/UXldTAsnmPg/s1600/Screen+Shot+2012-04-26+at+12.18.11+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="90" src="http://2.bp.blogspot.com/-4XZUV8Wd8vk/T5mfhkvq1nI/AAAAAAAABOE/UXldTAsnmPg/s400/Screen+Shot+2012-04-26+at+12.18.11+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
5. These are very &amp;nbsp;simple and self explanatory. &amp;nbsp;To start neo4J, simply type in&amp;nbsp;&lt;b&gt;&lt;i&gt;sh ./neo4j start&amp;nbsp;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-Hp-rbAMRlec/T5mf5MAcbwI/AAAAAAAABOM/A7kdYO7ojYk/s1600/Screen+Shot+2012-04-26+at+12.19.43+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="93" src="http://4.bp.blogspot.com/-Hp-rbAMRlec/T5mf5MAcbwI/AAAAAAAABOM/A7kdYO7ojYk/s400/Screen+Shot+2012-04-26+at+12.19.43+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
6. There are two ways to verify the neo4j instance has started. &amp;nbsp;the first is to type in the command&amp;nbsp;&lt;b style="font-style: italic;"&gt;sh ./neo4j status &lt;/b&gt;which gives you a simple acknowledgement that it has started and the process ID (Unix based systems). &amp;nbsp;A second, more verbose set of details, can be retrieved by typing in the command&amp;nbsp;&lt;b style="font-style: italic;"&gt;sh ./neo4j info &amp;nbsp; &lt;/b&gt;This gives you a wealth of information including every jar in the CLASSPATH, JAVA_OPTS (options), the environmental variable JAVA_HOME, the NEO4J_INSTANCE which is a path to the current instance, the server PORT it is using over HTTP and the NEO4J_HOME environmental variable as well as the current JDK value. &amp;nbsp;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-yKhtpqQHgQw/T5mhEpx7aeI/AAAAAAAABOU/hY4e0SQjQnA/s1600/Screen+Shot+2012-04-26+at+12.23.35+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="80" src="http://1.bp.blogspot.com/-yKhtpqQHgQw/T5mhEpx7aeI/AAAAAAAABOU/hY4e0SQjQnA/s400/Screen+Shot+2012-04-26+at+12.23.35+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Validating the port is fairly easy. &amp;nbsp;Just grab your handy browser (Chrome please) and go to &lt;a href="http://localhost:7474/"&gt;http://localhost:7474&lt;/a&gt; (unless you've already changed the configuration file to a different port). &amp;nbsp;YOu should see a newly initalized databased as such:&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-PIIw02kX0-I/T5mnokzPp8I/AAAAAAAABOo/uAs8uKUXIDo/s1600/Screen+Shot+2012-04-26+at+12.51.25+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="186" src="http://2.bp.blogspot.com/-PIIw02kX0-I/T5mnokzPp8I/AAAAAAAABOo/uAs8uKUXIDo/s400/Screen+Shot+2012-04-26+at+12.51.25+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
So where can we configure these? &amp;nbsp;Let's start with the JAVA_OPTS. &amp;nbsp;YOu will see a line that looks like this&amp;nbsp;&lt;b style="font-style: italic;"&gt;-Dorg.neo4j.server.properties=conf/neo4j-server.properties &lt;/b&gt;The first part of this configuration starting with -Dorg.neo... is specified within a file that is under the /conf directory named neo4j-wrapper.conf. &amp;nbsp;The JVM parameters are all specified here but are actually pointers to other configuration files. &amp;nbsp;If you open this fine, you will see the same lines here:&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;b&gt;&lt;i&gt;wrapper.java.additional.1=-Dorg.neo4j.server.properties=conf/neo4j-server.properties&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;b&gt;&lt;i&gt;wrapper.java.additional.2=-Djava.util.logging.config.file=conf/logging.properties&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;b&gt;&lt;i&gt;wrapper.java.additional.3=-Dfile.encoding=UTF-8&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Note that on OSX, the Java Version simply says "&lt;b&gt;&lt;i&gt;CurrentJDK&lt;/i&gt;&lt;/b&gt;" which is pretty bloody useless. &amp;nbsp;If you really want to know the JDK version, use your command window and type in &lt;b style="font-style: italic;"&gt;java -version. &lt;/b&gt;&amp;nbsp;In my case I am running&lt;/div&gt;
&lt;b&gt;&lt;i&gt;&amp;nbsp;java version "1.6.0_31"&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;b&gt;&lt;i&gt;Java(TM) SE Runtime Environment (build 1.6.0_31-b04-415-11M3635)&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;b&gt;&lt;i&gt;Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01-415, mixed mode)&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Within the neo4j-wrapper.conf there are several properties such as the initial and maximum &amp;nbsp;java heap sizes along with some warnings. &amp;nbsp;It is probably a good idea to become familiar with the warnings before you go about tinkering with these settings. &amp;nbsp;The one I found useful was to be able to uncomment line 10 to allow garbage collection logging. &amp;nbsp;This data can be&amp;nbsp;valuable&amp;nbsp;in determining what is going on under the hood so I change it with every install.&amp;nbsp;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
This information is important for the next steps when we will embed neo4J into an Eclispe project. &amp;nbsp;For today, let's play with our new Neo4J instance. &amp;nbsp;In order to get the neo4j shell, simply type in the command (under the same&amp;nbsp;&lt;b&gt;&amp;lt;neo4J_Home_Directory&amp;gt;/bin&lt;/b&gt;&amp;nbsp;directory) &lt;b&gt;&lt;i&gt;sh ./neo4j-shell&amp;nbsp;&lt;/i&gt;&lt;/b&gt;&amp;nbsp;This will now enable you to look around at some of the available options. &amp;nbsp;Type in &lt;b&gt;&lt;i&gt;help&lt;/i&gt;&lt;/b&gt; for a list of commands.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-ECegID2jZQE/T5mjMPp1I3I/AAAAAAAABOc/PrX5PR4_3l8/s1600/Screen+Shot+2012-04-26+at+12.33.44+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="86" src="http://3.bp.blogspot.com/-ECegID2jZQE/T5mjMPp1I3I/AAAAAAAABOc/PrX5PR4_3l8/s400/Screen+Shot+2012-04-26+at+12.33.44+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
The shell commands are all well documented at&amp;nbsp;&lt;a href="http://docs.neo4j.org/chunked/stable/shell-starting.html"&gt;http://docs.neo4j.org/chunked/stable/shell-starting.html&lt;/a&gt;. &amp;nbsp;Note that the shell is configured and enabled from the configuration of the Neo4j kernel (again in the /conf folder). &amp;nbsp;Okay - enough foreplay. &amp;nbsp;Let's make some nodes! &amp;nbsp;Build your first few nodes ny using the mknode command. &amp;nbsp;I can make two nodes, one with my name and one with my wife's name as such.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;b&gt;&lt;i&gt;neo4j-sh (0)$ mknode Duane&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;b&gt;&lt;i&gt;neo4j-sh (0)$ mknode Bettina&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
If I go back and check the browser aimed at &lt;a href="http://localhost:7474/"&gt;http://localhost:7474&lt;/a&gt; it will confirm that now in addition to the root node, there are two additional nodes for a total of three. &amp;nbsp;Congratulations. &amp;nbsp;You have just made some nodes! &amp;nbsp;So how do you get to those nodes? &amp;nbsp;This is why I started the documentation on Technoracle. &amp;nbsp;I found it confusing using the neo4j-shell since almost every command resulted in an empty query until I read the documentation (an engineer's last resort). &amp;nbsp;The GraphDB works almost exactly like a unix filesystem which means your learning curve should be tens times faster (assuming you're familiar with unix commands). &amp;nbsp;When you invoke the shell, you are basically in the "~" directory or "me" as the neo4J folks call it. &amp;nbsp;To traverse somewhere (to Duane or Bettina for example, you need to make a relationship using the mkrel command. &amp;nbsp;It is very simple. &amp;nbsp;Type in the following,&amp;nbsp;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;b&gt;mkrel -ct KNOWS Duane&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
Now let's dissect this. &amp;nbsp;mkrel is the command to make a relationship. &amp;nbsp;There are two variables "-ct". &amp;nbsp;C should be supplied if you are creating a new node (the wording is a bit rough to read using the "man pages and it took a while to figure out that a a relationship is basically a node as well.&amp;nbsp;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
If you want to nuke the graph, you can also do this using rmnode to delete nodes and rmrel to delete relationships. &amp;nbsp;rmnode comes with a nasty little flag -f which has the same effect as the unix command "su rm -r *" which removes everything. &amp;nbsp; As you probably guessed, using rmnode with the -f flag was irresistable and I had to try it so I typed in &lt;b style="font-style: italic;"&gt;rmnode -f. &amp;nbsp;&lt;/b&gt;Now beware, this removes all including the current node. &amp;nbsp;Once you run this and try an ls, the return will be a question mark since there is no current node (or at least it didn't seem to be reachable. &amp;nbsp;After running this you get:&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;b&gt;&lt;i&gt;neo4j-sh (?)$ ls&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;b&gt;&lt;i&gt;Node &amp;lt;ref&amp;gt; not found&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
To fix this, simply create a new root current node. &amp;nbsp;You can even use JSON to give it a more robust meaningful name.&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;b&gt;&lt;i&gt;neo4j-sh (?)$ mknode --cd --np "{'name':'me'}"&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;b&gt;&lt;i&gt;neo4j-sh (me,10)$&amp;nbsp;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
Don't ask me why I do stuff like this. &amp;nbsp;I think I just like to explore what is possible and how to recover before doing any serious work. &amp;nbsp;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
Earlier we created nodes that had no relationships we could traverse. &amp;nbsp;Now we will use a different syntax to create new nodes we can reach. &amp;nbsp;This easier way to create new nodes you can traverse to using the shell is to use the mkrel command. &amp;nbsp;This command can actually create the new nodes as well as the relationship between the current and newly created node. &amp;nbsp;To do this, type in the following:&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;b style="font-style: italic;"&gt;mkrel -t LOVES neo4j &lt;/b&gt;and then type in &lt;b&gt;&lt;i&gt;ls&lt;/i&gt;&lt;/b&gt; into the prompt after that has finished.&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-5iLDBrVYjF0/T5m1g2FkVcI/AAAAAAAABO8/etoFiSMzC4w/s1600/Screen+Shot+2012-04-26+at+1.50.56+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="106" src="http://4.bp.blogspot.com/-5iLDBrVYjF0/T5m1g2FkVcI/AAAAAAAABO8/etoFiSMzC4w/s400/Screen+Shot+2012-04-26+at+1.50.56+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Ta-da! &amp;nbsp;You can now traverse the node using the trav command. &amp;nbsp;The traverse command is very complex and can build very powerful statements and filters. &amp;nbsp;For this lesson, all we want to do is go from the current node to the node we just created (node 11) in this case. &amp;nbsp;To do this, use the syntax&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;b&gt;&lt;i&gt;trav -o depth -r LOVES:both,HAS_.*:incoming&amp;nbsp;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;i style="font-weight: bold;"&gt;trav = &lt;/i&gt;traverse&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;b&gt;&lt;i&gt;-o depth&lt;/i&gt;&lt;/b&gt; = the traversal order. &amp;nbsp;The only possible values are BREADTH_FIRST DEPTH_FIRST breadth or depth. &amp;nbsp;Think of these as controls over a funnel - very wide and shallow or very narrow and deep)&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;b&gt;&lt;i&gt;-r LOVES:both&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;,HAS_.*:incoming&lt;/i&gt;&lt;/b&gt;= the r flag sets the relationship type. &amp;nbsp;In this case apparently (me) - [:LOVES] -&amp;gt; (11) or I love node 11. &amp;nbsp;To be honest, I might delete it right after this tutorial as I am already growing tired of this &amp;nbsp;relationship ;-) &amp;nbsp; I am somewhat not clear on the "&lt;b&gt;:both,HAS_.*:incoming&lt;/b&gt;" however I believe it specifies that the traversal is to disregard the fact it is incoming or outgoing.&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
Okay - enough for today boys and girls. &amp;nbsp; More soon. &amp;nbsp;In the meantime, please do try this at home!&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-8802398404066736074?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/8802398404066736074/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/04/neo4j-installing-running-and-shell.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/8802398404066736074?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/8802398404066736074?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/04/neo4j-installing-running-and-shell.html" title="NEO4J - Installing, Running and the Shell!" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-yUEMHPs23I8/T5mb2lssuYI/AAAAAAAABN4/AuXGnT_tN3I/s72-c/Screen+Shot+2012-04-26+at+10.33.01+AM.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;C0EFQ3Y8fip7ImA9WhVWFEw.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-6530327150188961166</id><published>2012-04-25T20:40:00.000-07:00</published><updated>2012-04-25T20:40:12.876-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-25T20:40:12.876-07:00</app:edited><title>Getting started with Neo4J - a Beginners Tutorial</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
I've worked with databases for a long time. &amp;nbsp;Recently, a came across neo4J and cannot believe how awesome it is. &amp;nbsp;I want to devote this blog post to helping people get it installed and the fun you can have.&lt;br /&gt;
&lt;br /&gt;
First, a little bit abut Graph Databases. &amp;nbsp;Graph databases are substantially different than RDBMS systems. As one person puts it, if you write, you can write code, if you can draw you can draw graphs. &amp;nbsp;It is really that simple. &amp;nbsp;A graph database starts with a root node. &amp;nbsp;The database is comprised of nodes, relationships, indexes and properties. &amp;nbsp;A simplification of this is the following chart:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-QR0Nutm2Lrk/T5i7nz8aCqI/AAAAAAAABNY/ZaDfMkBD6c0/s1600/Screen+Shot+2012-04-25+at+8.05.28+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="315" src="http://2.bp.blogspot.com/-QR0Nutm2Lrk/T5i7nz8aCqI/AAAAAAAABNY/ZaDfMkBD6c0/s400/Screen+Shot+2012-04-25+at+8.05.28+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
A simple graph database.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
A graph database keeps track of nodes and relationships as well as indexes (we'll get into that later). &amp;nbsp;For now think of this in kinderSpiele terms. &amp;nbsp;A graph is simply a drawing that show how things are connected. &amp;nbsp;Each connection might have a name. &amp;nbsp;each node might also have a name. &amp;nbsp;Here is a simplistic view of a graph.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-JGSxfgbc5T4/T5i8xCqyOTI/AAAAAAAABNg/xz1Qsty1U-c/s1600/Screen+Shot+2012-04-25+at+8.10.16+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="157" src="http://1.bp.blogspot.com/-JGSxfgbc5T4/T5i8xCqyOTI/AAAAAAAABNg/xz1Qsty1U-c/s320/Screen+Shot+2012-04-25+at+8.10.16+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
In this simple graph, Duane - [LOVES] -&amp;gt; Neo4j, the latter of this has a property of being binary. &amp;nbsp;Now&amp;nbsp;psychology&amp;nbsp;aside (this in fact would be an unhealthy physical relationship), this captures several important concepts yet leaves out several very relevant ontological answers.  Relationships organize Nodes into structures that allow a Graph to resemble many natural structures including a List, a Tree, a Map, or a compound Entity – any of which can be combined into yet more complex, richly inter-connected structures. &amp;nbsp;It is obvious that Duane loves Neo4J but here are some questions that are left unanswered.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
1. Does neo4J love Duane back?&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
2. Is Neo4J even aware that Duane loves it?&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
3. Is Duane able to see that Neo4J is in fact a binary node and probably not suited for a proper relationship?&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
All are possible but undefined in this scenario. &amp;nbsp; &amp;nbsp;That is why the next concept that must be introduced is a traversal mechanism. &amp;nbsp;Traversals allow navigation of graphs via statements that can select exact routing between many of these objects. &amp;nbsp;THese can be written in many languages such as cypher and allow a filter to be applied to find a path though the nodes and relationships to find answers to certain questions. &amp;nbsp;Such a question in the real world may be "How many friends do I have who enjoy eating spumonte ice crean while reading up on graph databases on Technoracle". &amp;nbsp;In reality that subset of the population is likely very small but when applied to something like Facebook or Google Plus, become highly relevant.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Here is a depiction of how traversals work. Again this is&amp;nbsp;rudimentary.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-jU9-v3992AU/T5jBbPOCinI/AAAAAAAABNs/zq2cqerVIPU/s1600/Screen+Shot+2012-04-25+at+8.30.23+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="306" src="http://4.bp.blogspot.com/-jU9-v3992AU/T5jBbPOCinI/AAAAAAAABNs/zq2cqerVIPU/s400/Screen+Shot+2012-04-25+at+8.30.23+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Again,. this is very simple but you get the idea. &amp;nbsp;The traversal mechanism can take a set of instructions, then use if to find data it requires very efficiently. &amp;nbsp;An example might be that you use Facebook. &amp;nbsp;When you log in, it starts with the node of "you". &amp;nbsp;As the page loads, the javaScript on the page creates a backend query that says find all the nodes that are related to the user down to a layer of X deep. &amp;nbsp;Neo4J's Java API supports depth limits making it idea for this sort of operation. &amp;nbsp;Unlike an RDBSM system where an entire table might have to be walked, Neo4J allows you to set limits and take actions based on the current state. &amp;nbsp; Paths are predefined statements, often written in Cypher.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Keeping with the Facebook example, an INDEX is often a useful tool. &amp;nbsp;When a certain node is required a a start point over and over again, you can use it as an index to start with. &amp;nbsp;By contract, RDBS systems use a table and rows lookup to find the startpoint. &amp;nbsp;The index is simply a contextual based starting point. &amp;nbsp;Indexes can map directly to a node, a relationship or backwards from a property. &amp;nbsp;Instead of saying:&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
SELECT * FROM TABLES WHERE * EQUALS "Duane Nickull".... &amp;nbsp;you can tell a graphDB to "get Duane Nickull" then traverse outwards from him. &amp;nbsp;Simple and efficient.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Neo4J is a commercially supported, free and open source graph database that is going to rock the world. &amp;nbsp;Trust me on this. &amp;nbsp;Next post will be getting started. &amp;nbsp;All the sordid details (at least 3 easy steps) it takes to get up and running.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-6530327150188961166?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/6530327150188961166/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/04/getting-started-with-neo4j-beginners.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/6530327150188961166?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/6530327150188961166?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/04/getting-started-with-neo4j-beginners.html" title="Getting started with Neo4J - a Beginners Tutorial" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-QR0Nutm2Lrk/T5i7nz8aCqI/AAAAAAAABNY/ZaDfMkBD6c0/s72-c/Screen+Shot+2012-04-25+at+8.05.28+PM.png" height="72" width="72" /><thr:total>4</thr:total></entry><entry gd:etag="W/&quot;DUcMQXw6eyp7ImA9WhVWEko.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-1781117279345165315</id><published>2012-04-24T07:18:00.000-07:00</published><updated>2012-04-24T07:18:00.213-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-24T07:18:00.213-07:00</app:edited><title>Renaissance Hotels Censoring their Facebook page</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Yesterday I made a &lt;a href="http://technoracle.blogspot.ca/2012/04/why-i-boycott-swsx-and-urge-you-do-to.html"&gt;post on the unfair and immoral practice of using a company like SonicBids&lt;/a&gt; that gets a monopoly on a music event causing all acts that want to play there to "PayP" to apply to play at the event. &amp;nbsp;They get exclusive rights on events like SXSW. &amp;nbsp;I found to my horror that they were trying to move into Canada via an event at the Renaissance hotel here. &amp;nbsp;I worded a polite but factual post to help them understand the system they &amp;nbsp;were promoting. &amp;nbsp;It got posted but was censored by the hotel chain webmaster. &amp;nbsp;here is the link to the event:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.sonicbids.com/Opportunity/OpportunityView.aspx?opportunity_id=107186"&gt;http://www.sonicbids.com/Opportunity/OpportunityView.aspx?opportunity_id=107186&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Here is a screenshot before being censored:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-uyoSpmmHb1I/T5YNHBVrptI/AAAAAAAABNE/Sf0Wb-qZF8Y/s1600/Screen+Shot+2012-04-23+at+7.11.57+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://3.bp.blogspot.com/-uyoSpmmHb1I/T5YNHBVrptI/AAAAAAAABNE/Sf0Wb-qZF8Y/s640/Screen+Shot+2012-04-23+at+7.11.57+PM.png" width="369" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
yet an hour later it is gone:&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-vw-Wb9toH2U/T5YNSvnqt3I/AAAAAAAABNM/EAwlQNM-gYo/s1600/Screen+Shot+2012-04-23+at+7.12.19+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://4.bp.blogspot.com/-vw-Wb9toH2U/T5YNSvnqt3I/AAAAAAAABNM/EAwlQNM-gYo/s640/Screen+Shot+2012-04-23+at+7.12.19+PM.png" width="403" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
Censorship to prevent the world from knowing you are supporting an business model that takes money unfairly out of the hands on musicians. &amp;nbsp;Yes - no one will ever figure that out. &amp;nbsp;Whoops! &amp;nbsp;#SHAME!&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-1781117279345165315?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/1781117279345165315/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/04/renaissance-hotels-censoring-their.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/1781117279345165315?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/1781117279345165315?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/04/renaissance-hotels-censoring-their.html" title="Renaissance Hotels Censoring their Facebook page" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-uyoSpmmHb1I/T5YNHBVrptI/AAAAAAAABNE/Sf0Wb-qZF8Y/s72-c/Screen+Shot+2012-04-23+at+7.11.57+PM.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D08ARnw8eCp7ImA9WhVWF0k.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-2298567339309248980</id><published>2012-04-23T10:05:00.000-07:00</published><updated>2012-04-29T17:30:47.270-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-29T17:30:47.270-07:00</app:edited><title>Why I boycott SXSW and Urge You do to the Same</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
As both a tech guy and a musician, I have made a decision to boycott SXSW. &amp;nbsp;They use an evil and monopolistic business practice to force bands to PAY MONEY to apply to play music using a service called &lt;a href="http://www.sonicbids.com/"&gt;Sonicbids&lt;/a&gt;. &amp;nbsp; If you are a musician, your trade (performing music) is your primary source of income hence it is your "work". &amp;nbsp; One year we (&lt;a href="http://www.22ndcenturyofficial.com/index.html"&gt;22nd Century&lt;/a&gt;) decided to apply to play given we had fairly good radio audience in Texas and also had lots of MySpace and other fans in the area. The tech/developer crowd is also one of our primary audiences. &amp;nbsp; &amp;nbsp;We went to the SXSW website and it read something to the effect of:&lt;br /&gt;
&lt;br /&gt;
"&lt;i&gt;All artists interested in performing at SXSW must complete an online application through our exclusive online musical event submission platform Sonicbids.&lt;/i&gt;" followed by the sentence "&lt;i&gt;You'll only hear from us before that time if we encounter a problem or require more information.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Source:&amp;nbsp;&lt;a href="http://sxsw.com/music/shows/faq"&gt;http://sxsw.com/music/shows/faq&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
To &lt;b&gt;apply to work your trade&lt;/b&gt;, indie artists are forced to &lt;b&gt;hand over $40.00&lt;/b&gt;. &amp;nbsp;The facts can be verified at &lt;a href="http://www.sonicbids.com/Opportunity/OpportunityView.aspx?opportunity_id=104875&amp;amp;account_id=0&amp;amp;rfl=19"&gt;this web page on Sonicbids&lt;/a&gt;. &amp;nbsp;Once you apply (yes we did this once even though it is morally offensive), it is not transparent. &amp;nbsp; You apply along with thousands of other artists and hear nothing back. &amp;nbsp; That's it. &amp;nbsp;They took your money and you got nothing in return. &amp;nbsp;There is no clear statement about how many SonicBids artists actually get to play at SXSW. &amp;nbsp;It says they are exclusive, but I find it hard to believe guys like Duff McKagan, a former music panelist at SXSW and good friends with my friends Randy Rampage and Zippy Pinhead, would pay this fee. &amp;nbsp; Is it possible that SXSW hires the bands they want anyways and maybe gives X remaining slots to SonicBids hires? &amp;nbsp;No one knows the truth other than SonicBids and SXSW.&lt;br /&gt;
&lt;br /&gt;
All of a sudden you see an announcement &lt;a href="http://www.npr.org/blogs/allsongs/2012/03/01/147449656/npr-music-announces-sxsw-line-up?sc=tw&amp;amp;cc=twmp"&gt;like this one&lt;/a&gt;&amp;nbsp;from NPR music saying that Fiona Apple, Bruce Springsteen and others are playing.&amp;nbsp;Let me ask you some basic questions.&lt;br /&gt;
&lt;br /&gt;
Do you think they (Bruce and Fiona) paid $40.00 to apply to work at SXSW? &amp;nbsp;Would you pay your boss $40.00 every day to ask him if you could work and the response might either be "yes" or complete silence?&lt;br /&gt;
&lt;br /&gt;
I personally answer "no" to both of these questions. &amp;nbsp;Read the statement above again. &amp;nbsp;It says "&lt;b&gt;&lt;i&gt;exclusive&lt;/i&gt;&lt;/b&gt;". &amp;nbsp; Here is an open question to anyone. &amp;nbsp;Have you ever seen a band play at SXSW through another vehicle that SonicBids? &amp;nbsp;If so, please tell us about it.&lt;br /&gt;
&lt;br /&gt;
So what is going on here? &amp;nbsp;Simple. &amp;nbsp;This is illegal in most countries. &amp;nbsp;We are musicians. &amp;nbsp;Granted I do not need to personally make money on music but many of my dear friends to. &amp;nbsp;This system is shameful and it is not&amp;nbsp;conducive&amp;nbsp;of fair trade. &amp;nbsp;SXSW should immediately to the right thing and move to a crowd sourced model which musicians are allowed to freely enter and the system is completely transparent. &amp;nbsp;This closed doors, money grab is a slap in the face to the artists, many of who are trying to simply survive while pursuing their passion in music. &amp;nbsp;Who loses? &amp;nbsp;Everyone except SonicBids. &amp;nbsp;You the music fans at SXSW do not get to vote on who you want to see, the musicians lose money and get noting in return and SXSW makes the ultimate choices. SXSW does not get the best customer experience from those who attend, hence also loses. &amp;nbsp;I am not sure if SonicBids kicks back any money to SXSW and would love to see the financial statements. &amp;nbsp;Oh, I guess they are not for public eyes.&lt;br /&gt;
&lt;br /&gt;
Wait! &amp;nbsp;This gets worse. &amp;nbsp;As &lt;a href="http://austin2012.sched.org/event/5b2dfeac05343db1c973b4b4b09e470e"&gt;noted by Jeff Price, the founder of TuneCore&lt;/a&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;"Who's benefiting from it? All the wrong people," stresses Jeff Price, founder and CEO of TuneCore, a digital music distribution service. "The traditional music industry now has a new income stream that is based on other people's music and copyrights being exploited and sold. It is the largest global scam that exists in the music industry today, depriving artists and songwriters of hundreds of millions of dollars."&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Jeff nailed it (thank you Jeff). &amp;nbsp;Not only are the artists getting their music downloaded for free, they are forced to pay to apply to ply their trade, and the streams are also stolen and no money flows back. &amp;nbsp;This is morally offensive. &amp;nbsp;I write this blog post and ask you all to think about this. &amp;nbsp;I'm sure if you're planning to go to SXSW you will still go but if there is anything you can do to raise attention to this situation, my brothers and sisters, the artists of the music industry, the lowest rung on the ladder, would appreciate it. &amp;nbsp;You see, we no longer have power in this matter. &amp;nbsp;This is a plea to you to help us.&lt;br /&gt;
&lt;br /&gt;
It's very simple. &amp;nbsp;If we do not have fair trade introduced into the mix, the arts suffer. &amp;nbsp;It becomes run by the mainstream media who decide for you what you will see. &amp;nbsp;All we ask for is an equal chance to perform. &amp;nbsp;All we ask is to be able to ply our trade without being robbed, used and actually get a fair compensation for our work. &amp;nbsp;We put in ten thousand hours of practice, buy our own instruments and gear, pay our own way to go to shows and perform. &amp;nbsp;Being preyed on by monopolistic business practices hurts us.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;Dear SonicBids,&lt;/i&gt;&lt;/b&gt; if you ever try to come to British Columbia, you will be met with a swift response of getting the BC labour relations board immediately aware that you are violating several provincial statues around the labour market. &amp;nbsp;That is before the BC Gaming Commission looks at you for opening up a "lottery" and allowing bands with minors to place bets based on their believe they will be hired to money. &amp;nbsp;If you do manage to get by them, any gig you try in a major city will be met with swift and violent boycotts. &amp;nbsp;I will put myself on the front line as many of my Vancouver friends will do to stop you from migrating your shit to Canada. &amp;nbsp;&lt;b&gt;We will not let any musician play a gig in Vancouver if they had to pay SonicBids to apply to play!&lt;/b&gt;&amp;nbsp; It is that simple. &amp;nbsp;Stay out of our province. &amp;nbsp;There several hundred of us who will show up at such a gig to shut it down.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;Dear people elsewhere,&lt;/i&gt;&lt;/b&gt; use this as a template. &amp;nbsp;Understand the system and realize by going to SXSW you are part of a system that takes advantage of indie musicians and artists, who are often the amongst the poorest of the system. &amp;nbsp;Help support them by demanding SXSW and other bars engage in fair trade practices and demand your right to crowd source music. &amp;nbsp;Bring this up at panels or ask the people on the music panel what they think about this. &amp;nbsp;Raise awareness. &amp;nbsp;Help us!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;To SXSW&lt;/i&gt;&lt;/b&gt; - expect me to be a thorn in your side until you fix this. &amp;nbsp;I will personally offer to help you devise and implement a better system that treats musicians fairly. &amp;nbsp;If you show the courage to acknowledge this error and move forward to correct the situation, I am positive the crowds of people attending will be happy to help vote the bands they want to see play. &amp;nbsp;The ball is in your court to acknowledge an injustice and correct it. &amp;nbsp;Until then, you will not see me and I will be vocal in fighting what I and my local laws deem illegal.&lt;br /&gt;
&lt;br /&gt;
SXSW - the next move is yours to fix this. I'm here to help if you want.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-2298567339309248980?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/2298567339309248980/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/04/why-i-boycott-swsx-and-urge-you-do-to.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/2298567339309248980?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/2298567339309248980?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/04/why-i-boycott-swsx-and-urge-you-do-to.html" title="Why I boycott SXSW and Urge You do to the Same" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkcERno4fSp7ImA9WhVXF0g.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-5264176538177923175</id><published>2012-04-18T06:00:00.000-07:00</published><updated>2012-04-18T06:00:07.435-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-18T06:00:07.435-07:00</app:edited><title>Uberity, LiveCycle and Mobile Forms</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
I get pinged a lot asking if we have any "&lt;a href="http://blog.uberity.com/2012/04/livecycle-developers-for-hire/"&gt;LiveCycle Developers for hire&lt;/a&gt;". &amp;nbsp;At Uberity we also get asked this a lot. &amp;nbsp;The blog post referenced above explain what we can and cannot do but failed to mention training and mobile. &amp;nbsp;One of the key offerings that I believe any enterprise software company can give is training and knowledge transfer to their customers. &amp;nbsp;It is one thing to go into a customer and install a system or solution, but there is an onus to train the customer how to use it. &amp;nbsp;We believe this is an essential part of any LiveCycle deal.&lt;br /&gt;
&lt;br /&gt;
With Adobe LiveCycle, we see a repeatable pattern of people who have bought LiveCycle ES and also are not using it to the full potential. &amp;nbsp;This means they are not getting the most optimal return on their IT investment. &amp;nbsp;Learning LiveCycle is daunting however. &amp;nbsp;If you want to really get good at it, there are about 20 different course modules to take. &amp;nbsp;One of the most recent patterns that is emerging is the aspect of mobile devices.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Mobile and LiveCycle ES&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
We have started building our own technology platform that will compliment LiveCycle ES. &amp;nbsp;Going to mobile or wireless devices from LC ES is also a challenge. &amp;nbsp;There is a mistaken belief that PDF or XDP forms can work for this. &amp;nbsp;Even if it did work, it is most certainly not the right solution. &amp;nbsp;Adobe is rumoured to be brewing up an in house way to round trip from LiveCycle to Mobile but the reality is that most companies will use only a small subset of mobile features and the first iteration will likely focus on forms. &amp;nbsp;Uberity has build up a set of native components and functionally re-usable code module that can be leveraged for those who want fast applications that can access low level API's on various mobile systems. &amp;nbsp;We firmly believe that we are doing is a superior solution, just potentially more costly for the end user. &amp;nbsp;To help people understand the issues, we published a white paper entitled "&lt;a href="http://uberity.com/whitepapers/Mobile-Application-Development-Strategy_FINAL.pdf"&gt;Mobile Application Development Strategies&lt;/a&gt; which is free to download and share.&lt;br /&gt;
&lt;br /&gt;
If your organization is considering such patterns, please come and talk to us by emailing info at uberity dot com. &amp;nbsp;We don't bite (well usually). &amp;nbsp;If you need it fast, we can help.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-LmoKI03enxk/T44n7Zia_PI/AAAAAAAABMg/2PqgClvsGTA/s1600/Screen+Shot+2011-11-20+at+11.44.10+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="293" src="http://3.bp.blogspot.com/-LmoKI03enxk/T44n7Zia_PI/AAAAAAAABMg/2PqgClvsGTA/s320/Screen+Shot+2011-11-20+at+11.44.10+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-5264176538177923175?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/5264176538177923175/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/04/uberity-livecycle-and-mobile-forms.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/5264176538177923175?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/5264176538177923175?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/04/uberity-livecycle-and-mobile-forms.html" title="Uberity, LiveCycle and Mobile Forms" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-LmoKI03enxk/T44n7Zia_PI/AAAAAAAABMg/2PqgClvsGTA/s72-c/Screen+Shot+2011-11-20+at+11.44.10+AM.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;AkQHRncyfip7ImA9WhVXFE8.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-1307732907567216434</id><published>2012-04-13T21:44:00.001-07:00</published><updated>2012-04-14T11:32:17.996-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-14T11:32:17.996-07:00</app:edited><title>Battenkill 2012 Live Video Stream</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px;"&gt;The&lt;/span&gt;&lt;a href="http://www.tourofthebattenkill.com/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #af0a4f; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="Tour of the Battenkill"&gt;&amp;nbsp;Tour of the Battenkill&amp;nbsp;&lt;/a&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px;"&gt;is a classic American Bicycle race. &amp;nbsp;Many people are interested in watching it and until now there are no live video streams. &amp;nbsp;Uberity has launched a mobile application as part of it's new platform that combines mobile video, social media and collaborative capabilities to increase user experience. &amp;nbsp;Think about an application that will eventually provide the best of live TV, commentating, twitter feeds (via our friends at &lt;a href="http://www.hootsuite.com/"&gt;HootSuite&lt;/a&gt;), interactive media and more. &amp;nbsp; The live video stream of the the Tour of the Battenkill application is Android only in this year's release. &amp;nbsp;You can get it and watch the race live on Sunday by pointing your Android device at&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;a data-expanded-url="http://uberity.com/app" data-ultimate-url="http://uberity.com/app" href="http://t.co/44yGAxYC" rel="nofollow" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #af0a4f; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://uberity.com/app"&gt;http://uberity.com/app&lt;/a&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-size: 14px; line-height: 22px;"&gt;.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-size: 14px; line-height: 22px;"&gt;/***&lt;span style="color: red;"&gt; &lt;b&gt;UPDATE&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: red; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-size: 14px; line-height: 22px;"&gt;&amp;nbsp; &amp;nbsp;* &amp;nbsp;Unfortunately, there is a technical issue at the broadcast site. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: red; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-size: 14px; line-height: 22px;"&gt;&amp;nbsp; &amp;nbsp;* &amp;nbsp;This is being worked on&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: red; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-size: 14px; line-height: 22px;"&gt;&amp;nbsp; &amp;nbsp;* &amp;nbsp;and hope to have it resolved by Sunday.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: red; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-size: 14px; line-height: 22px;"&gt;&amp;nbsp; &amp;nbsp;* &amp;nbsp;&lt;b&gt;UPDATE 2:&lt;/b&gt; It's live right now showing finish line -&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a data-expanded-url="http://uberity.com/app" data-ultimate-url="http://uberity.com/app" href="http://t.co/44yGAxYC" rel="nofollow" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #af0a4f; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="http://uberity.com/app"&gt;http://uberity.com/app&lt;/a&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-size: 14px; line-height: 22px;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-size: 14px; line-height: 22px;"&gt;&amp;nbsp; &amp;nbsp;*/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px;"&gt;&lt;b&gt;More about the Battenkill&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px;"&gt;Most years thousands of spectators and cycling enthusiasts flock to see top pros and fast amateur racers battle on what is undeniably one of the most challenging courses. &amp;nbsp;There are sections that have no asphalt and tough short climbs for 82 miles. &amp;nbsp;With attacks likely to start at mile zero, the 2012 race will be one of attrition and an exciting event to watch. &amp;nbsp;On that latter point, we realized there was no way to actually watch the event as it is not televised. &amp;nbsp;After some brainstorming and less than a week of development time, &amp;nbsp;we are pleased to announce a free application based on the Uberity mobile platform for live events. &amp;nbsp; &amp;nbsp;Please be kind – there are bound to be technical difficulties in keeping the stream.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-1307732907567216434?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/1307732907567216434/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/04/battenkill-2012-live-video-stream.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/1307732907567216434?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/1307732907567216434?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/04/battenkill-2012-live-video-stream.html" title="Battenkill 2012 Live Video Stream" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUYNQXg5eyp7ImA9WhVXEUs.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-2444045623983855917</id><published>2012-04-10T12:07:00.000-07:00</published><updated>2012-04-11T10:59:50.623-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-11T10:59:50.623-07:00</app:edited><title>SOA White Paper - Service Oriented Architecture (SOA) and Specialized Messaging Patterns</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
This blog post is based on an original article I wrote around 6 years ago. While the terms used to describe Service Oriented Architecture (SOA) have changed in recent years (to terms like "Cloud Computing" and "SaaS"), the basic tenets are still valid. &amp;nbsp;Therefore, I am posting the original white paper here on Technoracle with a series of updates to the topics in an attempt to explore the concept of SOA within the context of &lt;a href="http://uberity.com/whitepapers/Mobile-Application-Development-Strategy_FINAL.pdf"&gt;mobile application development&lt;/a&gt; in a subsequent series of blog posts. &amp;nbsp;To be the first to read the new data, subscribe to this blog.
&lt;br /&gt;
&lt;b&gt;Service Oriented Architecture (SOA)&amp;nbsp;and Specialized Messaging Patterns&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;i&gt;1.0 Thesis&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The widespread emergence of the Internet in the mid 1990s as a platform for electronic data 
distribution and the advent of structured information have revolutionized our ability to deliver 
information to any corner of the world.  While the introduction of Extensible Markup Language 
(XML)&amp;nbsp;as a structured format was a major enabling factor, the promise offered by SOAP based
webservices triggered the discovery of architectural patterns that are now known as  Service 
Oriented Architecture (SOA). &amp;nbsp;XML and the JavaScript Object Notation (JSON) format, enabled portable data but the architecture based on services was the real coup in the expansion of data sharing.&lt;br /&gt;
&lt;br /&gt;
Service Oriented Architecture or SOA is an architectural paradigm and discipline that may be used to
build infrastructures enabling those with needs (consumers) and those with capabilities 
(providers) to interact via services across disparate domains of technology and ownership.  
Services act as the core facilitator of electronic data interchanges yet require additional mechanisms in order to function. Several new trends in the computer industry rely upon SOA as the 
enabling foundation.  These include the automation of Business Process Management (BPM), 
composite applications (applications that aggregate multiple services to function), and the 
multitude of new architecture and design patterns generally referred to as Web 2.0.

The latter, Web 2.0, is not defined as a static architecture.  Web 2.0 can be generally characterized 
as a common set of architecture and design patterns, which can be implemented in multiple
contexts.  The list of common patterns includes the Mashup, Collaboration-Participation, 
Software as a Service (SaaS), Semantic Tagging (folksonomy), and Rich User Experience (also 
known as Rich Internet Application) patterns among others.  These are augmented with themes 
for software architects such as trusting your users and harnessing collective intelligence.  Most 
Web 2.0 architecture patterns rely on Service Oriented Architecture in order to function.
When designing Web 2.0 applications based on these patterns, architects often have highly 
specialized requirements for moving data.  Enterprise adoption of these patterns requires special 
considerations for scalability, flexibility (in terms of multiple message exchange patterns), and 
the ability to deliver these services to a multitude of disparate consumers.   Architects often need 
to expand data interchanges beyond simple request-response patterns and adopt more robust 
message exchange patterns, triggered by multiple types of events. As a result, many specialized 
platforms are evolving to meet these needs.&lt;br /&gt;
&lt;br /&gt;
This white paper discusses specializations for advanced data exchanges within enterprise service 
oriented environments and illustrates some of the common architectures of these new platforms.
&lt;br /&gt;
&lt;b&gt;2.0 An Introduction to Service Oriented Architecture&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Service Oriented Architecture (SOA) is a paradigm for organizing and utilizing distributed 
capabilities that may be under the control of different ownership domains and implemented 
using various technology stacks. In general, entities (people and organizations) create capabilities to solve or support a solution for the problems they face in the course of their business. It is 
natural to think of one person’s needs being met by capabilities offered by someone else; or, in 
the world of distributed computing, one computer agent’s requirements being met by a computer 
agent belonging to a different owner.  The term owner here may be used to denote different 
divisions of one business or perhaps unrelated entities in different countries.
&lt;br /&gt;&lt;br /&gt;
There is not necessarily a one-to-one correlation between needs and capabilities; the granularity 
of needs and capabilities vary from fundamental to complex, and any given need may require a 
combination of numerous capabilities while any single capability may address more than one 
need. One perceived value of SOA is that it provides a powerful framework for matching needs 
and capabilities and for combining capabilities to address those needs by leveraging other 
capabilities.  One capability may be repurposed across a multitude of needs.  

SOA is a “view” of architecture that focuses in on services as the action boundaries between the 
needs and capabilities in a manner conducive to service discovery and repurposing.
&lt;br /&gt;
&lt;b&gt;2.1 Requirements for SOA&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-fEttUPJo9lE/TwU5zwo5ODI/AAAAAAAABG0/VwDJn_h_z2g/s1600/SOA-problem+to+be+solved.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="256" src="http://3.bp.blogspot.com/-fEttUPJo9lE/TwU5zwo5ODI/AAAAAAAABG0/VwDJn_h_z2g/s400/SOA-problem+to+be+solved.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
Figure 2-1 shows an example of an information system scenario that could benefit from a 
migration to SOA.  Within one organization, three separate business processes use the same 
functionality, each encapsulating it within an application.  In this scenario, the login function, 
the ability to change the user name, and the ability to persist it are common tasks implemented 
redundantly in all three processes.  This is a suboptimal situation because the company has paid 
to implement the same basic functionality three times.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-3p_tKuCvIHc/T4R63oGlSJI/AAAAAAAABKc/NkxAFtpN8F0/s1600/Screen+Shot+2012-04-10+at+11.23.57+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="215" src="http://1.bp.blogspot.com/-3p_tKuCvIHc/T4R63oGlSJI/AAAAAAAABKc/NkxAFtpN8F0/s320/Screen+Shot+2012-04-10+at+11.23.57+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Figure 2.1 – three business processes within one company duplicating functionality&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
Moreover, such scenarios are highly inefficient and introduce maintenance complexity within IT 
infrastructures.  For example, consider an implementation in which the state of a user is not 
synchronized across all three processes.  In this environment users might have to remember 
multiple login username/password tokens and manage changes to their profiles in three separate 
areas.  Additionally, if a manager wanted to deny a user access to all three processes, it is likely 
that three different procedures would be required (one for each of the applications). Corporate IT 
workers managing such a system would be effectively tripling their work –and spending more for 
software and hardware systems.&lt;br /&gt;
&lt;br /&gt;
In a more efficient scenario, common tasks would be shared across all three processes.  This can 
be implemented by decoupling the functionality from each process or application and building a 
standalone authentication and user management application that can be accessed as a service.  In 
such a scenario, the service itself can be repurposed across multiple processes and applications 
and the company owning it only has to maintain the functionality in one central place.  This 
would be a simple example of Service Oriented Architecture in practice.  The resultant IT 
infrastructure would resemble Figure 2.2.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-Z4pz_mEqBgU/T4R7IzPiu5I/AAAAAAAABKk/FcuNBUsi0P4/s1600/Screen+Shot+2012-04-10+at+11.25.23+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="249" src="http://1.bp.blogspot.com/-Z4pz_mEqBgU/T4R7IzPiu5I/AAAAAAAABKk/FcuNBUsi0P4/s320/Screen+Shot+2012-04-10+at+11.25.23+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Figure 2.2 – three business processes repurposing one service for common tasks.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;span style="font-size: x-small;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
In figure 2.2, the shared user account tasks have been separated from each process and implemented in a way that enables other processes to call them as a service.  This allows the shared 
functions to be repurposed across all three processes.  The common service bus is really a virtual 
environment whereby services are made available to all potential consumers on a fabric.  This is 
typically referred to as an Enterprise Service Bus (ESB) and has a collection of specialized 
subcomponents including naming and lookup directories, registry-repositories, and service 
provider interfaces (for connecting capabilities and integrating systems) as well as a standardized collection of standards and protocols to make communications seamless across all connected devices.  Advanced ESB vendors have tools that can aggregate services into complex 
processes and workflows.&lt;br /&gt;
&lt;br /&gt;
In the preceding example of SOA, the complications were relatively minor as the entire infrastructure existed within one domain.  In reality, enterprise SOA is much more difficult because 
services may be deployed across multiple domains of ownership.  To make interactions possible, 
mechanisms have to be present to convey semantics, declare and enforce policies and contracts, 
the ability to use constraints for data passed in and out of the services as well as expressions for 
the behavior models of services.  The ability to understand both the structure and semantics of 
data passing between service endpoints is essential for all parties involved.&lt;br /&gt;
&lt;br /&gt;
While most SOA examples are typically shown as a request-response interaction pattern, more 
robust exchanges are required.  Additionally, modern service platforms also need the flexibility 
to support these advanced message exchange patterns.  Before discussing the platform and 
reference architecture, this white paper will briefly delve into SOA in more detail.
&lt;h4 style="text-align: left;"&gt;

&lt;i&gt;2.3 A Reference Model for Service Oriented Architecture&lt;/i&gt;&lt;/h4&gt;
As with any other architecture, Service Oriented Architecture can be expressed in a manner that 
is decoupled from implementation.  Software architects generally use standardized conventions 
for capturing and sharing knowledge. This group of conventions is often referred to as an 
Architecture Description Language (ADL). There are also several normalized artifacts used to 
facilitate a shared understanding of the structure of a system, its major components, the 
relationships between them, and their externally visible properties.  This white paper will make 
use of two special types of these artifacts – a &lt;b&gt;&lt;i&gt;Reference Model&lt;/i&gt;&lt;/b&gt; and &lt;b&gt;&lt;i&gt;Reference Architecture&lt;/i&gt;&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
A &lt;i&gt;&lt;b&gt;Reference Model &lt;/b&gt;&lt;/i&gt;is an abstract framework for understanding significant entities and relationships between them.  It may be used for the further development of more concrete artifacts such 
as architectures and blueprints.  Reference models themselves do not contain a sufficient level of 
detail sufficient to enable the direct implementation of a system. In the case of a reference model 
for SOA, the Organization for the Advancement of Structured Information Systems (OASIS) has 
a standard&lt;a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-rm"&gt; Reference Model for SOA&lt;/a&gt;, shown in Figure 2.3, that is not directly tied to any 
standards, technologies, or other concrete implementation details. &lt;br /&gt;
&lt;br /&gt;
In order for SOA to be meet these challenges, services must have accompanying service 
descriptions to convey the meaning and real world effects of invoking the service.  These 
descriptions must additionally convey both semantics and syntax for both humans and applications to use. &lt;br /&gt;
&lt;br /&gt;
Each service has an interaction model, which is the externally visible aspects of invoking a 
service.  In this paper, this will be decomposed further to examine the data service aspects of 
SOA.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-DWuggBOaOZs/T4R7bZpz3CI/AAAAAAAABKs/YwNIJqz4ZMY/s1600/Screen+Shot+2012-04-10+at+11.26.25+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" height="278" src="http://4.bp.blogspot.com/-DWuggBOaOZs/T4R7bZpz3CI/AAAAAAAABKs/YwNIJqz4ZMY/s400/Screen+Shot+2012-04-10+at+11.26.25+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Figure 2.3 – the core OASIS Reference Model for Service Oriented Architecture&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Visibility&lt;/b&gt; and &lt;b&gt;Real World Effect&lt;/b&gt; are also key concepts for SOA. Visibility is the capacity for 
those with needs and those with capabilities to be able to see and interact with each other. This is 
typically implemented by using a common set of protocols, standards, and technologies across 
service providers and service consumers. For consumers to determine if they can interact with a 
specific service, &lt;b&gt;Service Descriptions &lt;/b&gt;provide declarations of aspects such as functions and 
technical requirements, related constraints and policies, and mechanisms for access or response. In many real world situations, service descriptions may be technically described in instances of &lt;a href="http://www.w3.org/TR/wsdl"&gt;Web Services Description Language (WSDL)&lt;/a&gt; documents.&lt;br /&gt;
&lt;br /&gt;
The descriptions must be in a form (or can be transformed to a form) in which their syntax and 
semantics are widely accessible and understandable.  The &lt;b&gt;execution context&lt;/b&gt; is the set of specific 
circumstances surrounding any given interaction with a service and may affect how the service 
is invoked.&lt;br /&gt;
&lt;br /&gt;
Since SOA permits service providers and consumers to interact, it also provides a decision point 
for any &lt;b&gt;policies and contracts&lt;/b&gt; that may be in force.  The purpose of using a capability is to 
realize one or more real world effects. At its core, an interaction is “an act” as opposed to “an 
4object” and the result of an interaction is an effect (or a set/series of effects). Real world effects 
are, then, couched in terms of changes to this shared state.  This may specifically mutate the 
shared state of data in multiple places within an enterprise and beyond.&lt;br /&gt;
&lt;br /&gt;
The concept of &lt;b&gt;policy&lt;/b&gt; also must be applicable to data represented as documents and policies must 
persist to protect this data far beyond enterprise walls.  This requirement is a logical evolution of 
the “locked file cabinet” model which has failed many IT organizations in recent years. Policies 
must be able to persist with the data that is involved with services, wherever the data persists.
A contract is formed when at least one other party to a service oriented interaction adheres to the 
policies of another.  Service contracts may be either short lived or long lived.&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style="text-align: left;"&gt;

2.3 Decomposing the Interaction Model&lt;/h4&gt;
Whereas visibility introduces the possibilities for matching needs to capabilities (and vice versa), 
interaction is the act of actually using a capability via the service. Typically mediated by the 
exchange of messages, an interaction proceeds through a series of information exchanges and 
invoked actions. There are many facets of interaction; but they are all grounded in a particular 
execution context – the set of technical and business elements that form a path between those 
with needs and those with capabilities.  Architects building Rich Internet Applications (RIAs), 
are faced with special considerations when designing their systems from this perspective.  The 
concept of “Mashups” surrounds a model whereby a single client RIA may actually provide a 
view composed by binding data from multiple sources persisting in multiple domains across 
many tiers.  &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-sGCKu_R5zdU/T4R9PIWZp5I/AAAAAAAABK0/eaQ-KoRDxZ8/s1600/Screen+Shot+2012-04-10+at+11.34.10+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-sGCKu_R5zdU/T4R9PIWZp5I/AAAAAAAABK0/eaQ-KoRDxZ8/s320/Screen+Shot+2012-04-10+at+11.34.10+AM.png" width="266" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Figure 2.4 – a decomposition of the Interaction Model (courtesy of OASIS Reference Model for SOA)&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
As depicted in Figure 2.4, the interaction model can be further decomposed into a data model 
and behavior model.  The data model is present in all service instances.   Even if the value is 
“null”, the service is still deemed to have a data model.  The data models are strongly linked to the 
behavior models.  For example, in a Request-Response behavior model, the corresponding data 
model would have two components – the input (service Request) data model and the output 
(service Response) data model.  Data models may be further specialized to match the behavior 
model if it is other than “Request-Response”.&lt;br /&gt;
&lt;br /&gt;
The behavior model is decomposable into the action model and the process model.  The sequence 
of messages flowing into and out of the service is captured in the action model while the service’s 
5processing of those signals is captured in the processing model.  The processing model is 
potentially confusing as some aspects of it may remain invisible to external entities and its inner 
working known only to the service provider.&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style="text-align: left;"&gt;

3.0 A Reference Architecture for Service Oriented Architecture&lt;/h4&gt;
&lt;br /&gt;
A reference architecture is a more concrete artifact used by architects. Unlike the reference 
model, it can introduce additional details and concepts to provide a more complete picture for 
those who may implement a particular class.  Reference architectures declare details that would 
be in all instances of a certain class, much like an abstract constructor class in programming.  
Each subsequent architecture designed from the reference architecture would be specialized for a 
specific set of requirements.  Reference architectures often introduce concepts such as cardinality, structure, infrastructure, and other types of binary relationship details.  Accordingly, 
reference models do not have service providers and consumers.  If they did, then a reference 
model would have infrastructure (between the two concrete entities) and it would not longer be a 
model.&lt;br /&gt;
&lt;br /&gt;
The reference model and the reference architecture are intended to be part of a set of guiding 
artifacts that are used with patterns. Architects can use these artifacts in conjunction with 
others to compose their own SOA.  The relationships are depicted in Figure 3.1.
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-giunfvlxUw4/T4R9h0n6OpI/AAAAAAAABK8/SBI-ysdnE7E/s1600/Screen+Shot+2012-04-10+at+11.35.33+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="317" src="http://1.bp.blogspot.com/-giunfvlxUw4/T4R9h0n6OpI/AAAAAAAABK8/SBI-ysdnE7E/s400/Screen+Shot+2012-04-10+at+11.35.33+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Figure 3.1 – The architectural framework for SOA (Courtesy of OASIS).&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
The concepts and relationships defined by the reference model are intended to be the basis for
describing reference architectures that will define more specific categories of SOA designs. 
Specifically, these specialized architectures will enable solution patterns to solve particular
problems.  Concrete architectures may be developed based upon a combination of reference
architectures, architectural patterns, and additional requirements, including those imposed by
technology environments. Architecture is not done in isolation; it must account for the goals, 
motivation, and requirements that define the actual problems being addressed. While reference 
architectures can form the basis of classes of solutions, concrete architectures will define specific 
solution approaches.&lt;br /&gt;
&lt;br /&gt;
Architects and developers also need to bind their own SOA to concrete standards technologies 
and protocols at some point.   These are typically part of the requirements process.  For example, 
when building a highly efficient client side Mashup application, a developer might opt for the 
ActionScript Messaging Format (AMF)&amp;nbsp;to provide the most efficient communication between
remote services and the client .&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Neutrality&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The reference architecture  shown in Figure 3.2 is not tied to any specific technologies, standards, 
or protocols.  In fact, it would be equally applicable to a .NET&amp;nbsp;or J2EE&amp;nbsp;environment and can be
used with either the Web Service family of technologies, plain old XML-RPC (XML – Remote 
Procedure Call), or a proprietary set of standards.  This reference architecture allows developers 
to make decisions and adopt technologies that are best suited to their specific requirements.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-RlQoIar7QtE/T4R98l3AAeI/AAAAAAAABLE/BlOCmX42IcI/s1600/Screen+Shot+2012-04-10+at+11.37.16+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://2.bp.blogspot.com/-RlQoIar7QtE/T4R98l3AAeI/AAAAAAAABLE/BlOCmX42IcI/s400/Screen+Shot+2012-04-10+at+11.37.16+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;span style="font-size: x-small;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Figure 3.2 – A generic SOA Reference Architecture for implementing core Web 2.0 design patterns &lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;span style="font-size: x-small;"&gt;&lt;i&gt;(Courtesy of O’Reilly Media)&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h4 style="text-align: left;"&gt;

3.1 Service Tier&lt;/h4&gt;
The server side component of the reference architecture has a number of commonly used 
components.  The Service Provider Interface is the main integration point whereby service 
providers connect to capabilities that exist in internal systems in order to expose them as 
services.  These internal applications typically reside in a resource tier, a virtual collection of 
capabilities that become exposed as services so consumers can access their functionality. Service 
providers may integrate such capabilities using numerous mechanisms, including using other 
services.  In most cases, an enterprise will use the Application Programmatic Interface (API) of 
the system as provided by the application vendor.&lt;br /&gt;
&lt;br /&gt;
The &lt;b&gt;Service Invocation Layer &lt;/b&gt;is where services are invoked.  A service may be invoked when an 
external messages being received or, alternatively, it can be invoked by an internal system or by a 
non-message based event (such as a time out).  It is essential to understand that services may be 
invoked via messages from multiple sets of standards and protocols working together.  Common 
examples of external service interface endpoints include: &lt;br /&gt;
&lt;br /&gt;
•  Asynchronous JavaScript and XML (AJAX),&lt;br /&gt;
•  Simple Object Access Protocol (SOAP),&lt;br /&gt;
•  XML Remote Procedure Call (XML-RPC),&lt;br /&gt;
•  a watched folder being polled for content,&lt;br /&gt;
•  an email endpoint, and&lt;br /&gt;
•  other &lt;a href="http://technoracle.blogspot.ca/2009/04/understanding-rest.html"&gt;REST&lt;/a&gt;(viii)&amp;nbsp;style endpoints including plain old HTTP and HTTP/S.&lt;br /&gt;
&lt;br /&gt;
Services may also be invoked by local consumers including environments like J2EE and language 
specific interfaces (for example - Plain Old Java Objects or POJO’s).&lt;br /&gt;
&lt;br /&gt;
Each service invocation is often handed to a new instance of a service container.  The service 
container is responsible for handling the service invocation request for its entire lifecycle, until 
either it reaches a successful conclusion or failed end state.  Regardless of its ultimate end state, 
the service container may also delegate responsibilities for certain aspects of the service’s 
runtime to other services for common tasks.  These tasks typically include logging functions, 
archiving, security, and authentication, among others.&lt;br /&gt;
&lt;br /&gt;
To facilitate orchestration and aggregation of services into processes and composite applications, 
a registry-repository is often used.  During the process design phase, the registry-repository 
provides a single view of all services and related artifacts. The repository provides a persistence 
mechanism for artifacts during the runtime of processes and workflows.  If multiple system 
actors use and interact with a form, the repository can persist it while allowing access to 
privileged individuals.&lt;br /&gt;
&lt;br /&gt;
Design, development and governance tools are also commonly used by humans to deploy, 
monitor, and aggregate multiple services into more complex processes and applications.
&lt;h4 style="text-align: left;"&gt;

&lt;br /&gt;3.2 Client Tier&lt;/h4&gt;
&lt;br /&gt;
While much attention has been focused on the server side aspects of SOA, less has been written 
about the new breed of clients evolving for consuming services.  The clients have evolved to 
embrace many common architecture and design patterns discussed in greater detail in the next 
section.   A highly visible example of this is the ability of most modern browsers to subscribe to 
RSS feeds.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-9zV8XI19soc/T4R_J5lQkSI/AAAAAAAABLM/nThovtVMZaw/s1600/Screen+Shot+2012-04-10+at+11.42.32+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="98" src="http://1.bp.blogspot.com/-9zV8XI19soc/T4R_J5lQkSI/AAAAAAAABLM/nThovtVMZaw/s400/Screen+Shot+2012-04-10+at+11.42.32+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Figure 3.3 – client application architecture&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
As depicted in Figure 3.3, clients must have far more robust communications services than a 
decade ago.  In fact, any communication standards, protocols and technologies (such as SOAP),
ActionScript Messaging Format, or XML-RPC) have to be implemented on both sides to 
facilitate proper communications.  Client side communications buses also need to monitor the 
state of communications including potentially both synchronous and asynchronous exchange 
patterns.&lt;br /&gt;
&lt;br /&gt;
The main controller of each client application must be capable of launching various runtime 
environments.  This is typically done via launching one or more virtual machines that can 
interpret scripting languages or consume bytecode as in Adobe Flash.  The architecture for these 
virtual machines varies greatly depending upon the language used.  Some compile an intermediate level bytecode just in time to run a program while others must be launched and make. &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://technoracle.blogspot.ca/2009/04/understanding-rest.html"&gt;Representational State Transfer (REST) &lt;/a&gt;is an important component of Roy Fielding’s Dissertation&lt;br /&gt;
Architectural Styles and the Design of Network-based Software Architectures -&lt;br /&gt;
&lt;a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm"&gt;http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The Simple Object Access Protocol is a W3C Recommendation - http://www.w3.org/TR/soap/
multiple passes over a script (usually once to check it for errors, another time to run the script, 
and a concurrent iteration to collect garbage and free up memory as it becomes possible to &lt;br /&gt;
reallocate.&lt;br /&gt;
&lt;br /&gt;
Most modern clients have some form of &lt;b&gt;data persistence&lt;/b&gt; and &lt;b&gt;state management&lt;/b&gt;. Data persistence is not always done using a traditional database. Increasingly, NoSQL Graph Databases are being used to store nodes which offer greater flexibility and scalability, as well as increased performance. This usually 
works in conjunction with the clients’ communications services to allow the controller to use 
cached resources rather than attempting to synchronize states if communications are down.  
Additionally, rendering and media functionality specific to one or more languages is used to 
ensure the view of the application is built in accordance with the intentions of the application 
developer.&lt;br /&gt;
&lt;br /&gt;
The security models used by different clients also vary somewhat.  The usual tenets are to prevent 
unauthorized and undetected manipulation of local resources.  In distributed computing 
architectures, identity (knowing who and what) is a major problem that requires a complex 
architecture to address.  Each client side application must be architected in accordance with the 
acceptable level of risk based on the user requirements.  &lt;br /&gt;
&lt;br /&gt;
&lt;h4 style="text-align: left;"&gt;

3.3 Architectural Conventions spanning multiple tiers&lt;/h4&gt;
&lt;br /&gt;
While examining the client and service tiers of the reference architecture, developers will note 
some commonalities.  Architects need to employ common models for determining what 
constitutes an object, what constitutes an event, how an event gets noticed or captured, what 
constitutes a change in state, and more.  As a result, architecture must take note of several 
common architectural models over all tiers of modern SOAs.&lt;br /&gt;
&lt;br /&gt;
First and foremost, the core axioms of service oriented architecture should be observed.  Services 
themselves should be treated as subservient to the higher level system or systems that use them.  
If you are deploying services to be part of an automated process management system, the 
services themselves should not know (or care) what they are being used for.  &lt;br /&gt;
&lt;br /&gt;
Services that are designed otherwise are architecturally inelegant for a number of reasons.
First, if services were required to know the state of the overall process, state misalignment would 
likely result if two services had differing states for even a fraction of a second.  In such instances, 
errors might be thrown when this is detected or worse, developers would have to rely on using a 
series of synchronous calls to services rather than forking a process into asynchronous calls.  As 
depicted in Figure 3.4, services should remain agnostic to what they are used for.  The state of a 
process or other application using services should be kept within the higher layer of logic that 
uses consumers to invoke the services.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-bqfXTz7fkWs/T4SAQFWAgUI/AAAAAAAABLU/tfDSDOoohqE/s1600/Screen+Shot+2012-04-10+at+11.46.22+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="158" src="http://1.bp.blogspot.com/-bqfXTz7fkWs/T4SAQFWAgUI/AAAAAAAABLU/tfDSDOoohqE/s400/Screen+Shot+2012-04-10+at+11.46.22+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Figure 3.4 – services within overall architecture&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
Second, if the overall process stalled or failed for some reason, each service used would have to&amp;nbsp;be notified and rolled back to a previous state.  Having services maintain or store the overall 
state of a process that uses more than one service is an anti-pattern of SOA and should be 
avoided.&lt;br /&gt;
&lt;br /&gt;
Another core architectural convention is to keep the service consumers agnostic to how the 
services are delivering their functionality.  This results in a clean decoupling of components, 
another architecturally elegant feature of modern service oriented systems.  Having dependencies on knowing the internal working of the services functionality is another anti-pattern of SOA 
and should also be avoided.&lt;br /&gt;
&lt;br /&gt;
Service composition, the act of building an application out of multiple services, is likewise an 
anti-pattern of SOA, if composition is defined as per Unified Modeling Language (UML) 2.0.
Composition is depicted as a “has a” relationship and the whole is composed of the parts.  The 
correct terminology should be service aggregation.  Aggregation is a “uses a” type of relationship.  
The differences are quite subtle but nevertheless important to grasp.  In composition relationships, the life cycles of parts are tied to the lifecycle of the whole and when the whole no longer 
exists, the parts no longer exist either.  In aggregation, the parts exist independent of the whole 
and can go on living after the entity that uses them no longer exists.  This terminology is 
common within both OOPSLA&amp;nbsp;and UML.  Regardless, the term “service composition” has been
misused widely within the computer industry and will likely prevail as a norm.  Architects and 
developers should pay close attention to the types of binary relationships between components in 
loosely coupled, distributed systems and bear these definitions in mind.&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style="text-align: left;"&gt;

3.4 Events&lt;/h4&gt;
&lt;br /&gt;
Architects and developers using the reference architecture within this paper should also consider 
the event architecture.  Events often must be detected and acted upon.  Each specific programming language has a form of event architecture for detection, dispatching messages, and 
capturing and linking behaviors to events.  The main challenge presented in distributed, service 
oriented systems is that the event model must traverse multiple environments and possibly span 
multiple domains.  Detecting an event in one domain, dispatching a message to a remote system 
and linking the event to an action in a virtual machine running on the remote system presents 
multiple challenges.  Architects and developers must often bridge disparate systems.  Having a 
common model used by all systems makes the traversal of systems much easier for developers 
and architects alike.&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style="text-align: left;"&gt;

3.5 Objects&lt;/h4&gt;
In much the same way they treat events, each disparate environment in a distributed service 
oriented environment might have a distinct notion of what constitutes an object.  Relying on 
programming environments and languages that are aligned conceptually with respect to objects 
(that is, “object-oriented”) makes the work of architects and developers much easier.  Languages 
such as JavaScript (specifically JavaScript Object Notation or JSON), Java, ActionScript, and
others have alignment on object concepts. (Note: ECMA’s ActionScript 3.0 is much more 
object-oriented than previous incarnations and is strongly tied to Java).  When a developer must 
implement a pattern where an object’s state must be tracked in a remote location and action 
taken upon a state change on the object, a common model for object and encapsulation is 
important.&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style="text-align: left;"&gt;

3.6 Architectural Patterns&lt;/h4&gt;
As noted in the reference architecture in Figure 3.1, architecture and design patterns are an 
important aspect of any architecture.  &lt;br /&gt;
&lt;br /&gt;
Patterns are recurring solutions to recurring problems. A pattern is composed of a problem, the 
context in which the problem occurs, and the solution to resolve this problem. The focus of a 
documented software architecture pattern is to illustrate a model to capture the structural 
organization of a system, relate that to its requirements and highlight the key relationships 
between entities within the system.&lt;br /&gt;

&lt;br /&gt;
Patterns can be classified into three broad&amp;nbsp;categories:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Architecture patterns&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Architecture patterns are high level patterns on
how systems are laid out and how large systems
are divided. These typically account for the
major components, their externally visible
properties, the major functionality of each
component, and the relationships between
them.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Design patterns&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Design patterns provide a scheme for refining
the subsystems or components of a software
system, and the relationships between them.
They describe a commonly recurring structure of
communicating components that solves a
general design problem within a specific
context.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Idioms&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Idioms are the lowest-level patterns and may be
specific to a programming language. An idiom
guides the implementation aspects of
components and the relationships between
them, using features specific to a given language
or environment.

&lt;br /&gt;
&lt;br /&gt;
The modern day concept of patterns evolved from work by Christopher Alexander, the primary
author of a book called “A Pattern Language”&amp;nbsp;(xiii)&amp;nbsp;which had a great influence on object-oriented
&lt;br /&gt;
programming. The basic concept of the book was a realization that patterns are the same when 
architecting a city, a block, a house and a room. Each of these entities employs similar patterns.
The concepts of patterns in software architecture have been widely adopted since being modified 
by the infamous Gang of Four&amp;nbsp;and are now an accepted part of the engineering trade. &amp;nbsp;There are also many industry standards and pseudo standards for architectural patterns meta models including the &lt;a href="http://www.nickull.net/work/MacKenzie-Nickull_ArchitecturalPatternsReferenceModel-v0.91.pdf"&gt;MacKenzie-Nickull Meta-model for Architectural Patterns&lt;/a&gt;, which is widely used today.&lt;br /&gt;
&lt;h4 style="text-align: left;"&gt;

4.0 Data and Message Exchange Patterns for Enterprise SOA&lt;/h4&gt;
The most basic message exchange pattern is a common Request-Response where the parties can 
simply communicate with each other.  This is the basic building block of most SOA interactions 
and is depicted below.&lt;br /&gt;
&lt;h4 style="text-align: left;"&gt;

4.1 Request-Response&lt;/h4&gt;
Request-Response is a pattern in which the service consumer uses configured client software to 
issue an invocation request to a service provided by the service provider. The request results in 
an optional response, as shown in Figure 4-1.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-gqKAeaRgoeo/T4SBee8UoSI/AAAAAAAABLc/DP7PWGlUkts/s1600/Screen+Shot+2012-04-10+at+11.52.26+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="137" src="http://3.bp.blogspot.com/-gqKAeaRgoeo/T4SBee8UoSI/AAAAAAAABLc/DP7PWGlUkts/s400/Screen+Shot+2012-04-10+at+11.52.26+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Figure 4-1. SOA Request-Response pattern&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h4 style="text-align: left;"&gt;

4.2 Request-Response via Service Registry (or Directory)&lt;/h4&gt;
An optional service registry can be used within the architecture to help the client automatically 
configure certain aspects of its service client. The service provider pushes changes regarding the 
service’s details to the registry to which the consumer has subscribed. When the changes are 
made, the service consumer is notified of these changes and can configure its service client to 
talk to the service. This is represented conceptually in Figure 4-2.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-aZkSLhEtBu0/T4SBsUmd4vI/AAAAAAAABLk/TdaWARD25nw/s1600/Screen+Shot+2012-04-10+at+11.53.19+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" src="http://3.bp.blogspot.com/-aZkSLhEtBu0/T4SBsUmd4vI/AAAAAAAABLk/TdaWARD25nw/s400/Screen+Shot+2012-04-10+at+11.53.19+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Figure 4-2. SOA Request-Response pattern with a service registry&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h4 style="text-align: left;"&gt;

4.3 Subscribe-Push&lt;/h4&gt;
&lt;br /&gt;
A third pattern for interaction is called Subscribe-Push, shown in Figure 4-3. In this pattern, one 
or more clients register subscriptions with a service to receive messages based on some criteria. 
Regardless of the criteria, the externally visible pattern remains the same.  
Subscriptions may remain in effect over long periods before being canceled or revoked. A 
subscription may, in some cases, also register another service endpoint to receive notifications. 
For example, an emergency management system may notify all fire stations in the event of a 
major earthquake using a common language such as the OASIS&amp;nbsp;Common Alerting Protocol
(CAP)(x  v i).&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-XpaRA9YkdkI/T4SC28fyd2I/AAAAAAAABLs/ft2LEDXz7kY/s1600/Screen+Shot+2012-04-10+at+11.58.11+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="202" src="http://1.bp.blogspot.com/-XpaRA9YkdkI/T4SC28fyd2I/AAAAAAAABLs/ft2LEDXz7kY/s400/Screen+Shot+2012-04-10+at+11.58.11+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Figure 4-3. SOA Subscribe-Push pattern&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
Note that this pattern can be triggered by a multitude of events.  In figure 4-3, an auditable event 
is triggering a message being sent to a subscribed client.  The trigger could be a service consumer’s action, a timeout action, or a number of other actions that are not listed in the example 
above.  Each of these represents a specialization of the &lt;b&gt;Subscribe-Push&lt;/b&gt; pattern. This particular pattern is becoming dominent in mobile application development that uses SOA principles. &amp;nbsp;Often a user has an application and the application pushes a notification to the user when a new piece of data or event is available that the user has expressed an interest in.&lt;br /&gt;
&lt;h4 style="text-align: left;"&gt;

4.4 Probe and Match&lt;/h4&gt;
A pattern used for discovery of services is the Probe and Match pattern. In this variation, shown 
in Figure 4-4, a single client may multicast or broadcast a message to several endpoints on a 
single fabric, prompting them to respond based on certain criteria. For example, this pattern 
may be used to determine whether large numbers of servers on a server farm are capable of 
handling more traffic by checking if they are scaled at less than 50% capacity. This variation of 
the SOA message exchange pattern may also be used to locate specific services. There are caveats 
with using such a pattern, as it may become bandwidth-intensive if used often. Utilizing a 
registry or another centralized metadata facility may be a better option because the registry 
interaction does not require sending the prob e() messages to all endpoints to find one. By 
convention, they allow the query to locate the endpoint using a filter query or other search 
algorithm. &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-APj-wM0iQwc/T4SDTjvdwBI/AAAAAAAABL0/V1uZIhyAyXo/s1600/Screen+Shot+2012-04-10+at+12.00.15+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="211" src="http://2.bp.blogspot.com/-APj-wM0iQwc/T4SDTjvdwBI/AAAAAAAABL0/V1uZIhyAyXo/s400/Screen+Shot+2012-04-10+at+12.00.15+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Figure 4-4. SOA Probe and Match pattern&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
In the &lt;b&gt;Probe and Match &lt;/b&gt;scenario in Figure 4-4, the service client probes three services, yet only 
the middle one returns an associated match() message. A hybrid approach could use the best of 
both the registry and the probe and match models for locating service endpoints. In the future, 
registry software could implement a probe interface to allow service location without requiring 
wire transactions going to all endpoints and the searching mechanism could probe multiple 
registries at the same time.&lt;br /&gt;
&lt;h4 style="text-align: left;"&gt;

4.5 Patterns for RIAs&lt;/h4&gt;
Creating Rich Internet Applications (RIAs) requires a level of data management that goes 
beyond the traditional Request-Response model. Providing a richer, more expressive experience 
often requires more data-intensive interaction and introduces new challenges in managing data 
between the client and server tiers.&lt;br /&gt;
&lt;br /&gt;
Data synchronization is a key concept and requires states to be shared among multiple machines.  
These are usually the clients who have subscribed to the state of an object somewhere within the 
tier of a distributed system as depicted in Figure 4.5.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-lJNpq2NHOM0/T4SDlWIWAvI/AAAAAAAABL8/3NOupda8FGk/s1600/Screen+Shot+2012-04-10+at+12.01.27+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="376" src="http://3.bp.blogspot.com/-lJNpq2NHOM0/T4SDlWIWAvI/AAAAAAAABL8/3NOupda8FGk/s400/Screen+Shot+2012-04-10+at+12.01.27+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Figure 4.5 – data synchronization across multiple clients (courtesy James Ward).&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h4 style="text-align: left;"&gt;

4.6 Data paging&lt;/h4&gt;
Some services automatically facilitate the paging of large data sets, enabling developers to focus 
on core application business logic instead of worrying about basic data management infrastructure.
Modern service oriented clients and server infrastructures automatically handle temporary 
disconnects, ensuring reliable delivery of data to and from the client application. &amp;nbsp;Data paging is built into the model used by Neo4J and Mongo.db. &amp;nbsp;Being graph databases, you can start by examining a specific node of data, then request incremental pieces of data based on your use case for the data.
&lt;h4 style="text-align: left;"&gt;

4.7 Data push&lt;/h4&gt;
Some services offer data-push capability, enabling data to automatically be pushed to the client 
application without polling (contrast this pattern to the “Subscribe-Push pattern listed above).  
This can be done via intuitive or inference methods to ensure data is provided as required. This 
highly scalable capability can push data to thousands of concurrent users, providing up-to-the-second views of critical data, such as stock trader applications, live resource monitoring, shop 
floor automation, and more.&lt;br /&gt;
&lt;br /&gt;
Data push can be further specialized into broadcast, unicast, multicast, and several other 
specializations of the basic pattern.&lt;br /&gt;
&lt;h4 style="text-align: left;"&gt;

5.0 A Final Word&lt;/h4&gt;
This white paper has been prepared to share ideas about data interaction patterns within SOA 
and to illustrate some common concepts with a service oriented environment.  It is based on 
input provided by a number of people from different companies and is not considered the work 
of any one company.  It is free to share, use, quote, and post wherever and however you want.
&lt;b&gt;Service Oriented Architecture&lt;/b&gt; will likely remain the mainstay of technology platforms for the 
foreseeable future.  It is our hope that the companies who have contributed to this will continue 
to write more on specialized patterns of SOA.&lt;br /&gt;
&lt;br /&gt;
This work is licensed under a Creative Commons Attribution 3.0 Unported License. You may 
redistribute and quote from parts of this article however attribution is expected.  There is no 
need to seek explicit permission to reuse part of this paper or quote from it.
&lt;h4 style="text-align: left;"&gt;

6.0 References&lt;/h4&gt;
&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;i. The Extensible Markup Language (XML) is a W3C Recommendation -&amp;nbsp;&lt;a href="http://www.w3.org/XML/"&gt;http://www.w3.org/XML/&lt;/a&gt;&amp;nbsp;and JSON, described at&amp;nbsp;&lt;a href="http://www.json.org/"&gt;http://www.json.org&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;ii. Service Oriented Architecture is an architectural paradigm expressed as a Reference Model by OASIS at&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-rm"&gt;http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-rm&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;iii. Web 2.0 is defined as a set of Design Patterns in the O’Reilly book Web 2.0 Design Patterns -&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://www.amazon.com/Web-2-0-Design-Patterns-entrepreneurs/dp/0596514433"&gt;&lt;span style="font-size: x-small;"&gt;http://www.amazon.com/Web-2-0-Design-Patterns-entrepreneurs/dp/0596514433&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;(iv) AMF - http://osflash.org/documentation/amf&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;(v) .NET is a trademark and technology from Microsoft -&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;http://msdn2.microsoft.com/en-us/netframework/default.aspx&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;(vi.) Java 2 Enterprise Edition is a trademark of Sun Microsystems&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;(vii.) Asynchronous JavaScript And XML is described on Wikipedia in more details at&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;http://en.wikipedia.org/wiki/Ajax_(programming)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;x. Unified Modeling Language is owned by the Object Management Group (OMG) and Described here -&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;http://www.omg.org/technology/documents/formal/uml.htm&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;xi. OOPSLA is an annual conference around Object Oriented Programming, Systems Languages and&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;Applications - http://www.oopsla.org&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;xii. JavaScript Object Notation (JSON) is RFC 4627 available at http://tools.ietf.org/html/rfc4627&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;10The modern day concept of patterns evolved from work by Christopher Alexander, the primary&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;author of a book called “A Pattern Language”&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;xiii. http://www.amazon.com/Pattern-Language-Buildings-Construction-Environmental/dp/0195019199&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;xiv. See “Design Patterns: Element of Reusable Object-Oriented Software” by Erich Gamma, Richard Helm,&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;Ralph Johnson, John Vlissides&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;xv. The Organization for the Advancement of Structured Information Systems (OASIS) at&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;http://www.oasis-open.org&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;xvi. OASIS CAP is a product of the OASIS Emergency Services Technical Committee -&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=emergency&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-2444045623983855917?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/2444045623983855917/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/04/soa-white-paper-service-oriented.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/2444045623983855917?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/2444045623983855917?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/04/soa-white-paper-service-oriented.html" title="SOA White Paper - Service Oriented Architecture (SOA) and Specialized Messaging Patterns" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-fEttUPJo9lE/TwU5zwo5ODI/AAAAAAAABG0/VwDJn_h_z2g/s72-c/SOA-problem+to+be+solved.png" height="72" width="72" /><thr:total>5</thr:total></entry><entry gd:etag="W/&quot;DUABQH84fCp7ImA9WhVXEkg.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-7389285606869669061</id><published>2012-04-10T11:22:00.001-07:00</published><updated>2012-04-12T12:09:11.134-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-12T12:09:11.134-07:00</app:edited><title>What is LiveCycle ES and how can it save you money?</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;
&lt;div class="first-para" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
We get asked all the time – “What is LiveCycle ES”? This is a question we had to answer while at Adobe but somehow the way this question is answered now has changed from an Uberity perspective. We find ourselves describing it in terms of business capabilities and value rather than the technology itself. Nevertheless, if you want to know what LiveCycle is, this blog post should provide a solid background.&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
LiveCycle is an enterprise software system that solves problems pertaining to mass scale processing of Portable Document Format (PDF) documents. While individual users of PDF’s tend to use Adobe Acrobat or Reader for working with PDF, LiveCycle is meant to aid the processing of tens of thousands of LiveCycle PDF documents. Hence, it is an enterprise solution that anyone who currently uses paper forms should look at if they are wanting to streamline the ingestion of data from forms. Likewise, it had many modules that can mitigate problems around PDF such as document security (think of Wiki-leaks).&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
LiveCycle itself is comprised of several components. We’ll walk through each of these components one at a time. the main component is akin to what many call an Enterprise Service Bus or ESB for short. This includes a set of common services, a common environment of service execution, a registry-repository system, workflow and storage components to name a few components. LiveCycle ES installs as a server and the server can bind to many different types of common enterprise infrastructure components including directories (LDAP for example). Below is a depiction of the server side component of LiveCycle ES.&lt;/div&gt;
&lt;div class="wp-caption aligncenter" id="attachment_86" style="background-attachment: initial; background-clip: initial; ; background-image: initial; background-origin: initial; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-left-radius: 3px; border-top-right-radius: 3px; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1em; margin-left: auto; margin-right: auto; margin-top: 0px; max-width: 100%; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: center; width: 507px;"&gt;
&lt;a href="http://blog.uberity.com/wp-content/uploads/2012/04/What-is_LiveCycle-ES-Uberity.png" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #af0a4f; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;&lt;img alt="What is Livecycle - the server component explained." class="size-full wp-image-86" src="http://blog.uberity.com/wp-content/uploads/2012/04/What-is_LiveCycle-ES-Uberity.png" style="border-bottom-style: none; border-color: initial; border-image: initial; border-left-style: none; border-right-style: none; border-style: initial; border-top-style: none; border-width: initial; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 5px; max-width: 100%; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="What-is_LiveCycle-ES-Uberity" width="497" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="wp-caption-text" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-style: italic; line-height: 16px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 3px; padding-right: 3px; padding-top: 6px;"&gt;
What is LiveCycle ES Server&lt;/div&gt;
&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
The server’s core services are all registered in a registry. &amp;nbsp;There can be orchestrated and used to perform different types of operations on PDF documents and now with Uberity’s extensions, to also talk to mobile (wireless) devices. &amp;nbsp;At the bottom of the Service tier is a Service Provider Interface (SPI) which is where back end systems often integrate. &amp;nbsp;Systems such as SAP that might consume and produce massive amounts of data for government or finance could link in to this layer to offer PDF forms as a point of interaction with humans, then automatically accept, validate and consume the form data provided by the user. &amp;nbsp;The users themselves can access data (by requesting a PDF form or perhaps by being pushed notifications of events) via the Service Invocation Layer at the top. &amp;nbsp;This is a J2EE server and can be set up in many different ways. &amp;nbsp;One option is often to install it on site however for evaluation, we have found that using the Amazon cloud is one of the best ways for evaluation. &amp;nbsp;Uberity has experience with this and we have found that while it takes an average first time installation of LiveCycle’s server on Red Hat Enterprise Linux with full SSL/TLS configuration and testing afterwards to take many over 2.5 days. &amp;nbsp;We highly recommend the turnkey Windows server installation however we do offer a flat fee to install this on the cloud for evaluation.&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
So what are the core component and services LiveCycle offers? &amp;nbsp; Here is a brief rundown. &amp;nbsp;The following is not an exhaustive list, rather an example to help explain what LiveCycle is.&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Forms ES – this module can be licensed to automate just about every aspect of forms processing. &amp;nbsp;The ability to save money over paper forms is astounding.&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Barcoded Forms ES – the barcoded forms module allows forms to be printed with a corresponding 2D bar code that can later be electronically scanned to recapture the form data electronically. &amp;nbsp;This is useful if you wanted to create something like an electronic voting system that had a fully audit able paper trail or if you needed someone to electronically fill out a form and sign it then mail it in to you for ingestion into your systems.&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Digital Signatures ES – since many companies use digital signatures now, often deemed more reliable and audit able than wet ink signatures, PDF documents support this feature. &amp;nbsp;The LiveCycle Server can perform massive scale operations using the Digital Signatures module like validating 100,000 signatures to ensure certificates have not been revoked.&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Output ES – Our put is used often for production print.&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
PDF Generator ES – this module provides almost every possible method for generating PDF, PostScript, FXA, XDP or other related files.&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Process Management ES – LiveCycle ES contains a full blown business process management capability.&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Reader Extensions ES – this module of LiveCycle unlocks features in Adobe Reader that enable it to perform more like Acrobat. &amp;nbsp;These extensions are often cheaper as a solution than forcing all users to buy copies of Adobe Acrobat.&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Rights Management ES – Rights Management is one of our favorite modules. &amp;nbsp;You can use this to protect documents from beign distributed beyond what you want and even expire a document. The perfect solution to Wikileaks!&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
There are many other modules and this is only designed to show you a small cross section of LiveCycle.&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
So what does LiveCycle look like when you use it? &amp;nbsp;This is actually very dependent upon your role. &amp;nbsp;There are Adminstrators and other various types of power users. &amp;nbsp;This group use the administrative console which is web based.&lt;/div&gt;
&lt;div class="wp-caption aligncenter" id="attachment_88" style="background-attachment: initial; background-clip: initial; ; background-image: initial; background-origin: initial; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-left-radius: 3px; border-top-right-radius: 3px; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1em; margin-left: auto; margin-right: auto; margin-top: 0px; max-width: 100%; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: center; width: 660px;"&gt;
&lt;a href="http://blog.uberity.com/wp-content/uploads/2012/04/LiveCycle-Administrators-view.png" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #af0a4f; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;&lt;img alt="The Adobe LiveCycle ES Administrator view" class="size-full wp-image-88" src="http://blog.uberity.com/wp-content/uploads/2012/04/LiveCycle-Administrators-view.png" style="border-bottom-style: none; border-color: initial; border-image: initial; border-left-style: none; border-right-style: none; border-style: initial; border-top-style: none; border-width: initial; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 5px; max-width: 100%; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="LiveCycle-Administrators-view" width="650" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="wp-caption-text" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-style: italic; line-height: 16px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 3px; padding-right: 3px; padding-top: 6px;"&gt;
LiveCycle ES Administrative login view&lt;/div&gt;
&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Most people who work with received forms or kick off business processes will use the Workspace interface. &amp;nbsp;This is where privileged users can also receive work that has been queued up for them to work with.&lt;/div&gt;
&lt;div class="wp-caption aligncenter" id="attachment_89" style="background-attachment: initial; background-clip: initial; ; background-image: initial; background-origin: initial; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-left-radius: 3px; border-top-right-radius: 3px; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1em; margin-left: auto; margin-right: auto; margin-top: 0px; max-width: 100%; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: center; width: 610px;"&gt;
&lt;a href="http://blog.uberity.com/wp-content/uploads/2012/04/What-is-LiveCycle-Workspace.png" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #af0a4f; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;&lt;img alt="LiveCycle Workspace" class="size-full wp-image-89" src="http://blog.uberity.com/wp-content/uploads/2012/04/What-is-LiveCycle-Workspace.png" style="border-bottom-style: none; border-color: initial; border-image: initial; border-left-style: none; border-right-style: none; border-style: initial; border-top-style: none; border-width: initial; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 5px; max-width: 100%; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="What-is-LiveCycle-Workspace" width="600" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="wp-caption-text" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-style: italic; line-height: 16px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 3px; padding-right: 3px; padding-top: 6px;"&gt;
The Adobe LiveCycle Workspace view&lt;/div&gt;
&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
For users who design actual PDF forms, this class will spend a lot of time in the Adobe LiveCycle Designer view. If you have ever wonder “what is LiveCycle Designer”, this is what you will see.&lt;/div&gt;
&lt;div class="wp-caption aligncenter" id="attachment_91" style="background-attachment: initial; background-clip: initial; ; background-image: initial; background-origin: initial; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-left-radius: 3px; border-top-right-radius: 3px; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1em; margin-left: auto; margin-right: auto; margin-top: 0px; max-width: 100%; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: center; width: 560px;"&gt;
&lt;a href="http://blog.uberity.com/wp-content/uploads/2012/04/LiveCycle-Forms-Designer.png" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #af0a4f; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;&lt;img alt="Adobe LiveCycle Designer" class="size-full wp-image-91" src="http://blog.uberity.com/wp-content/uploads/2012/04/LiveCycle-Forms-Designer.png" style="border-bottom-style: none; border-color: initial; border-image: initial; border-left-style: none; border-right-style: none; border-style: initial; border-top-style: none; border-width: initial; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 5px; max-width: 100%; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="LiveCycle-Forms-Designer" width="550" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="wp-caption-text" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-style: italic; line-height: 16px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 3px; padding-right: 3px; padding-top: 6px;"&gt;
Adobe LiveCycle Designer&lt;/div&gt;
&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Another class of developer users for LiveCycle will bind these PDF forms into Business Processes. &amp;nbsp;These users will spend a lot of time in LiveCycle WorkBench. &amp;nbsp;This is an eclipse based environment where business processes can be designed by using assets (such as the form above) in combination with business logic and LiveCycle Services. &amp;nbsp;This view looks similar to the graphic below.&lt;/div&gt;
&lt;div class="wp-caption aligncenter" id="attachment_92" style="background-attachment: initial; background-clip: initial; ; background-image: initial; background-origin: initial; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-left-radius: 3px; border-top-right-radius: 3px; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1em; margin-left: auto; margin-right: auto; margin-top: 0px; max-width: 100%; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: center; width: 606px;"&gt;
&lt;a href="http://blog.uberity.com/wp-content/uploads/2012/04/liveCycle-Businesss-Process.png" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #af0a4f; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;&lt;img alt="LiveCycle Business Process view" class=" wp-image-92 " src="http://blog.uberity.com/wp-content/uploads/2012/04/liveCycle-Businesss-Process.png" style="border-bottom-style: none; border-color: initial; border-image: initial; border-left-style: none; border-right-style: none; border-style: initial; border-top-style: none; border-width: initial; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 5px; max-width: 100%; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="liveCycle-Businesss-Process" width="596" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="wp-caption-text" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-style: italic; line-height: 16px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 3px; padding-right: 3px; padding-top: 6px;"&gt;
LiveCycle Business Process view&lt;/div&gt;
&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Finally, the Business process users will also rely on a set of services. &amp;nbsp;The view to these services are provided via the service registry. &amp;nbsp;The service registry interface is easy to use and will be the subject of future Uberity Educational Series videos that show LiveCycle Help.&lt;/div&gt;
&lt;div class="wp-caption aligncenter" id="attachment_93" style="background-attachment: initial; background-clip: initial; ; background-image: initial; background-origin: initial; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-left-radius: 3px; border-top-right-radius: 3px; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1em; margin-left: auto; margin-right: auto; margin-top: 0px; max-width: 100%; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: center; width: 446px;"&gt;
&lt;a href="http://blog.uberity.com/wp-content/uploads/2012/04/LiveCycle-Services-View.png" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #af0a4f; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;&lt;img alt="What are LiveCycle ES Services?" class=" wp-image-93 " src="http://blog.uberity.com/wp-content/uploads/2012/04/LiveCycle-Services-View.png" style="border-bottom-style: none; border-color: initial; border-image: initial; border-left-style: none; border-right-style: none; border-style: initial; border-top-style: none; border-width: initial; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 5px; max-width: 100%; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="LiveCycle-Services-View" width="436" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="wp-caption-text" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-style: italic; line-height: 16px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 3px; padding-right: 3px; padding-top: 6px;"&gt;
LiveCycle Services View&lt;/div&gt;
&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
This blog post only covers the basic elements of LiveCycle ES. &amp;nbsp;To put all the pieces together, this is what a fully implemented architecture could look like.&lt;/div&gt;
&lt;div class="wp-caption aligncenter" id="attachment_94" style="background-attachment: initial; background-clip: initial; ; background-image: initial; background-origin: initial; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-left-radius: 3px; border-top-right-radius: 3px; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1em; margin-left: auto; margin-right: auto; margin-top: 0px; max-width: 100%; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: center; width: 647px;"&gt;
&lt;a href="http://blog.uberity.com/wp-content/uploads/2012/04/Screen-Shot-2012-04-09-at-8.41.13-PM.png" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #af0a4f; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;&lt;img alt="LiveCycle ES Architecture with Uberity Mobile Deployment" class="size-full wp-image-94" src="http://blog.uberity.com/wp-content/uploads/2012/04/Screen-Shot-2012-04-09-at-8.41.13-PM.png" style="border-bottom-style: none; border-color: initial; border-image: initial; border-left-style: none; border-right-style: none; border-style: initial; border-top-style: none; border-width: initial; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 5px; max-width: 100%; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Screen Shot 2012-04-09 at 8.41.13 PM" width="637" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="wp-caption-text" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-style: italic; line-height: 16px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 3px; padding-right: 3px; padding-top: 6px;"&gt;
LiveCycle ES Architecture with Uberity Mobile Deployment&lt;/div&gt;
&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
As you can see, the development tools also include Java IDE’s such as Intellij and Eclipse. &amp;nbsp;We have produced a few LiveCycle tutorials on how to invoke LiveCycle from a Java environment using Eclipse and the LiveCycle SDK. &amp;nbsp;These are available at:&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
The setup video is here:&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;a href="http://blog.uberity.com/2012/03/uberity-video-education-series-livecycle-es/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #af0a4f; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="Uberity LiveCycle ES java invocation"&gt;http://blog.uberity.com/2012/03/uberity-video-education-series-livecycle-es/&lt;/a&gt;&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
and a video of how to migrate from EJB invocation to SOAP is here:&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;a href="http://blog.uberity.com/2012/04/tutorial-invoke-livecycle-es3-using-soap/" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #af0a4f; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank" title="Invoking LiveCycle ES3 using SOAP"&gt;http://blog.uberity.com/2012/04/tutorial-invoke-livecycle-es3-using-soap/&lt;/a&gt;&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Also shown above is the fact that third parties can develop their own functionality around LiveCycle ES. &amp;nbsp;Uberity specializes in building mobile interactions that integrate with the Adobe LiveCycle ES3 platform. &amp;nbsp;The next time you hear someone ask “What is LiveCycle”, this is a blog post we hope will help others answer that question.&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
As with all our posts, if you do not feel your questions are answered here or want to follow up, please contact us at info@uberity.com for more information. &amp;nbsp;Our experience can save your company money. &amp;nbsp;We can show you how a forms initiative will be more successful on LiveCycle ES than any other platform. &amp;nbsp;Whether it be a PDF form, HTML5 or custom native iOS application, we are here to help.&lt;/div&gt;
&lt;div style="; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 1.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-7389285606869669061?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/7389285606869669061/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/04/what-is-livecycle-es-and-how-can-it.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/7389285606869669061?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/7389285606869669061?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/04/what-is-livecycle-es-and-how-can-it.html" title="What is LiveCycle ES and how can it save you money?" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0UERX4_eCp7ImA9WhVQEkU.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-5979388592925436591</id><published>2012-04-01T06:00:00.000-07:00</published><updated>2012-04-01T06:00:04.040-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-01T06:00:04.040-07:00</app:edited><title>Vancouver to Bring Steam Back as Part of Greenest City Initiative</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Mayor Gregor Robertson's long term vision to make Vancouver BC the greenest city in the world by 2020 has already started taking shape in so many ways. &amp;nbsp;Some of the top issues to be addressed are well under way such as urban gardening and the right to own up to &lt;a href="http://vancouver.ca/bylaws/9150c.pdf"&gt;4 chickens per household&lt;/a&gt;. &amp;nbsp;Other components of the plan include more bike lanes and better rapid transit. &amp;nbsp;On the latter note, a brilliant scheme is now before tomorrow nights' city council meeting and expected to pass with flying colors.&lt;br /&gt;
&lt;br /&gt;
The idea is to increase the current Vancouver demonstration trolley system from Granville Island to Science world to new locations as shown on the map below.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-3SQdhg4u6yA/T3U8xF2DNCI/AAAAAAAABJ8/RXEYwJGv3VQ/s1600/Screen+Shot+2012-03-29+at+9.45.32+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-3SQdhg4u6yA/T3U8xF2DNCI/AAAAAAAABJ8/RXEYwJGv3VQ/s320/Screen+Shot+2012-03-29+at+9.45.32+PM.png" width="317" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
The new exciting twist has been a plan developed behind closed doors for months but has now been made public. &amp;nbsp;The transit cars themselves will be none other than Steam engines from the days when steam power ruled. &amp;nbsp;The reason behind this scheme is that renewable energy is one of the top priorities for the Green Plan and Wood powered Steam trains for passenger trolleys meet that criteria. &amp;nbsp;The engines, two initially from the old baldwin factory (including the 2-6-2 show below), will be retrofitted to scrub any&amp;nbsp;pollutant&amp;nbsp;by products from the smokestacks as well as&amp;nbsp;being&amp;nbsp;equipped with modern spark arrestors and quieter running gear. &amp;nbsp; Here is a photo from a recent test track section of one of the first routes to be run along Pacific Boulevard. &amp;nbsp;This rute will be coupled with Science world.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-wjiRVPRdo5c/T3VHjbAZ5WI/AAAAAAAABKE/w-3CklRNcX0/s1600/Screen+Shot+2012-03-29+at+10.40.34+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="297" src="http://4.bp.blogspot.com/-wjiRVPRdo5c/T3VHjbAZ5WI/AAAAAAAABKE/w-3CklRNcX0/s400/Screen+Shot+2012-03-29+at+10.40.34+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
While electric trolleys were considered, city council feels that the steam approach, cupled with 1940's style coach cars, will enhance Vancouver's &amp;nbsp;tourism capacity. &amp;nbsp;According to Tourism BC, the immediate affect wil be to bring in over 250,000 new visitors each year who flock annually to various steam engine events. &amp;nbsp;The offset of carbon but using green energy coupled with a unique look and feel for the city of Vancouver are a clear winner. &amp;nbsp;Andrea Reimer had argued that the city should opt for a narrow guage railway (36") vs the standard 48" which the latter would allow interoperability with existing trains. &amp;nbsp;No clear motivation was given for her reasoning.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
it is estimated that the steam train powered street car system, if eventually expanded to Marpole via the Arbutus corridor, could save over 2,6&amp;nbsp;metric&amp;nbsp;tonnes of CO2&amp;nbsp;annually while adding over 300 new jobs and making Vancouver a unique city attracting an estimated $33,000,000 in new tourism revenue each year.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
How to get involved:&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Contact City hall at&amp;nbsp;&lt;a href="http://talkvancouver.com/transportation-forum"&gt;http://talkvancouver.com/transportation-forum&lt;/a&gt;&amp;nbsp;and express your support for this plan. &amp;nbsp;Let's work together to make our city the best city in the world! &amp;nbsp;Make sure you let them know you found out about this on Technoracle, the leading source of open data.&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-5979388592925436591?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/5979388592925436591/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/04/vancouver-to-bring-steam-back-as-part.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/5979388592925436591?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/5979388592925436591?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/04/vancouver-to-bring-steam-back-as-part.html" title="Vancouver to Bring Steam Back as Part of Greenest City Initiative" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-3SQdhg4u6yA/T3U8xF2DNCI/AAAAAAAABJ8/RXEYwJGv3VQ/s72-c/Screen+Shot+2012-03-29+at+9.45.32+PM.png" height="72" width="72" /><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;DEAEQHczfCp7ImA9WhVRGUg.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-3617032512284282971</id><published>2012-03-28T10:45:00.000-07:00</published><updated>2012-03-28T10:45:01.984-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-28T10:45:01.984-07:00</app:edited><title>Adobe MAX 2012 - a Dilemna</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
I was scouring my inbox and came across an old email I had sent myself while still at Adobe. &amp;nbsp;It turns out that mere days before I got laid off on Nov 8, I made the Adobe MAX 2012 Masters list. &amp;nbsp;The email lists all of the MAX masters. &amp;nbsp;Written in the chain of that email was also a note from a former colleague saying that the high mark at MAX (4.96/5 with over 70 responses not once but twice!) was the highest ever for a hands on lab session. &amp;nbsp;This was further complicated by the fact that it was a Bring your own Laptop lab, meaning the attendees take the session on their own laptops and mobile devices. Needless to say, the probability of something going wrong is exponentially complicated.&lt;br /&gt;
&lt;br /&gt;
The Adobe MAX 2011 Masters list is posted here&amp;nbsp;&lt;a href="http://max.adobe.com/blog/2011/max-masters-announced.html"&gt;http://max.adobe.com/blog/2011/max-masters-announced.html&lt;/a&gt;&lt;br /&gt;

&lt;br /&gt;
&lt;ul class="ul1"&gt;
&lt;li class="li2"&gt;Adam Lehman, Adobe Systems&lt;/li&gt;
&lt;li class="li2"&gt;Bryan O’Neil Hughes, Adobe Systems&lt;/li&gt;
&lt;li class="li2"&gt;Chris Converse, Codify Design&lt;/li&gt;
&lt;li class="li2"&gt;Chris Kitchener, Adobe Systems&lt;/li&gt;
&lt;li class="li2"&gt;Colin Smith, Adobe Systems&lt;/li&gt;
&lt;li class="li2"&gt;Dani Beaumont, Adobe Systems&lt;/li&gt;
&lt;li class="li2"&gt;Dave Helmly, Adobe Systems&lt;/li&gt;
&lt;li class="li2"&gt;David Nuescheler, Adobe Systems&lt;/li&gt;
&lt;li class="li2"&gt;Duane Nickull, &lt;strike&gt;Adobe Systems&lt;/strike&gt; (Correction: Uberity)&lt;/li&gt;
&lt;li class="li2"&gt;Greg Rewis, Adobe Systems&lt;/li&gt;
&lt;li class="li2"&gt;Jack Davis, Wow, Inc.&lt;/li&gt;
&lt;li class="li2"&gt;James Williamson, Lynda.com&lt;/li&gt;
&lt;li class="li2"&gt;Jason Levine, Adobe Systems&lt;/li&gt;
&lt;li class="li2"&gt;Jim Babbage, Adobe Systems&lt;/li&gt;
&lt;li class="li2"&gt;Joe Rinehart, Booz Allen Hamilton&lt;/li&gt;
&lt;li class="li2"&gt;Marc Esher, Booz Allen Hamilton&lt;/li&gt;
&lt;li class="li2"&gt;Michael Chaize, Adobe Systems&lt;/li&gt;
&lt;li class="li2"&gt;Michael Labriola, Digital Primates&lt;/li&gt;
&lt;li class="li2"&gt;Michael Ninness, Lynda.com&lt;/li&gt;
&lt;li class="li2"&gt;Mordy Golding, Design Responsibly&lt;/li&gt;
&lt;li class="li2"&gt;Nicholas Zakas, NCZ Consulting&lt;/li&gt;
&lt;li class="li2"&gt;Patti Sokol, Adobe Systems&lt;/li&gt;
&lt;li class="li2"&gt;Paul Trani, Adobe Systems&lt;/li&gt;
&lt;li class="li2"&gt;Russell Brown, Adobe Systems&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="p1"&gt;
Of course now that I am with &lt;a href="http://www.uberity.com/"&gt;Uberity Technology Corporation&lt;/a&gt;, I have to decide if I would even go. &amp;nbsp;My inclination is probably not unless I get invited. &amp;nbsp;There are tons of other skilled speakers and I have had my turns at Adobe MAX. &amp;nbsp;Adobe MAX 2012 would be fun however so I have to keep my mind open. &amp;nbsp;Let's see what happens.&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-3617032512284282971?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/3617032512284282971/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/03/adobe-max-2012-dilemna.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/3617032512284282971?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/3617032512284282971?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/03/adobe-max-2012-dilemna.html" title="Adobe MAX 2012 - a Dilemna" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><thr:total>3</thr:total></entry><entry gd:etag="W/&quot;C0EGR345eip7ImA9WhVTGUQ.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-9082807895090834185</id><published>2012-03-05T15:53:00.002-08:00</published><updated>2012-03-05T15:53:46.022-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-05T15:53:46.022-08:00</app:edited><title>Uberity - Five important lessons for startups</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
I am in Vienna, about to give a &lt;a href="http://www.tuwien.ac.at/aktuelles/news_detail/article/7423/?no_cache=1"&gt;keynote talk&lt;/a&gt; tomorrow to share the millions of blunders and mistakes I have personally made over the last fifteen years of high tech startups. &amp;nbsp;One of our last companies was even acquired by Adobe Systems for a component that made is used today for &lt;a href="http://uberity.com/services/livecycle.php"&gt;Consulting Services LiveCycle ES&lt;/a&gt;. &amp;nbsp;The reason I do this is in hopes to share some of the errors I wish I had someone warn me about. &amp;nbsp;While I won't tell you all of them in advance, here is a list of things that Uberity will do or not do during it's startup phase.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. We will keep a clean IP trail. &lt;/b&gt;&amp;nbsp;Uberity is developing some very interesting intellectual property we feel will be required by most small to medium sized enterprises as they move to mobile in the next 5 years. &amp;nbsp;Without divulging the details of what we are building, one thing I can promise is that the entire IP development process will be documented from start to finish. &amp;nbsp;Every single person who comes into contact with our technology will sign an NDA and/or IP invention agreement (and he fairly compensated for anything they contribute). &amp;nbsp;This is important if your overall exist strategy is to be bought out by a larger company. &amp;nbsp;Startups need to realize that larger companies often have very skilled legal business units who know what is required to ensure the company acquiring the startup does not expose themselves to undue risk. &amp;nbsp;Startups need to document and record every step of IP development and ensure they are thorough.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. Ensure you understand your fellow startup team's personal desires and goals.&lt;/b&gt; &amp;nbsp;Understanding what motivates them and what they seek out of life is very important to understand how they imagine themselves working for the startup over the next decade. &amp;nbsp;The people at Uberity are like my brothers and sisters from a different mother. I know them, I know what they like and don't like. &amp;nbsp;I trust them and would follow them into battle. &amp;nbsp;They are your company, not the IP. &amp;nbsp;Treat them with immense respect and it shall be returned. &amp;nbsp;Set examples and constantly check in with them to see if the startup is matching their expectations.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3. Be ethical.&lt;/b&gt; &amp;nbsp;Just today, I worked with a client and solved a very technical issue in about three hours. &amp;nbsp;There is a huge implied trust in the professional services relationship that I see violated time after time by&amp;nbsp;unscrupulous&amp;nbsp;companies figuring they can invoice people for extra hours and they will never find out. &amp;nbsp;I have news for you. &amp;nbsp;Even if they do not find out, you are really ruining your own reputation. &amp;nbsp;Uberity under-promises and over-delivers on every contract. &amp;nbsp;By doing this, we get repeat customers. &amp;nbsp;If a company is unethical, it will come out in the long term. &amp;nbsp;We are committed to being ethical in our entire customer relationships. &amp;nbsp;We have even done some smaller jobs where we did not bill as the time it took us to solve the problem was too minimal to even consider billing. &amp;nbsp;This does not imply weakness however. &amp;nbsp;We are ethical, we plan to be in business a long time. &amp;nbsp;We will not compromise this, no matter how tempting. &amp;nbsp;We also pay for software that we use to make money with. &amp;nbsp;We believe that a little honesty goes a long way in business and plan to make it a core part of our existence.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4. Don't be afraid to walk away.&lt;/b&gt; &amp;nbsp;We had an original plan to pursue a business model whereby people could post tasks and others could respond to them, perform them and get paid. &amp;nbsp;After performing weeks of due diligence, we discovered that these companies are likely not even earning revenue that would cover the interest for the funds VC's invested into them for a year. &amp;nbsp;After validating, re-validating, we decided to walk away and were prepared to re-assess our core beliefs and mission. &amp;nbsp;These other companies will probably succeed in the long term, we just feel we can make more revenue for less effort doing other things. &amp;nbsp;It takes a mature person to admit they had wrong perceptions and be willing to walk away as opposed to being pressured into sticking with a bad idea until it goes into a death spiral. &amp;nbsp;I am grateful to have partners in Uberity that are wise enough to understand this, powerful enough to embrace this and courageous enough to make changes when others might not have.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-tLOT45836Vc/T1VQMgS6DLI/AAAAAAAABJI/LgHgpJaqu4I/s1600/Screen+Shot+2012-03-06+at+12.41.25+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="217" src="http://2.bp.blogspot.com/-tLOT45836Vc/T1VQMgS6DLI/AAAAAAAABJI/LgHgpJaqu4I/s320/Screen+Shot+2012-03-06+at+12.41.25+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;5. Build a business plan and answer the tough questions. &lt;/b&gt;&amp;nbsp;A business plan is not just to show investors, it helps put everyone in the company on the same page. &amp;nbsp;We got together and worked out what was required and what needs to be documented. &amp;nbsp;We are working on our business plan and it is hard. &amp;nbsp;It is very tempting to come across a tough question and think "I can just not address this now" however the reality is that the tough questions have to be answered.&lt;br /&gt;
&lt;br /&gt;
Maybe none of this is new to you. &amp;nbsp;My hope is that someone writing a startup will see this and it will save you time and effort. &amp;nbsp;Uberity is not just about making money. &amp;nbsp;We are part of the technology community. &amp;nbsp;Our contributions are given freely with no warranty or accuracy or value. &amp;nbsp;Feel free to use or disregard this data however you wish.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-9082807895090834185?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/9082807895090834185/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/03/uberity-five-important-lessons-for.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/9082807895090834185?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/9082807895090834185?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/03/uberity-five-important-lessons-for.html" title="Uberity - Five important lessons for startups" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-tLOT45836Vc/T1VQMgS6DLI/AAAAAAAABJI/LgHgpJaqu4I/s72-c/Screen+Shot+2012-03-06+at+12.41.25+AM.png" height="72" width="72" /><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;CE4CR3o7fCp7ImA9WhVTF0w.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-4470292921347337798</id><published>2012-03-01T22:09:00.001-08:00</published><updated>2012-03-02T10:29:26.404-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-02T10:29:26.404-08:00</app:edited><title>New Mobile Application to get you out of Trouble!</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
My friend David Wolpe recently launched a cool little mobile application that can definitely save you more grief than the $0.99 it costs. &amp;nbsp;ApologyWiz (Android: &amp;nbsp;&lt;span class="s2"&gt;&lt;a href="http://bit.ly/y8ISQi"&gt;http://bit.ly/y8ISQi&lt;/a&gt;&amp;nbsp;and iOS&amp;nbsp;&lt;/span&gt;&lt;a href="http://bit.ly/zWuSNY"&gt;http://bit.ly/zWuSNY&lt;/a&gt;)&lt;span class="s2"&gt;&amp;nbsp;&lt;/span&gt;has already helped me when I was helping a clerk who was hopeless at copying down the data I gave her for each question she asked me. &amp;nbsp;The response "I'm terribly sorry I am always right". &amp;nbsp;She laughed.&lt;br /&gt;
















&lt;br /&gt;
The apologies are chosen based on either a manually sift through the massive array of apologies (many of them funny enough to keep you rolling in laughter) or use the built in device accelerometer to allow it to find one for you. &amp;nbsp;This is version one and it works. &amp;nbsp;For the future versions it would be cool to have categories and maybe a way for crowd-sourcing apologies and also excuses. &amp;nbsp;I have a few of the latter to contribute but my all time favorite is "it was like that when I got here" which covers just about everything.&lt;br /&gt;
&lt;br /&gt;
Great job David - I cannot wait to see more from you!&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-vQt4m8_wDEQ/T1Bh5-oeKAI/AAAAAAAABI8/jVh9ogI81zA/s1600/Screen+Shot+2012-03-01+at+9.59.23+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-vQt4m8_wDEQ/T1Bh5-oeKAI/AAAAAAAABI8/jVh9ogI81zA/s320/Screen+Shot+2012-03-01+at+9.59.23+PM.png" width="193" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-4470292921347337798?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/4470292921347337798/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/03/new-mobile-application-to-get-you-out.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/4470292921347337798?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/4470292921347337798?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/03/new-mobile-application-to-get-you-out.html" title="New Mobile Application to get you out of Trouble!" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-vQt4m8_wDEQ/T1Bh5-oeKAI/AAAAAAAABI8/jVh9ogI81zA/s72-c/Screen+Shot+2012-03-01+at+9.59.23+PM.png" height="72" width="72" /><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;DEEHRn06fCp7ImA9WhVTFEk.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-1743568255949957785</id><published>2012-02-27T06:03:00.000-08:00</published><updated>2012-02-28T08:30:37.314-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-28T08:30:37.314-08:00</app:edited><title>Uberity releases Free/Open Source LiveCycle ES SMS Module</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
On Friday Uberity Technology Corporation launched a free and open source code &lt;a href="http://blog.uberity.com/2012/02/extending-adobe-livecycle-es-to-use-sms-in-business-processes/"&gt;Adobe LiveCycle ES SMS module&lt;/a&gt; that allows &lt;a href="http://uberity.com/services/livecycle.php"&gt;LiveCycle Services&lt;/a&gt; and Processes to integrate SMS messaging into the process flow. &amp;nbsp;The SMS module was written by Matt MacKenzie using the Twilio SMS service. &amp;nbsp;To make it work, you can download the source from Uberity, read the instructions, get an account from Twilio and you're good to go.&lt;br /&gt;
&lt;br /&gt;
GitHub Project -&amp;nbsp;&lt;a href="https://github.com/uberity/uberity-lc-twilio"&gt;https://github.com/uberity/uberity-lc-twilio&lt;/a&gt;&lt;br /&gt;
Twilio Account Setup -&amp;nbsp;&lt;a href="http://www.twilio.com/"&gt;http://www.twilio.com/&lt;/a&gt;&lt;br /&gt;
Uberity LiveCycle ES Blog -&amp;nbsp;&lt;a href="http://blog.uberity.com/2012/02/extending-adobe-livecycle-es-to-use-sms-in-business-processes/"&gt;http://blog.uberity.com/2012/02/extending-adobe-livecycle-es-to-use-sms-in-business-processes/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-ZGBHo_eOElE/T0gmb2xwWVI/AAAAAAAABIo/EkPiM6xzRfM/s1600/Screen+Shot+2012-02-24+at+3.22.58+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="202" src="http://3.bp.blogspot.com/-ZGBHo_eOElE/T0gmb2xwWVI/AAAAAAAABIo/EkPiM6xzRfM/s400/Screen+Shot+2012-02-24+at+3.22.58+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-1743568255949957785?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/1743568255949957785/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/02/uberity-releases-freeopen-source.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/1743568255949957785?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/1743568255949957785?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/02/uberity-releases-freeopen-source.html" title="Uberity releases Free/Open Source LiveCycle ES SMS Module" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-ZGBHo_eOElE/T0gmb2xwWVI/AAAAAAAABIo/EkPiM6xzRfM/s72-c/Screen+Shot+2012-02-24+at+3.22.58+PM.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0MGRHs4cCp7ImA9WhVTEU0.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-3799348808057946867</id><published>2012-02-24T09:43:00.000-08:00</published><updated>2012-02-24T09:43:45.538-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-24T09:43:45.538-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="apache flex adobe flash air" /><title>Apache Launches the new official Flex Logo</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The new Apache Flex logo rocks. &amp;nbsp;In case you haven't seen it, check out the video below:&lt;br /&gt;
&lt;/div&gt;&lt;iframe allowfullscreen="" frameborder="0" height="225" mozallowfullscreen="" src="http://player.vimeo.com/video/37364265?title=0&amp;amp;byline=0&amp;amp;portrait=0" webkitallowfullscreen="" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;a href="http://vimeo.com/37364265"&gt;Apache-Flex-Logo&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
There has been a lot of discusion lately on the future of Flex.  Adobe has published some white papers to clarify their position.  The future of Flex seemed a bit murky but the latest paper appears to be more promising, other than the fact about 65% of the words are marketing ramble that talks about what Flash did in the past.  If you are interest in this topic, read the document entitled &lt;a href="http://www.adobe.com/devnet/flex/whitepapers/roadmap.html"&gt;Adobe's view of Flex and its commitments to Flex in the future&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
then scan forward to the Flash Runtimes Roadmap at  &lt;br /&gt;
&lt;a href="http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/flashplatform/whitepapers/flash-runtimes-roadmap.pdf"&gt;http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/flashplatform/whitepapers/flash-runtimes-roadmap.pdf&lt;/a&gt;&amp;nbsp;(skip forward to the top of page 3. &amp;nbsp;That is where the content actually starts talking about the runtimes roadmap).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-3799348808057946867?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/3799348808057946867/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/02/apache-launches-new-official-flex-logo.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/3799348808057946867?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/3799348808057946867?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/02/apache-launches-new-official-flex-logo.html" title="Apache Launches the new official Flex Logo" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;A0EGRHY6eCp7ImA9WhVSFkg.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-4839958596089803359</id><published>2012-02-10T10:48:00.000-08:00</published><updated>2012-03-13T10:27:05.810-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-13T10:27:05.810-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Mobile Enterprise Application Platform" /><category scheme="http://www.blogger.com/atom/ns#" term="SaaS" /><category scheme="http://www.blogger.com/atom/ns#" term="Merchant processing accounts" /><category scheme="http://www.blogger.com/atom/ns#" term="mobile payment gateways" /><category scheme="http://www.blogger.com/atom/ns#" term="MEAP" /><category scheme="http://www.blogger.com/atom/ns#" term="acronyms" /><category scheme="http://www.blogger.com/atom/ns#" term="soa" /><title>Understanding MEAP -  Mobile Enterprise Application Platforms</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
MEAP's are going to be the new *aaS. &amp;nbsp;If you don't understand that statement, consider yourself blessed. You may feel like you need a &lt;a href="http://www.computerforensicsdegrees.org/"&gt;computer forensics&amp;nbsp;degree&lt;/a&gt; to understand it all.  &amp;nbsp;Understanding technology industry analysts and acronyms is a difficult task. A relatively new category of Gartner Magic Quadrants have emerged one one in particular is a category that we think deserves a lot of attention. &amp;nbsp;&lt;b&gt;&lt;i&gt;Mobile Enterprise Application Platforms&lt;/i&gt;&lt;/b&gt; are not typical software like your daddy used to buy. &amp;nbsp;MEAP's are collections of services and components (including frameworks, profiles, libraries and more) that facilitate the types of functionality required to develop and maintain applications running on wireless devices (aka mobile devices).&lt;br /&gt;
&lt;br /&gt;
Now I don't subscribe to hype and BS and neither should you. &amp;nbsp;As the former chair of the &lt;a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-rm"&gt;OASIS Service Oriented Architecture Technical Committee&lt;/a&gt;, the group that produced the standard reference model for SOA, I never anticipated that people would run with this and start all these &lt;b&gt;(INSERT ANY CAPITAL LETTER FROM THE ALPHABET HERE)aaS&lt;/b&gt;. &amp;nbsp;Software as a Service (SaaS) is not really that different from hosted solutions is it? &amp;nbsp;If you disagree, you'd better hurry and claim one while there are still letters left for acronyms. &amp;nbsp;I think XaaS is not used yet.&lt;br /&gt;
&lt;br /&gt;
When I see value though, I want to point it out. &amp;nbsp;MEAP is one of those rare acronyms that seems to be vastly underestimated by the majority of the industry. &amp;nbsp;The term itself seems to have come from Analyst firm Gartner in a paper published in April 2011 (Gartner, Magic Quadrant for Mobile Enterprise Application Platforms, Michael J. King, William Clark). I believe I read somewhere that Gartner believes over 95% of the technology industry will use some form of MEAP by 2012. &amp;nbsp;When I try to research this topic on Google, very little information comes up. &amp;nbsp;Regardless of the title, let's explore what a MEAP is and what it does.&lt;br /&gt;
&lt;br /&gt;
In their paper, "The rule of three" is used as a quantifier for identifying when this functionality might be of interest. &amp;nbsp; Quoting from Gartner (via Wikipedia):&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;i&gt;The Rule of Three refers to a concept developed by analyst firm Gartner, whereby companies are encouraged to consider the MEAP approach to mobility when they need their mobile solutions to:&lt;/i&gt;&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;&lt;i&gt;Support three or more mobile applications&lt;/i&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;&lt;i&gt;Support three or more mobile operating systems (OS)&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;&lt;i&gt;Integrate with at least three back-end data sources&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;i&gt;According to Gartner, using a common mobility platform, like a MEAP, brings considerable savings and strategic advantages in this situation.&lt;/i&gt;&lt;/blockquote&gt;
This helps frame the problem that MEAP's are trying to solve. &amp;nbsp;The ability to support these patterns requires a common set of "&lt;b&gt;&lt;i&gt;things&lt;/i&gt;&lt;/b&gt;". These "&lt;b&gt;&lt;i&gt;things&lt;/i&gt;&lt;/b&gt;" enable several common patterns of enterprise architecture to mobile device communication. &amp;nbsp;Some of the more common patterns are:&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://www.apple.com/ipad/business/integration/mdm/"&gt;Mobile Device Management &lt;/a&gt;(MDM)&lt;/b&gt; - manages, monitors and secures distrubuted mobile environments.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Multiple&amp;nbsp;&lt;a href="http://wso2.org/library/335"&gt;Message Exchange Patterns&lt;/a&gt;&lt;/b&gt; such as &lt;b&gt;Push Notifications&lt;/b&gt; that are respect end users data plans and battery life.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Advanced Security Features &lt;/b&gt;such as remote session management and data wipes. &amp;nbsp;These are sometimes viewed as part of MDM.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Mobile Payment Gateway Services&lt;/b&gt; - services that can access a&amp;nbsp;&lt;a href="http://www.chargenational.com/ca/en/merchant-account/"&gt;Merchant Processing Account&lt;/a&gt;&amp;nbsp;and extend that functionality via the MEAP to the mobile environment.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Analytics&lt;/b&gt; of user interactions.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Temporal-Spatial Capabilities&lt;/b&gt; - the ability to work with geocoded and location graphs&lt;/li&gt;
&lt;li&gt;&lt;b&gt;User Administration&lt;/b&gt; and management&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Data Synchronization &lt;/b&gt;when mobile devices become re-connected to networks.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Data Transformations&lt;/b&gt; to facilitate existing data being marshaled into formats that are optimized for mobile such as JSON or even HTML5 for mobile websites.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Data Persistence&lt;/b&gt; usually on both the mobile device and the server side.&lt;/li&gt;
&lt;/ul&gt;
This is by no means an exhaustive list of items. &amp;nbsp;Uberity will be writing some more about this topic in coming weeks. It is clear to use that some, if not all of these components, will be of interest to a large number of customers.&lt;br /&gt;
&lt;br /&gt;
One last word. &amp;nbsp;I don't want to ever see someone pitching "MEAPaaS" but sadly I know it will probably happen.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-4839958596089803359?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/4839958596089803359/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/02/understanding-meap-mobile-enterprise.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/4839958596089803359?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/4839958596089803359?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/02/understanding-meap-mobile-enterprise.html" title="Understanding MEAP -  Mobile Enterprise Application Platforms" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;A0cBSX84cCp7ImA9WhRbF0k.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-1042024299769471929</id><published>2012-02-08T16:57:00.000-08:00</published><updated>2012-02-08T16:57:38.138-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-08T16:57:38.138-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="asinine" /><category scheme="http://www.blogger.com/atom/ns#" term="delusional" /><category scheme="http://www.blogger.com/atom/ns#" term="surreal" /><category scheme="http://www.blogger.com/atom/ns#" term="patent troll" /><title>Patent Troll claims he invented Internet</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;At the risk of being sued myself, I find I have to really speak out about this news story. &amp;nbsp;Found on &lt;a href="http://tech.slashdot.org/submission/1935625/patent-troll-claims-ownership-of-interactive-web?sdsrc=rel"&gt;SlashDot&lt;/a&gt; and after some research, it appears that Michael Doyle and Eola Technologies are suing what will inevitably be any one who uses the internet or deploys a networked coputer product.  He is seeking royalties for the use of just about every modern interactive Internet technology, like watching videos or suggesting instant search results.&lt;br /&gt;
&lt;br /&gt;
Michael and his company formerly sued Microsoft and won a $521 million lawsuit after successfully claiming that their I&lt;a href="http://news.cnet.com/2100-1012-5062409.html"&gt;nternet Explorer browser infringed one of his patents&lt;/a&gt;. &amp;nbsp; &amp;nbsp;Hey Michael! &amp;nbsp;Guess what? &amp;nbsp;No one likes patent trolls. &amp;nbsp;On top of that, I am pretty sure that the DarpaNet founders as well as Tim Berners Lee may have something to say about this. &amp;nbsp;In fact, I would be totally willing to testify about a pre-IP/TCP program I wrote back in around 1980 that enabled two computers to communicate using 600 baud modems, 7 stop bits and half duplex.&lt;br /&gt;
&lt;br /&gt;
Mr Doyle's lawsuit is rumoured to claim he created a program to view embryos online. &amp;nbsp;He furthermore claims this was actually the very first program which allowed users to interact with images inside a browser window. &amp;nbsp;In my opinion, if you abstract "browser" to a "graphical rendering tool that parses and interprets bytes into one or more interactive graphic user elements", then I also did this (albeit prior to streaming video) in about 1984 using GWBasic. &amp;nbsp; &amp;nbsp;This also passed very&amp;nbsp;rudimentary&amp;nbsp;images over a network and changed the images at a rate of about 3 per second, creating the illusion of a crude video.&lt;br /&gt;
&lt;br /&gt;
If Michael wins, I will certainly be calling up my old Computer Science professor &amp;nbsp;Mr. Langston and a few former friend who can document this.&lt;br /&gt;
&lt;br /&gt;
Read more: &lt;a href="http://www.dailymail.co.uk/news/article-2098415/Patent-troll-sues-worlds-biggest-internet-firms-600m-claiming-ownership-interactive-web.html#ixzz1lqEmmLil"&gt;http://www.dailymail.co.uk/news/article-2098415/Patent-troll-sues-worlds-biggest-internet-firms-600m-claiming-ownership-interactive-web.html#ixzz1lqEmmLil&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-1042024299769471929?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/1042024299769471929/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/02/patent-troll-claims-he-invented.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/1042024299769471929?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/1042024299769471929?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/02/patent-troll-claims-he-invented.html" title="Patent Troll claims he invented Internet" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DEEBQ3c8eCp7ImA9WhRbFk4.&quot;"><id>tag:blogger.com,1999:blog-17460203.post-744159004873403223</id><published>2012-02-07T09:43:00.000-08:00</published><updated>2012-02-07T09:44:12.970-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-07T09:44:12.970-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mobile application development strategy" /><category scheme="http://www.blogger.com/atom/ns#" term="uberity" /><title>Uberity is now live!  Free WhitePaper on Mobile Strategy</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Today &lt;a href="http://uberity.com/"&gt;Uberity Technology Corporation&lt;/a&gt; officially opened the doors for business and launched it's website. Since leaving Adobe, I have been blessed to get back together with the best developers and engineering staff I have ever worked with and start building the technology we think will help enterprises transition to extend their IT systems to the mobile space. &amp;nbsp;&lt;b&gt;Uberity's mission&lt;/b&gt; is to &lt;i&gt;&lt;b&gt;help's it's customers to define, develop, deploy and support the technology that can make or break their business.&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.uberity.com/"&gt;&lt;img border="0" height="208" src="http://4.bp.blogspot.com/-0xuveiqsOSo/TzFicL8leHI/AAAAAAAABHo/cVnoZwBNyu8/s320/Screen+Shot+2012-02-07+at+9.41.34+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
One of the first offerings we are releasing is a free White Paper on &lt;a href="http://uberity.com/whitepapers/Mobile-Application-Development-Strategy_FINAL.pdf"&gt;Enterprise Mobile Application &amp;nbsp;Development Strategies&lt;/a&gt;. &amp;nbsp;This is a pragmatic look at the challenges facing executives and managers who are responsible for their companies long term mobile development strategies. &amp;nbsp;Most of the content of this white paper comes from learning the hard way what does and does not work for mobile application development strategies. &amp;nbsp;There are plenty of options from cross compiling to running through an intermediate interpretation layer to developing natively for each stack. &amp;nbsp;This White Paper explores the key considerations along with the strengths and benefits of each approach. &amp;nbsp;More will be written on this topic later.&lt;br /&gt;
&lt;br /&gt;
Another area we are working within is Adobe LiveCycle ES and Data Services. &amp;nbsp;Uberity employs several former Senior Adobe Engineering staff who worked on the core LiveCycle platform. &amp;nbsp;Along with myself, we feel we have a team that is skilled and capable to take on any LiveCycle work. &amp;nbsp;Uberity has recently successfully completed some LiveCycle Professional Services work and is open for business to hear your needs. &amp;nbsp;With a combined experience of over 32 years of LiveCycle expertise, our team is ready to take on new challenges. &amp;nbsp;If interested, contact duane at uberity dot com.&lt;br /&gt;
&lt;br /&gt;
Another area we are building out is a health care solution based on using Neo4J as a graphDB back end to integrate mobile functionality. &amp;nbsp;This project is built using our modular approach to enterprise architecture and the core patterns we have implemented can be used for other verticals as well.&lt;br /&gt;
&lt;br /&gt;
On a personal note, this is the most exciting thing I have done in technology for years. We've already closed a lot of business and are hungry for more.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Original post at &lt;a href="http://technoracle.blogspot.com"&gt;http://technoracle.blogspot.com&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17460203-744159004873403223?l=technoracle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://technoracle.blogspot.com/feeds/744159004873403223/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://technoracle.blogspot.com/2012/02/uberity-is-now-live-free-whitepaper-on.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/744159004873403223?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17460203/posts/default/744159004873403223?v=2" /><link rel="alternate" type="text/html" href="http://technoracle.blogspot.com/2012/02/uberity-is-now-live-free-whitepaper-on.html" title="Uberity is now live!  Free WhitePaper on Mobile Strategy" /><author><name>Duane Nickull</name><uri>http://www.blogger.com/profile/08767498160563891543</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_JcWq9uCkob8/SJuAhIt9GyI/AAAAAAAAARU/gS6UrWdmuyM/s1600-R/Picture%2B44.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-0xuveiqsOSo/TzFicL8leHI/AAAAAAAABHo/cVnoZwBNyu8/s72-c/Screen+Shot+2012-02-07+at+9.41.34+AM.png" height="72" width="72" /><thr:total>0</thr:total></entry></feed>

