ࡱ> xzw|M jbjbj== &WWYlhhhh3333$4|P|4:4444g9Z99 P P P P P P P$R 'T0P9c9g9990Pi>hh44EPi>i>i>9h 44 Pi>9 Pi>i>'@&Ov~O44 H 3<lOO[P0POTi>TOi>hhhhThe Open Computation Exchange & Auctioning Network (OCEAN) http://www.cise.ufl.edu/research/ocean Nachiket Acharya , Chaitanya Chokkareddy, Pinkeshkumar Desai, Rajesh Devrajan, Michael P. Frank, SriramKumar NallanChakravarthula, Murali Nagendranath , Pradeep Padala, Heeyong Park, Gargi Sur, Mark Tobias, Chi-Kin Wong and BongJu Yu Department of Computer & Information Science & Engineering University of Florida Friday, September 28, 2001 Abstract Distributed computing technologies have enormous promise for facilitating a wide variety of massively-parallel and mobile-agent applications. These technologies can also increase computer utilization, if spare computing resources are allocated to support such applications. However, at present, these benefits are largely thwarted by the lack of any effective incentive system to encourage organizations to make their under-utilized resources available to run other organizations' distributed applications. The resulting lack of servers discourages development of distributed applications. Our OCEAN project is attempting to solve this problem, by providing a new distributed computing framework, with extremely low barriers-to-entry, based on a fully automated commodities market for computational resources. Applications within OCEAN can purchase and utilize remote distributed computation resources on demand, while compensating the providers of these resources via a free-market mechanism. The OCEAN is based on a peer-to-peer distributed double-auction mechanism we have developed that can quickly find suitable matches among large numbers of computing resources. Once an application has contracted needed resources, it can spawn remote tasks, using emerging standards for cross-platform code migration and communication. OCEAN is specifically designed to facilitate grass-roots growth and rapid, widespread adoption as what will be the de-facto standard platform for most grid-computing and mobile-agent applications.. Keywords: Grid Computing, Distributed Computing Frameworks, Internet Computing, Computational Markets, Peer-to-Peer Technologies, Mobile Agents. 1. Background There are currently millions of people and organizations whose computing resources are connected via the Internet. It has been observed by numerous sources [1, 2, 3, 4, 5, 6] that these resources are frequently idle. Legions of computers online are not involved in any compute-intensive tasks, but only tasks like word processing and browsing the Internet, which consume very little computing power. The total computing power in an organization may often be severely under-utilized, especially outside of peak business hours. Meanwhile, operators of massively parallel applications and services may have trouble cost-effectively procuring the resources they need, especially if their level of resource utilization over time is highly variable. The world of computing has a vast resource-leveling problem that is waiting to be solved. However, the Internet is increasingly omnipresent. The computing world can potentially be revolutionized if systems can transparently buy, sell, and use remote computing resources via the Internet. The system we envision should greatly increase the overall efficiency of the world's utilization of computing resources, thereby leading to increased productivity in many industries, since information technology and its use currently drives a significant and growing fraction of the world's economy. Achieving this goal is non-trivial, however, due to factors such as resource heterogeneity, distributed ownership with different administrative policies and priorities, wide geographic distribution, and varying traffic/reliability/availability conditions. Differing programming and communications standards, and their associated compatibility issues, present another set of problems. There are many existing academic projects such as SETI@Home [12] and GriPhyN [9] that are successfully exploiting the distributed computing paradigm for solving problems in computational science. Recently, a number of ventures such as United Devices [21] have begun to commercialize this phenomenon. But the goal of OCEAN is to go much further, and make distributed computing become the accepted computing paradigm for computer owners, application developers, and users everywhere, for the majority of real-world computing applications, not only in science and engineering domains, but for business and personal applications as well. In the rest of the paper, we present the architecture of OCEAN, and discuss various design issues. We conclude with a summary of the future work we are planning to carry out OCEAN's mission. 2. About OCEAN OCEAN (Open Computation Exchange & Auctioning Network) is a major ongoing project at the University of Florida's Computer & Information Science & Engineering department, to develop a fully functional infrastructure supporting the automated, commercial buying and selling of dynamic distributed computing resources over the internet. (The OCEAN project was started by a group of MIT students and Stanford alumni in 1997; in 1999 it moved, along with its founder's career, to U.F.) OCEAN aims to build a marketplace where CPU time, and associated memory usage and network bandwidth, are the traded commodities. The major components of such a market are the users, the computational resources associated with them, and the underlying market mechanisms that facilitate trade. The core goals of OCEAN are twofold: (1) Anyone who has (or can get) underutilized (or cheap) computational resources should be able to deploy, on those resources, an OCEAN server which can run other people's computing tasks for profit, and (2) Any competent developer should be able to easily write a distributed application, which any user with a credit card number (or other means of automatic payment) should be able to deploy in distributed fashion using as many suitable OCEAN servers (and for as much time) as they can afford to rent for their particular purpose. The users of the system do not need to be human; in many instances, a "user" is actually a programmed agent acting on behalf of a human user [7,8]. Users of computational markets may take the roles of buyers or sellers. The buyers typically have a computation that needs to be performed, while the sellers have access to idle resources that can execute the computation in question. When buyer and seller agents have negotiated a contract, the program requiring the computation (and associated state information) will be transported to the seller's machine, and the computation will be performed. The computational markets role in all of this is to provide an environment in which these interactions may take place in an automatable way. 3. Related Work There are many projects that are roughly similar to OCEAN, in that they provide infrastructures for distributed computing. Most of these, however, differ from OCEAN in that they do not provide an automated, open market having sufficiently low barriers to entry to encourage very widespread adoption (in our opinion). GriPhyN [9], Globus [10], Beowulf [11], SETI@Home [12], Distributed.Net [1], Gnutella [13], IBM Aglets [14], Sun Grid Engine [15], XtremWeb - [16], Condor [17], Legion [18], OceanStore [19], and Ubero [26] are all examples of distributed computing systems that currently lack a market mechanism to compensate resource providers, which in our view severely limits the potential growth of their installed-base of deployed servers, as well as risking loss of resources to those systems, like OCEAN, that will offer compensation. United Devices [21], Entropia [22], Parabon [24], Porivo [25] are examples of ventures that do sell distributed computing resources, but they are closed markets (controlled by these companies), and often may not give the best possible compensation to the resource provider. They also typically present a high barrier to entry to application developers, in terms of not providing a free, open, standard API that any developer can target and test. These systems are also much less flexible than OCEAN, since resource usage must be typically contracted in advance, and cannot be purchased on-demand dynamically by arbitrary applications. They are also less scalable than OCEAN, because of the centralized nature of their resource management, as contrasted with OCEAN's peer-to-peer distributed auction system. Out of all the current projects we know about, the Economy Grid [20] / Compute Power Market (CPM) [23] projects of Rajkumar Buyya and colleagues is the most similar to OCEAN in its goals and spirit. However, even this project currently lacks an auction mechanism to set prices. We have completed a prototype implementation of an auction mechanism, and have initiated discussions with Buyya's group about possible collaboration to make OCEAN's auctioning framework available as a market mechanism for CPM, and also hopefully to cooperate with CPM on market and API standards development. 4. OCEAN Architecture System Architecture The OCEAN, as a system, is a distributed environment aimed at exchanging computational resources over the Internet for payment. A node can be in the OCEAN either directly or indirectly. Either it is on the Internet with direct IP connectivity to other nodes, or it could be behind a firewall in a private IP address space (an intranet). In the later case, a special communications proxy installed on the firewall can provide OCEAN connectivity to and from the intranet, if the site's administrators wish to permit this. An OCEAN node can perform more than one task at a time. E.g., a node can participate in the distributed auctioning process, while simultaneously performing a computation for one or more (often multithreaded) client jobs. The auction itself only requires a small fraction of the computational resources of the OCEAN node, and normally this power is provided for free, as part of the normal overhead cost of participating in OCEAN. However, future releases of OCEAN will provide a mechanism that can even compensate auction nodes for the trades that they successfully facilitate. The high-level system (network) organization is illustrated in Figure [6.1]. The components are described as follows: OCEAN Node. An OCEAN node is an instance of a certain (freely available) server software package, being run on some machine by an organization that wants to buy or sell computational resources. An OCEAN Node normally contains all the core components shown in Figure [6.2], although some components may be omitted or unused in nodes of specialized types, such as gateway nodes and application launch points. Nodes can be deployed all over the Internet, and also behind firewalls. Central Accounting Server. The CAS is the sole centralized entity in the otherwise fully-distributed OCEAN system. Any organization wanting to participate the OCEAN has to first register with and authenticate itself to the Central Accounting Server, and then gets an account. This server processes and logs service agreements and micropayment transactions for individual trades, maintains account balances for all the traders, and periodically talks to the real-world financial networks to debit/credit the traders' outside accounts, according to accumulated funds earned and spent. Firewall/Gateway Node. This node acts a communications proxy for OCEAN nodes living within a private IP space in an organization (or a home LAN). It does the required communications forwarding to allow the OCEAN system to operate transparently through the firewall. Of course, the administrator of the firewall must agree to run the proxy. The OCEAN Naming system (described later) allows even private nodes to be referenced, using appropriate pathnames. Application Launch Point. This could be any device spawning a computation task. It might be a stripped-down OCEAN node running on a mobile device or cell phone, or just any ordinary OCEAN node. It may also be an OCEAN application task that is already running on a node. Node Architecture This section discusses each component of the OCEAN node architecture in Figure [6.2]. As of this writing, only the Auction component has been implemented in the current OCEAN prototype generation. We are currently planning to finish the implementation of the other components by December 2001. Trader Component The Trader component is simply the top-level service provided to buyer or seller entities that are using a particular OCEAN node. The Trader component is used as a Buyer, through the Client Task API, by an application-specific task which wishes to spawn new remote tasks, or to migrate itself to a remote node. In this case, the node is acting as a launch point for the remote tasks. The Trader service enters a bid into the auction system, negotiates a contract with a suitable seller, and then initiates task spawning or migration to utilize the purchased resources. The Trader component is also used as a Seller, through the Node Configuration/Operation API, by built-in (or custom) node operation software. Once configured with an appropriate sales policy, the Trader component advertises the node's availability to the auction system, negotiates sales, and accepts tasks to execute. A third specialization of the Trader component might be as a Reseller, which buys resources from other sellers, aggregates or breaks up the resources into larger or smaller pieces, and then turns around and re-sells them to other buyers. However, this kind of functionality is a relatively low priority for the first release of OCEAN. Auctioning Component The Auctioning component of the OCEAN system is responsible for providing the market mechanisms that facilitate trade. Buyers and Sellers form trade proposals that are entered in auctions. The responsibility of the auctions is to pair the most-willing and best-matching trading partners. When a potential trader is presented with a trading partner, it is then up to them to then negotiate a contract. The negotiation process is implemented with assistance from the Negotiation component of the OCEAN system. It has been noted [23, 31] that the trade proposals in a computational market can be complex. Buyers may have stringent requirements that must be placed on the resources required to perform a computation. For example, a computation may require sophisticated graphics hardware, a high-speed network connection to handle large amounts of data, or strict security protocols. Similarly, sellers may have vast arrays of hardware resources that they submit to auctions. Furthermore, sellers may want to sell resources in bundles, or saleable units, each at differing prices. To deal with this complexity, expressive data definition languages for trade proposals have been developed according to the XML Schema specification [32]. These schemas can be viewed at [34]. Through a Java API, traders generate XML-based trade proposal documents. These documents are submitted to the auctioning system, which consumes all relevant data. Examples of a seller and a buyer documents are provided in Figure [6.3] and [6.4] respectively. The use of XML and XML Schemas provides several advantages. First, because XML is text-based, it provides a platform-independent way of expressing trade proposals. This is important, because the OCEAN system must be able to run on many platforms. Second, the construction of data definition languages gives a common format to trade proposals. This is helpful in the event that OCEAN cannot find a suitable trading partner for a trader who submitted a proposal. In that case, OCEAN can refer the trader to a competing market. Since the trade proposal follows a standard, well-publicized format, the referred market has the potential to parse relevant trading information for the proposal. In this case, OCEAN may collect a finders fee, or employ some other compensation vehicle so that its referral is not given on a completely altruistic basis. Also, because XML schemas are extensible, anyone is free to extend the standard OCEAN schemas to suit their own purposes. For example, new hardware developments may dictate that new types of resources be defined. This also follows the OCEAN philosophy to provide a set of extensible standards and protocols. OCEAN auctions occur in a distributed, peer-to-peer manner. The process is as follows. A trader submits a trade proposal to their local auction. Each node has access to a list of available peer nodes, which is returned by the PLUM. Each trade proposal is propagated to the nodes returned by the PLUM, and entered in their auctions. To avoid infinite propagation of trade proposals, a maximum is placed on the number of propagation steps that a trade proposal may undergo (similarly to IP packet routing). Trade proposals also carry expiration times, after which they are expunged from the system. Since a trader may enter trade proposals in many auctions, it is possible that multiple trading partners will be found for the submitting trader. In that event, it is the responsibility of all traders involved to interact with the negotiation system, so that a contract can be reached between the submitting trader and one of their trading partners. The OCEAN auction is a continuous, sealed-bid, multi-party, double-auction, in which the trade proposals with the highest bid price and lowest ask price are matched first (other things being equal). When a match is found (with resources meeting or exceeding requirements, and bid price exceeding ask price), a match proposal (containing both trade proposals) is reported back to both the buyer and seller, who may then complete their negotiations. Peer List Update Manager Component In the distributed auction system, it is impractical for OCEAN nodes to communicate to all other nodes in a broadcast fashion. Parmeswaran et al. [29] suggests a directory lookup solution. So, the PLUM should communicate to only a select few peer nodes. It is the responsibility of the PLUM component to determine a list of peer nodes with which a node will communicate. The PLUM maintains a list of addresses of other OCEAN nodes (peers) that it knows about, and associated status information about that node (e.g. present & average accessibility, availability, intercommunication bandwidth & latency, etc.). Based on the node administrator's preferences, the PLUM periodically updates its peer list. Initially, the PLUM knows about only one or a few nodes that it is configured to know about at the time it is installed. It measures communications quality by sending test messages. It learns about new peers to consider adding to its list by asking existing peers to communicate their own lists of peer addresses. It periodically culls out from its list old peers that have been unreachable or unavailable for a long time. The PLUM utilizes the Security component to authenticate communications and to securely exchange messages with its peers. The Auction component uses the services offered by PLUM to find promising peers to exchange bids with. The PLUM needs some sort of lightweight database or persistence manager to maintain its state, so that it is not required to re-establish the peer list from scratch every time the node gets rebooted. Negotiation Component The Auctioning system determines who are potential trading partners. The Negotiation system then provides the means to allow traders to agree on the terms of a contract (a service agreement). This includes resolving conflicts that arise when a trader has many potential trading partners. The negotiation component tries to automate the process of negotiation as much as it can. In any event, it also provides methods so that humans can intervene and take over the job of negotiation, if necessary, for a high-value transaction. The Negotiator primarily makes use of the Auction component, through the Trader component. Like most node components, it uses the security and communications component for communications to other nodes on the network. Like all node components, it supports a configuration & maintenance interface for use by the node operator. Its network communications are primarily with the Negotiation components of other nodes. The Negotiation component's role, as its name implies, is to negotiate the terms of the deal with its peer nodes before Task Migration takes place. The Negotiation Component employs an algorithm to decide which node it will do business with, based on the information it receives from the auction component. One possible procedure for negotiation is as follows, though others may be explored as well. The negotiation component receives a list of peers that are viable candidates for negotiations from the Auction component via the Trader Component. Based on a policy set by the Trader layer, the negotiator chooses which peer to negotiate with. In extreme, high-value cases, a human user may be prompted to manually choose the node with which negotiation is to be done. Negotiations take place between the nodes. All the negotiations are in the form of XML documents. The XML schemas for negotiation will be part of the OCEAN standards. If the buyer is satisfied with the seller's initial trade proposal he sends a contract to the seller. If he is not satisfied, he sends an XML document to modify a proposal to the seller based on the proposal it receives from the seller. The seller looks at the modified proposal document and decides if it can do business with the buyer based on the new proposal. If so, it sends back a modified proposal to the buyer. If not, it sends a document to reject the business to the buyer. If the buyer receives a reject business document, it moves onto the next node in the list. If it receives a new proposal from the seller according to its specifications then it sends a contract document which contains details about the deal and which has to be signed by the seller. When the seller receives the contract document it checks it to validate it and if everything is fine, it signs the contract and sends it back to the buyer. If the validation of the contract fails, the seller sends a document, which indicates that the contract is wrong and specifies the mistakes found by the seller in the contract. If the buyer receives a signed contract we move onto step 5. If we receive a contract-failed document we either correct our mistakes if there are any or we send a reject business document and move to step 4. If the nodes do not reach an agreement, we move onto the next most-favored node in the list of potential trading partners and repeat step 3. If the nodes reach an agreement, we return the name of the seller and the signed contract to the Trader component so that it can instruct the Task Spawning and Migration component to migrate the job. For the first version of the product there will be just a simple version of the Negotiation Component. In the future versions more research will be done on conducting multiple simultaneous negotiations among multiple nodes at the same time. Also, research will be done on including intelligence in the negotiation process so that the negotiation component learns from its previous negotiations. Some jobs may take a lot of time and might involve large investments, and require sophisticated negotiation. On the other hand, some deals may be routine short day-to-day activities involving meager investments, and may require only very simple negotiation policies. Task Spawning & Migration Component The Task Spawning and Migration (TSM) component is responsible for code and data mobility; that is, for the proper remoting and execution of client tasks in the network. When a contract for the execution of a computation is successfully negotiated by the negotiation component, the TSM component spawns or migrates client tasks to remote servers using the Security and Communication facilities of each node. The TSM obtains the Task Sender information in the OCEAN Task Object from the Trader Layer subsystem and migrates the OCEAN tasks from the origin (Task Sender, likely Resource Buyer) to the destination(s) (Task Receiver, Resource Seller) through the Communication/Security Layer. This code (compressed file) includes a task description, the executable classes (Java byte code in a jar file, or possibly a .NET CLR assembly) that comprise the actual work that needs to be performed and authentication information in the form of digital signatures and certificates. The TSM on the receiver side sets up a secure sandbox environment and allocates computer resources in the OCEAN node for running the code. The TSM internal system has both a Sender and a Receiver component. The Receiver component of the TSM Layer essentially runs in an infinite loop, listening for incoming requests like a server or daemon. The Sender component of the TSM Layer (at the Task Sender Node) prompts the Receiver component of the TSM Layer (at the Task Receiver Node) to download the java class files from the Sender. After receiving the jar file, TSM will extract the compressed file and then start execution of the task. The communication of any computational results back to the task's originator is the responsibility of the application program. Security Component Security is a major concern in computational markets. Both the parties to a transaction should have confidence in the integrity of the documents. If a buyer has potentially sensitive information associated with its computation, the sellers must ensure that the integrity of data is maintained. On the other side, the security of the sellers data files, private keys and other sensitive information must not be compromised. The OCEAN infrastructure requires that tasks should be able to communicate securely (if at all) with any other tasks that are part of a given distributed job. However, the security aspect of the communication between peer nodes is hidden from the higher layers of the OCEAN architecture. The responsibility of the Security system is to provide services like authentication, access control, confidentiality, integrity, non-repudiation and secure communication. The security mechanism uses symmetric and asymmetric cryptographic techniques to maintain confidentiality of information; CA certificates, digital signatures and Message Authentication Codes (MAC) or hash functions to ensure data integrity and authentication and security managers to implement access control functions and node security. The Auction, Negotiation, PLUM, Communication systems and Node Configuration and Operator API are the consumers of the services offered by the Security system. The security system offers various levels of security, which can be configured by the Node Configuration and Operator API depending on the quality of service required. The Security layer communicates with a recognized Certificate Authority (CA) for authentication and verification purposes. Security plays an especially important role in the CAS (Centralized Accounting Server) node, which contains all centralized OCEAN accounting information. It is also responsible for offering secured exchange of financial information between financial networks and the CAS. See figures [6.1] & [6.2] Communication Component The Communication Component is responsible for any communication to and from any OCEAN node. The component directly interacts with Security and Naming components on the same nodes and the Communication Components on other nodes. The component is primarily responsible for data delivery to the other OCEAN node(s). The communication component can be configured through the Node Configuration / Maintenance Operator Interface. Figure [6.2] The Security component is the most direct customer for the service offered by the Communication component. As a general rule, whatever is received as data, the communication system passes it to the Security system. The communication system uses the services from the Naming system but does not provide any services to the Naming system. The job of the communication component is to take data and URL from the security system, pass the URL to the Naming system and obtain the immediate destination, and pass the data on to the IP network to the destination. The communication system can handle secure and non-secure communication for the security system. The node configuration and operation API can configure the Communication component to block/unblock a node, set the maximum bandwidth allowed to the OCEAN software, and obtain information on packets coming in and going out of the node. Various technologies like Juxtapose (JXTA) [35], SOAP [36], UDDI [37] and JCSI [38] are potential technologies that may be used in implementing Communication Component needs in OCEAN. Naming Component The Naming component is responsible for name resolution in the Network. The Communication component relies heavily on this component. In particular, it is undesirable for components to refer to OCEAN nodes strictly by their IP addresses. The reason for this is that IP addresses can change, not to mention that they can be obscured by firewalls. In addition, it is desirable to not only locate computers in the Network, but it is also necessary to identify the locations of other entities so that they may be contacted. These include computing tasks, data, and resources. The Naming and Communication subsystems provide this functionality: referring to and contacting any OCEAN entity on the Network. Names of OCEAN entities are syntactically defined as extensions to the URL/URI standard. Any resource or process can be located with a URL. The Naming component takes care of naming issues in the OCEAN architecture. It not only solves the resolution of host names to addresses, but also provides a unique naming scheme to address individual entities in OCEAN. This is achieved by using a path-naming scheme as below: ocean://: /: /(any additional hosts on private sub-subnets) /@/ Each hostname or IP address after the first one may be a private hostname (or IP address on a private intranet) of a machine reachable from the preceding host. By using names like these, the communication component uniquely identifies the target machine and target entity, whether or not it has a public, static IP address. Messages are forwarded along the designated path until they reach the eventual destination. Essentially, we are using IP as a link layer protocol, and building a network-routing layer on top of it, to get through the barriers separating different IP address spaces. The Naming module implementation will facilitate easy use of the above convention by providing APIs to manipulate names and parts of names. Central Accounting Server It is the responsibility of the Central Accounting Server (CAS) to log transactions of the business that occurred between the buyer and seller. Every trader on the OCEAN system has an account on the CAS having a stable, fault-tolerant storage capacity, which is similar to a conventional bank account. A given transaction may not involve a very large amount (for example, if a user invokes an application that just runs for 10 seconds on several machines to perform a quick calculation), so micro-payments are accrued to or deducted from the traders account each time a successful transaction takes place, without accessing the external financial networks. This account information is used to make real world transactions with the existing financial networks to debit or credit the traders only periodically or when the balance in the traders account exceeds a particular limit. A trader is not allowed to participate in any transaction as a buyer if the trader's balance after the transaction is below a certain (negative) credit limit. In a distributed environment like OCEAN, the CAS is an exception to simplify the financial operation of the system. If this function is distributed amongst OCEAN nodes, every trader needs a direct merchant account connection with the financial institutions, which may significantly reduce the number of participating traders. Also, there is the issue of logging all the transaction history. There needs to be some secure location where all the account information and transaction history can be stored for archival purposes in case a dispute arises over payment. When there is a centralized control over all the payment transactions, the OCEAN administrators, maintaining the CAS, may ask for a small fee for each transaction. There is no need to implement the CAS functionality on a single server. In fact, suitable fault tolerance methods can be used and the CAS can be implemented on a cluster of computers for acceptable performance, security and availability. Local Accounting Component It is the job of the local accounting component to ensure that every successful negotiation and subsequent transaction gets logged on to the Central Accounting System. It also maintains the nodes own transaction history. OCEAN Client Task API The OCEAN Client Task API provides the primary interface to OCEAN resource buyers. The API will be developed in stages, with the preliminary version concentrating on essential, deliverable, functionality such as submission of tasks; task and account state querying; and task communication and control. Rather than allow the application to access subsystem functionality directly, the API will provide interfaces that abstracts the underlying subsystem interfaces. For example, rather than allow tasks to access, directly, the functionality provided by the Communication system, the API will, instead, route all communications through the Communication system. This creates a level of abstraction that facilitates modularization and hides the internal OCEAN core architecture from applications, in case the internal architecture needs to be changed later. As OCEAN applications need to generate auction proposals, the API provides functionality that allows developers to generate XML documents that describe their resource requirements (buyers) and available resources (sellers). These documents will then be propagated as the buyer's or seller's trade proposal. The API also provides functionality for an application to query its account state (balance, line of credit, etc.) so it can determine, dynamically, how it chooses to precede. OCEAN Simulator The OCEAN Simulator is an environment that replicates the functionality of the OCEAN architecture and supports its Client Task API, while running applications on a single machine. This gives OCEAN application developers a service that permits them to test their applications in an OCEAN-like environment where they may determine if their applications function properly, without fear of delinquent jobs request an inordinate amount of resources on behalf of their owner. This protects the owners line of credit on the OCEAN system. Essentially, the Simulator creates a pseudo-distributed environment by replicating nodes as threads on a single machine. Thus, a developer may test his application on the Simulator to verify results, optimize execution, and estimate an upper bound on the cost of running the application on OCEAN by gathering information on the number of tasks generated, and their run times. The Simulator replicates the OCEAN Client Task API, so applications may be ported to the Simulator without any significant changes. Since the Simulator is not part of the OCEAN system proper, it can be developed independently. This grants tremendous freedom for the designers to extend the Simulator concept to provide a truly distributed environment, and not just a simulated one. There are applications that simply cannot be executed on one machine due to, for example, extreme memory or real-time performance requirements. Future development of the Simulator might allow for applications to provide a list of machine addresses, to which the Simulator may automatically distribute tasks, coordinate communications, and gather results, etc. The OCEAN developers recognize the possibility of several competitive distributed computing markets, and, as such, the Simulator is a service intended to aid an application developer and, in the process, make OCEAN a more attractive distributed computing market. 5. Conclusion Currently OCEAN is in its design and prototype implementation stage at the Computer & Science Information & Engineering department at the University of Florida. The prototype auction component has been nearly completed, but other components remain in an early stage of implementation. However, we intend to complete the prototype implementation and release a beta version of the software for public testing by the end of the second quarter of 2002. Like Napster [30], peer-to-peer communities can grow by themselves as noted by Parmeswaran et al. [29]. The distributed nature of the OCEAN system provides for maximum scalability and robustness for its users. The growth in the user community doesnt raise scalability issues, as the number of service nodes also increases. The architecture of the OCEAN system aims to address scalability and fault-tolerance issues by implementing a distributed peer-to-peer architecture. The core OCEAN system is currently developed in Java and packaged as a single unit. The system can be installed on any machine with JVM with ease. However, Microsoft's .NET framework is also being considered as a possible platform technology for future releases of OCEAN. On the one hand there are Legions of computers with idle computing power, and on the other end there are technologies like mobile devices whose growth is hampered by lack of computing power. The OCEAN aims to help achieve a balance in the computation paradigm. 6. Figures  EMBED Pacestar.Diagram  6.1 OCEAN System Architecture  EMBED Pacestar.Diagram  6.2 OCEAN Node Architecture seller26346 PT1.0S 6.3 Seller trade proposal document buyer73908 www.node1.com:400/jobid/taskid PT1.0S 6.4 Buyer trade proposal document 6. References [1] The Distributed.net homepage, http://www.distributed.net [2] Hayes, Brian, Collective Wisdom, American Scientist, vol.86, no.2, March- April 1998, pp 118-122 [3] The OCEAN homepage, http://www.cise.ufl.edu/research/ocean [4] Patrizio, Andy, Discover Distributed Computing, Byte.com, Sep 1, 1999. [5] The POPCORN homepage, http://www.cs.huji.ac.il/ ~popcorn [6] Regev, Ori and Noam Nisan, The POPCORN Marketan Online Market for Computational Resources, ICE 98, Proceedings of the first International Conference on Information and Computation Economies, October 25-28, Charleston, SC, USA. [7] Drexler, K. E. and Mark S. Miller, Incentive Engineering: for Computational Resource Management, from The Ecology of Computation, Bernardo Huberman (ed.) Elsevier Science Publishers, NorthHolland, 1988. [8] Miller, Mark S. and K. E. Drexler, Markets and Computation: Agoric Open Systems, from The Ecology of Computation, Bernardo Huberman (ed.) Elsevier Science Publishers, NorthHolland, 1988. [9] "GriPhyN -- Grid Physics Network," http://www.griphyn.org [10] "The Globus Project," http://www.globus.org [11] "The Beowulf Project", http://www.beowulf.org [12] The HYPERLINK "D:\\thesis\\xmldocs_qut.doc"SETI@home homepage, http://setiathome.ssl.berkeley.edu [13] "Gnutella: Welcome to Gnutella," http://gnutella.wego.com [14] International Business Machines, "IBM Aglets Software Development Kit - Home Page," http://www.trl.ibm.com/aglets/ [15] Sun Microsystems, "Welcome to Gridware Software," http://www.sun.com/software/gridware/ [16] "XtremWeb," http://www.lri.fr/~fedak/XtremWeb/introduction.php3 [17] The Condor homepage, http://www.cs.wisc.edu/condor [18] The LEGION homepage, http://www.cs.virginia.edu/ ~legion [19] "OceanStore," http://oceanstore.cs.bekeley.edu/ [20] "Economy Grid (EcoGrid) Project", http://www.csse.monash.edu.au/~rajkumar/ecogrid/ [21] United Devices http//www.uniteddevices.com [22] Entropia Inc. http://www.entropia.com [23] "The Compute Power Market (CPM) Project," http://www.computepower.com [24] "Parabon Computation, Inc. - Internet Computing is Computing Outside the Box," http://www.parabon.com [25] Porivo http://www.porivo.com [26] "Ubero Distributed Computing Solutions," http://www.ubero.net/home.asp [27] Coularis, George, Jean Dollimore, and Tim Kindberg, Distributed Systems Concepts and Design, Addison-Wesley, Harlow, England, 2001 [28] Buyya, Rajkumar and Sudharshan Vazhkuda, Compute Power Market: Towards a Market Oriented Grid, CCGRID 2001, Proceedings of the First International Symposium on Cluster Computing and the Grid, May 16-18, Brisbane, Australia [29] Manoj Parameswaran, Anjana Susarla and Andrew Winston, P2P Networking: An Information-Sharing Alternative, IEEE Computer vol. 34 no. 7, July 2001, pp. 31-38 [30] www.napster.com [31] Tobias, Mark J. and Michael P. Frank, The OCEAN Computational Market and its Standardized XML Documents, submitted to CCGRID 01, 2000 http://www.cise.ufl.edu/~mjtobias/research/ocean_qut.pdf [32] World-Wide web consortium, W3C XML Schema - http://www.w3.org/XML/Schema [33] www.cise.ufl.edu/research/ocean/language/schemas [34] Juxtapose http://www.jxta.org [35] World-Wide Web Consortium, "Simple Object Access Protocol (SOAP) 1.1", http://www.w3.org/TR/SOAP [36] "Universal Description, Discovery and Integration: About," http://www.uddi.org/about.html [37] Java Crypto and Security Implementation - http://security.dstc.edu.au/projects/java/jcsi.html    !+,;act:< j w x l{\s''))b,o,D._.00W2q24499I$IIIIIPJVJ8KKKOOOU`V`z`MgNgbgnno0o5CJ 6CJ6>*CJ$CJCJ565 5OJQJ 5>*CJ$5CJ$Tbc. i j x 1kl{\` $`a$`$a$$a$i!%%r's''')+b,c,C.D.00V2W2f3g3y3444556$a$$`a$ 6.8~999;=?%DGIII8K.NOOOQ2U3UUVMW:X$ & Fa$$ & Fa$$a$$a$$`a$:X1YLZ[i\\]]U`V`z`bdMgNgbg+j)loo0ops`$`a$$a$$a$$8^8a$$ & Fa$$ & Fa$0opssatbtu+uyyyyyyyyyz4z=zPzQzXzYz8}S})D#:48xޔ9?Θ٘ژۘ23457S7EFJ6CJCJ5CJ j Uj'!_? UVCJ CJj3^? UV jU 56CJ 56CJ5CJ6OJQJ55CJ CJGsatuu-uwxyyyyYzZz|7}8}S}c()D"#:w`^`$`a$$a$wxޔȗ٘͘ژ67S\~ә$a$$a$`$a$`ә"L^šMoɛʛ$a$$a$:IViߜTmϝHYnžܞ$a$ 1Mğ֟4567EF-. 0^`0$ 0^`0a$$a$$a$-2Dbem|/zأ=B} !OT el'+]abgΨԨ?EFzȩΩϩ޽CJ0J>*B*CJphjB*CJUph B*CJphjB*CJUph6CJ0J>*B*CJph5CJCJI.|}{|>?}~OP fg 0^`0$ 0^`0a$&'\]bcΨϨ@AɩʩWXn$ 0^`0a$ϩЩ1%3V]mu6=ŬKQij5CJ6CJCJno78LM$ 0^`0a$ !"#$%&'()*+,-./0123456789::;<=>?@ABCDEFGHIJKLMNOPQRSTUVWWXYZ[\]^_`abcdefghij$ 0^`0a$$1h/R / =!"#$% Ddn,:<  C A2Z 2Ơ]9 6 D`!. 2Ơ]9 9"'04nx xڽ[ p> I,* $<hE l}}Y/j/4Jm[V8=}֪RzōYtKai%}3GF?eL$c2bJfXLr41NbJ/Fc5bŬ&q`6a Ϳ;doyuJ̧OǞ֦SZkIc-OK;4Xvvxc3z*?zύީ|Td赩1.˜m0.s<}{1T/2sf, "rLf*=pDwbt]7g`edO="^π2Ӎ,6 CL1W<$jȟÇD,43ì"1枀Zm$ȨCyL3DcD&c1?G&cV{5u2zjf4S+2Rҭ]3lrZ'lm4}g›}=u;vE( Kh ja.| etQ?Orw0a ځ)RAϠ$C xԡڙ9Wѯ̭o6Vdp;_ٙ9|L:/0L/Z>Ƭeӗy+ b Y&8\B<+ȿiId0F]1bn4Ynsjl կ(`z۠fD8L35ˣlhF=v8 ըj4EFT^&R>GHшܣYdk|fk|DfOZ/9UM$9,~MClm(1nmP<n/g%KS050If~'ASQMt LJa1eXLe*?c;¢jOc*џa2c݁^ Ac ~rקB1a(ePX~/uVVU<8[5&U 4fDpX44QrFT+p )bq6P*{$I\b aJ2$E&AQbed]#(skX$YX ~]rq^ ?sp8o ZUc#Ƴ`V]̚f-IF,+lЈjʲ`w^DE HE{5Ю_j%g@2\%gٸɮbÝ،Z ?_M֚&r#BKB e~&A!QXBo+R>| } :)^*b<`N9FbܢNՊ)fzYh˝^sQhf[?Ǭhw15*Xca!ר:YVh)4ȧLJa!h|h4b>5ЮM$gG2\$g4d6܅` Z4YdM;_JY&FØJ K g~'A(ţFc'+c  f[o0c!b32zO e"{ UR\\f2(L!JT(:DB !YVh)4N*YwW!UUo(QArQ-zU][(}E*Dt]NYn'#XHB`PB&tȫoWs4t'+3s j@+s{阣ęQzB ۤ^R=)4ȲnJ[OҾBE -")4ɲBU&_de+õ8Er&A)ʹնR#7͓rtꓥ,7*V,sGH!F1?UlQ[L!3L!S;S S""xGh;fN#3j7S=Uv.L!"eTa sRXB3V2\Q. 6 2L/>dY]CIΨjee[&93 % Bws0#5V$K!XBYS3?'A!QX9>r=30n 0O7^¸Eq7|(썗0eveoZL0Bۯz=[vf1^TxyQ!N Ms!Uww}T˟ WBR x&h\De [ VJ[܂i $VI7܇UIUB+~2; 3i8RڮA4NȲBoW8Ac4T(4t{) J _ϧ7;$gMp딜ߦGzZȇt>-!m󄱏xJzd0VY:6]t43: sb6 KE欐sfj(1,14Bf*=9PcJ43c\3uE;5dʜ.vL;53Ìcm=LQ6czQaLs;-01l%,vj`j[WH\zPwQ4]CB}4Ci}4VjS㘸G#=Sc7>Y]S 3\zPD+/Z;#IR<冞$K떰,_֍a4&EZ'Aj(ģuω vQRt5Hsu&+= &!ٚ)3?pOpbQ1n O5FIOL4ZCcb׻XF<+XZ6bDyE;42Ru2r4ZwrdC<Dd'5NN<  C A2jN{\mYP"F.`!>N{\mYP":S@ b` xڽ\}pT?f `p!bL F2uC! j?bvXA]Z+5AkK;i-j[+5Lp 3*6wۻ /wa=E~G'DmwF~ *7X ]) oHG(R#G'R  7R|hEGZؕ-W(^^B͛IsDjrPCص;r#ubh~rɱ:_i=\  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnpqrstuvy~Root Entry  FڹH{Data oWordDocument &ObjectPoolHڹH_1063138220Ara6NHHOle ObjInfoContents}q Oh+'0  4@ \ h t6Open Computer Exchange and Auctioning Network (OEDGE Diagram File Version 3.50 ## Globals Section: X -912 Y -41 Scale 64 PosterRows 1 PosterCols 1 Color1 255,255,255 Color2 192,192,192 Color3 130,130,130 Color4 0,0,0 Color5 0,255,255 Color6 0,0,255 Color7 0,0,160 Color8 128,0,128 Color9 255,128,0 Color10 255,0,0 Color11 128,0,64 Color12 128,64,0 Color13 0,255,0 Color14 0,128,0 Color15 128,128,255 Color16 255,255,0 GridX 32 GridY 32 SnapX 16 SnapY 16 SnapConPtsCentersEdges TRUE ShadowColor 130,130,130 ShadowX 11 ShadowY 11 ShowGrid TRUE AlignToGrid TRUE AlignToGridConPts FALSE AttachMode 2 SBarWidth 180 SBarFigCols 4 SBarLblCols 1 SBarConCols 2 SBarFigHeight 32 SBarLblHeight 32 SBarConHeight 24 Parent "" LargeDropMenus FALSE LastEnd "ER mand single" LastEndLen 36 ConPointMarks 1 CornerRadius 32 Template "Block Diagram.EDG" DevMode 336 { 5C5C4D414E54415241595C707331313400000000000000000000000000000000 010400049C00B4001357010001000100EA0A6F08640001000F002C0101000100 0000030000004C65747465720000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000050524956 E018000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000180000000000102710271027 00001027000000000000000007300A00FFFF0001FF0001FF0000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000 } DevNames 56 { 080011002200010077696E73706F6F6C005C5C4D414E54415241595C70733131 34004E6530313A0000000000000000000000000000000000 } ## Graphics Section: ## Figure Symbols Section: FigureSymbol "data" { FixedAspect FALSE Height 0 Width 0 TextBox >100,>100,<900,<900 Fill { Rect 0,0,1000,1000 } Outline { Rect 0,0,1000,1000 } } FigureSymbol "rounded box 2" { FixedAspect FALSE Height 0 Width 0 TextBox >100,>100,<900,<900 Fill { Rect >150,0,<850,1000 Rect 0,>150,1000,<850 Ellipse 0,0,>300,>300 Ellipse <700,0,1000,>300 Ellipse <700,<700,1000,1000 Ellipse 0,<700,>300,1000 } Outline { Arc 0,0,>300,>300 >150,0 0,>150 Line >150,0 <850,0 Arc <700,0,1000,>300 1000,>150 <850,0 Line 1000,>150 1000,<850 Arc <700,<700,1000,1000 <850,1000 1000,<850 Line >150,1000 <850,1000 Arc 0,<700,>300,1000 0,<850 >150,1000 Line 0,>150 0,<850 } MiniOutline { Arc 0,0,>500,>500 >250,0 0,>250 Line >250,0 <750,0 Arc <500,0,1000,>500 1000,>250 <750,0 Line 1000,>250 1000,<750 Arc <500,<500,1000,1000 <750,1000 1000,<750 Line >250,1000 <750,1000 Arc 0,<500,>500,1000 0,<750 >250,1000 Line 0,>250 0,<750 } } FigureSymbol "connector" { FixedAspect FALSE Height 0 Width 0 TextBox 100,100,900,900 Fill { Ellipse 0,0,1000,1000 } Outline { Ellipse 0,0,1000,1000 } Hot 17 599,1000 783,924 924,783 1000,599 1000,402 924,218 783,77 599,1- 402,1 218,77 77,218 1,402 1,599 77,783 218,924 402,1000- 599,1000 } FigureSymbol "disk simple" { FixedAspect FALSE Height 0 Width 0 TextBox >100,>250,<900,<900 Fill { Rect 0,>100,1000,<900 Ellipse 0,0,1000,>200 Ellipse 0,<800,1000,1000 } Outline { Line 0,>100 0,<900 Line 1000,>100 1000,<900 Ellipse 0,0,1000,>200 Arc 0,<800,1000,1000 0,<900 1000,<900 } MiniOutline { Line 0,200 0,800 Line 1000,100 1000,900 Ellipse 0,0,1000,400 Arc 0,600,1000,1000 0,800 1000,800 } Hot 17 1,>81 77,>44 218,>16 402,>1 599,>1 783,>16 924,>44 1000,>81- 1000,<920 924,<957 783,<985 599,<1000 402,<1000 218,<985 77,<957 1,<920- 1,>81 } FigureSymbol "cloud" { FixedAspect FALSE Height 0 Width 0 TextBox 200,200,800,800 Fill { Ellipse 84,114,672,702 Ellipse 421,89,859,527 Ellipse 573,286,995,708 Ellipse 263,492,721,950 Ellipse 0,528,423,952 } Outline { Arc 84,114,672,702 500,140 120,550 Arc 421,89,859,527 860,300 500,140 Arc 573,286,995,708 720,700 860,300 Arc 263,492,721,950 350,900 720,700 Arc 0,528,423,952 120,550 350,900 } Hot 40 350,900 363,915 447,950 538,950 622,915 686,851 721,767 720,700- 743,708 826,708 904,676 963,617 995,539 995,456 963,378 904,319- 860,300 859,265 826,185 764,123 684,90 597,90 517,123 500,140- 436,115 321,115 212,160 130,242 85,351 85,466 120,550 92,561- 33,621 1,699 1,782 33,860 92,920 170,952 253,952 350,900 } FigureSymbol "arrow right 2" { FixedAspect FALSE Height 0 Width 0 TextBox >50,>250,<700,<750 Fill { Polygon 8 0,>200 <700,>200 <700,0 1000,500 <700,1000 <700,<800 0,<800 0,>200 } Outline { Polyline 8 0,>200 <700,>200 <700,0 1000,500 <700,1000 <700,<800 0,<800 0,>200 } Hot 8 0,>200 <700,>200 <700,0 1000,500 <700,1000 <700,<800 0,<800 0,>200 } FigureSymbol "arrow left 2" { FixedAspect FALSE Height 0 Width 0 TextBox >300,>250,<950,<750 Fill { Polygon 8 1000,>200 >300,>200 >300,0 0,500 >300,1000 >300,<800 1000,<800 1000,>200 } Outline { Polyline 8 1000,>200 >300,>200 >300,0 0,500 >300,1000 >300,<800 1000,<800 1000,>200 } Hot 8 1000,>200 >300,>200 >300,0 0,500 >300,1000 >300,<800 1000,<800 1000,>200 } FigureSymbol "arrow up" { FixedAspect FALSE Height 0 Width 0 TextBox >200,>350,<800,<950 Fill { Polygon 8 500,0 1000,>350 <850,>350 <850,1000 >150,1000 >150,>350 0,>350 500,0 } Outline { Polyline 8 500,0 1000,>350 <850,>350 <850,1000 >150,1000 >150,>350 0,>350 500,0 } Hot 8 500,0 1000,>350 <850,>350 <850,1000 >150,1000 >150,>350 0,>350 500,0 } FigureSymbol "arrow down" { FixedAspect FALSE Height 0 Width 0 TextBox >200,>50,<800,<650 Fill { Polygon 8 500,1000 1000,<650 <850,<650 <850,0 >150,0 >150,<650 0,<650 500,1000 } Outline { Polyline 8 500,1000 1000,<650 <850,<650 <850,0 >150,0 >150,<650 0,<650 500,1000 } Hot 8 500,1000 1000,<650 <850,<650 <850,0 >150,0 >150,<650 0,<650 500,1000 } FigureSymbol "callout 3" { FixedAspect FALSE Height 0 Width 0 TextBox >100,>100,<900,<700 Fill { Polygon 11 0,>150 0,<650 >150,<800 0,1000 >400,<800 <850,<800 1000,<650 1000,>150- <900,0 >150,0 0,>150 Rect >300,0,<700,<800 Rect 0,>300,1000,<500 Ellipse 0,0,>300,>300 Ellipse <700,0,1000,>300 Ellipse <700,<500,1000,<800 Ellipse 0,<500,>300,<800 } Outline { Arc 0,0,>300,>300 >150,0 0,>150 Line >150,0 <850,0 Arc <700,0,1000,>300 1000,>150 <850,0 Line 1000,>150 1000,<650 Arc <700,<500,1000,<800 <850,<800 1000,<650 Polyline 4 >150,<800 0,1000 >400,<800 <850,<800 Arc 0,<500,>300,<800 0,<650 >150,<800 Line 0,>150 0,<650 } Hot 24 <874,<800 <919,<785 <957,<757 <985,<719 1000,<674 1000,>127 <985,>82 <957,>44- <919,>16 <874,0 >127,0 >82,>16 >44,>44 >16,>82 0,>127 0,<674- >16,<719 >44,<757 >82,<785 >127,<800 >150,<800 0,1000 >400,<800 <874,<800 } FigureSymbol "callout 4" { FixedAspect FALSE Height 0 Width 0 TextBox >100,>100,<900,<700 Fill { Polygon 11 0,>150 0,<650 >150,<800 <600,<800 1000,1000 <850,<800 1000,<650 1000,>150- <900,0 >150,0 0,>150 Rect >300,0,<700,<800 Rect 0,>300,1000,<500 Ellipse 0,0,>300,>300 Ellipse <700,0,1000,>300 Ellipse <700,<500,1000,<800 Ellipse 0,<500,>300,<800 } Outline { Arc 0,0,>300,>300 >150,0 0,>150 Line >150,0 <850,0 Arc <700,0,1000,>300 1000,>150 <850,0 Line 1000,>150 1000,<650 Arc <700,<500,1000,<800 <850,<800 1000,<650 Polyline 4 >150,<800 <600,<800 1000,1000 <850,<800 Arc 0,<500,>300,<800 0,<650 >150,<800 Line 0,>150 0,<650 } Hot 24 <874,<800 <919,<785 <957,<757 <985,<719 1000,<674 1000,>127 <985,>82 <957,>44- <919,>16 <874,0 >127,0 >82,>16 >44,>44 >16,>82 0,>127 0,<674- >16,<719 >44,<757 >82,<785 >127,<800 <600,<800 1000,1000 <850,<800 <874,<800 } FigureSymbol "input/ouput" { FixedAspect FALSE Height 0 Width 0 TextBox >200,>100,<800,<900 Fill { Polygon 5 >200,0 1000,0 <800,1000 0,1000 >200,0 } Outline { Polyline 5 >200,0 1000,0 <800,1000 0,1000 >200,0 } Hot 5 >200,0 1000,0 <800,1000 0,1000 >200,0 } FigureSymbol "callout 5" { FixedAspect FALSE Height 0 Width 0 TextBox 100,100,900,750 Fill { Ellipse 0,0,1000,850 Polygon 4 94,626 0,1000 258,765 84,666 } Outline { Arc 0,0,1000,850 238,785 84,666 Polyline 3 84,666 0,1000 238,785 } Hot 20 599,850 783,785 924,666 1000,509 1000,342 924,185 783,65 599,1- 402,1 218,65 77,185 1,342 1,509 77,666 84,666 0,1000- 238,785 218,785 402,850 599,850 } FigureSymbol "callout 6" { FixedAspect FALSE Height 0 Width 0 TextBox 100,100,900,750 Fill { Ellipse 0,0,1000,850 Polygon 4 906,626 1000,1000 742,765 906,666 } Outline { Arc 0,0,1000,850 916,666 762,785 Polyline 3 916,666 1000,1000 762,785 } Hot 20 599,850 783,785 762,785 1000,1000 916,666 924,666 1000,509 1000,342- 924,185 783,65 599,1 402,1 218,65 77,185 1,342 1,509- 77,666 218,785 402,850 599,850 } FigureSymbol "deck" { FixedAspect FALSE Height 0 Width 0 TextBox >50,>200,<850,<950 Fill { Rect 0,>100,<900,1000 Rect >100,0,1000,<900 Rect >50,>50,<950,<950 } Outline { Rect 0,>100,<900,1000 Polyline 5 >50,>100 >50,>50 <950,>50 <950,<950 <900,<950 Polyline 5 >100,>50 >100,0 1000,0 1000,<900 <950,<900 } MiniOutline { Rect 0,200,800,1000 Polyline 5 100,200 100,100 900,100 900,900 800,900 Polyline 5 200,100 200,0 1000,0 1000,800 900,800 } } FigureSymbol "paper" { FixedAspect FALSE Height 192 Width 148 TextBox 100,75,900,925 Fill { Polygon 6 0,0 1000,0 1000,900 875,1000 0,1000 0,0 } Outline { Polyline 6 0,0 1000,0 1000,900 875,1000 0,1000 0,0 Polyline 5 875,1000 900,900 940,912 970,912 1000,900 } } FigureSymbol "person1" { FixedAspect TRUE Height 128 Width 50 Outline { Ellipse 0,0,1000,400 Line 500,400 500,700 Line 0,500 1000,500 Line 0,1000 500,700 Line 1000,1000 500,700 } } FigureSymbol "person3" { FixedAspect TRUE Height 128 Width 64 Fill { Ellipse 320,0,680,234 Polygon 18 0,534 129,288 250,234 750,234 871,288 1000,534 917,534 722,353- 722,964 648,1000 574,1000 500,964 426,1000 352,1000 278,964 278,353- 83,534 0,534 } Outline { Ellipse 320,0,680,234 Polyline 18 0,534 129,288 250,234 750,234 871,288 1000,534 917,534 722,353- 722,964 648,1000 574,1000 500,964 426,1000 352,1000 278,964 278,353- 83,534 0,534 Line 278,483 722,483 Line 278,964 722,964 Line 500,964 500,603 } Hot 22 0,534 129,288 250,234 320,234 320,0 680,0 680,234 750,234- 871,288 1000,534 917,534 722,353 722,964 648,1000 574,1000 500,964- 426,1000 352,1000 278,964 278,353 83,534 0,534 } FigureSymbol "folder" { FixedAspect TRUE Height 154 Width 192 TextBox 50,25,450,125 TextBox 50,200,950,950 Fill { Polygon 12 0,150 75,0 425,0 500,150 958,150 973,156 986,165 995,178- 1000,193 1000,1000 0,1000 0,150 } Outline { Polyline 12 0,150 75,0 425,0 500,150 958,150 973,156 986,165 995,178- 1000,193 1000,1000 0,1000 0,150 Line 0,150 500,150 } Hot 12 0,150 75,0 425,0 500,150 958,150 973,156 986,165 995,178- 1000,193 1000,1000 0,1000 0,150 } FigureSymbol "computer4" { FixedAspect TRUE Height 128 Width 128 TextBox 125,125,875,625 Fill { Polygon 13 0,0 1000,0 1000,750 750,750 750,850 1000,850 1000,1000 0,1000- 0,850 250,850 250,750 0,750 0,0 } Outline { Polyline 13 0,0 1000,0 1000,750 750,750 750,850 1000,850 1000,1000 0,1000- 0,850 250,850 250,750 0,750 0,0 Line 250,750 750,750 Line 250,850 750,850 Rect 100,100,900,650 Rect 125,925,250,950 Rect 900,700,925,725 } Hot 13 0,0 1000,0 1000,750 750,750 750,850 1000,850 1000,1000 0,1000- 0,850 250,850 250,750 0,750 0,0 } FigureSymbol "round sides" { FixedAspect FALSE Height 128 Width 192 TextBox >200,>100,<800,<900 Fill { Rect >500,0,<500,1000 Ellipse 0,0,>999,1000 Ellipse <1,0,1000,1000 } Outline { Line >500,0 <500,0 Line >500,1000 <500,1000 Arc 0,0,>999,1000 >500,0 >500,1000 Arc <1,0,1000,1000 <500,1000 <500,0 } Hot 17 >401,1 >217,77 >77,218 >1,402 >1,599 >77,783 >217,924 >401,1000- <599,1000 <783,924 <923,783 <999,599 <999,402 <923,218 <783,77 <599,1- >401,1 } FigureSymbol "device1" { FixedAspect TRUE Height 50 Width 200 Fill { Rect 0,0,1000,1000 } Outline { Rect 0,0,1000,1000 Rect 50,200,100,350 Rect 50,600,700,800 Line 775,150 775,850 Line 850,150 850,850 Line 925,150 925,850 } } ## End Symbols Section: EndSymbol "block thin2" { LineTo 100 Fill { Polygon 4 500,500 1000,350 1000,650 500,500 } Outline { Polyline 4 500,500 1000,350 1000,650 500,500 } } ## Figure Styles Section: FigureStyle "Title" { Label TRUE Height 64 Width 128 Description "A diagram title" TextFormat 0x0024 Behavior 0x00824A12 Symbol "lbl" TypeSize 14 TypeWeight 400 TypeFace "Arial" } FigureStyle "Title Serif" { Label TRUE Height 0 Width 0 BindToStyle FALSE TextFormat 0x0022 Behavior 0x00A241D2 Symbol "lbl" TypeSize 14 TypeWeight 400 TypeFace "Times New Roman" } FigureStyle "Label" { Label TRUE Height 64 Width 128 Description "An annotation, comment, or title" TextFormat 0x0C24 Behavior 0x00824A12 Symbol "lbl" TypeSize 8 TypeFace "Arial" } FigureStyle "Label Serif" { Label TRUE Height 0 Width 0 BindToStyle FALSE TextFormat 0x0044 Behavior 0x00A241E1 Symbol "lbl" TypeSize 8 TypeWeight 400 TypeFace "Times New Roman" } FigureStyle "Note" { Label TRUE Height 0 Width 0 TextColor 0,0,160 BindToStyle FALSE TextFormat 0x0044 Behavior 0x00A241E1 Symbol "lbl" TypeSize 8 TypeFace "Arial" } FigureStyle "Note Serif" { Label TRUE Height 0 Width 0 TextColor 0,0,160 BindToStyle FALSE TextFormat 0x0044 Behavior 0x00A241E1 Symbol "lbl" TypeSize 8 TypeWeight 400 TypeFace "Times New Roman" } FigureStyle "Rectangle" { Category "Shapes" HasButton TRUE Height 160 Width 288 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "data" TypeSize 8 TypeFace "Arial" } FigureStyle "Ellipse" { Category "Shapes" HasButton TRUE Height 160 Width 288 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "connector" TypeSize 8 TypeFace "Arial" } FigureStyle "Rounded" { Category "Shapes" HasButton TRUE Height 160 Width 288 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "rounded box 2" TypeSize 8 TypeFace "Arial" } FigureStyle "Idea" { Category "Shapes" HasButton TRUE Height 160 Width 288 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "cloud" TypeSize 8 TypeFace "Arial" } FigureStyle "Square" { Category "Shapes" HasButton TRUE Height 160 Width 161 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "data" TypeSize 8 TypeFace "Arial" } FigureStyle "Circle" { Category "Shapes" HasButton TRUE Height 160 Width 160 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "connector" TypeSize 8 TypeFace "Arial" } FigureStyle "RoundEnds" { Category "Shapes" HasButton TRUE Height 160 Width 288 BorderWidth 3 TextFormat 0x0022 Behavior 0x00024E12 Symbol "round sides" TypeSize 8 TypeFace "Arial" } FigureStyle "Arrow right" { Category "Arrows" Height 128 Width 289 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "arrow right 2" TypeSize 8 TypeFace "Arial" } FigureStyle "Arrow left" { Category "Arrows" Height 128 Width 289 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "arrow left 2" TypeSize 8 TypeFace "Arial" } FigureStyle "Arrow up" { Category "Arrows" Height 161 Width 128 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "arrow up" TypeSize 8 TypeFace "Arial" } FigureStyle "Arrow down" { Category "Arrows" Height 161 Width 128 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "arrow down" TypeSize 8 TypeFace "Arial" } FigureStyle "Deck" { Category "Shapes" HasButton TRUE Height 160 Width 288 BorderWidth 3 TextFormat 0x0022 Behavior 0x00024E12 Symbol "deck" TypeSize 8 TypeFace "Arial" } FigureStyle "Document" { Category "Shapes" HasButton TRUE Height 192 Width 148 BorderWidth 3 TextFormat 0x0022 Behavior 0x00024E12 Symbol "paper" TypeSize 8 TypeFace "Arial" } FigureStyle "Parallel" { Category "Shapes" HasButton TRUE Height 160 Width 288 BorderWidth 3 TextFormat 0x0022 Behavior 0x00024E12 Symbol "input/ouput" TypeSize 8 TypeFace "Arial" } FigureStyle "Disk" { Category "Shapes" HasButton TRUE Height 160 Width 288 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "disk simple" TypeSize 8 TypeFace "Arial" } FigureStyle "Folder" { Category "Shapes" HasButton TRUE Height 192 Width 288 BorderWidth 3 TextFormat 0x0022 Behavior 0x00424E12 Symbol "folder" TypeSize 8 TypeFace "Arial" } FigureStyle "Callout Right 2" { Category "Callouts" HasButton TRUE Height 160 Width 288 TextFormat 0x0022 Behavior 0x00024E12 Symbol "callout 6" TypeSize 8 TypeFace "Arial" } FigureStyle "Callout Left 2" { Category "Callouts" HasButton TRUE Height 160 Width 288 BorderWidth 3 TextFormat 0x0022 Behavior 0x00024E12 Symbol "callout 5" TypeSize 8 TypeFace "Arial" } FigureStyle "Callout Right" { Category "Callouts" HasButton TRUE Height 160 Width 288 TextFormat 0x0022 Behavior 0x00024E12 Symbol "callout 4" TypeSize 8 TypeFace "Arial" } FigureStyle "Callout Left" { Category "Callouts" HasButton TRUE Height 160 Width 288 TextFormat 0x0022 Behavior 0x00024E12 Symbol "callout 3" TypeSize 8 TypeFace "Arial" } FigureStyle "Stickman" { Category "People" HasButton TRUE Height 128 Width 50 BorderWidth 3 TextFormat 0x0022 Behavior 0x00424E12 Symbol "person1" TypeSize 8 TypeFace "Arial" } FigureStyle "Person" { Category "People" HasButton TRUE Height 128 Width 64 BorderWidth 3 TextFormat 0x0022 Behavior 0x00424E12 Symbol "person3" TypeSize 8 TypeFace "Arial" } FigureStyle "Computer" { Category "Things" HasButton TRUE Height 160 Width 160 BorderWidth 3 TextFormat 0x0022 Behavior 0x00424E12 Symbol "computer4" TypeSize 8 TypeFace "Arial" } FigureStyle "Device" { Category "Things" HasButton TRUE Height 64 Width 288 BorderWidth 3 TextFormat 0x0022 Behavior 0x00424E12 Symbol "device1" TypeSize 8 TypeFace "Arial" } ## Connector Styles Section: ConnectorStyle "Solid" { HasButton TRUE End1 "null" End2 "null" End1Length 18 End2Length 18 LineWidth 3 EndBorderWidth 3 Behavior 0x00000000 } ConnectorStyle "Solid Arw" { HasButton TRUE End1 "null" End2 "block thin2" End1Length 18 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 255,255,255 Behavior 0x00000000 } ConnectorStyle "DashDot" { HasButton TRUE End1 "null" End2 "null" End1Length 18 End2Length 18 PenStyle 22 LineWidth 3 EndBorderWidth 2 Behavior 0x00000000 } ConnectorStyle "DashDot Arw" { HasButton TRUE End1 "null" End2 "block thin2" End1Length 18 End2Length 28 PenStyle 22 LineWidth 3 EndBorderWidth 3 End2FillColor 255,255,255 Behavior 0x00000000 } ConnectorStyle "Dashed" { HasButton TRUE End1 "null" End2 "null" End1Length 18 End2Length 18 PenStyle 12 LineWidth 3 EndBorderWidth 3 Behavior 0x00000000 } ConnectorStyle "Dashed Arw" { HasButton TRUE End1 "null" End2 "block thin2" End1Length 18 End2Length 28 PenStyle 12 LineWidth 3 EndBorderWidth 3 End2FillColor 255,255,255 Behavior 0x00000000 } ConnectorStyle "Dotted" { HasButton TRUE End1 "null" End2 "null" End1Length 18 End2Length 18 PenStyle 7 LineWidth 3 EndBorderWidth 3 Behavior 0x00000000 } ConnectorStyle "Dotted Arw" { HasButton TRUE End1 "null" End2 "block thin2" End1Length 18 End2Length 28 PenStyle 7 LineWidth 3 EndBorderWidth 3 End2FillColor 255,255,255 Behavior 0x00000000 } ConnectorStyle "Solid Crv" { HasButton TRUE End1 "null" End2 "null" End1Length 18 End2Length 18 LineWidth 3 EndBorderWidth 3 Behavior 0x00000002 } ConnectorStyle "Solid Arw Crv" { HasButton TRUE End1 "null" End2 "block thin2" End1Length 18 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 255,255,255 Behavior 0x00000002 } ConnectorStyle "DashDot Crv" { HasButton TRUE End1 "null" End2 "null" End1Length 18 End2Length 18 PenStyle 22 LineWidth 3 EndBorderWidth 3 Behavior 0x00000002 } ConnectorStyle "DashDot Arw Crv" { HasButton TRUE End1 "null" End2 "block thin2" End1Length 18 End2Length 28 PenStyle 22 LineWidth 3 EndBorderWidth 3 End2FillColor 255,255,255 Behavior 0x00000002 } ConnectorStyle "Dashed Crv" { HasButton TRUE End1 "null" End2 "null" End1Length 18 End2Length 18 PenStyle 12 LineWidth 3 EndBorderWidth 3 Behavior 0x00000002 } ConnectorStyle "Dashed Arw Crv" { HasButton TRUE End1 "null" End2 "block thin2" End1Length 18 End2Length 25 PenStyle 12 LineWidth 3 EndBorderWidth 3 End2FillColor 255,255,255 Behavior 0x00000002 } ConnectorStyle "Dotted Crv" { HasButton TRUE End1 "null" End2 "null" End1Length 18 End2Length 18 PenStyle 7 LineWidth 3 EndBorderWidth 3 Behavior 0x00000002 } ConnectorStyle "Dotted Arw Crv" { HasButton TRUE End1 "null" End2 "block thin2" End1Length 18 End2Length 28 PenStyle 7 LineWidth 3 EndBorderWidth 3 End2FillColor 255,255,255 Behavior 0x00000002 } ## Figures & Connectors Section: Figure 1 { Style "Idea" Text "\fs28 Public Internet" Bounds 608,1312,1152,1632 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "cloud" TypeSize 8 TypeFace "Arial" } Figure 2 { Style "Idea" Text "\fs24 Finacial Networks" Bounds 1520,2384,2096,2736 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "cloud" TypeSize 8 TypeFace "Arial" } Figure 3 { Style "Idea" Text "\fs24 Intranet/ Private IP\line Address Space" Bounds 1120,336,1728,656 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "cloud" TypeSize 8 TypeFace "Arial" } Figure 4 { Style "Computer" Text "\fs24 Central Accounting\line Server" Bounds 768,1920,1248,2400 BorderWidth 3 TextFormat 0x0022 Behavior 0x00424E12 Symbol "computer4" TypeSize 8 TypeFace "Arial" } Figure 5 { Style "Computer" Text "\fs24 OCEAN\line Server Node" Bounds 176,608,528,960 BorderWidth 3 TextFormat 0x0022 Behavior 0x00424E12 Symbol "computer4" TypeSize 8 TypeFace "Arial" } Figure 6 { Style "Computer" Text "\fs24 Fire Wall/\line Gateway Node" Bounds 1104,704,1488,1088 BorderWidth 3 TextFormat 0x0022 Behavior 0x00424E12 Symbol "computer4" TypeSize 8 TypeFace "Arial" } Figure 7 { Style "Computer" Text "\fs24 OCEAN\line Server Node" Bounds 768,64,1120,416 BorderWidth 3 TextFormat 0x0022 Behavior 0x00424E12 Symbol "computer4" TypeSize 8 TypeFace "Arial" } Figure 8 { Style "Computer" Text "\fs24 OCEAN\line Server Node" Bounds 1760,64,2112,416 BorderWidth 3 TextFormat 0x0022 Behavior 0x00424E12 Symbol "computer4" TypeSize 8 TypeFace "Arial" } Figure 9 { Style "Computer" Text "\fs24 OCEAN\line Server Node" Bounds 1680,1424,2032,1776 BorderWidth 3 TextFormat 0x0022 Behavior 0x00424E12 Symbol "computer4" TypeSize 8 TypeFace "Arial" } Figure 10 { Style "Computer" Text "\fs24 Application\line Launch Point" Bounds 1648,670,2096,1058 BorderWidth 3 TextFormat 0x0022 Behavior 0x00424E12 Symbol "computer4" TypeSize 8 TypeFace "Arial" } Connector 11 { Style "Solid" Figure1 1 Figure2 4 EndPoint1 906,1613 EndPoint2 963,1920 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "null" End2 "null" End1Length 18 End2Length 18 LineWidth 3 EndBorderWidth 3 Behavior 0x00000000 } Connector 12 { Style "Solid" Figure1 1 Figure2 5 EndPoint1 784,1348 EndPoint2 488,960 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "null" End2 "null" End1Length 18 End2Length 18 LineWidth 3 EndBorderWidth 3 Behavior 0x00000000 } Connector 13 { Style "Solid" Figure1 1 Figure2 9 EndPoint1 1133,1505 EndPoint2 1680,1576 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "null" End2 "null" End1Length 18 End2Length 18 LineWidth 3 EndBorderWidth 3 Behavior 0x00000000 } Connector 14 { Style "Solid" Figure1 1 Figure2 6 EndPoint1 976,1340 EndPoint2 1157,1088 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "null" End2 "null" End1Length 18 End2Length 18 LineWidth 3 EndBorderWidth 3 Behavior 0x00000000 } Connector 15 { Style "Solid" Figure1 6 Figure2 3 EndPoint1 1358,704 EndPoint2 1379,636 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "null" End2 "null" End1Length 18 End2Length 18 LineWidth 3 EndBorderWidth 3 Behavior 0x00000000 } Connector 16 { Style "Solid" Figure1 10 Figure2 3 EndPoint1 1648,680 EndPoint2 1545,596 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "null" End2 "null" End1Length 18 End2Length 18 LineWidth 3 EndBorderWidth 3 Behavior 0x00000000 } Connector 17 { Style "Solid" Figure1 3 Figure2 7 EndPoint1 1233,394 EndPoint2 1109,328 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "null" End2 "null" End1Length 18 End2Length 18 LineWidth 3 EndBorderWidth 3 Behavior 0x00000000 } Connector 18 { Style "Solid" Figure1 3 Figure2 8 EndPoint1 1623,396 EndPoint2 1760,328 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "null" End2 "null" End1Length 18 End2Length 18 LineWidth 3 EndBorderWidth 3 Behavior 0x00000000 } Connector 19 { Style "Solid" Figure1 4 Figure2 2 EndPoint1 1248,2280 EndPoint2 1608,2460 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "null" End2 "null" End1Length 18 End2Length 18 LineWidth 3 EndBorderWidth 3 Behavior 0x00000000 } Figure 20 { Style "Computer" Text "\fs24 Application\line Launch Point" Bounds 96,1646,544,2034 BorderWidth 3 TextFormat 0x0022 Behavior 0x00424E12 Symbol "computer4" TypeSize 8 TypeFace "Arial" } Connector 21 { Style "Solid" Figure1 1 Figure2 20 EndPoint1 671,1609 EndPoint2 544,1692 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "null" End2 "null" End1Length 18 End2Length 18 LineWidth 3 EndBorderWidth 3 Behavior 0x00000000 } Figure 22 { Style "Computer" Text "\fs24 Certification\line Authority" Bounds 144,2319,560,2705 BorderWidth 3 TextFormat 0x0022 Behavior 0x00424E12 Symbol "computer4" TypeSize 8 TypeFace "Arial" } Connector 24 { Style "Solid" Figure1 22 Figure2 1 EndPoint1 450,2319 EndPoint2 812,1605 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "null" End2 "null" End1Length 18 End2Length 18 LineWidth 3 EndBorderWidth 3 Behavior 0x00000000 } ## Staples Section: _1063199015 Ara6N`HHOle ObjInfo ContentsDEDGE Diagram File Version 3.50 ## Globals Section: X -911 Y -42 Scale 64 PosterRows 1 PosterCols 1 Color1 255,255,255 Color2 192,192,192 Color3 130,130,130 Color4 0,0,0 Color5 0,255,255 Color6 0,0,255 Color7 0,0,160 Color8 128,0,128 Color9 255,128,0 Color10 255,0,0 Color11 128,0,64 Color12 128,64,0 Color13 0,255,0 Color14 0,128,0 Color15 128,128,255 Color16 255,255,0 GridX 32 GridY 32 SnapX 16 SnapY 16 SnapConPtsCentersEdges TRUE ShadowColor 130,130,130 ShadowX 11 ShadowY 11 ShowGrid TRUE AlignToGrid TRUE AlignToGridConPts FALSE AttachMode 2 SBarWidth 180 SBarFigCols 4 SBarLblCols 1 SBarConCols 2 SBarFigHeight 32 SBarLblHeight 32 SBarConHeight 24 Parent "" LargeDropMenus FALSE LastEnd "block thin2" LastEndLen 28 ConPointMarks 1 CornerRadius 32 Template "Block Diagram.EDG" DevMode 336 { 5C5C4D414E54415241595C707331313400000000000000000000000000000000 010400049C00B4001357010001000100EA0A6F08640001000F002C0101000100 0000030000004C65747465720000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000050524956 E018000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000180000000000102710271027 00001027000000000000000007300A00FFFF0001FF0001FF0000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000 } DevNames 56 { 080011002200010077696E73706F6F6C005C5C4D414E54415241595C70733131 34004E6530313A0000000000000000000000000000000000 } ## Graphics Section: ## Figure Symbols Section: FigureSymbol "data" { FixedAspect FALSE Height 0 Width 0 TextBox >100,>100,<900,<900 Fill { Rect 0,0,1000,1000 } Outline { Rect 0,0,1000,1000 } } FigureSymbol "rounded box 2" { FixedAspect FALSE Height 0 Width 0 TextBox >100,>100,<900,<900 Fill { Rect >150,0,<850,1000 Rect 0,>150,1000,<850 Ellipse 0,0,>300,>300 Ellipse <700,0,1000,>300 Ellipse <700,<700,1000,1000 Ellipse 0,<700,>300,1000 } Outline { Arc 0,0,>300,>300 >150,0 0,>150 Line >150,0 <850,0 Arc <700,0,1000,>300 1000,>150 <850,0 Line 1000,>150 1000,<850 Arc <700,<700,1000,1000 <850,1000 1000,<850 Line >150,1000 <850,1000 Arc 0,<700,>300,1000 0,<850 >150,1000 Line 0,>150 0,<850 } MiniOutline { Arc 0,0,>500,>500 >250,0 0,>250 Line >250,0 <750,0 Arc <500,0,1000,>500 1000,>250 <750,0 Line 1000,>250 1000,<750 Arc <500,<500,1000,1000 <750,1000 1000,<750 Line >250,1000 <750,1000 Arc 0,<500,>500,1000 0,<750 >250,1000 Line 0,>250 0,<750 } } FigureSymbol "connector" { FixedAspect FALSE Height 0 Width 0 TextBox 100,100,900,900 Fill { Ellipse 0,0,1000,1000 } Outline { Ellipse 0,0,1000,1000 } Hot 17 599,1000 783,924 924,783 1000,599 1000,402 924,218 783,77 599,1- 402,1 218,77 77,218 1,402 1,599 77,783 218,924 402,1000- 599,1000 } FigureSymbol "disk simple" { FixedAspect FALSE Height 0 Width 0 TextBox >100,>250,<900,<900 Fill { Rect 0,>100,1000,<900 Ellipse 0,0,1000,>200 Ellipse 0,<800,1000,1000 } Outline { Line 0,>100 0,<900 Line 1000,>100 1000,<900 Ellipse 0,0,1000,>200 Arc 0,<800,1000,1000 0,<900 1000,<900 } MiniOutline { Line 0,200 0,800 Line 1000,100 1000,900 Ellipse 0,0,1000,400 Arc 0,600,1000,1000 0,800 1000,800 } Hot 17 1,>81 77,>44 218,>16 402,>1 599,>1 783,>16 924,>44 1000,>81- 1000,<920 924,<957 783,<985 599,<1000 402,<1000 218,<985 77,<957 1,<920- 1,>81 } FigureSymbol "cloud" { FixedAspect FALSE Height 0 Width 0 TextBox 200,200,800,800 Fill { Ellipse 84,114,672,702 Ellipse 421,89,859,527 Ellipse 573,286,995,708 Ellipse 263,492,721,950 Ellipse 0,528,423,952 } Outline { Arc 84,114,672,702 500,140 120,550 Arc 421,89,859,527 860,300 500,140 Arc 573,286,995,708 720,700 860,300 Arc 263,492,721,950 350,900 720,700 Arc 0,528,423,952 120,550 350,900 } Hot 40 350,900 363,915 447,950 538,950 622,915 686,851 721,767 720,700- 743,708 826,708 904,676 963,617 995,539 995,456 963,378 904,319- 860,300 859,265 826,185 764,123 684,90 597,90 517,123 500,140- 436,115 321,115 212,160 130,242 85,351 85,466 120,550 92,561- 33,621 1,699 1,782 33,860 92,920 170,952 253,952 350,900 } FigureSymbol "arrow right 2" { FixedAspect FALSE Height 0 Width 0 TextBox >50,>250,<700,<750 Fill { Polygon 8 0,>200 <700,>200 <700,0 1000,500 <700,1000 <700,<800 0,<800 0,>200 } Outline { Polyline 8 0,>200 <700,>200 <700,0 1000,500 <700,1000 <700,<800 0,<800 0,>200 } Hot 8 0,>200 <700,>200 <700,0 1000,500 <700,1000 <700,<800 0,<800 0,>200 } FigureSymbol "arrow left 2" { FixedAspect FALSE Height 0 Width 0 TextBox >300,>250,<950,<750 Fill { Polygon 8 1000,>200 >300,>200 >300,0 0,500 >300,1000 >300,<800 1000,<800 1000,>200 } Outline { Polyline 8 1000,>200 >300,>200 >300,0 0,500 >300,1000 >300,<800 1000,<800 1000,>200 } Hot 8 1000,>200 >300,>200 >300,0 0,500 >300,1000 >300,<800 1000,<800 1000,>200 } FigureSymbol "arrow up" { FixedAspect FALSE Height 0 Width 0 TextBox >200,>350,<800,<950 Fill { Polygon 8 500,0 1000,>350 <850,>350 <850,1000 >150,1000 >150,>350 0,>350 500,0 } Outline { Polyline 8 500,0 1000,>350 <850,>350 <850,1000 >150,1000 >150,>350 0,>350 500,0 } Hot 8 500,0 1000,>350 <850,>350 <850,1000 >150,1000 >150,>350 0,>350 500,0 } FigureSymbol "arrow down" { FixedAspect FALSE Height 0 Width 0 TextBox >200,>50,<800,<650 Fill { Polygon 8 500,1000 1000,<650 <850,<650 <850,0 >150,0 >150,<650 0,<650 500,1000 } Outline { Polyline 8 500,1000 1000,<650 <850,<650 <850,0 >150,0 >150,<650 0,<650 500,1000 } Hot 8 500,1000 1000,<650 <850,<650 <850,0 >150,0 >150,<650 0,<650 500,1000 } FigureSymbol "callout 3" { FixedAspect FALSE Height 0 Width 0 TextBox >100,>100,<900,<700 Fill { Polygon 11 0,>150 0,<650 >150,<800 0,1000 >400,<800 <850,<800 1000,<650 1000,>150- <900,0 >150,0 0,>150 Rect >300,0,<700,<800 Rect 0,>300,1000,<500 Ellipse 0,0,>300,>300 Ellipse <700,0,1000,>300 Ellipse <700,<500,1000,<800 Ellipse 0,<500,>300,<800 } Outline { Arc 0,0,>300,>300 >150,0 0,>150 Line >150,0 <850,0 Arc <700,0,1000,>300 1000,>150 <850,0 Line 1000,>150 1000,<650 Arc <700,<500,1000,<800 <850,<800 1000,<650 Polyline 4 >150,<800 0,1000 >400,<800 <850,<800 Arc 0,<500,>300,<800 0,<650 >150,<800 Line 0,>150 0,<650 } Hot 24 <874,<800 <919,<785 <957,<757 <985,<719 1000,<674 1000,>127 <985,>82 <957,>44- <919,>16 <874,0 >127,0 >82,>16 >44,>44 >16,>82 0,>127 0,<674- >16,<719 >44,<757 >82,<785 >127,<800 >150,<800 0,1000 >400,<800 <874,<800 } FigureSymbol "callout 4" { FixedAspect FALSE Height 0 Width 0 TextBox >100,>100,<900,<700 Fill { Polygon 11 0,>150 0,<650 >150,<800 <600,<800 1000,1000 <850,<800 1000,<650 1000,>150- <900,0 >150,0 0,>150 Rect >300,0,<700,<800 Rect 0,>300,1000,<500 Ellipse 0,0,>300,>300 Ellipse <700,0,1000,>300 Ellipse <700,<500,1000,<800 Ellipse 0,<500,>300,<800 } Outline { Arc 0,0,>300,>300 >150,0 0,>150 Line >150,0 <850,0 Arc <700,0,1000,>300 1000,>150 <850,0 Line 1000,>150 1000,<650 Arc <700,<500,1000,<800 <850,<800 1000,<650 Polyline 4 >150,<800 <600,<800 1000,1000 <850,<800 Arc 0,<500,>300,<800 0,<650 >150,<800 Line 0,>150 0,<650 } Hot 24 <874,<800 <919,<785 <957,<757 <985,<719 1000,<674 1000,>127 <985,>82 <957,>44- <919,>16 <874,0 >127,0 >82,>16 >44,>44 >16,>82 0,>127 0,<674- >16,<719 >44,<757 >82,<785 >127,<800 <600,<800 1000,1000 <850,<800 <874,<800 } FigureSymbol "input/ouput" { FixedAspect FALSE Height 0 Width 0 TextBox >200,>100,<800,<900 Fill { Polygon 5 >200,0 1000,0 <800,1000 0,1000 >200,0 } Outline { Polyline 5 >200,0 1000,0 <800,1000 0,1000 >200,0 } Hot 5 >200,0 1000,0 <800,1000 0,1000 >200,0 } FigureSymbol "callout 5" { FixedAspect FALSE Height 0 Width 0 TextBox 100,100,900,750 Fill { Ellipse 0,0,1000,850 Polygon 4 94,626 0,1000 258,765 84,666 } Outline { Arc 0,0,1000,850 238,785 84,666 Polyline 3 84,666 0,1000 238,785 } Hot 20 599,850 783,785 924,666 1000,509 1000,342 924,185 783,65 599,1- 402,1 218,65 77,185 1,342 1,509 77,666 84,666 0,1000- 238,785 218,785 402,850 599,850 } FigureSymbol "callout 6" { FixedAspect FALSE Height 0 Width 0 TextBox 100,100,900,750 Fill { Ellipse 0,0,1000,850 Polygon 4 906,626 1000,1000 742,765 906,666 } Outline { Arc 0,0,1000,850 916,666 762,785 Polyline 3 916,666 1000,1000 762,785 } Hot 20 599,850 783,785 762,785 1000,1000 916,666 924,666 1000,509 1000,342- 924,185 783,65 599,1 402,1 218,65 77,185 1,342 1,509- 77,666 218,785 402,850 599,850 } FigureSymbol "deck" { FixedAspect FALSE Height 0 Width 0 TextBox >50,>200,<850,<950 Fill { Rect 0,>100,<900,1000 Rect >100,0,1000,<900 Rect >50,>50,<950,<950 } Outline { Rect 0,>100,<900,1000 Polyline 5 >50,>100 >50,>50 <950,>50 <950,<950 <900,<950 Polyline 5 >100,>50 >100,0 1000,0 1000,<900 <950,<900 } MiniOutline { Rect 0,200,800,1000 Polyline 5 100,200 100,100 900,100 900,900 800,900 Polyline 5 200,100 200,0 1000,0 1000,800 900,800 } } FigureSymbol "paper" { FixedAspect FALSE Height 192 Width 148 TextBox 100,75,900,925 Fill { Polygon 6 0,0 1000,0 1000,900 875,1000 0,1000 0,0 } Outline { Polyline 6 0,0 1000,0 1000,900 875,1000 0,1000 0,0 Polyline 5 875,1000 900,900 940,912 970,912 1000,900 } } FigureSymbol "person1" { FixedAspect TRUE Height 128 Width 50 Outline { Ellipse 0,0,1000,400 Line 500,400 500,700 Line 0,500 1000,500 Line 0,1000 500,700 Line 1000,1000 500,700 } } FigureSymbol "person3" { FixedAspect TRUE Height 128 Width 64 Fill { Ellipse 320,0,680,234 Polygon 18 0,534 129,288 250,234 750,234 871,288 1000,534 917,534 722,353- 722,964 648,1000 574,1000 500,964 426,1000 352,1000 278,964 278,353- 83,534 0,534 } Outline { Ellipse 320,0,680,234 Polyline 18 0,534 129,288 250,234 750,234 871,288 1000,534 917,534 722,353- 722,964 648,1000 574,1000 500,964 426,1000 352,1000 278,964 278,353- 83,534 0,534 Line 278,483 722,483 Line 278,964 722,964 Line 500,964 500,603 } Hot 22 0,534 129,288 250,234 320,234 320,0 680,0 680,234 750,234- 871,288 1000,534 917,534 722,353 722,964 648,1000 574,1000 500,964- 426,1000 352,1000 278,964 278,353 83,534 0,534 } FigureSymbol "folder" { FixedAspect TRUE Height 154 Width 192 TextBox 50,25,450,125 TextBox 50,200,950,950 Fill { Polygon 12 0,150 75,0 425,0 500,150 958,150 973,156 986,165 995,178- 1000,193 1000,1000 0,1000 0,150 } Outline { Polyline 12 0,150 75,0 425,0 500,150 958,150 973,156 986,165 995,178- 1000,193 1000,1000 0,1000 0,150 Line 0,150 500,150 } Hot 12 0,150 75,0 425,0 500,150 958,150 973,156 986,165 995,178- 1000,193 1000,1000 0,1000 0,150 } FigureSymbol "computer4" { FixedAspect TRUE Height 128 Width 128 TextBox 125,125,875,625 Fill { Polygon 13 0,0 1000,0 1000,750 750,750 750,850 1000,850 1000,1000 0,1000- 0,850 250,850 250,750 0,750 0,0 } Outline { Polyline 13 0,0 1000,0 1000,750 750,750 750,850 1000,850 1000,1000 0,1000- 0,850 250,850 250,750 0,750 0,0 Line 250,750 750,750 Line 250,850 750,850 Rect 100,100,900,650 Rect 125,925,250,950 Rect 900,700,925,725 } Hot 13 0,0 1000,0 1000,750 750,750 750,850 1000,850 1000,1000 0,1000- 0,850 250,850 250,750 0,750 0,0 } FigureSymbol "round sides" { FixedAspect FALSE Height 128 Width 192 TextBox >200,>100,<800,<900 Fill { Rect >500,0,<500,1000 Ellipse 0,0,>999,1000 Ellipse <1,0,1000,1000 } Outline { Line >500,0 <500,0 Line >500,1000 <500,1000 Arc 0,0,>999,1000 >500,0 >500,1000 Arc <1,0,1000,1000 <500,1000 <500,0 } Hot 17 >401,1 >217,77 >77,218 >1,402 >1,599 >77,783 >217,924 >401,1000- <599,1000 <783,924 <923,783 <999,599 <999,402 <923,218 <783,77 <599,1- >401,1 } FigureSymbol "device1" { FixedAspect TRUE Height 50 Width 200 Fill { Rect 0,0,1000,1000 } Outline { Rect 0,0,1000,1000 Rect 50,200,100,350 Rect 50,600,700,800 Line 775,150 775,850 Line 850,150 850,850 Line 925,150 925,850 } } ## End Symbols Section: EndSymbol "block thin2" { LineTo 100 Fill { Polygon 4 500,500 1000,350 1000,650 500,500 } Outline { Polyline 4 500,500 1000,350 1000,650 500,500 } } ## Figure Styles Section: FigureStyle "Title" { Label TRUE Height 64 Width 128 Description "A diagram title" TextFormat 0x0024 Behavior 0x00824A12 Symbol "lbl" TypeSize 14 TypeWeight 400 TypeFace "Arial" } FigureStyle "Title Serif" { Label TRUE Height 0 Width 0 BindToStyle FALSE TextFormat 0x0022 Behavior 0x00A241D2 Symbol "lbl" TypeSize 14 TypeWeight 400 TypeFace "Times New Roman" } FigureStyle "Label" { Label TRUE Height 64 Width 128 Description "An annotation, comment, or title" TextFormat 0x0C24 Behavior 0x00824A12 Symbol "lbl" TypeSize 8 TypeFace "Arial" } FigureStyle "Label Serif" { Label TRUE Height 0 Width 0 BindToStyle FALSE TextFormat 0x0044 Behavior 0x00A241E1 Symbol "lbl" TypeSize 8 TypeWeight 400 TypeFace "Times New Roman" } FigureStyle "Note" { Label TRUE Height 0 Width 0 TextColor 0,0,160 BindToStyle FALSE TextFormat 0x0044 Behavior 0x00A241E1 Symbol "lbl" TypeSize 8 TypeFace "Arial" } FigureStyle "Note Serif" { Label TRUE Height 0 Width 0 TextColor 0,0,160 BindToStyle FALSE TextFormat 0x0044 Behavior 0x00A241E1 Symbol "lbl" TypeSize 8 TypeWeight 400 TypeFace "Times New Roman" } FigureStyle "Rectangle" { Category "Shapes" HasButton TRUE Height 160 Width 288 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "data" TypeSize 8 TypeFace "Arial" } FigureStyle "Ellipse" { Category "Shapes" HasButton TRUE Height 160 Width 288 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "connector" TypeSize 8 TypeFace "Arial" } FigureStyle "Rounded" { Category "Shapes" HasButton TRUE Height 160 Width 288 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "rounded box 2" TypeSize 8 TypeFace "Arial" } FigureStyle "Idea" { Category "Shapes" HasButton TRUE Height 160 Width 288 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "cloud" TypeSize 8 TypeFace "Arial" } FigureStyle "Square" { Category "Shapes" HasButton TRUE Height 160 Width 161 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "data" TypeSize 8 TypeFace "Arial" } FigureStyle "Circle" { Category "Shapes" HasButton TRUE Height 160 Width 160 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "connector" TypeSize 8 TypeFace "Arial" } FigureStyle "RoundEnds" { Category "Shapes" HasButton TRUE Height 160 Width 288 BorderWidth 3 TextFormat 0x0022 Behavior 0x00024E12 Symbol "round sides" TypeSize 8 TypeFace "Arial" } FigureStyle "Arrow right" { Category "Arrows" Height 128 Width 289 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "arrow right 2" TypeSize 8 TypeFace "Arial" } FigureStyle "Arrow left" { Category "Arrows" Height 128 Width 289 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "arrow left 2" TypeSize 8 TypeFace "Arial" } FigureStyle "Arrow up" { Category "Arrows" Height 161 Width 128 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "arrow up" TypeSize 8 TypeFace "Arial" } FigureStyle "Arrow down" { Category "Arrows" Height 161 Width 128 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "arrow down" TypeSize 8 TypeFace "Arial" } FigureStyle "Deck" { Category "Shapes" HasButton TRUE Height 160 Width 288 BorderWidth 3 TextFormat 0x0022 Behavior 0x00024E12 Symbol "deck" TypeSize 8 TypeFace "Arial" } FigureStyle "Document" { Category "Shapes" HasButton TRUE Height 192 Width 148 BorderWidth 3 TextFormat 0x0022 Behavior 0x00024E12 Symbol "paper" TypeSize 8 TypeFace "Arial" } FigureStyle "Parallel" { Category "Shapes" HasButton TRUE Height 160 Width 288 BorderWidth 3 TextFormat 0x0022 Behavior 0x00024E12 Symbol "input/ouput" TypeSize 8 TypeFace "Arial" } FigureStyle "Disk" { Category "Shapes" HasButton TRUE Height 160 Width 288 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "disk simple" TypeSize 8 TypeFace "Arial" } FigureStyle "Folder" { Category "Shapes" HasButton TRUE Height 192 Width 288 BorderWidth 3 TextFormat 0x0022 Behavior 0x00424E12 Symbol "folder" TypeSize 8 TypeFace "Arial" } FigureStyle "Callout Right 2" { Category "Callouts" HasButton TRUE Height 160 Width 288 TextFormat 0x0022 Behavior 0x00024E12 Symbol "callout 6" TypeSize 8 TypeFace "Arial" } FigureStyle "Callout Left 2" { Category "Callouts" HasButton TRUE Height 160 Width 288 BorderWidth 3 TextFormat 0x0022 Behavior 0x00024E12 Symbol "callout 5" TypeSize 8 TypeFace "Arial" } FigureStyle "Callout Right" { Category "Callouts" HasButton TRUE Height 160 Width 288 TextFormat 0x0022 Behavior 0x00024E12 Symbol "callout 4" TypeSize 8 TypeFace "Arial" } FigureStyle "Callout Left" { Category "Callouts" HasButton TRUE Height 160 Width 288 TextFormat 0x0022 Behavior 0x00024E12 Symbol "callout 3" TypeSize 8 TypeFace "Arial" } FigureStyle "Stickman" { Category "People" HasButton TRUE Height 128 Width 50 BorderWidth 3 TextFormat 0x0022 Behavior 0x00424E12 Symbol "person1" TypeSize 8 TypeFace "Arial" } FigureStyle "Person" { Category "People" HasButton TRUE Height 128 Width 64 BorderWidth 3 TextFormat 0x0022 Behavior 0x00424E12 Symbol "person3" TypeSize 8 TypeFace "Arial" } FigureStyle "Computer" { Category "Things" HasButton TRUE Height 160 Width 160 BorderWidth 3 TextFormat 0x0022 Behavior 0x00424E12 Symbol "computer4" TypeSize 8 TypeFace "Arial" } FigureStyle "Device" { Category "Things" HasButton TRUE Height 64 Width 288 BorderWidth 3 TextFormat 0x0022 Behavior 0x00424E12 Symbol "device1" TypeSize 8 TypeFace "Arial" } ## Connector Styles Section: ConnectorStyle "Solid" { HasButton TRUE End1 "null" End2 "null" End1Length 18 End2Length 18 LineWidth 3 EndBorderWidth 3 Behavior 0x00000000 } ConnectorStyle "Solid Arw" { HasButton TRUE End1 "null" End2 "block thin2" End1Length 18 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 255,255,255 Behavior 0x00000000 } ConnectorStyle "DashDot" { HasButton TRUE End1 "null" End2 "null" End1Length 18 End2Length 18 PenStyle 22 LineWidth 3 EndBorderWidth 2 Behavior 0x00000000 } ConnectorStyle "DashDot Arw" { HasButton TRUE End1 "null" End2 "block thin2" End1Length 18 End2Length 28 PenStyle 22 LineWidth 3 EndBorderWidth 3 End2FillColor 255,255,255 Behavior 0x00000000 } ConnectorStyle "Dashed" { HasButton TRUE End1 "null" End2 "null" End1Length 18 End2Length 18 PenStyle 12 LineWidth 3 EndBorderWidth 3 Behavior 0x00000000 } ConnectorStyle "Dashed Arw" { HasButton TRUE End1 "null" End2 "block thin2" End1Length 18 End2Length 28 PenStyle 12 LineWidth 3 EndBorderWidth 3 End2FillColor 255,255,255 Behavior 0x00000000 } ConnectorStyle "Dotted" { HasButton TRUE End1 "null" End2 "null" End1Length 18 End2Length 18 PenStyle 7 LineWidth 3 EndBorderWidth 3 Behavior 0x00000000 } ConnectorStyle "Dotted Arw" { HasButton TRUE End1 "null" End2 "block thin2" End1Length 18 End2Length 28 PenStyle 7 LineWidth 3 EndBorderWidth 3 End2FillColor 255,255,255 Behavior 0x00000000 } ConnectorStyle "Solid Crv" { HasButton TRUE End1 "null" End2 "null" End1Length 18 End2Length 18 LineWidth 3 EndBorderWidth 3 Behavior 0x00000002 } ConnectorStyle "Solid Arw Crv" { HasButton TRUE End1 "null" End2 "block thin2" End1Length 18 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 255,255,255 Behavior 0x00000002 } ConnectorStyle "DashDot Crv" { HasButton TRUE End1 "null" End2 "null" End1Length 18 End2Length 18 PenStyle 22 LineWidth 3 EndBorderWidth 3 Behavior 0x00000002 } ConnectorStyle "DashDot Arw Crv" { HasButton TRUE End1 "null" End2 "block thin2" End1Length 18 End2Length 28 PenStyle 22 LineWidth 3 EndBorderWidth 3 End2FillColor 255,255,255 Behavior 0x00000002 } ConnectorStyle "Dashed Crv" { HasButton TRUE End1 "null" End2 "null" End1Length 18 End2Length 18 PenStyle 12 LineWidth 3 EndBorderWidth 3 Behavior 0x00000002 } ConnectorStyle "Dashed Arw Crv" { HasButton TRUE End1 "null" End2 "block thin2" End1Length 18 End2Length 25 PenStyle 12 LineWidth 3 EndBorderWidth 3 End2FillColor 255,255,255 Behavior 0x00000002 } ConnectorStyle "Dotted Crv" { HasButton TRUE End1 "null" End2 "null" End1Length 18 End2Length 18 PenStyle 7 LineWidth 3 EndBorderWidth 3 Behavior 0x00000002 } ConnectorStyle "Dotted Arw Crv" { HasButton TRUE End1 "null" End2 "block thin2" End1Length 18 End2Length 28 PenStyle 7 LineWidth 3 EndBorderWidth 3 End2FillColor 255,255,255 Behavior 0x00000002 } ## Figures & Connectors Section: Figure 1 { Style "Rectangle" Text "" Bounds 160,656,1952,2160 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "data" TypeSize 8 TypeFace "Arial" } Figure 2 { Style "Rectangle" Text "Trader\line Component" Bounds 880,688,1200,848 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "data" TypeSize 12 TypeFace "Arial" } Figure 3 { Style "Rectangle" Text "Negotiation\line Component" Bounds 208,880,560,1040 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "data" TypeSize 12 TypeFace "Arial" } Figure 4 { Style "Rectangle" Text "\fs24 Auction\line Component" Bounds 1568,880,1920,1040 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "data" TypeSize 8 TypeFace "Arial" } Figure 5 { Style "Rectangle" Text "\fs24 Task Spawning\line and Migration\line Component" Bounds 864,1152,1216,1344 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "data" TypeSize 8 TypeFace "Arial" } Figure 6 { Style "Rectangle" Text "\fs24 Security\line Component" Bounds 864,1488,1216,1648 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "data" TypeSize 8 TypeFace "Arial" } Figure 7 { Style "Rectangle" Text "\fs24 Communication\line Component" Bounds 864,1904,1216,2064 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "data" TypeSize 8 TypeFace "Arial" } Figure 8 { Style "Rectangle" Text "\fs24 PLUM\line Component" Bounds 1584,1488,1904,1648 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "data" TypeSize 8 TypeFace "Arial" } Figure 9 { Style "Rectangle" Text "\fs24 Naming\line Component" Bounds 1584,1904,1904,2064 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "data" TypeSize 8 TypeFace "Arial" } Figure 10 { Style "Rectangle" Text "\fs24 Java VM\line and API" Bounds 912,2288,1200,2448 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "data" TypeSize 8 TypeFace "Arial" } Figure 11 { Style "Rectangle" Text "\fs24 Local Accounting\line Component" Bounds 208,1488,560,1648 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "data" TypeSize 8 TypeFace "Arial" } Connector 12 { Style "Solid Arw" Figure1 3 Figure2 2 EndPoint1 560,908 EndPoint2 880,815 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "block thin2" End2 "block thin2" End1Length 28 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 4,4,4 Behavior 0x00000000 } Connector 13 { Style "Solid Arw" Figure1 2 Figure2 4 EndPoint1 1200,812 EndPoint2 1568,912 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "block thin2" End2 "block thin2" End1Length 28 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 4,4,4 Behavior 0x00000000 } Connector 14 { Style "Solid Arw" Figure1 2 Figure2 5 EndPoint1 1040,848 EndPoint2 1040,1152 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "block thin2" End2 "block thin2" End1Length 28 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 4,4,4 Behavior 0x00000000 } Connector 15 { Style "Solid Arw" Figure1 5 Figure2 6 EndPoint1 1040,1344 EndPoint2 1040,1488 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "block thin2" End2 "block thin2" End1Length 28 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 4,4,4 Behavior 0x00000000 } Connector 16 { Style "Solid Arw" Figure1 6 Figure2 7 EndPoint1 1040,1648 EndPoint2 1040,1904 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "block thin2" End2 "block thin2" End1Length 28 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 4,4,4 Behavior 0x00000000 } Connector 17 { Style "Solid Arw" Figure1 3 Figure2 11 EndPoint1 384,1040 EndPoint2 384,1488 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "block thin2" End2 "block thin2" End1Length 28 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 4,4,4 Behavior 0x00000000 } Connector 18 { Style "Solid Arw" Figure1 11 Figure2 6 EndPoint1 560,1568 EndPoint2 864,1568 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "block thin2" End2 "block thin2" End1Length 28 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 4,4,4 Behavior 0x00000000 } Connector 19 { Style "Solid Arw" Figure1 4 Figure2 8 EndPoint1 1744,1040 EndPoint2 1744,1488 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "block thin2" End2 "block thin2" End1Length 28 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 4,4,4 Behavior 0x00000000 } Connector 20 { Style "Solid Arw" Figure1 8 Figure2 6 EndPoint1 1584,1568 EndPoint2 1216,1568 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "block thin2" End2 "block thin2" End1Length 28 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 4,4,4 Behavior 0x00000000 } Connector 21 { Style "Solid Arw" Figure1 9 Figure2 7 EndPoint1 1584,1984 EndPoint2 1216,1984 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "block thin2" End2 "block thin2" End1Length 28 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 4,4,4 Behavior 0x00000000 } Connector 22 { Style "Solid Arw" Figure1 4 Figure2 6 EndPoint1 1651,1040 EndPoint2 1133,1488 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "block thin2" End2 "block thin2" End1Length 28 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 4,4,4 Behavior 0x00000000 } Connector 23 { Style "Solid Arw" Figure1 3 Figure2 5 EndPoint1 560,1038 EndPoint2 864,1170 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "block thin2" End2 "block thin2" End1Length 28 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 4,4,4 Behavior 0x00000000 } Connector 24 { Style "Solid Arw" Figure1 10 Figure2 -1 EndPoint1 1056,2288 EndPoint2 1056,2160 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "block thin2" End2 "block thin2" End1Length 28 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 4,4,4 Behavior 0x00000000 } Figure 25 { Style "Rectangle" Text "Node Configuration/\line Operation API" Bounds 1536,304,1952,464 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "data" TypeSize 12 TypeFace "Arial" } Figure 26 { Style "Rectangle" Text "\fs24 Job Maker API" Bounds 160,304,544,464 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "data" TypeSize 8 TypeFace "Arial" } Connector 27 { Style "Solid Arw" Figure1 26 Figure2 1 EndPoint1 407,464 EndPoint2 539,656 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "block thin2" End2 "block thin2" End1Length 28 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 4,4,4 Behavior 0x00000000 } Connector 28 { Style "Solid Arw" Figure1 -1 Figure2 1 EndPoint1 1760,464 EndPoint2 1617,656 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "block thin2" End2 "block thin2" End1Length 28 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 4,4,4 Behavior 0x00000000 } Connector 29 { Style "Solid Arw" Figure1 -1 Figure2 6 EndPoint1 483,1040 EndPoint2 955,1488 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "block thin2" End2 "block thin2" End1Length 28 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 4,4,4 Behavior 0x00000000 } Figure 30 { Style "Computer" Text "\fs24 Central Accounting\line Server" Bounds 144,2272,624,2752 BorderWidth 3 TextFormat 0x0022 Behavior 0x00424E12 Symbol "computer4" TypeSize 8 TypeFace "Arial" } Connector 31 { Style "Solid Arw" Figure1 30 Figure2 -1 EndPoint1 384,2272 EndPoint2 384,2160 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "block thin2" End2 "block thin2" End1Length 28 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 4,4,4 Behavior 0x00000000 } Connector 32 { Style "Dashed Arw" Figure1 11 Figure2 30 EndPoint1 384,1648 EndPoint2 384,2272 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "block thin2" End2 "block thin2" End1Length 28 End2Length 28 PenStyle 12 LineWidth 3 EndBorderWidth 3 End2FillColor 4,4,4 Behavior 0x00000000 } Figure 33 { Style "Rectangle" Text "\fs24 Persistent Object Manager" Bounds 1360,1712,1904,1872 BorderWidth 3 TextFormat 0x0A22 Behavior 0x00024E12 Symbol "data" TypeSize 8 TypeFace "Arial" } Connector 34 { Style "Solid Arw" Figure1 33 Figure2 8 EndPoint1 1672,1712 EndPoint2 1704,1648 SuppressEnd1 FALSE SuppressEnd2 FALSE End1 "block thin2" End2 "block thin2" End1Length 28 End2Length 28 LineWidth 3 EndBorderWidth 3 End2FillColor 4,4,4 Behavior 0x00000000 } ## Staples Section: ^n9Yd:ɻ>}j^84`FZ~Ac{u&.:6gFӭk:Z s8tjD\~1P mGxɡS ݈D(~@6 w.D5,ih0ijN48c$g^ygϏ5\)ҜZbY9%2ԅ\< k3Ur6DB;a\qoqL6l=Y燘}P%6WϨ}P G5燒Zτ}0g5šS+9Hr''ujpbͩfRrP9׀`Oj!xU5+}ܮǕ_\Loۘ+.gԒmfEߩf6o7*?dFlQ<)MQLHzw*;Nm, m}(0{Hr2rDrV^;s"\X9zs؏=cRxIDn@p 3L\*p>ŮsQ-iAslf-lms  s 00A0W_4eJVr#QU]%zC3* -URYV ߕ8!7Wc7W5jjNWHsIN^qj\sk=g[ 5?Ul%Ɖ>gK5NecXU=ѕjN[f9đLgkg>3lMPU]^UeS+٩WLWg=0H+ul.O+"fgQGdqlHM8eU=D4ĭ0s>Cj]R(E qTOwk  >&|(LP0Ca‡„3Ib>Si0Y0_T'60,;6tY6,8ُg% wKR ʢ5XQ3se{$gq7fN N~_;ˎi;}>ȟȟxf'q?gLc3jI=OyD蹞e2 yE`Qpvc/?a1q—Nr㫍 V.2A_~+}>V.8řAˢ[EwH Zd3Kmcsk[- l; k2ʳkڲ:61evMiaXii(c]멝vqwYyӫxl98ZFUIo3K<=fSY&6oF xzE`HP]j=b*ݽ֔YcLj﬏5=\>Yvzx$}>86666s}R666Nj3 ˜sEEH@_ kK\[S0^ '{e?/> 2Ny+H#}>_/.w:~b_Bjk:F.g;?:pً})Vb_Ai!5x\vKq(Qsٌ"l5"\;1zǞ*$i5/w^E~v]W~Iw/E/1j6} :9Ԝ~1r9۱ZW^`+~Lf Nm:uWvHQcrbߋǨٜG>􃎑َQZ{hǨz~7n%hs޿Cv6jqtAl~l dcr6c_"PKń{ؗ@6 /.g/ãpZZ7n:F.g;i7t܈p9{ /Y͵_R?ײ_jVfC4G}УU &,М%Ѹf:o54 e+e}>Ws[S%9RUnjuT#ujGZ'*LWi9^hV(S|S:\WJHrfUC%Y߯B({zY=L'jI<`vVX8Q{E 'jP"l=+`4xgtTJr3+P|OrjpsFCjɹ/.+`xqY~#hR5SA'9Dmi ̀aӏ0tXW~ЊٮTh;ǰVl̠xǩ_=8]َ:~q9{opZ,>' C3Oَ}?lލxv }nНd;(e롾ӊ.9G5l(9!i3wZhfHn.Y_xNop[󺉧ă31ԥBqpR wb |"X_ӈ9Y˺X<UB"H}"AdEUP9XQ͙™?IΥ0Ia!u 9VaغVcq4z -(R(R֛[=->{[=!.zqa!;<-5 }R׻Rj6Q6sjsHk$y֒dcpeS؍)mAK!4D0D2ωʠ{3DqFD.&,Jt̠%̠}A%ʠ'L4N#g\B zэ[Dzѽ#߮9{3l-zq؃?q(d+2̲xe糮+nf<X^RWt} t;q z['ndvKrKNqsȝ{MDs^BoW|^Go>վakڻAWYnQ_fHg]o08YWnfR'L![t9{v3SitQ?7,>~JwKZDtrWø av|;<7ָJO\)]DyK FD:\thesis\XMLDOC~1.DOC82D:\thesis\xmldocs_qut.doc1TableTSummaryInformation(DocumentSummaryInformation8 CompObjjCEAN)ipen nacharyauteachachNormala nacharyaute3chMicrosoft Word 9.0n@@򼑤H@@۪H#՜.+,D՜.+,l( hp  Univ of Florida7       !"#$%&'()*+, 6Open Computer Exchange and Auctioning Network (OCEAN) Title 8@ _PID_HLINKSAl9D:\thesis\xmldocs_qut.doc  FMicrosoft Word Document MSWordDocWord.Document.89q i8@8 NormalCJ_HaJmH sH tH <@< Heading 1$$@&a$ 5CJ \<< Heading 2$$@&a$ 5CJ \66 Heading 3$$@&a$aJ:@: Heading 4$@&5CJ \aJ@@@ Heading 5$$@&a$5CJ \aJ88 Heading 6$$@&a$5\6@6 Heading 7$@& 5CJ\@@@ Heading 8$$@&a$5CJ\^J<A@< Default Paragraph Font.U@. Hyperlink >*B*ph0B@0 Body Text$a$CJDT@D Block Text$]^a$6]L>2L Title$*$5$7$8$9DH$a$5CJ(OJQJaJ:J2: Subtitle$<@&a$OJQJ(OA( Hypertext>*B*>V@Q> FollowedHyperlink >*B* ph:P@b: Body Text 2$a$ 6]^J<C@r< Body Text Indent `.Q. Body Text 3CJJR@J Body Text Indent 2$`a$aJ2 2 Index 1^`D!D Index Heading*$1$5OJQJaJe HTML Preformatted7 2( Px 4 #\'*.25@9!B*CJOJPJQJ^JaJphLS@L Body Text Indent 3$`a$6]  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXj L M NPV OCKQRSTUVW"&#     ! )$%(FSE -!*"+#/ ,$0A='1(2)3*4+5,6-7.8/.%90;1:&<2>3?4'GUJI8D9@5F6QCG7E:W@N=J;M<KAL>OBHDBHTIRP?X  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX[      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWjbc.ijx 1kl{\%!r#s###%'b(c(C*D*,,V.W.f/g/y/000512.4~55579;%@CEEE8G.JKKKM2Q3QQRMS:T1ULVWiXXYYU\V\z\^`McNcbc+f)hkk0kloapqq-qwtuuuuYvZvx7y8ySyc}()D"#:wxސȓ͔ٔڔ67S\~ӕ"L^–Moɗʗ:IViߘTmϙHYnšܚ 1Mě֛4567EF-.|}{|>?}~OP fg&'\]bcΤϤ@AɥʥWXno78LM !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghk0000000000000j0j0j0j0j0j00l0l0l0l00000000h0s#0#0#0#0#0#0#0#0#0#0#0#h0s#h0s#0g/h0s#h0s#00000000000000000000000000x000E0E0E0Eh0s#0K0K0K 0K 0K 0K 0RK 0RK 0RK 0RK 0RK 0K 0K0 M0 M0 M0 M0 M0 M0 M0 M 00d0d0d0dz0d0Il0Il0Il0Il0Il0Il0Il0Il0Il0Il0Il0Il0Il0Il0Il0Ilj0d0jz0jz0jz0jz0jz0jzJ0d0UUU:d0000000 iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii0i000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000oϩjZ`fi6:Xswә.n:Wj[]^_abcdeghjklmi\ڔ24 j::X  ?2$P[|Tۖ \:2$qiӉgJ2F2$;mɧM[dWT  0e0e     A@  A5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||S"@ 0(  B S  ?j _Hlt526340448 _Hlt517754921 _Hlt517754922gԢԢk@@hբբkckls!#*167:Z`clv}Za&-3 !!!!""""++\\^fŕѕeo .T\vė͗$<GLT[g]k#-̚ښ'/9KVd›̛ԛܛk9KZ` D*^****+77\\ppuuuuv voq(*2{! =Gk33333333333333333333333333333nacharya E:\mike2.docnacharya E:\mike2.docnacharya E:\mike2.docnacharya E:\mike2.docnacharya E:\mike2.docnacharya E:\mike2.docnacharya E:\mike2.docnacharya E:\mike2.docnacharya E:\OCEAN.docnacharya E:\OCEAN.docrRK rXf/~J%<{N