Sie sind auf Seite 1von 9

Designing Grid Tag Libraries and Grid Beans

Mehmet A. Nacar1,2, Marlon E. Pierce1, Gordon Erlebacher3 and Geoffrey C. Fox1,2


1
Community Grids Lab, Indiana University
2
School of Informatics, Indiana University
3
School of Computational Science, Florida State University
{mnacar, marpierc, gcf}@indiana.edu
erlebach@scs.fsu.edu
Abstract: We present a detailed description of the implementation of a library of Grid tag libraries and
Grid beans for Grid Web portal development. Grid tags provide Java Server Faces (JSF) custom
components for Grid services. They enable the definition of attributes to the Grid service parameters in a
dynamic way embedded into JSF view pages. In addition, Grid beans provide client proxies to the Grid
services. Grid tags and beans together provide a platform to develop Grid portlets easily. In addition to
standard Grid job submission and remote file operation tags, we also provide management and
monitoring capabilities for Grid tasks. This system can persistently store bean features and job
parameters, which results in a permanent storage for archiving and reference.
Keywords: Java Server Faces, Grid portals, portlets, tag libraries
It is our observation that portlets work well for
1. Introduction exchanging relatively complete applications
Grid Web portals are gateways to science between projects. There needs to be a way,
applications and data simulations. For instance, however, to construct portlets themselves out of
TeraGrid [1] computing resources are accessed reusable components. The capabilities listed
through gateway portals that provide higher above can be implemented as individual portlets,
level user interfaces to basic TeraGrid services. but typically we want to combine these common
The Globus [2, 3] provides implementations for Grid capabilities into more specific portlets for a
the core services, such as file transfers, remote particular application. For example, a portlet
job submission, and resource information developed to submit a computational material
retrieval. science code needs to be composed out of job
submission, file transfer, and job monitoring
Most of the Grid services are accessible by using
capabilities into a single portlet, rather than
command-line tools or Web services clients.
composed as a combination of existing job
GCE Shell [4] supports Grid services by using a
submission, file transfer, and job monitoring
command-line tool. Grid portals provide user
portlets. Java Server Faces (JSF) [7] is a Web
friendly Web interfaces. Both portals and
development framework that provides
command line environments are implemented
component model to build dynamic web pages,
using the Java CoG abstractions [5] that wrap
and forms the basis for our approach. JSF
Grid services to support an additional client-
applications can be deployed as portlets by using
programming layer on top of Grid services.
the JSF portlet bridge [8], which provides JSR
Java-based portals may be built out of standard
168 compatible libraries. The JSF component
components, called portlets, which are
model can be customized to extend new tag
standardized in the JSR 168 specification. Grid
libraries. We have used the JSF tag library
portlets are frontend clients of Grid services.
framework to design Grid tags and beans to
Typical capabilities include client tools for
simplify Grid portlet development.
interacting with the following services:
In this paper, we discuss significant revisions
• Credential generation and management
and improvements to tag libraries based on the
• Job Submission lessons we have learned in the previous work
• File transfer and operations [9]. Our Grid tag libraries enable the design of
• Monitoring and persistence Grid portlets out of basic Grid tasks. We have
• Resource management changed the design of tag libraries, and we

1
provide additional Grid tags and beans. Instead Grid tags. RSF tags are described in XML and
of using generic task tags, we have used specific do not directly tie to technology specifications
tags such as myproxy, jobsubmit, fileoperation, like JSTL [13]. RSF tags must comply with
and filetransfer, building off the work described rendering technologies like IKAT [14].
in [5]. The new specification brings additional OGCE portlets [15] are built on Velocity and
features for application developers. First, the provide access to common Grid services through
new specification provides more attributes the Java CoG abstraction layer [5]. OGCE also
specific to Grid tags that are self-contained and provides portlets for Condor and Storage
can be customized easily. Second, composite Resource Broker services. These portlets are
tasks can contain an unlimited number of compliant with JSR 168 and portable among
subtasks (limited to system resources), unlike portal frameworks. For example, one can deploy
the previous work, which was restricted to three OGCE portlets on either GridSphere or uPortal.
multi-staged tasks. Both implementations are Each portlet provides a single Grid capability.
currently limited to “one deep” nested composite JSR 168 does not support inter-portlet
tasks, but the new approach will enable us to communication in its specification; however,
build recursively nested subtasks. The third OGCE portlets has to share session data to
advantage of Grid tags is that it gives liberty to access proxy credential.
developers to use their own Grid beans library or
add more Grid beans to the existing ones. 3. JSF Grid Tags and Grid Beans
We summarize related works in the second We aim to provide a set of Grid tags in JSF that
section. The third section explains JSF Grid can be used to build Grid portlets. Our tag
beans and tags. We introduce applications and libraries provide common Grid capabilities such
conclude with future works. as proxy credential management, job
submission, file operation, and workflow by
2. Related Work means of multi-staged tasks. Grid tags are
Grid portlets have been developed by a number associated with Grid beans to access Grid
of groups. GridSphere’s Grid portlets [10] services. Grid bean methods are bound to tags
provide a set of capabilities that supports Grid with attributes. These can then be used to
services available by the Globus toolkit, simplify the building of new Grid portlets.
including GRAM, Grid FTP, MDS, GRIS,
MyProxy, Web Service Resource Framework 3.1 Grid tags
(WSRF) for GT4 and Open Grid Services Grid services are interfaced by Java CoG
Architecture (OGSA). These portlets are built on abstractions. These programming interfaces have
JSP and use the Grid portlet services of capabilities to generate proxy certificates,
GridSphere. GridSphere Grid portlets are strictly submit jobs, transfer files and make file
dependent on the GridSphere portal framework; operations. They also provide composite task
as a result these portlets are not portable among submissions and their handling.
portal containers.
JSF technology helps to build user interfaces
Reasonable Server Faces (RSF) [11] is another based on an object-oriented component
Web framework that works to separate the approach. JSF tags are built from Java classes
presentation and logic. It enables HTML pages that can be extended using JSF component
to be totally independent from the backing model. New components derive from JSF base
beans. It also supports simple beans in the component classes. Each component should
request scope. The beans are outside of local define its attributes, which can bind values,
JVM and are created in the Spring container methods or actions. A full discussion explaining
[12]. Similar to JSF, RSF supports custom how to extend JSF components is beyond the
components. In this case, components do not scope of this paper. We recommend [16] for a
present any view behavior, unlike JSF. In other tutorial on this subject.
words, RSF components are non-visual. This is
one advantage of RSF in terms of developing

2
The main goal is to make Grid portlet
development easier by encapsulating standard
Grid operations with JSF tags. These tags can
be assembled to create composite tasks. In
traditional Web frameworks such as Velocity
and JSP backing bean objects and HTML tags
are mixed within the server pages. Instead JSF
eliminates this intervention by proposing JSF
tags that separate backing bean and server pages.

3.2 Use case example


Typically a Grid portlet must do several related
tasks in response to a user-generated event. Figure 1. A typical multistage Grid job involves
These may be thought of as simple workflows. four sub-tasks: moving an input file to a
These workflows can be considered the nodes of particular execution host, submitting the job, and
a Directed Acyclic Graph (DAG), which are moving the output to a storage host.
Grid tags are designed to support. The DAG, or The <%@taglib
composite task, is called ‘multitask’ in our uri="http://www.ogce.org/gsf/task"
approach. Multitasks only allow dependent task prefix="o"%> tag is used at the top of the page
units and prevent parallel tasks. Figure 1 shows to define the custom tags called with the “o”
a multitask with sub-tasks and their namespace. Application developers must define
dependencies. In this example, Task A makes a Grid operations in a Web form. The <o:submit>
directory. Task B transfers an input file form a tag is a submitting button for the composite task
remote host to newly created directory, and Task that is bound to a JSF action method [16]. The
C is responsible for submitting a job on the <o:multitask> defines composite task and
remote computer. When Task C completes, Task <o:dependency> defines their dependencies. The
D transfers output file to another location. The tasks <o:myproxy>, <o:fileoperation>,
following explains the scenario in detail through <o:filetransfer> and <o:jobsubmit> are unit
the use of Grid tags. tasks for this composition. The dependency tags
This example demonstrates a composite Grid indicate that taskA must complete successfully
task with Grid tags. The JSF snippet below before taskB will run, taskB must complete
(Listing 1) shows how a portlet developer would successfully before taskC can be run and taskC
create a custom Grid portlet. First, a myproxy must complete successfully before taskD could
tag generates a proxy credential form run. Complete XML schema specifications of
gf1.ucs.indiana.edu myproxy server. Second, Grid tags can be found at [17]. Each Grid tag is
using this credential, it makes a directory on the associated with UI component and tag class that
TeraGrid resource cobalt.ncsa.teragrid.org. is explained in great detail in section 3.4.
Third, it transfers an input file called input_file
from gf1.ucs.indiana.edu to 3.3 Grid Beans
cobalt.ncsa.teragrid.org. Forth, it then Grid tags and beans work together to perform
executes a script called execute. When the Grid tasks. Grid tags provide the JSF
execution is completed outputs are written to the components for Grid applications, while Grid
file named result. If an error occurs it is also beans provide the business logic of Grid
written to the file named error. Finally, result applications. We have implemented Grid beans
file is transferred back to in a generic and standard way to support
gf1.ucs.indiana.edu. underlying Grid technologies. We have also
attempted to design our tag libraries to support
other Grid bean implementations. The Grid

3
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@taglib uri="http://www.ogce.org/gsf/task" prefix="o"%>
<f:view>
<h:form id=”myform” >
.......
.......
<o:submit id=”test” action=”next_page” />
<o:multitask id=”mytask” taskname=”test” persistent=”true” >
<o:myproxy id=”proxy” hostname=”gf1.ucs.indiana.edu” port=”7512”
lifetime=”2” username=”manacar” password=”******” />

<o:fileoperation id=”taskA” command=”mkdir”


hostname=”cobalt.ncsa.teragrid.org”
path=”/home/manacar/tmp/” />

<o:filetransfer id=”taskB”
from=”gridftp://gf1.ucs.indiana.edu:2811/home/manacar/input_file”
to=”gridftp://cobalt.ncsa.teragrid.org:2811/home/manacar/tmp/input_file” />

<o:jobsubmit id=”taskC” hostname=”cobalt.ncsa.teragrid.org”


provider=”GT4” executable=”/bin/execute”
stdin=”tmp/input_file” stdout=”tmp/result”
stderr=”tmp/error” />

<o:filetransfer id=”taskD”
from=”gridftp://cobalt.ncsa.teragrid.org:2811/home/manacar/tmp/result”
to=” gridftp://gf1.ucs.indiana.edu:2811/home/manacar/result” />

<o:dependency id=”dep1” task=”taskB” dependsOn=”taskA” />


<o:dependency id=”dep2” task=”taskC” dependsOn=”taskB” />
<o:dependency id=”dep2” task=”taskD” dependsOn=”taskC” />

</o:multitask>
</o:submit>

</h:form>
</f:view>

Listing 1: Grid tag libraries are used to build a sample Web form.
beans are generic tasks that may be extended • JobSubmitBean: Executes GRAM job
using other toolkits besides Globus. For submissions.
example, the JobSubmitBean for job submission • FileOperationBean: Performs common
uses Globus resources in our implementation. file and directory operations like rm,
Developers can create their own beans with mkdir, put, get
other toolkits. For example, Condor can be used • FileTransferBean: Transfer files among
for job submissions rather than Globus. GridFtp servers
However, this requires that Grid bean method • MultitaskBean: Creates composite tasks
names should be standardized and required bean and execute them.
methods has to be provided. For example, Note that these are independent of the JSF
actions methods should be called submit in all framework. The Grid tag libraries shown in
beans. Parameter names should also be Listing 1 are built from these, as we describe in
consistent throughout the beans e.g., hostname, the next section.
provider, username and executable etc.
Our Grid beans are listed below. 3.4 Design and management of Grid
• MyproxyBean: This bean generates user tags
proxies and stores the Grid credential in Grid tag libraries are built using JSF custom
the session. component development techniques. A standard

4
JSF tag requires at least two classes to be • TaskListener: Catches Grid bean
implemented: the ComponentTag and execution stages and propagates events
IUComponent classes must be extended. Tag back to the monitoring bean.
names and attributes have to be defined in a tld • ComponentBuilderBean (CBB):
file and this file is added to web.xml. Component Retrieves Grid components from JSF
names and classes are defined in faces- pages (see Listing 1) and builds internal
config.xml. A full explanation of JSF custom tag hierarchical directed graph of the grid
development is available from [16]. actions to be taken
Custom component classes extend the ResourceBean, MonitorBean and
UIComponentBase class and are normally ComponentBuilderBean are managed by JSF’s
associated with HTML or other rendered session handling mechanisms and are declared
widgets (input fields, buttons, etc.) in the user in the faces-config.xml file. CBB is not normally
interface. We have implemented several custom used directly by developers in their JSF pages.
UI components, including UISubmit and They instead interact with this object through
UIMultitask, as discussed here. Components can Tag libraries. Application developers can
access a map (specifically, a java.util.Hashmap) directly use ResourceBean and MonitorBean to
of attributes and child components. If the build up pages.
component is visual like UISubmit (which we
associate with the HTML <submit> button), it
also implements encoding and decoding
methods to process HTML markup. If the
component is non-visual (i.e. does not need to be
converted into HTML), it is associated with a
null renderer. UIMultitask class is a non-visual
component. In addition, the JSF ComponentTag
class extension has to implement release(),
setProperties(), getComponentType(), and
getRendererType() methods. The setProperties()
method binds attribute values and methods to the
Figure 2. Shows architecture of
associated UIComponent.
ComponentBuilderBean and its components
In JSF, the tags and attributes are used to render
Figure 2 shows the architecture of components.
displays and communicate attribute values (see
In this diagram, bean and listener tables are in
Listing 1). We encapsulate the actual logic of
the HttpSession and tables store bean and
the page (associated with user button clicks) in
listener objects in a Hashmap. CBB handles user
several beans that are called by the UISubmit’s
requests on the server side using Grid bean
action method. Besides tag and component
property values provided by ResourceBean. The
classes, there are core beans as following:
actions are fired off by the Grid submit tag that
• ResourceBean: A general bean to collect is bound to the submit method of CBB. Its
property values used in JSF form pages. action listener catches the event and calls
By default it loads property values from required methods to parse custom components.
a resources.properties file. FactoryBean then constructs corresponding sub-
• FactoryBean: Manages multiple Grid tasks. Next, CBB constructs a taskgraph using
beans (super class of JobSubmitBean, MultitaskBean. CBB adds child components
FileOperationBean and which are Grid beans and their dependencies. It
FileTransferBean) and MultitaskBean then submits the taskgraph and passes the
instances for a single user control to the submit button’s action attribute.
• MonitorBean: Monitors and manages The JSF engine handles the value of the action
bean executions attribute, while a navigation rule points to the
destination page based on the attribute value.

5
The above classes (particularly the Factory <f:view>
Bean) are designed to accommodate a common <h:form id="first" >
use case in Grid portlets that is not handled well <h:dataTable
value="#{tasklist.tasks}"
by JSF: we need to construct many beans for
var="task">
encapsulating many submissions by a single user <h:column>
in a single session. JSF manages the sessions <f:facet name="header">
(lifecycle) of beans but these are statically <h:outputText
configured in faces-config.xml, so we need an value="Handler" />
approach to create and manage lots of Grid </f:facet>
beans. We must also address a disparity of time <o:handler id=”delete”
scales: JSF event processing may take action="#{monitor.cancel}" >
milliseconds, while the corresponding backend <f:param id="task"
name="taskname" value="#{task}"/>
action may take much longer. Our solutions are </o:handler>
described in the following section. </h:column>
</h:dataTable>
3.5 Design Principles </h:form>
We have used the strategy of returning </f:view>
immediate results to the user such as passing the Listing 2. The handler tag is used with
control to the next page since Grid operations <h:dataTable> to create a table of tasks and
can take a long time to complete. Thus, a user enable cancellation actions.
submits the job in one page and is not required
Figure 3 illustrates the user interaction with the
to wait until the job finishes. Instead, users are
Grid beans and tags is illustrated. When user hits
able to monitor their jobs in another page. To
a submit button, CBB takes control. CBB first
maintain this scenario, either we need to keep
constructs a multitask with the components
callbacks for each job or to store listeners for
defined by the Grid tags. CBB also submits the
each job in the servlet HttpSession object. We
multitask and manages its lifecycle with
have therefore used CBB that take care of each
associated listeners. After the submission is
request in the session. Then we stored bean
completed, control is passed to MonitorBean
instances and their listeners into tables
shown on the right. MonitorBean interacts with
(Hashmap) among the session with taskname
the session to retrieve the information of
key. The taskname key is created by putting the
submitted tasks.
user-defined taskname (collected from Web
form input) and the timestamp together to 3.6 Monitoring and management of
provide a reasonable ID. jobs
Grid tags launch Grid operations. Keeping track Monitoring pages are responsible for keeping
of lifecycles and archiving are also important track of submitted tasks. Grid tasks usually take
aspects of Grid portlets. Thus, we define a time to process. Consequently, managing the
<o:handler/> tag in Listing 2 that provides persistence of the tasks and archiving the results
capabilities allowing users to manage lifecycles and input parameters are important for portal
manually such as canceling, suspending, and users. CBB provides a mechanism to store task
resuming the jobs. The <o:handler> tag is visual handlers into persistent storage in the user’s
and it is rendered as HTML button. The session workspace. Monitoring pages collect status
tables only persist until the servlet session information and task parameters from user’s
expires or terminates. So we need to have workspace with a key named taskname. In
mechanism to persistently preserve them in a general, CBB provides status information and
permanent storage. The persistent attribute of updates archival storage accordingly. This has
the multitask tag switches archiving on and off an important advantage that caches the
(see Listing 1). A context server [9] provides monitoring information in the session. On the
archival facilities that store bean values and the other hand, CBB stores URL handlers of
status in a structured way.

6
Figure 3: Sequence diagram for Grid tags and beans including user interaction.
submitted jobs which are provided by the supports these capabilities for active (running)
Globus API. A URL handler is important for tasks. The MonitorBean allows users to manage
persistence. In case the user logs out or a session their job archive: failed tasks may be deleted or
expires, the handler can always be accessible renamed for resubmission. Successful task
from archive and the user can retrieve status results and output files can be downloaded or
information with it. transferred to permanent storages.
Monitoring pages check the status of submitted 3.7 Additional Topics: Collecting User
tasks. We model task with Java Bean class Input Values and Handling Navigation
called JobData. Each submitted task has an
associated JobData object. The collection of Our Grid tags are primarily non-visual
JobData objects is stored in a java.util.List. Job components in a JSF page that are associated
status information is displayed in HTML using with submit button actions. However, many of
the JSF HtmlDataTable component (which JSF the tag attributes (e.g., which host to use or input
converts to an HTML <table>). Properties stored file to copy) must come from user input. This is
in the JobData object include taskname, input done using Web forms. Thus, Grid tags are
parameters, output and error file locations, start embedded into a complete JSF page that
time, finish time and status. contains a Web form that has visual input and
output text elements. There are only two
Portal users can manage the tasks that resume, exceptions: the <o:submit> and <o:handler> tags
cancel or resubmit jobs. The MonitorBean

7
are bound to a button that triggers series of Grid tags are also being developed for use in the
actions behind the scenes. Since Grid tags are Common Instrument Middleware Architecture
unable to get inputs from the page, we need a (CIMA) crystallography portal [19]. CIMA
mediator to communicate these user-provided provides access to X-Ray crystallography,
inputs to our Grid tags. instrument and sensor data. Sample data
ResourceBean provides a simple way to includes CCD images of crystals as well as
represent common property values across the laboratory conditions such as temperature and
application. We define common property values humidity. The CCD images may also be post-
for Grid beans such as hostname, provider, processed. One of the post-processing
username etc. Each of these values corresponds applications used is SAINT [20], used to
to Grid tag attributes. Thus, ResourceBean gets integrate CCD image frames, sort reflection
its value from the Web form dynamically and lists, scale, filter, and merge reflections. In this
assign it to the Grid tag attribute. ResourceBean case, crystallographers launch a SAINT
enables users to enter dynamic values in the application using multitasks to initiate an image
form and submit their tasks with these values. analysis. This process results in image files that
are being downloaded to a portal server and are
JSF page navigation is somewhat complicated made available for users.
compared to JSP page navigation, as the JSF
pages’ links and HTML form actions do not In this paper, we have described the design,
directly point to the next page to load. Instead, implementation and usage of Grid tags and
JSF navigation rules for a particular web beans for developing Grid portlets. This extends
application are configured in the faces- and improves both the interface and
config.xml file. Similar to standard JSF, implementation of our previous work. Using a
advanced navigation controls the page with fine-grained component architecture enables the
constant values as well. The <o:submit> button construction of science application specific Grid
provides action attribute (see Listing 1) that portlets in terms of reusable Grid tags.
assign a constant value for the destination page. Dynamically monitoring and tracking status
Action methods and action listener methods of changes of tasks is another important aspect of
the <o:submit> tag are hidden from the Grid portals. We are considering the use of Ajax
application developers to reduce the complexity. [21] technology in the next release. In the
But the navigation is left to application current architecture, multitasks are currently
developers. The advantage of this architecture is limited to “one-deep” graphs and are not
that users need not wait on the submit page until recursive. We will consider adding this
it is completed. Instead they are directed to the capability. We also need to investigate
destination page immediately (i.e., supporting the second-generation of portlet API,
asynchronously). JSR 286 [22].

4. Applications and Future Work 5. Acknowledgements

The Grid tags and beans described here are used This work is supported by the National Science
by several science portal applications. The Foundation’s Information Technology Research
Virtual Laboratory for Earth and Planetary (NSF grant ITR-0428774, 0427264, 0426867
Materials (VLab) portal is mainly focused on VLab) and Middleware Initiative (NSF Grant
computational methods of material science. In SCI 0330613) programs.
this case, scientists launch PWSCF [18]
simulations and get visual results. VLab job 6. References
submission portlets enable material scientists to [1] Charlie Catlett, "The Philosophy of TeraGrid:
launch and monitor simulations through Grid Building an Open, Extensible, Distributed
portal. We have developed VLab portlets to use TeraScale Facility," ccgrid, p. 8, 2nd
IEEE/ACM International Symposium on Cluster
Grid tags and beans to facilitate issuing Computing and the Grid (CCGRID'02), 2002.
credentials, file operations, remote job
executions and file transfers.

8
[2] Foster, I. and Kesselman, C. Globus: A Toolkit- [12] Spring container Web site:
Based Grid Architecture. In Foster, I. and http://www.springframework.org/
Kesselman, C. eds. The Grid: Blueprint for a [13] Bayern S., JSTL in Action. Manning. 2002.
New Computing Infrastructure, Morgan
Kaufmann, 1999, 259-278. [14] IKAT Web site:
http://www2.caret.cam.ac.uk/rsfwiki/Wiki.jsp?pa
[3] Foster, I., Kesselman, C. and Tuecke, S. The ge=IKAT
Anatomy of the Grid: Enabling Scalable Virtual
Organizations. International Journal of High [15] Jay Alameda, Marcus Christie, Geoffrey Fox,
Performance Computing Joe Futrelle, Dennis Gannon, Mihael Hategan,
Gregor von Laszewski, Mehmet A. Nacar,
[4] Mehmet A. Nacar, Marlon Pierce and Geoffrey Marlon Pierce, Eric Roberts, Charles Severance,
C. Fox Developing a Secure Grid Computing and Mary Thomas The Open Grid Computing
Environment Shell Engine: Containers and Environments Collaboration: Portlets and
Service Special issue on Grid computing in Services for Science Gateways March 2006
Journal of Neural Parallel and Scientific Concurrency and Computation: Practice and
Computations (NPSC), Volume 12, pages 379- Experience Special Issue for Science Gateways
390, 2004 GGF14 workshop
[5] Kaizar Amin, Gregor von Laszewski, Rashid Al [16] How to write your own JSF components. Web
Ali, Omer Rana, and David Walker, An site:
Abstraction Model for a Grid Execution www.exadel.com/tutorial/jsf/HowToWriteYour
Framework, Journal of Systems Architecture, OwnJSFComponents.pdf
Volume 52, Issue 2 , February 2006, Pages 73-
87, Parallel, Distributed and Network-based [17] http://grids.ucs.indiana.edu/users/manacar/GridT
Processing. ags/GridTagsInterface/GridTagsXMLSchema.xs
d
[6] Abdelnur, A., Chien, E., and Hepper, S., (eds.)
(2003), Portlet Specification 1.0. Available from [18] S. Scandolo, P. Giannozzi, C. Cavazzoni, S. de
http://www.jcp.org/en/jsr/detail?id=168. Gironcoli, A. Pasquarello, and S. Baroni, First-
principles codes for Computational
[7] Craig McClanahan, Ed Burns, Roger Kitain. Crystallography in the Quantum-ESPRESSO
Java Server Faces Specification. Version 1.1. package, Z. Kristallogr. 220, 574-579 (2005).
[8] Apache portal bridges Web site: [19] Hao Yin, Donald F. McMullen, Mehmet A.
http://portals.apache.org/bridges/ Nacar, Marlon Pierce, Kianosh Huffman,
[9] Mehmet A. Nacar, Mehmet S. Aktas, Marlon Geoffrey Fox and Yu Ma Providing Portlet-
Pierce, Zhenyu Lu and Gordon Erlebacher, Dan Based Client Access to CIMA-Enabled
Kigelman, Evan F. Bollig, Cesar De Silva, Crystallographic Instruments, Sensors, and Data
Benny Sowell, and David A. Yuen VLab: Technical Report April 21 2006 with short poster
Collaborative Grid Services and Portals to version for 7th IEEE/ACM International
Support Computational Material Science Dec 30, Conference on Grid Computing (GRID 2006).
2005 Special Issue on Grid Portals based on Barcelona, Spain.
SC05 GCE'05 Workshop, Concurrency and [20] SAINT Web site: http://xray.utmb.edu/saint.html
Computation: Practice and Experience.
[21] Michael Mahemoff. Ajax Design Patterns.
[10] Michael Russell, Jason Novotny, Oliver O’Reilly. 2006
Wehrens: The Grid Portlets Web Application: A
Grid Portal Framework. Parallel Processing and [22] Stephen Hepper. Java Portlet Specification
Applied Mathematics (PPAM) 2005: 691-698. Version 2.0 Early Draft. July 2006.
[11] Reasonable Server Faces Web site:
http://www2.caret.cam.ac.uk/rsfwiki/Wiki.jsp?pa
ge=Main

Das könnte Ihnen auch gefallen