A portion of the disclosure of this patent document 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 but otherwise reserves all copyright rights whatsoever.
The present invention is directed to technology for interfacing with web services and automatically generating portlets and displays of web service content.
As understood by those skilled in the art, web services can be implemented as software components that provide content and/or functionality to remote web applications via the Internet. Remote applications can submit requests for information to web services and receive content in return. Similarly, applications can pass data to web services in the form of “operations” to be processed by web services, wherein a result is returned from the web service to the application. Web service content can be passed to a client of the application where it can be displayed, processed, or otherwise utilized. Such arrangements allow application developers to leverage the functionality provided by web services without requiring the duplication of the functionality to be provided locally in an application.
Unfortunately, the interfacing of web applications with web services can be a cumbersome process. Application developers may be unfamiliar with the particulars of web service protocols, conventions, and/or XML descriptors that can be used to communicate with web services. Developers may also be unfamiliar with how to create client-accessible web service content displays. If developers do not possess the expertise to accomplish these lower-level tasks, they can be forced to devote unreasonable time and effort away from their field of expertise, namely application development.
In view of the above, it is desirable to provide an automated way for developers to interface applications with web services. It is further desirable to provide an automated way to display web service content to clients. The present invention, roughly described, provides for automatic generation of a portlet user interface. In certain embodiments, generated code facilitates user interaction with web services. In other embodiments, a wizard-style interface facilitates the setup of portlets and web service displays.
Business platform 130 is an electronic business platform, such as WEBLOGIC PLATFORM™ 7.0 available from BEA Systems, Inc. of San Jose, Calif. Business platform 130 is capable of hosting one or more enterprise applications 140 which provide services to client 150 over network 110. Enterprise application 140 can include one or more web applications 145. In one embodiment, business platform 130 is implemented on a web server which implements JAVA™ 2 Platform, Enterprise Edition (J2EE) version 1.3, available from Sun Microsystems, Inc. of Santa Clara, Calif.
Control center 120 is a software component capable of configuring business platform 130. Wizard interface component 125 is integrated into control center 120 and provides a wizard-style interface that facilitates the setup of web service 155 to be interfaced with application 135 and displayed to client 150. In various embodiments, wizard 125 facilitates the generation of portals and/or portlets and the integration of the same. In various embodiments, data can be synchronized between control center 120 and business platform 130. As a result, control center 120 can operate as a swing application, capable of configuring multiple business platforms, without requiring control center 120 to be in communication with the business platforms/servers during configuration.
Web service 155 is a web service as understood by those skilled in the art. Web service 155 can be implemented as a software component that can be invoked by one or more operations across the Internet. For example, web service 155 can receive a stock quote request from an enterprise application such as application 135 and return the requested information back to application 135. Thus, application 135 can utilize the functionality of web service 155 remotely over network 110 without having to duplicate the same services locally within application 135.
Enterprise applications can communicate with web services using one or more of an emerging group of standards that govern their description and interaction. The Simple Object Access Protocol (SOAP), which uses a combination of XXML-based data structuring and the Hyper Text Transfer Protocol (HTTP) to define a standardized method for invoking methods in objects that are distributed in diverse operating environments across the Internet. The Universal Description, Discovery, and Integration (UDDI) project provides a structure for XML-based online business registries where businesses register and advertise their web services. The project creates a platform-independent, open framework for describing services, discovering businesses, and integrating business services using the Internet. The Web Services Description Language (WSDL) is an XML language that is used to describe a web service and to specify how to communicate with the web service.
Referring to
Portals can provide access to information networks and/or sets of services through the World Wide Web or other computer networks. These networks can range from broad interconnections of computing systems such as the Internet to localized area networks including a few computers located in close geographic proximity such as a home or office. Portal applications can include web applications designed as a portal.
Portlets can be implemented as java server pages (JSP's) with XML-based metadata that fit into a portal. Portlets can utilize various types of display code to display highly focused information directed to a specific user or user group, having a portal as its container. Portlets are comprised of portlet components which include portlet attributes (i.e. whether the portlet is editable, floatable, minimizable, maximizable, helpable, mandatory, has defaults minimized, or whether login is required) and portlet layout elements or components (i.e. banner, header, content, and footer sections). In one embodiment, a portlet is defined by a file that contains a portlet's XML-based metadata, which is created and edited by control center 120. Portlets can also be associated with portlet resource files including stub JSPs (one for each portlet layout element) and image files created and saved to a local file system by wizard 125 of control center 120. In one embodiment, portlet resource files do not include the portlet definition itself or a file implementing webflow, as further described herein.
In accordance with one embodiment of the present invention, wizard 125 automates the creation of a portlet and reduces the number of steps otherwise needed for portlet creation. In the simplest case, a developer can create a new portlet without providing any input and simply accept default values. Wizard 125 includes the ability to create a portlet that consumes a web service 155. This allows developers to discover a web service and generate a portlet JSP implementation that can interact with the web service. In one embodiment, the generated code provides a default HTML form for entering input parameters, and a default HTML output of the results of the service invocation. In another embodiment, when project data from control center 120 is synchronized with business platform 130, the JSP files that constitute a portlet are synchronized as well. In another embodiment, the information entered into wizard 125 is stored as variables in a wizard framework that persist until the portlet created with wizard 125 is saved. Wizard 125 can be implemented using software compliant with J2EE.
In accordance with another embodiment of the present invention, wizard 125 automates the creation of a portal and reduces the number of steps otherwise needed for portal creation. Wizard 125 provides the ability to create a working portal resulting in a client-side file structure including all portal related J2EE and control center files required on the client-side. Wizard 125 can extract J2EE files including JSP's, html files, images, etc. from a user selected template and save them in a user selected location; modify various XML files as needed; and create and save the necessary portal, portlet, and webflow definition files into the control center “project” directory structure. Wizard 125 can be implemented using software compliant with J2EE.
Referring to
Portlet Generation
In step 420, wizard 125 displays a portlet name screen to the user.
In step 425, wizard 125 displays a portlet components screen to the user, allowing the user to specify the components to be displayed in the new portlet. For example, in one embodiment, portlets can include a titlebar, banner, header, footer, help page, and content.
In step 430, wizard 125 displays a portlet content types screen to the user, allowing the user to specify whether the portlet will be implemented as a basic portlet, webflow-enabled portlet, or web service-enabled portlet.
In contrast, webflow-enabled portlets can implement logic to switch to alternate page views, but do not provide web service content. For webflow-enabled portlets, separate content files are linked to each other and a webflow file is generated which describes the logic linking the pages together. In one embodiment, webflow-enabled portlets created by wizard 125 permit portlets to switch between exactly two page views.
Web service-enabled portlets can display web service content. In various embodiments, such portlets can permit clients to input data to be sent to web services as operations. If the user selects web service content, then the method proceeds to step 435 where the steps of
In step 440, wizard 125 displays a resource files location screen, allowing the user to specify where generated portlet files can be stored, such as a path on the user's local computer which is running control center 120.
In step 445, wizard 125 displays a summary screen, allowing the user to view a list of portlet resource files (including their locations) to be generated in response to the data provided to wizard 125 in the preceding steps. In various embodiments, the list can be copied to a “clipboard” and/or printed.
When the user clicks the “NEXT” button on the Summary screen, wizard 125 closes and files for the new portlet can be created and/or modified (step 450). In one embodiment, template JSPs and a template portlet definition are modified with configuration information supplied to wizard 125 by the user. In other embodiments, the steps of
In step 455, a next steps screen is displayed that confirms the successful creation of a portlet and provides the user with options for tasks they are likely to perform next. These can include, but are not limited to: editing the definition of the previously selected portal, editing the definition of the generated portlet, or reading documentation for related tasks.
If the user decides to edit the portlet definition, a portlet editor is launched (step 465), allowing an XML-based portlet definition to be edited. In one embodiment, portions of the portlet definition relating to web services are not edited with the portlet editor. If the user chooses to edit the portal definition, a portal editor is launched (step 470), allowing an XML-based portal definition to be edited. For example, the portal definition can be edited to identify which portlets are assigned to the portal page. In various embodiments, the portlet and/or portal editors can be swing-based editors, wherein the user edits the portal and portlet definitions (i.e. edit portal attributes) by interacting with dialog boxes. If the user chooses to read documentation for related tasks, portlet documentation is opened (step 460).
In step 515, server-side proxies can be generated to allow application 135 to communicate with web service 155. The proxies, such as proxy java code, can serialize and deserialize SOAP messages exchanged between a web service and the generated portlet. The proxies can be generated by proxy generation facilities of business platform 130 using a WSDL file (often referred to as “a WSDL”) for web service 155. It is contemplated that various proxy generation methods can be used, as known and understood in the art. In one embodiment, a proxy generator such as Apache™ Axis, available from The Apache Software Foundation™ of Forest Hill, Md., can be used (Apache™ and The Apache Software Foundation™ are trademarks of The Apache Software Foundation™). In other embodiments, proxy generation can be performed by a proxy generator included within business platform 130. In an alternate embodiment, proxy generation step 515 can be skipped in favor of allowing application 135 to communicate with web service 155 using XML and XSLT transforms.
In step 520, a generated code types screen is displayed which allows the user to select from several methods of generating portlet JSP files. In various embodiments, form-based generation, web service all-based generation, and web service interface methods are available.
Form-based generation creates portlet JSPs from portlet JSP templates (or “forms”). The resulting JSPs provide a portlet capable of calling web service operations based on parameters entered into wizard 120. If form-based generation is selected, wizard 125 can display a description and example of the output of form generation. A portlet having a form field for the user to pass data to a web service can be created.
Web service call-based generation creates portlet JSPs from portlet JSP templates. However, the resulting JSPs provide a portlet capable of calling web service operations based on parameters inserted into the JSP code by a user at a later time. For example, JSPs can be created with parameters having “_REPLACE_ME_” dummy values that a user subsequently replaces with actual values. In various embodiments, the replacement values of these parameters can also be retrieved from a client request, session, and/or client profile. If web service call generation is selected, wizard 125 can display a description and example of the output of the web service call generation below a drop-down menu.
Web service interface-based generation creates portlet JSPs which implement any number of web services with any number of web service operations. In various embodiments, JSPs created by this method can be further modified by developers. For example, a developer may want to chain two web services by passing the output of a first service to a second service. Using interface-based generation, the developer can modify the necessary JSPs to establish the chain.
In step 525, a web services selection screen is displayed which allows the user to select available web services and operations for use in the generated portlet. In certain embodiments, if form-based generation or call-based generation was selected in step 520, only one web service and one operation may be selected. Alternatively, if interface-based generation was selected, then the user can select multiple web services, and need not select any operations (all operations for the Web services can be automatically included). In one embodiment, the lists of web services and operations shown by wizard 125 can be created from a directory of WSDL files.
If a user desires to edit the list of web services (step 530), an add/remove web services screen can be displayed where the user can add or delete web services.
A preview of code to implement the portlet can be generated (step 540) and displayed to the user with a code preview screen (step 545). In one embodiment, the user can edit the previewed code and substitute actual values for any variables shown in the code. Additionally and/or alternatively, the user can perform full text editing of the previewed code, employ code completion methods as known in the art, and view the code in a syntax-colored format. In various embodiments, the code displayed in step 545 can, but need not, be validated.
If web service call-based generation is selected, the method proceeds to step 625 where a portlet template is accessed (step 625) and modified in accordance with the web services information previously determined by wizard 125 (step 630). In step 635, dummy values are inserted for parameters to be passed during web service operations. These parameters can later be replaced by the user with actual values if desired (step 640).
If web service interface-based generation is selected, the method proceeds to step 645. A portlet template can be accessed (step 645) and modified by the user to implement any number of web services with any number of web service operations (step 650).
Portal Generation
In step 1130, wizard 125 displays a portal name screen to the user.
In step 1135, the user decides whether or not to create anew web application. A “NEW” button is provided within the portal name screen of
If the user does not select the “NEW” button to create a new web application, the method moves to step 1145 where a pre-existing web application can be selected. The web application field of the portal name screen in
After entering a new portal web application name in step 1140 or selecting a web application in step 1145, the method moves to step 1150 where wizard 125 displays a portal template screen. The portal template screen allows the user to select a portal template on which to base the portal.
A template can be a JAR file or a set of directories that contain control center portal information and J2EE portal information. A template can include a portal definition, portlet definitions, an Ant (a Java-based build tool available from The Apache Software Foundation™ of Forest Hill, Md.) build file or other build file, JSP's, images such as GIF files, and other files for portal generation. The following contents can appear inside an exemplary template JAR file (e.g. “myPortalTemplate.jar) or set of directories: a template.xml file; a template.properties file; a templatelcon.gif file; any additional resources needed by the template; and directories containing any resources needed by the template including JSPs, images, libs, and other directories.
After selecting a portal template, the method moves to step 1155 where wizard 125 displays a resource files location screen to the user, allowing the user to select a location in which to store resource files.
After selecting a resource files location, the user selects “CREATE” to begin generation of the resource files. In one embodiment, the resource files are generated using Ant. Other build tools can also be used, as known and understood in the art.
In step 1160, wizard 125 displays a summary screen, allowing the user to view a list of portal resource files (including their locations) generated in response to the information provided to wizard 125 in the preceding steps. In one embodiment, the list can be copied to a “clipboard.”
In step 1165, wizard 125 displays a next steps screen, allowing the user to select deployment options for the web application created by the wizard in the preceding steps. The user can select between a hot deploy option and a normal deploy option. Additionally, hyperlinks are provided to documentation regarding hot deployment and normal deployment, as well as to instructions on how to manually deploy the portal web application created in the preceding steps, should the user choose the normal deployment option. A link can be provided to information regarding adaptation of the portal to a user's needs. The user is also presented with the option of viewing the portal definition after selecting “DEPLOY.”
During deployment, configuration information required for proper use of the web application is supplied to the application server. If normal deployment is selected by a user, the user manual deploys the web application. The user can follow instructions for manual deployment by clicking the provided hyperlink to view the instructions. In a manual deployment, the server is stopped in order to provide configuration information for the web application to the server. After the configuration information has been provided, the server can be restarted. If hot deployment is selected, the web application generated by wizard 125 is deployed while the server is running and without manual deployment by the user. If not already connected to a server, wizard 125 can prompt the user to connect to a server. A default server can be determined and presented to the user for selection using the server specified in the control center project.
In step 1170, wizard 125 displays a hot deployment status screen if the user selected the hot deployment option in step 1165. The hot deployment status screen can display the status of the deployment.
In step 1320, appropriate user screens are displayed and portal configuration information is received from user inputs. In one embodiment, the appropriate user screens are displayed and the portal configuration information is received as illustrated in steps 1130 to 1155 of
In step 1330, a build file is prepared. In one embodiment, the build file can include XML. In another embodiment, the build file is a template Ant XML build file modified according to configuration information input by the user into the wizard. As previously discussed, each template includes an Ant XML build file or other build file. The build file can contain configuration information as XML based meta-data that a builder program can access in order to copy, modify, create, and/or move files in order to generate a portal. The build file (e.g. template.xml) can contain information that specifies: what files to copy in the build process; where the J2EE resource files are to placed; where the set of control center files is to be placed; a template version number and type (e.g. domain template, portal template, etc.); template name; description (for display in wizard 125); the replacement, filtration, and/or substitution of certain strings, variables, or information within certain template files with other strings, variables, or information (e.g., substitute the user entered display name for the stock display name in “web.xml”); optional summary text to display at the end of the wizard; as well as other instructions or information to be used in the portal generation. The information entered by the user and gathered by the Wizard can be used to modify the Ant XML build file included within a template so that Ant can build and compile the appropriate project.
In step 1340, a portal is built. In one embodiment, the portal is built by copying and configuring files from a template with information input into the wizard by the user. As part of the build copying and/or modification can be carried out in accordance with the information included within the build file. For example, the modified Ant build file can specify that the default portal name be replaced with the name entered by the user in step 1130 during the generation process.
The foregoing description of preferred embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations will be apparent to one of ordinary skill in the relevant arts. For example, steps performed in the embodiments of the invention disclosed can be performed in alternate orders, certain steps can be omitted, and additional steps can be added. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, thereby enabling others skilled in the art to understand the invention for various embodiments and with various modifications that are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims and their equivalence.
One embodiment may be implemented using a conventional general purpose or a specialized digital computer or microprocessor(s) programmed according to the teachings of the present disclosure, as will be apparent to those skilled in the computer art. Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art. The invention may also be implemented by the preparation of integrated circuits or by interconnecting an appropriate network of conventional component circuits, as will be readily apparent to those skilled in the art.
One embodiment includes a computer program product which is a storage medium (media) having instructions stored thereon/in which can be used to program a computer to perform any of the features presented herein. The storage medium can include, but is not limited to, any type of disk including floppy disks, optical discs, DVD, CD-ROMs, microdrive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices, magnetic or optical cards, nanosystems (including molecular memory ICs), or any type of media or device suitable for storing instructions and/or data.
Stored on any one of the computer readable medium (media), the present invention includes software for controlling both the hardware of the general purpose/specialized computer or microprocessor, and for enabling the computer or microprocessor to interact with a human user or other mechanism utilizing the results of the present invention. Such software may include, but is not limited to, device drivers, operating systems, execution environments/containers, and user applications.
The present application claims the benefit of the filing date of U.S. Provisional Patent Application No. 60/376,913, filed May 1, 2002, incorporated by reference herein. The following applications are cross-referenced and incorporated herein by reference: U.S. patent application Ser. No. 10/377,865, entitled “PORTAL SETUP WIZARD,” filed Feb. 28, 2003.
Number | Name | Date | Kind |
---|---|---|---|
5173939 | Abadi et al. | Dec 1992 | A |
5237614 | Weiss | Aug 1993 | A |
5347653 | Flynn et al. | Sep 1994 | A |
5355474 | Thuraisngham et al. | Oct 1994 | A |
5369702 | Shanton | Nov 1994 | A |
5426747 | Weinreb et al. | Jun 1995 | A |
5481700 | Thuraisingham | Jan 1996 | A |
5544322 | Cheng et al. | Aug 1996 | A |
5557747 | Rogers et al. | Sep 1996 | A |
5627886 | Bowman | May 1997 | A |
5797128 | Birnbaum | Aug 1998 | A |
5825883 | Archibald et al. | Oct 1998 | A |
5826000 | Hamilton | Oct 1998 | A |
5826268 | Schaefer et al. | Oct 1998 | A |
5848396 | Gerace | Dec 1998 | A |
5867667 | Butman et al. | Feb 1999 | A |
5872928 | Lewis et al. | Feb 1999 | A |
5889953 | Thebaut et al. | Mar 1999 | A |
5918210 | Rosenthal et al. | Jun 1999 | A |
5950195 | Stockwell et al. | Sep 1999 | A |
5966535 | Benedikt et al. | Oct 1999 | A |
5966707 | Van Huben et al. | Oct 1999 | A |
5987469 | Lewis et al. | Nov 1999 | A |
5987611 | Freund | Nov 1999 | A |
5991877 | Luckenbaugh | Nov 1999 | A |
6005571 | Pachauri | Dec 1999 | A |
6006194 | Merel | Dec 1999 | A |
6029144 | Barrett et al. | Feb 2000 | A |
6029182 | Nehab et al. | Feb 2000 | A |
6055515 | Consentino et al. | Apr 2000 | A |
6055637 | Hudson et al. | Apr 2000 | A |
6058392 | Sampson et al. | May 2000 | A |
6073242 | Hardy et al. | Jun 2000 | A |
6083276 | Davidson et al. | Jul 2000 | A |
6098173 | Elgressy et al. | Aug 2000 | A |
6141010 | Hoyle | Oct 2000 | A |
6141686 | Jackowski et al. | Oct 2000 | A |
6148333 | Guedalia et al. | Nov 2000 | A |
6154844 | Touboul et al. | Nov 2000 | A |
6157924 | Austin | Dec 2000 | A |
6158010 | Moriconi et al. | Dec 2000 | A |
6167407 | Nachenberg et al. | Dec 2000 | A |
6167445 | Gai et al. | Dec 2000 | A |
6170009 | Mandal et al. | Jan 2001 | B1 |
6182226 | Reid et al. | Jan 2001 | B1 |
6202157 | Brownlie et al. | Mar 2001 | B1 |
6202207 | Donohue | Mar 2001 | B1 |
6209101 | Mitchem et al. | Mar 2001 | B1 |
6216231 | Stubblebine | Apr 2001 | B1 |
6226745 | Wiederhold | May 2001 | B1 |
6233682 | Fritsch | May 2001 | B1 |
6241608 | Torango | Jun 2001 | B1 |
6243747 | Lewis et al. | Jun 2001 | B1 |
6253321 | Nikander et al. | Jun 2001 | B1 |
6260021 | Wong et al. | Jul 2001 | B1 |
6260050 | Yost et al. | Jul 2001 | B1 |
6269393 | Yost et al. | Jul 2001 | B1 |
6269456 | Hodges et al. | Jul 2001 | B1 |
6275941 | Saito et al. | Aug 2001 | B1 |
6285366 | Ng et al. | Sep 2001 | B1 |
6285985 | Horstmann | Sep 2001 | B1 |
6295607 | Johnson | Sep 2001 | B1 |
6301613 | Ahlstrom et al. | Oct 2001 | B1 |
6308163 | Du et al. | Oct 2001 | B1 |
6317868 | Grimm et al. | Nov 2001 | B1 |
6327594 | Van Huben et al. | Dec 2001 | B1 |
6327618 | Ahlstrom et al. | Dec 2001 | B1 |
6327628 | Anuff et al. | Dec 2001 | B1 |
6332134 | Foster | Dec 2001 | B1 |
6339423 | Sampson et al. | Jan 2002 | B1 |
6339826 | Hayes et al. | Jan 2002 | B2 |
6341352 | Child et al. | Jan 2002 | B1 |
6353886 | Howard et al. | Mar 2002 | B1 |
6360363 | Moser et al. | Mar 2002 | B1 |
6377973 | Gideon | Apr 2002 | B2 |
6378075 | Goldstein et al. | Apr 2002 | B1 |
6385627 | Cragun | May 2002 | B1 |
6393474 | Eichert et al. | May 2002 | B1 |
6397222 | Zellweger | May 2002 | B1 |
6412077 | Roden et al. | Jun 2002 | B1 |
6418448 | Sarkar | Jul 2002 | B1 |
6430556 | Goldberg et al. | Aug 2002 | B1 |
6457007 | Kikuchi et al. | Sep 2002 | B1 |
6460141 | Olden | Oct 2002 | B1 |
6466239 | Ishikawa | Oct 2002 | B2 |
6473791 | Al-Ghosein et al. | Oct 2002 | B1 |
6476828 | Burkett et al. | Nov 2002 | B1 |
6484177 | Van Huben et al. | Nov 2002 | B1 |
6487594 | Bahlmann | Nov 2002 | B1 |
6530024 | Proctor | Mar 2003 | B1 |
6539375 | Kawasaki | Mar 2003 | B2 |
6542908 | Ims | Apr 2003 | B1 |
6553410 | Kikinis | Apr 2003 | B2 |
6571247 | Danno et al. | May 2003 | B1 |
6574736 | Andrews | Jun 2003 | B1 |
6581054 | Bogrett | Jun 2003 | B1 |
6581071 | Gustman et al. | Jun 2003 | B1 |
6584454 | Hummel, Jr. et al. | Jun 2003 | B1 |
6587849 | Mason et al. | Jul 2003 | B1 |
6587876 | Mahon et al. | Jul 2003 | B1 |
6615218 | Mandal et al. | Sep 2003 | B2 |
6618806 | Brown et al. | Sep 2003 | B1 |
6654747 | Van Huben et al. | Nov 2003 | B1 |
6665677 | Wotring et al. | Dec 2003 | B1 |
6668354 | Chen et al. | Dec 2003 | B1 |
6684369 | Bernardo et al. | Jan 2004 | B1 |
6721888 | Liu et al. | Apr 2004 | B1 |
6735586 | Timmons | May 2004 | B2 |
6735701 | Jacobson | May 2004 | B1 |
6738789 | Multer et al. | May 2004 | B2 |
6751659 | Fenger et al. | Jun 2004 | B1 |
6754672 | McLauchlin | Jun 2004 | B1 |
6769095 | Brassard et al. | Jul 2004 | B1 |
6769118 | Garrison et al. | Jul 2004 | B2 |
6779002 | Mwaura | Aug 2004 | B1 |
6789202 | Ko et al. | Sep 2004 | B1 |
6857012 | Sim et al. | Feb 2005 | B2 |
6865549 | Connor | Mar 2005 | B1 |
6880005 | Bell et al. | Apr 2005 | B1 |
6889222 | Zhao | May 2005 | B1 |
6904454 | Stickler | Jun 2005 | B2 |
6934934 | Osborne, II et al. | Aug 2005 | B1 |
6957261 | Lortz | Oct 2005 | B2 |
6961897 | Peel et al. | Nov 2005 | B1 |
6965999 | Fox et al. | Nov 2005 | B2 |
6970876 | Hotti et al. | Nov 2005 | B2 |
6978379 | Goh et al. | Dec 2005 | B1 |
7003578 | Kanada et al. | Feb 2006 | B2 |
7035944 | Fletcher et al. | Apr 2006 | B2 |
7047522 | Dixon et al. | May 2006 | B1 |
7062490 | Adya et al. | Jun 2006 | B2 |
7080000 | Cambridge | Jul 2006 | B1 |
7089584 | Sharma | Aug 2006 | B1 |
7093261 | Harper et al. | Aug 2006 | B1 |
7093283 | Chen et al. | Aug 2006 | B1 |
7124413 | Klemm et al. | Oct 2006 | B1 |
7174563 | Brownlie et al. | Feb 2007 | B1 |
7185192 | Kahn | Feb 2007 | B1 |
20010032128 | Kepecs | Oct 2001 | A1 |
20010034771 | Hutsch et al. | Oct 2001 | A1 |
20010044810 | Timmons | Nov 2001 | A1 |
20010047485 | Brown et al. | Nov 2001 | A1 |
20020029296 | Anuff et al. | Mar 2002 | A1 |
20020059394 | Sanders | May 2002 | A1 |
20020062451 | Scheidt et al. | May 2002 | A1 |
20020069261 | Bellare et al. | Jun 2002 | A1 |
20020087571 | Stapel et al. | Jul 2002 | A1 |
20020103818 | Amberden | Aug 2002 | A1 |
20020104071 | Charisius et al. | Aug 2002 | A1 |
20020107913 | Rivera et al. | Aug 2002 | A1 |
20020111998 | Kim | Aug 2002 | A1 |
20020120685 | Srivastava et al. | Aug 2002 | A1 |
20020124053 | Adams et al. | Sep 2002 | A1 |
20020135617 | Samid | Sep 2002 | A1 |
20020143819 | Han et al. | Oct 2002 | A1 |
20020147645 | Alao et al. | Oct 2002 | A1 |
20020147696 | Acker et al. | Oct 2002 | A1 |
20020152267 | Lennon | Oct 2002 | A1 |
20020152279 | Sollenberger et al. | Oct 2002 | A1 |
20020173971 | Stirpe et al. | Nov 2002 | A1 |
20020188869 | Patrick | Dec 2002 | A1 |
20030014442 | Shiigi et al. | Jan 2003 | A1 |
20030032409 | Hutcheson et al. | Feb 2003 | A1 |
20030046576 | High et al. | Mar 2003 | A1 |
20030065721 | Roskind | Apr 2003 | A1 |
20030088617 | Clark et al. | May 2003 | A1 |
20030110448 | Haut et al. | Jun 2003 | A1 |
20030131113 | Reeves et al. | Jul 2003 | A1 |
20030135490 | Barrett et al. | Jul 2003 | A1 |
20030167315 | Chowdhry et al. | Sep 2003 | A1 |
20030167455 | Iborra et al. | Sep 2003 | A1 |
20030187956 | Belt et al. | Oct 2003 | A1 |
20030200350 | Kumar et al. | Oct 2003 | A1 |
20030220913 | Doganata et al. | Nov 2003 | A1 |
20030229623 | Chang et al. | Dec 2003 | A1 |
20040024812 | Park et al. | Feb 2004 | A1 |
20040205473 | Fisher et al. | Oct 2004 | A1 |
20040205557 | Bahrs et al. | Oct 2004 | A1 |
20050086206 | Balasubramanian et al. | Apr 2005 | A1 |
20060059107 | Elmore et al. | Mar 2006 | A1 |
20060122882 | Brown et al. | Jun 2006 | A1 |
Number | Date | Country |
---|---|---|
1 256 889 | Nov 2002 | EP |
WO0038078 | Jun 2000 | WO |
WO0114962 | Jun 2000 | WO |
WO0114962 | Aug 2000 | WO |
WO0114962 | Mar 2001 | WO |
WO 0167285 | Sep 2001 | WO |
Number | Date | Country | |
---|---|---|---|
20040068554 A1 | Apr 2004 | US |
Number | Date | Country | |
---|---|---|---|
60376913 | May 2002 | US |