text:
US 7089560 B1 Abstract A method and apparatus for providing a Web application framework is provided. The framework includes four main components which are used in combination to create Web servers of varying complexity depending on the needs of the end use. The framework includes a Server object, a Handler object, a Properties object, and a Request object. A Server object is created with an initial set of properties and calls a Hander object. The Handler object defines how URL requests are processed by the Web server. When a request appears at the server, the Request object obtains and formats the request for subsequent processing. The Handler object works with the Properties object to process the request. Multiple Handler objects may be chained together to create a Web application that can perform many operations without being restricted to traditional server designs.
Claims(17) 1. A method for processing a request from a web application comprising:
receiving the request by a server object;
generating a request object to manage processing of the request;
forwarding the request to a handler object by a request handler;
processing the request using the handler object, wherein processing the request using the handler object comprises sequentially invoking a first interior node handler object configured to process a portion of the request to generate a first partial result, and invoking a second interior node handler object configured to generate at least one selected from the group consisting of a second partial result and a result using the first partial result, wherein the second partial result is used to generate the result; and
storing the first and second partial result in a properties object,
wherein name collisions are avoided when the first interior node handler object modifies a name of the first partial result to associate the first partial result with said first interior node handler object and the second interior node handler object modifies a name of the second partial result to associate the second partial result with said second interior node handler object.
2. The method of
3. The method of
calling a response method of a second handler object in formulating the response.
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
formulating a response to the request.
9. The method of
10. The method of
11. A framework stored on a computer readable medium with instructions for processing a request from a web application comprising:
a request object configured to manage processing of the request;
a handler object configured to perform the request using the request object by sequentially invoking a first interior node handler object configured to process a portion of the request to generate a first partial result, and invoking a second interior node handler object configured to generate at least one selected from the group consisting of a second partial result and a result using the first partial result, wherein the second partial result is used to generate the result; and
a server object configured to receive the request and initialize the request object and the handler object; and
a properties object configured to provide information to the server object to initialize the request object and the handler object, and configured to store the first and second partial result,
wherein name collisions are avoided when the first interior node handler object modifies a name of the first partial result to associate the first partial result with said first interior node handler object and the second interior node handler object modifies a name of the second partial result to associate the second partial result with said second interior node handler object.
12. The framework of
13. The framework of
14. The framework of
15. The framework of
16. The framework of
17. The framework of
Description A portion of the disclosure of this patent contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. Not Applicable. Not Applicable. 1. Field of the Invention The present invention relates to Web applications. More particularly, the present invention relates to creating extensible and scalable Web applications. 2. Description of the Related Art Web servers and Web applications constitute the single most important component of the network content delivery system we know as �The Web�. The first Web Servers started to appear in 1994 on systems running the UNIX� operating system (OS) or a UNIX-based OS on the Internet. The design of those early systems reflects its UNIX-based heritage. URLs (Uniform Resource Locators) are equivalent to UNIX-based OS file names. Each URL, when requested by a client program, typically a �Web Browser�, is mapped to a file of the same name, wrapped in the HTTP (HyperText Transport Protocol) and delivered to the client. In those cases where the content can not be represented as a static file and needs to be dynamically generated, the file representing the URL of the client request specifies the program that is run to generate the content. This capability, known as CGI (Common Gateway Interface) stems from the traditional UNIX-based OS designers' practice of making everything look like a file. Thus each URL represents a file that either contains the content, or contains the program that is used to generate the content. Over the next five years the Web saw explosive growth, and the architecture of the original Web servers, though simple and elegant, was beginning to strain. Static content was still delivered by mapping URL's into files, but dynamic content was becoming problematic. The notion of programs as files, as well as the mechanisms for launching, managing, and communicating with CGI programs is very specific to a UNIX-based OS, which makes porting Web servers and their corresponding content to a non UNIX-based OS difficult. In addition, as content management techniques required more of the content to be generated dynamically, even if simply to paste together several static files as a single URL, the CGI programs rapidly became the bottle neck. Each dynamic page requires a separate program to be launched and executed by the operating system, only to be terminated each time a request was completed. Additionally, the communication between the Web Server and the CGI program is very limited. Only the URL and its corresponding HTTP envelope information is made available to the CGI program, which can only return content; the ability to pass meta-information back to the server is almost non-existent. The next state in the evolution of Web servers focused on eliminating the CGI bottle neck, and specifically the program creation and execution step required for each URL requested. Generally, three different approaches have been taken: keeping the basic CGI interface, only making it faster; building Web server specific APIs (Application Programming Interfaces) by requiring the dynamic code generating portions to be bound into the same process as the Web server; or defining language specific APIs whose implementations do not require the overhead implied by the CGI model. The Fast CGI interface tries to improve the performance of the CGI specification by eliminating the process creation and execution step at every request, yet maintaining backward compatibility wherever possible. The Fast CGI interface, represented by the file that maps from the URL, is created and started once when the Web server starts. Multiple independent URL requests are sent to the same fast CGI process by defining a request packet protocol than can accommodate multiple requests and responses for each Fast CGI process. Fast-CGI has the advantage of preserving a separate execution context for dynamic content generation, while eliminating the bulk of the process creation overhead of traditional CGI programs. Consequently, Fast CGI programs are easily ported to work with many different Web servers. The second approach to eliminating the CGI bottleneck is to move the dynamic content generation program into the same execution context as the server, by expressing the dynamic content generation in terms of APIs that are specific to a particular Web server. This approach eliminates the process creation and execution overhead of CGI programs entirely, but at the expense of close coupling to a particular Web server. Most major Web servers provide such API definitions. However, dynamic content generation using these APIs is rarely portable to a different server. In addition, by having the dynamic content generation in the same execution context as the server, a bug in a dynamic content generation module can negatively impact the entire Web server, including URL requests that have nothing to do with the bug-containing module. The third approach used to eliminate the CGI bottleneck is to create a set of language specific APIs that can be logically bound into the execution context of the Web server, yet be defined in a Web server independent way. Servlets are the leading example of this approach. A servlet may be a JAVA� programming language module that conforms to a defined set of language-specific APIs, which can be (and have been) implemented to provide dynamic content for many different Web servers. Thus servlets combine the advantages of Fast CGI portability to different Web servers�with the close coupling of server specific extensions. Although all three approaches reduce performance problems associated with the CGI interface, they still fundamentally retain the notion of a one-to-one mapping between URLs and files, where all requests and their corresponding files are completely independent. As the Web has grown, the notion that every URL request and its associated file is independent of any other request has become a serious architectural roadblock. It is now common for a single Web �form� to be spread over multiple pages (URLs), or for a single user to have unique state associated with a sequence of requests that may span days or even years. Finally, as the sheer volume of content on the Web has mushroomed, it is often no longer appropriate to assume, as is implicit in the CGI one-file-per-URL model, that the content resides on the server machine at all. The software architecture that was designed to deliver individual pages in response to URL requests is now being used to build sophisticated applications, whose content happens to be wrapped in HTTP. Somewhere in the switch from delivering static files as URLs to creating full blown applications, Web servers became Web application development frameworks. As the need for more sophisticated features has grown, so too have the capabilities of the Web servers used to implement them. However, they are still based on the original one file per request architecture that was seemingly previously advantageous, but now burdensome. To support these added capabilities, the size and complexity of the APIs has grown. The descendants of the CGI architecture are stressed to provide functionality that isn't a good fit for their designs. As an example, a recent Servlet API (2.0) needs over two dozen classes and almost ten times that many methods to describe its interface. The entire reason for the explosion of interface complexity isn't completely due to the complexity of the interactions required by implementors of the interface. As Web servers have become Web application frameworks, the notion that the same set of content can be delivered by any server has persisted. Somehow the �content� is viewed as separable from the server used to deliver it. Consequently, every new Web server designer feels obliged to incorporate every nuance and capability of every previously deployed server, to insure that pre-existing content can be delivered with the new software without change. As the Web matures, a transition is occurring away from the current client-server paradigm, where browsers are pointed at particular Web sites, whose servers deliver all the content on that site, to a more distributed model. In this new model, both the traditional browsers and servers will still exist, but the content received by the client for a particular page is likely to have been retrieved from several traditional back-end servers, and modified to suit the requirements and desires of the particular client. This is a �work flow� model, where the content passes through various stages, and is transformed at each stage. Early versions of these intermediate stages, termed meta-servers, are already starting to appear on the Web. Some of the meta-servers are called �portals�, and others are known as �content aggregators�. For the most part, portals and content aggregators are one in the same. It is a portal when viewed from the perspective of the client, and a content aggregator from the perspective of the traditional, or �content�, server. As these meta-servers begin to play a more prominent role in the infrastructure, they will have a profound impact on the way in which traditional content servers are constructed. No longer will the content server produce both the content and its presentation (look and feel). Meta-servers will transform the content after it leaves the content server, allowing content servers to be simpler. Today's content servers not only provide the content, but manage the presentation, user preferences, and browser differences as well. A system and method for providing an extensible application Web framework is presented which includes a server object, a request object, at least one handler object, and a properties object. The server object is adapted to store information relevant to a Web application and create and call the request object to obtain the request. A handler object is called to respond to the request. The properties object contains information which may be used by one or more handlers, the server object, and the request object. The request object never uses the properties object other than to store a reference to it. In one aspect of the invention, the server object is adapted to call the initialization method of the handler object associated with a handler name. In another aspect of the invention the handler object is adapted to instantiate additional handler objects to create extensible functionality. In another aspect, the handler object is adapted to alter the properties object such that later called handler objects may act on modified information. In another aspect the request object is adapted to obtain and parse server requests. The request object contains information related to a server request that is used to create the response to the request. In another aspect of the invention, a method of operating a Web application creates a server object with a properties object. A handler object is created by the server object. The server object then calls an initialization method of the handler object and then waits for a request, such as an HTTP request. Upon receiving an indication of a request, the server object creates a request object. The server then calls methods in the request object to obtain the request at the incoming port. The server object then calls the respond method of the handler object and passes it the request object. In another aspect of the invention, the respond method of the handler object calls a respond method of a second handler. The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate at least one embodiment of the invention and, together with the description, serve to explain the principles and advantages of the invention. In the drawings, The following description is presented to enable any person skilled in the art to make and use the invention, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present invention. Thus, the present invention is not intended to be limited to the embodiments illustrated, but is to be accorded the widest possible scope consistent with the principles. Reference will now be made in detail to implementations consistent with the principles of the present invention as illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings and the following description to refer to the same or like parts. The invention seeks to support the future of the Web so that content servers can be simpler, providing just the content. The integration with other content, as well as the shaping of the look and feel for a particular browser will be added in stages by various meta-servers as the content flows toward the ultimate consumer. Many types of content that are not traditionally located on a Web server will become available. This new content, not able to stand on its own in the traditional Web world, will be consumed by meta-servers which will integrate the content with information from other content and meta servers. Devices, sensors, and actuators will be accessible over the Web, and will have their information integrated into the Web fabric created by the network of content servers, devices, and meta-servers. Consistent with the principles of the present invention an architecture for building Web applications is disclosed that is simple, modular and scalable. Different from the prior art of clients talking to content servers, the present invention describes a network of portals and content aggregators interposed between the providers and consumers to create a personalized Web of customized content, dynamically synthesized by integrating information from a wide range of sources. The invention provides a new architecture and sample implementations for building both content-servers and meta-servers. In the content server context it permits the attachment of simple devices to the Web with the barest of capabilities, squeezing into the tiniest places�a micro server. In the meta-server context, it provides rich and flexible mechanisms for synthesizing, transforming, and integrating content; content retrieved both from traditional content servers as well as the new breed of micro servers. Finally, the invention provides capabilities to integrate with traditional N-tier applications, providing a bridge between the current client-server Web into the future. To achieve this two part goal, a two part strategy is taken. The existing notion of mapping URLs to UNIX-based files is abandoned. Modern URLs are too fluid to have a fixed binding to underlying files. Indeed, many small devices have no notion of file systems at all. Specific mechanisms used to implement existing content server capabilities are discarded. For example, most traditional content servers use .htaccess files to provide password protection for content. The file based nature of the .htaccess mechanism is less desirable, so direct support is not built-in. Password protected URLs are still available, albeit via a different mechanism. The second part of the strategy is based on defining a series of abstract capabilities that support the entire range of applications, from the tiniest micro-server to a more traditional content-server to a sophisticated meta-server. This provides an architecture that starts with a small core and a simple interface for adding functionality required of a micro-server implementation, and adds to it a set of composable, interchangeable modules that can operate together in a scalable way. With modules for manipulating traditional file-based content, the traditional content server capability can be obtained. By adding modules that can string together arbitrary relationships between users and pages, and combining them with modules that can obtain and manipulate foreign content, sophisticated meta-servers are possible. The invention features a simple extension application programming interface (API) called a handler using a delegation based object model. It provides dynamic loading of application functionality and configurations. The handlers that provide application functionality are resolved and loaded at run time. Mechanisms are provided for composing application modules, encouraging code reuse and design orthogonality. Information specific to an entire application is gathered in one place, and made available to all of the handlers, simplifying server modification and configuration. Four key components of the Web application development framework are illustrated in The Server object 102 represents the particular server in operation. The Handler object 106 is the mechanism by which functionality is added to the Web application. The Properties object 108 is the data structure for managing the information flow between the other components of the Web application. The Request object 104 is used to parse an initial request. As content management capabilities are shifted from traditional Web servers to meta-servers, the traditional Web server can focus entirely on the content it needs to deliver. At the extreme, it becomes a micro-server, delivering domain specific content in a bare bones way. These smaller, simpler servers can now be attached to sources of content that previously would be considered too small or unimportant to justify their own Web servers. Examples include a digital thermometer whose content consists of the temperature of something, or a light switch, whose content is either on or off. Although a Web server whose content consists entirely of �on� or �off� may not, by itself, be especially important, when used in conjunction with meta-servers that can aggregate content from this and hundreds or millions of other similar servers, the content suddenly becomes very interesting. The term UPI, which stands for URL Programming Interface, is used to discuss the capabilities if these micro-servers. A UPI is just like an API, or Application Programming Interface, traditionally described in terms of specific programming language bindings, only UPIs are described in terms of URLs. Taken in this light, a URL no longer represents a file, instead it represents a set of programmable interfaces or remote procedure calls that happen to be accessible via HTTP. Using the invention as a micro-server becomes defining a UPI for the desired functionality, using a built-in HTTP protocol stack as a transform mechanism, and writing the code to implement the UPI. The Server object 102 is generally the simplest of the four components and represents information and methods relevant for the life of the particular server. The Server object 102 may include include a port number 110, a Handler name 112, Properties object 114, and variables and methods 116. The port number 110 stores the port on which the particular server is started and is usually supplied upon startup. The Handler name 112 is the name or a reference to the initial Handler object 106 that the Server object 102 calls. It may be supplied upon startup or set to call a default as the case may be. The Properties object 114 contains information relating to the operation of the Web application as well as a dictionary which may be used by any Handler object 106. The Properties object 114 may be implemented as a hash table and is an instance of Properties object 108. Properties object 114 may contain some information that exists for the life of the server and information that may be altered during the life of the Server object 102. In essence, Properties 114 acts as a Web application blackboard for the various Handlers 106 that may be called. A Web application may have one or more active Server objects 102, which usually operate independently. Other variables that could be stored include, but are not limited to, a count of accepted connections, a default buffer size for copies to and from client sockets, a count of errors, the name by which the Web application should identify itself in an HTTP redirect, various logging information, a string to return for the �server� line in an HTTP response header, the protocol used to access the Web application, such as HTTP or HTTPS, for example, a request count of all requests to date, and a timeout value for closing an idle socket. The Server object 102 also contains methods 116. These method provide various functions necessary for the Web application. Typical method include, but are not limited to, a method for converting an HTTP port into the URL string fragment used to access it, a method for logging, and a method for accepting socket connections. Request object 104 obtains and turns a request into information usable by any subsequent Handler objects 106 to satisfy an HTTP request. Generally, Request object 104 represents an HTTP transaction. It provides a set of accessor functions to obtain the individual fields of the HTTP header. It also provides utility methods that are generically useful for manipulating HTTP requests. Instances of this object are created automatically by the Server object 102, and then passed as references to the Handler objects 106. There will be exactly one Request object 104 per thread request at any time. The Request object 104 contains data 120, including a Properties object 122, and methods 124. The data 120 may include variables that the Request object 104 uses to store relevant information about a particular request. The relevant information may include, for example, fields to indicate what protocol is being used by the requester, fields to interact with the server port, references of information to send to the port, form data information, properties 122, a query string, and incoming and outgoing header information. While the invention is described for HTTP, any other protocol may also be used. Initially Properties object 122 (an instantiation of Properties object 108) is initially empty except for a pointer back to the Properties object 114 in Server object 102. The Request object 104 provides this functionality as a useful tool for Handler objects 106 that wish to communicate to subsequently called Handler objects 106 or to modify a server property for a particular request. Methods 124 provide the required functionality to read input and write output to the Web application's port such as a send-response and a send-error. It can also provide methods for modifying the response headers and return codes. The Handler object 106 provides the interface that defines how HTTP requests get mapped into content. It may include a methods portion 126. Method portion 126 contains an Init method 128 that provides initialization services and a Respond method 130. The Handler object provides basic functionality to accept requests such as GET, HEAD, and POST. The Init method 128 is called before the Respond method 130 processes the first HTTP request, to manage allocating any resources needed for the lifetime of the handler. The Respond method 130 and all methods it calls should be thread-safe since they may handle HTTP requests from multiple sockets concurrently, although there will be exactly one Request object 104 for each thread. The Handler object 106 may be passed a server name which is the HTTP server that created the Handler object 106. Typical Handler objects 106 will use Properties 114 of Server object 102 to obtain run time configuration information. The Handler object 106 may also be passed a prefix name which is a prefix to prepend to all of the keys that this handler uses to extract configuration information out of Properties 114 of Server object 102. This may be set by aChainHandler (described later) to avoid configuration parameter name space collisions. For example, if a Handler object 106 is looking for a property MyProperty, and the prefix is �handler.�, then that configuration option will be found in Properties 114 of Server object 102 in the key �handler.MyProperty�. The Respond method 130 responds to the HTTP request and returns True if the request was handled. A request was handled if a response was supplied to the client, typically by using a send-response or a send-error method of the Request object 104. The Properties object 108 contains information used by the various components of the Web application. Properties object 108 includes a set of names and their associated values 140 and may contain a pointer 142. The name and value pairs could be implemented as a hash table or dictionary. This type of design is a delegation based model with a flat name space. Users of the invention to develop web applications are expected to make extensive use of collections such as those of the Java programming environment, however, other collections that provide the same features are contemplated. This technique allows developers to avoid having to deal with method explosion often seen in object oriented languages. The invention architecture trades complexity in method signatures for a Properties object 108 that can contain an unlimited number of attribute/value pairs or key/value pairs depending on your terminology preference. The invention architecture relies heavily on this classical �data dictionary� which contains values available to handlers. Although there is a performance penalty for using this type of approach the benefits of not having global variables, and the ability to augment the object store seen by all handlers using key/value pairs far outweighs the performance reduction. Other approaches could easily provide 100 different methods for extracting the request information. Consider the case of a class with ten field members, classical techniques require 10 getters and setters to access the values. The present architecture stores these values in what their final form will usually be anyway, programmers can use the same two methods over and over; property.get( ) and property.set( ). The properties approach requires that you only know the names of the properties. Another difficulty with methods to access each field approach is the possibility that you will not provide the methods a user needs so developers end up converting them anyway. For example, take into account the signature of a method/function. The Request object could easily be given 100 methods for users. The present invention does not do do this, instead in the present invention when requests arrive they are put into a property collection and programmers can rely on one or two methods to get and set properties. Automatic methods can then be used to generate required bean components. When a request arrives from a user all of the parameters for the request are stored as strings in a Request Object as attribute value pairs. There are many applications where having a database is not appropriate for a web application due to complexity and maintenance costs. The present invention allows simple object stores to be built, that can be easily accessed by users using a very simple language called the Brazil Scripting Language. This language allows any web developer to interact with a Web accessible data dictionary with minimal programming knowledge and effort. The method of operating Sever object 102 is illustrated in The Server object 102 waits until a request is received (step 216). When a request arrives, the Server object 102 creates a Request object 104 (step 218). In one embodiment, the Server object 102 can call multiple Request objects 104 according to a multi-threaded environment. The Request object 104 contains all of the information that pertains to client's URL request as well as methods that encapsulate the HTTP protocol. In another embodiment, because the Request object 104 is the object having the protocol implementations, the Server object 102 and Handler objects 106 do not need to be aware of the particular protocol being implemented. After the Request object 104 is created in step 218, the Server object 102 calls the Request object 104 to obtain the request (step 220). The Request object 104 obtains and parses the HTTP request placing appropriate information in data portion 120. Finally, the Handler object 106 is called to produce the content (step 226). Each time a Request object 104 is created, in response to an HTTP request, the Respond method 130 of Handler object 106 is called, and supplied the Request object 104 as a reference. The Handler object 106 examines the request, and by using the methods in the Request object 104, information in the data portion 120, and/or any other Properties object 108 linked via Properties 122, formulates an HTTP response. Once the request has been satisfied, the Request object 104 is discarded. Alternatively, methods may be provided to save the memory references to the Request object 104 so that it may be reused. If a True is returned by Handler object 106 (step 228), then the Server object 102 returns to waiting for the next request (step 216). If an False was returned, then the Server object returns an appropriate error message (step 230) and returns to step 216. If any parameters are required to configure the Handler object 106, they are placed in the Properties 114 object when the Server object 102 is started. The Handler object 106 can find its configuration information either in the Server object 102 as passed to the Init method 128, and/or in the Request object 104 provided with each request. The setup described so far is desirable for micro-server applications. The Server object 102 and Request object 104 provide the framework for encapsulating and managing HTTP requests, and the Handler object 106 maps the requests onto device specific functionality. There is little unused infrastructure, and implementations can be made quite small. Configuration information required by the Handler object 106 is provided to the Server object 102 at startup time, and passed to the Handler object 106 when its method are called. This feature allows the initiator of the server to have great flexibility to creating servers with different extensible properties. The creation of meta-servers, that operate both as portals and content aggregators, use the same development framework, and the identical interfaces as the micro-server. However, instead of building a system from a single handler that would need to be modified or rewritten for each new meta-server application, the meta-server is constructed as a cooperating collection of Handler objects 106 classes, whose arrangement and configuration can be modified to provide a wide range of capabilities. Because the Handler object 106 interface is so small, it is easy to create a Handler object 106 that functions both as a consumer to the Request object 104, as in the micro-server example above, and as a provider of the Request object 106. This insight lets us create a Handler object 106 that calls other Handler objects 106, permitting multiple Handler objects 106 to participate in the processing of each HTTP request. By combining these �interior node� Handler objects 106 with the simple, or �leaf� Handler objects 106, a directed graph of Handler objects 106 can be created. This permits the construction of meta-servers by combining small bits of reusable functionality together. A simple yet powerful use of �interior node� Handler object 106 can be illustrated by the ChainHandler, a type of Handler object 106, which chains together a list of other Handler objects (possibly including other ChainHandler objects), forming the basic mechanism for creating graphs of Handler objects 106. ChainHandler 300, illustrated in Another interesting type of Handler object 106 is a FileHandler object which may provide functionality to obtain static files. The Response method of the FileHandler object converts a URL to a file, a file suffix to mime type lookup, delivery of �index� files when provided directory references, and redirection for missing slashes �/� at the end of directory requests. The FileHandler object may include root variable containing the document root property that it obtained from the Properties object 108. This feature can be used to modify a root directory during a particular request. Another interesting Handler object 106 that could be created is an Interface Handler. This Handler object 106 provides basic functionality to accept HTTP requests and dispatch methods to handle the request. As indicated above, the data used to configure any Handler object 106 is placed into the Properties object 104 as a set of name/value pairs when the Server object 102 is started. As long as there is only one Handler object 106, this scheme works fine. However, when multiple Handler objects 106 are used in the same Server object 102, configuration collisions can result either from different Handler objects 106 choosing the same name for a configuration parameter, or the same Handler object 106 instantiated multiple times with different configurations. One way to overcome this limitation, provides for identifying particular properties in the Properties object 108 by the Handler object 106 that created them. Each �interior node� Handler object 106 is responsible for creating a set of Handler objects 106 that use it as the containing side of the Handler object 106 interface. When each of the Handler objects 106 is created, it is assigned a name which it prepends to its configuration parameter names when seen in the server properties, thus avoiding any possibility of name collisions. For a Handler object 106 used in the micro-server implementation, any request that is not dealt with explicitly results in the Server object 102 sending the requester an HTTP Not Found response. In the meta-server case, where multiple Handler objects 106 have the opportunity to examine and respond to an HTTP request, a Handler object 106 may alter the state of the current HTTP request without providing content to the requester. This alteration can take the form of modifying the configuration parameters of other Handler objects 106, by changing the appropriate values in the Properties object 122 in Request object 104. The Properties object 122 of Request object 104 may implemented as a stack, enabling Handler objects 106 typically retrieve their configuration properties from the top of the stack, the duration over which a Handler object 106's configuration is altered is controllable by manipulating the Properties object 122 stack. In the common case, changes one Handler object 106 makes to another Handler object 106's properties will only be in effect for the duration of the current HTTP request. Other ways will be obvious to those of skill in the art. The following provides an illustrative embodiment of the invention as applied to creating a simple meta-server. A common feature of many Web servers is to allow users on a timesharing system to have their own private directory of files that are delivered as URLs. URLs that begin with �/�joe� would be delivered from joe's private directory of files instead of the main server directory. While most servers have this special capability built-in, the same effect is easy to provide with the present invention by a pair of Handler objects 106 that cooperate with each other. A FileHandler object is used to convert URLs into file names, and deliver the content of the files to the client. It is configured with a document root, the directory in the file system that acts as the root of the URL space. To manage user's files, another Handler object 106 is run before the FileHandler object. If the URL starts with �/�� this Handler object 106 modifies the Request object by changing the URL to remove the user name portion, and setting the FileHandler object's document root parameter in the Properties object 122 Request object 104 to the proper user's home directory. When the FileHandler object receives the HTTP request, it delivers the proper file from the user's directory, based on the new configuration parameters placed in the Properties object 22 Request object 104. When the next request comes in, the new configuration information will have been popped from the properties stack, and be unaffected by the previous modification. The same file handling scheme is reused in a different context. Additional Handler objects 106 would be desirable for implementing a more fully featured meta-server, each performing a different task, but working together to create a powerful content manipulation environment. The following discusses exemplary additional Handler objects 106 and how they work together to create robust meta-servers environment. A first class of Handler objects 106, of which the FileHandler object described above is an example, can be used together to provide the functionality of a traditional Web server, including delivering files, running CGI scripts, providing password protected pages, and interfacing to other, non HTTP protocols such as LDAP (Lightweight Directory Access Protocol) or JDBC (Java Database Connectivity). A next class of Handler objects 106 performs content aggregation capability desired by a meta-server. These Handlers object act as HTTP clients and retrieve content from a different server. The core of this capability could be a fast proxy that implements the client side of the HTTP protocol. A ProxyHandler object would cause entire Web sites to appear as if the content was stored locally in files. As each URL is retrieved from a content server, the contents are examined, and every URL that points back to the content server is rewritten so as to appear locally. When used in conjunction with the FileHandler object, the ProxyHandler object provides the illusion of a single file system, where arbitrary sub-directories are actually retrieved dynamically from other servers. This capability, called �Web mount� provides an analogous set of semantics as the �file system mount� facility does for ordinary files in UNIX-based OSs. Another content aggregation Handler object could is designed for use with micro-servers, whose simple presentation-free content needs to be integrated with additional data in order to be presented to the user in a meaningful way. Content retrieved from this Handler object 106 is converted into a set of name/value pairs and placed into the Properties object 122 of Request object 104 for further processing. The property values are used by other handlers in formulating the final response. An interesting variation on the use of the Handler object 106 is to create the ability to provide micro-servers that dynamically effect the operation of the main server by returning values that represent configuration parameters of one or more Handler objects. A third category of Handler objects 106 may be used to manipulate content once it has been obtained. These Handler objects 106 might come in two flavors, content extraction and content integration. The content extraction Handler objects 106 use the HTML and XML (eXtensible Markup Language) processing capabilities provided by the invention to analyze and decompose content, and convert it into name/value pairs that are stored in the Request object 122 of Properties object 104. The source of the content may be obtained locally, from a file, or remotely from a remote content server. The content integration Handler objects 106 also use the HTML and XML processing capabilities, but this time to insert the previously extracted content into XML templates for final delivery to the requester. The Properties object 122 of Request object 104 is used as the rendezvous location, not only to characterize both the HTTP request and the server configuration, but to hold extracted content as well. Handler objects 106 can access and manipulate all three kinds of data in a uniform manner. A final category of Handler objects 106 may be used to manipulate the temporal scope of the request data, by providing persistent session state. This makes it easy, in portal configurations, to maintain user preference information. By using a simple interface, in conjunction with powerful, reusable components, the invention is able to deliver a wide range of flexible Web solutions, ranging from tiny micro-servers, to traditional Web capabilities to fully functional meta-servers that provide sophisticated portal and content aggregation capabilities. The following presents an exemplary meta-server created by using the Web application framework that illustrates the extensibility and power of the Web application framework. It consists of a Server object 102, a series of Handler objects 106, a Request object 104, and a Properties object 108. The functionality is obtained in the manner that the Handler objects 106 act on the information upon receiving a request. This sample meta-server can obtain and modify �foreign� content on a per-user basis. The Server object 102 is created with a Hander object 106 to run, and a Properties object 108. The Properties object 108 is used by the Handler object 106 (and any sub-Handler objects 106) for configuration information. The Handler object 106 started by the Server object 102 is the ChainHandler 300, whose function is to permit multiple handlers to participate in generating the response for a client request. The first sub-handler is a ProxyHandler 402 and serves only to provide initial configuration information to the Server object 102 by modifying the Server's behavior in a site specific way. For example, in some Intranet configurations, a site specific mechanism is required to create a connection to an external site, given the name of the site. The ProxyHandler 402 may contain the site specific information required to create the connection from the URL. It responds �False� to all requests. Accordingly, the ChainHandler 300 will then call the next Handler object 106. The SessionHandler 404 is called after the ProxyHandler 402 next. It examines the client request to determine the specific user, or session the request is associated with, sets a value in the properties, then returns false, allowing the request to pass to the next handler. The next handler, the ConfigHandler 406 looks up the session id, set by the SessionHandler 404, and retrieves a set of name/value pairs associated with that user. The values of the set of variables may (potentially) be modified by the user (during a prior or subsequent request). One of the variable names will be used later on by the TemplateHandler 408 to select the look-and-feel template. The FilterHandler 410 is called next by the ChainHandler 300. It performs two steps. First, it calls a handler (the wrapped handler) to obtain the content that represents the response to the request, then it passes that content to one or more filters, each of which may choose to modify the content. Once all of the filters have had the opportunity to modify the content, the filter handler sends it back to the requestor, by calling the appropriate methods in the request object, and returns �True� indicating the request has been satisfied. For the handler wrapped by the FilterHandler 410, we use another instance of a ChainHandler, ChainHandler 412, allowing multiple sub-handlers to be used generate content for the request. The first one, FileHandler 414 translates the URL from the request into a file name, and if it exists, returns �true�, using the content of the file as the response destined for the requester. If the file does not exist, the file handler returns �False�, effectively passing the request onto the ProxyHandler 416. ProxyHandler 416, acts as an HTTP client and makes an HTTP request to a different Web server on the Internet, translating the originating request as appropriate. When the response comes back from the different server, which may by a proxy, the content is examined, and modified (as needed) to make it appear to the requester, here ChainHandler 412 to have originated at the meta-sever site. At this point, the FilterHandler 410 has content representing the response to the request, either from the FileHandler 141 or the ProxyHandler 416. That content is passed to the subsequent filters sequentially, allowing each of them to modify the content. The HTMLifyer filter 418 only modifies the content if its mime type is text/plain, transforming it into type text/html. This allows the subsequent filters, that only operate on text/html files to also work on (what was) plain text. The Extract filter 420 uses one or more templates to modify HTML content. Each template defines one or more methods that match HTML or XML entities in the content. The content is scanned as html/xml, and the methods corresponding to the html/xml entities defined by the union of the templates are called, so they may modify portions of the content based on its html/xml structure. In this example three separate template classes define a dozen methods in total that are called by the Extract filter 420 to modify the content. The TOC filter 422 looks for headings present in the content, and creates name/value pairs in the properties that represent the text and position of the headings in the document. In addition, the contents may be modified, placing anchors onto the document that correspond to the values placed into the Properties object 108. The NavBar template 424 examines the URL associated with the content, and creates name/value pairs in the Properties object 108 that may be used by other templates (or filters or handlers) to generate the HTML that represents a navigation bar. The Content template 426 decomposes the content into a set of name/value pairs, which it places into the properties. This set of name/value pairs contains the same text as the original content, only categorized semantically. The content is then passed by the FilterHandler 410 to the next filter, the Template filter 408. The Template filter 408 completely discards the content (the content has already been categorized and placed into the Properties object 108). FilterHandler 410 then looks in the Properties object 108 to find the name of a look and feel template file, and uses the contents of the template file as the current content. The FilterHandler 410 takes content, which is now the contents of the template file, and passes it to the next filter, the Integrate filter 432. Like the Extract filter 420, the Integrate filter 432 uses a set of html/xml templates to process the content. In this case, the Integrate filter 432 takes the original content that has been stored in the Request object Properties object of the FilterHandler 410 by the Extract filter 420, and substitutes it into the content that was created by the Template filter 408. The resultant content is a combination of the original content with the look and feel template. The final filter, the Process filter 430, allows one or more templates to process the html/xml, performing XML to HTML conversion in a manner which is consistent with the ultimate consumer of the content. Now that the content is completely filtered, the FilterHandler 410 arranges for it to be delivered to the requestor by invoking the appropriate methods in the request object, then returns True. Given this Web application development framework, many more applications can be created. The simplicity in the design lies in the fact that the same principles used to design a small server as to design a full functional Web application. The Web application framework of the present invention reduces the need to have one server application that must include numerous functions, some hardly ever used and some not necessary. Communication interface 516 may include any type of mechanism for communicating between computer system 500 and any other node. This may include any type of communication medium including, but not limited to, electrical, optical. Infrared or radio signal communication pathway. Interface devices 518 are any types of devices used to allow a user to interact with system 500. This may include, for example, displays, keyboards, computer mice, touch sensitive displays, audio devices, or any other device that allows users to interact with system 500. These components are described in the context of the prototype implementation, written in the JAVA� programming language for simplicity. However, any language could be used to implement the invention. While the preferred embodiments of the present invention have been illustrated herein in detail, it should be apparent that modifications and adaptations to those embodiments may occur to those skilled in the art without departing from the scope of the present invention as set forth in the following claims. Patent Citations
Referenced by
Legal Events
Rotate |


text:
Pooja Chopra unveils the ...
Motorola to bring 4G phon...
Now, read audio clips on ...
Microsoft unveils Lumia 6...
WhatsApp comes to desktop...
Gionee unveils Elife S7 s...
Micromax Canvas Pep launc...
Samsung unveils budget 4G...
Samsung launches Galaxy A...
Microsoft launches cheape...
B-town at Tulsi, Hitesh's...
Ash's bold photoshoot
Rahul to be crowned Congr...
Qissa: Screening
Celebs Honeymoon Pictures
WC '15: NZ beats Aus
Movies' first look
Tulsi Kumar & Hitesh Ralhan's reception
Voluptuous Celebs
50 Hottest South Sirens
Bold acts in B'wood!
Celebrity photoshoots
Celebs @ Big B's party
Celebrity FB Pics
Celeb Honeymoon pictures
Drenched Bollywood hotties
Celebs' 'Twitpics'
Babes in Bathtub
B'wood's bikini bombshells
Celebs PDA caught on camera!
Naked festivals & events around world
B-town celebs' candid pics
Celebs' hush-hush weddings
Divas in sheer ensembles
Best Mom Bodies!
Amy Jackson
Katrina Kaif's Portfolio Pics
Celebs' oops moment!
Sunny's bedroom photoshoot

subset: commoncrawl


text:
I have stayed at the Blue Iris B & B several times already, and each time this feels like home to me. I often stay here when coming through Saskatoon, upon returning to Alberta. The rates are so reasonable and feel much safer than at a hotel. Terry and Marion are just wonderful hosts, who make you feel so welcome... More
- Also Known As:
- Blue Iris Inn Bed And Breakfast Saskatoon, Saskatchewan


text:
I am a personal assistant in the Metro Portland area. I work mainly with small start up businesses and some private clients.
zoemorrison received 132 entries from 37 designers. View this project »
great working with Zoe! liftyouup
Project | Category | Award | Time left | Entries |
Adult Placement Network: Portland Or | Logo | $250 | Complete | 74 |
Logo Needed for Lets Share Housing, a nationwide website to match homeowners and housemates | Logo | $300 | Complete | 132 |
Name your own price, then watch as dozens of participants submit ideas and choose your favorite. Our 100% money-back guarantee makes it risk-free!
Let us match you up with one of our very best Creatives and work 1-to-1 in complete privacy. You'll have all of the same tools and features as our regular projects!


text:
Programs and ReviewsRaleigh International is a sustainable development charity. We harness the passion and energy of young people to effect positive change in sustainable development. Our programmes focus on providing access to safe water and sanitation, protecting vulnerable environments and building resilient communities.
Our work is delivered through young people and is a collaboration between local communities, partners and volunteers from a wide range of backgrounds, nationalities and life stages. We operate in partnership with communities, non-governmental organisations and governments in Borneo, Costa Rica, Nicaragua, and Tanzania. Since our foundation as a charity in 1984, Raleigh volunteers have become a global community of more than 38,000 people committed to building a sustainable future.
Raleigh welcomes volunteers from all nationalities and backgrounds on our expedition programme. All you need is an open mind, commitment and a desire to change your world for the better.
Programs Abroad
Visitors who viewed this provider also viewed...
36 ReviewsSAVE Volunteering
64 ReviewsAfrican Impact
5 ReviewsWorldwide Experience
Recent Reviews
10 / 10 Overall Rating
Raleigh Tanzania
Submitted on 05/21/2014 by Joe | Yes, I would recommend this programRaleigh Tanzania changed my life. This amazing adventure was made even better by all the great people I met in the communities and who were on phases with me. You get to do some fascinating and very rewarding things, such as helping families by building stoves that mean they won't have to walk over an hour to collect fire wood and carry it all back. Also working with farmers to protect their crops from elephants. Although the trek is tough it teachers you so much about yourself, and gives you leadership and team working skills. The trek is probably the most self rewarding thing you can do. A lot of the people I was in Tanzania with I am still friends with and talk to regularly, even the ones I was on any phase with I got to know very well because of the time we spent together at base.
Basically this was the best thing I've ever done and I can't recommend it highly enough. If you want a great adventure with great people in a beautiful and welcoming country, look no further than Raleigh Tanzania.
Male | Age: 19-24 | Britain | N/A -
10 / 10 Overall Rating
Raleigh Tanzania
Submitted on 05/20/2014 by Georgi | Yes, I would recommend this programRaleigh Tanzania gave you the opportunity to see very remote and interesting cultures and achieve both personal and physical challenges in a fun and exciting way! It was a great cultural experience and I would highly recommend it.
Female | Age: 19-24 | Britain | N/A -
10 / 10 Overall Rating
Raleigh Tanzania
Submitted on 05/20/2014 by Jonathan Ong | Yes, I would recommend this programThis was really one of the best experiences of my life. For my first phase, we went to a small village called Usevya and built firewood-efficient stoves for the locals there. We also got to interact with the community, who was apprehensive at first, but very receptive. I grew very fond of the kids and youths there.
Second phase, we went on a character-building trek through the mountains of Iringa. This was tough. But seeing my teammates pushing through it beside me motivated me and we all completed it in the end. You really find out that are capable of so much more than you think in this expedition.
All in all, I felt like what we were doing was really going a long way to help the local community. Also, great character development.
How could this program be improved?
Sturdier equipment. Some of the tools we used tended to break.
Male | Age: 19-24 | Austin, Texas | University of Texas, Austin
Staff Interview
What position do you hold at Raleigh International? What has been your career path so far?
Becca: I am currently the Country Operations Manager for the Raleigh Expeditions in Tanzania. I first worked with Raleigh International as a Volunteer Manager in Borneo in Spring 2013, and then came to Tanzania as the Deputy Operations Manager in the Summer 2013 expedition, where I gained the permanent role of Country Operations Manager. Prior to Raleigh I worked in the Communications and Event sector.
What do you most enjoy/find most fulfilling about your interactions with volunteers?
Becca: The thing I find most fulfilling is seeing how volunteers go through their personal journey whilst out on programme. They arrive with slight nervousness about what lies ahead and what living out in the rural communities will be like, but through the induction process this lifts and excitement sets in for their first project phase. It is amazing to see how they embrace the projects and really get involved with the communities, promoting the work they are doing and how the community can be involved in that.
Through each phase this level of engagement with the communities and passion for the difference they are able to make builds, increasing the impact of their work. Seeing the volunteers again at the end of the expedition and seeing how this has effected them personally and helped them to develop themselves, gaining confidence, new skills and new friendships is inspiring.
What is your favorite story of a volunteer's experience in the program?
Becca: It is hard to pick out one favourite, but one that comes to mind is of a volunteer who, when doing the adventure phase in their first phase, found himself out of his comfort zone and wanting to return home. Through the excellent patience and coaching of the Volunteer Managers, he managed to complete this phase and the difference in him was incredible to see after even that first 19 day phase. He had proven to himself that he was able to overcome a challenge that he had perceived impossible at the time and come out the other side knowing more about himself.
He then completed his two remaining project phases as a key member of each team, giving all his energy and determination to each community, and motivating his team mates. He felt that the support he had received from his first phase Volunteer Managers and fellow Volunteers was so great that he wanted to thank them at the end of expedition and did so by showing a message he recorded whilst in the final community. It was an incredibly powerful message and made everything think about the journey they had been on whilst on expedition and how, as a whole group, they had each had a positive effect on others in their groups.
How do participants in the program contribute to sustainable change in the rural communities?
Becca: The volunteers contribute to sustainable change in the communities in two key ways, providing capacity to infrastructure development and engagement with the community. The projects we work on generally have an infrastructure element, be it construction of an Early Childhood Development Centre or school sanitation block, or digging and laying of water distribution pipeline. Here the volunteers work alongside member of the community and the local project partners to add capacity to that construction, and working to provide that much needed facility for the community.
The second element is probably the most important, the engagement of the community in the project. The project is never focussed solely on the infrastructure element, but is more holistic, looking at the reason for the need for it. For example, when doing a school sanitation block, the project will be aiming to achieve the objective of reducing illness amongst the pupils, causing reduced attendance to school. Therefore, it is important to not only provide the facility but also raise awareness of the cause of illness and good hygiene practices to prevent, including hand washing, with the school children.
What tips do you have for someone considering this program?
Becca: It seems like a big step to take and the idea of travelling across the world to live in rural Tanzania for 10 weeks can be a daunting one, but signing up truly is the hardest step. Once you arrive in country you are amongst a group of like-minded people in the same situation with the same hopes and fears. It will be an amazing 10 weeks and you will be making a valued contribution to the development of rural Tanzania communities.


text:
Diamond Gala
Celebrating 75 Years
As we enter our 75th season, we reflect on our proudest moments and look forward to the future. From the origins of the company, beginning in 1939, receiving our Royal Designation in 1953 and the opening of our internationally recognized Professional Division School in 1970, to the creation and presentation of bold new ballets such as Dracula, Moulin Rouge® - The Ballet and The Handmaid's Tale, we are thrilled to celebrate all that has been accomplished throughout our 75 years.
Your support to the Diamond Gala will enable the Royal Winnipeg Ballet to continue to present the highest standard of excellence in Canadian dance to communities across our country and around the world. It will also provide opportunities for aspiring young dancers to pursue their dream and achieve their potential as our future artists.
RBC Convention Centre - 375 York Ave
Saturday April 18, 2015
6:00 p.m. | Cocktail Reception
7:00 p.m. | Dinner and Performance
10:30 p.m. | After Party


text:
This property is unavailable.
This is the fee charged by Airbnb
This is the fee charged by Airbnb and includes VAT
1 cosy single bedroom in period house in sought after area of Ranelagh, aka the Village. All amenities, including restaurants, pubs, trams, buses, a few minutes walk. 20 min stroll along the canal or through Georgian Dublin to city centre.
Contact Host
Space where guests can cook their own meals
Towels, bed sheets, soap, and toilet paper
Central heating or a heater in the listing
In the building, free or for a fee
Continuous access in the listing
Breakfast is provided.
The listing can accommodate a gathering of 25 or more attendees
Easy access to the building and listing for guests in wheelchairs
Private or Shared
Free, in the building or nearby
Posted emergency information and resources
The Neighborhood
Its just about the best place to live in Dublin. Everything on your doorstep, including lovely restaurants, lively pubs, barista cafes, and 20 mins walk to St. Stephens Green, the main pedestrianised shopping area on the south side of the city.
Getting around
Take the aircoach from Dublin airport. Direction Doubletree Hotel.Cross the road, and walk up Appian Way. At the top of Appian way, turn left into village, and third road on right hand side is Ashfield Road. No. 93 is the first house on the right hand side beside the Italian restaurant. Approx. 12 minute walk from Doubletree Hotel.
No pets allowed. No smoking.
It was great to be there!
Mary was a warm and welcoming host who has made a comfortable and beautiful home. The suburb of Ranelagh is ideal to explore Dublin, with loads of cafes and conveniences on your doorstep. Staying with Mary gave me independence but it was also great to get advice from her and have a chat. It was a wonderful stay - highly recommended!
I had really pleasant time in this house. Mary is really polite and always ready to help you. The environment is warm and you feel like at home.
Diego was very pleasant. He did, however, to slam doors which people found a little unnerving but I think in time he will learn to close them more quietly. Best wishes
I had a lovely stay in Mary's house. She made me feel very welcome and was always super friendly, chilled and helpful. The location is absolutely perfect. The house is cozy, very homely, nicely decorated and the room is very private and bright and comfy. Many thanks Mary and Happy New Year :)
Thanks Della. Hope the wedding was a great success and those dresses just fitted beautifully!
Warm, comfortable, quiet, cozy room. Location fit my personal need very well. Just what I needed. Many nice restaurants (Tribeca), pubs (Smyths), apothecary, and grocery store (Tessco) less than one block distant. Did not really need nor use the pictured sitting/living room. Some guests/inhabitants not there, so bathroom facilities available when needed. Bathroom large, airy, bright, clean. Bus and LUAS stops were as describes. Taxis plentiful. Given same circumstances, I would recommend to others and request accommodations there myself again.
Really beautiful house, kept in pristine condition. Bedroom was cosy, very clean and also surprisingly warm, considering how cold it was outside.
The location is ideal and literally in the middle of Ranelagh Village, so its close to all the local amenities.
5 stars to Mary & her house :D I highly recommend Mary's place.
Am a fellow traveller. Love hot countries (so have to go travelling). Live in Dublin, and work in tourism. Have also lived in France and UK. I am a qualiafied tour guide and yoga teacher, and give private yoga classes and do walking tours of Dublin. Would be happy to share my knowledge of one or both subjects with airbnb guests.
Are you or your friends connected with this host?
You and Mary Learn More!
Mary has completed online and offline ID verification.
Learn more »
Thanks for taking the time to report this listing. Your participation helps keep Airbnb a safe and trusted community, and it doesn't go unnoticed!


text: Lecture 16 Operational Risk Management • A growing desire has emerged to organize the components of operational risk into what Hubner et al. (2003) call a "coherent structural framework" • Haunbenstock (2003) identifies the components of the operational risk framework as: • (i) strategy, • (ii) process, • (iii) infrastructure, and • (iv) the environment Strategy: • development of a risk management strategy; • development of risk management culture; • definition of management roles and responsibilities; • ensuring that an appropriate management and control structure is in place The risk management framework: Process • The process involves the day-to-day activities required to understand and manage operational risk, given the chosen strategy. • The process consists of • (i) risk and control identification, • (ii) risk measurement and monitoring, • (iii) risk control/mitigation, and • (iv) process assessment and evaluation. Process : Risk and control identification • Risk identification starts with the definition of operational risk to provide a broad context for potential threats • The best way to identify risk is to talk to people who live with it on a daily basis • The degree of risk is typically defined as frequency and severity, rated either qualitatively or quantitatively • Mestchian (2003) suggests a decomposition of operational risk into process, people risk, technology, and external risk • Then these risk can be identified as low, medium, or high in different business activities like in Table on the next slide, or with frequency or severity like in Figure 2, one slide next Risk identification Risk assessment of activities • a ORF : Process - Identification • Risk identification should also include monitoring of the external environment and industry trends, as new risks emerge continuously • (ii) Control identification • The identification of controls is part of the identification process, as it complements the identification of risk. • Controls include: – management oversight, – information processing, – activity monitoring, – automation, – process controls, – segregation of duties, – performance indicators – and policy and procedures The control framework defines the appropriate approach to controlling each identified risk (iii) Risk Mitigates • Risk mitigators include – training, – insurance programs, – diversification and – outsourcing • Insurance, which is a means of risk control/mitigation, is typically applied against the large exposures where a loss would cause a charge to earnings greater than that acceptable in the risk appetite • For the purpose of risk identification, the Federal Reserve System (1997) advocates a three-fold risk-rating scheme that includes (i) inherent risk, (ii) risk controls, and (iii) composite risk. • Inherent risk (or gross risk) is the level of risk without consideration of risk controls, residing at the business unit level • Inherent risk depends on (i) the level of activity relative to the firm's resources, (ii) number of transactions, (iii) complexity of activity, and (iv) potential loss to the firm • Composite risk (or residual risk or net risk) is the risk remaining after accounting for inherent risk and risk mitigating controls • The Federal Reserve System (1997) provides a matrix that shows composite risk situation based on the strength of risk management (weak, acceptable, strong) and the inherent risk of the activity (low, moderate, high) • For example, when weak risk management is applied to low inherent risk, the resulting risk is low/moderate composite risk • On the other extreme, when strong risk management is applied to high inherent risk, the composite risk will be moderate/high • Illustration is given in the figure on next slide The FRS's classification of inherent and composite risks • (iv) Risk measurement • As risks and controls are identified, risk measurement provides insight into the magnitude of exposure, how well controls are operating and whether exposures are changing and consequently require attention • The borderline between identification and measurement is not clear, however, Haubenstock (2003) identifies the following items as relevant to the measurement of operational risk • a. Risk drivers, which are measures that drive the inherent risk profile and changes in which indicate changes in the risk profile • These include transaction volumes, staff levels, customer satisfaction, market volatility, the level of automation • b. Risk indicators, which are a broad category of measures used to monitor the activities and status of the control environment of a particular business area for a given risk category. • The difference between drivers and indicators is that the former are ex ante whereas the latter are ex post • Examples of risk indicators are profit and loss breaks, failed trades and settlements and systems reliability • c. The loss history: which is important for three reasons: (i) loss data are needed to create or enhance awareness at multiple levels of the firm; (ii) they can be used for empirical analysis; and (iii) they form the basis for the quantification of operational risk capital • d.Causal models: which provide the quantitative framework for predicting potential losses. • These models take the history of risk drivers, risk indicators and loss events and develop the associated multivariate distributions. • The models can determine which factor(s) have the highest association with losses • e. Capital models, which are used to estimate regulatory capital as envisaged by Basel II. • f. Performance measures: which include the coverage of the self-assessment process, issues resolved on time, and percentage of issues discovered as a result of the self assessment process • (v) reporting • Reporting is an important element of measurement and monitoring • A Key objective of reporting is to communicate the overall profi le of operational risk across all business lines and types of risk. • There are two alternative ways of reporting to a central database as shown in Figure • One way is indirect reporting where there is a hierarchy in the reporting process, which can be arranged on a geographical basis. • Otherwise, direct reporting is possible where every unit reports directly to a central database • a • Reporting methods: • Checklists are probably the most common approach to self- assessment • Structured questionnaires are distributed to business areas to help them identify their level of risk and related controls • The response would indicate the degree to which a given risk affects their areas. • It would also give some indication of the frequency and severity of the risk and the level of risk control that is already in place • The narrative approach is also used to ask business areas • to define their own objectives and the resulting risks • The workshop approach skips the paperwork and gets people to talk about their risks, controls, and the required improvements • Lam (2003b) identifies two schools of thoughts with regard to quantitative and qualitative measures of risks • (i) the one believing that what cannot be measured cannot be managed, hence the focus should be on quantitative tools • and (ii) the other, which does not accept the proposition that operational risk can be quantified effectively, hence the focus should be on qualitative approaches • Lam (2003b) warns of the pitfalls of using one approach rather than the other, stipulating that "the best practice operational risk management incorporates elements of both". (vi) Risk control/mitigation • When risk has been identified and measured, there are a number of choices in terms of the actions that need to be taken to control or mitigate risk • These include (i) risk avoidance, (ii) risk reduction, (iii) risk transfer, and (iv) risk assumption (risk taking) • Risk avoidance can be quite difficult and may raise questions about the viability of the business in terms of the risk-return relation • A better alternative is risk reduction, which typically takes the form of risk control efforts as it may involve tactics ranging from business re-engineering to staff training as well as various less extensive staff and/or technical solutions. • Cost-benefit analysis may be used to assist in structuring decisions and to prevent the business from being controlled out of profit • a • a • a People issues • the relevant type and calibre of people are available; • there are adequate levels of training and development of the staff; • the staff have the skill levels that are appropriate to the tasks assigned to them Technology issues • adequate systems to support the various product lines; • systems are available for management information and reporting; • there is communication infrastructure to support the operation; • data warehouses that allow integration and consolidation of information and data across the organization; • tools and systems available for managing market risk across the organization • enterprise-wide credit monitoring and credit risk management systems. Themes in risk management framework • There are four fundamental themes that are critical for establishing and maintaining a comprehensive and effective risk management framework • 1 The ultimate responsibility for risk management must be with the board of directors. They need to ensure that organization structure, culture, people and systems are conducive to effective risk management. The requirements for risk management must be defined and established by those charged with overall responsibility for running the business • 2. The board and executive management must recognize a wide variety of risk types, and ensure that the control framework adequately covers all of these. As well as including market and credit risks, it should include operations, legal, reputation and human resources risks, that do not readily lend themselves to measurement • 3. The support and control functions, such as the back and middle offices, internal audit, compliance, legal, IT and human resources, need to be an integral part of the overall risk management framework • 4. Risk management objectives and policies must be a key driver of the overall business strategy, and must be implemented through supporting operational procedures and controls. • a • a • a • a • Operational risk can be minimized in a number of ways: Internal control methods consist of 1. Separation of functions – Individuals responsible for committing transactions should not perform clearance and accounting functions 2. Dual entries – Entries (inputs) should be matched from two different sources, that is, the trade ticket and the confirmation by the back office. 3. Reconciliations • Results (outputs) should be matched from different sources, for instance the trader's profit estimate and the computation by the middle office 4. Tickler systems • Important dates for a transaction (e.g., settlement, exercise dates) should be entered into a calendar system that automatically generates a message before the due date. • Controls over amendments: Any amendment to original deal tickets should be subject to the same strict controls as original trade tickets. External control methods consist of 1. Confirmations: Trade tickets need to be confirmed with the counterparty, which provides an independent check on the transaction. 2. Verification of prices: To value positions, prices should be obtained from external sources. This also implies that an institution should have the capability of valuing a transaction in-house before entering it. 3. Authorization: The counterparty should be provided with a list of personnel authorized to trade, as well as a list of allowed transactions. 4. Settlement: The payment process itself can indicate if some of the terms of the transaction have been incorrectly recorded, for instance, as the first cash payments on a swap are not matched across counterparties. 5. Internal/external audits: These examinations provide useful information on potential weakness areas in the organizational structure or business process. • a • a • a • a • a • a • a • a • a • a • a • a • a • a • a • a • a • a • a • a • a • a • a • a • a


text:
Arag आरग |
town | |
Location in Maharashtra, India | |
Coordinates: 16°47′N 74°48′E / 16.78°N 74.80°ECoordinates: 16°47′N 74°48′E / 16.78°N 74.80°E | |
Country | India |
State | Maharashtra |
District | Sangli |
Languages | |
• Official | Marathi |
Time zone | IST (UTC+5:30) |
Telephone code | 0233 |
Vehicle registration | MH-10 |
Arag is a town in Sangli district in the Indian state of Maharashtra. Arag is located in Miraj tahsil. Arag 17.90 km far away from tahsil Miraj and 26.10 km from Sangli. All type of primary needs, services like hospital, education etc. are available here.[citation needed] Nearest villages are laxmiwadi, shindewadi, shipur, bedag, lingnur, narwad, payappachiwadi, vyankochiwadi.
Population of the town is approx 20,000.[citation needed] a big building of gram sachiwalaya is recently constructed in the arag. a well developed project of krishna-koyana valley project, mhaisal
Business and economy[edit]
Farming is a main occupation in Arag. 75 percent people are farmer's. Arag is famous for its progressive farming and farmers.[citation needed] Best cultivated farms producing sugar cane, paan mala, jwari, turmeric etc. Entire crop of sugar cane is sold to the sugar factory like Mohanrao Shinde sahkari sakhar karkhana Ltd. Mohannagar, Arag, Vasantdada sahkari sakhar karkhana, Madhavnagar, Sangli etc. Arag is a leading grape and sugar cane producer town in Sangli.
Arag is also famous for "Pan" (Beetel Leaves), you can see acres of Panmala's (Pan Growing Fields) in and around Arag, it's like an Open greenhouse. These pans are sent across India, major to Gujarat, Andhra Pradesh, Mumbai, etc. Throughout India these are called as POONA PAN.
Arag is considered as the business centre in eastern part of MIRAJ, located just 6 km from Karnataka Border
- Z.P. Boys School,
- Z.P. Girls School
- Kanyashala
- English madium school
- Arag Highschool Arag and Junior college of arts, commerce and science
- Guruprasad adhyapak vidyalaya
Places of Worship[edit]
Town has temples of lord Ganesh, Vitthal, Yallamma devi, Mahadev (One Built in recent years and one ancient), Maruti etc. for worship of god and goddess. Arag town also known for Yallamma Devi's yatra. Many people visit the town on January 26 every year during the yatra (Annual Pilgrimage) of goddess Yallamma devi.[citation needed]
It is said that people of Arag tried to uplift or shift the old Mahadev Pind (Shiv Ling) to new location but they couldn't as the Shiv Ling was unmovable. So you can visit two Mahadev mandirs in Arag.
Arag do have a large Jain community both Digambar and Shwetambar, It has an Ancient Digambar Jain mandir built more than 1000 years ago, they say this mandir was built by Daitais in pre historic era. Now due to negligence of Archeological department the local community has started to restructure it. A thorough Jain should visit and have darshan of the "Parshwanath" there, if you do 108 pradakshinas all your wish comes true and fulfilled.
- Mumbai - 403 km
- Pune - 254 km
- Kolhapur - 58 km
- Satara - 129 km
- Solapur - 186 km
- Belgaum - 108 km
- Sangli - 24 km
- Miraj - 18 km


text:
A rondel depicting God creating Adam from clay from Hartmann Schedel's The Book of Chronicles, or in German Das Buch der Chroniken (1493).
Listen to the latest episodes of CHF's award-winning science podcast.
Help us preserve and share the history of chemistry and related sciences. Make a tax-deductible donation online.


text:
This home has beautiful views of the opening of Buck Creek, along a quite road only two houses from
the mouth of the canal, featuring a private seawall to dock your boat. This home is very close to the Intercoastal Waterway and is minutes to Stump
Pass and Boca Grande.
Restuarants, tiki bars and beaches are water or land accessible and only a short distance from this
Englewood Beaches and Boca Grande beaches short distance from property.


text:
Tony Benn
1 of 21 portraits of Tony Benn
Tony Benn
by Mark Boxer
ink and coloured crayon, 1970s
14 in. x 10 in. (356 mm x 254 mm)
Purchased, 1987
Primary Collection
Click on the links below to find out more:
Sitterback to top
- Anthony Wedgwood ('Tony') Benn (1925-2014), Politician; Chairman of the Labour Party. Sitter in 21 portraits.
Linked publicationsback to top
- Saywell, David; Simon, Jacob, Complete Illustrated Catalogue, 2004, p. 49


text:
This 1,662 square foot townhome was constructed in 1995. It is located very close to the Peak 9 base area and the high-speed Quicksilver Super 6 chairlift. This spacious, 3-level townhome sleeps 7-9 very comfortably and privately with contemporary mountain decor. The master suite, located on the top level, contains a king-sized bed, a private bath and a cozy sitting area. The main level consists of the living room with a gas fireplace, a queen sleeper sofa, fully-equipped kitchen, breakfast bar and dining room. A large private deck with a six-person hot tub completes this level. The lower level has a second master bedroom with a queen-sized bed and a private bath. It also has another bedroom with bunk beds, a twin bed and a bath. This level contains the laundry facilities. There is a TV, DVD/VCR, CD player and surround sound amp in the living room and each bedroom has a TV and DVD/VCR player. The unit has a collection of movies and board games and high-speed Wi-Fi internet service. There is a humidifier in each bedroom and also one for the main living area. This townhome comes with a one-car garage and ski/boot storage. The attractive, modern kitchen is fully-equipped with appliances, cooking utensils and dinnerware. The Village Point Townhomes are located on Broken Lance Drive, near the south end of town. They are located close to the Peak 9 Base, only a seven minute walk to the Quicksilver Super 6 Chairlift and a five minute walk to the quaint shops and restaurants of historic downtown Breckenridge. The free shuttle bus stops at the entrance to Village Point.
VisitBreck is the largest vacation home management company in Breckenridge – created from a partnership between Breckenridge's premier luxury home builder, Pinnacle Mountain Homes, and the oldest and most respected rental management company in the area. With 100+ years of combined experience, we manage over 100 properties with the largest inventory of private home rentals in Breckenridge. In short, we are redefining expectations for vacation home management in Breckenridge.
Village Point is excellent for a group, as you can comfortably fit enough people to make the per person cost very low for a house in walking distance from Peak 9 (in snowboard boots, probably not ski boots).
The place was clean and spacious, the staff was helpful when needed, the hot tub is new and large, and the appliances are all up to date and functional. Bring an a/V cable if you wish to use an iPod in the surround sound system.
Payment is usually accepted in the quoted currency (US Dollar) unless the currency and the amount is specifically agreed in advance with the owner / advertiser.


text:
Webster City, IA Pet Friendly Hotels & Lodging
United States » Iowa » Webster City
Looking for a hotel in Webster City, IA that you can bring your pet to? We made sure that each one of the hotels below are pet friendly, so you can enjoy your trip with your pet by your side! Once you have found a pet friendly hotel, you can book your stay instantly from our website or call 866-212-1803 to speak with a pet travel agent.
Browse Pet Friendly Hotels In Webster City, Iowa
Rates from
1700 Superior St - Webster City, IA (Map)
Executive Inn Webster City is located in Webster City.Rooms Make yourself at home in one of the air-conditioned guestrooms. Bathrooms with bathtubs are provided. Conveniences inclu...
Rates from
305 Closz Dr - Webster City, IA (Map)
Super 8 Webster City Ia is located in Webster City.Rooms Satellite television is provided for your entertainment.Rec, Spa, Premium Amenities Enjoy the recreatio...


text:
Tanaka Authorized Substitution The part number 745110 has been changed to part number TA745110. While the new part may look different, this is a Tanaka approved substitution. Please note that the price and availability shown is for the new part number TA745110. |
Discontinued Part number TA745110 has been discontinued by Tanaka. We apologize for the inconvenience. |
Brand | Tanaka |
Old Part Number | 745110 |
New Part Number | TA745110 |
Condition | New |


text:
jGuru Forums
Posted By: Jagabandhu_Padhy Posted On: Friday, July 8, 2011 06:48 AM
I want to send a email with voting options like Yes, No
I am using Microsoft outlook for sending and receing mail. By, using Javamail, I am able to send email and is working fine. I want voting button like Yes, No. By, using javamail how can I send email with voting option. Can anybody help giving example or, method to refer or, anyother way to do. Thanks, Jagabandhu
Re: How to send email with voting button
Posted By: Christopher_Koenigsberg Posted On: Saturday, July 23, 2011 01:59 PM


text: Coach Deck Basketball Card Drills Code: BBALLDECK Price: $19.95 Weighted Agility Gloves with Tim Grover DVD Code: WAGCOMBO Price: $79.95 Hypergravity Weight Belt with 20 lb. - (2) 5lb. + (5) 2lb. Code: WEITBELT20 Price: $124.95 Stretch N Strength Flex Bands Set of 4 - 2 Low (Lvl 3) + 2 Med (Lvl 4) Elastic Resistance Ban Code: JSTRETCH4 Price: $129.95 Out Of Stock Naypalm Hand Palm Button Football Pass Catching Aids (Pair) Code: NAYPALMFB Price: $19.95 Vertec Vertical Jump Training Measurement Equipment Code: VERTEC Price: $599.95 Aquatic Deep Water Resistance Jogging Shoes for Running in Pool Code: AQXM Price: $79.95 Jumpsoles Explosive Speed Program + Deluxe CDROM Code: JCOMPLEXPLUS Price: $29.95 Speed Parachute - Pack of 2 Code: SPEEDCHUTE2 Price: $99.95 Out Of Stock 2 lb Heavy Weighted Jump Rope Code: HEAVYROPE2 Price: $39.95


text:
Hewlett Packard (NYSE:HPQ) is the world's largest provider of software, information technology infrastructure, services, and solutions to individuals and organizations. The company earns 70% of revenues from its infrastructure products. Hewlett Packard is one of the market leaders in PCs, imaging and printing, industry standard servers, and across key enterprise infrastructure segments.
All over the world, Hewlett Packard offers a variety of comparable and quality products with affordable prices. I believe that its customers are loyal and like the variety of its new models.
Economic Analysis
From my point of view, economic growth will accelerate to the great extent in 2012. The potential growth of California is under pressure, and productivity gains are necessary in order to raise potential growth of United States. Further, real estate debts continue to weigh on bank balance sheets. The global economy slowed at the end of 2011, but various emerging economies will lead the rebound in the second half of 2012. Sustained financial tensions have been pushed toward Europe into recession. I believe that growth gap with United States will widen in coming two years while the employment position has been improved gradually.
Financial Analysis
I believe that the company has strong financial position in the market. According to April 2012, total assets of Hewlett Packard are amounted to $127.6 million as compared to $129.5 million of October 2011. Total current assets and current liabilities are amounted to $49.6 billion and $42.7 billion, respectively. The company has increased shareholder's equity in April 2012 amounted to $41.2 million, compared to October 2011 amounted to $38.6 million.
Further, net earnings amounted to $3.06 billion as compared to $4.9 billion figure of April 2011. Basic earnings per share decreased in April 2012 to $1.55 from $2.27 of 2011. Diluted earning per share is also decreased from $2.23 to $1.53.
Moreover, net earnings reached $1.59 billion in April 2012. The negative balance of cash flow from investing and financial activities in April 2012 reached $1.26 billion and $1.0 billion, respectively. The positive balance of cash flow from operating activities is amounted to $2.4 billion. The cash and cash equivalent at the end of April 2012 reached $8.3 billion.
Trading at a P/E ratio of 7.3 and a forward P/E ratio of 4.1, Hewlett Packard is quite cheap for its size. Both price-to book (0.9) and price-to sales (0.3) ratios crush their industry averages. Based on its indicators, the tech company has a B Grade O-Metrix score of 7.34. (For more information on O-Metrix calculations, please click here.)
Sector analysis
I believe that the IT & computer hardware is growing field. There are a lot of business opportunities are available in this sector, but competition has also been increased to the great extent. U.S is an excellent future market for computers due to increased and available resources. The company is a leading provider of computer hardware in all over the world. As the American economy is begins to stabilize in 2012, I believe that the future of Hewlett Packard and computers in general is also growing.
Competitor analysis
Hewlett Packard encounters aggressive competition in all areas of its business activity. It competes on the basis of performance, technology, quality, price, brand, reliability, distribution, reputation, account relationships, range of products and services, support and services, and security. HPQ's competitors comprise of Computer Science Corporation (NYSE:CSC), International Business Machines (NYSE:IBM), and Dell (NASDAQ:DELL). Dell is a growing provider of services which support its products. Several competitors are able to provide a wide range of global services while other enjoys significant brand recognition. The comparison of Hewlett Packard's financial ratios with Dell, IBM, and Computer Science Corporation is as follows:
Company | HP | Dell | IBM | CSC |
Earnings Per Share Basic Earnings Per Share Diluted | $ 3.38 $ 3.32 | $1.36 $1.35 | $ 13.25 $13.44 | $4.57 $0.22 |
Current Ratio | 1.01 | 1.02 | 1.20 | 1.07 |
Gross profit ratio | 18.5% | 12.34% | 49.9% | 14.12% |
Net income ratio | 5.56% | 4.09% | 18.6% | 4.73% |
Note: These figures are based on the results of 2011 annual reports of companies.
In summary, the future of Hewlett Packard is growing as it has in the past. The company is providing more comparable and quality products to its current and potential customers in order to keep up with global competition. The financial position of the company is also going to the right direction according to the figures of previous years. It is concluded from various years' financial analysis that Hewlett Packard has sustained its financial as well as recognizable market position. Therefore, in my point of view, it will not harmful to invest in this company because of its strong current ratio or asset's position. In addition, I believe that Hewlett Packard has good financial position as compared to Dell and Computer Sciences.
Disclosure: I have no positions in any stocks mentioned, and no plans to initiate any positions within the next 72 hours.


text:
Sunday Dinners
Use Herbs with Abandon (with a Little Help from Tom's 5 Herb Tips)
There's no reason not to grow your own fresh herbs and use them generously (with help from Tom's 5 Herb Tips).
Read More »Please enter a quantity larger than 0. | ||
Sorry, this item is currently out of stock.
Notify me when it's back. Submit Thanks! We'll email you when it's available again. |


text:
Best Non-Traditional Ways To Cook A Turkey
Think outside the oven this Thanksgiving with these non-traditional ways to cook your turkey main dish.
In the Kitchen: Calamari Cakes in Bibb Lettuce Cups
These are an interesting variation on crab cakes, made interesting by the bite and texture of calamari. There is a bit of heat in the mix and in the sauce, but this can be adjusted to taste.
In the Kitchen: Turkey, Mushroom and Avocado Benedict
Regular Eggs Benedict is so "been there, done that." Mix it up a bit with this recipe that involves turkey, mushroom and avocado.
In the Kitchen: Thai Seafood Stew
Like spicy? Like seafood? Like stew? Look no further!
In the Kitchen: Coq au Vin
This recipe yields chicken stewed in red wine with mushrooms and onions.
Fried Sea Scallops Recipe From The "School Of Fish" Cookbook
Winter is coming and along with it scallop season. Try Ben Pollinger's recipe for fried sea scallops.
3 Recipes For Delicious End Of Summer Meals
Summer is a delicious season of fresh produce, outdoor cooking and refreshing treats.
Best Cookbooks For Cooking in College
Worried that sending your kid off to college means their diets will consist of boxed meals or ramen? Is your son or daughter moving into their first off-campus apartment and far away from dining halls? Our sister company, Simon & Schuster serves up some college-appropriate cookbooks designed to make cooking easy and even fun for your kids after they've fled the nest.
8 Things You Need For an Epic Summer
Gear up for an epic summer with these must-have essentials, brought to you by CBS Local's Eat. See. Play.
Alta Editions' Five Best E-Cookbooks For Your Kitchen
Alta Editions has pulled together a gourmet list of e-cookbooks from some of the top chefs and food photographers on the internet.


text:
Article Preview
Malware may knock thousands off Internet on Monday
Published 07/05/2012, Associated Press
Despite repeated alerts, tens of thousands of Americans may still lose their Internet service Monday unless they do a quick check of their computers for malware that could have taken over their machines more than a year ago.
Word count: 630Log In
The full article is available to newspaper subscribers. If you are a subscriber please log in to continue reading.


text:
Although Basenotes strives to ensure that all of the reviews that appear on the site follow the review guidelines, occasionally one or two reviews may slip through the net.
Thank you for your help in making the site a more enjoyable experience
Your Name Your Email
This is also my favourite from the 'Delicious' range. Its is mysterious and 'warm'. I don't find it to be a very heavy scent with my body chemistry. To be honest, I have had this scent a few years and forgot that I had it but rediscovering it again has been great. Definitely my typical scent - warm and comforting!
05th August, 2012