Archive

Archive for the ‘signaling’ Category

Web 2.0 Components - SLATES

October 10th, 2007

As promised, today I’m covering SLATES from my Web 2.0 article.

SLATES is an acronym that Oracle has publicized and readily discussed. It stands for the components that make up an Enterprise Web 2.0 application. SLATES stands for Searching, Linking, Authorship, Tagging, Extensions and Signaling, as discussed in this section.

Search
Search functionality is something that Oracle has been providing for years. Today it’s called Oracle Secure Enterprise Search, but it was originally known as Oracle Ultra Search. It is a robust search engine for data files, your Web applications, email and more. When it comes to executing searches (i.e. queries) against a relational database, Oracle has always been king. For years, Oracle provided functionality to search large character objects (CLOBS) as an add-on product called Oracle interMedia. However, as of Oracle 9i, this functionality was embedded into the Oracle database and is now called Oracle Text. If you’re hoping to search data spatially, Oracle historically provided this functionality as a separate license too, but as of Oracle 10g, it’s embedded into the standard edition and is called Oracle Locator.

In other words, using all of the available search features of the Oracle database (and Oracle Enterprise Search), you’ll be able to provide powerful search functionality in your Web 2.0 application. Other search choices include using a hosted solution such as Google or Master.com. You can also purchase a Google Search Appliance, FAST or Verity to provide this functionality for your application.

Links
Helping users maximize their efficiency is key to a Web 2.0 application. By tracking what “links” users click on and use, the application can figure out the relevancy or popularity of application components. This capability allows the application to automatically be user-usage customized. By learning about what people use (i.e. aggregating this information) and customizing the look and feel of the application based on usage, users should have better user interface (UI) experiences. Tracking performance at the component level will also help triage your database administration focus.

Oracle’s content tracker will manage this process for you. Tools such as Oracle Application Express (discussed below) have usage tracking built into the applications.

Authorship
The ability to take notes and discuss topics in your application are important functions for a successful Web 2.0 application. Numerous open source offerings will fill this need. Depending on the application, you may find it as simple as storing information about records in your database. For IntelliReal (www.intellireal.com), users have the ability to blog their comments about any property in the United States. This information is stored in the database in a simple table structure. Users can indicate whether their comments are only available for their eyes, available to everyone in their company or available to the public. Hosted applications such as BlogSpot (http://bradleydbrown.blogspot.com/) are also available for your applications.

Another great source of authoring functionality lies with a wiki server - another open source offering (http://www.mediawiki.org/wiki/MediaWiki). If you’re not familiar with a wiki, according to the most successful wiki, WikiPedia (http://en.wikipedia.org/wiki/Wikipedia), the definition is: “A wiki is a medium which can be edited by anyone with access to it, and provides an easy method for linking from one page to another. Wikis are typically collaborative websites, though there are now also single-user offline implementations. Ward Cunningham, developer of the first wiki, WikiWikiWeb, originally described it as “the simplest online database that could possibly work”. One of the best-known wikis is Wikipedia.”

Yet another way to think about authorship is that it’s similar to the Oracle discussion forum functionality. Oracle provides a free Oracle Application Express (Apex) forum application on the Apex Web site (http://apex.oracle.com/).

Tagging
Automated categorization of application data and content through rules and intelligent algorithms is another important component for a Web 2.0 application. If you haven’t looked at Google Mail’s tagging or content categorization, you’ll want to do so. The ability to easily group things together, provides for a whole new level of application.

Extensions
Providing a flexible architecture that can grow into Web 3.0 is going to be key. The ability for you to seamlessly extend your application via extensions provides for a composite application that to a user will appear as if you developed it completely on your own.

In this section, we’ll discuss Web Services, REST, BPEL, SOA, Mashups and Portals so that you’re familiar with a variety of Web 2.0 extensions that are available.

The Service Oriented Architecture is a message-based architecture that uses a number of message types to accomplish its goals. As you’ll soon understand, Web Services and REST are basic units of message communication, and BPEL adds a workflow layer to your messages. We’ll discuss SOA last since it’s a combination of the other components. The foundation for this section is built using Web Services or REST components.

Web Services
Web Services can be described as the ability to provide machine to machine interaction over a network. “Web” refers to the network. “Services” are programs or function that you probably already have and are using in your business. In other words, Web Services provide you with the ability to run a program that exists on another server as if that program is on the server executing the program. This capability allows one machine to communicate with another machine – i.e. system-to-system integration. Web Services can be executed in a closed network (i.e. intranet) or open network (i.e. over the Internet). Using Web Services provides internal and external application integration. If you’re interested in more uses of Web Services for internal and/or external integration, please see the references at the end of the paper.

Web Services can be used for activities including:

  • Extracting real-time or historical weather, traffic, stock quotes and currency rates
  • Gathering search engine data from Google
  • Looking up property values, comparable property details and more from IntelliReal, Zillow, etc.
  • Verifying and charging credit cards
  • Looking up and ordering books or other items from Amazon
  • Performing D&B credit checks
  • Mapping data points using MapQuest, Google, Yahoo and Virtual Earth; retrieving lat/longs and driving directions
  • Performing Customer Relationship Management (CRM) activities – add new prospects, etc.
  • Using Electronic Directory Assistance
  • Performing calendar scheduling and management

Web Services allow one business to transparently use functions from another business as if everything is owned by them. The Terabitz site discussed previously (http://www.terabitz.com/) is an excellent example of a site employing Web Services. And I also have another white paper (Internal and External Application Integration through Web Services) that discusses how IntelliReal (http://www.intellireal.com/) employs Web Services (another excellent example of the use of Web Services).

If the Web Services are deployed on Oracle Fusion Middleware, the Or
acle Web Services Manager allows you to remotely monitor and manage your Web Services. While Identity Management has typically been focused on securing and managing user-to-application interactions, most organizations also need to manage interactions between the applications themselves. Web services provide a simple, standardized way to connect applications over the Internet, but they require management of security and other runtime operations to work effectively. Oracle Web Services Manager—a member of the Oracle Fusion Middleware family of products—is a software solution for managing the operations of Web services and the interactions between these services.

For more information on Web services, see the reference section at the end of this paper.

REST
As defined by Wikipedia, “Representational State Transfer (REST) is a style of software architecture for distributed hypermedia systems such as the World Wide Web. The term was introduced in the doctoral dissertation of Roy Fielding in 2000,[1] one of the principal authors of the Hypertext Transfer Protocol (HTTP) specification. It has since come into widespread use in the networking community.”

Think of REST as a simplified method of calling Web Services using a URL (i.e. GET and POST methods). Many vendors provide REST solutions on top of their Web Services. We sometimes refer to these as “servlets” that call the Web Services and return a simplified data type – i.e. a PDF or simple object.

SOA
As defined by Wikipedia, “Service-oriented Architecture (SOA) is an architectural design pattern that concerns itself with defining loosely-coupled relationships between producers and consumers. It has no direct relationship with software, programming or technology by any means, however, is often confused with an evolution of distributed computing and modular programming.”

Oracle SOA Suite is a complete set of service infrastructure components for building, deploying and managing SOAs. Oracle SOA Suite enables services to be created, managed and orchestrated into composite applications and business processes. With Oracle SOA Suite’s hot-pluggable components, organizations can easily extend and evolve their architectures instead of replacing existing investments.

Oracle’s SOA suite components include:

  • Oracle JDeveloper 10g
  • Oracle Business Rules
  • Oracle BPEL Process Manager
  • Oracle Business Activity Monitoring
  • Oracle Web Services Manager
  • Oracle Enterprise Service Bus

BPEL
Again, according to WikiPedia, “Business Process Execution Language (or BPEL, pronounced ‘bipple’, ‘bepple’ or ‘bee-pell’), is a business process modeling language that is executable. The origins of BPEL can be traced to WSFL and XLANG. It is serialized in XML and aims to enable programming in the large. The concepts of programming in the large and programming in the small distinguish between two aspects of writing the type of long-running asynchronous processes that one typically sees in business processes.”

BPEL is emerging as the standard for assembling a set of discrete services into an end-to-end process flow, radically reducing the cost and complexity of process integration initiatives. Oracle BPEL Process Manager offers a comprehensive and easy-to-use infrastructure for creating, deploying and managing BPEL business processes.

BAM
Oracle Business Activity Monitoring (Oracle BAM) is a complete solution for building interactive, real-time dashboards and proactive alerts for monitoring business processes and services. Oracle BAM gives business executives and operation managers the information they need to make better business decisions and take corrective action if the business environment changes.

The benefits of BAM include:

  • Rich, visual dashboards — Highly-visual dashboards present information in real-time through a completely thin, browser-based client
  • Powerful, real-time analytics — Process and analyze event data using advanced complex event processing technology
  • Built for business users — Business users can personalize dashboards and build their own reports and alerts with near-zero coding

Composite Applications and Mashups
A composite application or mashup is a Web application that combines data (i.e. from Web Services) from more than one source into a single integrated tool.

Many mashups exist that use Web services from Google, eBay, Amazon, Zillow, etc. Yahoo Real Estate provides a mashup of property values from Zillow, eAppraisal and Reply!

Signaling
Signaling will provide your users with the ability to be alerted based on specific conditions that are met. IntelliReal users can be alerted based on properties that meet specific conditions. For example, any time a property is updated (you might want to watch your own home’s information), is listed on the MLS market (you might like watching homes in your neighborhood to see who’s listed their property), is listed by owner (if you’re a realtor, you might want to contact the for-sale-by-owners), is sold (you put an offer and it was rejected), the list price is decreased (you’re waiting for them to lower the price), has a MLS list price less than the actual value of the house (in the event that you’re a fix and flipper) and more. These alerts are all driven through database queries that use UTL_SMTP to send emails to customers. There are many methods that can be used to alert your users.

RSS or Really Simple Syndication also provides an excellent method of letting users know when relevant content changes within your Web 2.0 application. According to Wikipedia, “RSS is a family of Web feed formats used to publish frequently updated content such as blog entries, news headlines or podcasts. An RSS document, which is called a ‘feed,’ ‘web feed,’ or ‘channel,’ contains either a summary of content from an associated Web site or the full text. RSS makes it possible for people to keep up with their favorite Web sites in an automated manner that’s easier than checking them manually. RSS content can be read using software called an ‘RSS reader,’ ‘feed reader’ or an ‘aggregator.’ The user subscribes to a feed by entering the feed’s link into the reader or by clicking an RSS icon in a browser that initiates the subscription process. The reader checks the user’s subscribed feeds regularly for new content, downloading any updates that it finds.”

Bradley D. Brown Links, authorship, bam, bpel, extensions, mashups, rest, search, signaling, slates, soa, tagging, web services

Web 2.0 Components - AJAX

October 10th, 2007

Today I’m going to continue my Web 2.0 article. In today’s Blog, I’m going to cover up through AJAX and tomorrow I’ll cover SLATES in detail.

Web 2.0 Components
It’s time to take a look at the components that make up Web 2.0. AJAX provides the visual side of Web 2.0. A number of other technologies make up the collaboration and robustness of Web 2.0. Oracle came up with the SLATES acronym to define the Web 2.0 components. In this section, we’ll discuss AJAX and SLATE:

  • AJAX - Asynchronous JavaScript and XML
  • SLATES
  • Search
  • Link
  • Authorship
  • Tagging
  • Extensions
  • Signaling

Asynchronous JavaScript and XML (AJAX)
The concepts of AJAX have been around since frames were introduced into the Web browser. At TUSC we first implemented “AJAX” into Web applications more than 10 years ago. In my first presentations on this subject, I called this concept “Field level validation.” AJAX is typically the primary component responsible for making a Web application look and act like a desktop application. AJAX allows your application to seamlessly call the server based on any event (i.e. keystrokes, time passing, mouse movement, etc.).

Remember that a traditional Web application requires that the entire page is sent to browser for every request. In other words, historically when you clicked on a button in a Web application, the browser would send a HTTP request to the Web Server, which in turn would return a Web page in its entirety. There was no such capability available that provided “partial page rendering.” However, using sneaky techniques, developers figured out ways to make “secret” (or hidden) requests of the server via hidden frames using JavaScript, which would force events to occur in the browser – i.e. render a component on a page. As was mentioned above, we often used this technique for things like field level validation for “heads down” data entry pages. This allowed a user to enter the product ID and upon exiting the field (i.e. which caused a JavaScript onBlur event), we would make a call to the server to look up the part number and return a description and a picture of the item. 10 years ago, this was considered innovative. Today – this is built into browser functionality – it’s AJAX.

I’d like you to think about Google Maps for a minute. If you’re not familiar with Google Maps, please take a minute to go to the Website (http://maps.google.com/) and type an address in. Then click on the buttons in the map, such as zoom in and out, view the satellite map, etc. The last step I’d like you to try is to drag and drop the map to view a new portion of the map. Now let’s think about what’s required as these buttons are pushed and mouse events occur. When the page first displays, the server sends the entire page to the browser. From then on, AJAX does most all of the work. When you enter an address, note that your entire page does not refresh, just the map refreshes. If you enter a business name or category (i.e. paint store) with the city, the map (not the page, just the map) refreshes along with the business flags on the map. The browser makes an AJAX call to the server with the address you enter and returns all of the information necessary (as XML) for the map to be updated along with flags associated with business, address, etc. that you provided. When you think about the map, it’s made up of series of images that are displayed contiguously. When you drag and drop the map, Google’s AJAX code keeps track of the images that have already been loaded and only requests (of the server) the images that it needs to complete your “new” map.

Now let’s take this to another level of map integration. Google supplies an AJAX library that you can use to visually display any data you wish to see using their maps. For example, check out the Terabitz Website (http://www.terabitz.com/), which is shown below. This site is called a “Mashup.” Enter an address and Terabitz uses a number of Web Services to pull together data and represent the data graphically using Google Maps. Note that when you drag and drop the map, not only does Google know to pull in the needed additional mapping images, but Terabitz pulls the additional items that belong on your map (such as a recent home sale). How is this possible? The Google AJAX library is able to tell you the latitude and longitude coordinates of map being displayed, which in turn can tell you which additional records (from your database) you should include for mapping. Or in Terabitz case, allows them to call additional Web services to combine information from a number of valuation engines.

Terabitz Application

Let’s talk about AJAX and how it does all of this cool stuff. First, let’s break down the name itself. AJAX stands for Asynchronous JavaScript and XML. Asynchronous simple means that while the user is continuing to do their work in the browser (i.e. unbeknownst to the user), we’re going to have some code executing asynchronously (i.e. at the same time) in the background. JavaScript is the language that’s used on the browser. XML is how the data from the server is returned to (and then parsed) the JavaScript code. What you do with the data you receive back is up to you. It might display an alert message, fill in text or graphics, or call other JavaScript libraries. Using AJAX you could use Google’s library to place flags (representing properties or businesses) on the map that is current within the window.

Now that you have a better feeling for what you can do with AJAX along with some example applications to visit, you might be wondering, “how do I implement AJAX?” What add-ins are required on the browser? You might be thinking about Applets and Active-X controls that have prompted you for security questions and wondering if AJAX does this too. Fortunately AJAX is built into the browsers and has been for quite some time now. There is nothing to install on the browser – it’s already all there. Specifically, I’m referring to the XMLHttpRequest JavaScript statement. Therefore, all that’s required is that JavaScript is available on the browser. When it comes to “implementing AJAX,” you can write your own AJAX libraries, use vendor provided libraries (such as Google’s AJAX libraries for Google Maps), use retail libraries (such as Backbase), and use open source libraries (such as OpenAJAX Alliance http://www.openajax.org/ and the OpenAjax Hub http://www.openajax.org/OpenAjax%20Hub.html).

If you’re going to write your own AJAX library, you’ll want to search for information on the Web. There are many great articles and tutorials on this subject. I’d recommend taking a look at numerous AJAX-based applications so you get ideas on the functionality that you want to embed into your application.

Take a look at the sites mentioned above and applications like Google Suggest (http://www.google.com/webhp?complete=1&hl=en) where as you type a phrase, Google will offer suggestions (and how many matches there are for each possible phrase that matches):
Google Suggest.

If you’re interested in conferences on AJAX, check out AJAXWorld (http://www.ajaxworld.com/). If you’re interested in playing with some AJAX libraries and learning more about AJAX, I’d recommend checking out the Google libraries. Google’s libraries include the search API (
http://code.google.com/apis/ajaxsearch/
) and the Maps API (http://www.google.com/apis/maps/documentation/). Google also has an impressive Mashup editor that you can use (http://code.google.com/gme/) and so much more!

Oracle has also made it clear that they plan to fully support the AJAX and Web 2.0 movements. Oracle calls it Enterprise Web 2.0. In the article titled “Oracle Pushes Enterprise Ajax Frameworks” (http://www.computerwire.com/products/locator/?pid=AE6D8B24-EF32-4251-A5D3-28D8CCE6B5E1) it’s clear just how much Oracle wants to push AJAX and Web 2.0. On numerous fronts, Oracle has been a thought leader for new technologies. For example, before Java Server Faces (JSFs) were a standard, Oracle came up with their own version called User Interface Extensions (UIX). They helped the standards committees establish the standards in the JSF world. This was true for Web Services too. One thing that I greatly respect is that Oracle knows how to be a part of the standards committees and they know how to make sure the open standards are implemented in their development platforms before anyone else does. This is quite impressive.

Bradley D. Brown ajax, authorship, components, extensions, link, search, signaling, slates, tagging, web 2.0