The Web Request Broker: A Framework for Distributed Web-Based Applications

M. Anand, E. Chien, R. Condamoor, A. Mathur, S. Adunuthula, S. Chou, and S. Nakhoda
Oracle Corporation
500 Oracle Parkway
Redwood Shores, CA 94065.

Abstract

The World Wide Web (WWW) is rapidly evolving from a platform for serving up static documents to a platform for deploying distributed, cross-platform, and language and location independent applications. There is thus a need for appropriate frameworks that would allow not only the deployment but also the development of such applications. In this paper, we describe the Web Request Broker (WRB), a system developed here at Oracle that provides a distributed, scalable, and daemon-independent framework for developing and deploying distributed web-based applications. The framework description is along three dimensions. The first dimension is the overall architecture of the WRB. The next dimension is the application programming interface (API) offered by the WRB to applications, and the final dimension is the kinds of programming paradigms that can be used with the above API to develop applications.

1. Introduction

The World Wide Web (WWW) is rapidly evolving from a platform for serving up static documents to a platform for deploying distributed, cross-platform, and language and location independent applications. Developing such applications for the web involves a number of challenges. The application needs to be accessible from conventional web browsers and hence needs to be able to communicate using protocols such as HTTP. The application needs to use names in accordance with URL's as used on the web. The application also needs to be able to inter-operate with existing HTTP server daemons, i.e., it needs to be daemon independent. In this paper, we describe the Web Request Broker (WRB), a system developed here at Oracle that addresses some of these challenges.

The WRB is part of Oracle's Web Application Server. The WRB provides a distributed, scalable, daemon-independent framework for developing and deploying distributed web-based applications. Bernstein defines a framework in the context of application development environments as follows [2]:

smoke fetish archive Avril lavigne pussy genie in a string bikinie cast Girls fuck horses stories pornstars xxx babes Nikki schieler ziering nude dickies jeans Skinny teen bitches hentai sex videos free Little girls sex nude pot Boob tube High school musical vanessa nude pics free artistic nude photos pussy prowler Gayforit watch free lesbian videos free teen celebs nude Bikini dare galleries spiritual sport fucking Big and beautiful porn stars
faked nude Sleep nude girls nature nude video Catfight nude nude asian sluts nude ladies pussy Sara roemer nude asian girls non nude School girls nude pics gay nude workout Nude nudist pamela anderson playboy nude pics Kathrine heigel nude Free nude hentai fairies nude swedish blonde nude Nude celebrity videos for free nude celebrities miley cyrus nude south african men Free hardcore nude nude cellphone pictures Bollywood nude boobs
blowjobs gallery Jim hardick free porn videos no credit card Creatine sex milfporn star aluminium essex Free video sex positions ultrapasswords xxx Xxx teen britney spears blowjob video Facts teenagers curfews natural hairy pussy Amature women Edwin carungay fuckyourtube sexproadventures Free kinky sex tips rave sex porn lyrics sexy back Better than sex cake recipe final fantasy rikku xxx Paris hilton blowjob
free yno sex video 3d young art sex phone web cam sex Amature woman sex party free home-made sex clips young sex in america Free dirty sex pictures best sfrican sex movies He she sex pics picts of amature sex Julie michaels sex scene bible view on sex Sex tv tv show Extreme insertion sex 6 fee animal sex vids sex girls piss tube Thai pussy sex porn sex 3d fantasy pics sex mature woman jokes Jeremiah birthday sex bio tulsa police sex registration Sex vedeo stream chat
independent sex scenes Racist daughter sex clearanced sex toys K9 sex clips britney sex movies black sex squirt Awsome hard sex manson sex onstage Nimpho sex classifieds sex offenders index Nomid animal sex hardcore lezbo sex Oral sex possitions Out sex videos sly fox sex famos toon sex Only ebony sex anette dawn sex extent sex pill Mature hairy sex asian sex french Kim kardishan sex
education research group Ari banerjee yankee group ancestry group Randy orton group free group sex porno group insurances Galleon group hedge fund rubber fab technologies group Attorneys group group b infection Risk retention group insurance the rules support group Green resources group Group dynamics team r46b group high five amateurs group Amazing group sex on demand color group lesbian group gallery Campy centaur group accept group Group of deer is called
fucking machine xxx College sex xxx chobits xxx Iran xxx sexo xxx enanas collection xxx Eve angel xxx pork xxx Older women xxx download free psp xxx Xxx sluts videos swingers xxx free Free bi xxx Photos xxx free harecore xxx xxx porn passwords Rapes xxx xxx adult dvd xxx gratis con putas Web site xxx free xxx mangas Alena seredova xxx
ball dragon porn video The thrills music video woman squirting free video Roma video card e pci video mtv jam video Apartment mikes picture video paris hilton video stills Big cock homemade movie council meeting video Studio telescope video converter ipod ora video Victoria pink videos Uk movies cussler movie new video releases 2005 Conferencing live video violence video games children tasha nelson video Rv video camera movie graber Adam sandler secret video
teacher sex crazydumper Sex health video marriage with sex Celebrity sex viceos busty office sex shove bull sex Football sex rio free sex shots Consensual submission sex free sex gemes Mauritius sex site hardcore sex mp3 Barbarella sex machine Hunting sex jessica alien sex gaems free sex xxx Muscular sex pictures ass booty sex dogpound group sex Anail sex videos vitamins before sex Brewster sex stories
asians sex Haveing sex with a man lesbien sex xxx Hypno girl sex arabic sex 9356 biker girls sex Guilty gear sex mature free sex tube Nude girls having sex with boys ray j and kim kardashian full sex tape for free Cyber sex forum what is angry sex Sex while pregnant pictures When can i have sex and not get pregnant home made amateur sex tapes dog sex beastality Sex games online for women clips cartoon sex taboo charming mother sex Girl sex pose hardcore gothic sex Best sex teacher
love sex relatioships Historical books sex pegging sex literature Sex story community sex bites torrent long sex trailors Gonzo rawr sex carrie bradshaw sex Voung teen sex home sex stream Kinky sex forum savvanah gold sex Anal sex wide Crushing for sex comic sex jokes mermaid sex videos Pet sex foram ali sheffield sex cancer sex partners Calforina sex retreat mini teens sex Anal sex cum
victorian xxx Xxx sci fi sexy photos xxx Xxx video play xxx babe videos animail xxx All xxx tube tilf 2 xxx Xxx puzzle black porno xxx 3gp xxx wap videos streaming xxx Free xxx moves Muscle gay xxx free gothic xxx video naruto xxx Xxx pass free best xxx movie 2008 xxx dog clips Xxx free e cards xxx porn full videos Xxx stone
porn movie theaters Morgan lane porn catherine porn Porn mom son sex mommy and daddy porn kasumi porn Find porn torrents rumania porn Xxx pictures porn black porn videos free Discipline porn biggest penis porn Littel girl porn Porn leg warmers tiny tits porn movies top 10 porn clips Free lovemaking porn homemade mexican porn vanessa raia porn Muslim porn sex free high definition porn streaming James nichols gay porn
fuck me gay Vulva fuck sexy fuck movie Mother lets son fuck her fuck you mom and dad mommy fuck son Father son fuck girl porn to fuck Fuck off letter fuck my boob Megaupload fuck i fuck my mother inlaw Doggy style fuck videos Woman looking to fuck shemales fuck girls movies kama sutra fuck Fuck you love mother daughter fuck boyfriend fuck church Dog fuck woman movies the fuck buttons Man fuck his dog
Blowjob And Cum Swallow mom giving son blowjob Preggo Blowjob free blowjob compilations blowjob mature Blowjob Guys blowjob fantasies 18 Avatar Blowjob sister gave me a blowjob Tickling Blowjob blowjob at school Hentai Porn Blowjob Fake Blowjob girl pukes during blowjob blowjob tryouts Guys Blowjob japanese girl giving blowjob most famous blowjob Gay Horse Blowjob double blowjob vids Blowjob Outdoor
Youngest Girl Porn Ever plus size sexy school girl Flavor Flav Girl Poops all girl sex videos girl porche Baby Girl I Want You gossip girl on tv com Hey Hey Baby Will You Be My Girl naked girl shitting Little Girl Photos ghetto black girl Go Go Girl Adult Girl Psp Theme girl for sale on ebay pin up girl hats Little Monster Girl naked teen girl pics black girl actress Sleeping Girl Gets Raped how to approach a girl online Girl And Girl Haveing Sex
Ink bitch webbie gutta bitch Lyrics to five star bitch bitch in french Badd bitch quotes cant trust no bitch Bitch asian im a pretty bitch Kristen stewart is a bitch a bitch slap G unit fat bitch Shut up bitch download im in san diego bitch cock hungry bitch Teeh fuck the bitch is kristen stewart a bitch bitch milfs Lyrics to bitch by meredith brooks foot fetish bitch Shake that ass bitch and let
paris hilton beach sex Cocksucker snake girls xxx Nude booty poppin little teens pics most extreme porn list Audience analysis heather locklear nude Porn star named madison lolita preteens Cheyanne bride black cock joelle amateur Nude christina aguilera Nice nude teen photo gallery hot cab mature sex sites Fucked by my dog mpegs massive tits men fucking boys Swedish porn galleries amateur nudes Sexy superheroes
bbw nude women Nude pussy cum naomi nude Nude asian americans courtney smith nude sienna guillory nude Girls basketball nude kate bosworth nude fakes Amateur wife nude photos ukraine nude teen Big black ass nude kiera knightley nude pics Nude russians Sleep nude chris brown rihanna nude photos pic of nude girls Bollywood nude images sexy and nude pics free nude college girl videos Nude dads and daughters ameture nude pictures Serena williams nude pix
1st Anal Sex what is an anal prolapse Types Of Anal Sex gay anal sex technique gay anal fisting videos Why Does Anal Sex Feel Good video double anal Lesbian Teens Anal largest anal dildo Lesbian Anal Toy anal sex poop videos Anal Hidden Cam Amateur Interracial Anal amy amour anal how to anal intercourse Anal Sex Condoms eyaculacion anal free anal streaming Anne Hathaway Loves Anal mini anal Unnatural Anal Insertions
Anal Guest free full anal movies Manual Anal 1st anal video shits herself anal Couple Anal Sex roxy renolds anal Sara Jay First Anal Scene anal destruction casedy Como Hacer El Sexo Anal anal sex effects Anal Cancer Blog Anal Toys Lesbian ice la fox anal scene lesbian anal vid Rough Anal Sex Clips wet anal double anal sex movie Palin Anal really painful anal Shitty Anal Fuck
rodox sex mpg Shower sex how penis breasts sex Sex malam pertama random sex videos exsplicit sex videos Sex lubrication silicone i post sex Sex fat chick celebriies having sex Adult sex animations sex and motorcycles Adult sex therapy Laura cover sex fucking having sex sex vacation caribbean Pool sex orgasm women barbershop sex office sex gay Secretaire office sex black sex vod Rainbow mika sex
Rock cock jock cock robin when your Wife big cock huge cock free pics Mature sucking black cock cock docking clips Hardcore riding cock cock sucking whores Fuck you cock sucker cock fighting rules Big cock hardcore Hubby loans to black cock milf sucking young cock two cock in pussy Cock sucker t shirt two cock fucking cock pierced Tila tequila suck cock largest cock videos White teen black cock
miss teen usa south carolina Fucking boobs thumbnails free videos of gay black me gandbang Senior sex trailer sophie monk nude nude music videos Britney spears porn video maggie grace nude Preteen bikini movies xxx Sexy pamela anderson vanessa new nude photos Aisha tyler nude pics Gametophyte produces male female sex mate plants toothless blowjob monthly membership streaming porn Pinkpanteens preteens in thongs lingerie nudecollege students Fat mature sex teen monologues Ebony muff diving
sex with hookers Free jaybee sex sex with redheads Cartoons about sex usa sex forum retarted girls sex Photo booth sex gay virgin sex Female sex chromosome sex teen candy Teenage sex story sex feet tingle Celebrity sex sces Flex girl sex lesbian sex galerii work at sex Rough sex free roug gangbang sex hypnosis sex best Sex trek 6 teens wating sex Ssecretary sex videos
1st Anal Sex what is an anal prolapse Types Of Anal Sex gay anal sex technique gay anal fisting videos Why Does Anal Sex Feel Good video double anal Lesbian Teens Anal largest anal dildo Lesbian Anal Toy anal sex poop videos Anal Hidden Cam Amateur Interracial Anal amy amour anal how to anal intercourse Anal Sex Condoms eyaculacion anal free anal streaming Anne Hathaway Loves Anal mini anal Unnatural Anal Insertions
A framework is a software environment that is defined to simplify application development and system management for a specialized application domain.

The application domain in our case is quite general and encompasses web-based distributed applications. The WRB provides a framework to support the development and deployment of such applications. We describe this framework here. The framework description is along three dimensions. The first dimension is the overall architecture of the WRB. The next dimension is the application programming interface (API) offered by the WRB to applications, and the final dimension is the kinds of programming paradigms that can be used with the above API to develop applications.

The rest of the paper is organized as follows: Section 2 describes the overall architecture of the WRB. Section 3 describes cartridges, an application structuring mechanism provided by the WRB. Section 4 discusses the API offered by the WRB to application developers. Section 5 describes programming paradigms that can be used with the WRB API. Section 6 discusses related work and Section 7 concludes the paper.

2. Web Request Broker Architecture

The WRB is designed to provide a framework for the development and deployment of industrial strength applications for the web. The main components that make up the WRB are shown in Fig. 1.

These include the dispatcher, application and system cartridges , and a Corba [4] compliant Object Request Broker (ORB) . The dispatcher and cartridges are built over the ORB and utilize the ORB for inter-component communication. This allows the components to be distributed on remote machines, for performance and scalability reasons.

The dispatcher is responsible for routing requests received from the HTTP daemon to the appropriate cartridge. It is designed to be extensible and daemon independent.

Cartridges are modules of code performing specific application or system functions. They form the centerpiece of the WRB framework. We discuss cartridges in detail in the following section. For now it suffices to think of cartridges as specialized code modules.

The typical stages involved in processing a client request are as follows. Upon receiving the client request from the underlying daemon, the dispatcher determines which cartridge needs to handle the request by using the naming service system cartridge. It then authenticates the request using the authentication service system cartridge . Once authenticated, the dispatcher obtains an instance of the cartridge that will handle the request from the resource manager system cartridge. Finally, it dispatches the request for execution to that cartridge by calling the execution manager system cartridge.

3. Cartridges

In the framework provided by the WRB, all services be they application or system services, can be structured as one or more cartridges. Cartridges are thus central to the framework. In this section we describe various aspects related to cartridges.

3.1 Cartridge Naming

A cartridge forms the basic unit of distribution in the system. Thus there needs to be a uniform way of naming cartridges. Cartridges are named using URL's. A cartridge name has two parts. The first part is the IP address of the server on which the cartridge resides. The second part is a virtual path in the server directory structure that can be used uniquely associated with the cartridge. This allows the cartridge name space to be global as well as allows cartridges to be accessed uniformly as other web resources such as documents etc.. It also allows quite a lot of flexibility in naming cartridges, avoiding name conflicts, as well as allowing the name space to grow as new cartridges are added to the system.

3.2 Cartridge Interface

Each cartridge has a standard interface, which provides a common overall structure for all cartridges. The abstract cartridge interface is as follows:



interface Cartridge {



   boolean init(); 

   boolean authenticate(in Principal user_passwd); 

   boolean exec(in Request req_obj, out Response resp_obj);

   boolean shutdown();

   boolean quiesce();	

   boolean unquiesce();

}

The init() routine is responsible for intializing the cartridge instance. This may include invoking the constructors of several subobjects, preforking threads and acquiring all other required shared resources. The shutdown() routine is responsible for cleaning up all of the resources and shutting down the cartridge instance. Once the shutdown() routine is invoked on a cartridge instance, it immediately becomes unavailable for servicing subsequent requests. The authenticate() routine validates whether the client requesting the services of the cartridge is authorized to use those services. The exec() routine is the generic way to dispatch all service requests to the cartridge. The quiesce() and unquiesce() routine are called to temporarily suspend/resume the cartridge instance without bringing it down. Once the cartridge instance has been quiesced, it will ignore all routines except for unquiesce(). Normal processing resumes after unquiescing.

3.3 Cartridge States

The major states in the lifetime of a cartridge instance are shown in Fig. 2. The cartridge instance starts out in state 1, and transitions to state 2 when the init() routine is called. If the authenticate() routine is called next, it then transitions to state 3. If the cartridge does not perform authentication, then the execute() routine will be called next, which causes the cartridge to transition to state 4. The cartridge instance will also transition to state 4 from state 3 when the execute() routine is called. Finally, the cartridge instance transitions to state 5 when the shutdown() routine is called.

4. The Web Request Broker API

The Web Request Broker supports a rich API that is accessible to cartridges, independent of the underlying HTTP daemon. Due to space considerations we do not describe all of the routines in the API, but rather describe four key sets of routines that give a sense for the kind of functionality available in the API.

4.1 Request Service Routines

The set of request service routines provides cartridges information about the client making the request, information about the request itself, as well as information about the underlying daemon. Some of the routines in this set are:

4.2 Inter-Cartridge Communication Routines

The inter-cartridge communication routines allow a cartridge to communicate with cartridges on local and remote hosts using the HTTP protocol. Some of the routines in this set are:

4.3 Transaction Service Routines

The transaction service routines are based on the X/Open transaction model, and allow a cartridge to associate transactional semantics to groups of operations. Some of the routines in this set are:

4.4 Content Management Routines

The content management routines provide a uniform interface to content stored either in the file system or the database. Some of the routines in this set are:

5. Programming Paradigms

The WRB API discussed in the previous section lends itself to a number of different programming idioms or paradigms . Each paradigm is a way to structure the code and has certain well defined properties. Thinking in terms of paradigms simplifies application development considerably, as a complex task can be broken down into smaller manageable modules, with each module structured around a paradigm whose properties and behavior are well understood.

5.1 Request/Response Paradigm

The request/response paradigm involves a client requesting a resource from the server. The server, if it has access to the resource, responds by returning the resource to the client. At this point the server no longer has any state associated with the client's request, and so to the server, each client request is independent of any previous requests.

The typical states that the cartridge goes through when implementing the request/response paradigm are shown in Fig. 3. When the cartridge receives a request, it transitions from the initial state (state 1) to the next state (state 2). In state 2 it does various things related to the request received. When the cartridge sends the response to the requesting client, it transitions to state 3, where it is done executing. Note that there are other intermediate states possible, but the three states shown capture the essential nature of the request/response paradigm.

5.2 Session/Conversational Paradigm

The session/conversational paradigm is characterized by the ability of the server to maintain client state across multiple requests. This allows applications to maintain a session with the server, and execute multiple requests/responses within that session. A cartridge that implements the session paradigm needs to be assigned a session lifetime, which specifies the duration of the session. This information is registered with the WRB.

The typical states that the cartridge goes through when implementing the session paradigm are shown in Fig. 4. When the cartridge receives a request, it transitions from the initial state (state 1) to the next state (state 2). In state 2 it does various things related to the request received. When the cartridge sends the response to the requesting client, it transitions back to state 1, where it can receive additional requests from clients. When the session has been in existence for the specified duration, the cartridge transitions to state 3, where it is done executing.

5.3 Transactional Paradigm

The transactional paradigm allows a group of operations to be executed atomically, i.e., either all of the operations in the group are executed successfully or none are. The typical states that the cartridge goes through when implementing the transactional paradigm are shown in Fig. 5. When the cartridge receives a request, it transitions from the initial state (state 1) to the next state (state 2). In state 2 it does various things related to the request received. It transitions to state 3 after it initiates the transaction. In state 3 it performs various operations that are part of the transaction. It then transitions to state 4 after committing or aborting the transaction. Finally, it transitions to state 5 after it sends a response back to the client.

5.4 Examples

We next describe two examples that illustrate the paradigms detailed above. The first example illustrates the request/response paradigm, while the second example illustrates both the session and transactional paradigms. In the first example, as shown in Fig. 6, a client makes a request to cartridge A, which exists on host server X. Cartridge A in order to respond to the request, in turn makes a request to cartridge B on host Y. Cartridge B responds with the necessary information, which cartridge A uses to satisfy the original request to the client. Both cartridges A and B do not retain any information regarding the request after sending their respective responses. This illustrates not only the stateless nature of the request/response paradigm, but also the distributed operation of cartridges.

In the next example, as shown in Fig. 7, a client makes a request to a cartridge that involves the cartridge initiating a transaction on the database. After the cartridge responds to the client's original request, the cartridge maintains state regarding the client's original request, in particular information about the active transaction. The client then sends another request, possibly with information to update the database. The cartridge includes this information within the active transaction. Finally, the client sends a third request to commit the transaction to the cartridge. Thus the cartridge retains state about the client's request across multiple requests for the duration of the session. The transactional semantics ensure that the operations executed by the cartridge during the session are atomic, i.e., either all are applied to the database, or none are.

6. Related Work

Application development frameworks for distributed web-based applications are also being developed by other software vendors. Due to space restrictions we are unable to make a detailed technical comparison of the features offered by the other systems with the features offered by the WRB. However, we highlight here some of the key differences between these systems and the WRB.

The systems offered by Apache [1], Purveyor/Microsoft [5], Netscape [7], and Spyglass [8] are all structured such that applications run in the same address space as the web server. In the WRB, the application runs in a separate process. However, unlike CGI [3], we do not create a new process for each request. The WRB maintains a pool of processes, and processes are re-used from this pool in order to satisfy incoming requests. Java servlets from Sun [6] uses a similar approach by maintaining a pool of threads.

7. Conclusions

The World Wide Web (WWW) is rapidly evolving from a platform for serving up static documents to a platform for deploying distributed, cross-platform, and language and location independent applications. There is thus a need for appropriate frameworks that would allow not only the deployment but also the development of such applications. We presented the Web Request Broker (WRB), a system developed here at Oracle that provides a distributed, scalable, and daemon-independent framework for developing and deploying distributed web-based applications. The framework was described along three dimensions. The first dimension is the overall architecture of the WRB. The next dimension is the application programming interface (API) offered by the WRB to applications, and the final dimension is the kinds of programming paradigms that can be used with the above API to develop applications.

References

[1] Apache API Notes, Apache, 1996.

[2] P. A. Bernstein, "Middleware: A Model for Distributed System Services," Communications of the ACM, Vol. 39, No. 2, Feb. 1996, pp. 86-98.

[3] CGI version 1.1 Specification, 1996.

[4] The Common Object Request Broker: Architecture and Specification, revision 2.0, Object Management Group, Cambridge, MA, 1995.

[5] ISAPI Specification, Purveyor Corp., Framingham, MA, 1996.

[6] Java Servlet API White Paper, Sun Microsystems Inc., Mountain View, CA, 1996.

[7] Netscape API Functions, Netscape Communications, Mountain View, CA, 1996.

[8] Spyglass Web Server SDK 2.1, Spyglass Inc., Naperville, IL, 1996.

[9] Web Request Broker API, Oracle Corp., Redwood Shores, CA, 1996.



Return to Top of Page
Return to Posters Index