text:
Polyetherpolyamide copolymers are disclosed which comprise the product of the polycondensation of a diamine with the equivalent amount of a dicarboxylic acid and a common polyamide forming component, wherein the diamine contains a polyether block containing at least 3 ether oxygen atoms separated from each other by a carbon chain selected from the group consisting of linear carbon chains of at least 3 carbon atoms, branched carbon chains of at least 2 carbon atoms between the ether oxygen atoms and mixtures thereof and a common polyamide block which is mainly a homopolyamide. The present compositions exhibit improved flexibility and low temperature properties and may be processed by injection molding and extrusion techniques.
1. A thermoplastically processable, flexible polyether polyamide composition comprising the poly-condensation product of
a diamine having a polyether block taken from the class consisting of
H2 N--[--(CH2)n --O--]m --(CH2)q --NH2 (I)
H2 N--(CH2)3 --O--[--(CH2)4 --O--]p --(CH2)3 --NH2 (II)
wherein n and q are individually at least 3, m is 3 to 30, and p is 2 to 30, and
a dicarboxylic acid,
whereby said polyether block is present in an amount of about 8 to about 60% by weight of said composition, said composition further comprising at least one polyamide constituent taken from the class consisting of caprolactam, laurolactam, and aminoundecanoic acid, the sum of all constituents being 100%.
2. A composition of claim 1 wherein n and q are individually 3 to 30.
3. The composition of claim 1 wherein said diamine is (II).
4. The composition of claim 1 wherein said diamine is (I).
5. The composition of claim 1 wherein said dicarboxylic acid comprises a dimerised fatty acid having 36 carbon atoms.
6. The composition of claim 1 wherein said dicarboxylic acid comprises a compound of the formula ##STR2##
7. The composition of claim 2 wherein said ether oxygen atoms are separated from each other by a branched carbon chain selected from the group consisting of branched aliphatic chains, branched cyclo aliphatic chains, branched araliphatic chains and mixtures thereof.
8. The composition of claim 2 wherein the ether oxygen atoms are separated from each other by linear carbon chains which have 3 or 4 carbon atoms.
The present application claims the priority of Swiss Application 1866/79-1, filed Feb. 26, 1979.
The present invention relates to polyetherpolyamides, and particularly to polyetherpolyamides containing at least one polyether block.
It is known to modify homopolyamides exhibiting characteristically high rigidity, high melting point and a large degree of crystallinity, by copolymerization to impart a degree of flexibility to the final copolymer. Such copolyamides, however, have been found to exhibit reduced crystallinity and resistance to chemicals and distinctly lower melting points. Additionally, the processability of these copolyamides is substantially reduced as a result of the reduction in crystallinity and rate of crystallization, with the result that these polyamides have limited utility, in any, in processes such as extrusion, injection molding, powder coating or spinning of monofilaments and fibers. These materials have accordingly been utilized primarily as adhesives, as set forth in West German Patent Application No. 2,445,167.
There is great commercial interest and demand for polymeric materials exhibiting favorable flexibility, temperature and chemical resistance. Flexible materials are proposed for use in such items as conveyor belts and for joints and unbreakable mountings which undergo substantial shock in use. Flexible, cold shock-resistant polymers are also utilized in winter sports articles, such as ski boot covers, slalom sticks and the like. Flexible materials are likewise useful in the preparation of pipes and tubing for the automotive, aircraft and ship building industries, such as for oil, gas and temperature conduits.
Likewise, in the food industry, the demand is increasing for the development of flexible polymeric films containing no plasticizer component, particularly in the medical and comestible fields. Many polymers such as conventional rubbers are unsuitable due to their poor processability, i.e. their necessity to vulcanize in the mold, and hence incapability of processing by normal extrusion or injection molding processes. These materials have likewise exhibited unsatisfactory chemical resistance and insufficient transparency for certain applications. As a result, conventional rubbers have been replaced by various thermoplastic polymers which show improvement in the foregoing areas. These materials, however, frequently comprising flexible thermoplastic polyesters and polyurethanes, are likewise noted to exhibit certain unsatisfactory properties. For example, thermoplastic polyesters exhibit deficient hydrolysis resistance and lack of transparency, while thermoplastic polyurethanes are frequently unsuitable because of their relatively low utilization temperature. Further, both polyesters and polyurethanes have been found to be too expensive for many applications.
The preparation of so called polyetherpolyamides through modification of conventional polyamides by incorporation of polyether blocks, has been known for the purpose of attaining specific properties, such as increased colorability and moisture uptake and reduced electrostatic charge and is respectively disclosed in British Patent Specification No. 565,350, Japanese Patent Application No. 73 32610, and U.S. Pat. No. 3,843,609. Also, the preparation of polyamides soluble in polar organic solvents is disclosed in German Patent Application No. 1,720,699, while the preparation of water-soluble polyetherpolyamides is shown in U.S. Pat. No. 3,882,090. The polyamides possessing the above properties have achieved recognized utility, however, no high grade thermoplastically workable, flexible polymers are known which, by contrast with the above-described products, possess chemical corrosion and solvent resistance and low water uptake.
In accordance with the present invention, a polyetherpolyamide blockpolymer may be prepared by the polycondensation of a diamine with an equivalent amount of a dicarboxylic acid, wherein the diamine contains a polyether block having at least 3 ether oxygen atoms, said ether oxygen atoms separated by a carbon chain selected from the group consisting of linear carbon chains containing at least 3 carbon atoms, branched carbon chains containing at least 2 carbon atoms between the ether oxygen atoms, and mixtures thereof. The polyether block is present in an amount of from about 8 to about 60% by weight of the total polyetherpolyamide composition. The remainder beeing a common polyamide, mainly a homopolyamide as polyamide 6, 11 or 12.
The present invention further includes a method for the preparation of the polyetherpolyamides which method comprises mixing the reactants comprising the diamine, the dicarboxylic acid and the additional polyamide-forming compound(s), subjecting the mixture to a compression-phase which depends on the nature of the additional polyamide forming component, realising the pressure and degassing the molten polymer under a stream of inert gas, mainly nitrogen for a period of time exceeding one hour, and at an elevated temperature.
In a preferred embodiment of the present invention, the diamine component of the polyetherpolyamide composition has from about 6 to about 30 ether oxygen atoms separated from one another by a linear aliphatic carbon chain, each carbon chain containing from 3 to 4 carbon atoms. The dicarboxylic acid component may be selected from the group consisting of terephthalic acid, isophthalic acid, dimerised fatty acids and mixtures thereof. A preferred dicarboxylic acid comprises a dimerised fatty acid having 36 carbon atoms.
The compositions of the present invention, by providing a separation between the individual ether groups exhibit improved flexibility, temperature resistance, resiliency, bend recovery, high melting point, and corrosion and solvent resistance. Further, high shock and notched-bar impact resistance are exhibited at even favorably reduced temperature ranges, and the materials are amenable to processing by extrusion or injection molding to form a variety of products such as tubes, profiles, films, mono-filaments and the like. The materials may also be prepared in an appearance ranging from translucent to transparent.
The excellent processability makes it easy to modify the product with all kinds of additives, like stabilizers, processing aids, pigments, fillers, glass-fibers, flame retarders, mostly in the molten state of the polymer through common methods.
Accordingly, it is the principal object of the present invention to prepare a polyetherpolyamide which exhibits improved flexibility, temperature resistance and resistance to shock and impact at low temperatures.
It is a further object of the present invention to prepare a polyetherpolyamide as aforesaid that is suitable for processing by extrusion and injection molding and powder coating techniques.
It is yet a further object of the present invention to prepare a polyetherpolyamide as aforesaid which exhibits improved chemical and corrosion resistance, and is capable of being transparent in the finished state.
Other objects and advantages will become apparent to those skilled in the art from a consideration of the ensuing specification.
In accordance with the present invention, the foregoing objects and advantages are readily attained.
The polyetherpolyamides of the present invention are prepared by a polycondensation of a diamine with approximately the equivalent amount of a dicarboxylic acid, in which the diamine contains a polyether block having at least 3 ether oxygen atoms, which ether oxygen atoms are separated from each other by carbon chains of at least 3 carbon atoms length, in the instance of a linear chain, and at least 2 carbon atoms length in the instance of a branched chain. The polyether block should be present in the composition in an amount ranging from 8 to 60% by weight of the total composition. Additionally, the composition containing other polyamide-forming compounds as part thereof.
The diamine component of the present composition preferably contains from 6 to 30 ether oxygen atoms, each separated from one another by a linear aliphatic carbon chain having from 3 to 4 carbon atoms or 2 carbon atoms in the case of branched carbon chains. The present invention however is not limited to aliphatic carbon chains, but encompasses branched aliphatic, cycloaliphatic, and branched araliphatic carbon atom chains.
In one preferred embodiment, the diamine of the present invention may possess the formula
H2 N--[--(CH2)n --O--]m --(CH2)n --NH2
wherein n is at least 3, and preferably ranges from 3 to 4; m ranges from 3 to 30; and the value of n may vary within a given preparation. The preparation of diamines meeting these structural limitations is known and is, for example, disclosed in German Patent Application No. 2,749,972.
A particularly preferred diamine comprises a compound known as bis(3-aminopropyl)-polytetrahydrofuran, manufactured by the BASF Corporation, of Ludwigshafen, West Germany, which comprises a diamine mixture possessing the following formula,
H2 N--(CH2)3 --O--[--(CH2)4 --O--]p --(CH2)3 --NH2
wherein p may range from 2 to 30, and preferably from 6 to 30.
The dicarboxylic acids useful in the present invention include materials selected from the group consisting of terephthalic acid, isophthalic acid, dimerised fatty acids and mixtures thereof. In particular, a commercial mixture of dimerised fatty acids having 36 carbon atoms may be used which is available for example under the tradename EMPOL� Dimer and Trimer Acids, and is manufactured by Unilever Emery, Netherlands. A specially preferred dimerised fatty acid is one with a high content of dicarboxylic acid and a low level of mono- and polycarboxylic acids. A dimerised fatty acid of this type is Empol�1010. Additionally, a suitable dicarboxylic acid may be employed which possesses the formula ##STR1## and which is available as "Diacid 1550", manufactured by Westvaco, Inc., Charleston, W.Va.
The present composition contains additional polyamide-forming compounds. These compounds include the conventional monomers utilized in the preparation of the various nylons, and may in certain instances extend to oligomers and precondensates and other derivatives of these monomers as well. In particular, caprolactam, laurolactam and 11-aminoundecanoic acid, are suitable and may be employed.
The method of the present invention comprises a polycondensation reaction between the diamine and the dicarboxylic acid that in addition reaction with the normal polyamid forming monomer and so forming the inventive blockpolymer. The reaction is normally preformed in one step, but modifications are possible for example a step-wise addition of the dicarboxylic acid and later the diamine to the polymerising normal polyamide monomers.
The polyamide-forming constituent of the present composition may include not only monomers but oligomers or precondensates, and polyetherpolyamide compositions may be prepared which contain conventional polyamide chains, such as homopolyamide and copolyamide blocks adjacent to polyether blocks containing from 3 to 30 ether oxygen atoms.
The foregoing materials are reacted, preferably in an autoclave, and may be heated under a pressure of up to about 20 atmospheres to a temperature sufficient to cause ring-opening of the normal polyamide monomers (lactams) to take place at 260� C. for caprolactam and 290� C. for laurolactam. Heating is conducted under pressure for 1 to 6 hours, after which the pressure is released and the molten polymer degassed for a period of no less than about one hour, and preferably up to about seven hours, under an inert gas-stream.
After completion of the degassing step, the molten product may be recovered by first conducting it as a strand in water, followed by granulation, eventually extracting and drying.
The polyetherpolyamides of the present invention exhibit the properties of high melting point and resistance to chemicals typical of homopolyamides, as well as the flexibility and deformability characteristics of elastomeric materials such as rubbers, butadiene-styrene block copolymers, thermoplastic polyetheresters and the like.
The present invention will be better understood from a consideration of the following illustrative examples.
1.135 kilograms of bis(3-aminopropyl)polytetrahydrofuran, having a molecular weight of approximately 800, were melted down with 0.8 kilogram of a dimerised fatty acid containing 36 carbon atoms, known as EMPOL�1010, and 5.8 kilograms of caprolactam, in a 20 liter capacity autoclave. The melt was brought to a pressure of 18 to 20 atmospheres and a temperature of approximately 260� C., within a period of one hour. Immediately thereafter, the pressure was released over a period of one hour, while the temperature remained at 260� C., followed by degassing the molten product at the same temperature for a period of over five hours. The melt, was pressed in water, granulated after solidification and dried. The product could be injection moulded into test bodies or extruded into shapes such as pipes.
A polyamide was prepared by the method disclosed and employed in Example 1, with the exception that hexamethylenediamine was utilized in place of the bis(3-aminopropyl)polytetrahydrofuran. The reaction products of both examples were tested for various properties and the results are set forth in the annexed Table.
2.00 kilograms of bis(3-aminopropyl)polytetrahydrofuran having a molecular weight of about 800, were melted down with 0.41 kilograms of terephthalic acid in a 20 liter capacity autoclave. The melt was brought to a compression phase of 20 atmospheres for 1 hour at 260� C. The pressure was subsequently released over a period of one hour, while maintaining the temperature at 260� C., and degassing of the reaction product was conducted thereafter over a period of approximately seven hours while the reaction product was protected by a stream of nitrogen. The melt was pressed in water, granulated, extracted with water and dried. The resulting product could easely be injection molded into test bodies, and could be extruded into pipes. As with Examples 1 and 1a, the product of this example was tested, and the properties of the product evidenced by the results of these tests are set forth in the Table.
A polyetherpolyamide was prepared in identical manner to that employed in Example 2, with the exception that the dicarboxylic acid reactant was isophthalic acid, in place of terephthalic acid. The resulting product exhibited comparable properties and processability to that of the product of Example 2, and the results of the identical tests performed on it are likewise set forth in the Table.
6.5 kilograms of bis(3-aminopropyl)polytetrahydrofuran having a molecular weight of about 800, 4.55 kilograms of the dimerised fatty acid employed in Example 1, and 17 kilograms of laurolactam were melted together in a melt-tank that was heated with saturated steam of a pressure of 12 atmospheres. The resulting melt was pressed through a filter into a 50 liter capacity autoclave, and was then subjected to a pressure of from 15 to 20 atmospheres for a period of six hours at a temperature of 290� C. After releasing the pressure the product was degassed at a temperature of 270� C. under a stream of nitrogen until the desired melt viscosity was achieved (about 7 hours).
After cooling in a waterbath and subsequent granulation, a granulate was obtained which could be easely injection moulded into all types of test bodies, or could be extruded into pipes. The final product was tested to determine its properties, and the results are set forth in the Table.
A polyamide was prepared in the same manner outlined with respect to Example 4, with the exception that the diamine component was hexamethylenediamine, rather than bis(3-aminopropyl)polytetrahydrofuran. The properties of the resulting product were tested and reported in the Table, infra.
3.17 kilograms of bis(3-aminopropyl)polytetrahydrofuran having a molecular weight of approximately 800, 2.32 kilograms of a dimerised fatty acid identical to that utilized in Examples 1 and 4, and 30.6 kilograms of laurolactam were melted together in a melt-tank heated with saturated steam of 12 atmospheres pressure. The resulting melt was pressed through a filter into a 50 liter autoclave, where a compression phase with a pressure of 20 atmospheres and a temperature of 290� C. was conducted for a period of about six hours. After releasing the pressure, the product was degassed at a temperature of about 270� C., until the desired melt viscosity was achieved (2.5 hours). The melt was pressed in water and subsequently granulated, and a crude granulate was obtained which could easely be injection moulded into test bodies or extruded into pipes. As with the previous examples, the granulate was tested, and the results of such tests illustrating the properties of the granulate are set forth in the Table appearing below.
TABLE__________________________________________________________________________Test ExampleTest Standard: Example Comparative Example Example Example Comparative ExampleDIN-Units 1 Example 1 a 2 3 4 Example 4 a 5__________________________________________________________________________Impact strength (notched)dry, DIN 53453 kJ/m2 intact 10 intact intact intact 17,3Impact strengthdry, DIN 53453 kJ/m2 intact intact intact intact intact intactFlexural strengthdry, DIN 53452 N/mm2 20 34 29 16 35Modulus of elasticitydry, DIN 53452 N/mm2 265 575 629 250 390Melting pointDTA (maximum) �C. 210 199 207 207 158 126 176Solidification pointDTA �C. 158 152 151 150 127 71 138__________________________________________________________________________ DTA = differential thermal analysis
The polyetherpolyamides of the present invention find wide utility due to their improved flexibility and temperature stability and can be utilized, for example, as a coating material applied and sintered in powder form.
Further the easy plastification of the inventive products, for example in a twin screw extruder permits their mixing and blending with all kinds of stabilizers and additives, like processing-aids, fillers, minerals, glass-fibres, flame retarders and the like.
Finally, flexible elastic fibres of high resistance and high elasticity can also be prepared.
Patent Citations
Referenced by
Original Image


text:
No. 5 Baseball Takes Sweep With 12-3 Win Over Presbyterian
May 5, 2013
RALEIGH, N.C. - The fifth-ranked NC State baseball team turned a third-inning error by Presbyterian into four unearned runs and cruised to a 12-3 victory on Sunday to sweep the three-game series against the Blue Hose at Doak Field at Dail Park.
The Pack (37-11 overall) has now won 19 of its last 20 games, with six series wins during that span.
"This was a big weekend sweep for us," said head coach Elliott Avent. "Presbyterian, if you look at their schedule and the teams they have played, is a really good baseball team.
"I thought we did excellent work all weekend to get the sweep. To win 19 of 20 games in college baseball is almost impossible to do. I'm very proud of the way our team is playing right now as we gear up for the end of the regular-season and look toward postseason play."
Sophomore lefthander Carlos Rodon (6-2) settled down after giving up a two-run homer in the first inning to Presbyterian's Brad Zebedis and finished the game with nine strikeouts and no walks in his seven innings of work.
He retired eight of the final nine batters he faced, with the lone batter who advanced to first reaching on a strike out and wild pitch.
Senior Ryan Wilkins gave up one run in his inning of relief and sophomore Dillon Frye retired all three batters he faced in the ninth.
"Carlos wasn't sharp at the beginning of the game, because it was kind of cold and overcast, but he got a lot better as it went along," Avent said. "I thought he pitched well."
Presbyterian, which had only three hits in 58 at-bats in the first two games of the weekend series with no extra-base hits, took an early lead after Jay Lizanich opened the game with a single up the middle and Zebedis followed with a two-run homer to left centerfield.
But the Pack doubled up that run total in the third with four unearned runs and padded its lead with five more in the seventh.
Second baseman Logan Ratledge went 3-for-4 on the day and scored two runs. Both Jake Fincher and Jake Armstrong had two hits as the Pack's only other players with multiple hits and each drove in two runs. For Fincher, the two hits extended his remarkable run of reaching base to 46 of the Pack's 48 games this season.
Eight of the Pack's nine starters had at least one hit.
Senior Tarran Senay cut Presbyterian's early lead in half with a bases-loaded sacrifice fly to the right-center warning track. Grant Clyde walked to reload the bases and Brett Williams drove in the tying run with a full-count walk.
Armstrong then gave his team the lead for good with a two-run single to right field.
Fincher had the big blow in the Pack's seventh inning, with a two-run double on a high fly ball to the right field corner.
NC State returns to action on Tuesday, hosting UNC Wilmington at 6 p.m. at Doak Field at Dail Park. ESPN3 will stream the game live, and WKNC will have radio coverage. Fans can also follow along with live stats on GoPack.com or on Twitter via @NCStateBaseball.

subset: commoncrawl


text:
PCIe RC and device driver for PCIe card
hello all
i am working in a team building an embedded platform containing a PCI express bus. we are considering using NVIDIA nForce4 SLI or NVIDIA nForce4 SLI XE chip in our design, but we were wondering are vendor-specific PCIe messages with data supported?
if they are supported, how should they be handled by our device driver? i.e. if a device sends a vendor-specific message containing data, what will RC (NVIDIA nForce4 SLI and NVIDIA nForce4 SLI XE ) do? will it send an interrupt?
i would also like to know how should our device driver look like, in order to handle vendor-specific messages containing data?
btw we are going to use linux 2.6.15
thanks in advance,
|All times are GMT -5. The time now is 09:05 AM.
Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2015, Jelsoft Enterprises Ltd.
Copyright ©1998 - 2014, nV News.


text:
- Willamette
- Athletics
- News Archive
- 2011
- November
- Vandals Defeat Bearcats in Exhibition
Men's Basketball | Saturday, November 5, 2011
University of Idaho Defeats Willamette, 114-73, in Exhibition
Bearcats Take on Vandals, who Compete in NCAA Division I
MOSCOW, IDAHO -- The University of Idaho defeated Willamette University, 114-73, in a men's basketball exhibition game on Saturday, Nov. 5 at Memorial Gym. The Vandals led by 14 points at halftime, before pulling away over the final 20 minutes.
Ryan Meehan (Sr., Wing) led the Bearcats in scoring with 16 points. He was 5 of 9 from the field, including 2 for 5 on three-pointers. Terrell Malley (Jr., G, Portland, OR/Roosevelt HS) supplied 10 points, while Taylor Mounts (Sr., Wing/Post, Kailua, HI/Iolani School) contributed 10 points and four rebounds.
Kyle McNally (Fr., Post, Salem, OR/Sprague HS) grabbed a team-high 5 boards for the Bearcats. Trevor Bos (So.,. G, Lakewood, CA/St. John Boscoe HS) earned three assists.
Stephen Madison topped the Vandals with 23 points on 8 of 11 shooting. He was 2 for 3 on field goals, went 5 for 5 at the line and earned eight rebounds.
Three other Vandals finished with 14 points apiece. Kyle Barone combined his 14 points with a game-high 10 rebounds for a double-double. Deremy Geiger hit 4 of 8 field goals with two 3-pointers and Dazmond Starke went 6 of 9 shooting and grabbed eight boards.
Willamette trailed 8-2 and 20-7, but kept pace with the Vandals over the remainder of the half to stay within striking distance. Idaho attained a slim 32-31 advantage over the final 14:22 of the half to claim a 52-38 lead at the break. WU ended the half with an 8-2 run.
A 5-2 surge by Willamette at the start of the second half cut the lead to 54-43 with 18:10 left in the game. Idaho held a 64-52 advantage after Oliver Hughes (Jr., Wing, Salt Lake City, UT/Judge Memorial HS) hit a 3-pointer for WU with 15:45 to go. The Vandals were in front by 15 points, 74-59, after Mounts hit two free throws with 12:03 remaining.
Idaho was in control the rest of the way, as the Vandals extended the lead to 85-60 at the 8:10 mark and to 97-66 with 5:41 left.
Willamette connected on 40.7% of its field goal attempts (22 of 54) and made 6 of 19 three-pointers (31.6%). The Bearcats converted 23 of 31 free throws (74.2%). Idaho was 39 of 79 from the field (49.4%), 10 of 21 on three-pointers (47.6%) and 26 of 35 at the line (74.3%).
The Bearcats will take on the Willamette Alumni in an exhibition game on Saturday, Nov. 12 at Cone Field House, starting at 6 p.m. (PST). Willamette will open the regular season against D'Youville College (N.Y.) in the opening round of the Calvin Tip-Off Classic in Grand Rapids, Mich., on Friday, Nov. 18
University of Idaho 114
Willamette University 73 (Exhib.)


text:
Festool 492795 Pack Of 10 Brilliant Sanding sheets P-80 100x150mm
- High-performance abrasives for paint and clear coats.
- Preliminary, intermediate and final sanding for painters, joiners, furniture makers and interior fitters.
Technical data
- Grit : P80 qty.
- In pack : 50piece(s)
Call or email our team of specialists for advice that you can trust.
01223 498700
Do you have a special order? Please click here to let us know..
BrandsSelect a brand
Express OrderKnow your codes


text:
A computer network comprises a plurality of hosts and a plurality of hubs, in which each host can communicate with a hub through a connection service using one or more host protocols. Each hub executes a relay service to exchange data with at least one other hub using a hub protocol, in which network a service controller operates to determine dynamically which hub executes a service in response to a request form a service from a host. Thus, the network is not dependent upon the operation of a single hub; and the service controller can cause a connection service to operate on a selected one of a plurality of hubs in dependence upon loading and/or availability.
1. A computer network comprising a plurality of hosts and a plurality of hubs, in which each host can communicate with a hub through a connection service using one or more host protocols, and each hub executes a relay service to exchange data with at least one other hub using a hub protocol, in which network a service controller operates to determine dynamically which hub executes a service in response to a request form a host.
2. A computer network according to
3. A computer network according to
4. A computer network according to
5. A computer network according to
6. A computer network according to
7. A computer network according to
8. A computer network according to
9. A computer network according to
10. A computer network according to
11. A computer network according to
12. A computer network according to
13. A computer network according to
14. A computer network according to
15. A computer network according to
16. A hub for use in a computer network comprising a connection services layer that exchanges data with one or more hosts and a relay services layer that communicates with services on one or more hubs.
17. A hub according to
18. A hub according to
19. A hub according to
20. A hub according to
21. A method of operating a computer network that comprises a plurality of hosts and a plurality of hubs, in which each host communicates with a hub through a connection service using one or more host protocols, and each hub executes a relay service to exchange data with at least one other hub using a hub protocol, in which network a service controller determines dynamically which hub executes a service in response to a request form a host.
22. A method according to
23. A method according to
24. A method according to
25. A method according to
26. A method according to claims 23 in which, after a predetermined time interval, an attempt is made to re-start the failed service on the host.
27. A method according to
[0001] This invention relates to a computer network system.
[0002] When connecting multiple computer host computer systems, particularly, but not exclusively mainframe host systems, two mechanisms are typically used. These are referred to as:
[0003] Bilateral connection
[0004] Hub-based connection
[0005] In the case of bilateral connection, represented in FIG. 2 each host is connected to and must become aware of every other host and have specific functionality to handle every other host at an application level. At a network level, when hosts have different protocols or access mechanisms one, other or both hosts have to include functionality to handle each of the other's protocols.
[0006] This type of configuration is generally manageable where there are just two hosts. However, it becomes difficult when there are three or four hosts, and can be impossible to manage or implement for more than five hosts.
[0007] In the case of a hub-based connection, represented in FIG. 2, each host is connected to a hub. At the application level, each host only need be aware of the hub. For example, when an application logic requests data, the host must decide if the data is local (for example, in an existing local database) or remote (accessed through the hub). No matter how many hosts are subsequently added to the hub, this application level logic never need changed once put in place.
[0008] At the network level, the hub must have protocol support for each host that is connected to it. This type of protocol support for most mainframe systems already exists in available hubs, for example, Runway Open Server from Eland Technologies Limited, Ireland, and can be easily extended for new mainframe systems. However, this configuration has a significant weakness in that failure of the hub can result in failure of the entire network.
[0009] According to the present invention there is, from a first aspect, provided a computer network comprising a plurality of hosts and a plurality of hubs, in which each host can communicate with a hub through a connection service using one or more host protocols, and each hub executes a relay service to exchange data with at least one other hub using a hub protocol, in which network a service controller operates to determine dynamically which hub executes a service in response to a request form a service from a host.
[0010] Thus, the network is not dependent upon the operation of a single hub; the service controller can cause a connection service to operate on a selected one of a plurality of hubs in dependence upon loading and/or availability.
[0011] The connection service typically provides a hub with support for the connection protocols for a host.
[0012] Typically, the service controller of a hub is operative to communicate with the service controller of one or more other hubs to determine status information relating to the or each other hub. More particularly, the service controller is advantageously operative to base its determination of which hub is to operate a connection service upon status information received from one or more other hubs.
[0013] In typical embodiments, the service controller of a hub can request instantiation of a process on another hub. The process may be an application or a network service. Moreover, the service controller can send to the other hub a description of one or more hosts in order that the connection service of the other hub can communicate with the hosts concerned. In order to provide a robust network, upon failure of a service on a first hub, the hub may request instantiation of an instance of the service on a second hub. Advantageously, the service instance instantiated on the second hub provides services to an application executing on a host connected to the first hub. Thus, when a service on a local hub is subject to failure, the service can be provided by a remote hub.
[0014] In an advantageous configuration, each hub is associated with a buddy hub, the buddy hub operating to monitor its status and provide replacement services upon failure of the hub.
[0015] Operation of each host may be defined by a configuration file, each host having an identical configuration file. This can simplify tasks that make changes to the network, such as adding and removing hosts.
[0016] Most typically, data is exchanged between hubs of a network embodying the invention using a common protocol. The protocol may comprise messages encoded in extensible mark-up language (XML).
[0017] Data is typically exchanged between each hub and a connected host using a protocol that is specific to the host. This ensures that the presence in the network appear of other protocols is not apparent to an application executing on the host.
[0018] From a second aspect, the invention provides a hub for use in a computer network comprising a connection services layer that exchanges data with one or more hosts and a relay services layer that communicates with services on one or more hubs.
[0019] In such a hub, the relay services layer transports a service request from an application executing on a host to a service provider process executing on a hub. In a normal condition, the relay services layer and the service provider process execute on the same hub. Alternatively, the relay services layer and the service provider process may operate on two remote interconnected hubs.
[0020] A hub embodying this aspect of the invention may include a mapping layer that operates to transform data between a protocol for exchanging data with a host and a common protocol to exchange data with another hub.
[0021] From a third aspect, the invention provides a method of operating a computer network that comprises a plurality of hosts and a plurality of hubs, in which each host communicates with a hub through a connection service using one or more host protocols, and each hub executes a relay service to exchange data with at least one other hub using a hub protocol, in which network a service controller determines dynamically which hub executes a service in response to a request form a host.
[0022] Most advantageously, upon failure of a service on a first host, the relay service forwards a request for a service to another hub. This failover process ensures an application continues to have its requests handled in the event of a local failure.
[0023] In the event of detection of failure a service on a hub, a request may sent to another hub to instantiate an instance of the failed service. This may be necessary if the service is not already executing on the remote hub.
[0024] It may be that the request is made by the hub on which the service has failed.
[0025] However, if this is not possible (for example, because the hub has completely failed) the request may be made by another hub that operates to monitor the status of services operating on the hub.
[0026] Advantageously, after a predetermined time interval, an attempt may be made to re-start the failed service on the host. This failback process ensures that a service is automatically resumed to a normal condition after a failure has been rectified. Then, subsequent requests for the service may be handled by the hub.
[0027] Having thus described the invention in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
[0028] An embodiment of the invention will now be described in detail with reference to the accompanying drawings, in which:
[0029]FIG. 1 is a representation of the networks of mainframe computers connected in bilateral networks, and has already been discussed;
[0030]FIG. 2 is a representation of a network of mainframe computers connected in a hub-based network, and has already been discussed;
[0031]FIG. 3 illustrates a network of computer systems, together constituting an air travel booking and reservation system embodying the invention;
[0032]FIG. 4 is a representation of a plurality of hosts and a hub in a network being an embodiment of the invention;
[0033]FIGS. 5a, 5 b and 5 c are representations of networks embodying the invention that have, respectively, a monolithic, a highly distributed, and an intermediate configuration;
[0034]FIG. 6 illustrates the interconnection between a service controller, and associated hosts, in a network embodying the invention;
[0035]FIG. 7 illustrates interconnection between hubs in a network embodying the invention;
[0036]FIG. 8 illustrates the components and operation of a relay service being a component of a hub in a network embodying the invention;
[0037]FIG. 9 illustrates movement of data in a network embodying the invention from the point of view of a host;
[0038]FIG. 10 illustrates sending and responding to queries by a host in a network embodying the invention;
[0039]FIG. 11 illustrates an architecture where multiple hosts are connected to a single hub in a network embodying the invention;
[0040]FIG. 12 illustrates data flow through a single hub, as illustrated in FIG. 11;
[0041]FIG. 13 illustrates a multiplicity of relay service processes executing to serve multiple hosts connected to a hub in a network embodying the invention;
[0042]FIG. 14 is a flowchart of a listening stage of a relay service in a hub of a network embodying the invention;
[0043]FIG. 15 illustrates a configuration file for use in an embodiment of the invention; and
[0044]FIG. 16 illustrates interconnection between hubs on a network embodying the invention.
[0045] The present invention now will be described more fully hereinafter with reference to the accompanying drawings, in which preferred embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout.
[0046] This embodiment of the invention is constituted by a hub-based network, illustrated generally in FIG. 3. The clients in this example network are reservation systems maintained by airline companies, and may thus be distributed over a wide geographical area. Each airline company typically has a hub-based network 310, including a server 312 and a plurality of hosts 314, that uses its own protocols within their network. Each of the company networks 310 is connected to one of a plurality of hubs 316. The hubs 316 are interconnected by suitable wide-area network links 320. Within the network as a whole, these disparate systems must be able to communicate with one another in order to handle a request to make a reservation for a journey that involves travel on flights run by more than one airline.
[0047] The preferred embodiment of the present invention uses Runway Open Server (described above) as a server at each hub. A hub, and its interconnections, is shown in FIG. 4. The hub comprises many components:
[0048] Connection services, which includes support for each host's set of connection protocols;
[0049] Message services, at the application layer these make the host functionality and data appear as a generic set of messages; and
[0050] Relay services: a component that uses both message and connection services to receive messages from every host and for each message decides based on contents which host to send it to.
[0051] Thus, server provides connection and message services and the relay service uses these services like any other client.
[0052] As indicated by the arrows in FIG. 4, each company both sends queries ("Q") to the hub and responding ("R") to queries form the hub. It is possible to set up any host to respond to queries or send queries only, depending on requirements.
[0053] A further component of the embodiment, the service controller, is not shown in FIG. 4, because it does not take part in normal query/response traffic. The function of the service controller is to ensure that, as far as a network client is concerned, hub services continue to be provided even if the hub has suffered a partial failure.
[0054] One drawback of the architecture of FIG. 5a is that it is "monolithic", meaning that no matter how many hosts are present on the network, there is only ever one hub and thus one point at which the entire network of hosts can fail.
[0055] However, according to the present invention hub services are distributed over multiple hosts and the relay service is capable of relaying messages to both local and remote servers running on those hosts.
[0056] This makes possible a range of architectures ranging from one hub for all hosts, FIG. 5a, to one hub per host, FIG. 5b or an approach balanced somewhere in between, FIG. 5c.
[0057] Embodiments of the present invention use the relay service to support all of these architectures through simple configuration settings.
[0058] The purpose of the relay service is to allow hub-based networks to be built using the servers. The relay service enhances the server by providing the logic to receive messages from one host and forward or relay to another host based on the message contents.
[0059] The principal purpose of service controller is to provide hub-based networks with high-availability and resiliency. The service controller is responsible for managing the entire system of hubs (the hub network) and ensuring that it is fully operational. There is one service controller process per hub.
[0060] The service controller helps to maintain the availability of a set of distributed application services across multiple machines or hubs. Multiple hubs can be used to build a system or network of services.
[0061] The relay service is used to connect multiple host or mainframe systems (such as airline reservation systems) in a host-to-host or business-to-business architecture. In this embodiment, the relay service is an add-on software component for the Runway Open Server platform.
[0062] The server itself has the ability to provide a plugable protocol stack and complex message mapping. This alone allows multiple hosts with entirely different access mechanisms to be seen as a single consistent message source. The relay service enhances the server by providing the logic to receive messages from one host and forward or relay to another host based on the message contents.
[0063] In a relay service solution there are normally multiple hubs each running multiple processes. The service controller is there to increase the availability and stability of this kind of solution. The service controller runs on each hub and allows the services of the hub network to move from one hub to another in the event of certain hubs or connections going down.
[0064] Message and connection services are accessed via an API. The API comes in many forms including C++ headers and libraries, Java classes, Windows ActiveX controls, etc. The API accesses the server itself using TCP/IP sockets.
[0065] Connection services are provided by a connection broker component (or process) and one or more connection provider components (or processes).
[0066] A connection provider implements a protocol to a host system. Connection providers may talk to a host system directly (this is called a low-level connection provider) or via other connection providers (this is called a tunnelling or stacked connection provider). In the travel industry lots of protocols are stacked, e.g. EDIFACT over IATA Host to Host over MATIP (Mapping Airline Traffic over IP).
[0067] Together, the connection broker and connection provider are used to implement the connection services.
[0068] The connection services offer a simple API for connecting to hosts, sending commands, receiving responses and disconnecting. The API to the connection services facilitate the commands to be summarised below.
[0069] All API calls translate into TCP/IP socket calls, the details of socket traffic, the server's RPC protocol, are hidden from the caller of the API and are not particularly relevant to the operation of relay service.
[0070] Open (virtual host name)
[0071] Opens a connection or session to the host system. The virtual host name refers to a section of the system configuration. The API is simple but the hidden complexity of the service is that the broker decides which provider is required and the API then connects to that provider. Returns a SESSION.
[0072] Send (SESSION, data)
[0073] Sends data to a host session (created by the Open command). The data is an ANSI character string. No protocol-specific packaging is required (headers/trailers, session management, etc.) as this is all provided by the connection providers.
[0074] Recv (SESSION)
[0075] Receives data from a host session. The data is an ANSI character string as any protocol-specific packaging is removed by the connection providers. Returns data.
[0076] Close (SESSION)
[0077] Closes a host session.
[0078] Message services are provided by the message broker component (or process) and one or more message provider components (or processes).
[0079] A message provider implements a message mapping mechanism and uses connection services to talk to a host system.
[0080] The purpose of message mapping is to translate a client request in the form of a structured object or extensible mark-up language (XML) into a native command format of a host and to translate the host's response back into a structured object or XML. The structured object, also called a message, is a piece of XML.
[0081] Multiple hosts with different command formats can be made to appear identical by suitable design of the XML/Messages. These messages are sometimes called generic format messages. In a multi-host environment they should be a superset of the functionality of the host systems, with the message mapping doing any necessary data conversion (e.g. date formats, code translation, etc.)
[0082] Together the message broker and message providers are used to implement the message services and the message services in turn depend on the connection services for actual host access.
[0083] The message services offer a simple API for connecting to hosts, sending XML commands, receiving XML responses and disconnecting. The API to the message services facilitates the following commands:
[0084] All API calls translate into TCP/IP socket calls, the details of socket traffic, the RPC protocol, are hidden from the caller of the API and are not particularly relevant to the operation of the relay service.
[0085] Open (virtual host name)
[0086] Opens a connection or session to the host system.
[0087] The message services pass this command onto the connection services.
[0088] Even when using abstract or generic XML to talk to hosts the client application (such as the relay service) needs to be aware of sessions.
[0089] Returns a SESSION.
[0090] Execute (SESSION, Message)
[0091] Message is in XML format.
[0092] The message is mapped by the message provider into native host format.
[0093] The Send( ) function of the connection services API is called to send data to the host.
[0094] The Recv( ) function of the connection services API is called to receive response data from the host.
[0095] The response is mapped by the message provider into Message or XML format.
[0096] Returns a Message/XML response
[0097] Close (SESSION)
[0098] Message provider closes a host session using the Close( ) function of the connection services API.
[0099] MP_GENERIC is an example of a message provider in the server. MP_GENERIC implements a generic mapping description language tool called HMM (Hierarchical Message Mapper). HMM is based on ASCII text files and is easy to write and maintain.
[0100] HMM is loaded and used by MP_GENERIC in a dynamic manner (e.g. when it is created or changed there is no need to recompile or even restart MP_GENERIC or other components).
[0101] HMM is stored in hmm files (e.g. sabre.hmm) and inside the file there are a set of transactions.
[0102] Each transaction comprises an inbound mapping which converts a Query Message (XML) into a native format such as EDIFACT, Sabre SDS (Sabre Structured Distributed Services a data format for communicating with the Sabre GDS (Global Distribution System), etc. and an outbound mapping which converts the native response into a Response Message (XML).
[0103] Before calling either message services or connection services, a client application must bind to a server. Binding is the process of taking a single abstract server group name and with references to a client configuration file resolving it to a physical machine (IP address and ports of message and connection brokers).
[0104] Using the BIND API, the details of IP address or domain name and port numbers of the server are hidden from the client.
[0105] The BIND API also provides some failover capability but this is normally used in a client/server architecture rather than the host-to-host architecture facilitated by the relay service.
[0106] The tasks of the service controller are:
[0107] 1. Verifying that the components (processes) on its hub are operational.
[0108] 2. Moving components around the network (to other hubs, for both failover and failback purposes).
[0109] 3. Keeping track of the location of failed-over components. The following is a list of the network components that may fail:
[0110] a. An entire hub
[0111] b. An entire hub3 s network access (to other hubs)
[0112] c. An application or service process running on a hub
[0113] d. A particular Host connection from a hub
[0114] e. the service controller Itself
[0115] In the service controller Configuration these components are divided into two groups because there are two distinct types of fail-over handling needed required:
[0116] 1. Services
[0117] 2. Applications
[0118] In a hub-based solution several processes on an individual machine may be talking to each other.
[0119] Application processes handle events and drive the system by calling services, for example, the relay service.
[0120] Service processes respond to requests. Without application processes to call them they remain quiet. An example of a service would be all of the components of server (either Message services or Connection services)
[0121] Applications typically rely on multiple services. When a service is unavailable on a hub all of the applications which use that service must be moved to a hub where the service is available.
[0122] The configuration of the service controller tells it which processes are applications and which are services as well as the dependencies between them.
[0123] The service controller, as illustrated in FIG. 6, is a process 610 that periodically monitors other processes 612 running on its local hub by sending each one a status request message. When the service controller does not get a return signal from the component (within a configurable time limit) that component is flagged as broken and that component is started up on another hub.
[0124] The list of components with which the service controller should communicate, as well as the alternative location of where any component should be started, is determined in the service controller's configuration. At least one secondary hub is listed for each component being monitored, but any number of hubs can be specified.
[0125] Each service controller also communicates with other service controllers in other hubs, FIG. 7.
[0126] It is the communication between the service controllers that allows services to move between hubs. For example, the service controller on Hub1 can tell the service controller on Hub2 to start the "Sabre FLIFO" service on Hub2. Each service controller can only start processes on its own hub but can communicate to other service controllers to start processes on other hubs.
[0127] In the case of a whole hub going down, the service controller on that hub will not be available. If the service controller itself is stopped or crashed, the entire hub is considered to be down and failover all of the applications and services is required.
[0128] To detect this, each hub has another hub that is looking out for it—called a "buddy hub". If a hub discovers its buddy has gone down, it starts up all the services of that failed hub on the appropriate backup hub.
[0129] When an individual component goes down the service controller will have to inform all other hubs that a service needs to be moved.
[0130] The items that can be restarted/rerouted are:
[0131] Routing service (considered an application by service controller)
[0132] Components (considered services by service controller)
[0133] When a service controller or a whole hub goes down then it involves rerouting multiple relay services and components.
[0134] Finally any component that is moved to another hub ("failed over") eventually should be moved back ("failed back"). For example, the hub might be repaired and restarted, a network connection might become available, and so forth.
[0135] Failback is handled by attempting to restart a component on its original hub after a configurable amount of time has elapsed (such as 10 minutes) but not before that.
[0136] The relay service performs the following steps, shown in FIG. 8, as follows.
[0137] 1. Open a connection (or session) to an origin host system using connection services API.
[0138] 2. In a continuous loop, a "listener thread", listens on this connection for incoming requests. Listening is done by calling the Recv( ) function of the connection services.
[0139] 3. On receipt of a request Recv( ) returns host data.
[0140] The data and the host session are passed as a request to a separate worker thread and the listener thread returns to listening (go to step 1). The listener thread goes to step 1 to allocate a new session after receiving a request from an existing session this is because one session is used for every outstanding request. The worker thread will later use the session to send the response and then free it.
[0141] Subsequent steps are then performed by the worker thread:
[0142] 4. MAP the incoming message from the origin hosts' native request format to a generic format (in this embodiment, XML).
[0143] 5. Examine the mapped message to determine the target or destination host. The examination is based on a configurable field name and set of values, described later. In any case, since the message is mapped already finding a field is easy.
[0144] Finding a service such as a remote server is more complex, for this reason the relay service calls the service controller.
[0145] 6. Send a request to a destination host (via message services API) and receive a response.
[0146] Step 6 encompasses everything that happens on the destination hub, including MP_GENERIC request mapping, connection services sending command and receiving response, and MP_GENERIC response mapping.
[0147] 7. MAP the response from the generic format (XML) to origin host's native response format.
[0148] 8. Send s response to the origin host using connection services API and session passed down from listener thread, then close the session.
[0149] There are several possible data flows in a multiple host solution.
[0150] In a first example, illustrated in FIG. 9, movement and type of data from the point of view of a single host (Host 1, called the originating host) sending queries to one other host (Host 2, called the destination host) is demonstrated.
[0151] Every query and response has an origin and destination host.
[0152] Referring now to the steps in FIG. 9:
[0153] 1. Request in the origin host's native format
[0154] 2. Request in the generic format (request message object XML)
[0155] 3. Request in the destination host's native format
[0156] 4. Response in the destination host's native format
[0157] 5. Response in the generic format (response message object XML)
[0158] 6. Response in the origin host's native format
[0159] In FIGS. 9, message services and connection services are drawn as a single box 910. These services are actually implemented as two APIs used by the relay service and multiple components or processes.
[0160] In the example of FIG. 9, Host 1 is the origin host, which sends queries and Host 2 is the destination host, which responds to those queries. In most real-world applications each host will send queries and respond to queries, as illustrated in FIG. 10. In such cases, the relay service is running to receive queries from the origin host on each hub and there is one instance of the relay service for each host sending queries to the hub.
[0161] Referring to FIG. 10, items 1 a to 6 a represent a query from Host 1 to Host 2, where Host 1 is the "Origin" and Host 2 the "Destination" and Hub 1 is the "Local Hub" and Hub 2 is the "Remote Hub". Items 1 b to 6 b represent a query from Host 2 to Host 1 where Host 1 is the "Destination" and Host 2 the "Origin" and Hub 1 is the "Remote Hub" and Hub 2 is the "Local Hub".
[0162]FIG. 11, shows an architecture where multiple hosts are connected to a single hub system (as distinct from the dual hub of FIG. 9) and hosts may send requests to other hosts on the same hub. It does not matter if the destination host is on the same hub or a remote hub. As all hubs will support the message services which are used to send requests to the destination host.
[0163]FIG. 12, extends FIG. 11 to show data flow in both directions through a single hub. In FIG. 12, the representation of relay service as two separate boxes 1210, 1212 is intentional. There will be one service per query sending host, so the relay service on the left is the relay service listening to Host 1, and the relay service on the right is relay service listening to Host 2.
[0164] Turning now to the thread model in more detail, the thread model of the relay service can be summarized as follows:
[0165] 1. One relay service process per query sending host
[0166] 2. One listener thread per relay service process
[0167] 3. N (configurable) worker threads per relay service process
[0168] 4. Additionally each application on the sending host can be treated as an entire host (if different network queues/sessions are required for different applications.)
[0169] For example, on a hub with four mainframe hosts connected there will be four relay service processes. On a hub with three airlines (A1, A2, A3) and three applications which need to be separate (AVAIL, FLIFO, PNR) there will be nine relay service processes as shown in FIG. 13.
[0170] On the other hand, there is one service controller process (or instance) per hub. Each instance of the service controller monitors the other relay service processes and services on the local machine as well as one other service controller process (a "buddy" process) on one remote machine.
[0171] In more detail, the relay service performs the following steps:
[0172] 1. On start up,
[0173] Open a connection or session to an origin host system using connection services. The server and the host connection are identified using configurable string values, the server group and the virtual host name. These values are passed to Bind( ) and Open( ) functions in the API. The server (connection services) can be local (same machine) or remote (accessed across a network). However the relay service normally listens to hosts connected to the local machine.
[0174] 2. In a continuous loop until shut down, listen on this connection for incoming requests.
[0175] This is managed as a synchronous call to the connection service API's Recv( ) function. A synchronous call (otherwise known as a blocking call) means that the listener thread in the calling code is stopped until the function returns. This is how most C++ functions and APIs operate, though it is worth mentioning here because some communications packages work in asynchronous mode, which would not handle incoming data as quickly.
[0176] This blocking receive mechanism returns data to the relay service as soon as it arrives, the relay service does not have to poll for data, (for example, by calling the Recv( ) function, repeatedly).
[0177] 3. On receipt of a request, pass request text and the session to a separate worker thread and return to listening (go to step 1).
[0178] (The use of a listening thread/worker thread is common in this type of server application.)
[0179] This thread model is necessary to ensure that the origin host can have multiple outstanding requests at one time.
[0180] There is a configurable maximum number of worker threads so that the system does not get flooded by a particular host. If the all the worker threads are busy the listener thread will not do another blocking receive until one of them is free.
[0181] Subsequent steps are performed by the worker thread:
[0182] 4. Map the incoming message from the origin host's native request format to a generic format or request message object.
[0183] If both hosts are using the same data format (e.g. EDIFACT) this step is optional. It is usually necessary because no two hosts are likely to have exactly the same request format even if they both use a common standard such as EDIFACT.
[0184] Note: mapping functionality (used here and in step 7) is statically linked to the relay service, it does not call out to message services (mp_generic) to do this. The relay service is built as an integral component and has the same HMM functionality.
[0185] 5. Examines the message to determine the target or destination host.
[0186] This is done based on a configurable field name and a configurable set of values with each value in the configuration identifying a service name.
[0187] The service name is used to call the service controller. Based on the service name and the current fail-over state of the hubs the service controller will return the server name and virtual host name to use in the next step.
[0188] 6. Send a request to the destination host (via message services) and receive a response. Since request will be sent as a request message object (XML) the response will be a response message object (XML).
[0189] Step 6 includes everything that happens on the destination Hub including:
[0190] (1) mapping of the query into destination format
[0191] (2) sending query to destination host
[0192] (3) receiving response from destination host; and
[0193] (4) mapping the native response back to generic response.
[0194] All of this functionality is provided by the message services (mp_generic component and various connection providers for destination host).
[0195] 7. Map the response from generic format to origin host's native response format.
[0196] 8. Send the response to the origin host using the connection services API (Send( )) and the session passed in from the listener thread. Then close the session (Close( )).
[0197] One instance (or process) of the relay service is run for each host sending queries to the hub. The relay service does not need to be run for hosts that will respond to queries but not send any queries.
[0198] As explained above, after start-up each relay service process goes into a listening stage. FIG. 14 illustrates the listening process in more detail.
[0199] 1. The "receive from server" step has a configurable timeout value. If no data is received by the server the timeout will expire and no data will be returned. Another sleep will immediately be issued. This is shown as Loop 1 and is the most common processing in a hub application.
[0200] Even though the call to the server is a synchronous one (a blocking receive) this loop helps ensure that the relevant component isn't "frozen" and is still operating as normal.
[0201] 2. Loop 1 can also exit with an error condition (not shown). This is most likely to be where the server returns with a response code other than timeout or 0 (indicating data received).
[0202] 3. If data is received the maximum allowable threads has to be checked before a new worker thread is created.
[0203] If the maximum workers are busy then the second loop (Loop 2, in FIG. 14) will come into effect. This is the throttle loop, which ensures that no new messages are read from the host until there are free resources to handle them.
[0204] Loop 2 also has a configurable timeout. This timeout (typically several seconds) indicates a serious error with the relay service and possibly the entire hub, as it means the worker threads are not completing.
[0205] In summary: for every host sending queries there will be one relay service. There may be multiple relay services for any host, such as one relay service per application or group of applications. This is because any one host application can be treated as an entire host in its own right. Normally the host protocols dictate a series of application channels (a type of named channel or pipe), so a particular application's queries will always occur over a certain channel. The connection services can be configured to present such an application channel as a single virtual host.
[0206] Ideally, hub configuration should be as simple as possible, because a multi-hub environment configuration can otherwise be very difficult to manage. To ease management the relay service is designed to allow identical configuration files to be loaded on all hubs. The relay service does not specify how to move the configuration files between hubs or synchronize configuration changes. The service controller can help manage synchronization but the actual movement of configuration files should be done using tools such as FTP and scripts.
[0207] The relay service configuration file is an ASCII text file called rrs.cfg. Like all of the system's configuration files, the rrs.cfg file comprises multiple sections.
[0208] Each section is delimited by a line with the section name in square brackets, as in the example below:
[0209] [ServiceHOSTA]
[0210] [ServiceHOSTB]
[0211] [ServiceGDSX]
[0212] Each service section is named "Service" followed by the service name of the relay service. The example above has three service sections. The three service names are HOSTA, HOSTB and GDSX. When the relay service process is started the first parameter is the service name, e.g. "rrs HOSTA". In this way the relay service knows which section of the configuration file to read. Provided that services on different hubs are given different names, and because any one instance or process of the relay service only reads one section of the configuration file, the same file can be used on multiple hubs, as illustrated in FIG. 15.
[0213] Like all configuration files, rrs.cfg sections comprise lines of name=value pairs. Each name is a setting or configurable item. The values are used to set the behaviour of the relay service. The following names/settings are available in each Service Section of the rrs.cfg file:
[0214] Server
[0215] This is the server group name used in the Bind( ) call to connect to connection services. This refers to the local server which is used to connect to the host this instance of the relay service will listen to. For example, Server=localRunway
[0216] VirtualHostName
[0217] This is the virtual host name used in the Open( ) call to in connection services to open a session to the host this instance of the relay service will listen to. For example, VirtualHostName =sabre_flifo.
[0218] WorkerThreads
[0219] This is the maximum number of worker threads. This prevents flooding from a host system by limiting the number of queries outstanding. When the number of queries outstanding matches the value specified, the Recv( ) function is not called until the at least one of the worker threads completes. For example, WorkerThreads=100.
[0220] InboundMapping
[0221] The server's mapping capability (and thus the relay service's mapping capability, as it is the same) relies on using HMM files. HMM files to define the mapping logic for converting to and from native formats such as EDIFACT into messages or XML.
[0222] This setting refers to a HMM file name and a transaction name separated by a comma. (Each HMM file can comprise multiple "transactions".) The transaction is the piece of HMM which will convert a native query into the generic query (XML) format. For example, InboundMapping=sabre.hmmflifo_query_in.
[0223] OutboundMapping
[0224] This setting refers to a HMM file name and a transaction name separated by a comma. The transaction is the piece of HMM which will convert a generic response (XML) into native response format, for example, OutboundMapping=sabre.hmmflifo_response_out.
[0225] RelayField
[0226] This specifies the name of the field in the generic query format that will be used for routing/relaying decisions. The relay field is used to decide what destination host to send the query to.
[0227] In an example involving FLIFO (Flight Information), the relay field might be airline code, as this could be used to find the destination host. So if the query contains a field, Airline=UA we would know that the query is for United Airlines. For example, RelayField=CarrierCode.
[0228] RelayTargetN
[0229] There can be many RelayTarget settings where N=1, 2, 3, etc. Each value specifies a possible value for the RelayField in the query. After the value, separated by a comma, is the service name. For example:
[0230] RelayTarget1 =UA, apollo_ua
[0231] RelayTarget2 =AA, sabre_aa
[0232] RelayTarget3 =BA,babs
[0233] RelayTarget4 =AC,ac_res
[0234] The RelayField and RelayTargetN settings are used together so that at run time a particular query (containing "CarrierCode=BA" for example) can be mapped to a service name ("babs" in this case).
[0235] The service name is used by the service controller to determine the remote server group and virtual host name used to send the query to the destination node.
[0236] In relation to service controller configuration, it should be noted that every service controller will have a local configuration file but that all the configuration files (on every hub) will be identical. The configuration file comprises a general section read by the service controller on each hub as well as several hub specific sections.
[0237] The general section allows all the service controllers to share some configuration knowledge such as the "buddy chain" or complete list of service controllers in the network.
[0238] The hub specific section contains information on what applications and services should be normally running on the hub as well as the failover hubs. Every process (be it part of an application or part of a service) which may be failed over must be able to respond to the service controller's status request calls.
[0239] The service controller periodically calls an RPC (Remote Procedure Call) on the component.
[0240] To implement this RPC function a component needs to include a special service controller header file and link with a library, this provides all the TCP/IP communication code needed and allows the component developer to simply implement the
[0241] The following is a list of the network components that may fail:
[0242] 1. An entire hub
[0243] 2. An entire hub's network access (to other Hubs)
[0244] 3. An application or service process running on a hub
[0245] 4. A particular host connection from a hub
[0246] 5. The service controller itself
[0247] If either the Hub is lost or it's network access to other hubs is lost, this appears the same to other hubs. In either case, from the point of view of other hubs a hub has left the network. Also, if a service controller crashes the entire hub is considered lost.
[0248] This leaves 3 unique fail-over scenarios:
[0249] 1. An application or service process running on a hub goes down
[0250] 2. A Hub or service controller goes down—"Hub Failover"
[0251] 3. Connectivity to a particular host goes down
[0252] An application is configured as primary processes and a number of services. A service, in turn, is configured as a set of processes and possibly dependant services.
[0253] An application or service is detected as failed in one of 2 circumstances:
[0254] 1. A process fails to respond to RSC_StatusRequest or returns FALSE.
[0255] 2. A process calls RSC_NotifyError on the service controller directly.
[0256] When a failure is detected the service controller needs to move the application or service which involves the following steps:
[0257] 1. Determine the full process list for the application or service
[0258] 2. For each process:
[0259] a) Call the RSC_StartProcess function on the remote node's service controller.
[0260] b) For each process failed over send out an update to the other service controllers by calling RSC_FailoverNotify on the buddy node.
[0261] c) Wait for the configured "failback" time.
[0262] 3. Failback each service and application in turn, this involves:
[0263] a) Start the process locally
[0264] b) If (a) succeeds call RS_StopProcess on the failover hub
[0265] c) If (a) fails, wait for a configured "retry" time before repeating (a).
[0266] d) If (a) succeeds call RSC_FailoverNotify to update other service controllers on current status.
[0267] Hub failure is detected when a service controller calling a buggy service controller using the RSC_BuddyStatusRequest call gets an error or no response from the other service controller.
[0268] The service controller needs to do the following steps:
[0269] 4. Connect to the next service controller in the chain after it's buddy
[0270] 5. Read the failed hub's configuration to determine the services and applications that need to failover
[0271] 6. Determine the full process list from the list of applications and services
[0272] 7. Failover each process in turn, this involves:
[0273] (d) If the process's failover hub is the current hub, start locally
[0274] (e) If the process's failover hub is remote, call the RSC_StartProcess function on the remote node's service controller.
[0275] An application or service might comprise many RSC_StartProcess calls.
[0276] (f) For each process failed over send out an update to the other service controllers by calling RSC_FailoverNotify on the buddy node.
[0277] (g) Wait for the configured failback time.
[0278] (h) Prior to starting failback, the service controller needs to determine if its original buddy is running again or not. It issues another RSC_BuddyStatusRequest, if this fails it returns to step (d), otherwise it starts failback process.
[0279] 8. Failback each service and application in turn, this involves:
[0280] (e) Call RSC_StartProcess on the newly recovered hub. The original hub for this application/process.
[0281] (f) If (a) succeeds call RSC_StopProcess on the failover hub.
[0282] (g) If (a) fails, wait for a configured retry time before repeating (a).
[0283] (h) If (a) succeeds call RSC_FailoverNotify to update other service controllers on current status.
[0284] The host connection failure is detected by the relay service, not the service controller directly.
[0285] As explained above, the relay service is in a constant listening loop with the connection services. If the connection services return an error, for example, an error indicating that the host is not available there is no point in the relay service trying to listen any more.
[0286] In this case the relay service calls the RSC_NotifyError on the local service controller and then exits. Thus, the local service controller is given the job of failing over the relay service which it treats as an application failover/failback scenario.
[0287] Embodiments of the invention allows for high performance, and solutions which can be scaled to any number of machines or hubs. The invention allows for high performance (no polling delays), and a high transaction or message throughput rate to be achieved.
[0288] Embodiments of the invention allows multiple host systems to be added as well as multiple applications to be supported on those hosts.
[0289] Embodiments of the invention also allows multiple hubs to be added as well as multiple applications and services to be supported on each hub.
[0290] Using embodiments of the present invention, additional hosts and applications can be added incrementally (one at a time) and without changing code. Also hosts can be removed very easily. A network can be designed around one or a small number of servers/hubs, or a large number of servers/hubs. Additional hubs can be added incrementally (one at a time) and without changing code. Also entire hubs can be removed very easily.
[0291] Each hub can contain an identical (heterogeneous) set of services or different (heterogeneous) services.
[0292] Hubs in the same system or network can be running different operating systems and different hardware.
[0293] Stability is primarily achieved through redundancy. When the network is designed around multiple servers the solution will be available even if some of the servers are not available.
[0294] Redundancy is managed by the service controller which moves applications and services from one hub to another hub.
[0295] Many modifications and other embodiments of the invention will come to mind to one skilled in the art to which this invention pertains having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the invention is not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
Patent Citations
Referenced by
Legal Events
Original Image


text:
Full Description
These are company's like 1uhost that provide a complete web host package from the domain name ( www.your-domain-name.com ) and the space for your website on the internet, to free website templates that enable you to easily create your new website. Also included will be a control panel to manage your website, email and everything else to do with your domain name. Free software programs and apps will provide you with hundreds of one click install programs for creating blogs from WordPress, Joomla! and php forums etc
So, How do i get a website domain ? visit 1uhost.com ! To learn about cpanel hosting visit cpanel hosting


text:
Results 61 to 64 of 64
Registered Member
- Join Date
- Jun 2008
- Location
- South Lake Tahoe, CA
- Posts
- 355
Posted On:
7/09/2008 12:47am
Style: Muay Thai, BJJ--
This sounds very similar to Grandmaster John C. Kim and his school of Chung Moo Quan/ Oom Yung Doe.
Similarities like:
They both follow a "Grandmaster" Kim that no one gets to meet.
The seminars and camps and ****
The bullshit combination of martial arts that no one has heard of before.
The trying to get people to open up their own schools.
Does anyone know if these two guys are related? Brothers in bullshido? Bullshido Brothers?! SCANDAL!
- Join Date
- Mar 2008
- Posts
- 46
Posted On:
7/09/2008 9:07am
Style: Judo/JKD--
I found this about Grandmaster:
Grandmaster Y. K. Kim breathes, eats, and sleeps martial arts 25 hours a day and 8 days a week. His whole life isdedicated to improving and promoting the Martial Arts.
Sounds great to me, sign up! He has an extra hour in each day and a whole extra day in his week (what does he call the extra day?). It must be wonderful!
Registered Member
- Join Date
- Feb 2008
- Location
- New Zealand
- Posts
- 229
Posted On:
7/09/2008 9:02pm
Registered Member
- Join Date
- Jul 2007
- Posts
- 108
Posted On:
7/10/2008 4:02am
Style: Japanese Martial Arts--Originally Posted by NoTeefa
All what changes is the "lineage" story (Korean, Chinese or Japanese sourced) - the amount of cult mind control - and the amount of loss $$ of naive, round-eyed disposable income!


text:
The notorious LGBT activist Scott Rose who writes for Huffington Post has publicly called for those who oppose same-sex marriage to be killed.
He advocates murdering them without any due process or trial.
Scott Rose is the nasty intolerant thug who brought a charge of academic misconduct against Professor Mark Regnerus of Texas University just because he didn't like the results of his research, which were unfavourable to same-sex parenting. Luckily, the charges were all rejected by the university committee that investigated it, and Mr Rose's spiteful bit of revenge failed.
Rose (real name Rosenweig) is an extremist who asserts non-stop that anything LGBTs want is their "right". Last week he wrote this comment on the LGBT website Stink News, which had reported the rally for Real Marriage in central London :-
Scott Rose 9 DAYS AGO REPORT
"These Christofascists deserve to be nailed up on crosses and left to bleed to death. Society is NOT a heterosupremacist-theocRAT-only country club."
This vicious outburst reveals Mr Rosenweig in his true colours. He is an aggressive psychopath who needs to be sectioned. He is a danger to society.


text:
Guide to the diagnosis, treatment and prevention of conditions from A to Z.
The pancreas is an elongated, tapered organ located across the back of the abdomen, behind the stomach. The right side of the organ -- called the head -- is the widest part of the organ and lies in the curve of the duodenum, the first division of the small intestine. The tapered left side extends slightly upward -- called the body of the pancreas -- and ends near the spleen--called the tail.
The pancreas is made up of two types of glands:
Exocrine. The exocrine gland secretes digestive enzymes. These enzymes are secreted into a network of ducts that join the main pancreatic duct, which runs the length of the pancreas.
Endocrine. The endocrine gland, which consists of the islets of Langerhans, secretes hormones into the bloodstream.
The pancreas has digestive and hormonal functions:
The enzymes secreted by the exocrine gland in the pancreas help break down carbohydrates, fats, proteins, and acids in the duodenum. These enzymes travel down the pancreatic duct into the bile duct in an inactive form. When they enter the duodenum, they are activated. The exocrine tissue also secretes a bicarbonate to neutralize stomach acid in the duodenum, which is the first section of the small intestine.
The main hormones secreted by the endocrine gland in the pancreas are insulin and glucagon, which regulate the level of glucose in the blood, and somatostatin, which prevents the release of the other two hormones.
Transplant surgeon Niraj Desai, MD, explains the pancreas transplant...
Transplant surgeon Niraj Desai, MD discusses reasons why someone would need...
Find a physician at another Johns Hopkins Member Hospital:
Find Additional Treatment Centers at:
Maryland Patients
Find a location near you.
Traveling for Care?
Whether you're crossing the country or the globe, we make it easy to access world-class care at Johns Hopkins.
Outside of Maryland (toll free)
Request an Appointment
Medical Concierge Services
International Patients
Request an Appointment
Medical Concierge Services
New research shows certain young women have a higher risk for heart...
New research shows certain young women have a higher risk for heart...
Specialists at Johns Hopkins' diabetic foot and wound clinic provide...
Specialists at Johns Hopkins' diabetic foot and wound clinic provide...
Connect with Johns Hopkins Medicine
Join Our Social Media Communities >
© The Johns Hopkins University, The Johns Hopkins Hospital, and Johns Hopkins
Health System. All rights reserved.
Legal Disclaimer


text:
'World's Ugliest Woman' Finally Given a Dignified Burial, 153 Years After Her Death
She was called "bear woman," "the bearded and hairy lady" and once described as the hybrid of a human and an orangutan. Throughout her life, her husband exhibited her as a freak of nature on a worldwide tour.
She passed away in 1860 but was never given a proper burial — instead, she was mummified so she could continue being displayed as a circus object. But on Tuesday, more than 150 years after her death, she was finally buried. Now she rests with the dignity that life had rarely afforded her.
Read more: 'World's Ugliest Woman' Finally Given a Dignified Burial, 153 Years After Her Death | TIME.com


text:
Publisher(s): Philanthropy Roundtable
Author(s): Rotherham, Andrew J.
Funder(s): Bill & Melinda Gates Foundation, Challenge Foundation, Joyce Foundation
View Report (148 pages; 1.15MB; PDF)
Area of focus: Teacher Quality
This report summarizes multiple approaches for philanthropies to support principal and teacher development in U.S. schools. It addresses the challenge of improving education by focusing on increasing the quality of human capital, detailing specific avenues of reform, and citing examples of how some funders are approaching them. Common themes include recruitment, training, compensation, and assessment.
Key Findings and/or Recommendations
= Attract new talent to education by building a talent pipeline and working to attract high-caliber candidates to teaching.
= Reform teacher and principal training through new initiatives to undergrad, graduate, and continuing education programs.
= Distribute educators where they are most needed, in schools and subject areas where improvements are needed like math and science.
= Restructure incentives to reward excellence, linking pay to performance.
= Invest in research and advocacy of the elements of successful teachers and principals.
= Public policy changes are necessary for most reforms to take hold.
Geographic Focus: National
Subjects/Keywords: Teacher quality; increasing teacher effectiveness; performance-based incentive; teacher retention; principals; leadership development; school reform
+ Successful strategy
= Observation
– Challenge
© Foundation Center
All Rights Reserved.
Privacy Policy


text:
By Ben Carson |
Wednesday, 09 Jul 2014 01:51 PM
© Creators Syndicate Inc.
Wednesday, 01 Apr 2015 09:46 AM
While I think it is important to have standards, putting such a task in the hands of the federal government is naive, as . . .
Wednesday, 25 Mar 2015 09:25 AM
I do not believe you can have too much knowledge. I do, however, believe that wisdom is every bit as important as knowle . . .
Wednesday, 18 Mar 2015 09:48 AM
The Internet is a large place, and not everyone utilizing it has the best intentions. . . .
If the Dems continue to support PP then I can no longer support them. This...
San Francisco Judge - not only shielding illegal murders but , baby killers...
Well, so much for The Donald's campaign being over due to the negative comments...
If you follow the Constitution, there is no conflict with Christianity.
How did you manage to post that word (describing the nationalist-socialist...
Newsmax, Moneynews, Newsmax Health, and Independent. American. are registered trademarks of Newsmax Media, Inc. Newsmax TV, and Newsmax World are trademarks of Newsmax Media, Inc.


text: We veterans of Oregon football are accustomed to the usual movements within the Inside and Outside Zone Read play and their blocking schemes. Yet in the Fiesta Bowl we ran something unusual with our tight end…. a twist within our Zone Read plays? How did it work and what were the results?


text:
Is your resume in need of a little disruption?
Startups are all about
making things work better.
Our resume writing service is all about doing that for your CV.
StartUpHire is the place to find Sales jobs in and near New York. Review the list below of Sales New York jobs. These Sales jobs represent some of the most rewarding careers available. You can refine your job search for Sales jobs in New York by adding a job title, company name, or keyword to the search box above … or click the "Advanced Search" link for more options. Don't see the employment opportunity you're looking for? Check back soon for more Sales jobs in New York, or sign up for an email alert (link in upper left) to receive periodic updates on new Sales jobs in New York, NY.
Location: New York, NYDepartment: BDType: Full TimeMin. Experience: Senior Manager/Supervisor Summary: The VP of BD leads all healthcare data sales efforts for assigned accounts, including market research, account sizing, & lead targeting, account planning, pipeline management,6/24/2015 New York, NY Save This Job
Healthline is looking for a bright, ambitious self-starter to join our growing ad sales marketing team. The ideal candidate will have a passion to learn as much as possible about client services, project implementation, consumer research and digital marketing. This is an6/22/2015 New York, NY Save This Job
Sales Greater New York City, United States The role: Account Executive Healthcare Do you have a passion for Healthcare? Are you a highly successful software sales executive looking for your next big opportunity? As a Sales Executive for Healthcare at Ayasdi, you will be6/17/2015 New York, NY Save This Job
Location: Continental Plaza, Hackensack, NJ 07601 Job Description: Panaya, a fast growing successful Company is seeking a superstar Account Manager to manage an entire state of the art ?Sales 2.0? process in South East Market. The Sales Manager is responsible for converting6/16/2015 Hackensack, NJ Save This Job
Role: ZEDO is looking for a Publisher Development Director with experience in dealing with online publishers. This position will be responsible for building and managing the ZEDO publisher network. The primary focus of the role will be on finding strategic, long-term premium6/14/2015 New York, NY Save This Job
Job Description: Vivax Medical Corporation is the leader in patient safety through the Soma CareTM Program and the use of the Soma TM Safe Enclosure. Working with acute care and rehabilitation facilities in the specified territory, the Regional Account Manager will be6/13/2015 New York, NY Save This Job
Job ID: 18285 Job Location: New York Overview The Account Executive Team is an integral component of Intralinks? comprehensive global growth strategy for DealNexus. The Team operates on the front lines, cultivating new clients and nurturing relationships with existing ones in the6/8/2015 New York, NY Save This Job
Job ID: 16584 Job Location: New York Overview The Strategic Account Manager role is responsible for ensuring customer success, which includes the execution and/or oversight of Customer Lifecycle Management (CLM) activities such as account reviews, upsell and renewal of Intralinks6/8/2015 New York, NY Save This Job
Location: New York Opportunity: Today?s communications landscape is dynamic and increasingly complex. Actiance allows companies to leverage enterprise social software, unified communication, instant messaging, and social networks in a way that allows them to improve collaboration6/2/2015 New York, NY Save This Job
Location: Princeton, NJ NIKSUN is the recognized worldwide leader in making the Unknown Known, by using next generation technology that revolutionizes the way networks and services are secured, protected and managed. The company develops and deploys a complete range of6/1/2015 Princeton, NJ Save This Job
Account Director â ProgrammaticLocated in Santa Monica, CA or New York, NY.We are looking for a detail-oriented individual to fill a key role in a high profile business development group. As a Account Director on the Programmatic Team, you will be directly responsible for8/3/2015 New York City, NY Save This Job
More information about this job: About Everyday Health, Inc.: Everyday Health, Inc. (NYSE: EVDY) is a leading provider of digital health and wellness solutions. Everyday Health attracts a large and engaged audience of consumers and healthcare professionals to its premier health7/22/2015 Manhattan, NY Save This Job
New York About You: Reporting to the Chief Operating Officer and leading a team of four, the VP of Marketing will define, drive and implement a cohesive Corporate Marketing Strategy to position PulsePoint as THE leading global programmatic platform for brand engagement. The7/16/2015 New York, NY Save This Job
RN?s mission Since 1994, LRN has helped 15 million people in 700 companies worldwide simultaneously navigate complex legal and regulatory environments and foster ethical cultures. LRN's combination of practical tools, education and strategic advice helps companies translate their7/13/2015 New York, NY Save This Job
Description ePromos Promotional Products, Inc., a five -time winner of ASI Best Place to Work, is one of the fastest growing promotional products company in the U.S. We recommend and provide custom branded merchandise and apparel to businesses and organizations of all sizes7/10/2015 New York, NY Save This Job
Job Type: Full-Time Location: New York Metropolitan Area Department: Sales RingCentral provides cloud computing based business phone systems designed for today's mobile and distributed business world. The RingCentral technology platform eliminates the need for expensive and7/7/2015 New York, NY Save This Job
New York, NY Job Description The field marketing manager is responsible for creating and executing regional and local field marketing programs. You?ll have the opportunity to develop strategic marketing plans that create awareness, generate engagement, retain customers, and7/7/2015 New York, NY Save This Job
Position Type: Full-Time ScaleMP is seeking an experienced Systems Engineer to provide all aspects of pre-sales technical support across the United States. Systems Engineers are responsible for actively driving and managing the technology evaluation stage of the sales process,7/5/2015 Fort Lee, NJ Save This Job
ecVision is looking for an Account Executive to develop new strategic and major account opportunities for our cloud-based, Supply Chain Collaboration Solution, ecVision B2B Portal, for the apparel industry. Key Responsibilities: Manage territory across strategic, major account6/30/2015 Iselin, NJ Save This Job
New York City This is a rare opportunity to be a part of a critical team at the crossroads of sales, product management, and marketing for a breakthrough company that is disrupting a $35B market. The MongoDB community is transforming industries with incredibly innovative6/21/2015 New York, NY Save This Job


text:
Top Definition
Designated Ugly Fat Friend
Two hot chicks at a bar will have a really nasty fat ugly bitch hanging out with them, refered to as a "DUFF".
"Wow that fat DUFF is hanging out with those two attractive ladies, too bad."
"Wow that fat DUFF is hanging out with those two attractive ladies, too bad."
додав Cobra 26 Січень 2003
152 more definitions
Designated Ugly Fat Friend.
That 3rd girl is definitely the duff of the group.
додав G 2 Січень 2004
An abbreviation for 'Designated Ugly Fat Friend'. Often in many large groups of women (usually adolecents) there will be a D.U.F.F. as a means to look better by comparison.
I only hang out with her becuase I need a D.U.F.F., otherwise, she'd be, so, history.
додав B.a.m 20 Грудень 2005
UK usage
1) Something that's flawed or faulty
2) To duff up, to assault, beat up etc
1) Something that's flawed or faulty
2) To duff up, to assault, beat up etc
He sold me a duff DVD so I duffed him up.
додав black flag 31 Травень 2004
A unattractive female who is always seen with another female who is marginally more attractive. It is usually impossible to score with the hotter female without the duff receiving her fair share of the action.
Damn! I so wanna tap that chick.. but goddamn, she always has that duff Nicole hanging off her. Look at that fat mess!
додав Steve0 20 Серпень 2004
marijuana that has already been run through a vaporizer at least once.
all i've got left to vaporize is some duff from last week, but we can still get pretty high.
додав stoner 18 Червень 2006