Archive

Archive for the ‘Tech Talk’ Category

The History Of the Internet

December 17th, 2009 Amar E. Chakravarthi No comments

If you’re reading this article, it’s likely that you spend a fair amount of time online. However, considering how much of an influence the Internet has in our daily lives, how many of us actually know the story of how it got its start?

Here’s a brief history of the Internet, including important dates, people, projects, sites, and other information that should give you at least a partial picture of what this thing we call the Internet really is, and where it came from.

Here’s a brief history of the Internet, including important dates, people, projects, sites, and other information that should give you at least a partial picture of what this thing we call the Internet really is, and where it came from.

While the complete history of the Internet could easily fill a few books, this article should familiarize you with key milestones and events related to the growth and evolution of the Internet between 1969 to 2009.

1969: Arpanet

Arpanet was the first real network to run on packet switching technology (new at the time). On the October 29, 1969, computers at Stanford and UCLA connected for the first time. In effect, they were the first hosts on what would one day become the Internet.

The first message sent across the network was supposed to be “Login”, but reportedly, the link between the two colleges crashed on the letter “g”.



1969: Unix


Another major milestone during the 60’s was the inception of Unix: the operating system whose design heavily influenced that of Linux and FreeBSD (the operating systems most popular in today’s web servers/web hosting services).

1970: Arpanet network

An Arpanet network was established between Harvard, MIT, and BBN (the company that created the “interface message processor” computers used to connect to the network) in 1970.

1971: E-mail

Email was first developed in 1971 by Ray Tomlinson, who also made the decision to use the “@” symbol to separate the user name from the computer name (which later on became the domain name).

1971: Project Gutenberg and eBooks

One of the most impressive developments of 1971 was the start of Project Gutenberg. Project Gutenberg, for those unfamiliar with the site, is a global effort to make books and documents in the public domain available electronically–for free–in a variety of eBook and electronic formats.

It began when Michael Hart gained access to a large block of computing time and came to the realization that the future of computers wasn’t in computing itself, but in the storage, retrieval and searching of information that, at the time, was only contained in libraries. He manually typed (no OCR at the time) the “Declaration of Independence” and launched Project Gutenberg to make information contained in books widely available in electronic form. In effect, this was the birth of the eBook.


1972: CYCLADES

France began its own Arpanet-like project in 1972, called CYCLADES. While Cyclades was eventually shut down, it did pioneer a key idea: the host computer should be responsible for data transmission rather than the network itself.
1973: The first trans-Atlantic connection and the popularity of emailing

Arpanet made its first trans-Atlantic connection in 1973, with the University College of London. During the same year, email accounted for 75% of all Arpanet network activity.

1974: The beginning of TCP/IP

1974 was a breakthrough year. A proposal was published to link Arpa-like networks together into a so-called “inter-network”, which would have no central control and would work around a transmission control protocol (which eventually became TCP/IP).

1975: The email client

With the popularity of emailing, the first modern email program was developed by John Vittal, a programmer at the University of Southern California in 1975. The biggest technological advance this program (called MSG) made was the addition of “Reply” and “Forward” functionality.

1977: The PC modem


1977 was a big year for the development of the Internet as we know it today. It’s the year the first PC modem, developed by Dennis Hayes and Dale Heatherington, was introduced and initially sold to computer hobbyists.

1978: The Bulletin Board System (BBS)

The first bulletin board system (BBS) was developed during a blizzard in Chicago in 1978.

1978: Spam is born

1978 is also the year that brought the first unsolicited commercial email message (later known as spam), sent out to 600 California Arpanet users by Gary Thuerk.

1979: MUD – The earliest form of multiplayer games

The precursor to World of Warcraft and Second Life was developed in 1979, and was called MUD (short for MultiUser Dungeon). MUDs were entirely text-based virtual worlds, combining elements of role-playing games, interactive, fiction, and online chat.

1979: Usenet

1979 also ushered into the scene: Usenet, created by two graduate students. Usenet was an internet-based discussion system, allowing people from around the globe to converse about the same topics by posting public messages categorized by newsgroups.

1980: ENQUIRE software

The European Organization for Nuclear Research (better known as CERN) launched ENQUIRE (written by Tim Berners-Lee), a hypertext program that allowed scientists at the particle physics lab to keep track of people, software, and projects using hypertext (hyperlinks).

1982: The first emoticon

While many people credit Kevin MacKenzie with the invention of the emoticon in 1979, it was Scott Fahlman in 1982 who proposed using :-) after a joke, rather than the original -) proposed by MacKenzie. The modern emoticon was born.

1983: Arpanet computers switch over to TCP/IP

January 1, 1983 was the deadline for Arpanet computers to switch over to the TCP/IP protocols developed by Vinton Cerf. A few hundred computers were affected by the switch. The name server was also developed in ‘83.

1984: Domain Name System (DNS)

The domain name system was created in 1984 along with the first Domain Name Servers (DNS). The domain name system was important in that it made addresses on the Internet more human-friendly compared to its numerical IP address counterparts. DNS servers allowed Internet users to type in an easy-to-remember domain name and then converted it to the IP address automatically.

1985: Virtual communities

1985 brought the development of The WELL (short for Whole Earth ‘Lectronic Link), one of the oldest virtual communities still in operation. It was developed by Stewart Brand and Larry Brilliant in February of ‘85. It started out as a community of the readers and writers of the Whole Earth Review and was an open but “remarkably literate and uninhibited intellectual gathering”. Wired Magazine once called The Well “The most influential online community in the world.”

1986: Protocol wars

The so-called Protocol wars began in 1986. European countries at that time were pursuing the Open Systems Interconnection (OSI), while the United States was using the Internet/Arpanet protocol, which eventually won out.

1987: The Internet grows

By 1987, there were nearly 30,000 hosts on the Internet. The original Arpanet protocol had been limited to 1,000 hosts, but the adoption of the TCP/IP standard made larger numbers of hosts possible.

1988: IRC – Internet Relay Chat

Also in 1988, Internet Relay Chat (IRC) was first deployed, paving the way for real-time chat and the instant messaging programs we use today.

1988: First major malicious internet-based attack

One of the first major Internet worms was released in 1988. Referred to as “The Morris Worm”, it was written by Robert Tappan Morris and caused major interruptions across large parts of the Internet.

1989: AOL is launched

When Apple pulled out of the AppleLink program in 1989, the project was renamed and America Online was born. AOL, still in existence today, later on made the Internet popular amongst the average internet users.

1989: The proposal for the World Wide Web

1989 also brought about the proposal for the World Wide Web, written by Tim Berners-Lee. It was originally published in the March issue of MacWorld, and then redistributed in May 1990. It was written to persuade CERN that a global hypertext system was in CERN’s best interest. It was originally called “Mesh”; the term “World Wide Web” was coined while Berners-Lee was writing the code in 1990.

1990: First commercial dial-up ISP

1990 also brought about the first commercial dial-up Internet provider, The World. The same year, Arpanet ceased to exist.

1990: World Wide Web protocols finished

The code for the World Wide Web was written by Tim Berners-Lee, based on his proposal from the year before, along with the standards for HTML, HTTP, and URLs.

1991: First web page created

1991 brought some major innovations to the world of the Internet. The first web page was created and, much like the first email explained what email was, its purpose was to explain what the World Wide Web was.

1991: First content-based search protocol

Also in the same year, the first search protocol that examined file contents instead of just file names was launched, called Gopher.

1991: MP3 becomes a standard

Also, the MP3 file format was accepted as a standard in 1991. MP3 files, being highly compressed, later become a popular file format to share songs and entire albums via the internet.

1991: The first webcam

One of the more interesting developments of this era, though, was the first webcam. It was deployed at a Cambridge University computer lab, and its sole purpose was to monitor a particular coffee maker so that lab users could avoid wasted trips to an empty coffee pot.

1993: Mosaic – first graphical web browser for the general public

The first widely downloaded Internet browser, Mosaic, was released in 1993. While Mosaic wasn’t the first web browser, it is considered the first browser to make the Internet easily accessible to non-techies.

1993: Governments join in on the fun

In 1993, both the White House and the United Nations came online, marking the beginning of the .gov and .org domain names.

1994: Netscape Navigator

Mosaic’s first big competitor, Netscape Navigator, was released the year following (1994).

1995: Commercialization of the internet

1995 is often considered the first year the web became commercialized. While there were commercial enterprises online prior to ‘95, there were a few key developments that happened that year. First, SSL (Secure Sockets Layer) encryption was developed by Netscape, making it safer to conduct financial transactions (like credit card payments) online.

In addition, two major online businesses got their start the same year. The first sale on “Echo Bay” was made that year. Echo Bay later became eBay. Amazon.com also started in 1995, though it didn’t turn a profit for six years, until 2001.

1995: Geocities, the Vatican goes online, and JavaScript

Other major developments that year included the launch of Geocities (which officially closed down on October 26, 2009).

The Vatican also went online for the first time.

Java and JavaScript (originally called LiveScript by its creator, Brendan Eich, and deployed as part of the Netscape Navigator browser – see comments for explanation) was first introduced to the public in 1995. ActiveX was launched by Microsoft the following year.

1996: First web-based (webmail) service

In 1996, HoTMaiL (the capitalized letters are an homage to HTML), the first webmail service, was launched.

1997: The term “weblog” is coined

While the first blogs had been around for a few years in one form or another, 1997 was the first year the term “weblog” was used.

1998: First new story to be broken online instead of traditional media

In 1998, the first major news story to be broken online was the Bill Clinton/Monica Lewinsky scandal (also referred to as “Monicagate” among other nicknames), which was posted on The Drudge Report after Newsweek killed the story.

1998: Google

Google went live in 1998, revolutionizing the way in which people find information online.

1998: Internet-based file-sharing gets its roots

In 1998 as well, Napster launched, opening up the gates to mainstream file-sharing of audio files over the internet.

1999: SETI@home project

1999 is the year when one of the more interesting projects ever brought online: the SETI@home project, launched. The project has created the equivalent of a giant supercomputer by harnessing the computing power of more than 3 million computers worldwide, using their processors whenever the screensaver comes on, indicating that the computer is idle. The program analyzes radio telescope data to look for signs of extraterrestrial intelligence.

2000: The bubble bursts

2000 was the year of the dotcom collapse, resulting in huge losses for legions of investors. Hundreds of companies closed, some of which had never turned a profit for their investors. The NASDAQ, which listed a large number of tech companies affected by the bubble, peaked at over 5,000, then lost 10% of its value in a single day, and finally hit bottom in October of 2002.

2001: Wikipedia is launched

With the dotcom collapse still going strong, Wikipedia launched in 2001, one of the websites that paved the way for collective web content generation/social media.

2003: VoIP goes mainstream

In 2003: Skype is released to the public, giving a user-friendly interface to Voice over IP calling.

2003: MySpace becomes the most popular social network

Also in 2003, MySpace opens up its doors. It later grew to be the most popular social network at one time (thought it has since been overtaken by Facebook).

2003: CAN-SPAM Act puts a lid on unsolicited emails

Another major advance in 2003 was the signing of the Controlling the Assault of Non-Solicited Pornography and Marketing Act of 2003, better known as the CAN-SPAM Act.

2004: Web 2.0

Though coined in 1999 by Darcy DiNucci, the term “Web 2.0″, referring to websites and Rich Internet Applications (RIA) that are highly interactive and user-driven became popular around 2004. During the first Web 2.0 conference, John Batelle and Tim O’Reilly described the concept of “the Web as a Platform”: software applications built to take advantage of internet connectivity, moving away from the desktop (which has downsides such as operating system dependency and lack of interoperability).

2004: Social Media and Digg

The term “social media”, believed to be first used by Chris Sharpley, was coined in the same year that “Web 2.0″ became a mainstream concept. Social media–sites and web applications that allow its users to create and share content and to connect with one another–started around this period.

Digg, a social news site, launched on November of 2004, paving the way for sites such as Reddit, Mixx, and Yahoo! Buzz. Digg revolutionized traditional means of generating and finding web content, democratically promoting news and web links that are reviewed and voted on by a community.

2004: “The” Facebook open to college students

Facebook launched in 2004, though at the time it was only open to college students and was called “The Facebook”; later on, “The” was dropped from the name, though the URL http://www.thefacebook.com still works.

2005: YouTube – streaming video for the masses

YouTube launched in 2005, bringing free online video hosting and sharing to the masses.

2006: Twitter gets twittering

Twitter launched in 2006. It was originally going to be called twittr (inspired by Flickr); the first Twitter message was “just setting up my twttr”.

2007: Major move to place TV shows online

Hulu was first launched in 2007, a joint venture between ABC, NBC, and Fox to make popular TV shows available to watch online.

2007: The iPhone and the Mobile Web

The biggest innovation of 2007 was almost certainly the iPhone, which was almost wholly responsible for renewed interest in mobile web applications and design.

2008: “Internet Election”

The first “Internet election” took place in 2008 with the U.S. Presidential election. It was the first year that national candidates took full advantage of all the Internet had to offer. Hillary Clinton jumped on board early with YouTube campaign videos. Virtually every candidate had a Facebook page or a Twitter feed, or both.

Ron Paul set a new fundraising record by raising $4.3 million in a single day through online donations, and then beat his own record only weeks later by raising $4.4 million in a single day.

The 2008 elections placed the Internet squarely at the forefront of politics and campaigning, a trend that is unlikely to change any time in the near future.

2009: ICANN policy changes

2009 brought about one of the biggest changes to come to the Internet in a long time when the U.S. relaxed its control over ICANN, the official naming body of the Internet (they’re the organization in charge of registering domain names).

The Future?

Where is the future of the Internet headed? Share your opinions in the comments section.

Sources and Further Reading

A People’s History of the Internet: from Arpanet in 1969 to Today: A timeline of the Internet from guardian.co.uk.

History of the Internet: An early timeline of the Internet, from precursors in the 1800s up through 1997.

A Brief History of the Web: A series of videos from Microsoft to celebrate the launch of Internet Explorer 8.

The History of the Internet – Tim Berners-Lee: A brief history of major developments associated with the Internet from About.com.

Hobbes’ Internet Timeline – the definitive ARPAnet & Internet History: A very thorough timeline of the Internet, starting in 1957 and going up through 2004, with tons of statistics and source material included.

Internet Timeline: A basic timeline of Internet history from FactMonster.com.

Categories: Information Blog, My Blog, Tech Talk Tags:

A detailed primer on building cross platform mobile applications

December 10th, 2009 Amar E. Chakravarthi 3 comments

I finally had a few hours tonight to wrap up my study on comparison of mobile application platforms that allow developing cross-device applications easily using familiar technologies. Here is a quick braindump of all the links and resources I went through -
Rhomobile
Google TechTalk on Rhodes – http://www.youtube.com/watch?v=T2pztOky_L0
http://rhomobile.com/products/rhodes/
http://www.ultrasaurus.com/sarahblog/2009/07/cross-platform-mobile-apps-with-rhomobile/
http://www.rhohub.com/
Notes
Dual licensed. Though license is cheap – $500
Code is written in html and ruby  (though a python interpreter would have gotten more smileys from me   )
interesting approach – uses the native browser component of the cellphone itself to render the html and a web server to host the app – so javascript support will be random based on the phone browser support
sqlite support
Supports iphone, windows mobile, blackberry, android, Symbisn etc
Basically rhodes runs a mini ruby web server and an html rendering engine all in 2.3MB
Supports native capabilities like camera, gps, PIM data, SMS etc
Phone gap
http://phonegap.com/
Check the video on their site
Notes
Fully open source and free
Code written in html+javascript
Supports iphone, blackberry and android
Pyxis Mobile
http://pyxismobile.com/platform/technical-overview/
Build one configuration and deploy to BlackBerry, iPhone, and Windows Mobile all at the same time
Skinning, scripting, localized languages, complex workflow management, push, hotkeys, mapping & LBS, camera support, signature capture, GUI calendar, disambiguation, hotkeys, and much more
Titanium Mobile
http://www.appcelerator.com/products/titanium-mobile/
This is an upcoming mobile platform by appcelerator
I am quite familiar with the company since we already use their Titanium Desktop and have two fulltime contributors to it
Quick Connect
http://quickconnect.sourceforge.net/
Comparison sites and articles
http://blog.twinapex.fi/2009/09/30/cross-platform-mobile-application-development-and-payment/
http://en.wikipedia.org/wiki/Mobile_development
http://www.infoworld.com/d/open-source/building-native-mobile-applications-open-source-mobile-platforms-735
http://www.infoworld.com/d/mobilize/iphone-development-tools-work-way-you-do-309
http://news.cnet.com/8301-1035_3-10202598-94.html
http://www.slideshare.net/inouemak/rhodes-and-phone-gap
http://techboise.com/multi-platform-mobile-development-and-quickconnect
Some others
http://quickconnect.pbworks.com/
http://www.mobinex.biz/smartface-platform.html
http://qt.nokia.com/products/qt-for-mobile-platforms
http://www.anscamobile.com/corona/

I finally had a few hours tonight to wrap up my study on comparison of mobile application platforms that allow developing cross-device applications easily using familiar technologies. Here is a quick braindump of all the links and resources I went through -

Rhomobile

http://rhomobile.com/products/rhodes/

http://www.ultrasaurus.com/sarahblog/2009/07/cross-platform-mobile-apps-with-rhomobile/

http://www.rhohub.com/

Notes

  • Dual licensed. Though license is cheap – $500
  • Code is written in html and ruby  (though a python interpreter would have gotten more smileys from me   )
  • interesting approach – uses the native browser component of the cellphone itself to render the html and a web server to host the app – so javascript support will be random based on the phone browser support
  • sqlite support
  • Supports iphone, windows mobile, blackberry, android, Symbisn etc
  • Basically rhodes runs a mini ruby web server and an html rendering engine all in 2.3MB
  • Supports native capabilities like camera, gps, PIM data, SMS etc

Phone gap

http://phonegap.com/

Check the video on their site

Notes

  • Fully open source and free
  • Code written in html+javascript
  • Supports iphone, blackberry and android

Pyxis Mobile

http://pyxismobile.com/platform/technical-overview/

  • Build one configuration and deploy to BlackBerry, iPhone, and Windows Mobile all at the same time
  • Skinning, scripting, localized languages, complex workflow management, push, hotkeys, mapping & LBS, camera support, signature capture, GUI calendar, disambiguation, hotkeys, and much more

Titanium Mobile

http://www.appcelerator.com/products/titanium-mobile/

  • This is an upcoming mobile platform by appcelerator
  • I am quite familiar with the company since we already use their Titanium Desktop and have two fulltime contributors to it

Quick Connect

http://quickconnect.sourceforge.net/

Comparison sites and articles

http://blog.twinapex.fi/2009/09/30/cross-platform-mobile-application-development-and-payment/

http://en.wikipedia.org/wiki/Mobile_development

http://www.infoworld.com/d/open-source/building-native-mobile-applications-open-source-mobile-platforms-735

http://www.infoworld.com/d/mobilize/iphone-development-tools-work-way-you-do-309

http://news.cnet.com/8301-1035_3-10202598-94.html

http://www.slideshare.net/inouemak/rhodes-and-phone-gap

http://techboise.com/multi-platform-mobile-development-and-quickconnect

Some others

http://quickconnect.pbworks.com/

http://www.mobinex.biz/smartface-platform.html

http://qt.nokia.com/products/qt-for-mobile-platforms

http://www.anscamobile.com/corona/

    Limitations of Adobe AIR

    November 5th, 2009 Amar E. Chakravarthi No comments

    Most people tend to compare AIR and WPF/.NET. The predominant assumption is that AIR is to WPF as Flex is to Silverlight. AIR is touted as a cross platform desktop application development environment. This assertion holds true for basic widget-type desktop applications with limited functionality. The model begins to fall apart when you begin moving out of basic widgety apps into the realm of true rich and complex desktop applications. Some of the most fundamental shortcomings that come to mind are -

    • AIR does not support multi-threading
    • AIR does not allow making native calls to the underlying operating system APIs
    • AIR does not permit loading native libraries (eg DLLs / C libraries etc)
    • Limited Database support (no drivers for diverse databases)
    • Limited Networking support (Raw network socket manipulation not available)
    • Installer cannot be extended to install ancillary executables or other processes
    • Limited to no support for building services / daemons / protocol servers
    • Relatively strict sandbox

    This is a short list of hurdles that I have come across. There are certainly many more limitations over and above these. AIR is essentially more like an extension of a chromeless browser, meant for running a web application within a desktop environment. It cannot be compared to a powerful desktop programming language like .NET (with WPF). Infact even XUL has better support for writing rich Desktop applications than AIR.

    On the flip side I hear many good things about AIR in terms of ease of development. AIR apps can be developed in significantly lower timeframes than in most other desktop development environments. AIR also enables sharing of codebase between a web app and a desktop app.

    Hopefully Adobe will catch-up on the missing elements soon, so that AIR becomes a strong enough contender to the current limited number of existing desktop development environments.

    Categories: My Blog, Tech Talk Tags:

    Income Generating Domain Name Parking

    Initially, people who are not too familiar with domain names would ask, what is domain name parking? Domain parking simply refers to generating profit thru placement of advertisements on an auto-created web site. There are many considerable ways to make money on parking your domain. You can definitely generate income from a quality domain name. Try to look for the best domain name parking sites that make genuine SEO sites and 100% return of revenue. Be careful of domain parking sites that are void of content and filled with sponsored links. They will not help you make money out of your domain name and might affect the value of your domain name in case you sell it in the future.

    Your domain parking service must possess the capacity to auto create content rich web sites. This will increase traffic to a domain name. Thus, you will have better pagerank and increased in the value of domain name. Additionally, traditional domain parking gives less or even no value to its visitors at all since there are no valuable content from the site anyway. Internet users are too bored to see the same content again. That is why a new way to enhanced domain parking is made available in the market. This service can guarantee your site to have fresh and relevant content daily.

    Said content will be based on the keywords you choose. Therefore, you have the liberty to choose the keywords that are relevant to your domain name. By having quality content, you can be assured that your visitors will come back to read more of what you have in store for them. On a different note, since the main reasons for domain parking is really to increase your profit, make sure that before you park your domain in domain name service site. You must be clearly aware of their conditions for forwarding revenue. Otherwise, they will only charge you with a hefty fee without the guarantee that you will be able to get 100% revenue.

    It is a must that the domain name parking service will offer you an optimized domain name because you can be assured of the added value to the domain name. So it is important that your domain parking service is filled with rich and quality content that can point back to your chosen keywords. If the service that you get has keyword rich content on its site, then they can have better search engine rankings. Among the list of Domain parking companies, choose the one that will allow flexibility and customization of web site.

    It will give you much convenience to be able to maximize a service to your advantage. You do not need to be an expert webmaster to create your own layout. Getting the right service provider will make things easier for you without sacrificing the quality of your web site. Domain name parking is a good income generating method. However, you have to know which services to tap so that your revenues are sent directly to you. Beware of domain parking services that will eat up your profit without your knowledge.

    http://domains.afxisi.com

    Categories: Afxisi Blog, Information Blog, Tech Talk Tags:

    BizTalk Server

    Well, it’s pretty common knowledge by now that BizTalk Server (from version 2004 onwards) comes with a Business Rules Engine (BRE), but do you really know just how powerful it is? The BRE provides a mechanism to implement complex business logic in a highly versatile and optimised manner, allowing the business to update the logic without forcing redevelopment or a recompile of the solution.

    So what does that mean? Let’s start with a really simple case. Suppose your company takes orders from its customers and awards a 5% discount if the order total exceeds a certain amount, say $5000. You have a BizTalk solution that tracks the incoming order and manages the business processes surrounding fulfillment and billing. Now… as a developer, where would you put the discount logic? Well, you have several options; here are just a few:

    1. Put the discount logic in an expression shape within the orchestration
    2. Put the discount logic in a satellite helper (.NET) assembly called by the orchestration
    3. Put the discount logic in the Business Rules Engine and call it from the orchestration using a “Call Rules” shape.

    Let’s say that you’re a “consultant” (by Mick’s definition) and you’ve gone with one of the first two options. Now suppose that your CEO has decided to run a special next month to promote more business, and wants to expand the existing discount to 10%, as well as offer a further discount (%15) for orders over $10,000. You think this is good news for you on the job security front because you’re skills are required to re-code, recompile and test the logic. But then you observe your boss’s increasingly unimpressed demeanor as you explain the cost and effort to implement the change, not too mention scheduling a full release (with the associated system down-time… translation: loss of $$) to deploy the change. And of course you get to do the whole thing again when the temporary offer expires and you need to restore the original logic. Looking at his face now, you suddenly decide it’s a good time to update your CV …

    OR… if you were smart enough to go with the third option, you can explain to your boss that he can have either you, his business analyst, or even an IT-saavy information worker update the rules using the Business Rules Composer that came with BizTalk. The rules can be tested independently inside the Composer, and then published to any environment. And here’s the best thing: rules are effective immediately upon deployment, without any recompiling required! (in many cases, you won’t even have to stop your BizTalk application for the rules to be deployed and take effect) In other words, flexibility to alter the discount logic in real-time with no interruption of service. Now your boss is smiling and you just might get that Christmas bonus after all.

    While this example is a pretty simple one, think about the complex set of rules that support a decision about awarding credit, or for setting a premium on an insurance policy. The BRE is incredibly adept at representing elaborate decision making processes that are typically too complex or cumbersome to model in traditional code. Combine this with the versatility demonstrated above, and you begin to appreciate the immense value that the BRE adds to your enterprise solution.

    So how does the BRE work?

    Rules are constructed based on Facts and Vocabularies. A fact is a specific bit of information based on a data item, for example “Quantity” in the scenario above. Now if you were to reference this data item from an XML message using XPath, it might look something like this:

    /*[local-name()='PurchaseOrder' and namespace uri()='http://schemas.ACME.com/2007/Purchasing']/*[local-name()='Item' and namespace uri()='']/*[local-name()='Quantity' and namespace-uri ()='']

    Eyes starting to cross? Vision going blurry? Don’t worry – you’re not alone. Imagine confronting your business analyst or information worker with that kind of verbose syntax! However, the BRE allows you to define a custom vocabulary to provide friendly names for facts like these. Add a definition for the XPath expression above and call it “Quantity”, then watch that glazed expression slowly disappear from your BA’s face. :-) Moreover, you can express the rules using semantics that even your CEO can understand – which means he can verify your work if he wants to.

    Now that you have your facts and vocabulary defined, you can begin writing your rules, which are simply based on conditions and associated actions. So for the example above, the rules might look something like this:

    IF Quantity > 10000
    DiscountApplied = 0.15

    IF Quantity > 5000
    DiscountApplied = 0.1

    IF Quantity <= 5000
    DiscountApplied = 0.0

    Unlike normal procedural logic like you’d write in C# code, there is no concept of an “ELSE” or “ELSE IF” branch in the BRE; a rule either fires or it doesn’t. So how do you control which rule fires above if the Quantity were greater than 10,000 (since both of the first two conditions are met)? Well, actually both rules do evaluate, but you can set a priority for each rule to govern the order they are evaluated. As long as the first rule above is evaluated last, the result will be correct.

    Rules can be grouped together in Policies which are then saved, published and deployed. Once published, a policy can’t be modified, but you can copy it into a new version, update it and deploy that. BizTalk always uses the latest deployed version of any rules policy. So when the special offer discount period ends, just undeploy the new version and you’ve instantly rolled back to the regular policy!

    “Gee, the BRE is really something! But can I only use it from within BizTalk?”

    The million-dollar answer is… NO! The BRE is written entirely in .NET, and presents APIs that allow you to call it from any .NET class. So you can expose your rules with a Web Service (or in WCF) and access them anywhere!

    “Can I get the BRE separately from BizTalk?”

    The cheapest way to get the BRE is through purchasing BizTalk RFID Services, which bundles in the BRE for free.

    Useful Links:

    BRE Blog by Sreedhar Pelluru, Senior Programmer Writer (Microsoft)
    Overview of BRE Integration with BizTalk RFID
    Using the BRE Outside of BizTalk

    So… get acquainted with the BRE and you too can start making the rules!

    Categories: Tech Talk Tags: