Accessing data stored at an intermediary from a service
8 claims: 3 independent, 5 dependent
- 1媒介物に記憶されるデータにサービスがアクセスすることを可能にするための方法であって、前記方法は、コンピュータによって実現される、 前記媒介物において第1のサービスからの第1の出力を受取るステップを含み、前記第1の出力は、前記第1のサービスをも含むサービスプロバイダに含まれる、前記サービスプロバイダと他のサーバとの間の通信を処理するハイパーテキストトランスファープロトコル(HTTP)サーバによって生成され、エンドユーザからのコンテンツの第1の要求に応答して、前記第1のサービスから提供され、1つ以上の第1の変数を含む前記コンテンツを含み、前記方法は、さらに、コンピュータによって実現される、 媒介物において、 前記第1のサービスに対して、前記媒介物によりアクセス可能なサーバにおいて予め登録かつ記録され、 少なくとも、前記コンテンツに含まれる前記1つ以上の第1の変数を複数の第1のデータ値にマップするマッピングを検査するステップと、 前記マッピングに基づいて、前記媒介物が直接アクセスできるサーバに記憶された1つ以上の第1のデータ値を識別するステップを含み、前記1つ以上の第1のデータ値は、前記1つ以上の第1の変数に対応し、前記方法は、さらに、コンピュータによって実現される、 媒介物において、前記第1の要求に応答して、前記第1の出力および前記1つ以上の第1の変数に対応する前記1つ以上の第1のデータ値に基づいて、返答を生成するステップ を含み 、 前記返答を生成するステップは、 前記媒介物において、前記1つ以上の第1 の変 数の少なくとも1つを前記1つ以上の第1 の変 数の前記少なくとも1つに対応する前記1つ以上の第1のデータ値の少なくとも1つで置換するステップ を含み、前記方法は、さらに、コンピュータによって実現される、 前記第1の要求に応答して、前記エンドユーザに前記媒介物からの前記返答を送るステップとを含 み、前記返答は、前記第1のサービスからの前記コンテンツと、前記マッピングからの、前記1つ以上の第1のデータ値の少なくとも1つとを含む 、方法。
- 2コンピュータによって実現される、 前記第1のサービスからのデータ記憶要求に応答して、1つ以上の第2のデータ値を前記媒介物に記憶するステップをさらに含む、請求項1に記載の方法。
- 3コンピュータによって実現される、 前記媒介物において、前記マッピングを更新して、1つ以上の第2の変数が、前記1つ以上の第2のデータ値に対応することを示すステップをさらに含む、請求項2に記載の方法。
- 4前記1つ以上の第1の変数は、前記エンドユーザがそこから以前の出力を要求した以前のサービスを識別するための特定の変数を含み、前記方法は、コンピュータによって実現される、 前記エンドユーザがそこから特定の以前の出力を要求した特定の以前のサービスを識別する特定のデータ値を前記媒介物に記憶するステップをさらに含み、前記マッピングは、前記特定のデータ値が前記特定の変数に対応することを示す、請求項1に記載の方法。
- 5前記第1の出力および前記1つ以上の第1のデータ値に基づいて、前記返答を生成する前記ステップは、コンピュータによって実現される、 前記媒介物において、前記第1の出力を検査して前記特定の変数を識別するステップと、 前記媒介物において、前記マッピングに基づいて、前記特定の変数が前記特定のデータ値に対応すると判定するステップと、 前記特定のデータ値に基づいて、前記特定の以前のサービスへの参照を前記第1の出力に含めるステップとを含む、請求項4に記載の方法。
- 6前記特定の以前のサービスへの前記参照を前記出力に含める前記ステップは、コンピュータによって実現される、 前記媒介物が前記特定の以前のサービスに関連するオブジェクトを提供して、前記エンドユーザが前記オブジェクトを選択した場合に、新しい出力の新しい要求が前記特定の以前のサービスに送られるようにするステップを含む、請求項5に記載の方法。
- 7前記出力は、第2のサービスに関連するオブジェクトを含み、前記オブジェクトは、前記オブジェクトについてのパラメータとして特定の変数を含み、前記特定の変数は、前記第1のサービスを識別する特定のデータ値に対応し、前記返答を生成する前記ステップは、コンピュータによって実現される、 前記媒介物において、前記特定の変数を前記特定のデータ値で置換して、前記エンドユーザが前記オブジェクトを選択した場合に、前記第2のサービスからの第2の出力の第2の要求が、前記媒介物によって、前記第2のサービスに送られるようにするステップを含み、前記第2の要求は、前記第1のサービスを識別する、請求項1に記載の方法。
- 81つ以上のプロセッサによる実行が、前記1つ以上のプロセッサに、請求項1~7のいずれかに記載の方法を行なわせ、媒介物に記憶されるデータにサービスがアクセスすることを可能にするための命令の1つ以上のシーケンスを保持するコンピュータ読取可能な媒体。
Independent claims8
1 paragraph, as filed
[0001] [Related application] This application claims national priority from the preceding US Provisional Application Serial No. 60 / 230,489 filed on September 6, 2000, the entire disclosure of that provisional application, the full text of which is contained herein. Incorporated by citation as if. [0002] [Field of Invention] The present invention relates to providing a service to a client, and particularly to customizing the content provided by the service. [0003] Background of the Invention The World Wide Web includes a network of servers on the Internet, each of which is associated with one or more HTML (Hypertext Markup language) pages. HTML pages associated with a server provide information and hypertext links to that server and (usually) other documents on other servers. The server is Hypertext Transfer Protocol (Hypertext Transfer) Communicate with clients by using Protocol (HTTP). Servers are often referred to as "listeners" because they hear HTML page requests from clients. [0004] Users of the World Wide Web use a client program called a browser to request information from listeners, decode and display it. When a browser user selects a link on an HTML page, the browser viewing the page requests the listener associated with the Universal Resource Locator (URL) specified by the link on the Internet. To send. In response to this request, the listener transmits the requested information to the browser that issued the request. The browser receives the information, presents the received information to the user, and waits for the next request from the user. [0005] Traditionally, the information stored in the listener is in the form of static HTML pages. A static HTML page is created and stored in the listener prior to the request from the web browser. In response to the request, a static HTML page is simply read from storage and transmitted to the requesting browser. Nowadays, there is a tendency to develop listeners that respond to browser requests by dynamic behavior. For example, a listener responds to a request by querying a database, dynamically constructing a web page containing the results of the query, and transmitting the dynamically constructed HTML page to the requesting browser. Can be done. [0006] In addition, there is a tendency to extend access to the Internet to devices other than ordinary computer systems. For example, many mobile clients (or mobile devices) such as wireless phones, including built-in browsers, have been developed. Due to size and cost constraints, the "microbrowsers" included in these devices have limited functionality compared to browsers developed for full-featured computer systems. However, devices with built-in microbrowsers can be used in situations where conventional computer systems are impractical. [0007] In any form, the number of types of devices that can display web content continues to grow. For example, desktop computers, laptop computers, pocket computers, mobile phones, pagers and personal digital assistants (PDAs), which are referred to as "web-enabled," are those devices that display web content. Because it can be done. As the number of types of devices available on the web increases, so does the variability in device capabilities. For example, general purpose computer systems provide large color screens, sophisticated audio output, high processing power, ergonomic keyboard input, and easy-to-use selection devices such as mice, trackballs or trackpads. It compensates for not being able to move. Small mobile devices, on the other hand, offer portability at the expense of screen size and ease of user input. [0008] In addition, they tend to try to serve clients via servers on the network. Usually, the network is the Internet, the client is the user, and the service is available from the server via the website. The service may provide information such as critiques about restaurants, weather information, stock quotes or the latest news. The service may also be interactive so that the user can purchase, for example, an item such as a book or music, or a service such as booking a travel arrangement. The term "service" as used herein refers to providing information, functionality or capability to a client. [0009] The process by which a user accesses a service depends on the type of client the user has. For example, a desktop computer can connect to the Internet through dial-up lines, digital subscriber lines (DSL), cable modems, integrated services digital network (ISDN) connections, or many other available methods. .. Wireless Application Protocol (WAP) phones can connect to the Internet over a wireless connection through a WAP-HTTP gateway. It is common for a client to log in to a website and be presented with a list of available services from which the client selects the desired service. [0010] Services are generally provided in one of two ways: as a host application or as a portal application. In a typical host application, the developer creates the application, but the host installs and maintains the application, making it accessible to customers or end users on the server's host network. In contrast, a typical portal application allows the developer to develop and implement the application and allow the customer or end user to access it through one or more servers controlled by the developer. The "developer" here may be an individual, company or other entity (also referred to as a service provider) that provides the service, or the developer is another entity and refers to the service provider. Software development services may be provided. [0011] A common problem in providing services through an application, be it a host application or a portal application, is that the application must be designed to work on all devices. However, the capabilities of the devices vary widely based on both the type of device and the specific capabilities of different models of the same type or class of devices. For example, desktop computers typically have a fully functional web browser, while personal computing device microbrowsers have limited functionality. In addition, some mobile phones have a limited display and can only display one word on each line of the display, while others have a large display that can display several words on each line. [0012] The variability in capabilities can make it difficult for application developers to support all possible devices. For example, a service may be accompanied by a display, such as a graphic image of a product for sale. The display of graphic images can be easily displayed on a fully functional web browser on a desktop computer, but may not be displayed on a mobile phone display. Moreover, even if the developer is only considering a certain type or class of equipment, the difference in capabilities can be large. For example, if an application programmer sends an output that contains multiple words that indicate several information items, a mobile phone with a limited display screen will only display the first word of each information item on each line of the display screen. It may not be possible. Alternatively, the output for a single information item may fill multiple lines of the phone display and other information items may not be visible at the same time. [0013] One approach to solving design problems for devices with different capabilities is to design for "the common elements of the smallest units." A common element approach for the smallest units is to design the application to work with the most limited of available devices. For example, when displaying a menu of choices on a client device, such as a mobile phone, the application programmer can choose a short, one-word label for each choice. This is because any device that will use the application can support a one-word label. For example, an application developer can use a single-word menu item, "Back," in a map application to display options for generating a return from a selected destination. [0014] However, the drawback of the common element approach of the smallest unit is that the superior capabilities of other devices are not utilized in the output. For example, if the client device can display a long label, such as the label "Generate Return", a long label may be preferred. This is because "return" is ambiguous and can be misleading to the meaning of "return to the previous menu" by the user. Moreover, if all applications target the minimum capabilities of the old device, most of the features built into the new device will remain unused. [0015] Another approach that solves the design challenges for clients or devices with different capabilities is to design for some intermediate level capability, for example for the most common types of mobile phones. is there. However, applications using this intermediate approach may not function properly on low-performance devices, nor can they take advantage of the enhanced capabilities of other devices. [0016] Another challenge in providing services through an application is how to support additional equipment that became available after the application was developed. For example, a device manufacturer may release a new device months after the service provider releases the application. The new device may be an evolutionary advance from the current device, with improvements to existing features. Alternatively, a new device may be making great strides in that class of device with the addition of important new features. Alternatively, the new device may be a new type of device with new capabilities added or new combinations of capabilities. [0017] By using a common element approach of the smallest units, new equipment with improved capabilities can be adapted, but the enhanced features and capabilities of the new equipment, such as larger displays, are largely unused. Can remain. For example, if an application provides only one-word menu choices, the application will not utilize an improved device that can display multi-word choices. Moreover, for later released devices, the smallest unit of common element approach may not use any new capabilities, such as the ability to process audio data or graphics. Even if the application is designed for intermediate-level capabilities, it may not be possible to take full advantage of all future device advances and improvements that may be made. [0018] Another challenge in application development is making tools accessible to developers who create applications. Developers who design applications for a particular platform (a combination of hardware, operating system, and / or protocol) typically utilize a software development kit (SDK). The SDK typically diagnoses application programming environments, libraries commonly used for various features, application programming interfaces, utilities, documentation, compilers for generating executable code from source code, and programming problems. Includes a debugger to do. To use these tools, developers obtain software, documentation and other materials from their SDK providers and install the software and other tools on their local computer or network. Later, as the SDK provider updates and improves, the developer incorporates those changes into the locally installed SDK package. As a result, application developers may have to spend significant resources installing and maintaining the SDK. In addition, traditional SDKs typically require significant resources not only for the SDK itself, but also for the infrastructure for application development and setup, testing and runtime application implementation. To do. [0019] Individual service providers may want to offer other services related to their core service to enhance the overall experience of their customers. For example, if a user requests directions to a destination from one service provider, the directions provider will provide additional information about the weather or dining options at that particular destination. You may want to offer to. One way for directions providers to provide such additional information is to create the additional services they need, which requires significant additional development resources. There is. Another approach is for a service provider to coordinate with another service provider to get the desired functionality. However, coordinating with other service providers involves establishing a technical infrastructure to connect the services of the two providers, and measuring and billing the level of use by the customer of the first provider. Considerable preparation can be required, both in terms of establishing the means for doing so. [0020] In addition, a concern in providing services through the application is that the service provider can incorporate the permanently stored data into the application so that the application can use the data when it is executed. There are times when you may want to. The service provider may then have to bear the burden of establishing and maintaining the stored data so that it becomes available when the application requests it. [0021] [0021] Based on the above, it is desirable to provide improved techniques for designing applications that work more effectively on all devices. It is also desirable to have improved technology for creating applications. In addition, it is desirable to have improved technology that allows service providers to provide additional services. It is also desirable to have improved technology for incorporating stored data into applications. [0022] [Summary of Invention] The technology for accessing the data stored in the medium from the service is provided. According to one aspect, the service can access the data stored in the medium. In response to a request from the end user, the output from the service is received as an intermediary. This output contains variables, which correspond to the data stored in the server associated with the intermediary. Use mappings to identify which variables correspond to which data stored on the server. In response to the request, a response is generated, which contains variable-based stored data in the output, based on the output from the service. The service may store or update the data stored on the server and may specify new variables to include in the mapping. [0023] In other aspects, variables may be used to allow end users to access previous services. The data values stored on the server may indicate previous services accessed by the end user. The data accessed later may include variables corresponding to the data values of the previous service to facilitate the end user to return to the previous service. In addition, the original service can use variables to pass the service identifier to another service, so other services know the identity of the previous service and give the end user a way to return to the previous service. Can be done. [0024] The present invention is shown below by way of example, but not by limitation, by accompanying drawings showing the same elements with the same reference numbers. [0025] [Detailed Description of Preferred Examples] Describes network-based operating systems for mobile devices. In the following description, for the sake of explanation, many specific details are given to make the invention fully understandable. However, it will be appreciated by those skilled in the art that individual inventions are feasible without these specific details. In some cases, well-known structures and devices have been shown in the form of block diagrams to avoid unnecessarily obscuring the invention. [0026] In the following explanation, various functions will be discussed under the titles that appear in the following order. I. Structural and functional overview A. Application hosting B. Customization of the content provided by the service C. Providing content from multiple services D. Access from the service to the data stored in the medium E. Online application development II. Online application development A. Creating Applications and Services-Overview B. Host application implementation C. Implementation of shared host application D. Access to new applications or services III. Device-specific markup code generation A. Device-specific format generation B. Output generation considering requirements C. Conditional independence output with embedded hints D. Example of identifying device type using embedded hints E. Generate output based on a hierarchy of conditions F. Output generation by meeting requirements G. Selection of output based on the language supported by the client device H. Use of middleware transformer for conditional independence output transformation I. Example of producing output using a shared host application IV. Access to other applications and services A. Mobile module B. Memory of data in the medium V. Hardware overview. [0027] I. Structural and functional overview Provides technology that facilitates the creation and implementation of applications used to provide services for access by devices such as mobile clients. These technologies output after the application produces output based on the specific circumstances of the end user's use of the application, such as the capabilities of the mobile client or the network conditions that exist when the customer requests service from the application. Includes developing applications that can be run on a variety of devices by coordinating. In addition, these techniques include combining the output, capabilities and features of the service, including techniques that allow the end user to revert to a previously accessed service. In addition, these techniques also include storing data in mediators and making it accessible to service-related applications using variables and their mapping to the stored data. [0028] In addition, these technologies provide an online software development kit (SDK) that allows application developers to create, test, modify and implement applications without having to have special client-side software. including. Developers enter the code over the Internet through the interface provided by the SDK website. The SDK website is based on the XML and HTTP standards, allowing developers to reuse existing code. For example, if a developer has a Microsoft Internet Information Service (IIS) server that serves ".asp" pages, the online SDK accesses the developer's existing servers and pages. be able to. [0029] The term "end user" as used herein refers to any person, organization or other entity that may use the device to access a service or application. The term "end user" includes the term "customer", but "customer" does not necessarily imply a commercial relationship with a service provider. In addition, the term "end user" is distinguished from the term "user". "User" refers to a developer and service provider who creates and maintains an application or computer program that services an end user, as described below. [0030] A. Application hosting FIG. 1A is a block diagram illustrating a high level overview of a system for providing services through an application accessed through an intermediary according to an embodiment of the present invention. FIG. 1 shows a network 100 including a host server 110. Network 100 may be any type of network, including, but not limited to, private networks such as intranets, public networks such as the Internet, or combinations of different networks and network types. [0031] The host server 110 can be implemented by one or more servers in a host provider or an intermediary known simply as a host, such as a hosting service provider. The function of the host is to install and maintain applications developed by either the host provider or other application developers on the host server 110 or the like. An application is usually part of a service, such as a website, paging service or communication service. The host may provide "partial" or "shared" hosting of the application, in which case the application is stored on a server associated with the application developer or service provider, but is accessed through the host. can do. Partial or shared hosting of applications is distinct from portal applications. Portal applications are stored on the server associated with the application developer or service provider, but are not accessed through the host. End users access services provided by other parties or companies through the host by interacting with the host application and the partially hosted application. [0032] As shown, network 100 also includes users 120, 122, 124, which are interconnected on server 110 and to each other on network 100. In FIG. 1A, users 120, 122, 124 are service providers and may provide services used by end users. Users 120, 122, 124 may be application developers and may be part of a service provider or associated with a service provider. Service providers, application developers and other parties create and maintain applications that are part of the services provided to end users. [0033] An application that is part of a service may be hosted by a hosting provider, for example on a host server 110. As indicated by application 126 included in user 124, the application may be partially hosted by storing it in a server associated with the user and accessing it through a hosting provider, such as host server 110. [0034] B. Customization of the content provided by the service FIG. 1A shows end users 130, 132, 134 connected to host server 110 by connections 140, 142, 144. End users 130, 132, 134 are shown outside network 100 in FIG. 1, but end users 130, 132, 134 or other end users not shown may be part of network 100. There are different types of end users and connections. For example, the end user 130 may be a desktop computer that connects to the host server 110 in various ways, for example via the Internet, DSL connection, or ISDN. The end user 132 may also be a PDA that connects to the host server 110 via a cellular modem connection. Further, the end user 134 may be a mobile phone that connects to the Internet and thereby connects to the host server 110 via a WAP-HTTP gateway. [0035] FIG. 1A also shows the connection 150 between the end user 130 and the user 120, and the connection 152 between the end user 134 and the user 124. Connections 150 and 152 indicate that not all communication between the end user and the user takes place through the port server 110 because direct communication between the end user and the user is possible. For example, the end user 130 may be a desktop computer, so that it can interact directly with the user 120 when requesting a service. However, the service requested by the end user 130 from the user 120 may be provided by a host application located on the host server 110. In response to a service request from the end user 130, the user 120 may send the request to the host server 110 and provide output satisfying the request from the host application to the end user 130 over the connection. In response to a request from user 120, host server 110 may run the appropriate host application and send the resulting output to end user 130 over connection 140. [0036] As another example, the end user 134 may be a mobile phone interacting with the host server 110. End-user 134 may request services provided by a shared host application, such as application 126, which receives service from user 124, via host server 110. The host server 110 transmits the service request from the end user 134 to the user 124. User 124 runs the appropriate application, for example application 126, and sends the resulting output to end user 134 over connection 152. [0037] Figure 1A shows a typical example of a system for providing a network-based operating system for mobile devices, but in practice, the configuration shown in Figure 1A has been transformed in many ways, much more. Large and complex networks may be used. For example, a network-based operating system for mobile devices may involve two or more servers associated with a host and a virtually unlimited number of users and end users. Moreover, not all users can be included in a single network, for example Network 100. End users can be located in a number of networks, including the Internet and intranets. Similarly, end users may be located within a network that includes a host server and one or more users. In addition to this, the host provider may not only host the application by others, but also provide services directly to the end user. Moreover, the end-user, user and connection types described above are merely exemplary examples. [0038] FIG. 1B is a block diagram showing an outline of the host server 110 according to an embodiment of the present invention. Host server 110 includes applications 160, 162, which may be host applications stored in host server 110, or, like application 126, links to shared host applications stored in other servers. It may be. [0039] The host server 110 includes a middleware transformer 112 that transforms the output of the application into tuned or customized output based on the parameters or conditions associated with the service request. For example, the capabilities of client devices used by end users can vary widely. According to one embodiment, an application developer designs an application to produce general output, including some variants of the output, also known as an output segment, and presents that output to a client device. Or display. The middleware transformer 112 receives the general output. The middleware transformer 112 receives or detects a parameter or condition associated with a service request. The middleware transformer 112 then selects a variant or alternative of a particular output based on the parameters or conditions of the service request. [0040] For example, the client or end user may be a mobile phone requesting directions from a map service provider. Since mobile phones may not be able to display graphics, the map service provider needs to provide a response to the request with text but no graphics to indicate the desired route. However, some map service provider customers may use other devices, such as laptop computers, that can display graphics as well as text. [0041] As a result, the application used by the map service provider will make some variants of the requested directions, such as an output segment with text only, and an output segment with text and graphics. Including, general output may be produced. The application provides general output to the middleware transformer 112, which receives parameters or information from the request, for example data indicating that the client device is a mobile phone. The middleware transformer 112 then selects an output segment that contains only text from the general output to produce a customized output, that is, an output that contains the text-only output segment from the application, and produces that customized output. Send to end user. In another embodiment, the application produces a comprehensive set of outputs, which the middleware transformer 112 customizes or formats based on the stylesheet selected based on the client device. [0042] The approach of using a host to receive general output and generate customized output has several advantages. For example, an application developer does not have to write different applications or different output routines for each of the unique conditions that may deserve to be modified. In fact, application developers don't even need to be able to test those conditions. An application developer can write one application with output variants for each of the special conditions. Special conditions may include the specific model of the client device, the type of client device, and the wide or narrow class of client devices, network conditions, and the like. With the introduction of new equipment and capabilities, the middleware transformer will be able to select the output variant that best matches the capabilities of the new client equipment. [0043] As another example, the output segment may depend on the conditions present at the time of the request, such as network congestion, request time or user location, which causes the middleware transformer to consider such conditions. This allows you to select a variant of the output or format the output. Therefore, the application developer designs an application that provides general output, including output segments for each of the various conditions, and is specific that the host should provide to the end user based on the specific conditions for the request. The output may be selectable. [0044] C. Providing content from multiple services The host server 110, including the service linker 114, processes a service request from an end user and sends the request to an appropriate service or application for a response. In addition, the service linker 114 can keep sessions (or transactions) of other services active. For example, the end user may be a mobile phone communicating with the host. The host provides the end user with a list of service choices, which may include map services. When the end user uses a mobile phone to select a map service, the service linker 114 receives the request from the end user and sends the request to the appropriate service provider. For example, if the service is provided using a shared host application, the request may be sent to a server associated with the map service provider on the World Wide Web. The response to the request from the shared host application may be received by the host in the form of general output, and this general output may be customized for the mobile phone, such as by using a middleware transformer as described above. .. [0045] In another embodiment, the application incorporates the features and outputs of other applications. These applications may be referred to as mobile modules or simply modules. For example, if application 160 in Figure 1B provides directions, the map service provider may want to include information about the weather at the destination specified by the end user. Instead of developing another weather application, this map service provider can link to a host application or shared host application provided by the weather information service provider associated with host server 110. For example, application 162 may be a meteorological application or module provided by a different company than the company that provides the map service. However, since both companies have modules associated with their host server, both companies can include a link to the module of the other company in the output of each company's application. Based on those links, the middleware transformer can embed the output from one application into the other. Alternatively, a link can be presented to the end user to access the functionality of another service. [0046] In addition, the host server handles the interaction between the two services, allowing the host to keep track of which module was called by which, facilitating billing between services. In addition, this tracking feature allows one module to call back it without knowing the identification of another module. For example, if the first module calls the second module, the tracking feature allows the second module to call back the first module. As a result, any service can be used as a module, which can also be described as the provision of a reusable web service to another service. [0047] D. Access from the service to the data stored in the medium The host server 110, including the database 170, assists the service in storing data on the host and makes the service's applications available. The database 170 is shown as part of the host server 110, but the database 170 may be supported by another server or other device suitable for providing database functionality. Database 170 may include data structures to store data and may also store mappings of variables or identifiers to specific data or information items. The service can use database 170 to permanently store and maintain information on the host server, freeing the service from the obligation to support such a database on its own. For example, an application can generate an output with the identifier "% xyz logo", which is identified in the mapping as corresponding to a particular graphic image of the XYZ company stored in database 170. To. As another example, the output of the application may include the variable "% date" to indicate the current date when the application was accessed in response to a request from the end user. When the middleware transformer receives the output, the current date replaces the variable% date in the output. [0048] E. Online application development The Host Server 110 also includes the Online Software Development Kit 116, which can be used by developers to create, edit, test, implement, and manage other applications or modules related to the host service. Services and applications. According to one embodiment, the application developer uses a browser to log in to an online development website related to the hosting service and access the online software development kit 116. After logging in, the Online Software Development Kit 116 provides a user interface for viewing on the developer's web browser. This user interface presents the user with a variety of options, such as creating a new application, modifying an existing application, testing an application, or deleting an existing application. For example, to create a host application, the developer enters or modifies the program code using the user interface through the developer's web browser, and then the code is entered into the host server by module or application name, or identifier. Save with. If the developer wants to establish a shared host application, the developer logs in to the online development website and provides the URL of the application. The hosted application and the shared host application are then immediately available. For example, end users can log in to a service provider through a website to access a list of available services. [0049] II. Online application development A. Creating Applications and Services-Overview According to one example, a developer logs in to a website using a browser running on a client, through which the developer is required to develop an application without special client-side SDK software. You can access the tools. This website may also be referred to as a development website, or "SDK website," if it provides or hosts an online software development kit (SDK), for example. [0050] As used herein, "developer" is synonymous with "service provider" and "user" (because developers use online development websites). Further, the "user" is distinguished from the end user or customer who uses the services provided by the developer. [0051] Providers of application development tools and hosts of online development websites can be referred to as development providers, SDK providers, or simply hosts. Development providers typically use one or more servers to support development websites and the tools they provide. [0052] Access to the development website can be controlled by requiring the user to have a name and password. When a user gains access to a website, the user is presented with a list of mobile applications (also referred to here as services), which the developer or user has previously created. The user may have access to other services, such as samples provided by the development website provider. The development website may offer users several options, such as adding new services, modifying existing services, or deleting existing services. For example, if the user selects the Add Service option, the user is presented with a user interface, which allows them to add a service. [0053] According to one embodiment, the service may be either a host application or a portal application. A host application is an application whose code is maintained on a development website, also known as a host website. A portal application is an application whose code is maintained on another website associated with the developer of the portal application, and is typically accessed by the customer or end user through the developer's website. However, according to another embodiment, the portal application may be accessed or serviced to the client through a development website, in which case the portal application is a "shared host application" or a "partial host". It can be called an "application". [0054] B. Host application implementation Implementing a host application can involve several steps, for example, creating the application first, then editing the application, and testing the application. In one embodiment, to create a host application, the development website provides the developer or user with an interface for writing and editing code for the application. The interface may include an edit window or edit field, which the user can use to type in the code for the application. Similarly, to edit an existing application, an interface is presented to the user, which displays the existing application code to the user in the edit window, allowing the user to edit the code of the selected application. [0055] The application code can be written in the appropriate markup language (ML), such as the Extendable Markup Language (XML). According to one embodiment, the code is written in a markup language here referred to as "Portal-to-go XML". "Portal to Go" and "Portal to Go XML" may be referred to as Oracle9iAS Wireless and Oracle9iAS WirelessXML (or simply IASWirelessXML), respectively. [0056] Portal-to-go XML consists of a set of XML tags that can be used to indicate the boundaries between alternative output segments. Each output segment in the set of output segments may be designed specifically for one device, for example a mobile device, which typically has a small screen, and another device with voice capabilities. [0057] Portal-to-go XML uses any of the traditional means of generating dynamic HTML, such as Java (R) Server Pages, CGI, or Active Server Pages. Can also be generated, and the code or script will generate portal-to-go XML instead of generating HTML. Details of such markup languages, such as portal-to-go XML, can be specified in the Document Type Definition (DTD). For example, the portal-to-go XML DTD realized in one example is described in US Provisional Application Serial No. 60 / 230,489 filed September 6, 2000. [0058] [0058] According to another embodiment, the application code of the host application and the code that generates the user interface used to enter and edit the code are both stored on one or more servers associated with the development provider. As a result, the only client-side software needed to develop and implement mobile applications is a web browser such as Netscape Navigator. [0059] When the user completes entering the code for the new application or editing the code for the existing application, the user can save the code shown in the interface. The ability to "save" code may be an object contained in the interface, such as a button. By clicking on the object, the code is submitted or sent to a server remote from the client, such as the server associated with the development provider. When creating a new application, the user specifies a service name and the code is saved in relation to that service name. Once the new code is saved, when users and end users log in to the development website, the new service name will appear in the list of existing services shown. If you are modifying an existing application, the user can choose to save the code with the existing service name or save the code with the new service name. [0060] To test the application, the user can use the mobile device or mobile device simulator to access the application or service through the development website. This will be discussed in detail in "Accessing New Applications or Services". Host applications implemented through the development website are readily available for users to test and for end users to use through the host website. [0061] C. Implementation of shared host application In another embodiment, to create a shared host application, the user writes a portal-to-go XML document or an application program that produces a portal-to-go XML document as output. The terms "partially hosted application" or "shared host application" may be used to refer to an XML document or an application that produces an XML document as output. Shared-hosted applications can be saved, for example, to the application developer's own website. The user then associates a URL with the shared host application, for example, using an HTTP listener / web server that services the application developer's website. The shared host application is then added as a "service" by logging in to the development website or SDK web and providing the service name and the URL associated with the shared host application. [0062] D. Access to new applications or services When a service is created and / or revised, end users or customers who can connect to the network on which the server resides (eg, the Internet) can access the service. The process of accessing a service can vary based on the type of end user. For example, a desktop computer may connect to the Internet through dial-up lines, DSL connections, cable modems, ISDN connections or many other available methods. WAP phones connect wirelessly using synchronous protocols, such as through a WAP-HTTP gateway, or asynchronous protocols such as Simple Mail Transfer Protocol (SMTP) or Short Message Service (SMS) Protocol. You can connect to the Internet with. [0063] Generally, when an end user logs in to a development website, they are presented with a list of available services. The end user may select the service that has just been created and / or modified. In response to a service selection, the applications associated with that service are obtained. The application may be associated with a portal-to-go XML document or another document written in a preferred markup language. For example, in the case of a host application, the XML may be obtained by searching the portal-to-go XML saved on the server (eg, host) associated with the intermediary. For portal applications, the developer may send a request to the URL specified for the service. The web server that manages the URL may call the portal application and send the portal-to-go XML associated with the portal application back to the server associated with the intermediary. Once the service's portal-to-go XML is obtained for either the host application or the portal application, the server associated with the intermediary uses that portal-to-go XML to deliver the selected service. Provide to clients related to the end user. [0064] III. Device-specific markup code generation A. Device-specific format generation According to one embodiment, the service produces markup language output, such as portal-to-go XML, regardless of the type of client device that calls the service. According to one embodiment, one or more Extendable Style Sheet Language (XSL) style sheets are selected based on the type of client device before providing output to the client. The XSL stylesheet is described in more detail in US Application Serial No. 09 / 631,884, filed August 4, 2000, and is the entire disclosure of the application contained here in its entirety? Like, it is used by citation. [0065] The selected stylesheet is applied to the XML output from the service to produce a customized output, which is formatted exclusively for the client requesting the service. For example, the same XML output from a mobile application can be produced in three ways, depending on the type of client requesting the service: (1) a list of choices on the mobile phone display, (2) a pull-down menu on the browser. , (3) The final operation can be done by the list of choices presented by voice on the voice interface of the telephone. Application developers can support any device without any special programming. Because the application is designed to produce the same XML output regardless of the device used to request the service, the device-specific format is such that the mediator applies a device-specific XSL stylesheet. This is because it is done outside the application. [0066] In addition, the execution of code and the application of XSL stylesheets to its output is done through the host, so all host and portal applications will have each time the host installs an XSL stylesheet for a new device. It will automatically be able to provide device-specific support for new devices. The application developer does not need to modify the application code to support additional or newly developed client devices. Of course, if the developer wants to take advantage of the improved or added capabilities, the developer may update the application to provide additional output segments or variants for such capabilities. [0067] B. Output generation considering requirements Another problem with servicing through an application is that the application behaves the same regardless of the specific circumstances that exist when the application is used. For example, it may be desirable to change the output of an application based on the congestion of the network when the user accesses the application. If the network is heavily congested, it may be better to limit the amount of detail provided in the output during such heavy congestion. Again, application programmers can take a minimum high denominator approach to design an application for worst-case conditions. However, this approach cannot take advantage of the improved conditions if the conditions are improved. If the programmer chooses a higher level of detail, the ability of the application to deliver output to the client device will be diminished during heavy network congestion. [0068] Techniques are provided for producing output that takes into account conditions, parameters and characteristics (also referred to as "requirements") related to service requirements. Requirement conditions are information about the type of client requesting the service, for example the type of device, environmental conditions such as the time the service request was made or the response to the service, or the service. Contains information such as network congestion requested or supplied by. [0069] According to one embodiment, the application continues to produce the same output regardless of requirements. This is referred to as "conditional independence output" because the output of the application is the same regardless of the requirements. [0070] According to another embodiment, the conditional independence output produced by an application contains "hints" (or criteria, conditions or other guidance) on how to process the output under certain requirements. A middleware transformer is provided that receives the conditional independence output and uses the hints contained therein, along with knowledge of the client and requirements, to transform the conditional independence output into a "condition-specific output". This output may also be referred to as "conditionally dependent output". The condition-specific output is provided to the client requesting the service that generated the output. The middleware transformer is usually associated with the host and may be provided by the server associated with the host, but the middleware transformer is not limited to implementations associated with the host. [0071] C. Conditional independence output with embedded hints According to one embodiment, the application programmer designs the application to produce output that includes "hints" on how the output should be transformed based on the requirements of the requirements. According to one implementation, an application programmer designs an application to produce an output that points to some variant of the output that meets the requirements for the application, that is, the requirements that led to the generation of the output. Output variants can also be referred to as alternative output segments. [0072] The output from the application contains one or more specific criteria or conditions, which are associated with each of the alternative output segments. Use the middleware transformer to select the alternative output segment that best matches the requirements of the request with the criteria or conditions associated with each alternative output segment. A match may be determined based on whether the conditions associated with a particular alternative output segment are met (or whether the conditions are true or not). [0073] For example, if the output of your application is in the form of a markup language such as XML, the output may include sections of code that have the form: [0074] <section> <condition 1> Use this if condition 1 is true. [0075] </ condition 1> <condition 2> Use this when condition 2 is true and condition 3 is not true <condition 3> Use this if condition 3 is true </ condition 3> </ condition 2> Use this for all other conditions </ section> The application produces the above output regardless of the request conditions that may be present when the end user makes a request for the service. After receiving the conditional independence output from the application, the middleware transformer determines if any of the conditions 1, 2 and 3 is true. For example, if condition 1 is true, the middleware transformer transforms the conditional independence output to produce the following condition-dependent output: [0076] <section> Use this if condition 1 is true </ section> If condition 2 is true, but condition 3 is not true, the middleware transformer transforms the conditional independence output to produce the following conditional dependent output: [0077] <section> Use this when condition 2 is true and condition 3 is not true </ section> If conditions 2 and 3 apply, the middleware transformer transforms the conditional independent output to produce the following condition-dependent output: [0078] <section> Use this if condition 3 is true </ section> If conditions 1 and 2 do not apply, the middleware transformer transforms the conditional independent output to produce the following condition-dependent output: [0079] <section> Use this for all other conditions </ section> In this example, conditions 2 and 3 are related to each other. That is, the output segment associated with condition 3 will not be executed unless both conditions 2 and 3 are true. [0080] [0080] For example, if one condition is a subset of another, you can use the technique of specifying a hierarchy between the conditions. For example, condition 2 may be that the amount of network traffic is abnormal compared to the threshold amount (eg network congestion), and condition 3 is apparent by exceeding the specified limit. As is the case, network traffic may be extremely heavy. Therefore, if network congestion is normal and condition 2 is true but condition 3 is not, then the actual instruction or statement corresponding to "use this when condition 2 is true and condition 3 is not true" is You may specify that unusually detailed graphics should not be transmitted. If condition 3 is true, such as when the network is extremely congested, the actual instruction or statement that corresponds to "use this when condition 3 is true" may specify that the graphic should not be transmitted. Good. [0081] By using the conditional independence output with embedded hints, the application developer can give the service application flexibility to handle variables that the client can only know when requesting a service from the application. By incorporating flexibility into the output of the application, the application can adjust the output for optimal performance based on the circumstances that exist when the client makes a request to the application, the smallest unit. The drawbacks of the common element approach of are avoided. Moreover, the application itself does not need to have the ability to detect the underlying conditions for selecting an alternative output segment. Because the host handles the function. [0082] D. Example of identifying device type using embedded hints For illustration purposes, an embodiment is described in which the condition associated with the alternative output segment is the type of client device making the request. In such an implementation, the conditional independence output produced by the application may have the form: [0083] <section> <desktop> Use this if the client is a desktop computer </ desktop> <phone> Use this if the client is a phone <WAP> Use this if the client is a WAP phone </ WAP> </ phone> Use this for all other equipment </ section> The application produces this output regardless of the requirements. Upon receiving the conditional independence output from the application, the middleware transformer determines if the client corresponds to any of the alternative segment tags. For example, using the XML output described above, if the client is a desktop computer, the client will match the <desktop> tag and the middleware transformer will transform the conditional independent output to produce the following conditional dependent output: [0084] <section> Use this if the client is a desktop computer </ section> If the client is a telephone but not a WAP telephone, the client matches the <phone> tag and the middleware transformer transforms the conditional independent output to produce the following conditional dependent output: [0085] <section> Use this if the client is a phone </ section> If the client is a WAP phone, the client matches both the <phone> and <WAP> tags. Since the <WAP> tag is more specific than the <phone> tag, the middleware transformer transforms the conditional independent output to generate the following conditional dependent output. [0086] <section> Use this if the client is a WAP phone </ section> If the client is neither a desktop computer nor a telephone, the client does not match any of the alternative segment tags and the middleware transformer transforms the conditional independent output to produce the following conditional dependent output: [0087] <section> Use this for all other equipment </ section> The approach of using embedded hints to identify device types allows application developers to write a set of code that can be used for all devices, but the application code uses alternative segment tags. You may customize the output of your application for a variety of devices with different capabilities, including. In the above example, if the client is a desktop computer, it can send full-text, graphic and audio content. This is because desktop computers can easily handle all three types of content. If the client is a mobile phone, the graphic will likely not be able to be sent because the mobile phone will likely not be able to display such graphics on the display. Further, if the phone in the above example is a WAP phone, the application can generate output specific to the WAP protocol. [0088] In addition, if the client device is not listed, you can use the default configuration for output (for example, the "use this for all other devices" alternative segment tag above). The default condition can specify the output based on a common element approach of the smallest unit, so any client can process that output. However, if the device is of a specifically listed type, such as a desktop device, telephone or WAP telephone, the application developer does not have to rely on such a default configuration. Finally, improvements to client devices created after the application is complete, if they are one of the specified device types, such as the desktop computer or telephone in the example above. You can receive the output that makes the best use of the ability. Therefore, future devices need not be forced to use the most basic or default output simply because the application developer did not know when he wrote the code for the service. [0089] E. Generate output based on a hierarchy of conditions According to one embodiment, a programming language is provided that supports tags of alternate segments corresponding to nodes in a hierarchy of conditions. The most common (top) node in the hierarchy of conditions is the default node. Other nodes correspond to specific conditions. The most specific node in the hierarchy of conditions may correspond to, for example, a specific model of the device or a specific version of the specific model. Other intermediate nodes may correspond to the class or type of device, such as a mobile phone or pager. [0090] According to one embodiment, the nodes in the conditional hierarchy are associated with each other according to a parent-child relationship. All child nodes of a given parent correspond to the subcategories of the parent-related category. [0091] Figure 2 shows one such condition hierarchy. In Figure 2, the "All Devices" node 200 in the hierarchy shown is the top or default node. Every device node 200 has several child nodes under it, such as the "voice" node 210, the "desktop" node 212, the "PDA" node 214, the "pager" node 216 and the "telephone" node 218. Corresponds to a wide range of types of devices that can access services. [0092] The desktop node 212 also has its own child nodes, namely the "Unix (R)" node 220 and the "windows (R)" node, which are two examples of desktop operating systems. Correspond. Similarly, Unix node 220 has two child nodes, a "Solaris" node 224 and a "Linux (R)" node 226, which are in two versions of the Unix (R) operating system. Correspond. Similarly, phone node 218 has several child nodes, namely "WML" node 230, "HDML" node 232 and "CHTML" node 234, which are wireless markup language (WML) and handheld device markup, respectively. Supports phones that use Up Language (HDML) and Compact Hypertext Markup Language (CHTML). Similarly, the WML node 230 has three child nodes, the Nokia 7110 node 240, the TC 4411 V1 node 242 and the TC 4411 V2 node 244, which are the Nokia model 7110 mobile phone and, respectively. Compatible with TC model 4411 phone versions 1 and 2. [0093] Taking the hierarchy of conditions shown in Figure 2 as an example, an application programmer can design a program that produces the following output for a menu item. [0094] <menu item> go back <desktop> Generate how to return </ desktop> <voice> Generate how to return </ voice> <phone> How to return <TC 4411 V2> Generate how to return </ TC 441 V2> </ phone> </ menu item> When the middleware transformer receives the conditional independence output, the transformer determines the type of client to send the output to and produces a condition-specific output. That is, for all clients except desktop clients, voice clients, and phone clients, the menu item is "back". For desktop clients, voice clients and the concrete phone model TC 441 V2, the menu item is "Generate Return". Finally, for phone models other than the TC 441 V2, the menu item is "Return". For example, if the TC 441 V2 can display menu items longer than traditional mobile phones, it is desirable to treat the model TC 441 V2 specially. [0095] In one embodiment, after condition-specific output is created, an XSL stylesheet can be applied to format the output according to the needs of the client to which it should be sent. In an alternative embodiment, in addition to the processing of the output described above, the middleware transformer attaches to the specific device by applying one or more XSL stylesheets or by other means. formatting the output. [0096] In order for the middleware transformer to perform appropriate output transformations, the parties controlling the middleware transformer, also known as the "middleware host," are responsible for (1) the conditional hierarchy, (2) the tags associated with the nodes in the conditional hierarchy, and (3) Maintain data showing the interrelationship between the node in the condition hierarchy and the request condition. [0097] For example, suppose the middleware transformer supports the hierarchy of conditions shown in Figure 2. The middleware host may maintain data that indicates various types of information, such as XML tags, their relationships to nodes in a hierarchy of conditions, and their relationships to each other. The following are typical examples of data that can be maintained by a middleware host. [0098] (a) Phone node 218 is a child of all device nodes 200. (b) Tags <phone> and </ phone> are associated with phone node 218 (c) WML node 230 is a child of telephone node 218 (d) Tags <WML> and </ WML> are associated with WML node 230 (e) TC 441 V1 Node 242 is a child of WML Node 230 (f) Tags <TC 441 V1> and </ TC 441 V1> are associated with TC 441 V1 node 242. (g) The requirement "Client device = TC 441 V1" is related to TC 441 V1 node 242. The service provider or development provider may create a hierarchy of conditions. By incorporating the use of a hierarchy of conditions into the application, service providers support a wide range of devices such as PDAs, narrower classes such as Unix (R) desktop computers, or specific devices such as Nokia model 7110 phones. can do. Application developers can customize the output for services based on the capabilities of the device based on a wide class, narrow class, or unique device. [0099] F. Output generation by meeting requirements If the middleware transformer receives a conditional independent output to be sent to the client and the conditional independent output contains a set of alternative output segments, the middleware transformer inspects the relevant requirements. For example, if an alternative output segment is associated with different types of client equipment, the middleware transformer determines the type of client equipment to which the output should be sent. Based on the applicable requirements, the middleware transformer selects the output segment that most specifically meets the requirements. [0100] According to one embodiment, when the middleware transformer receives an output containing an alternative output segment, the middleware transformer selects the output segment that most specifically meets the requirements through the process outlined in the flowchart in Figure 3. select. In step 300, the top node in the hierarchy of conditions (eg, "All Devices" node 200 in Figure 2) is set as the current node. [0101] Then, in step 310, an alternative output segment corresponding to the child of the current node is identified. Seeing Figure 2 again, if the current node is the "All Devices" node 200, the middleware transformer identifies the children: voice node 210, desktop node 212, PDA node 214, pager node 216 and telephone node 218. To do. [0102] At step 320, it is determined whether any of the conditions associated with the identified child of the current node are true. For example, if the device making the service request is a pager, the conditions associated with pager node 216 would apply, but the conditions associated with phone node 218 and the other child nodes of the "All Devices" node 200. The conditions to do will not apply. In contrast, if the device is a telephone, the conditions related to phone node 218 would apply, and the remaining conditions related to the remaining child nodes of "all devices" node 200 would not apply. [0103] If the conditions associated with the child of the current node apply, step 330 sets the child node as the new current node and the process returns to step 310. For example, if the current node is "All Devices" node 200 and the device is a pager, the conditions associated with pager node 216 apply. According to step 330, pager node 216 is set as the current node and the process returns to step 310. [0104] If none of the conditions associated with any of the children of the current node apply, step 340 selects the output segment associated with the current node. For example, if the current node is the "All Devices" node 200 and the device requesting service is a whole new kind of future device that was unknown when the condition hierarchy was created, it would probably be "all". None of the conditions for any of the child nodes of the "Device" node 200 would apply. Therefore, according to step 340, the output segment associated with the current node, in this example the "all devices" node 200, is selected. For example, the output associated with the "All Devices" node 200 can be viewed on any device (eg, the smallest unit of common element approach), or on a device with a higher minimum capability level. be able to. [0105] For example, suppose the conditional independence output of the application is as follows and the tag of the alternate segment corresponds to the node shown in Figure 2. [0106] <menu item> go back <desktop> Generate how to return </ desktop> <voice> Generate how to return </ voice> <phone> return <WML> How to return <TC 441 V2> Generate how to return </ TC 441 V2> </ WML> </ phone> </ menu item> Further assume that the client to which the output should be sent is the device identified by the standard name "TC 441 V1". The conditions related to TC 441 V1 node 242 in Figure 2 and the conditions related to all the nodes from which the TC 441 V1 node came from (ie, phone node 218 and WML node 230) apply. [0107] To determine which of the alternative output segments in the XML described above should be used, the middleware transformer first establishes the "All Devices" node 200 as the current node according to step 300 in FIG. [0108] The middleware transformer then identifies an alternative output segment that corresponds to the child of the current node. In this example, the alternative output segments that correspond to the children of the "All Devices" node 200 are the output segments associated with voice node 210, desktop node 212, and telephone node 218. As shown in the Conditional Independence Output above, not all of the child nodes shown in FIG. 2 for the "All Devices" node 2000 have a corresponding alternative output segment. Therefore, the application developer may only support some of the classes, types or specific devices contained in the conditional hierarchy. [0109] As shown in step 310, the middleware transformer then determines if any of the conditions associated with the identified child of the current node are true. In the current example where the device is assumed to be TC 441 V1, the conditions associated with telephone node 218 apply. As a result, in step 330, phone node 218 is established as the new current node. [0110] Setting phone node 218 as the current node and returning to step 310, the middleware transformer identifies a child of phone node 218, an alternative output segment that corresponds to WML node 230. This is because none of the alternative output segments provided in the XML above correspond to the other child nodes of the telephone node 218 shown in Figure 2. [0111] At step 320, the middleware transformer determines if any of the conditions associated with the identified child node are met. In this example, the only alternative output segment that meets the conditions is the alternative output segment associated with WML node 230. As a result, WML node 230 is established as the new current node in step 330. [0112] After setting WML node 230 as the current node and returning to step 310, the middleware transformer identifies an alternative output segment that corresponds to the child of WML node 230. In this example, the only alternative output segment that corresponds to the child of WML node 23-is the output segment associated with TC 441 V2 node 244. Alternative output segments for the other child nodes of WML node 230 shown in Figure 2 (ie Nokia 7110 node 240 and TC 441 V1 node 242) are not provided in the XML above. [0113] At step 320, the middleware transformer determines if any of the conditions associated with the identified child of the current node are true. In this example, the conditions associated with TC 441 V2 node 244 do not apply. Because it was assumed that the client to send the output to was TC 441 V1 and not TC 441 V2. As a result, the output segment associated with WML node 230 is selected. And the conditional independence output can be transformed as follows. [0114] <menu item> How to return </ menu item> The above example shows how to identify the best match for a particular device, even if there is no perfect match. The lack of an exact match can be due to several reasons, for example, device-specific output is required and / or undesired. Also, the lack of a perfect match means that the device is new and the developer knew nothing about the new device and nothing about its capabilities when designing the application. Can also occur. Nevertheless, in the above example, the new device can receive output suitable for a telephone instead of receiving the default output or output for another class of device, such as a desktop computer. [0115] The above example is just one of the techniques that middleware transformers can use to select the output segment that best meets the requirements. Various alternative techniques can be used. For example, in one alternative technique, each tag may be assigned a number corresponding to the level of the corresponding node within the hierarchy of conditions. You can assign 3 to <WML> and 2 to <phone>. Therefore, the appropriate output segment in the set of alternative output segments can be (1) identified in the conditional independence output, the tag corresponding to the applicable condition, and (2) the most of those tags. It can be selected by selecting a tag that has been assigned a high value. [0116] In the above description, the requirement used to select the appropriate output segment is the type of client device to which the output should be supplied. However, the requirements used to select from alternative output segments can vary from implementation to implementation. For example, in one implementation, the alternative output segments in the set may each relate to different levels of congestion in the network. In another implementation, a set of alternative output segments may each be associated with a different class of end users. In yet another implementation, the alternative output segment may relate to a combination of factors. For example, if (1) a particular class of users uses a particular type of client device and (3) has a connection that supports a particular transmission rate, then a particular output segment It may be specified and used. [0117] Further, the above description gives an example in which the output is in the form of a markup language, eg XML. However, the essence of the output can vary from implementation to implementation. The techniques described herein include (1) an alternative output segment, (2) some hints, which can be used to select from alternative output segments based on the requirements of the request, how. It can also be used for conditional independence output. [0118] G. Selection of output based on the language supported by the client device The use of the <WML> tag in the above example indicates a situation where the requirements used to select an alternative output segment relate to the markup or programming language supported by the client device to which the output should be sent. According to one embodiment, the output segment associated with the "Supported Programming Languages" requirement may include code written in a supported programming language, in part or in whole. [0119] For example, the output segment located between the <WML> and </ WML> tags may consist entirely of WML code. As a result, if the client device supports the WML language, the output sent to the client device is in the WML language. This example uses the WML language, but the technology includes, but is not limited to, C ++, HTML, Visual Basic, or Java (R). Can also be used for. [0120] H. Conditional independence output transformation using middleware transformer Many benefits are realized by using a middleware transformer hosted by a middleware host to transform the conditional independent output before providing the output to the client. For example, this technology allows mobile applications to support any device. This is due to the fact that as new devices are developed, the middleware host provides device-specific format and protocol variants for the new device. In addition, if the mobile application uses the alternative output segment technology described above, the mobile application developer does not need to design an application that can detect such conditions, and the content outputs based on the conditions related to the request. It can be provided to the user. [0121] In one embodiment, the mobile application can adjust the content of the output received by the client to the type of client device without knowing the type of client device to which the output is sent. For example, the client device may be a pager. By transforming the output of the application using the XSL stylesheet described above, for example by transforming the output of portal-to-go XML, the middleware transformer produces a device-specific format for the pager. be able to. [0122] In addition, the content of the output received by the client can be automatically tailored to the new type of client based on the category to which the new client is assigned, but the application developer knows the new type of client. I don't even know. For example, when a new type of WAP phone is developed, the middleware host classifies the new WAP phone into the appropriate place in the hierarchy of conditions. As a result, the new WAP phone will automatically receive an alternative output segment associated with the WAP phone if any segment is specified in the output from the service application. [0123] If a particular set of alternative output segments does not have an output segment associated with a WAP phone, but has an output segment associated with a mobile phone, the new phone will automatically receive an alternative output segment associated with the mobile phone. .. In this way, the content of the output delivered to the new device is device-specific and determined by the application developer, even for newly developed devices that the application developer did not know at all when creating the application. It has a level of peculiarity to be. [0124] I. Example of producing output using a shared host application FIG. 4 shows an example of selecting an output using a shared host application according to an embodiment of the present invention. FIG. 4 shows a client device 410, such as a laptop computer or mobile phone, which is connected to an HTTP listener 420, such as a web browser, that serves a web page in response to a request. The HTTP listener 420 may provide the client device 410 with a web page containing a list of services associated with the hosting service 430. When client device 410 selects a particular service, HTTP listener 420 sends a request for that particular service to service linker 432, which is part of hosting service 430. Service Linker 432 may be implemented on one or more servers associated with Hosting Service 430. Upon receiving the request, the service linker 432 identifies the service or application that is the subject of the request and sends the request from the client device 410 to the service provider 440. [0125] Service provider 440 includes HTTP server 442 and handles communication between service provider 440 and other servers, such as service linker 432 or servers that link together as part of the Internet. Service provider 440, including application server 446, directs the request received by HTTP server 442 to the appropriate application. [0126] Service provider 4420 also includes application 450, which is the subject of the request from client device 410 in this example. For example, application 450 may be a dining location guidance module that provides a list of restaurants in an end-user-designated city through a client, for example, client device 410. Application 450 may be capable of producing several sets of outputs, such as output 452 and output 454, depending on the request. For example, output 452 may be a prompt for the end user to give the name of a city that wants a list of restaurants. [0127] Service provider 440 also includes database 470. For example, if application 450 is a meal location guide module, database 470 may contain information about restaurants in some cities. When the end user selects a particular city, application 450 may generate output 454 containing a list of restaurants in the selected city. [0128] The service provider 440 responds to a request received from the client device 410 via the service linker 432 with a typical output of 480. For example, the general output may be an electronic document containing portal-to-go XML. [0129] The general output 480 is sent from the service provider 440 to the hosting service 430, where the general output is processed by the device transformer 436. The device transformer 436 is a server and may function as a middleware transformer by applying a style sheet to general XML output as described above to obtain a customized output 490. The customized output is sent to the client device 410 and displayed to the end user. [0130] IV. Access to other applications and services A. Mobile module Service providers and application developers can build host applications or portal applications that are accessed by service requests sent to mediators that manage middleware transformers, such as hosts. According to one embodiment, a service or application, also referred to as a "mobile module," may generate output that leads to a call to another mobile module. This output may use a particular set of tags, for example <substitute> </ substitute>, to indicate a replacement command that references another mobile module, and may include the mobile module identifier within that tag. [0131] For example, the output produced by the mobile module of the first party (party 1) may refer to another mobile module of the second party (party 2) by including the following set of statements. [0132] <substitute> Parties 2-Module-Identifier </ substitute> Upon receiving this output, the middleware transformer calls the second party's mobile module, identified by "Party 2-Module-Identifier", and embeds that module's output in the output from the first party's mobile module. Deliver the combined output to the client. This feature allows the designer of one mobile module to take advantage of the functionality of all other mobile modules available in the mediator (eg, host). This feature allows transactions to be performed with the previous service activated, allowing the service to be used without having to know who is using the service. [0133] Moreover, this feature is different from linking objects between web pages running a browser on the client. For example, when a browser receives a web page that has a link to an object, the browser sends a request to the address specified by the link, receives the object in response, incorporates the object into the web page, and incorporates the web page into the browser. Display by. Therefore, it is the browser running on the client that requests and receives the object and embeds it in the web page. [0134] In contrast, in the above embodiment, the mediator receives output from one module (eg, in a middleware transformer), makes a request to another module, receives output from that other module, and outputs two modules. And send the combined output to the client. Therefore, it is the intermediary, not the client, that requests and receives the output of the second service and incorporates it into the output of the first service. [0135] According to another embodiment, the output of one mobile module, called a "calling" mobile module, not only calls, but calls another mobile module, called a "calling" mobile module. The mobile module can also pass parameters to the called mobile module. For example, the output of the calling mobile module may contain code of the form: [0136] <link> Called-Module-Identifier param1 param2 param3 </ link> In the example directly above, the parameters "param1", "param2" and "param3" are passed from the calling mobile module to the called mobile module identified by "Called-Module-Identifier". [0137] According to another embodiment, instead of automatically embedding the output from the called mobile module in the output, the designer of the calling module, when selected, calls the programming routine of the called mobile module. You may just want to show the link to the user. Action commands should be executed based on the statement between the <action> and </ action> tags, using different sets of tags, such as <action> </ action>, to indicate that a link is desired. Can be shown to be. [0138] The intermediary knows when the first mobile module of the first party is being called by the second mobile module of the second party. This is because it is the responsibility of the intermediary to make the call required by the replace command or by an action command such as selecting a link. [0139] According to one embodiment, the mediator stores information about which module called which other module. This information can be used as the basis for business relationships between mobile module designers. For example, the designer of the calling module may negotiate with the designer of the called module to pay a certain amount each time the calling module calls the called module. The party providing the intermediary (eg, the hosting service) records the calls between the modules and provides them to the various module owners. [0140] Tracking and managing business relationships between application providers or module owners cannot be easily achieved outside of the hosting frameworks described here. For example, on the World Wide Web, a first party may design a first web page that contains a link to a URL associated with the second web page provided by the second party. The second party determines whether the second web page was requested in response to the user selecting a link on the first web page, or whether the second page was requested by other means. It's extremely difficult (if not impossible) to do. As a result, it is difficult for the second party to negotiate a pay-as-you-go contract with the first party. [0141] According to yet another embodiment, the host maintains state information about the services accessed by the end user as an intermediary. For example, the mediator may store an information stack for each session by the end user. The information stack shows the sequence in which a service or mobile module called another mobile module during a session, and the identification of the mobile module. [0142] According to one embodiment, the mobile module associated with the service can use the callback mechanism to utilize the state information stored in the intermediary. For example, the calling module may include callback information along with a link that calls the called module. When the host calls the called module in response to the link selection, the callback information is stored in the mediator's record. This is done, for example, by positioning the callback information on the stack associated with the session. The called module may provide a "done" or "finished" selection, control or object on the content provided by the called module. The end user can choose the "Done" or "End" option when he / she has finished using the services provided by the called module. The called module does not need to have any information or knowledge about identifying the calling module. Instead, the called module only needs to identify the service that was accessed "previously" (ie, the previously used mobile module), and the intermediary was previously accessed based on the stack information. Identify the service. [0143] In response to selecting the Done option, a message is sent to the host, which causes the host to take the action specified at the top of the information stack. In the example above, the action specified at the top of the information stack is the callback information that was positioned there when the called module was called. Callback information typically calls the calling module again and delivers content or output from the called module to the end user. From the end user's point of view, when the end user finishes using the called module, it appears to return to the calling module. [0144] B. Memory of data in the medium According to one embodiment, data may be stored in an intermediary so that services accessed through the intermediary can be used. When an application or mobile module for a service is executed, instead of including the variables in the output, the mediator includes the stored data in the application output based on the mapping of those variables to the stored data. The medium may be a host and stores data or values or information items, and mappings between information items and variables or identifiers. The service may store or update data for existing variables, or it may store data for new variables and add them to the mapping. [0145] The content or output produced by the mobile module may contain one or more identifiers. In response to encountering an output that references one of the identifiers, the mediator gives the corresponding information item before providing the output to the client requesting the output. [0146] For example, for a particular session, the host may remember the data item "microphone" that maps to the identifier "name". The module can produce output similar to the following: [0147] <SimpleText> Hello% name </ SimpleText> When the host encounters such an output in a session, the host replaces the "% name" reference with the corresponding data item "microphone" and the output looks like this: [0148] <SimpleText> Hi Mike </ SimpleText> According to one embodiment, service providers and mobile module developers can register data and identifiers with a host and have them maintained by the host. Designers of these modules will benefit from the permanent maintenance of information by simply including the appropriate identifier in their output, while relieving the burden of permanently maintaining the information. be able to. [0149] In another embodiment, the calling mobile module can be set up with a data item or reference so that the end user can return to the calling module when they are done with the called module. For example, for a particular session, the host may associate the calling module identifier with the data item "href". The module can use this data item as the first parameter to generate output and create a link to the mobile module to be called, as follows: [0150] <action> Called-Module-Identifier% href </ action> When the host encounters this output in a particular session, the host replaces it with the module identifier that calls the "% href" reference, leading to the following output: [0151] <action> Called-Module-Identifier Called-Module-Identifier </ action> As a result, when the client uses a link to the called module, the calling module identifier is passed as a parameter to the calling module. The called module can use the calling module identifier to return to the calling module when the client completes the called module. [0152] In another embodiment, a data item containing a reference to a previous service or calling mobile module can be stored in an intermediary before performing a link to another service or calling mobile module. Other services or mobile modules called may be objects such as "done" or "finished" controls or buttons on a web page that contain a label or variable such as "% or earlier". .. When the mediator encounters a "previous" variable in the output from another service, the mediator replaces it with a reference to the previous service or the mobile module it calls, so the end user is on the web page. You can return to the previous service from the called module by selecting an object. [0153] In the above example, a variable or identifier, such as "% name", is used to indicate the end user's name, and "% href" is used to pass the identifier of the calling module to the called module, but other variables. You may use it to reference other data that may only be set or known when the application is run. For example, labels can be used to get the date or time when an application runs or a client makes a specific request. [0154] V. Hardware Overview FIG. 5 is a block diagram showing a computer system 500 capable of realizing an embodiment of the present invention. The computer system 500 includes a bus 502 or other communication mechanism to communicate information, and a processor 504 coupled to the bus 502 to process the information. Computer system 500 also includes main memory 506, such as random access memory (RAM) or other dynamic storage, coupled to bus 502, which stores information and instructions to be executed by processor 504. The main memory 506 can be used to store temporary variables or other intermediate information while the instruction to be executed by the processor 504 is executed. Computer system 500 further includes read-only memory (ROM) 508 or other static storage coupled to bus 502 to store static information and instructions for processor 504. A storage device 510 such as a magnetic disk or optical disk is provided and coupled to the bus 502 to store information and instructions. [0155] Computer system 500 may be coupled to a display 512, such as a cathode ray tube (CRT), via bus 502 to display information to computer users. An input device 514 containing alphanumeric keys and other keys is coupled to bus 502 to communicate information and command selections to processor 504. Another type of user input device is a cursor control 516, such as a mouse, trackball or cursor direction key, which communicates direction information and command selection to the processor 504 and controls the movement of the cursor on the display 512. This input device typically has two degrees of freedom in two axes, a first axis (eg x) and a second axis (eg y), allowing the input device to be positioned in a plane. [0156] The present invention relates to the use of a computer system 500 to implement the techniques described herein. According to one embodiment of the invention, the computer system 500 performs these techniques in response to the processor 504 executing one or more sequences of one or more instructions contained in the main memory 506. Such instructions can be read into main memory 506 from another computer-readable medium, such as storage device 510. Execution of a sequence of instructions contained in main memory 506 causes processor 504 to perform the process steps described herein. In another embodiment, wired circuits can be used in place of or in combination with software instructions to realize the invention. Therefore, the embodiments of the present invention are not limited to a particular combination of wired circuits and software. [0157] As used herein, the term "computer-readable medium" refers to any medium that participates in providing and executing instructions to processor 504. Such media can take many forms, including but not limited to non-volatile media, volatile media and transmission media. Non-volatile media include optical discs or magnetic disks, such as storage devices 510. Volatile media include dynamic memory such as main memory 506. Transmission media include coaxial cable, copper wire and optical fiber, and include wiring including bus 502. The transmission medium can also be in the form of sound waves or light waves, such as those produced during wireless and infrared communications. [0158] Common forms of computer-readable media include, for example, floppy (R) disks, flexible disks, hard disks, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punched cards, paper tape, holes. Includes other physical media with the pattern of, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, carriers described below, or any other medium that can be read by a computer. [0159] Various forms of computer-readable media can be involved in carrying one or more sequences of one or more instructions to processor 504 for execution. For example, instructions can first be carried on a remote computer's magnetic disk. The remote computer can load the instructions into dynamic memory and use a modem to send the instructions over the telephone line. The local modem of computer system 500 can receive the data on the telephone line and use an infrared transmitter to convert the data into an infrared signal. The infrared detector receives the data carried by the infrared signal and the appropriate circuitry can position that data on bus 502. Bus 502 carries the data to main memory 506, from which processor 504 executes and retrieves instructions. The instructions received by the main memory can optionally be stored in the storage device 510 before or after execution by the processor 504. [0160] Computer system 500 also includes communication interface 518 coupled to bus 502. Communication interface 518 provides two-way data communication coupled to network link 520, which connects to local network 522. For example, communication interface 518 may be an integrated services digital network (ISDN) card or modem that provides a data communication connection to the corresponding type of telephone line. As another example, the communication interface 518 may be a local area network (LAN) card and may provide a data communication connection to a compatible LAN. Wireless links are also feasible. In any of such implementations, the communication interface 518 transmits and receives electrical, electromagnetic or optical signals that carry digital data streams that represent different types of information. [0161] Network link 520 provides data communication to other data devices, typically over one or more networks. For example, network link 520 may provide a connection to a data device operated by host computer 524 or Internet Service Provider (ISP) 526 via local network 522. ISP526 provides data communication services via a worldwide packet data communication network, now commonly referred to as the "Internet" 528. Local network 522 and Internet 528 both use electrical, electromagnetic or optical signals that carry digital data streams. Signals via various networks and signals over network link 520 and via communication interface 518 that exchange digital data with the computer system 500 are examples of the form of carrier waves that carry information. [0162] The computer system 500, including the program code, can send messages and receive data via the network, network link 520 and communication interface 518. In the Internet example, server 530 may transmit the code requested for the application program via Internet 528, ISP526, local network 522 and communication interface 518. [0163] The received code may be executed by processor 504 when it is received, and / or stored in storage 510 or other non-volatile storage and later executed. In this way, the computer system 500 can obtain the application code in the form of a carrier wave. [0164] In the above specification, the present invention has been described with reference to specific examples. However, it is clear that various modifications and variations can be made without leaving the broad spirit and scope of the invention. Therefore, the specification and drawings should be considered as exemplary rather than limiting. [Simple explanation of drawings] FIG. 1A is a block diagram illustrating a high level overview of a system for providing services through an application accessed through an intermediary according to an embodiment of the present invention. FIG. 1B is a block diagram showing an outline of a host service according to an embodiment of the present invention. FIG. 2 is a block diagram showing a hierarchy of conditions according to an embodiment of the present invention. FIG. 3 is a flow diagram illustrating an approach for selecting alternative output segments according to an embodiment of the present invention. FIG. 4 is a block diagram showing an example of generating an output using a shared host application according to an embodiment of the present invention. FIG. 5 is a block diagram showing a computer system in which an embodiment can be realized.
6 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6
Every citation, both waysCites: the store holds 4 of 5
| Document | Relation | Office |
|---|---|---|
| JP11316704A | Cites | Japan |
| JP2001229106A | Cites | Japan |
| JP10232899A | Cites | Japan |
| JP20027330A | Cites | Japan |
| 辻順一郎,外3名,WWW向けモバイルプロキシーサーバの開発,情報処理学会論文誌,日本,社団法人情報処理学会,1999年 5月15日,第40巻,第5号,p.2478~2486 | Non-patent | – |
| 山本修一郎,外4名,”サービス連携プラットフォームの提案”,電子情報通信学会技術研究報告,2000年7月12日,第100巻,第206号,p.1-6(KBSE2000-20) | Non-patent | – |
| 携帯電話でモバイルオフィスを実現!,iモード・サーバテクノロジー,ASCII network PRO,第5巻,第9号,株式会社アスキー,2000年 7月28日,p.56~59 | Non-patent | – |
| 池田 実,XMLとビジネス変革,XML MAGAZINE,第10巻,第3号,株式会社翔泳社,2000年5月26日,p.35~46 | Non-patent | – |
| 和田裕二,岩尾忠重,岡田 誠,高田裕志,サービスラッピングによるWebベースサービスの連携,マルチメディア,分散,協調とモバイル(DICOMO 2000)シンポジウム論文集,Vol.2000,No.7,社団法人情報処理学会,2000年6月、p.181~186 | Non-patent | – |
60 members in 9 offices
Priority claims14
| Document | Office | Kind | Date |
|---|---|---|---|
| 23048900 | United States of America | P | |
| 23048900 | United States of America | P | |
| 60230489 | United States of America | – | |
| 09948135 | United States of America | – | |
| 94813501 | United States of America | A | |
| 94813501 | United States of America | A | |
| 0142068 | United States of America | W | |
| 0142068 | United States of America | W | |
| 2000230489 | – | – | – |
| 2001948135 | – | – | – |
| 2001042068 | – | – | – |
| US20000230489P | – | – | – |
| US20010948135 | – | – | – |
| WO2001US42068 | – | – | – |
Members60
| Document | Office | Kind | |
|---|---|---|---|
| CA2419994A1 | Canada | A1 | |
| CA2420017A1 | Canada | A1 | |
| CA2420021A1 | Canada | A1 | |
| CA2420023A1 | Canada | A1 | |
| WO0221322A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO0221338A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO0221342A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO0221343A2 | World Intellectual Property Organization (WIPO) | A2 | |
| AU9068601A | Australia | A | |
| AU9130001A | Australia | A | |
| AU9325401A | Australia | A | |
| AU9502401A | Australia | A | |
| US2002078168A1 | United States of America | A1 | |
| US2002120684A1 | United States of America | A1 | |
| US2002129016A1 | United States of America | A1 | |
| US2002138617A1 | United States of America | A1 | |
| WO0221338A3 | World Intellectual Property Organization (WIPO) | A3 | |
| WO0221342A3 | World Intellectual Property Organization (WIPO) | A3 | |
| WO0221343A3 | World Intellectual Property Organization (WIPO) | A3 | |
| WO0221322A3 | World Intellectual Property Organization (WIPO) | A3 | |
| EP1330736A2 | European Patent Office (EPO) | A2 | |
| EP1330739A2 | European Patent Office (EPO) | A2 | |
| EP1332439A2 | European Patent Office (EPO) | A2 | |
| HK1053381A1 | Hong Kong, China | A1 | |
| EP1356397A2 | European Patent Office (EPO) | A2 | |
| WO0221338A9 | World Intellectual Property Organization (WIPO) | A9 | |
| HK1057635A1 | Hong Kong, China | A1 | |
| JP2004519756A | Japan | A | |
| JP2004519757A | Japan | A | |
| JP2004527016A | Japan | A | |
| EP1332439B1 | European Patent Office (EPO) | B1 | |
| AT286275T | Austria | T | |
| ATE286275T1 | Austria | T1 | |
| DE60108158D1 | Germany | D1 | |
| JP2005507516A | Japan | A | |
| US6954751B2 | United States of America | B2 | |
| DE60108158T2 | Germany | T2 | |
| EP1330739B1 | European Patent Office (EPO) | B1 | |
| US7089295B2 | United States of America | B2 | |
| AT335241T | Austria | T | |
| ATE335241T1 | Austria | T1 | |
| AU2001293254B2 | Australia | B2 | |
| DE60121987D1 | Germany | D1 | |
| US7127705B2 | United States of America | B2 | |
| DE60121987T2 | Germany | T2 | |
| US2007078942A1 | United States of America | A1 | |
| AU2001290686B2 | Australia | B2 | |
| AU2001295024B2 | Australia | B2 | |
| AU2001291300B2 | Australia | B2 | |
| CA2420017C | Canada | C | |
| CA2420023C | Canada | C | |
| US7784030B2 | United States of America | B2 | |
| CA2419994C | Canada | C | |
| JP4723793B2 | Japan | B2 | |
| JP4975232B2This record | Japan | B2 | |
| JP5054272B2 | Japan | B2 | |
| CA2420021C | Canada | C | |
| US2013246572A1 | United States of America | A1 | |
| US9167051B2 | United States of America | B2 | |
| EP1330736B1 | European Patent Office (EPO) | B1 |
25 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Cancellation because of completion of termEXPY | EXPY | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Re-examination (zenchi) completed and case transferred to appeal boardAppealJAPANESE INTERMEDIATE CODE: A912A912 | A912 | |
| Transfer to examiner for re-examination before appeal (zenchi)AppealJAPANESE INTERMEDIATE CODE: A911A911 | A911 | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Decision of refusalJAPANESE INTERMEDIATE CODE: A02A02 | A02 | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Written permission of extension of timeJAPANESE INTERMEDIATE CODE: A602A602 | A602 | |
| Written request for extension of timeJAPANESE INTERMEDIATE CODE: A601A601 | A601 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Written request for application examinationJAPANESE INTERMEDIATE CODE: A621A621 | A621 |
Numbers
- Publication
- 4975232
- Publication, DOCDB
- 4975232
- Publication, EPODOC
- JP4975232B
- Application
- 2002525483
- Application, DOCDB
- 2002525483
- Application, EPODOC
- JP20020525483
Titles2
- Japanese
- 媒介物に記憶されるデータへのサービスからのアクセス
- English
- Access from the service to the data stored in the medium
Classification
- CPC, 9
- H04L67/02
- H04L67/5682
- H04L67/14
- G06F16/9577
- H04L67/56
- H04L67/564
- Y10S707/99936
- Y10S707/99933
- Y10S707/918
- IPC, 4
- G06F12 00
- G06F9 44
- G06F17 30
- H04L29 08
