[Twisted-Python] Twisted systems talking to one another
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