Archive

Archive for the ‘collaboration’ Category

Looking into the Future with iPerspective - Everything will be Integrated

April 2nd, 2009

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?

Bradley D. Brown ajax, collaboration, rest, soa

Web 2.0 - The Introduction

October 8th, 2007

I finally finished the first draft of my Web 2.0 article. This will go through some editing now, but I wanted to get the first part of this article out here ASAP - I’m going to publish the article in pieces since it’s not a simple cut and paste operation:

The Introduction

You’ve heard the term Web 2.0 and might be wondering exactly what it means to you and your business. You might be wondering what Web 2.0 includes. On the other hand, you might be right in the middle of it all, but noticing that more and more Oracle products seem to offer Web 2.0 entry points. Or maybe you’re not using Oracle technology for anything but your backend database. You might be wondering which other products should be under consideration? Which should be avoided? What’s a good entry point solution?

Perhaps you missed Web 1.5 altogether. If so, you might be wondering whether you can jump right into Web 2.0 or if you have to start at Web 1.5 first. If you missed Web 1.5, you’ll be happy to know that you can skip directly into the Web 2.0 world. If you’re looking for a competitive differentiation for your company, Web 2.0 will provide this for you. The primary advantage of a Web 2.0 application is that it’s VERY simple to use!

As the name implies, Web 2.0 is the next generation of the Web. Web 1.0 helped us take data and publish it to the Web – primarily via dynamic HTML pages. Web 2.0 goes beyond the user interface. One of the common issues with Web 1.0 offerings was that people (i.e. customers and vendors) wanted the content (i.e. the data), but not the presentation (i.e. HTML wrappers). So people effectively wrote screen scraping methods of extracting the data. We sometimes pondered the legal aspects of doing so with public data – such as stock quotes from Yahoo. With Web 1.5, Web Services replaced the need for screen scraping. It’s now time to move to the next level with Web 2.0. Concepts such as social networking and collaboration (i.e. blogs, RSS and wikis) are part of Web 2.0. Additionally mashups (portals) are an important component of Web 2.0. In other words, Web 2.0 takes the Web to a whole new level!

One of the primary issues in business today is that people are using email as the collaboration tool of choice. Much of what’s behind Web 2.0 is taking collaboration to a whole new level. This evolution doesn’t mean that you’re going to sit in more meetings or communicate remotely using a suite of collaboration software. Rather, Web 2.0 delivers an entirely new platform of real-world applications that will allow your employees and customers to share information in a much more cost-effective method. Keep in mind that Web 2.0 is not a tool – it’s a platform. Most of the tools and concepts that comprise the Web 2.0 platform originated in the open source world. These tools have changed the way that people communicate inside and outside of companies.

The concepts in Web 2.0 aren’t new concepts, but they are becoming mainstream. It’s interesting to note that Web 2.0 is very similar in concept to what Forrester Research called Transactive Content in a white paper that was published 10 years ago – yes, the Forrester report was released at the 1997 Forrester Forum!

Hopefully you’ve seen a Web Application and thought, “wow that takes the Web to a whole new level.” Now imagine if your entire business revolved around an entirely new level of collaboration capabilities. The visual component of a Web 2.0 application often looks like a traditional client/server application or a standalone desktop application. In other words, Web 2.0 provides a desktop-like user interface. Microsoft Office Outlook Web Access looks like Outlook that is running standalone on your desktop or laptop. Google Maps (http://maps.google.com) looks like a standalone application running on your laptop, yet it’s a browser-based application. Enter an address in Google Maps and you’ll visually see a map of the address’ location. You can zoom in and out, drag and drop the map, get a street view, view traffic information, see a satellite view, and so much more. Another impressive Web 2.0 site is the Cyberhomes site (http://www.cyberhomes.com), which provides an attractive user interface with informative graphics and other Web 2.0 functionality. Flickr and NetFlix are some other familiar names in the Web 2.0 realm of user interfaces.

Many companies offer the backend Web 2.0 components that you can embed into your own application. These backend services are called Web Services. Without scraping HTML for data, you can make “their data” appear on your site as if the data is coming from your own databases. You can pull data together from a number of different companies’ data into one consolidated site. When you pull together data from numerous (i.e. two or more) companies, this aggregation is often called a mashup or a composite application. Google, eBay, Amazon, and Zillow, for example, provide publically available Web Services, and many such services are available for free. If you’re interested in reading more about Web Services, there are several articles and presentations in the reference section at the end of this paper.

Those of us in the technology business sometimes get lost in the marketing white papers and do not know where to go to get the “truth”. This article is meant to be your “truth article” on Web 2.0.

In this paper, we’ll address some of Web 2.0 concepts that might be less understood. You’ll find this paper of interest if you do not understand how Web 2.0 applies to myriad of development environments that tout their Web 2.0 capabilities such as Oracle’s Application Express (Apex), Ruby, Java, .NET, PHP and more. If you’re wondering where each of these components fit into the Web 2.0 picture, this paper will be of interest to you. For example, you’ll get answers to questions like “what is Ruby, why would I want to use it?” and questions like “What skill set do I need to use it, how hard is it?”First we’ll cover the components (i.e. what makes up a Web 2.0 application environment) and provide some examples of how others are using Web 2.0. Hopefully, these examples will inspire you to brainstorm about how you can use Web 2.0 technology for your company or customers. We’ll then explore a variety of Oracle-based Web 2.0 development platform choices that are available.

Bradley D. Brown blog, collaboration, rss, web 2.0, wiki