CN1035732A - 分布式处理系统中的数据处理方法 - Google Patents
分布式处理系统中的数据处理方法 Download PDFInfo
- Publication number
- CN1035732A CN1035732A CN88108694A CN88108694A CN1035732A CN 1035732 A CN1035732 A CN 1035732A CN 88108694 A CN88108694 A CN 88108694A CN 88108694 A CN88108694 A CN 88108694A CN 1035732 A CN1035732 A CN 1035732A
- Authority
- CN
- China
- Prior art keywords
- data
- processor
- writing paper
- mark writing
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/006—Identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
驻留在一个分布式的处理系统中互相连接起来的一组处理机中的诸程序是在一组数据集合可以利用时被启动的,此时,该处理机从一个外部设备中接收数据并把它存贮起来,根据该数据的内容码分配给这个输入数据一事件号,并通过与该处理机缓冲器中事件号的比较,确定是否收到了预定个数带有特定事件号的数据。
Description
本发明涉及处理数据的方法,此方法把具有多数据输入的程序的输入数据互相连系在一起以增加分布式处理系统中操作的可靠性,分布式处理系统包含有一组处理机。
在编号为4,627,055的美国专利中叙述了这种分布式处理系统。
按照JP-A-57-146361中所述的已有的技术,具有多数据输入的程序是在启动该程序所需要的全部数据都准备好之后就开始执行,开始前並不检查数据的组合是否正确。因此,执行过程的可靠性就会有问题。
本发明的目标是以一种新的方式给出一种数据处理方法,它能够提高分布式处理系统中带有多数据输入的程序在执行期间的可靠性。
本发明的另一个目标是提供一种分布式处理方法,这种方法把联到网上的每个处理机与作用于单个程序的一组数据连系在一起。
上述目标是借助于使作用于一个程序的一组数据与执行该程序的处理机相关联的各个处理机来实现的,其办法是:
对外加的数据加上标笺並把它送到网上,
对程序执行过程中得到的输出数据打上标笺,其内容由输入数据的标笺内容确定,及
当一个多数据输入的程序要被启动前比较一组输入数据中的各个标笺。
因为作用于多数据输入的程序的数据与每个处理机有关,所以执行过程就被保证了。
图1a和1b表示在采用本发明的一个分布式处理系统中数据处理方法的总流程,
图2表示为了实施本发明要用的系统配置,
图3表示要传送的信息格式,
图4表示一个处理机的配置,
图5表示外部设备和应用程序之间的I/O系统,
图6表示多数据输入程序数据处理时所需要的表格,
图7表示I/O数据存贮区的格式,及
图8a到图8d以及图9表示每个处理机中的处理流程。
图2表示使用本发明的一个系统的总配置。在本实施例中,诸处理机是通过一个单环传输系统连接的,但是本发明同样适用于双环传输系统或具有一组互连环的常规网络。
图2中,编号101-108表示执行诸应用程序的处理机,这些应用程序存贮在各个处理机的内部存贮器中。编号151表示单环传输线。编号121-128则表示网络控制处理机(NCP′s),它控制数据在传送线上的传送。NCP121-128与处理机101-108是双向连接的。处理机101-108的处理结果经由NCP121-128在传输线151上广布式地传送。NCP121-128中的每一个确定经由传输线151传送来的数据是否是它本身所需要的,並把所需要的数据发送给与它相连的处理机101-108。当存贮在处理机101-108之一中的应用程序得到它执行时所需的全部信息时,该处理机就开始执行这道程序。该
程序经启动后,它就依据上述信息的内容进行加工並输出结果数据。在本发明的这个实施例中,输入和输出数据用的外部设备161与处理机101相连。
图3表示通过传输线播送的信息格式,F201和F208是该信息之首尾标志。CC202是代表数据的内容和功能的内容码。每个NCP根据内容码(CC)确定所收到的信息是否是与它相连的那个处理机所要的。内容码代表该信息中数据的含义。当此信息经由传输线传送给一个处理机並使数据随着被修改或处理后,内容码要相应地改变。SA203是发出信息的那个NCP的地址(源地址),C204是传送过程中所需要的连续号。E205表示由输入设备送给数据的那个处理机所加上的标号(事件号)。它表示生成了一块数据。即便是因为处理机对数据作了修改处理而使内容码改变时,事件号也保持不变。数据206表示结果的内容。FCS207表示检测信息中错误用的帧校验序列,它可以是CRC系统。
图4表示图2中所示的处理机101的结构。处理机102-108的结构与101相同。传输控制部件301控制数据在处理机101和NCP121之间的传送並把从NCP121收到的数据存贮到接收缓冲器302。当处理机101中的应用程序需要数据时,传输控制部件也能把传输缓冲器303中的信息发送到NCP21,並把它存入接收缓冲器302。处理器304控制应用程序321-323的执行。本身的处理机编号存贮区306存放与每个处理机唯一对应的编号。相连编号区307用作为一个计数器,登记数据来源编号。外部输入控制器308从外部设备161接收数据,並对此数据加上n位事件号,这n位事件号由处理机号和存贮在相连编号区
307中的相连号组成。外部输入CC表309存贮外部输入数据的内容码。I/O数据存贮区305存贮每个应用程序的I/O信息。
现在参考图5等等来说明多数据输入程序的数据处理方法。
应用程序可以在下列两种情况下被启动,其一是一组内容码的所有数据都收到时(与启动),二是当任何一个数据收到时(或启动)。就与式启动的程序而言,一组内容码的数据源可以是同一个外部设备401,就象图5中程序403那种情况。在这种情况下,输入数据的互相关联是必须的。(在这种情况下程序的开始指的是相同事件号数据的开始,数据间的相关性指的是数据间的一致性)。
图6表示缓冲器的结构,它是用来存贮供一个程序处理用的数据,该程序是以具有相同事件号的数据来启动的。编号500表明一张程序控制表,其中存放了由相同事件号数据启动的程序和要求相关联的数据的内容码。PN511表示由相同事件号数据类型启动的程序名。CC521-523表示相关联的数据的内容码。编号550表示数据控制表。PN561表示由相同事件号数据类型启动的程序名。对每一个程序可以有任意个这种表格。E562表示事件号。D571-572表示数据字段,它由图6底部所示的内容码(CC)581和数据内容(DAA)582组成。F563是一个标志,它是在数据被存入数据字段时建立的。对于或式启动的程序和不由相同事件号数据类型启动的与式启动程序而言,既没有程序控制表500,也没有数据控制表550。因此,当启动这样一个程序的数据从接收缓冲器送到处理器304时,它被直接送到I/O数据存贮区305。
现在参考图7来说明事件号的替换。图7是I/O数据存贮区305的格式。该数据表的601-603行分别对应于图4中的应
用程序321-323。PN651表示程序名。ID661-662表示启动程序用的输入数据,它包括内容码(CC)621和数据内容(DATA)662。ID661-662的数目与启动相应的应用程序所需要的输入数据的数目一样多。当数据被存入该数据表的一行中的所有ID661-662中之后,运行标志(RF)652就被置1並启动程序。处理结果被存入OD671(其格式与ID相同)。E681-682表示输入数据的n位事件号。对于不同输入数据的所有事件号都存贮在其中。当数据被存入OD671时,该数据被用于图3中的数据字段206,而且存贮在E681-682中的所有事件号都被加到事件号区205,这些事件号通过处理器304和传输缓冲器303从I/O数据控制区305送到了传输线上。因此,图3中所示的事件号组E205有m×n位(这里,m是被增加的事件号数)。
图8a到8d表示由同一事件号数据类型启动的、由图4中处理部件304执行的程序所做的数据处理流程图。当处理部件304经由接收缓冲器302从传输线中收到数据时(图8a中的701步),它把该数据的事件号组划分为n位长的一块块。(每个n位的块的值被看作为事件号单位)现在假定该数据被分为事件号单位e1、e2、e3…、em(图8a中的702步)。标志k指出该数据是否已存入其数据控制表500,现在的情况下,它被置“0”(图8a中的703步)。程序控制表中的501那一行首先被搜索(图8a中的704步)。在706步,检查存放在501这一行的CC521-523中是否存在与读入数据的内容码(CC)202相同的内容码,若不存在,就接着搜索下一行502(还是图8a中704这一
步)。若存在,就搜索数据控制表中与501那一行的PN511对应的行(图8a707步)。假设551这一行被取出,表551中的E562被分为m′个事件号单位e1′、e2′、…、em′(图8a的709步),接着把读入数据中的事件号单位e1、e2、…、em与表551中的事件号单位e1′、e2′、…、em′进行比较,看有没有相同的事件号单位(图8a和8c中用虚线框表示的751步)。当发现有相同的事件号单位时,标志l置1。这时根据程序控制表中501这一行中的信息,检查已存入551这一行的D571-572中的CC581是否是与读入数据中的CC202相匹配的内容码(图8c中717步)。如果CC581不是与CC202相匹配的内容码,就继续检查501行中的其它事件号单位(图8c中716、713和715步)。如果发现有一内容码相匹配,读入数据中的CC202和数据206被存入行551中D571-572的空区中(图8c中的718步)。然后标志k和l被置1(图8c719这一步)。如果读入数据中事件号组E205中的数字个数多于行551中E562的数字个数(图8c中720步),那么就用读入数据中的事件号组E205来替换行551中事件号组E562(图8c中721步)。在图8c的722步,检查行551的所有数据字段D571-572是否都已存入了数据,若是,则把其中的数据存入I/O数据存贮区601-603之中的具有PN651标识的那一行的输入数据字段ID661-662中,PN651与行551中的PN561相对应(图8d723步)。行551中的标志F563被置“0”,数据字段D571-572被初始化(图8d中的724步)。然后,查看在551那一行以外
是否还有与行501中的PN511相对应的数据控制表(图8a中的707步)。若有,重复709到724步。若没有,查看是否l=0,即查看读入数据中的事件号单位和行551中的事件号单位之间是否有不匹配的情形(图8d725步)。若l=1,本处理立即回到704步,开始搜索程序控制表502。若l=0,则看标志F563是否为0,即数据控制表中是否有一行其中的数据字段D571-572中没有存入数据(图8a726步)。若数据控制表中的标志F563为“0”,则此读入数据被存入那个表中(图8a中的727步)並把标志F563置1(图8d的728步)。若不存在F563等于“0”的表,则指示存贮的数据有误的错误信息被存入I/O数据存贮区(图8d729步)並删除读入的数据(图8d730步)。上述各步之后,本处理回到704步来查看程序控制表502的CC521-523中是否含有读入数据的CC202並重复705到730步。在取出503这一行並执行了705到730这些步骤后(图8a中的各步705),查看是否k=1,即读入数据是否已存入数据控制表(图8b中的731步)。若k=0,则把此读入数据存入I/O数据存贮区305(图8b732步),处理器304中的处理过程到此结束(图8b中的739步)。如果k=1,就搜索数据控制表500的PN561和事件号E562(图8b中733步)以确定PN561和E562两者是否在同一个表中(图8b的734步)。若PN561和E562不在同一表中,处理器304的处理过程也就到此结束(图8b739步)。如果它们在同一表中,则把PN561和E562隔离到一个表中(图8b中735步)。表格分离操作的流程图示于图9。在801步,
建立要被分离的表中的行数n,在802步对i赋以初值“2”。在804步,比较首行与要被分离的n行中第i行的数据字段D571-572。在805步,把位于第i行的数据字段中的但在首行的数据字段中没有的数据存入到首行的数据字段中。在806步,把第i行中的标志置“0”並初始化数据字段D571-573。然后i加1(807步),若i≤n(803步),则重复804到807步)。若i>n,就结束分离操作。在图8d的736步,对于已被分离出的行,查看其所有数据字段571-572是否已存入了数据。若不,就结束处理器304的操作(图8d739步)。若是,则把该数据存到I/O数据存贮区(图8d737步)並把那张表中的标志F563置“0”,同时初始化所有数据字段D571-572(图8b的738步),处理器304的处理就此结束。
按照本发明,对于多数据输入的程序所作数据处理方式就象上述那样。现在参考图1a和1b来说明处理过程的总流程。图1a表示系统配置和处理流程。该系统配置和图2中所示的配置是相同的。应用程序402和403已装入处理机102和103,处理机101与外部设备401相连。图5表明了外部设备401和应用程序402和403之间的I/O关系。假定处理机101从外部设备中连续读入了两个数据。处理机101对这两个数据设置内容码CC1和CC2及事件号EN1和EN2。它组织了与图1b中给出的相同格式的两个数据21和22並把它们送到了传输线151,其格式与图3所示相同。处理机102和103读入数据21和22。现在假定处理机102先读入数据21,该处理机将用此数据启动图1a和图5所示的应用程序402。另一方面,处理机103和104也读
数据21和22,但是因为並没有收到启动该应用程序403所需的所有数据,所以这两个数据暂存在缓冲器。处理机102中的程序402为数据21所启动的应用程序的处理结果建立起内容码CC2和事件号EN1,称这样准备好的数据为23並把它送到网上。接着,该应用程序又被数据22启动,由此产生的结果称为数据24,其内容码为CC2,事件号为EN2。数据24也被送到网上。处理机104读入数据23和24。假定处理机104先读入数据24。它把数据21和22中的事件号与数据24中的事件号进行比较。因为数据22和数据24具有相同的事件号EN2,所以处理机104利用数据22和24启动应用程序403。对其处理结果置以事件号EN2。类似地,应用程序104被数据21和数据23所启动並对其处理结果置以事件号EN1。
按照本发明,多数据输入的程序的执行是由作用于单个程序的一组数据之间相同的事件号决定的。
另一种做法是,从外部输入设备收到数据的处理机可以把输入时间作为标笺加到该数据中,当其它处理机从传输线上读入此数据时,可以用时间作为标笺内容使其数据互相关联。
当处理机从传输线上读数据时,可对数据加上一个作为标笺的读入时间並以此时间为依据使数据互相关联,其中时间就是标笺的内容。
Claims (6)
1、在一个分布式处理系统中处理一组数据的方法,该系统有一群通过一公共网络(151)连接起来的处理机(101-108),其特征在于包括下列步骤:
(a)对要由驻留在处理机之一中的处理程序处理的一组数据集合设定一个范围;
(b)对要从某一处理机送到公共网络去的数据加上一个标笺;及
(c)把作用于所述的一个处理机的数据集中的标笺与要由所述的一个程序处理的数据集中所加的标笺进行比较,以便使数据相关联。
2、如权利要求1所述的一种数据处理方法,其特征是输入数据中的所有标笺均被加到输出数据的标笺中,以便使新建立的标笺的内容反映出输入数据中包含的标笺。
3、如权利要求1所述的一种数据处理方法,其特征是每个处理机均从公共网络中读数据並增加一标笺,此标笺的内容是依据输入数据中的标笺产生的。
4、如权利要求1所述的一种数据处理方法,其特征是把一个标笺加到从外部输入设备读入的数据中。
5、如权利要求1所述的一种数据处理方法,其特征是每个处理机对从传输网中读入的数据加上一标笺。
6、如权利要求5所述的一种数据处理方法,其特征是由每个处理机所加的标笺是数据输入的时间。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP318823/87 | 1987-12-18 | ||
JP318823 | 1987-12-18 | ||
JP62318823A JPH01161566A (ja) | 1987-12-18 | 1987-12-18 | 分散処理システムにおけるデータ処理方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1035732A true CN1035732A (zh) | 1989-09-20 |
CN1009317B CN1009317B (zh) | 1990-08-22 |
Family
ID=18103351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN88108694A Expired CN1009317B (zh) | 1987-12-18 | 1988-12-17 | 分布式处理系统中的数据处理方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5313632A (zh) |
JP (1) | JPH01161566A (zh) |
KR (1) | KR920002571B1 (zh) |
CN (1) | CN1009317B (zh) |
BR (1) | BR8806691A (zh) |
DE (1) | DE3842286C2 (zh) |
IN (1) | IN171481B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IN170793B (zh) * | 1987-12-18 | 1992-05-23 | Hitachi Ltd | |
EP0657045B1 (en) * | 1992-08-31 | 1998-01-21 | The Dow Chemical Company | Script-based system for testing a multi-user computer system |
JP3552258B2 (ja) * | 1993-12-27 | 2004-08-11 | 株式会社日立製作所 | 分散計算機システム及びその情報管理方法 |
JP3508513B2 (ja) * | 1997-11-07 | 2004-03-22 | 株式会社日立製作所 | 計算機システムの運用管理方法 |
US6301670B1 (en) | 1998-10-06 | 2001-10-09 | Ricoh Corporation | Method and apparatus for erasing data when a problem is identified |
US7325052B1 (en) | 1998-10-06 | 2008-01-29 | Ricoh Company, Ltd. | Method and system to erase data after expiration or other condition |
US7039657B1 (en) * | 1999-11-09 | 2006-05-02 | International Business Machines Corporation | Method, system, and program for accessing data from storage systems |
US20060156381A1 (en) * | 2005-01-12 | 2006-07-13 | Tetsuro Motoyama | Approach for deleting electronic documents on network devices using document retention policies |
US8272028B2 (en) * | 2008-10-15 | 2012-09-18 | Ricoh Company, Ltd. | Approach for managing access to electronic documents on network devices using document retention policies and document security policies |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS55140347A (en) * | 1979-04-20 | 1980-11-01 | Oki Electric Ind Co Ltd | Information sequence security system |
US4382277A (en) * | 1979-05-14 | 1983-05-03 | System Development Corp. | Method and means utilizing multiple processing means for determining degree of match between two data arrays |
GB2094110A (en) * | 1981-01-30 | 1982-09-08 | Eltra Corp | A method and apparatus for locating a discontinuity in a data transmission |
JPS57146361A (en) * | 1981-03-06 | 1982-09-09 | Hitachi Ltd | Decentralized processing method |
US4532588A (en) * | 1982-11-09 | 1985-07-30 | International Business Machines Corporation | Electronic document distribution network with uniform data stream |
JPS59127133A (ja) * | 1983-01-11 | 1984-07-21 | Minolta Camera Co Ltd | デ−タ伝送方式 |
DE3486257T2 (de) * | 1984-01-09 | 1994-04-21 | Hitachi Ltd | Synchrones dezentralisiertes Verarbeitungssystem. |
JPS60154750A (ja) * | 1984-01-25 | 1985-08-14 | Fujitsu Ltd | パケツト通信網における選択的順序制御方式 |
US4653048A (en) * | 1984-05-14 | 1987-03-24 | American Telephone And Telegraph Company | Method for interprocessor message accountability |
JPH0823861B2 (ja) * | 1985-06-14 | 1996-03-06 | 株式会社日立製作所 | 分散処理方法 |
US4712214A (en) * | 1986-01-10 | 1987-12-08 | International Business Machines Corporation | Protocol for handling transmission errors over asynchronous communication lines |
JPH071482B2 (ja) * | 1986-01-22 | 1995-01-11 | 株式会社日立製作所 | 分散ファイルの編集方法 |
-
1987
- 1987-12-18 JP JP62318823A patent/JPH01161566A/ja active Pending
-
1988
- 1988-12-07 IN IN1012/CAL/88A patent/IN171481B/en unknown
- 1988-12-15 DE DE3842286A patent/DE3842286C2/de not_active Expired - Lifetime
- 1988-12-16 KR KR1019880016782A patent/KR920002571B1/ko not_active IP Right Cessation
- 1988-12-16 BR BR888806691A patent/BR8806691A/pt not_active IP Right Cessation
- 1988-12-17 CN CN88108694A patent/CN1009317B/zh not_active Expired
-
1992
- 1992-11-30 US US07/983,250 patent/US5313632A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
IN171481B (zh) | 1992-10-31 |
BR8806691A (pt) | 1989-08-29 |
CN1009317B (zh) | 1990-08-22 |
KR890010688A (ko) | 1989-08-10 |
JPH01161566A (ja) | 1989-06-26 |
US5313632A (en) | 1994-05-17 |
KR920002571B1 (ko) | 1992-03-30 |
DE3842286C2 (de) | 1994-05-19 |
DE3842286A1 (de) | 1989-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5838923A (en) | Method and system for synchronizing computer mail user directories | |
US4972367A (en) | System for generating unsolicited messages on high-tier communication link in response to changed states at station-level computers | |
JPS6170654A (ja) | 分散処理システムにおける資源管理方式 | |
CN1035732A (zh) | 分布式处理系统中的数据处理方法 | |
US5077655A (en) | Communication control device in computer system | |
US7069305B2 (en) | Computer system and a data transfer method thereof using remote direct memory access | |
US20030028729A1 (en) | High performance storage access environment | |
JP3106510B2 (ja) | データ収集システム | |
JPH09146815A (ja) | 分散ファイル管理方法 | |
EP0506688B1 (en) | Packet handling method | |
KR20010102285A (ko) | 직접 메모리 접근 촉진 방법 및 장치 | |
JP2542127B2 (ja) | ネットワ―ク管理装置 | |
JP3190028B2 (ja) | システム資源管理装置 | |
KR900008384A (ko) | 하드웨어 소터유니트 및 그의 에러수집방법 | |
JPH04302338A (ja) | 電子計算機システム | |
JP2002538551A (ja) | データのブロック転送方法及び装置 | |
JP2853607B2 (ja) | ジョブ間通信システム | |
JPH04302040A (ja) | 電子計算機システム | |
JPH06348624A (ja) | アドレス判別装置 | |
JPH05143420A (ja) | ホスト間磁気テープ比較方式 | |
CN117171273A (zh) | 解决数据同步请求的处理装置和方法 | |
JPH05307566A (ja) | 並列処理型内容検索装置 | |
Smith | Doing ILL with an Edsel | |
Nicol | Optimistic barrier synchronization | |
JPS6224377A (ja) | デ−タ通信ネツトワ−クの情報収集方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C13 | Decision | ||
GR02 | Examined patent application | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C15 | Extension of patent right duration from 15 to 20 years for appl. with date before 31.12.1992 and still valid on 11.12.2001 (patent law change 1993) | ||
OR01 | Other related matters | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |