[Twisted-Python] Twisted systems talking to one another

Michael McLay mclay at python.net
Mon Apr 7 15:00:09 EDT 2003

Are there any examples of having two twisted servers exchanging information. 
The scenario I need to automate is one in which an Original Equipment 
Manufacturer (OEM) negotiating a contract with an Electronic Manufacturer 
Systems (EMS) company. The EMS would procure parts and build a product, such 
as a generic personal computer, a router, or some other type of electronics 
that are mass produced, but with very short product lifecycles.

In this scenario the OEM would use PerspectiveBroker to publish the content of 
a Request for Quote. The contents of the product data package would not be 
entirely revealed to potential bidders. The data would be gradually made 
available based on the state of negotiation in the contracting process. This 
pattern parallels the gradual disclouse of information about the virtual 
world in a MUDD game. 

The trading partners who may wish to bid on the RFQ would copy the initial RFQ 
announcement to the local server where they could run an analysis program 
over the basic contract requirements. If the initial requirements look 
promising they would submit a request for additional information, passing in 
their qualifications in exchange for the added information. A non-disclosure 
agreement would be part of this exchange. Then eventually goal would be to 
respond to the RFQ with a quote and receive a contract to build the OEMs 
product. Between the initial receipt of the RFQ and the sending of the quote 
the two servers would engage in a series of moderated transactions for 
negotiating the terms and conditions for the contract, as well as negotiating 
the schedule for delivery and the potential to substitute parts in the 
assembly process. Some of the transactions between the two companies could be 
totally automated, while others may require human intervention in the 
decision making process.

According to the PerspectiveBroker documents I think this process could be 
made to work. One problem will be in setting up a universal authentication 
mechanism. This may just require using LDAP at all trading partnet sites and 
then federating the LDAP servers into a trading community. I haven't done 
something like that before, so that might be a bit of a challenge.

There are standards for the informationthat need to be used during the 
transactions (RosettaNet and OAG define that XML representations of documents 
such as an RFQ; and IPC defines representations for bills of materials of 
parts to be used and full product data packages), so I won't need to make up 
that part of the system. The rules governing the negotiations are partially 
defined in the workflow definitions of the document standards. I think most 
of the effort will be in building Gtk user interfaces and building the 
business logic to support the interaction between the trading partners. Each 
stage in the negotiation process needs to be scripted and a user interface 
needs to be created. 

So back to my original question. Are their examples that do something similar, 
perhaps in a different context. Do TwistedMatrix MUDD worlds talk to each 
other, do characters and materials shift between worlds, or is each world 
operating in isolation?

I can envision how the operation of the trading partner community could be 
created as a game, or manufacturing simulation environment. Once the bugs 
were worked out the simulator could be used to build and manage a real world 
virtual manufacturing community. Anyone care to estimate how long it might 
take to build the game version of the system using Twisted? I'm too new to 
the software to have a clue on what will be involved. 

More information about the Twisted-Python mailing list