---------------------------------------------- FAQ on the GFac (Generic Factory Service) v0.1 ---------------------------------------------- Q: What is a Generic Factory Service? A: A Generic Factory Service is a persistent, stateless service that allows authorized users to create instances of an Application Factory on the Grid. Q: So what is an Application Factory? A: An Application Factory is a service that can create instances of an application on the Grid. An application is an executable (or a script) that can be run from the command line of the machine on which the Application Factory is running. A Service Provider who owns an application and wants to convert it to a "service" can use the GFac to start an Application Factory for his/her application. Q: How do I create an Application Factory using the GFac? A: The GFac provides a method called "createService" for creating service instances on the Grid. It accepts as input an XML document called the ServiceMap document describing the service to be created. Service Providers can use it to create an Application Factory for their application. A sample ServiceMap document is given below DummyService13 This is a dummy service Touch This method creates an empty file /bin/touch1 Filename The name of the file to create TraceRoute Traces the route to a host /usr/sbin/traceroute Hostname This is the destination host localhost 0 The "method" specifies the method that the Service Provider wants the service to provide. Each method is associated with an application (executable) which will be invoked when the method is invoked. The inputParameterNames are the names of the input parameters to the application and not the actual values of the input parameters. The actual values are supplied when the application is actually invoked. The host and port in the "creationParameters" specifies the host and port on which the service must be started. If the port is 0, GFac will start the service at any available port. It is highly recommended that the port be set to 0. Q: I don't want to write any XML. So how do I create this ServiceMap document? A: I have a command line utility that can create a ServiceMap document from a ServiceMap file. See doc/ServiceMap.txt for details. See Readme.txt to learn how to use the utility. In future I intend to provide a portlet for creating this document :-) Q: Ok. I have the ServiceMap document. Now, how do I give it to the GFac? The GFac service can be accessed through a servlet. To learn how to deploy the servlet, please read Readme.txt. You can access our GFac at http://rainier.extreme.indiana.edu:9080/GFac/GFacServlet Q: I am a Service Provider. Do I need to have an implementation of the service that I want to provide? A: Absolutely not! GFac will automatically create an implementation of the service that you want to provide. You just need to provide a descripion of the service in the ServiceMap document. It is basically a mapping between method names and applications. In other words, it specifies the application that will be invoked when the corresponding method is invoked on the service. Q: Do I need to specify the command line arguments to the application in the ServiceMap document? A: No. You just need to specify the names of the command line arguments. Q: My application is a Weather Forecasting application that takes a few days to run. Will the method block till my application finishes? A: No. Q: Can the GFac start services on remote hosts? A: In the current version, the GFac can start a service on the localhost only. In the next version, the GFac will be able to start services on any remote host on the Grid. Q: Under whose credentials will the newly created service run? A: In the current version, the GFac will start the service with GFac's credentials. In future versions, the Service Provider can provide his/her credentials and GFac will start the service with the credentials of the Service Provider. Q: How can I deny Bob access to the service that I just created? A: In the next version, Service Providers can specify policy information in the ServiceMap document. The policy information will describe the policies that the GFac must enforce for the service that it creates. You can specify security policies in the there and deny acess to Bob. Q: How can I specify that my service must not be available after some time? A: In the current version it is not possible. However, in the next version, you can specify in the ServiceMap document the lifetime for your service. Q: Ok. Looks like the new version is feature packed !!! When will it be available? I am waiting to grab it !!! A: Really really really soon !!!!!!!!!!!!! /* * Copyright (c) 2002-2004 Extreme! Lab, Indiana University. All rights reserved. * * This software is open source. See the bottom of this file for the licence. * * $Id: About.txt,v 1.1 2005/05/06 21:28:14 machrist Exp $ */ /** * @version $Revision: 1.1 $ * @author Gopi Kandaswamy [mailto:gkandasw@cs.indiana.edu] */ /* * Indiana University Extreme! Lab Software License, Version 1.2 * * Copyright (c) 2002-2004 The Trustees of Indiana University. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1) All redistributions of source code must retain the above * copyright notice, the list of authors in the original source * code, this list of conditions and the disclaimer listed in this * license; * * 2) All redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the disclaimer * listed in this license in the documentation and/or other * materials provided with the distribution; * * 3) Any documentation included with all redistributions must include * the following acknowledgement: * * "This product includes software developed by the Indiana * University Extreme! Lab. For further information please visit * http://www.extreme.indiana.edu/" * * Alternatively, this acknowledgment may appear in the software * itself, and wherever such third-party acknowledgments normally * appear. * * 4) The name "Indiana University" or "Indiana University * Extreme! Lab" shall not be used to endorse or promote * products derived from this software without prior written * permission from Indiana University. For written permission, * please contact http://www.extreme.indiana.edu/. * * 5) Products derived from this software may not use "Indiana * University" name nor may "Indiana University" appear in their name, * without prior written permission of the Indiana University. * * Indiana University provides no reassurances that the source code * provided does not infringe the patent or any other intellectual * property rights of any other entity. Indiana University disclaims any * liability to any recipient for claims brought by any other entity * based on infringement of intellectual property rights or otherwise. * * LICENSEE UNDERSTANDS THAT SOFTWARE IS PROVIDED "AS IS" FOR WHICH * NO WARRANTIES AS TO CAPABILITIES OR ACCURACY ARE MADE. INDIANA * UNIVERSITY GIVES NO WARRANTIES AND MAKES NO REPRESENTATION THAT * SOFTWARE IS FREE OF INFRINGEMENT OF THIRD PARTY PATENT, COPYRIGHT, OR * OTHER PROPRIETARY RIGHTS. INDIANA UNIVERSITY MAKES NO WARRANTIES THAT * SOFTWARE IS FREE FROM "BUGS", "VIRUSES", "TROJAN HORSES", "TRAP * DOORS", "WORMS", OR OTHER HARMFUL CODE. LICENSEE ASSUMES THE ENTIRE * RISK AS TO THE PERFORMANCE OF SOFTWARE AND/OR ASSOCIATED MATERIALS, * AND TO THE PERFORMANCE AND VALIDITY OF INFORMATION GENERATED USING * SOFTWARE. */