Sunday, December 20, 2009

Great Example of a Horrible Website - Carnival Cruise Lines

I wouldn’t recommend that you take a Carnival Cruise so you can experience their horrible website, but if you want an example of how to develop the world’s worst site…try to register for your fun pass and try to book your excersions for your cruise…then try to call their customer support and have them help you - they can’t… All great examples of how not to create a site, run a business, etc.

Thursday, November 12, 2009

Cloud Computing - I'm betting your'll be using it before you know it...

Are You Going to use Cloud Computing?
I did a keynote on cloud computing last week.  When I asked the audience how many people were using cloud computing today, nobody raised their hand (in an audience of about 300).  Then I asked how many people thought they would ever use it.  Maybe 20 people raised their hands.  How many people thought it was "real" or coming?  Same 20 or so.

Flashback to 1994
In preparing for this keynote, I had a flashback to 1994 when I was asked to do a debate on client server computing vs. this new technology call "web computing."  I was a client server guy, so I was to debate how client server was here to stay, how it was proven, etc.  After doing my research, I realized that the computing world would move toward dynamic web page generation, web computing, etc.  At that presentation I talked about web development as an "early adaptor" technology at that point.  Sure things changed, but those who were in on the group floor understood the fundamentals and therefore saw opportunities that weren't available later...such as Amazon.

Are You an Early Adaptor?
Cloud computing is in a similar state.  If you're an early adaptor, now is your time to truly understand and dig into cloud computing.  If you're a late adaptor, wait 10 years or more.  The thing I can assure EVERY company out there is that they will use a form of cloud computing at some point.  Some sooner than others.  Personally when it comes to new applications, businesses, etc. I'm only thinking in terms of this elastic computing model.  Simply put, for less than $3/hr I can spin up a SUPER fast processor on Amazon.  If I purchased that machine, it would cost me $50k or more...and I'd have to install the OS, configure hardware, install my applications and more.  Why not just fire up a virtual image pre-configured?  You can do your development, testing, etc. on a box that will cost you about $.08/hr.  Imagine what $1000 will do for you in this model vs. a traditional / physical model.  There's no comparison.

Are You Confused?
There's a lot of confusion out there.  There are also a number of cloud offerings in a variety of forms.  When I think about cloud computing, I think of server farms that can be spun up to run my application at the drop of a command.  Those are cloud infrastructure providers like Amazon EC2 and Microsoft Azure.  Then there are Application Platform cloud providers like Google App Engine, Force.com and hosted Oracle Application Express (ApEx) vendors.  These are vendors who provide a platform that you can build your applications on.  Google App Engine can be built on Java or Python.  Force and ApEx are 4GL application platforms (i.e. point and click interfaces).  There are many portal and mashup companies who feel they provide cloud solutions.   There are SaaS portal applications like iGoogle, MyYahoo, Yahoo Pipes, Yahoo YQL and more.  There are cloud load testing companies like Soasta.  There are also a number of SaaS integration appliance vendors (Integration as a Service).  Most of which mention cloud computing in their marketing literature.  So yes, there's plenty of confusion and it's difficult to keep up.

What's in Your Way?
So why not move to the cloud today?  There are many reasons of course.  Just like when web computing came into play - many things come to mind.  They can likely be grouped into 3 categories: 1) Technological - security, integration, etc., 2) Financial - such as SLA, what does it cost you if you're down vs. your SLA, etc. 3) Cultural - do you really enjoy spinning up servers?  Someone in your company might.

SaaS vs. Cloud
Many people say they have cloud offerings…and by their own definition, they might. Many of those are SaaS (Software as a Service) vendors…not Cloud vendors. SalesForce is actually both, but what most people thing of when they think of them is their CRM package online –that’s SaaS. Hardware as a Service (HaaS) is something that’s been around for a while too – i.e. timesharing, outsourcing your hardware to someone else. Cloud is SaaS and HaaS – running your applications on someone else’s hardware. The software could be used as a service – i.e. an Oracle license.


 
No Lack of Benefits
The reality of cloud computing is that the benefits are numerous. Ultimately you can absolutely reduce your costs using cloud computing. It’s all about economies of scale. To do it right in a data center is very expensive. If you can share that expense with 1000 of your closest friends – why wouldn’t you! The fact that you can spin up new instances within seconds is exceptionally powerful. All of this translates into risk mitigation. You don’t need to spend any money on hardware! I think you’ll see more seamless cloud offerings in the future. Google has a nice seemless cloud offering for example. You can run their cloud offering (Google App Server) in your own environment or in theirs. You’ll have real power from Oracle when there is a “cloud” option on a SQL statement – just like parallelism…run it on the cloud.


 
On the other hand, the variable costs can be high. If I buy a box, put some hardware on it, install software on it, I know the costs, right? Not totally – all of this setup requires time, but we often don’t consider that a variable cost. We also have to support our hardware and software – that’s all very expensive. But we tend to think of these things (i.e. salaries, hardware, software, etc) as a sunk cost, right? We’re fooling ourselves. It’s like setting your watch ahead by 15 minutes – do I really think I’m that dumb?

 
Cloud Solutions
I’ve experimented with all of these cloud providers in one form or another. Some I’ve used in production environments and others not. I think I have a pretty good handle on these technologies, but I learned a long time ago – if I’m a guy who likes my big boat, there’s always someone who has a bigger boat out there…and that’s true for all of these technologies. I know the Oracle technologies pretty well and I’m confident that I don’t know the entire stack. This is complicated stuff. I’m going to tell you my thoughts about each of these vendors cloud offerings. Again, my goal is to get you energized – to get you thinking, questioning some future direction, etc.


If you’re thinking about a new highly scalable application that you’re going to build, I sure hope you’ll consider doing it in the cloud. 
  • Oracle
  • Amazon
  • SalesForce (Force.com)
  • Google App Engine
  • Yahoo Pipes
  • Zoho
  • Others…

Keep in mind that long term this is an infrastructure decision, so don’t take it lightly!  There are so many questions that you have to ask yourself: 
  • Do you need to spin up servers or just run an application?
  • Existing or new application?
  • Oracle in the Cloud?
  • Pay per use OK?
  • Global application?
  • Scaling on demand important?
  • Public, private, partner cloud?

 Let's take a look at what each of the above vendors.
 
Oracle
First off, Oracle is really a cloud enabler, not so much a cloud infrastructure provider. The preferred Oracle cloud infrastructure is provided by Amazon. You could say that ApEx running in a SaaS environment is a cloud offering. On apex.oracle.com you can build your own application there and run it on their hardware. Not really in a production environment – Oracle doesn’t provide “production level” ApEx – at least they don’t support it.


 
Oracle has numerous SaaS offerings, which is running their software on their hardware….for example CRM, ERP, etc. They say they have "Oracle Technology on Demand" but it's all Oracle 9.2, so I'm not sure what that says since Oracle's on version 11g now.

 
Personally I believe they could be one of the biggest cloud providers once they complete the Sun transaction. The Exadata boxes running in the cloud would be a great virtual offering!

Amazon
Amazon is one of my favorite cloud infrastructure providers…Oracle’s too – so far. That’s certain to change. With EC2 you can spin up a server in no time. You pay by the hour of computing time. As low as about 8 cents up to about $3/hr depending on the size and performance of the virtual box. You also will pay for data storage, data transfer, and other costs. But…what’s it cost you to spin up a box today? What’s it cost you to decommission a box today?


 
EC2 (Elastic Compute Cloud)  is a true cloud infrastructure.  S3 (Simple Storage Service) is how you store your data.  You can get virtual machines in a variety of configurations – small, large, extra large, high CPU or standard CPU.  You can run as many virtual images as you would like - $.085-$2.88/hr/machine + licenses + data transfer (to S3).  And of course, you can build your own virtual instances on the OS, software, etc. of your choice.

 
Force.com
SalesForce offers what they call a cloud offering.  It's really an "Application Platform as a Service."  I liken it to apex.oracle.com. If you want to build a hosted Web app – Force.com might be for you.  There are entire consulting firms sprouting up who do nothing but Force.com development - I like this!  Force.com provides an ApEx like development environment,  There are are sample applications (recruiting and volunteers) that you can check out on their site too.

 
I'd like to know how do you spin up a box?  Manage reliability, performance, etc...these are concerns to me.

Google App Engine
Google App Engine is a very powerful way to run your applications. It’s basically a hosted JVM environment. It’s nice that you can run it on your own hardware too. But, the downside in my book is that it’s not all that developer friendly. There’s no ApEx-like interface.  So it's a 3GL Application Platform as a Service.

 
But…don’t count Google out just yet. They have a number of SaaS offerings (Mail, Calendar, etc) that can be great components of your cloud solution…for free.

It's a true Cloud (scalable, redundant, etc) environment, but can’t run Oracle.  You have to develop your own app in Google App Engine lingo - i.e. Java or Python.  You can run Java databases like Derby of course.  By default you get BigTable, which is the same "database" that Google's search engine uses.
 
One thing I like about this architecture is that you can run it on your own hardware or run on Google (i.e. in the cloud).  Easy to build, easy to maintain, easy to scale.  An application on a free account can use up to 500MB of storage and up to 5 million page views a month.  You can also pay and configure:

 
  • CPU Time
  • Bandwidth in
  • Bandwidth out
  • Storage
  • Email

Google provides the Google Data API to get to everything.  As I mentioned, there are many SaaS / hosted solutions that they have too - such as Calendars, Documents, App Server, etc.

 
Yahoo
Yahoo is a content company.  They don't really seem to have any cloud solutions.  They have one that's currently been introduced to universities only, but that doesn't seem all that interesting to industry.  Yahoo’s been talking about their cloud offering for a while now. In April they finally released it to universities – i.e. a limited beta. But again, don’t count Yahoo out – they are a content company.

If you want weather information, stock information, traffic, etc…they have the content. All of us love SQL, and Yahoo has YQL. Is the Y long or short? EEQL, IQL, ICKQL? YuckQL?

Actually I’m a big fan of YQL as you’ll see in a minute.  Yahoo provides many great developer tools (YUI, YQL, APIs).  In fact, YQL is quite powerful.  It returns data as XML or JSON.  You can also store your own data on Yahoo (Google offers this too).  You can query your own XML through YQL.  And...Yahoo Pipes are great!

 
Zoho
Zoho considers themselves a cloud provider. Personally again, I’d say that’s a stretch. It’s more like a Google Documents on steroids. It does have some nice APIs and a JDBC driver.  Zoho as in Soho, so I have to wonder - is it for small time companies?  Again, it's more like ApEx on a server than Cloud.  They say they have CloudSQL...all marketing hype.  It's really more like SaaSSQL…  They do have JDBC and ODBC drivers, which is pretty cool!

 
Others
As I mentioned, there are MANY other cloud providers. So take some time to pick your cloud provider. This is an infrastructure decision.  Think about what you really need right now.  Do you need SaaS or Cloud?
Do you need to move from your hardware to someone else’s?  What kind of scale do you need?  I'd recommend you hire an expert…so you make the right decisions.  As I mentioned, it's tough to study up on all this stuff.

Cloud with SOA?
What’s SOA – Service Oriented Architecture. SOA is an architecture, not a technology. So it contains a lot of components, best practices, etc. Many people say that SOA is a best practices approach to best practices. SOA bigots will say that SOA is just Web Services – in fact, you can do SOA without Web Services. Sure, that’s true, but I think the best place to start on your SOA journey is via Web Services. What are web services? Just an open standard API. You already have services or APIs. You already have data. So why not expose your existing data and business logic through an open API?


What’s your path to cloud? Start with web services. Start with something like YQL and see how it works. Integrate some Yahoo data into your applications. For example, I send myself emails with all of the weather updates for the town I live in – Littleton, CO. My plan is to integrate this with my calendar and figure out what city I’m in or going to be in and send weather updates for my current location…and traffic info…and events of interest, etc.

What are the steps to success?  I believe a company should:

 
  • You have services (packages, data)
  • Figure out which service you want to expose internally or externally
  • Create web services based on your existing services
  • Pick a product to create your services - iPerspective, Jdeveloper, …
  • Try out Yahoo YQL

 I’d also encourage you to check out Yahoo Pipes. Pipes allows you to prompt for information, use YQL, draw it in a map, overlay data and more. The maps you see here are 2 maps I created that show current traffic on a map. The map on the bottom of the page shows the culinary events that are in town. Again, I plan on merging this information with my “current” location and sending daily emails of maps and other items of interest. So let’s take a look at how you can do this with ApEx…


CGQ
I wrote a product that we call CGQ – consumer gateway for queries. It allows you to write a query against ANY Web Service. We have another product, iPerspective that creates Web Services based on your existing assets – i.e. data in any database or business logic in any database (T-SQL, PL/SQL, etc.). So CGQ allows me to write a query against any Web Service. The services can be ones I created or ones already in existence…or in a cloud. Using CGQ I could query from YQL or fire off an EC2 server or CRUD data, etc. VERY powerful stuff and to the developer it simply looks like SQL and/or PL/SQL code.


 
CGQ Query 1 - Get all of the places named Littleton
If we take a look at this query, it's pretty simple.  It "virtualizes" the Web Service from Yahoo, so the Oracle engine thinks it's an Oracle table:
 
select text_column1 place_type, text_column2 name,

text_column3 country, text_column4 state,
text_column5 county, text_column6 postal_code,
text_column7 locality1, num_column1 centroid_lat,
num_column2 centroid_long
from table(cast(soap_ws.select_restful(
'placeTypeName,name,country,admin1,admin2,postal,locality1',
'centroid/latitude,centroid/longitude',
'http://query.yahooapis.com/v1/public/yql?q=
select%20*%20from%20geo.places%20
where%20text%3D%22littleton%22',
'place', 'results',
'xmlns="http://where.yahooapis.com/v1/schema.rng"')
as generic_table));

 
Here's what the output looks like in SQL Developer:

 
Sample CGQ Query 2 - Get the detailed weather for 80123
 
select text_column1 date_1, text_column2 day1,

num_column1 Day1_Low, num_column2 Day1_High,
text_column3 Weather_1, text_column4 date_2,
text_column5 day2, num_column3 Day2_Low,
num_column4 Day2_High, text_column6 Weather_2
from table(cast(soap_ws.select_restful(
'yweather:forecast[1]/@date,yweather:forecast[1]/
@day,yweather:forecast[1]/@text,yweather:forecast[2]/
@date,yweather:forecast[2]/@day,yweather:forecast[2]/@text',
'yweather:forecast[1]/@low,yweather:forecast[1]/
@high,yweather:forecast[2]/@low,yweather:forecast[2]/@high',
'http://query.yahooapis.com/v1/public/yql?q=
select%20*%20from%20weather.forecast%20
where%20location%3D80123',
'item', 'results',
'xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0"')
as generic_table));

 
Here's what the output looks like in SQL Developer:



Query 3 - Get the upcoming events for a location
 
select text_column1 date_posted, text_column2 description,

text_column3 name, text_column4 photo_url,
text_column5 distance_units, text_column6 start_date,
text_column7 start_time, text_column8 ticket_price,
text_column9 ticket_url, text_column10 venue_address,
num_column1 distance, num_column2 latitude, num_column3 longitude
from table(cast(soap_ws.select_restful(
'@date_posted,@description,@name,@photo_url,
@distance_units,@start_date,@start_time,@ticket_price,
@ticket_url,@venue_address,@distance,@latitude,@longitude',’',
'http://query.yahooapis.com/v1/public/yql?q=
select%20*%20from%20upcoming.events%20
where%20search_text%3D%22music%22%20
and%20location%3D%22Denver%2CCO%22%20
and%20radius%3D1',
'event', 'results')
as generic_table));

 
Here's what the output looks like in SQL Developer:



Query 4 - Traffic in a Radius
 
select text_column1 date_posted, text_column2 description,

text_column3 name, text_column4 photo_url,
text_column5 distance_units, text_column6 start_date,
text_column7 start_time, text_column8 ticket_price,
text_column9 ticket_url, text_column10 venue_address,
num_column1 distance, num_column2 latitude, num_column3 longitude
from table(cast(soap_ws.select_restful(
'@date_posted,@description,@name,@photo_url,
@distance_units,@start_date,@start_time,@ticket_price,
@ticket_url,@venue_address,@distance,@latitude,@longitude',’',
'http://query.yahooapis.com/v1/public/yql?q=
select%20*%20from%20upcoming.events%20
where%20search_text%3D%22music%22%20
and%20location%3D%22Denver%2CCO%22%20
and%20radius%3D1',
'event', 'results')
as generic_table));

 
Here's what the output looks like in SQL Developer:



Now It's up to You!
I can assure you that the cloud is real. I can assure you that you'll use it in your business.  There's a natural progression to get started.  Give SOA a try.  Test out a Cloud provider.  Learn!  I have some questions for you:


 
  • Did I get you thinking?
  • Are you more curious than before you read this?
  • Do you see how it might apply to your business?
  • Still don’t see a fit? Why not?

Wednesday, October 21, 2009

Mapping RESTful Data

As I mentioned before, Yahoo provides Yahoo Query Language (YQL) in a variety of forms.  There is a console that allows you to write a query in a browser and see the XML results on the screen.  This is nice for development purposes, but XML isn't all that "humanly readable."  I'm a big fan of maps to represent data that can be attached to a latitude and longitude.  When you think about it, most data actually can be attached to an address, a zip code, a city or some geospatial component.  In my last blog, demonstrated how to use YQL and it's RESTful API to query and display information in a tabular form.  Today I'm going to show you how to take that tablular data and represent it in map.

In my ApEx application, I created a region that contains 4 input fields:

Prompts for Info 

You can see that I'm collecting:

  • Address (to use for events and traffic)

  • Weather Zip (zip code to use for the weather information)

  • Event Search (search text for the events)

  • Radius (radius from the address to search for events and traffic)


As you can see in the following figure, I displayed the traffic information on the map (pretty cool isn't it).  Below the map, I included the detailed traffic information in a tabular format (not very existing is it).  The traffic is within the specified radius of the address on the page.

Traffic on the Map 

In the following figure you'll see that I displayed all of the events within the radius of the specified address that contain the search text specified.  Again, below the events, is a tabular listing of the event details.

.yqlmap3

 There are many maps available including Yahoo, Microsoft (Virtual Earth), Google, etc.  Yahoo Pipes, which I've discussed previously, allows you to consume RESTful (or standard) Web Services.  Pipes allows you to consume YQL queries too.  I decided to use Yahoo Pipes to consume my YQL queries.  The figure below shows the Pipes visual diagram, which I'll explain below.

Pipes Diagram

Above you'll see that the diagram starts in the upper right corner with 2 text input values (location and radius).  These feed into the "String Builder" which writes a SQL statement that's used in the YQL query.  The query will look like: select * from maps.traffic where location="loc" and radisu=radius.  This is fed into the YQL query, which pases it's results into rename, which changes item.description to description and item.title to title.  The "Location Exrtaction" module will pull the lat/long information from YQL query.  Amazingly simple isn't it!  When you run the Pipe, you can see that there are 2 tabs.  1 for the Map (because we used the Location Extractor and a list.

Running the Pipe

You see that all of the traffic shows up in the lat/long location it belongs on the map.  I'm always amazed how easy it is to integrate this data when you have services.  You can see above that there are many options available with the Pipe data.  You can publish the map on your MyYahoo page or you iGoogle page or get it as an RSS or JSON feeds and more.  You can also see that there is an option labeled "Get as a Badge."  As you can see here, you can put the badge in TypePad, Blogger, WordPress, iGoogle or as an Embedded link on your Web page:

 Get Yahoo Pipe Badge

When you click on "Embed," Pipes provides you with a link to copy and paste.  Now back to ApEx.  How do we take this embedded link and put it in ApEx?  Remember that we have 2 bind variables for this Pipe.  These will be input variables in the RESTful service.  For this Pipe, the link that I copied looks like this:

You can see the 2 bind variables.  Remember that in my ApEx application, I had 4 input variables (ApEx items) on my page.  The names of my variables are: P2_ADDRESS, P2_ZIP, P2_SEARCH and P2_RADIUS.  I created a new HTML region on my page.  Then I pasted the above embedded script into the region's HTML source.  The only thing I needed to change was to add in my bind variables.  You can see how I changed it below.  In PL/SQL, you reference bind variables with a colon in front.  For example, you would write something like "where radius = :p2_radius" in PL/SQL.  In HTML, the binding uses an ampersand before the variable name and a period at the end.  So here's what my region source looks like now:



My events map HTML region now looks like this:



You can see my bind variables in this region too.  You can see what my "Events in Town" Pipe looks like when I run it.  Notice the visual diagram (flow chart) here too - very cool!

Running Event Pipe

Let's take a look at the details behind this Pipe now.  Here's the flow:

Event and Weather Flow 

This Pipe begins in the top middle of the page with 3 text input variables - search text, location and radius.  Again, this feeds building the select statement that feeds into YQL.  I then took the results of that query and split it into 2 threads.  One thread takes a lot of the information and moves it into a "new_description" field.  This is used for all of the events, which are then put into an RSS format, sent into the union, which goes into the pipe's output.  The other thread extras the venue's zip code and gets the weather for that zip code.  Since many events could be in the same zip code, I ran it through a unique filter for unique cities and for all unique cities builds a YQL query for the weather information, which is also unioned into the pipe's output.  So we have a powerful combination of service requests. 

Again, I'm hoping to inspire you to go and build a really cool application that you can use in your company or personally.  Services are VERY powerful.  And of course...if you need help, give us a call!

Power of OOW and WOA

Attendance at Oracle Open World (OOW) felt down to me.  We had 2 booths at the conference - one in Moscone South and another in Moscone West.  The booth traffic on Monday was good.  I think most of us expected Tuesday to get better and each day we seemed to see less traffic in the exhibit hall.  If you were in attendance, I hope you found it to be a great conference.  I know I met with a number of customers and prospects, which was the highlight of the conference for me.  I also really enjoyed conversations with all of the Rolta TUSC and Rolta employees.  All-in-all it will go down as a GREAT conference for me.

After a week of conference focus, I'm digging into technical topics once again.  I've been looking at the RESTful components that Google, Yahoo and others are offering.  Google likes to restrict what you can do with their content.  They have great maps, but legally you can't extract the images that include traffic, weather and other information and send it in an email.  The Web Oriented Architecture (WOA) provides a light-weight method of getting data from other people's programs (i.e. services).  I'm very impressed with how Yahoo is approaching WOA.  I road back from the Aerosmith and Roger Daughtry concert with a group of Yahoo developers.  It's always great to see a group of co-workers hanging together as they were. 

Yahoo certainly has a number of great APIs that you can consume.  As the guys on the bus said, Yahoo is a content company - i.e. they are no longer a search engine company.  Yahoo Developer Network (YDN) contains a large number of great APIs.  These APIs include tools for everything from querying the Yahoo database, to authentication, to content (Finance, Jobs, Blogs), maps and location-based services, photos (Flickr), music, answers, social applications and more.

Since I'm a SQL guy, I was intrigued by the YQL console and API.  I'd encourage you to go try it out.  You can query from social data, pictures (Flickr), maps and geo services, local information, music, blogs, search engine, weather, and more.  If you click on a table, the UI creates a sample query for you.  You can modify the query to your local information - for example, I opened "local" and clicked on the local.search table, then changed the zip to my home zip:

 select * from local.search where zip='80123' and query='pizza'

Which will return an XML (or JSON) data stream for you to review:

 

http://www.yahooapis.com/v1/base.rng" yahoo:count="10" yahoo:created="2009-10-21T06:18:18Z" yahoo:lang="en-US" yahoo:updated="2009-10-21T06:18:18Z" yahoo:uri="">http://query.yahooapis.com/v1/yql?q=select+*+from+local.search+where+zip%3D%2780123%27+and+query%3D%27pizza%27">

true
">http://local.yahooapis.com/LocalSearchService/V3/localSearch?zip=80123&query=pizza&start=1&results=10]]>
399
395
3559



M C's Pizza by the Slice
8086 W Bowles Ave, #I

Littleton
CO
(303) 763-8299
39.609511
-105.087353

5
7
6
1215051686
Pizza the way it should be. If that was all they did it would be enough. But they step up with a full menu of Italian favorties. I used to eat here regularly when they were farther up north on Wadsworth, but I lost track of them when they moved. I'm exstatic that I stumbled back upon them. I refuse to eat pizza anywhere else now.

0.87
http://local.yahoo.com/info-19628168-m-c-s-pizza-by-the-slice-littleton
http://local.yahoo.com/info-19628168-m-c-s-pizza-by-the-slice-littleton
http://maps.yahoo.com/maps_result?q1=8086+W+Bowles+Ave%2C+%23I+Littleton+CO&gid1=19628168

Pizza
Carry Out & Take Out
Restaurants



McKinners Pizza Bar
2389 W Main St

Littleton
CO
(303) 798-8500
39.613832
-105.01599

5
3
2
1231016590
First of all, this is a fun place.. The Pizza is second to none!! You should all go and give it a try! I know that you will love it!

3.01
http://local.yahoo.com/info-33699888-mckinners-pizza-bar-littleton
http://local.yahoo.com/info-33699888-mckinners-pizza-bar-littleton
http://maps.yahoo.com/maps_result?q1=2389+W+Main+St+Littleton+CO&gid1=33699888
http://mckinners.com/
http://mckinners.com/

Pizza
Restaurants
Sandwiches


This got me thinking.  Using our Rolta CGQ (Consumer Gateway for Queries) product, we can execute any RESTful service and return the information as if the data resides in an Oracle database.  In other words, simply using SQL, I can write YQL query to retrieve information like maps, geo information, weather info, and more through Oracle Application Experss (ApEx).  I wrote 4 quick queries, pasted them into ApEx and I now have a WOA / SQL YQL dashboard.  First, let's look at the end result from my queries:

[caption id="attachment_227" align="alignleft" width="300" caption="Yahoo Take 1"]Yahoo Take 1[/caption]

 

 

 

 

 

 

 

You can see that I have 3 text input fields on the page.  I changed all 3 of these fields and here are the results now:

[caption id="attachment_228" align="alignleft" width="300" caption="Take 2"]Take 2[/caption]

 

 

 

 

 

 

 

 

To write my queries, I used the YQL console to write the initial statement. I used the "COPY URL" button to copy the REST query.  For example, I queried 100 locations that have "Princeton" (my hometown) in the name:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.places(0%2C100)%20where%20text%3D%22princeton%22%20&format=xml

I then worked on my SQL query in Oracle SQL Developer.  Once I had the data looking the way I wanted it, I pasted these queries into a new ApEx SQL Query Report region.  I edited the SQL to add my bind variables, added better headers, sorting, and so on.  Let's take a look at each of the 4 queries on this page:

  1. select '' map from table(cast(soap_ws.select_restful('Result', 'http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20maps.map%20where%20location%3D%22' || replace(:p2_address,' ','+') || '%2C%20CO%22', 'results', 'query', 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') as generic_table))

  2. select text_column1 place_type, text_column2 name, text_column3 country, text_column4 state, text_column5 county, text_column6 postal_code, text_column7 locality1, text_column8 centroid_lat, text_column9 centroid_long from table(cast(soap_ws.select_restful('placeTypeName,name,country,admin1,admin2,postal,locality1,centroid/latitude,centroid/longitude', 'http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.places(0,100)%20where%20text%3D%22' || replace(:p2_location_text,' ','+') || '%22', 'place', 'results', 'xmlns="http://where.yahooapis.com/v1/schema.rng"') as generic_table))

  3. select text_column1 title, text_column2 link, text_column3 description, text_column4 lat, text_column5 lng, text_column6 publish_date from table(cast(soap_ws.select_restful('title,link,description,geo:lat,geo:long,pubDate', 'http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20location%3D' || :p2_zip, 'item', 'channel', 'xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"') as generic_table))

  4. select text_column1 date_1, text_column2 day1, text_column3 Day1_Low, text_column4 Day1_High, text_column5 Weather_1, text_column6 date_2, text_column7 day2, text_column8 Day2_Low, text_column9 Day2_High, text_column10 Weather_2 from table(cast(soap_ws.select_restful('yweather:forecast[1]/@date,yweather:forecast[1]/@day,yweather:forecast[1]/@low,yweather:forecast[1]/@high,yweather:forecast[1]/@text,yweather:forecast[2]/@date,yweather:forecast[2]/@day,yweather:forecast[2]/@low,yweather:forecast[2]/@high,yweather:forecast[2]/@text', 'http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20location%3D' || :p2_zip, 'item', 'results', 'xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0"') as generic_table))


I hope from seeing this, you can imagine the opportunity for powerful applications that have access to ANY information you want to embed into your own applications.  For example, using this method, you could embed or save historical information for:

  • A persons Yahoo profile information, which includes their full name, nickname, sex, profile image, interests, home location, timezone, ...

  • Social information such as connections, contacts, presence, updates,...

  • Photo libraries (through Flickr) by EXIF, information, interestingness, recentcy, sizes, places, ...

  • Geospatial information including Yahoo's placemaker (i.e. documents that match location information), places, neighboring places, similar towns/cities, ...

  • Maps and traffic

  • Local business searches

  • Social media such as Facebook, Yahoo's MeMe, MySpace, etc.

  • Music by artist, popularity, similar artists, releases, tracks, videos, ...

  • Blogs such as Yahoo's MyBlogLog, Wordpress, etc.

  • Yahoo searchs for images, news, spelling, suggestion, web sites, ...

  • Upcoming events by country or state, category, groups, venues, etc.

  • Weather forecasts

  • Convert data from ATOM, CSV, RSS Feeds, HTML pages, JSON, XML, etc.

  • Access to data from external sources including Amazon, Craigs List, Delicious, Doppler (travel site), Facebook, FriendFeed, Google, Government Spending, Intuit, IP Location Data, Bing, Movies, Netflix, SalesForce, Twitter, White Pages, WordPress, Yahoo (Finance, Messenger, Search, etc.), Zillow, etc.


This provides a lot of power to you as the developer!  What application are you going to create with this powerful information?  I have my own in mine...

Wednesday, September 23, 2009

Google Wave - Next Generation Email?

Have you checked out Google Wave yet?  The videos and discussions are pretty cool!  If you sign up, you might just get to check it out in the sandbox too!  I received a sandbox account, created my first survey and sent it off.  Wave made it very easy for me to analyze the results and get answers in no time at all.  I was trying to organize a 4 wheeling adventure this coming weekend, next weekend or in the Spring.  It turned out that next weekend worked for a number of people, so we got it on the schedule.  Here are the results in a spreadsheet format: 
























































































































































































































































































               
.TimestampWould you be interested in a 4 wheeling adventure?How much 4 wheeling experience do you have?Would you want to use your own vehicle or ride with someone else?How much clearance do you have with your vehicle?If you want to ride with someone else - how many of you need a ride?If you can drive, how many extras can you take?Where would you like to go?Which dates work best for you [Sept 26]Which dates work best for you [Sept 27]Which dates work best for you [Oct 3]Which dates work best for you [Oct 4]Which dates work best for you [Next spring]What did I forget to ask?
.9/22/2009 22:22:42Yes3My own vehicle if it's challengingLifted Vehicle 2Keystone area (on the divide)  #1#2  
.9/22/2009 22:28:25Yes3My own vehicle if it's challengingStandard SUV clearance 3Keystone area (on the divide)  #2#3#1 
.9/23/2009 0:56:18Yes3My own vehicle if it's easyStandard SUV clearance32Idaho Springs area (Fall River Road / St. Marys) #1 #2#3Great idea, Brad! Not that you forgot to ask... Jones Pass near Empire would be good. Also, I would be interested in an ATV ride in addition to or instead of vehicle off rading. Most of the same trails would be cadidates and I have a good line on rentals.
.9/23/2009 3:29:20Yes2Don't have a 4 wheel drive with enough clearance, but would like to ride alongNone, it's a car2 Keystone area (on the divide)  #1#2#3I think this is a great idea and sounds like a ton of fun!
.9/23/2009 5:11:32Yes1Don't have a 4 wheel drive with enough clearance, but would like to ride alongStandard SUV clearance1    #1#2  
.9/23/2009 5:36:44Yes5My own vehicle if it's challengingLifted Vehicle 3Somewhere else (put in comments)    #1Some of these answers would have been better as checkboxes, as multiple answers apply.We would be interested but my wife has a torn rotator cuff, so anytime soon wont work.

There are lots of great place fairly close by. You can see some of our recent adventures on my facebook page.

Number of people who could ride along would depend on whether my kids wanted to go or not.

Thanks Brad
.9/23/2009 6:06:35Yes3My own vehicle if it's easyStandard SUV clearance 2Keystone area (on the divide) #2#3#1  
.9/23/2009 6:45:38Yes1Don't have a 4 wheel drive with enough clearance, but would like to ride alongStandard SUV clearance1    #1#2#3Can I just follow along on my mountain bike? Just kidding. I've never gone fourwheeling, but would love to try it.
.9/23/2009 6:48:20Yes1My own vehicle if it's easyStandard SUV clearance  Idaho Springs area (Fall River Road / St. Marys)  #1 #1 
.9/23/2009 7:25:08Yes3My own vehicle if it's easyStandard SUV clearance 2Keystone area (on the divide)  #1   
.9/23/2009 7:33:30Yes4My own vehicle if it's easyStandard SUV clearance2 Keystone area (on the divide) #2 #3#1May consider coming along on bikes if thats ok.
.9/23/2009 8:44:11Yes1Don't have a 4 wheel drive with enough clearance, but would like to ride alongNone, it's a car1 Keystone area (on the divide)      
.9/23/2009 8:47:03Yes2My own vehicle if it's easyStandard SUV clearance 1     #1 
.9/23/2009 9:40:27Yes2Don't have a 4 wheel drive with enough clearance, but would like to ride alongNone, it's a car2 Keystone area (on the divide)    #1No way I can make it this year but maybe next spring. It sounds like a lot of fun.


You can also view the summary of the results - what's next - enterprise integration?:

 


14responses




Summary See complete responses 

 

 











Would you be interested in a 4 wheeling adventure?
















Yes 14100%
No 00%












How much 4 wheeling experience do you have?










None A Ton


































1 -
None
429%
2 321%
3 536%
4 17%
5 -
A Ton
17%












Would you want to use your own vehicle or ride with someone else?






















My own vehicle if it's easy 643%
My own vehicle if it's challenging 321%
Don't have a 4 wheel drive with enough clearance, but would like to ride along 536%












How much clearance do you have with your vehicle?




























None, it's a car 321%
Standard SUV clearance 964%
Lifted Vehicle 214%
Don't worry about my clearance 00%












If you want to ride with someone else - how many of you need a ride?




























1 343%
2 343%
3 114%
4 00%












If you can drive, how many extras can you take?




























1 114%
2 457%
3 229%
4 00%












Where would you like to go?






















Keystone area (on the divide) 873%
Idaho Springs area (Fall River Road / St. Marys) 218%
Somewhere else (put in comments) 19%













Which dates work best for you - Sept 26

No responses yet for this question.
















Which dates work best for you - Sept 27






















#1 133%
#2 267%
#3 00%












Which dates work best for you - Oct 3






















#1 675%
#2 113%
#3 113%












Which dates work best for you - Oct 4






















#1 113%
#2 563%
#3 225%












Which dates work best for you - Next spring






















#1 667%
#2 00%
#3 333%


 






Delete



Duplicate



Edit



Delete



Edit



Edit



Edit


Tuesday, September 22, 2009

OOW Presentations

Oracle Open World (OOW) is just a few weeks away.  It's going to be a busy week for a lot of people!  Rolta TUSC will have a LOT of presentations that week.  We have 2 booths at the conference.  Numerous demo stations will be at the booth.  It's going to be a fun week!  I have 3 presentations.  1 on Monday, 1 Wednesday and the final one Thursday morning.  I'll be arriving on Sunday and heading home on Thursday.  I always love a week in San Fran!  Here are my presentations - please come see me!

Title: Wimpy Web Services Versus Powerful, Flexible Web Services
Track: Oracle Develop: Service-Oriented Architecture
Date: 12-OCT-09
Time: 11:30 - 12:30
Venue: Hilton Hotel
Room: Yosemite C


In this presentation, Brad will discuss the importance of strong Web Services, the difference between wimpy services and powerful flexible Web services. Many companies today are attaching SOA MBOs to their technical teams. These performance metrics often measure based on quantity rather than quality. What is quality? Reuse? Performance? Flexibility? Brad will discuss this topic in detail.



Title: Building a Mashup with Application Express
Track: Database
Date: 14-OCT-09
Time: 17:00 - 18:00
Venue: Moscone South
Room: Room 252


In this presentation, Brad will talk about how to develop a mashup using Oracle Application Express. Traditionally people think of ApEx as being an "Oracle database" tool only - not a mashup tool. However, Brad will show how you can consuming Web Services to access data from any source - Oracle, MySQL, SQL Server, Access, Excel, Cloud Databases (like Zoho), etc. In Brad's presentation titled "Scalable Oracle ApEx" he explains how to create an n-tier architecture for ApEx. This architecture provides unparalleled scalability to your organization. This presentation explains the implementation side (i.e. the specifics) of this solution.



Title: Scalable Oracle Application Express: Case Study of a True N-Tier Architecture
Track: Database
Date: 15-OCT-09
Time: 09:00 - 10:00
Venue: Moscone South
Room: Room 306


Do you like the power and flexibility of Oracle Application Express (ApEx)? But...are you frustrated by the fact that it chews up database cycles generating dynamic HTML pages? Do your architects and DBAs go mad thinking about this? I know I sure have!  This presentation will demonstrate a solution to this architectural dilemma! A reference architecture is provided along with a case study that this presentation is based around. You'll see exactly how to scale ApEx (inexpensively) within your environment.

Wednesday, September 16, 2009

Just as I suspected - HP's out of the picture

Here's the article of interest for today.  Sun's in and HP's out!  Here's the bottom line:  An Oracle spokeswoman said that the Exadata machine built in partnership with HP is no longer available for sale.  If you want to watch the annoucement - here it is.

Tuesday, September 15, 2009

Now We Know - Version 2 is on Oracle's Very Own Hardware - What's Next Month?

Oracle Unveils Exadata Version 2: The First Database Machine for OLTP


 Redwood Shores – September 15, 2009


 


News Facts


·         The world’s first OLTP Database Machine was unveiled today by Oracle Chief Executive Officer, Larry Ellison; and Sun Executive Vice President John Fowler.


·         The Exadata Database Machine Version 2, made by Sun and Oracle, is the world’s fastest machine for both data warehousing and online transaction processing (OLTP).


·         Built using industry standard hardware components plus FlashFire technology from Sun, Oracle Database 11g Release 2 and Oracle Exadata Storage Server Software Release 11.2, the Sun Oracle Database Machine Version 2 is twice as fast as Version 1 for data warehousing.


·         The Sun Oracle Database Machine goes beyond data warehousing applications with the addition of Exadata Smart Flash Cache based on Sun FlashFire technology to deliver extreme performance and scalability for online transaction processing (OLTP).


·         Exadata Version 2 is available in four models: full rack (8 database servers and 14 storage servers), half-rack (4 database servers and 7 storage servers), quarter-rack (2 database servers and 3 storage servers) and a basic system (1 database server and 1 storage server).  All four Exadata configurations are available immediately.


·         With the Sun Oracle Database Machine, Oracle customers can store more than ten-times the amount of data and search data more than ten-times faster without making any changes to applications.


 


·         Hardware from Sun


o        Sun’s FlashFire memory cards enable high performance OLTP


o        80% Faster CPUs – Intel Xeon (Nehalem) processors


o        50% Faster Disks – 600 GB SAS Disks at 6 Gigabits/second


o        200% Faster Memory – DDR3 memory


o        125% More Memory – 72 Gigabytes per database server


o        100% Faster Network – 40 Gigabits/second InfiniBand


o        Raw disk capacity of 100 TB (SAS) or 336 TB (SATA) per rack


 


·         Software from Oracle


o        Features the world's first flash-enabled database - Oracle 11g Release 2


o        Hybrid columnar compression for 10-50 times data compression


o        Scans on compressed data for even faster query execution


o        Storage Indexes to further reduce disk I/Os


o        Offloading of query processing to storage using Smart Scans


o        Smart scans of Data Mining models in storage servers


o        Applications running on the  Sun Oracle Database Machine achieve up to 1 Million I/O Operations per Second to Flash Storage

Sunday, September 13, 2009

Excited for Oracle Open World

Each year at Oracle Open World, Oracle makes a big announcement.  2 years ago, the big annoucement was how Oracle squashed Red Hat by providing OS support for half of Red Hat's going rate for support.  Oracle could easily do it for half price - Red Hat was doing all of Oracle's R&D on the OS.  What a brilliant move against open sourcing your software.  Last year there were many big annoucements.  I predicted Oracle's big annoucement would be that they were going to offer up Oracle through Amazon's Cloud offering.  That was one of MANY annoucements - in fact, there were so many annoucements that the cloud offering went almost unnoticed.  Much to my surprise, I haven't heard any great success stories about this offering in the last year either.  The big annoucement last year was the HP / Oracle hardware offering - a massive parallel processing computer for data warehousing.  Interesting, but didn't wow me personally.  I haven't personally "played" with one - have you? 

So what will the annoucements be this year?  It used to be one annoucement - now clearly it's now going to be many BIG annoucements.  With all of the acquisitions, it's no wonder.  What's the big recent annoucement - Oracle purchasing Sun of course.  So what does that mean for open source?  Who was the largest open source vendor or all?  Sun?  Sun had purchased the best open source DBs (in my opinion) - MySQL.  Sun started much of the open source revolution with none other than Java.  Java's an open source programming language.  What's this annoucement mean for Java and all of the products based on Java?  Oracle's purchased MANY such products.  From BEAs product lines to Java Containers to so much more.  In fact they have thrown out more software than most companies will ever own or write in a lifetime.  Oracle was partnering into the hardware world last year...and now they are in the hardware business.  They've made it clear that they are gunning for IBM.  So will they purchase HP next?  Flip (Platinum Software) predicted many years ago (almost 15 now) that it would all come down to a couple of vendors - he usually mentioned IBM and Oracle (and Platinum of course).  CA's still around aren't they! Who's next?  When will the SEC step in?

I wish I could dream up a prediction for this coming OOW.  I'm confident that Oracle will announce something big at OOW.  It's only about 4 weeks away!  What will the annoucement be?  Who will be crushed this year?  Who will be celebrating?  Oracle's already annouced that their Exadata box is available on their Sun hardware: 

Announcing the World's First OLTP Database Machine
with Sun FlashFire Technology


You are invited to attend this exclusive live Webcast in which Oracle CEO Larry Ellison will unveil an innovative new product, the world's first OLTP database machine with Sun FlashFire technology. Don't miss this opportunity to learn firsthand how the partnership between Oracle and Sun can benefit your business now and in the future.

Who: Larry Ellison, CEO, Oracle, and John Fowler, EVP, Sun
When: Tuesday, September 15, 2009, 1 p.m. PT/4 p.m. ET


Register now to watch the live Webcast.

After the event, we invite you to watch the Webcast on demand at your convenience.

Larry is 65 this year - maybe he's going to annouce that's going to take some time away from the business?  Will that be the big annoucement?

Thursday, August 6, 2009

New Agile SOA Whitepaper

[gallery link="file"]

I created a white paper out of the content in the below posts.  If you would like the 5 part series in one document, you can download it Recession-Proof Agile SOA White Paper.  Enjoy!

Saturday, July 18, 2009

Agile, Agile, Agile - You Path to Agile SOA - Part 5 (final)

Your Guide Along the SOA Adoption Path

 


I’ve been talking about Agile SOA, which is an iterative method of working with the business and IT to develop services that better serve the business.  In other words, using our methodology, you’re building an optimized business with assets you already own!  Not all at once – not over night…very much via releases over time.  This is powerful.


 


So let’s talk about how some customers have implemented our methodology and software.


 


You can see in the figure that we recommend implementing services in iterations.


 


 image028



 
Real World Examples

We’re going to take a look at some real world examples now.


 


Bombay Stock Exchange 


Legacy Modernization


 


First, let’s talk about a Periscope example.  The Bombay Stock Exchange uses Periscope.  They have a lot of data on Stratus platforms.  They wanted to do ad-hoc reporting on that data.  But there weren’t tools like Cognos, Brio, etc. that work on those platforms.  Periscope makes the Stratus data appear in an Oracle database – as if it’s Oracle data.  So any tool that can access Oracle can report on the Stratus data.  This simplifies life for the exchange.


 


Exchange:


        Stratus system – high uptime requirements


        Ad hoc reporting through Periscope


        Simplifies access and control/auditing


 


IntelliReal


B2B Integration


 


One of our customers is in the real estate intelligence business.  We created a number of services around existing business logic and data.  The services were initially used to develop a UI that was used by most of their customers.  When customers asked for customization of the UI, our customer would offer that everything they saw in UI was simply a service that they could use as they saw fit.  The B2B customers would then use the exact same services to develop their own user interfaces, workflow processes or integrate applications.  What you see here are examples of how different companies used the exact same data.


 


The beauty of building services was that we could use our own services for the UI. 


 


In this first figure, you can see that this is from the IntelliReal site.  Enter an address and pick your report type.  This call the respective service that often generates a PDF and other times returns data.


 



clip_image002

 After entering an address and requesting a detailed online report, the user can see a list of objects that exist for this property.


 



image003

The following figure is a PDF that gets generated when a user requests an Intelligent Property Report.  One service returns the data for this PDF and another service formats the data and generates a PDF.  This way customers can call the data service if they wish to generate a similar report in a different format.


 



image100 

 


And this figure shows the geosearch functionality.  Via Google Maps all of the homes in a neighborhood are displayed and then can be slice and diced as the user sees fit.  For example, the user can see the data by the number of bedrooms in a home or the style of home, acreage and the like.


 




 

 image101

 


And this figure shows the geosearch functionality.  Via Google Maps all of the homes in a neighborhood are displayed and then can be slice and diced as the user sees fit.  For example, the user can see the data by the number of bedrooms in a home or the style of home, acreage and the like.


 


image102


 


The figures below all represent ways that different customers used the same data as above.  They similar call the same services that IntelliReal uses internally and then they graph the data however they choose.  For example, you can see that this page shows a simple Google map for a property and a few details about the property.



 

image103



 

Another vendor had their own mapping package to display the data on a map.  You can see they displayed an index, range for the property value and so forth.


 



image104

 

As I mentioned above, IntelliReal displayed the market volatility data in a heat  map.  This customer wanted to graph the data for a specific property and then to put it into a table at the bottom.



 

 
image105

 

And in this figure you can see that this customer used Microsoft Virtual Earth and again, wanted to display the information in a different format.

 


Financial Markets


 


One View of the Customer, Real Time Updates and Basel II


The financial markets are a great example of a business that requires SOA to comply with federal regulations.  I think of Basel II as the SOX of the banking world.  One of the Basel II requirements is that a bank be capable of pulling together everything about a customer within one minute.  In other words, a 360 degree view of a customer.  We all know that we have customer data in a number of systems throughout our organizations.  Above you can see that this financial institution has a number of databases and data warehouses.


 


Using iPerspective and our Agile SOA methodology a company can quickly pull this information together from any number of systems.  This also provides for a big payoff when the business changes – such as a new acquisition.  Having a service architecture in place will reduce the complexity for these institutions.


 


Some of the SOA Winners include Wells Fargo, Capital One and JP Morgan Chase.


 


Non-SOA losers: Citibank, Wachovia, WAMU


 



image107

Healthcare Illustration of Value

Healthcare is an industry that’s screaming for a service oriented architecture.  For example, healthcare facilities are spending millions of dollars in EMR (Electronic Medical Record) systems in order to ultimately save hundreds of millions of dollars.  However, there’s a gap in the plan.  Only 4% of doctors say they will use the EMR.  Why?  They say things like “it takes too much time, it’s too hard to use, how does it benefit them?” By working with the doctors to discover their needs and preferences, we can increase the use of EMR, helping hospitals realize their planned savings!  Again, our iterative Agile approach is key.


 


In other words, bringing Electronic Medical Records systems together with other hospital systems provides a huge value to the physicians and nurses.  Specifically the business intelligence can be used to drive down cost and improve quality.  The CRM data can be used to track insurance and treatments.  Other items such as reimbursements and care tracking from start to finish, clinical decision support, inter-organizational system integration, telemedicine for rural healthcare, support for medical tourism and transient patients and integrated care are additional benefits.


 


image108


 


Roadmap: Global Services Utility Provider


 


Another example of how a company might use iPerspective is in the cloud computing world.  iPerspective allows you to expose your data and business logic as services.  Cloud computing allows you to run your own software on someone else’s hardware.  In other words it combines SaaS and HaaS.  You can’t do cloud computing without SOA.  The advantages of cloud computing are listed here…they are numerous – lowering overhead, you can expense the cost rather than having to capitalize it (i.e. you can write off 100% this year rather than 20%), you have access to your systems throughout the world, it simplifies outsourcing globally too, it’s very flexible, you can turn servers on and off at the bat of an eye and you can get a lot of scaling and redundancy by distributing your servers.


 


image109


 



Illustration of the BeTteR process

 

We’re working in a number of verticals.  We have demos geared at specific verticals.  So we would love to show you our Agile SOA process around the demo in your industry.  We can give you a great illustration of our BeTteR process.  In 5 minutes or less, we’ll show you we can not only create a set of secure services, but consume them.  We like to show off the consumption using Oracle’s Application Express, but we also have demos using other consumption or mashup technologies.  You’ll see how you’ll be able to create buy-in from your line of business managers – very quickly.  After all – it’s all about serving the needs of the business – as quickly as possible!


 


In minutes, create a service to securely access a database


·        Resources for projects – who is/will be certified inside your company


·        Leadership in Environmental and Energy Design (LEED)


·        Show the result of that service in an Oracle Application Express application


 


Create buy-in from your Line-of-Business Managers!


·        Revise quickly to fit the business needs


·        Example: want to add data from one of your preferred contractors?


·        Influencing people to change by showing them immediate value


·        Transform your organization to be service-oriented!


 



Summary

 

The bottom line is that by using our Agile SOA methodologies and technology, you’ll be able to deliver results faster and more inline with the business requirements.  Our BeTteR process is an iterative SOA process.  The end result for you and your business is that this all results in quick wins as a result of quick turnaround, which in the end is recession proof.  Like in the book “Who Moved My Cheese” – when the customers change, you need to look for cheese in a new location.  In other words, the business needs to be able to respond quickly.  The faster you’re able to move and experiment, the better off you’ll be.  As they say in the baseball world, the more “at bats” you get, the more runs you’ll have – even with a batting average of 300.


 


Who Moved My Cheese



 

 

 

 
·        Agile delivers results faster and more inline with the business 

 


·        BeTter is better…


·        Quick results = quick wins = recession proof


 



Credit

Thanks to Hubert Smits, Agile instructor for Rally Software for the Agile graphics



 

 

Friday, July 17, 2009

Agile, Agile, Agile - Our Technology - Part 4

In today's blog entry I'm going to talk about our Agile SOA technology!



iPerspective


As I mentioned, iPerspective is our technology that enables our Agile SOA methodology.  iPerspective makes all of your data and business logic look like Web Services and Periscope makes all of your data look like it’s in an Oracle database.  In other words, both are virtualization technologies.  They make non-common platforms operate in a homogenous environment.


 


Periscope


Periscope is our technology that turns any service into a query.  In other words, you can query from a Web Service as if the data is coming from your database.


 


Imagine for a minute if you had the ability to write a query from a Web service.  I’m calling this “Service as a Query” or “Query from a Service” or “Query Service” for short…


 


For example, let’s say you wanted to write a query against a Web service from http://www.thomas-bayer.com/ that contains an operation called getBank.  The service contains a bank ID (biz).


 


select bankName, bankId, location, plz


from   thomas_bayer_bank_service


where biz = 20041133


 



 


Powerful, right?  Absolutely!  Or let’s say you want to query from http://www.abundanttech.com/ ”dead or alive” service and call the getTodaysBirthdays operation (that has no parameters):


 


select *


from   todays_birthdays


 


 


 


 


Or let’s say you used Yahoo Pipes to pull Oracle’s current stock price and then you want to query from a RESTful service to get this information - now:


 


select current_stock_price, link, details


from   yahoo_pipe_oracle


 


 


 


Or what if you want to query from Google:


 


select *


from   google


where  searchString = ‘Bradley D. Brown’


 


Web Services allow you to run a program on another server as if it’s on the same server.  You don’t need to know the operating system, the hardware platform, the programming language or much of anything about the source system.   You simply run the program on another server.  That’s what a Web Service is.  Just think about the power of being able to query from ANY data source as if that data is in your own database.  That’s what I’m calling a Query Service!


 


Rolta’s iPerspective product allows you quickly expose your existing business logic and data as Web Services.  As discussed below, iPerspective adds key features to your service deployment.  Rolta’s Periscope product gives you Query Service functionality right out of the box.  You can query from ANY Web Service with a simple SQL Query!  Imagine the power of this type of functionality.  Any product that uses a JDBC driver can now query from any Web Service as if the data is on the same system.  That’s powerful!


 


Differentiators


Here are some of the key iPerspective differentiators:


 


·                     Federated (i.e. cross DB) queries


 


     Security


o   i.e. if you want put a digest, LDAP, single sign-on layer on top of services – with a button click


 


·                     All different bindings of the WSDL (i.e. old formats to new)


·                     Release management - Grouping of objects into different releases of services


 


·                     A repository of your services -


 


o   i.e. a pretty complete stack all in one


·                     Extended object support – we support a lot of things that JDev didn’t in the past – i.e. overloaded functions in a package, record types, and MANY, MANY more – basically any Oracle ERP package/API can be turned into a service


 


·                     Dynamic service - We have a service type that allows you to call it and pass in your SQL statement and we have security options that allow you to restrict what objects can be used and you can lock down the gateway or allow the service to accept this and you can pass in a federated query too


·                     Virtual private service - ability to provide access to a service that gives a customer only their data


·                     ApEx, Sensedia and UDDI support - We deploy our service repository to a number of other repositories


·                     RESTful services - with a click, you can make your release a RESTful release


·                     Auto deployment - we can deploy to 1 server or 100 at once


·                     Open Adaptor API – we have an open API for Security, Gateways. Code generation


 


Open Architecture Model for iPerspective


iPerspective is the middle man between your data or business logic and your consumers.  Data meaning databases, files, etc.  Business logic meaning code that you’ve already written.  By consumers I mean the things that will use your existing data and business logic.  Things like mashups or dashboards, workflow or BPEL processes, or applications that will integrate to other applications.


 


iPerspective is built on open technology and it’s an open architecture as well.  What does this mean for you?  If it’s built on open technology, why not just go out and download all of the open source technologies on your own?  Well, they have shortcomings and they are difficult to pull together.  We’ve done the hard work for you.  You might ask – what do you mean by an “open architecture?”  iPerspective provides open APIs to allow you to add new functionality to it.  If you want to interface to some data source that we don’t support today, it’s easy to do so.


 


iPerspective sits between the source data and business logic and the consumers…so it includes security.  iPerspective is flexible – it has an open architecture.  You can add your own data sources, gateways, code generators, security, etc.


Thursday, July 16, 2009

Agile, Agile, Agile - Our Process - Part 3


In today's blog entry, I'd like to talk about our Agile SOA process - the BeTteR process!


 


 




The BeTteR Process



Our BeTteR process is an Agile SOA methodology…so let’s talk about that now.


 



TUSC’s SOA Guide: the BeTteR Methodology

This methodology reduces risk.   It also ends up taking far less time to get to your final solution.  It’s really a pretty simple, but effective approach.  Using our iPerspective technology, you develop services within minutes.  It’s literally as simple as exposing existing data or business logic or writing new business logic (i.e. courser granularity) or data logic (i.e. a SQL query or a view).  Using Agile and iPerspective, we build a service and then the end user can see what’s built using rapid prototyping and tools like Oracle Application Express or any service consuming product (there are MANY)…in other words, they get to “try” it out.  Then we revise the functionality based on the feedback loop…which results in building the new services and so on.  This FAST feedback loop accomplishes the goals on the left…


 


Build, then try, then get feedback and revise – quick turns.  This is only possible with iPerspective…no other way!


 


BeTteR process:


·                     Reduces risk


·                     Shorter time-to-solution


·                     Simple approach


·                     Built-in precision tuning


 


image014 


 


With iPerspective:


·                     Build services in minutes!


·                     Manage services


·                     Flexibly!


·                     Easily!


 


Flexible Deployment and Fast ROI


On the bottom of the figure below, you’ll see all of your applications, business logic and data throughout your organization.  On the top, you’ll notice those service consuming products – i.e. mashups, mobile applications, application to application integration, workflow processes, etc.  In the middle you have your services.  iPerspective exposes those existing assets as business services…


 


iPerspective provides for flexible deployment, which results in fast ROI


 


iPerspective is effectively a middleware.  It connects your applications to your consuming apps.  Mashups, app to app, or workflows…it creates Web Services…


 


 image016


 


TUSC: Your SOA Guide


With Agile SOA, you can create quick turns between your business and IT groups.  This positions you to provide efficiency, risk reduction, and corporate learning to your company.  We have a number of service offerings around SOA.  These start with what we call SOA Today and move up the chain from there.  iPerspective is our software solution that allows for these quick turns.  We would love to help you through your SOA journey – no matter where you are on that journey.  Some people are still trying to valid whether SOA is real – they might be trying to understand why there is value in SOA and we have customers who have been doing SOA for 5 years.  Let’s talk a little more about SOA Today…just in case you’re on the early part of the SOA learning curve.


 


We also have services wrapped around our technology.  We can start at education (SOA Today), a roadmap, an assessment, etc…we have a complete line of SOA services.


 


SOA can fight your fears and position you well for the economic recovery


·                     Efficiency


·                     Risk reduction


·                     Corporate learning


 


TUSC is your SOA Guide to success!


·                     SOA Today - Fast transformation to service-oriented IT


·                     SOA Maturity - Optimizing your enterprise operations


·                     iPerspective - Linking your services to your business needs


 


Gaining Early, Lasting Buy-in


SOA Today is our starting point for SOA.  It starts with the workshop that you see in the upper lefthand quarter.  This is where we talk about your requirements and what you’re trying to accomplish.  The next step is the bootcamp, which is where we apply the requirements to the principles of SOA.  From there we go into visioning – once you know your requirements and about the principles of SOA, we can work together to figure out the roapmap for your first release of services.  In the jumpstart we’ll develop 2-5 services after a comprehensive design and architecture review.  The process is iteriative, so it just keeps going from there…


 


Let’s talk about iPerspective more now.


 


This figure shows SOA Today and what it typically includes:


 


 image018

Wednesday, July 15, 2009

Agile, Agile, Agile - Part 2


 

Yesterday's blog entry was a great segway for Agile.  Let’s talk about the agile-based development methodology.  Keep in mind, Agile can be part of the entire cycle – not really just development.  In other words, it’s part of the design process, testing, everything.



 

 



Agile Provides QUICK Results


The advantage of Agile is that it provides quick results.  A release is a group of iterations.  An iteration is a short period in which you’ll complete an entire cycle of design to development.  Many things occur concurrently rather than in serial.  This is part of the power of Agile.  Additionally, the cycles are short.  Internally we initially did 1 week iterations.  We later moved from 1 week to 2 week iterations.  So every 2 weeks we’re determining which features we’re going to get into our product and at the end of the 2 weeks, we have an official release of the product.  We do bi-daily builds of the entire product.  If you break the build, you buy the donuts or bagels for the team!  One build is for the US developers and the other is for our team in India.  But…since we tend to be developing nearly 24x7, the builds are really for everyone – anything that’s checked in, gets built.  The build is automatically checked to make sure the primary functionality is working.  Good  builds are automatically deployed to all test servers.  Each day the test team gets to work on the latest and greatest build!  If you have a new feature that MUST make it into the product, how long will it be before you actually get to see it?  For us, it’s 4 weeks at the most…2 weeks at the least.  I guess technically it could be within 12 hour…i.e. in the next build.  With our Agile methodology, you can produce results quickly!  Agile is not for the weak or meek.  It will accentuate your flaws.



In the construction industry, we say we “stacked the deck” with contractors – i.e. when you bring in the drywall, paint, carpet and other trades in all on top of each other.  That is pretty much what Agile does too.  The product management team is determining the priorities (i.e. for specific stories) for the next iteration, while the design team is estimating stories in Small, Medium and Large (shirt size) chunks.  The teams then meet to determine which stories will be included in the iteration…and the process goes on from there.



If a develop runs out of things to do – there is a constant backlog of stories – i.e. what we should work on next, etc.  This is powerful!  You don’t see results like this in a waterfall project.



Again, quick iterations are key – there’s still design – unlike RAD or XP.  You’re stacking the deck like in contracting.



Agile is:


·                     Short iterations allow your customer to see what they are asking for quickly


·                     It does not imply a lack of design, rather it’s more like stacking the deck


·                     Agile provides a constant backlog of “ready to develop” tasks


 



The Agile Scrum

 



The figure below is a look at our Agile process / methodology.  As I mentioned, you have a constant product backlog with prioritized features desired by customers.  These stories feed into an iteration or sprint.  Iterations feed into a release.  On a daily basis the team meets to review what was done yesterday, what will be done today and what obstacles stand in your way.  We have about 30 people on our team globally.  Our typical scrum meeting takes about 15-20 minutes a day.  I’m not a meeting person – in fact, I really dislike meetings.  But…I attend every scrum meeting I can – and I enjoy them.  Whether I’m traveling or wherever I am.  It’s a great snapshot of what everyone’s working on.  There’s no hiding in an Agile process.  It you’re not cutting it…you’ll know quickly!  The output of an iteration is a potentially shippable product increment (i.e. a release).  At the end of the sprint, we demo all of the new features and do a retrospective on the sprint – i.e. what can we improve?  I REALLY like this process and I know you will too! 

Iteration Planning



 

 


“Two Pillars” of Scrum


 


There are 2 pillars of the scrum - team empowerment and adaptability.  I’ve worked on projects where the project manager said “you have 16 hours to complete the task.”  And I’ve thought – huh?  That’s not possible…or there’s more than you think is here…or the more I dig, the more I find.  You can read the bullets here.  The beauty of this process is that you can adapt to changes when they occur.



Empowerment, changing with the business…that’s what Agile does…it does not fix the issues – it highlights them in a HUGE way!



Team empowerment


·                     Once teams are given work to do, they are responsible for figuring out how to do it.


·                     The team does the best it can during each increment.


·                     While a team works, their only interaction with management is to tell management what is getting in their way and needs to be removed to improve their productivity.



Adaptability


·                     Scrum uses "punctuated equilibrium".


·                     The team maintains an equilibrium during each increment, insulated from outside disturbance.


·                     Increments are punctuated at the end of every sprint so that the team and management can evaluate what should be done during the next increment; this decision is based on what the team has accomplished and what the environment dictates is the next most important thing to do.


 Once Scrum is underway, teams and management find it easy to focus.  Every request is easily evaluated by, "What's that got to do with delivering the code?"


 



Sprinting

I’ve provided a sample sprint planning meeting agenda below.  On the left, you can see how detailed the “chunks” of work are based on the stage it’s in.  For example, you will likely know chunks of items that you want to accomplish in the next release – for example, rework UI.  You might have huge undertaking that are past the next release – such as develop end user workbench.  From there, you can see that the closer the stories are to the current sprint, the smaller the items are.  For the current sprint, every task needs to be outlined – i.e. it must be VERY detailed!



This graphic shows how things go from concepts down to tasks.  But the design is constant.  We spend an entire day or 2 at the beginning of every iteration / sprint.


 Sprint Planning


 Sample Sprint Agenda


·                     Opening, Welcome, Intros, Agenda


·                     Product Vision & Roadmap


·                     Development Status, Architecture, Previous Sprint


·                     Velocity In Previous Sprints


·                     Team – Availability and Capacity


·                     “Done” Review Definition


·                     Product Backlog:  Review and Select


·                     Tasking Out – Estimates – Ownership


·                     Challenges – Dependencies – Risks


·                     Review:  Capacity Required


·                     Review:  Risks & Mitigations


·                     COMMIT!


·                     Parking Lot, Action Items


·                     Close


 

Tuesday, July 14, 2009

Agile, Agile, Agile... - Part 1

We (Rolta) recently annouced a partnership with Rally.  Why?  Because Agile makes you more productive.  It will help you succeed!  One such press release was in Tech Rockies and all 201 press releases are available as well.  I thought I'd take some time to blog my thoughts about Agile over the next few blog entries.

In this series of blog entries, the goal is to help you, the reader understand why Agile SOA will make your efforts successful.  Service-orientation / SOA is not best done in a huge waterfall effort.  Long, big projects are killers especially in tough economic times.  The quicker you can show success, the quicker you’ll win those new projects, get more business, save money, or whatever your goals may be.  The Agile process allows for quick wins through quick turns.  Like in the retail business, quick turns are good!  Quick turns will give you quick feedback and allows you to change as your requirements come together or change.  It’s also important to know that our approach is a best of breed approach to SOA.  In other words, you don’t need to pick an entire technology stack day one – rather iPerspective gives you the necessary components of the stack to get you going today.


 


Agile is a development methodology that’s not RAD, not Extreme Programming (XP) or anything like that…it involves releases of the entire piece of software through iterations.  The whole idea is to allow the business to work with IT, to see the results, provide feedback, etc.  You see a couple of the important terms above – quick turns and quick feedback.  Traditional SOA has been done in a waterfall method – there’s no value in re-writing things for the sake of re-writing.  In other words, there’s no direct value in SOA – the value is in “x” – something else.  With SOA you get to re-use existing assets, but if you don’t need to reuse anything…it would be of no value. SOA might allow a company to do some new things – like mashups, application to application integration or a new workflow.


 


The ability to rapidly modify service offerings is becoming a key to success in today's turbulent economy. Many companies are turning to SOA to help their business reduce development effort and achieve agility, but implementing SOA effectively has proved a daunting challenge all its own. How can today's IT managers and CIOs realistically propose SOA and quickly deliver benefits without risking their jobs?


 


This series will explain why historic SOA implementations have failed, how you can benefit from innovative software that fundamentally transforms the complexity of implementing SOA to an "instant" task, and how an Agile, iterative approach can deliver rapid ROI for your business and ultimately lower total cost of ownership. In a time where budgets can be cut at a moment's notice, this paper aims to ensure you derive value from your SOA initiatives in weeks and become the "hero" for your business.


 



Introduction

First let’s talk about our Agile SOA methodology and then will share some case studies on how organizations generate revenues quickly, get feedback from users, and ultimately save time and money.  Some people save money by using having rapid feedback with end users.  Others use it to quickly demonstrate what can be done with the services and then leave it to their B2B customers to develop their own UI when customers ask for functionality beyond their out of the box UI.  So they save money by not having to do the UI enhancements or workflow development themselves – rather they drove it out to their customers.


 


First background on SOA will be provided, we’ll talk about Agile and how it works, then we’ll talk about how you can use Agile and iPerspective to give you quick turns, which will result in quick wins.  This is our BeTteR process (build, try, retry)…so let’s get started.


 


Topics in this series include:


 


·                     Introduction to Service Orientation


·                     Agile, Agile, Agile


·                     Quick Turns (with iPerspective)


·                     BeTteR process


·                     Build, Try, Revise


 


In this entry, I'll cover the Introduction to Service Orientation...



Slaying Daemons and Ghosts

We all have those daemons and ghosts that keep us up at night…hopefully not every night, but it happens once in a while.  What is that keeps you up at night?  I’ve been in business for myself since I was about 10 years old.  From delivering newspapers and collecting weekly to starting TUSC, which what was a $50M business in 2006.  I can assure you that cash flow became a concern when I was 10 – people didn’t answer their door when I rang the bell – for their $1.40 a week newspaper…and when you’re collecting $50M in revenue, DSO (days sales outstanding) increases.  Each day equates to $140k and at 10% interest, that’s a net cost of $14k in interest per DSO…that adds up to a lot of money in no time!  So if you can reduce your DSO, you’re making money!  Cash flow is a daemon for most every business.


 


Has your firm cut “fat” and then “muscle” and you’re now into the bone?  What’s next?  I’ve been there!  Everyone picks up more and more and everyone’s “happy” to have a job – as they say “it beats the alternative” – right?  It does, but the more you can do, the better off you’ll be.


 


Then there is the uncertainty and risk of it all.  When will we hit the bottom?  If we knew that, we could do a perfect pro-forma and figure out exactly what to cut and when…but it’s not that simple is it?  So how do you survive?  When will it turn?  Are we at the bottom now?  Obviously the more you can save and the faster you can save it…the longer you can hold out before you have to make any cuts.  The more you cut, the longer it will take you to recover.  The greatest time of opportunity is when the market recovers.  That’s when there is a shortage of firms in business and that’s when the profit margins are at their highest.  You’ll far exceed your losses in gains – but only if you survive.  So it’s a tightrope that we all balance.


 


The faster you can learn from your users, the more you stay ahead of things, the more you’ll be ahead of the curve.  How can you accomplish this?  Quick wins!  If you can support an Agile enterprise, it will streamline your enterprise.


 


How long does it take you from the time you have a great new idea until you actually see it?  With Agile, the maximum time is 2 times your iteration time.  Our iteration time is 2 weeks, so the maximum time is 4 weeks.  More about this shortly.


 


The bottom line is that long projects won’t fly when you’re trying to save money – quick wins are the key!


 


What keeps you up at night?


·                     Cash flow in a declining world economy?


·                     Efficiency: doing more after cutting into the “muscle?”


·                     Uncertainty and risk?


·                     Surviving until the recovery


 


Positioning for the recovery


·                     Learning faster, better -> ahead of the curve


·                     Infrastructure and processes to reliably support an agile, streamlined enterprise


 



Service-oriented Solutions

This is a quote from Gartner, #G00163409:


 


“Most midsize and large software projects target a service-oriented software model.  Service-oriented applications are modular, and the modules (services and clients) are loosely coupled, shareable and distributable, and are encapsulated behind separately documented programmatic interfaces. Support of such architecture requires a multifunctional, underlying application infrastructure technology often assembled by users from products of potentially different vendors. Some users prefer a best-of-breed approach to selecting their enabling technologies, although this approach requires users to act as system integrators (SIs) in assembling the end-to-end enabling platform for the project.”


 


In the past we were very technology oriented.  I’m sure you remember terms like “re-engineering” – it’s better to fit the business process into the technology – not really, but that’s what we thought at the time.  Companies moved to COTS (comes off the shelf) implementations because it was better for them to purchase software than it was for them to write it.  Sure, you might ask, who would write a database software package?  I can’t tell you how many order entry or ERP applications I wrote over my career.  People customized Oracle Applications to no end in the early days.  Then we learned that practice was a bad idea – most of us learned the hard way.  I was on a project in the early 90s where the ERP customization had been in progress for years.  When the next version of Oracle Apps came out, “customizations” killed everyone. 


 


Now we’re service-oriented.  Someone recently said to me “this SOA thing isn’t anything new.”  That’s true, it’s really not – someone else summed it up very well – “SOA is really just a bunch of best practices of best practices.”  In other words, just because you put an SOA in place doesn’t mean you can’t screw it up.  In my early SOA efforts, governance (i.e. operational excellence) wasn’t discussed, so we learned those best practices the hard way.  SOA can easily put components of the architecture right into the heartbeat of a company.  I recently talked to one of our DBAs who mentioned that a customer had all of their services running through one DB box that was processing 3500 transactions per second…therefore , they could afford ZERO downtime.  That’s risky!  I’d venture to say that’s not a best practice.  And they are an SOA shop…


 


Service orientation gives you an open API to your business, data, and business processes.  Platform independent, technology independent…i.e. we’re not technology oriented any more…


 


SOA provides you with an open standard API to your entire business.  That’s service-orientation!


 


Technology-oriented (then)


·                     Traditional business applications – “one-size-fits-all”


·                     Business processes created to utilize technology


·                     “Re-engineering”


 


Service-oriented (now)


·                     Standard information and process “services” that can be mixed and matched to solve business problems in a standard, reliable, flexible and efficient way


·                     Technology created to serve business purposes


·                     Business Intelligence, Business Process Management


 


Benefits of Service-Oriented IT


The benefits of service orientation are real.  Imagine having an open standard API for your entire business.  Any system can communicate with any other system – transparently.  So rather than moving and copying data throughout your organization, you can get the data from the system of record (single source of the truth) when you need it.  Traditionally we have replicated data throughout our organizations.  Copies of data everywhere – i.e. stale data throughout.  I was at a government facility the other day and they said – “we have access to yesterday’s information, but not today’s.”  They are making decisions about people’s lives with day old data!


 


Do you want to invent the wheel?  Do you want to re-write your systems?  Of course not.  You have years of development in your existing business logic.  In fact, in many organizations the person who wrote the original code has been gone for 10 years now.  It’s a black box.  Or…you might have a packaged application (i.e. COTS) that you don’t have the source code for.  And nearly every COTS provider makes it clear that if you modify their source code, you won’t be supported.  They also make it clear that if you put data into their database without going through their APIs, you will not be supported. 


 


Well the good news is that unlike historical architectures that required a re-write to migrate to them, SOA allows you to re-use your existing data and business logic – i.e. wrap it.  This is a first!


 


This sounds like a great concept, but as you study SOA, you’ll quick say that you don’t want to expose everything you have today as a service – i.e. programs are too granular (i.e. fine grained) to be useful in their raw form.  Composite services allow you to combine services into a larger (i.e. course grain) service.  BPEL processes allow you to orchestrate services – i.e. put workflow around services – even granular services via RMI (which is fast).  The bottom line is that some people refer to the reuse of your existing logic as “Legacy modernization.”  Clearly this is efficiency for your organization.  The benefits of legacy moderation are that you’ll have no new spend for these services, no new training  is required ($, comfort, user error – i.e. you get to program in whatever core competency you have today); and it will meet your regulatory requirements.


 


If you implement a service orientation using Agile, you’re able to accommodate changes quickly!  If you remember programming 101, it’s best to make one change, then test it out fully rather than changing 20 things and trying to get your program to work.  Well SOA is the same way – rather than developing 20 services at once, you can use Agile with short iterations and releases. 


 


Wouldn’t it also be able to build services as you prioritize them – i.e. as the business is changing?  It’s similar to Just in Time (JIT) inventory.  This is Just in Time Web Services!


 


If you can put some predictability in your service orientation efforts, you’ll be able to ultimately reduce your risk.  It’s pretty simple really!  This strategy will position you for the recovery by building your corporate knowledge one service at a time…not literally one service per iteration, but you get the idea.  This provides for continuous improvement.  Services will be used and re-used!  This process encourages and support information sharing!


 


Reuse of assets is pretty cool and Agile makes it fast to see the results.


 


Consistency across enterprise


·                     Single source of truth


·                     Reuse and efficiency


·                     “Legacy modernization”


·                     Agile – accommodates change


·                     One vs. many access points


·                     Predictability -> reduce risk!


 


Position for the recovery by building corporate knowledge


·                     Continuous improvement based on multi-use


·                     Encourages and supports information sharing


 



Service-Oriented Architecture (SOA)

There are a lot of components to a complete SOA stack.  The good news is that you don‘t have to build your entire stack day one!  You likely already have your computing and network components.  You likely already have your business applications.  SOA gets built around everything you have today – even the existing services.  SOA is an architecture, not a product you buy.  We have more information on the stack, building the stack, governance, and more...so if you‘re interested in learning more about the stack and how these things fit together, please send us an email or give us a call – we would be happy to talk to you more about this.


 


The good news is iPerspective either fits into an existing stack or we give you a complete stack...it‘s your call.


 image002


 


 


















 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


The SOA Train is Here!


Gartner has something they call the hype cycle.  It’s a cycle that they say every new technology goes through.  People get excited about new technology very quickly.  Take Twitter for example – I’m thinking it has to be at the top of the hype cycle – and will soon crash.  Once people get beyond the hype and get back to reality, the technology tends to hit a new low, then slowly rebuilds.  Depending on what part of the curve you’re comfortable implementing a new technology will depend on your interest in SOA or any other technology.   If you’re an early adaptor, you missed the curve for SOA…but cloud computing might be more up your alley right now.  SOA has passed the hype cycle and is into the safe zone.  So at this point you’re not an early adaptor – nor a late adaptor.  Just like Goldilocks said in the “3 Little Bears” said – “this bed is just right…”  You time might be now.


 


Internal sales – we’re past the early adaptor stage – it’s time for others now…


 


image004 


 











 


 


 


 


 


 


 


 


 


SOA Utilization


IDC took a look at services within organizations that were using SOA to figure out what categories their services fell into.  If we focus on a few service categories, we quickly notice that 58% of the services either wrap an existing interface, query or update data or perform data transformation.  We’re going to come back to our technology that supports our methodology in a minute, but the circled categories are easily created using iPerspective (our technology).  You’ll get to see more about this in a minute.


 


The circled ways companies are using services are what iPerspective does immediately.  It’s 58% of the picture out of the box.  We have other things like security services, we can do such as event notification, etc.


 image006


 


 













 


 


 


 


 


 


 


 


 


 


SOA Is Alive and Well!


The Burton group did a great job of exciting the SOA world and creating viral hype for the community by saying SOA is dead – brilliant!  But…it’s not dead.  Long live services – but monolithic, top-down, waterfall SOA projects…yes, those are dead.  Who can afford to wait 2 years to see the results of something you start today?  Nobody can.  The business changes far too much in 2 years.  In times like today, 2 months is too long!


 


As I discussed above, legacy modernization – i.e. using your existing assets is key.  There is a shortage of skills and talent within most every organization today.  Most adaptors of SOA said this was a challenge to support a HUGE SOA initiative.  Again, our technology that backs up our methodology, iPerspective, answers that challenge by automatically taking care of complexity and removing the need to know new programming languages and paradigms in order to exploit the advantages of SOA.


 


SOA is not dead, but as I mentioned above, SOA doesn’t give you ROI…and services are alive – just not the big stuff…


 


Monolithic, tops-down, waterfall approaches have not worked:


·                     Multi-year


·                     No significant ROI


·                     Cultural turmoil


 


Burton Group: SOA is dead!?


·                     According to Burton Group in 2008, SOA initiatives have stalled out in some cases:


o   The techies have not been able to explain to the business units why they should adopt a better attitude about sharing and collaboration -- which is the fundamental cultural shift required for SOA to succeed. The pervasive attitude is “What's in it for me?”


·                     No! Service-oriented is very much alive!!


·                     iPerspective automates and requires no new skills!


 


Comparison of SOA Approaches


The TUSC approach or methodology empowers rich customer interactions through Agile SOA


 


We believe that


·                     SOA should be delivered in days, not months or years.


·                     Agility is the ability to be flexible, quickly – this is critical in both your approach and technology benefits


·                     Simplicity and delivering rapid value are paramount


·                     There is a better way to deliver SOA Today.


·                     Traditional and technology-oriented approaches take too long, require the business to wait as it changes, lacks agility, etc.  Agile is by far the most productive development methodology I’ve ever experienced.  We use it for all of our internal product development.


 


Our approach is iterative, small projects, quick ROI…


  


 image008

Wednesday, June 17, 2009

Sample Query from a Web Service ApEx Application

I created a sample Oracle Application Express (ApEx) application that contains a few of the queries in the previous blog entry.  The application executes the 3 queries below.

Sample ApEx Application

Sunday, June 14, 2009

Service as a Query (SaaQ) or Query from a Service (QfaS)

Imagine for a minute if you had the ability to write a query from a (Web) service.  I'm calling this "Service as a Query" or "Query from a Service" or "Query Service" for short...

For example, let's say you wanted to write a query against a Web service from http://www.thomas-bayer.com/ that contains an operation called getBank.  The service contains a bank ID (biz).

select bankName, bankId, location, plz
from   thomas_bayer_bank_service
where biz = 20041133

 
















BANKNAMEBANKIDLOCATIONPLZ
comdirect BankCOBADEHD001Quickborn, Kr Pinneberg25449

Powerful, right?  Absolutely!  Or let's say you want to query from http://www.abundanttech.com/ "dead or alive" service and call the getTodaysBirthdays operation (that has no parameters):

select *
from   todays_birthdays

 




























































FULLNAMEBIRTHDATEDEATHDATEAGEKNOWNFORDEADORALIVE
Belushi, James06/15/1954 55Saturday Night LiveAlive
Cuomo, Mario06/15/1932 77State and Local FiguresAlive
Jennings, Waylon06/15/193702/13/2002(64)Country & Western PerformersDead
Nilsson, Harry06/15/194101/15/1994(52)Pop and Rock & Roll PerformersDead
Udall, Morris06/15/192212/12/1998(76)Members of CongressDead
Varney, Jim06/15/194902/10/2000(50)Other ActorsDead

Or let's say you used Yahoo Pipes to pull Oracle's current stock price and then you want to query from a RESTful service to get this information - now:

select current_stock_price, link, details
from   yahoo_pipe_oracle
















CURRENT_STOCK_PRICELINKDETAILS
ORCL - last: $20.85 @ 4:00pm EST 6/12/2009http://finance.yahoo.com/q?s=ORCLlast: $20.85 @ 4:00pm EST 6/12/2009
change: -0.09
day high: 21.00
day low: 19.47
open: 20.82
volume: 23154762

Or what if you want to query from Google:

select *
from   google
where  searchString = 'Bradley D. Brown'

Web Services allow you to run a program on another server as if it's on the same server.  You don't need to know the operating system, the hardware platform, the programming language or much of anything about the source system.   You simply run the program on another server.  That's what a Web Service is.  Just think about the power of being able to query from ANY data source as if that data is in your own database.  That's what I'm calling a Query Service!

Rolta's iPerspective product allows you quickly expose your existing business logic and data as Web Services.  As discussed below, iPerspective adds key features to your service deployment.  Rolta's Periscope product gives you Query Service functionality right out of the box.  You can query from ANY Web Service with a simple SQL Query!  Imagine the power of this type of functionality.  Any product that uses a JDBC driver can now query from any Web Service as if the data is on the same system.  That's powerful!

Here are some of the key iPerspective differentiators:

 

 

 

 

 

 

 

  1. Federated (i.e. cross DB) queries


  2. Security

    i.e. if you want put a digest, LDAP, single sign-on layer on top of services with a button click
  3. All different bindings of the WSDL (i.e. old formats to new)

  4. Release management - Grouping of objects into different releases of services


  5. A repository of your services -


  6.  i.e. a pretty complete stack all in one

  7. Extended object support we support a lot of things that JDev didnt in the past i.e. overloaded functions in a package, record types, and MANY, MANY ore

    basically any Oracle ERP package/API can be turned into a service

  8. Dynamic service - We have a service type that allows you to call it and pass in your SQL statement and we have security options that allow you to restrict what objects can be used and you can lock down the gateway or allow the service to accept this and you can pass in a federated query too

  9. Virtual private service - ability to provide access to a service that gives a customer only their data

  10. ApEx, Sensedia and UDDI support - We deploy our service repository to a number of other repositories

  11. RESTful services - with a click, you can make your release a RESTful release

  12. Auto deployment - we can deploy to 1 server or 100 at once

  13. Open Adaptor API we have an open API for Security, Gateways. Code generation

Saturday, June 13, 2009

Don't Under Estimate Google Fusion Tables...

I've read some people's comments about Google Fusion Tables and how it might compare to an Access DB or to Microsoft Excel, but not to a "real" database like Oracle.  Today, maybe, but tomorrow (or soon) - I think not! 

Google is quickly moving into cloud computing - if they aren't there already.  They are a company of sheer brilliance - extremely calculated, extremely smart moves and highly respected amoungst technologist.  Sure, there's plenty missing now - like the ability to write a SQL query and transform your data, an SOAP/REST API or JDBC driver, customization features (i.e. add your own visualization), a procedural language and much, much more.  But Google moves fast - VERY fast.

Check out the visualizatoin features for example - these are impressive and SUPER easy to use.  I'm confident more and more of those will appear shortly.  When Google adds extensible functions to their database, again - watch out.  Yes, as of right now, it's a repository of data that can be shared - big deal, right?  A glorified spreadsheet - sure.  But that's today...not tomorrow, not a year from now.

What would I like to see added right now?  The SOAP or RESTful API that I mentioned above.  A JDBC driver would be a dream come true for me - why?   Because our iPerspective product can turn the JDBC driver into a series of Web Services for the application.  I really like how Zoho approached their Cloud DB offering.  In fact, I really like how they offers applications (like a CRM package, Office-like software, Invoicing, Projects, etc.) on top of their database.  What if you could build and offer applications on their DB?  What if Google came up with applications (i.e. an ERP) on top of their DB?  Sounds pretty powerful to me!

Right now it's just a glorified / enhanced Excel spreadsheet, sure...but watch - that will change!

Saturday, May 30, 2009

Path to Utility Computing

It's been said that IT departments will become extinct - just as having your own power plant became extinct for large corporations.  When I started my first job, we had a HUGE dictation department.  Clearly that department became extinct as word processing rolled out to the sales reps, executives, and the C-level teams.  Utility computing promises the same future for internal IT departments.  Why do companies have IT departments?  IT isn't typically "core" to an organization.  Sure, some parts of IT are - the information part, but not the "data" part.  There are far too many things that IT departments do that could be done MUCH better in scale. 

To move our systems outside our companies is a multi-step process.  One step that will help us make great progress toward utility computing is cloud computing.  If you want to move into cloud computing, you MUST start with SOA.  If you want your systems to be able to talk to each other, you must start with SOA.  If you want your customers to be able to talk to your applications, you must start with SOA.  If you want your vendors to talk to your applications, you must start with SOA.  Operational efficiency begins with SOA too!  SOA begins with services.  Thinking in service orientation is a fundamental start to it all.

Tuesday, May 26, 2009

Exiciting Day at TUSC - the iPerspective Launch!!!

Today's an exciting day for the iPerpective team - it's launch day! 

 
























By ACEs, For Aces



May 2009





 































Oracle ACE Spotlight Brad Brown , Oracle ACE Director
Brad Brown is the co-founder of TUSC (a Rolta Company) and currently serves as their Chief Technology Officer and general manager for the Rolta SOA Center of Excellence. His passion is in Web Development where his career spans over 20 years working with different technologies namely Oracle Application Server 10g, HTML DB, Oracle Portal, XML and Java.

With the vast experience Brad possess, it has earned him acting CIO/CTO roles and appointed board member at several companies. He authored 5 best selling Oracle Press books and is a recognized speaker throughout the global Oracle community. Brad is also an IOUC Fusion Council member and an active participant of IOUG. Most recently, Brad's alma mater, Illinois State University, put him into their first Hall of Fame for the College of Applied Science and Technology.

During his free time, Brad can be found outdoors hiking, swimming, skiing, motocross / trail riding or relaxing and spending time with his wife and two children.














Oracle ACE Program News


Welcome New Oracle AcesInitiated April 2009





























Name



Location



Focus



Judi Doolittle



US



App



Robert Freeman



US



dB



David Kurtz



UK



dB/App



Susan Shaw



Canada



App




Tell Your Oracle OpenWorld Story

If you are an Oracle OpenWorld alum, the OOW editorial team would like to feature you (Oracle ACE) in the OOW 2009 San Francisco print conference guide, blog, and onsite show dailies newspaper.

To participate, tell us in 200 words or less, your thoughts and experience about OOW. For example, what is the most valuable thing attendees are likely to gain from the conference? What are the top five not-to-be-missed things to see or do at Oracle OpenWorld? What is one thing you learned or saw at a past Oracle OpenWorld that changed the way you do your job?

For further details or to submit your entry, please email leslie.steere@oracle.com by Wed, June 10.

Counting Down to ODTUG Kaleidoscope: June 21-25, 2009

ODTUG Kaleidoscope 2009 is less than one month away! Join ODTUG for over 150 technical sessions, four symposias, more than 30 hands-on labs sessions, and countless opportunities to learn, network, and catch up with old peers. Support your fellow Oracle ACE Directors for the Sundown Sessions. And, don't forget about ODTUG Community Service Day where volunteers will work together to help preserve the habitat. Register Today!




Update: Are you the Smartest Database Professional in the World?

The DB-Quest Challenge is still out there and going strong. With over 40,000 plays of the game across the world, the database community is actively twittering, blogging & posting news and views on the game. If you haven't played it yet, give it a spin! Brainiacs who reach the leaderboard earn the privilege of submitting new questions or you can propose new ones in the Oracle Mix group.

Challenge your peers and see who's smarter. Follow the QuestionMaster on Twitter for the latest game updates.

Call for Papers: UKOUG Conference Series Technology & E-Business Suite 2009

UKOUG is calling all Oracle Technology and Application experts to submit a paper for their annual conference. This year, the conference is aimed specifically at the Technology and E-Business Suite users and will cover 7 product areas within one conference. Call for papers are now open and submission deadline is June 5.

Oracle Press Titles on Oracle E-Business Suite: 30% Off for Oracle Aces


Hot off the press are two new books by Oracle Press on Oracle E-Business Suite: Oracle General Ledge Guide and Oracle Procure-to-Pay Guide. Oracle Aces will receive 30% exclusive discount to these two books plus other select Oracle Press books. Enter promo code: ace902.

Early Bird Registration: UKOUG Conference Series Hyperion & BI 2009

Have you reserved your spot at the UKOUG Conference Series Hyperion & BI 2009? Register by May 29th for the early bird discount.

Articles on Oracle Web Rowset Just Released by Packt Publishing

A two-part article series written by Oracle ACE Deepak Vohra on Oracle Web Rowset is available for download on the Packt Publishing website. The content of the articles were taken from Vohra's book Processing XML documents with Oracle JDeveloper 11g. Oracle ACE's can purchase this book and other Packt books at a 23% discount. Enter promo code: orpp749.

Interested in Writing?

If you have the enthusiasm for communicating technical ideas and concepts, have a valuable experience or a technical skill that you're keen to share with readers, you should give serious consideration to authoring a book or becoming a technical reviewer. Please contact sheila.cepero@oracle.com for more details.

> back to the top










 















Subscribe to Oracle newsletters




What Are You Doing?


Have you published an article? Are you speaking somewhere? Promote yourself here!


Submit newsletter item


Comments? Suggestions?


Contact lillian.buziak@oracle.com















Oracle ACE Watch


An IDE that Moves with the Times In his article, ACE Director Chris Muir talks about moving your IDE with the times and moving beyond the simple compiler and debugger to solve the challenges that contemporary developers face. Oracle JDeveloper is such an IDE. Today JDeveloper 11g is a complete end-to-end development platform. Read the full story.

System Statistics of the Oracle Cost Based Optimizer- aka: Cost Computing - Part 2 and 3

Randolf Geist , Oracle ACE, continues his series with part 2 and part 3 on the importance of understanding the fundamentals of the Cost based optimizer and the different statistics modes work in his blog.

Taking an Oracle ADF Application from Design to Reality

Oracle ACE Penny Cookson and ACE Director Chris Muir presents in their article techniques for decomposing system requirements into a living, breathing Oracle ADF application.

SOA: What's in it for Me?

During the InSync conference, ACE Director Debra Lilley, talked about how SOA can help simplify application business processes for Applications specialists. She said "SOA for IT is like USB revolutionized our charges - one charging connector for everything!" Learn what's in it for you.

Oracle RMAN Backups the Easy Way

Based on real life experiences, ACE Director Porus Homi Havewala provides a technical explanation and examples on how to easily set up and schedule Oracle RMAN backups through Oracle Enterprise Manager.

PL/SQL naming conventions and coding standards

After studying, writing and writing about PL/SQL code for more than fifteen years, ACE Director Steven Feuerstein has "finally gotten around" (his words) to publishing, in a single, concise document, his thoughts on coding standards and naming conventions for PL/SQL development. You can download (and give feedback on) his ideas at http://www.ToadWorld.com/sf/standards.

The First Ever Oracle Hyperion Essbase and Smart View 11 Books Now Available

Oracle ACE Directors Tracy McMullen and Edward Roske recently authored and released two new titles as part of their Hyperion book series: The Look Smarter Than You Are with Essbase 11: An Administrator’s Guide and Look Smarter Than You Are with Smart View and Essbase 11: An End User’s Guide.



This article written by ACE Director Raj Mattamal walks you through a customer example implementation using custom authentication schemes while leveraging the suite of Oracle Application Express applications.

Oracle 10g Application Server Fusion Middleware for Identity Management

Oracle ACE Ben Prusinski posted a 2-part series about Identity Management for Oracle 10g Application Server with Fusion Middleware in his blog. Part 1 talks about configuring the Oracle Certificate Authority (OCA) for use with certificates and part 2 involves how to setup and manage wallets with the Oracle Wallet Manager for certificates with SSL and Oracle 10g Application Server.

No Such Thing as a Table Too Small

Read this 7-part series post in Oracle ACE Director Richard Foote's blog on how indexes can be quite beneficial even if the associated table is very small.

OWB 11G - Goals, Features and Installation

Nathalie Roman, ACE Director, summarizes in her blog the new features of OWB 11G and how the installation process has been simplified with Oracle Database 11g.

She also blogs about different approaches to debugging and logging BPEL processes.

> Back to the top
















Oracle Aces Out and About





> back to the top
















Architect Corner


Video: Jordan Braunstein at OTN Architect Day NYCJordan Braunstein, SOA Partner at TUSC and one of the latest additions to the Oracle ACE ranks, gives the two minute version of the presentation he gave in April at Oracle Technology Network Architect Day in New York City.

> back to the top
















Upcoming Events





> back to the top





 
















Copyright © 2009, Oracle Corporation
and/or its affiliates. All rights reserved.

Contact Us | Legal Notices and Terms of Use | Privacy Statement





 

Thursday, April 2, 2009

Looking into the Future with iPerspective - Everything will be Integrated

As I look into the future of SOA and WOA, numerous applications are still waiting for you to build them. If you're looking for an opportunity to innovate and build a SaaS or Cloud offering for the world, I'd recommend you think about a SOA / WOA application that communicates with everything else in the world. Today this is SO easy to do too!

When I started studying the static pages of the Web in 1994, I immediately saw an opportunity to build pages dynamically. Originally this was called CGI programming. I immediately started developing dynamic Web applications and talked about how this was going to change the world. That people were actually going to build "Transactive Content" applications and that people would make millions doing so. Amazon is a great case-in-point.

After developing my first Web applications, I needed data from other Web applications, so I turned to scraping HTML data, turning it into XML and getting my needed data from other sites. At that point, I knew that system-to-system integration and sharing of data was going to become important to our future...which clearly it was.

I began talking about dynamic XML, which quickly evolved into Web Services as we know them today. SOAP (i.e. SOA) is sometimes a little heavier than "need be" so RESTful services (i.e. WOA) is ideal for AJAX-based client applications and the like.

When I started talking about Web Services (in about 2003), I discussed a number of applications that could be built that could revolutionize the world as we know it. Companies like Facebook have capitalized on the concepts I've been discussing for years now.

As I mentioned, building applications that talk to other applications is so simple today. Products like Rolta TUSC's iPerspective make it easy to expose your existing data and business logic as SOAP Web Services or RESTful Web Services. Imagine the power of building an application and instantly being able to expose your entire application through an open standard API (i.e. Web Services).

The beauty of application-to-application integration is that if you build an application and connect it to the world, people can use your unique IP however they wish to use it. If you create a flexible or dynamic open API, your customers will be able to get the data they want, when they want it, how they want it. It also allows you to focus on your core skills and allow others to focus on their core skills.

So, stop, take some time to think about the application you've been dreaming of...it's possible today! The application that I talked about some years ago Orbitz has capitalized on - booking flights, hotel, cars, all on one system. I took it a few steps further in my presentations in 2003, but for intensive purposes - they have an application that does a lot. But not this far. Imagine if you built this 2003...why not build it today? I'll use it!

Imagine this...

Let's say you want to build an integrated travel and scheduling application. As I mentioned, there are plenty of travel companies out there already. There are also plenty of scheduling applications as well.

Here's a use case. Let's say that I'd like to make a business trip to TUSC’s Chicago office. I would need to book a flight, rent a car, book hotel(s), and then I'd like to make appointments with “key” customers.

As you know, you can arrange the flight, car and hotel through one service (e.g. Orbitz)…so where’s the value? Well...what about the “rules” of your travel? How about “scheduling” your days of the trip?

Imagine an application where using your online assistant, you could begin by defining the initial rules for your travel preferences. Your “assistant” is external to your company of course. Let's say that I would like to make the trip in the next month and I would like to spend the least number of days possible (2 minimum to 4 maximum) and visit the most customers possible. The application allows me to predefine numerous rules in my profile - just like you would communicate to your assistant.

Rules such as detailed hotel, airline and car rental preferences, how long a customer visit takes on average (e.g. 2-3 hours), meeting invitation / letter to customers and prospects, spend the least amount of time in a city possible, arrange appointments around dates that offer the least amount of money on flights, hotel and car rental possible, start as early as 6am and end as late as midnight and so on. Again - this is what my assistant already knows about me - so why not automate these rules?

Now - what about those key customers? As you know, your hosted / SaaS CRM application already contains this information. You might also need data from your ERP application to determine "key" customers. But in an open API world, it's very easy for us to integrate all of these applications. In my rules, I might define that "key" customers should be ranked by revenue or longevity or whatever criteria I wish to use for this trip.

Using my integrated application, calendar invitations (this is an open standard today) are automatically sent to customers and prospects. Customers then accept (or reject) the invitations - which are not for a specific date - just "will they meet with me for 2-3 hours?"

After this initial invitation is sent, 8 people accept my offer. We know the address of each of our customers, so schedules are calculated based on drive time, 2-3 hour meeting time, availability of people, etc. It turns out that in the next 4 weeks, only 2 of the weeks will work based on everyone’s schedules – the block of time required (3 days – M-W, T-R, W-F)
Flight, hotel and car rates for the available blocks of dates are gathered based on preferences and wala, a trip date is selected! All automatically!!!

Everyone's calendars are updated (my calendar, my wife’s calendar, my assistant, the 8 appointments and the people they want at the meeting). The reservations are booked - including the hotel (2 different hotels), car, and airline.

As the trip date approaches, schedules are automatically adjusted and confirmations are sent at key points in the process (based on people’s profiles).

My iPhone contains all of his travel information of course. When I arrive in Chicago and pick up my Hertz Gold service, my car's NeverLost is loaded with each address for the day. Traffic information is also communicated to select the fastest route to my destinations. As I drive to my first customer visit, On the way, I'm read (i.e. text to speech) updates about the customer – recent transactions with customer, problems, emails, etc.

My hotel for the evening required no cancellation fee and a last minute rate became available. The hotel changed on the fly. My iPhone calendar is updated and car directions are updated. My spouse and assistant were notified of change too.

As can be expected, one customer cancelled, so a new prospect was invited and accepted – everything was updated once again. When any meetings are finished early the car noticed, customers were contacted to move appointments up when possible.

At the end of my trip, I ended up finishing the 3 day trip 4 hours early, so my flight was automatically changed to standby for the earlier flight. I got home 4 hours earlier than I originally planned, which my wife knew about because she was kept up-to-date by my "assistant."

Is this dreaming? In 2003 people thought I was dreaming when I explained that all of this is possible with Web Services. Today it's absolutely considerably easier than it was then.

My point? Dream - think of an application and build it! Don't re-invent the wheel. There's no need to do so now that SOA and WOA can help you integrate what already exists. Build an integration platform...why not?

Thursday, March 5, 2009

The Power of WOA - Woooooooooooooooooooaaaaaaaaaaaaa!

I've been talking about light weight SOA (or Web Oriented Architecture / WOA) for some time now.  I'd like to share a real-world example of how you might use WOA in your environment.

The "end results" are always what I like to show off first.  If you look to the right on this page, you'll notice a map and some links on the map - it's titled "Big Garages."  These are homes with garages over 1000 square feet in Douglas County.  As you can imagine, the power of WOA is the ability to not only publicly display data, but private analysis of your data too!

I've always been a big fan of geo-analysis of my data.  The saying "a picture is worth a 1000 words" is just so true for me.  I'm a huge fan of Yahoo Pipes and Google Mashup (which unfortunately Google decided they needed to charge for - by deprecating it and moving people to Google App Engine by July 2009).  

In this post, I'm going to specifically talk about the ability to take RESTful data and display it in Blogspot, My.Yahoo.Com, www.iGoogle.com, Google Earth, etc. - i.e. in a mashup or otherwise.

Where I started is that I used iPerspective to create some publicly available RESTful services.  I created 2 services to start with. One service (LeadLocations) returns a set of companies, cities and respective states for leads from a conference.  This information is being pulled from a Zoho Cloud database.  The other service (Properties in Douglas) returns detailed data about properties in Douglas County Colorado.

Both of these services will return the data from SOAP and RESTful service calls.  For example, you can see the list of Lead Locations JSON/XML and Properties JSON/XML using these links.  The thing I love about REST is how easy it is to limit my data set that gets returned.  For example, I can look at properties that (you can view the link itself to see how I'm limiting the data):

It's also great because it's so easy to go between XML and JSON...literally, just adding .json to the operation name!  JSON is a bit "thinner" than XML, so I prefer it over XML - since it saves network bandwidth.

I started my journey by creating a Yahoo Pipe that consumes the above RESTful services.  You can check out my Yahoo Pipe right here too.  This will allow you to enter in a where clause and query specific data from database.  You can write a query that will pull back whatever data you 
would like to see geospatially represented.  Column names that you can query off of include, but are not limited to:

  • Acres
  • Condition
  • Finished_Basement_SF
  • Fireplace
  • Garage_SF
  • Garage_Type
  • Occupancy
  • Owner_Name1
  • Owner_Name2
  • Owner_State
  • Property_City
  • Property_Street_Name
  • SF (Square Feet)
  • Taxable_Total_Assessed_Value
  • Total_Actual_Value
  • Walkout
For example, if you want to:

  • Find the homes owned by anyone who's name started with Brad, you could use:
  • owner_name1 like 'BRAD%'
  • Find all of the homes over 10,000 square feet on less than .5 acres, use:
  • sf > 10000 an
    d acres < .5
  • Find all homes with the owner living in Florida, use:
  • owner_state = 'FL'

That's pretty powerful isn't it!

I published my Pipe, so you can click on "Edit Source" which will allow you to see my pipe's steps to graphing this information.  You can clone it and create your own similar (or very different) pipe too! 

 You also notice that you can:

  • Get a badge (for TypePad, Blogspot, WordPress, iGoogle, or an Embedded Link.
  • MyYahoo
  • Google
  • RSS
  • JSON
  • SubBlogLines
  • Netvibes
  • NewsGator
  • MyAOL
  • Results by Email or Phone
  • Get as PHP or KML (Google Earth)
If I click on the "Get as a Badge" option and embed into iGoogle, you can see below, that my current search (i.e. where clause) gets saved for the data that's displayed in the map on my iGoogle page.  Whereas if I click on the iGoogle link, I get the list of properties (rather than a map).


Next I thought I'd show this information in a Google Mashup page.  I copied some of the sample code and played with writing mashup code for a while until I got a mashup page that I like.  The code is found here - you'll notice my code contains the link the to RSS link from Yahoo.  So my Yahoo Pipe is feeding this data to Google Mashup (as an RSS feed).

Let's take a look at the visual version of this page, which you can view here:



Now hopefully you're saying WOAAAAAAAAAAAAAAAAAAAAAAA!  The power of taking your data to a whole new level is here!  Imagine it!

Saturday, February 28, 2009

Forms Migration and Security for ApEx

Well, now the long awaited ApEx in our hands...and it's pretty clear that the primary focus was on Forms migration and security enhancements as you can see on Oracle's Site.

I tried Web Services using a SOAP binding of document literal wrapped and I got the same error as I did in 3.1...so I have an email into the ApEx product manager to see if these enhancements made it into the 3.2 release after all...anxiously awaiting!

Quick Turns with ApEx 3.2

The moment that I've been waiting for months now is finally here! It's an exciting day for the iPerspective team! Why? Because Oracle (finally) released version 3.2 of Oracle Application Express (ApEx). I'm a huge ApEx fan! Why? Because of how quick I can develop a production ready application using ApEx. The ability to consume Web Services that can access virtually any data source, make ApEx a great environment for developing Mashups - quickly!

The faster you can show your customers your product, the sooner you can get feedback and in turn, the faster you can meet the needs of the business. ApEx 3.2 has added support for more SOAP binding types, which is a good thing!

I started by downloading ApEx from the Oracle site - it's about 92Mb. After downloading the new file (I already had 11g of the Oracle DB installed), I extracted the zip file into my existing {oracle home} apex directory. This placed the new apex as a subdirectory in the prior directory - I didn't think overwriting it was a good idea.

I then ran the apexins.sql script after login into the sys schema:
@apexins SYSAUX SYSAUX TEMP /i/

As usual, this script ran and performed my upgrade of ApEx flawlessly. I've had the ApEx installation go "bad" a couple of times, but the solution is simple - drop the new schema and re-run the apexins script...it always worked the 2nd time...and about 99% of the time it's worked on the 1st time.

I did receive the following error in my Web Service app:

ORA-20001: The webservice was unreachable because either the URL you supplied was invalid, your environment requires a valid proxy server address for HTTP requests, or a wallet needs to be configured for HTTPS requests.

The reason is that the ACL is OK for flows_030100, but not the new flows_030200 schema. To fix this issue, you must run this script:

DECLARE
ACL_PATH VARCHAR2(4000);
ACL_ID RAW(16);
BEGIN
-- Look for the ACL currently assigned to '*' and give APEX_030200
-- the "connect" privilege if APEX_030200 does not have the privilege yet.
SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;
-- Before checking the privilege, ensure that the ACL is valid
-- (for example, does not contain stale references to dropped users).
-- If it does, the following exception will be raised:
--
-- ORA-44416: Invalid ACL: Unresolved principal 'APEX_030200'
-- ORA-06512: at "XDB.DBMS_XDBZ", line ...
--
SELECT SYS_OP_R2O(extractValue(P.RES, '/Resource/XMLRef')) INTO ACL_ID
FROM XDB.XDB$ACL A, PATH_VIEW P
WHERE extractValue(P.RES, '/Resource/XMLRef') = REF(A) AND
EQUALS_PATH(P.RES, ACL_PATH) = 1;
DBMS_XDBZ.ValidateACL(ACL_ID);
IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_030200',
'connect') IS NULL THEN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
'APEX_030200', TRUE, 'connect');
END IF;
EXCEPTION
-- When no ACL has been assigned to '*'.
WHEN NO_DATA_FOUND THEN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml',
'ACL that lets power users to connect to everywhere',
'APEX_030200', TRUE, 'connect');
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
END;
/
COMMIT;


ApEx 3.2 continues the legacy modernization kick too. ApEx was already great for migrating MS Access applications to ApEx...but what about Oracle Forms? Well...ApEx 3.2 now has an Oracle Forms migration kit! This is huge for the modernization of your Forms applications! Combine this with the Mashup features (of Web Services) and wow! What a powerful solution!

I'm going to keep playing with ApEx 3.2 now...what fun!

Tuesday, February 17, 2009

Mashing Up the Cloud

Creating Cloud Computing Services with iPerspective using Zoho's CloudSQL

This is a demo of how I used iPerspective to create and consume Web Services in a mashup using Oracle's Application Express and Proto. The services use Zoho's CloiudSQL to pull data directly from the Cloud.

Monday, February 16, 2009

Virtualizing the Cloud

Have you ever thought - is Cloud Computing just another name for SaaS (Software as a Service) or is it something different? I'd content that Cloud Computing is in fact different than SaaS.

Here's how I see each of these concepts:


  • SaaS is simply software that runs on someone else's servers and that you pay for "by the drink." In other words, it's software that's hosted for you. You don't typically have control over software upgrades, outages, etc...they just happen whenever your software provider schedules them. How you pay for the software may vary. In other words, the unit of measure that you're charged for can be very different between different vendors. Many vendors charge per month per named user...and others charge based on the specific services you request. IntelliReal is a good example of a company who provides their software as a service. They provide property valuations through their hosted application. Customers pay by the valuation. Customers can access their valuations (and other information) via a browser, Web Services, etc.

  • Cloud computing on the other hand is an architecture that allows you to use computing power using a variety of access methods - including via a browser, Web Services, RESTful services, etc. You can "spin up" or "take down" virtualized services whenever you want. For example, Amazon's EC2 architecture is a cloud of computers. Spin up and image, run some processing for an hour and spin the servers down. So it's not necessarily the vendor's software you're running, but can be your own software too! Zoho (a takeoff on SOHO - or small office / home office) is a Cloud computing vendor too.


Is SaaS dead? Absolutely not! How about Cloud computing? Absolutely not! They are both VERY alive and well!

Is it easy to move our processing into the Cloud? Is anything worthwhile really ever easy? I always say "if it was easy to {fill in the blank}, everyone would be doing it..." Is it easy to be the best in the world? You might ask "at what?" At anything!

So the answer is no - it's not easy to