Professional Documents
Culture Documents
com
Abstract
The convergence of data, voice, and multimedia communication over digital networks, coupled with continuous improvement in network capacity and reliability has resulted in a proliferation of communication technologies. Unfortunately, despite these new developments, there is no easy way to build new application-specic communication services. The stovepipe approach used today for building
new communication services results in rigid technology, limited utility, lengthy and costly development cycle, and diculty in integration.
In this paper, we introduce communication virtual machine (CVM) that supports rapid conception, specication, and automatic realization of new application-specic communication services through a user-centric, model-driven approach. We present the concept, architecture, modeling language, prototypical design, and implementation of CVM in the context of a healthcare application.
Published by Elsevier Inc.
Keywords: Model-driven architecture; Communication services; Multimedia; Middleware; Telemedicine
1. Introduction
The convergence of data, voice, and multimedia over
digital networks coupled with the continuous improvement in network capacity and reliability has enabled a
wide range of communication-intensive applications.
Examples range from general-purpose communication
applications such as VoIP telephony, voice, video or
multimedia conferencing to specialized applications such
as disaster management and telemedicine. The pace of
innovation of new communication-intensive applications
will undoubtedly accelerate further as both capacity
and demand increase. This trend in communicationintensive applications is reminiscent of the rise of dataintensive applications during the late 1970s through the
1990s.
*
Corresponding author. Tel.: +1 305 348 1835; fax: +1 305 348 3549.
E-mail addresses: deng@cis.u.edu (Y. Deng), sadjadi@cis.u.edu (S.
Masoud Sadjadi), clarkep@cis.u.edu (P.J. Clarke), vagelis@cis.u.edu
(V. Hristidis), raju@cis.u.edu (R. Rangaswami), ywang002@cis.u.edu
(Y. Wang).
0164-1212/$ - see front matter Published by Elsevier Inc.
doi:10.1016/j.jss.2008.02.020
1641
(e.g., telemedicine), CVM provides an eective way to support complex application-specic communication needs.
A layered CVM architecture will be presented. These layers are common to and shared by dierent communication
applications. This architecture separates and encapsulates
major concerns of communication modeling, synthesis,
coordination, and the actual delivery of the communication
by the underlying network and devices, into self-contained
compartments with clear interface and responsibility. We
will show that this architectural principle of separation of
concerns employed in CVM is the basis for its automation
and exibility. This is because system components and communication protocols that are common to dierent applications can be identied and shared without having to be hard
coded into a stovepipe system. This will also enable the
CVM architecture to be independent of the underlying networking infrastructure and communication devices.
Coupled with the CVM architecture, there are several
major components that together form the CVM system:
A communication modeling language that provides an intuitive graphic form for users (or user organizations) to
declaratively model their communication requirements (in
terms of communication schema); a synthesis engine that
negotiates and synthesizes user-communication sessions; a
communication engine that executes user-communication
logic; and network communication broker that interfaces
with the underlying network infrastructure.
The design of CVM draws from the concepts of modeldriven engineering (Bettin, 2004; Schmidt, 2006) communication middleware (Schmidt, 1997) and middleware-based
architecture (Schmidt, 2002). However, by focusing on the
communication aspects of the application, CVM achieves
a high degree of automation and eectiveness, and avoids
the pitfalls of many general purpose methods and techniques for model-driven engineering that are overreaching
and consequently ineective. Furthermore, the CVM
approach goes far beyond the goals of communication middleware towards end-to-end communication solutions.
A prototypical design of the CVM is implemented and is
fully functional. In addition to supporting general purpose
communication functions (e.g., multimedia conferencing),
we have worked with physicians and technical sta at the
Miami Childrens Hospital (MCH) and the Teges Corporation, which supplies MCH with its patient medical information system called i-RoundsTM (TegesTM Corporation,
2005; Burke and White, 2004). We have conducted case
studies of using the CVM to support communication
between doctors involved in cardiovascular operations
based on scenarios and criteria formulated by the doctors.
We have demonstrated that it takes less than a day to discuss, formulate and structure the telemedicine scenarios
into CVM communication schemas; and it takes two graduate students a week to integrate the CVM system with the
i-Rounds patient information systems, which transforms
CVM into a communication platform capable of supporting a variety of telemedicine communications with structured exchange of patient information.
1642
In the rest of this paper, we present the concept, architecture, modeling language, prototypical design, and
implementation of CVM. Without compromising the applicability of CVM in other application domains, we use a
healthcare communication application as the case study.
2. Motivating example
3. CVM overview
1643
1644
CVM
User Communication Interface
(UCI)
CVM
CML Model Comm.
Communication Networks
Communication Networks
Legend
Control and Data Flow
Virtual Communication
communication control scripts. For example, when a session participant changes the communication schema by
switching from a person-to-person call to a multi-way conference, SE will generate a new communication control
script that reects the change. Once the new communication control script is deployed to UCM, it should transfer
the state of the old control script to the new one seamlessly
and safely (Zave et al., 2004). The UCM is also responsible
for the enforcement of policies contained in the communication schema instance. The policies may include communication constraints, security properties and other QoS
concerns.
NCB is responsible for providing a uniform API of highlevel and network-independent communication services to
diverse communication applications (Zhang et al., 2006),
in such a way to shield user applications from the underlying network/device heterogeneity and dynamics. It utilizes
and coordinates networking functions (e.g., signaling,
encoding and decoding, and transmitting and receiving)
provided by the underlying networks, systems, and
libraries. Given the variety and complexity of network congurations, it must exhibit a self-managing behavior that
can respond to dynamics of the underlying device and network infrastructure. The concept of NCB oers a novel
approach that simplies application development and
interoperation, and introduces many important research
issues including self-management, dynamic conguration,
denition of application independent communication
API, and software framework for hiding network
heterogeneity.
These layers collectively fulll the promise of CVM
that of generating communication applications that are
Tasks
UCI
SE
UCM
NCB
recongurable, adaptive, and exible based only on a highlevel description of communication requirements. A summary of the high-level responsibilities assigned to each of
these layers is presented in Table 1.
1645
The architectural design of UCI, shown in Fig. 4, consists of ve major components: (1) the UI Adapter provides an API to the user interface that allows for the
creation of a communication service schema or instance;
(2) the Communication Modeling Environment provides
the user with an environment to develop communication
User Interface
Data Source
Data Source
User Interface
Native Server
CVM Mediator
CVM Mediator
Native Server
CVM
Repository
CVM
Schemas
Contacts
NETWORK
CVM
1646
Table 2
Interface between CVM components
Layer
Provides
Signals
UCI
msg
msg
msg
msg
msg
msg
msg
msg
msg
login(userid, passwd)
logout(userid)
createConnection()
addParticipant(connect_id, userid)
addMedia(connect_id, media)
send(connect_id, data)
invoke(commService_id)
store(commService_id)
load(commService_id)
notifyUserProfile(data)
notifyCommServiceStatus(commServiceList)
notifyConnectionException()
notifyCommServiceID()
SE
msg
msg
msg
msg
login(userid, passwd)
logout(userid)
invoke(schema_inst)
invoke(schema_data)
notifyUserProfile(data)
notifyMediaStatus(connect_id, media_id)
notifyParticipantStatus(connect_id, participant_id)
notifyException()
notifySIStatus()
UCM
executeScript(string)
notifyUserProfile(data)
notifyMediaStatus()
notifyParticipantStatus()
notifyException()
NCB
authenticate(userid, passwd)
createSession(session_id)
closeSession(session_id)
addParty(userid)
addMedia(mediaURI)
applyPolicy(xmlString)
notifyUserProfile(data)
notifySessionStatus(session_id)
notifySessionInvitation(sender_id, x-cml)
notifyNetworkFailure()
schemas and instances in G-CML2 which are then automatically transformed to X-CML; (3) the Schema Transformation Environment transforms an X-CML instance into
a synthesis-ready X-CML instance or stores the X-CML
model in the repository; (4) the CVM Repository stores
artifacts (e.g., grammar rules and CML schemas) to support the creation of CML schemas/instances; and (5) the
UCI-to-Synthesis Engine Interface provides a conduit
for interaction with the synthesis engine. The User Interface provides a user-friendly GUI that allows users or
developers to easily create communication services schemas
or instances.
UCI provides several functions via the API of the UI
adapter to the user interface as shown in Fig. 4. These functions are listed in the rst row of Table 2. The rst function
login allows a user to be authenticated, and if successful
the users prole is retrieved from the central repository.
The function notifyUserProfile passes a users prole form the NCB to the UI after the user successfully logs
in so that the appropriate data is made accessible to the
user. The user prole consists of the contact list for the user
and the set of communication schemas and schema
instances accessible to the user.
The functions createConnection, addParticipant, addMedia, and send, provide the user interface
with the required operations to allow the UI adapter to
construct an X-CML schema instance. Once the schema
instance has been created, the function invoke(comm2
We developed two equivalent variants of CML: the XML-based (XCML) and the graphical (G-CML). They are introduced in Section 5.
User/Developer
(interactive)
User Interface
Function Calls
UCI
UI Adapter
Communication
Modeling Environment
X-CML
X-CML
Schema Transformation
Environment
X-CML instance
Local
Repository
UCI-SE Interface
Legend
User interactions
1647
SE
1648
UCM
UCM-SE Interface
UCM Manager
Exception
Handler
Loader
Script Interpreter
Local Respoistory
(macros, logging
facility)
NCB-specific
commands
Event Handler
UCM-NCB Interface
1649
1650
NCB
NCB Manager
Session Manager
Call
Processing
Participants
Media
Delivery
User Session
Network Session
Presence
Signaling
1651
Data source(s)
(Medical Data)
Domain App..
Interface
Transformer
Data
Data Request
Form Generator
Mediator
Repository
Mediator Controller
Query mapping info.
Formatted Data
Fig. 8. Block diagram showing the architecture of the CVM data mediator.
1652
Similar to SQL, which can express the large majority of data queries.
ger the research community to start developing communication languages in order to eventually reach a wellaccepted standard.4
5.2. CML
We present an intuitive communication modeling language (CML) (Clarke et al., 2006) for modeling user communication requirements. We developed two equivalent
variants of CML: the XML-based (X-CML) and the
graphical (G-CML). The former is the version that CVM
understands and processes, while the latter is the userfriendly graphical form. G-XML is analogous to the ER
diagram (Chen, 1976) in the database domain. In Clarke
et al. (2006), we show how these two variants can be automatically converted to each other.
5.2.1. X-CML
For presentation purposes we have converted (and simplied) parts of this XML Schema to EBNF form (stripping
out reference constraints that cannot be represented in
EBNF), shown in Fig. 9, in order to explain the basic components of CML. Notice that Fig. 9 depicts an attribute
grammar, where attributes are denoted by an A subscript, terminals by boldface and non-terminal by italics.
Fig. 10 shows the hierarchy of built-in types (builtinTypeA) currently supported in the CML implementation in
CVM. An example of the EBNF productions shown in
Fig. 9 is as follows. Production 6 states that the deviceNT
non-terminal is composed of an actual device (device terminal) e.g., PC, that has one or more capabilities (deviceCapability terminal) i.e., the types the device can
process. In production 9 the actual device currently has
one attribute a unique device identier deviceIDA.
5.2.2. G-CML
Table 3 shows the graphical grammar for G-CML. Columns 2 and 3 of Table 3 show the non-terminal denitions
4
In the same way as XQuery emerged by combining multiple earlier
XML language proposals.
1653
of G-CML, while Columns 4 and 5 show the terminal definitions. The number in the rst column of Table 3 corresponds to the equivalent production in the EBNF
representation of X-CML, shown in Fig. 9. For instance,
the rst row of Table 3 shows the structure of the userSchema non-terminal, which consists of the local non-terminal
connected to one or more connection non-terminals (connection). To indicate that a symbol may be repeated we
use the character for zero or more repetitions and
+ for one or more repetitions. The right side of the rst
row in Table 3 shows the terminal for connection, which
consists of a diamond shaped box with the label connection. The remaining non-terminals and terminals in Table
3 can be described in a similar manner. G-CML uses a
notation similar to E-R diagrams, however the semantics
are dierent. The symbols used in G-CML can be classied
into three categories, these include: (1) entities person,
device, medium and form; (2) relationships connection and isAttached; (3) attributes properties of the
entities (e.g., suggestedApplicationA5). We have
built a tool to support the construction of G-CML models
using the Eclipse Modeling Framework (Wang et al.,
2007). The tool guides the user when building G-CML diagrams in an intuitive drag-n-drop manner and automatically validates the model as it is being built.
5.2.3. CML for scenarios
Figs. 11 and 12 show the (instantiated) G-CML and
X-CML representations for the scenario of Section 2,
respectively. Since the frequency of exchanging data during
communication is much higher than updating the communications conguration (e.g., list of participants, device
capabilities), we partition a CML instance into control part
5
There are attributes associated with entities that are not shown as
special symbols in the diagram but are captured as textual notation in the
associated symbols, e.g., personRole of Person. We chose this design
option to avoid having diagrams that are cluttered with symbols.
1654
Table 3
Grammar for G-CML
medium
heart_scan_video.mpg
VideoFile
send
medium
Heartscan2.gif
NonStreamFile
send
LiveAV
generic form
LiveAV
person
Dr. Burke
023
Surgeon
NonStreamFile
VideoFile
isAttached
Device(Virtual)
connection
Device(PC)
isAttached
NonStreamFile
VideoFile
TextFile
LiveAV
NonStreamFile
person
Dr. Monteiro
048
Attending
Physician
TextFile
form
Vital Signs
medium
LiveAV
Device(Virtual)
VideoFile
isAttached
TextFile
person
Dr. Sanchez
041
Referring
Physician
1655
http://www.voicexml.org/specs/multimodal/x+v/12/.
http://java.sun.com/developer/technicalArticles/J2EE/AJAX/.
1656
Fig. 14. Screenshot of CVM prototype showing integration of CVM with the iRounds system.
San-
8
i-Rounds is an integrated clinical information system developed by
Teges and currently being used in Miami Childrens Hospital.
1657
The above script is delivered to the UCM using the executeScript() of UCM provides interface (as presented
in Table 2). The UCM then invokes appropriate NCB functions to accomplish the actual operations requested by the
user. Following is an outline of the logic generated and executed by UCM interpreter for the control script shown
above:
/* createConnections(connection1); */
sid = s1 /*create a UCM session ID shared with
NCB*/
map(connection1, sid) /*maps connectionID
to sessionID*/
if(!ncb.createSession(sid)) /*calls NCB to
create session*/
throw noSessionException
/*addParticipants(connection1, Dr. Sanchez, Dr. Monteiro); */
sid = getSessionID(connection1)
store participantList/*list contains Dr.
Sanchez, Dr. Monteiro*/
if (sid==null)
throw noSessionException
for all p 2 participantList
begin
if( !(ncb.addParty(sid, p)))
throw partyNotAddedException(p)
end
/*sendSchema(connection1,
Dr.
Burke,
control-xcml, data-xcml)*/
sid = getSessionID(connection1)
participantList = getParticipantList (sid)
if (sid==null)
throw noSessionException
if !(control_xcm==null)
if( !(ncb.sendSchema(sid, Dr. Burke, participantList, control_xcml)))
throw controlSchemaNotSentException
if( !(datel_xcm==null))
if( !(ncb.sendSchema(sid, Dr. Burke, participantList, data_xcml)))
throw dataSchemaNotSentException
/*addMedia(connection1, LiveAV)*/
sid = getSession(connection1)
if (sid==null)
throw noSessionException
if !(ncb.sendMdia(sid, LiveAV, null))
notify SE.unavailableMeida()
1658
We have tested our prototype implementation with several other case studies both in general purpose applications
such as multimedia conferencing and in domain specic
applications such as Telemedicine. Our Telemedicine scenarios have been provided by our partners at Miami Children Hospital.
Limitations. The current version of the CVM prototype
supports the design presented in Section 4. However, the
following functionality have not yet been implemented:
policies to support QoS, adaptive management, reliability,
security, and access control.
7. Prototype evaluation
To show the eectiveness of synthesis engine, we obtain
an estimate of the reduction in development time (and consequently, development cost) for applications with comparable functionality using two development approaches. The
two approaches that were compared included the traditional stovepipe approach and the automatic synthesis
approach provide by the CVM. The applications included
(1) a chat application, (2) a person-to-person voice call,
and (3) a person-to-person video communication service.
Applications (2) and (3) used JMF (Java Media Framework API, 2005) and JAIN-SIP (JAIN-SIP, 2006) technologies and were developed by our team. Table 4 summarizes
Table 4
Reduced development time compared to traditional design and
development
Application type
Application
loc
Estimated
development
time
Spec/
Synthesis
time (min)
Multi-user text
chat
Person-to-person
voice call
Person-to-person
video
communication
Jabber1.4.2
Custom
5528
2 months
<5
9478
4 months
<5
Custom
16,784
7 months
<5
6
5
4
3
2
1
0
0
9 10
11
Number of Participants
Fig. 15. Average time required for negotiation.
1659
of communication services is feasible in CVM for two reasons: First, CVM is restricted to the scope of communication services and does not bear the complexity of
generating general-purpose applications. The complexity
of communication logic can be carefully regulated through
the design of the schema modeling language. Second, CVM
utilizes communication middleware components (e.g.,
those of ACE Schmidt and Huston (2002)) and server-side
architectures (e.g., Bond et al., 2004) as building blocks to
generate communication applications. Such existing components encapsulate procedures, patterns, and algorithms
governing basic communication services (e.g., session
establishment of person-to-person voice call, transmission
of an image le, and real-time video streaming), which
are well understood. The role of CVM is limited to the
identication and composition of such components
(McKinley et al., 2004).
More specically, Heckel and Voigt (2004) describe how
models in UML are transformed into BPEL4WS using the
concept of pair grammars. We use a similar approach in
the UCI but our modeling language G-CML is far more
restrictive than UML and hence far more manageable
and its synthesis can be automated. The implementation
of the visual model in the UCI is based on the work by
Costagliola et al. (2004). Costagliola et al. provide a framework that allows the user to dene a visual language, create
graphical models, validate these models and convert the
models into strings of another language. The work in Balasubramanian et al. (2006) generates code from models
using tool suites for specic application domains that were
developed using a generic modeling environment. In our
work, a generic SE generates control scripts from a CML
description of communication logic, with restricted utility
to the communication domain.
8.2. Communication middleware
There has been extensive work on communication middleware. Our work used many of the principles presented
by Schmidt (1997), including using patterns and frameworks to alleviate complexity associated with a growing
range of multimedia data types, trac patterns, and endto-end QoS requirements. Schmidt explored common pitfalls of developing communication software, including limitations of low-level native OSs and APIs and the
limitations of higher-level middleware. The UCM and
NCB components of CVM are designed exactly to avoid
these pitfalls.
The existing protocol stacks may not be always suitable
to take advantage of advanced transmission technologies
and high-speed networks. Geppert and Roler (1996) discussed how communication architectures could be made
more exible by automatically conguring communication
subsystems based on a specication of desired target service. In the NCB we use a similar approach.
Stiller et al. (1999) described the Da CaPo++ system
as an end-system middleware for multimedia applications
1660
Robust and eective solutions to these issues require further study, which represent exciting and interesting
research topics. We argue, however, CVM represents a
new paradigm for structuring and delivering communication solutions and services, which are far more eective
than the current ways of development. In fact, the unique
architectural traits of CVM allow new components and
features to be seamlessly added as they become available.
As such, CVM can serve as a communication service
framework, which can be built upon and incrementally
improved by the collective wisdom of the research
community.
Acknowledgements
This work was supported in part by the National Science Foundation under grant HRD-0317692. We thank
Eric Johnson, Andrew Allen, Yali Wu, Mario Lorenzo
and Marylurdys Hernandez and for their participation in
CVM prototype implementation.
References
Balasubramanian, K., Gokhale, A., Karsai, G., Sztipanovits, J., Neema,
S., 2006. Developing applications using model-driven design environments. Computer 39 (2), 3340.
Bettin, J., June 2004. Model-driven software development: an emerging
paradigm for industrialised software asset development. Technical
Report, SoftMetaWare. <http://www.softmetaware.com/whitepapers.
html>.
Bond, G.W., Cheung, E., Purdy, K.H., Zave, P., Ramming, J.C., 2004. An
open architecture for next-generation telecommunication services.
ACM Trans. Inter. Tech. 4 (1), 83123.
Burke, R.P., White, J.A., 2004. Internet rounds: a congenital heart
surgeons web log. Sem. Thoracic Cardiovasc. Surg. 16 (3), 283292.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M., 1998.
Pattern-Oriented Software Architecture: A System of Patterns. Wiley,
New York.
Chawathe, S., Garcia-Molina, H., Hammer, J., Ireland, K., Papakonstantinou, Y., Ullman, J.D., Widom, J., October 1994. The TSIMMIS
project: integration of heterogeneous information sources. In: Proceedings of IPSJ Conference. IEEE, New York, pp. 718.
Chen, P.P., 1976. The entity-relationship model: toward a unied view of
data. ACM Trans. Database Syst. 1 (1), 936.
Chung, E., Huang, Y., Yajnik, S., Liang, D., Shih, J.C., Wang, C., Wang,
Y., 1997. DCOM and CORBA side by side. Technical Report,
Microsoft DCOM Technical White Paper. <citeseer.nj.nec.com/
chung97dcom.html>.
Clarke, P.J., Hristidis, V., Wang, Y., Prabakar, N., Deng, Y., May 2006.
A declarative approach for specifying user-centric communication. In:
Proceeding of the International Symposium on Collaborative Technologies and Systems CTS 2006. IEEE, New York, pp. 8998.
Costagliola, G., Deufemia, V., Polese, G., 2004. A framework for
modeling and implementing visual notations with applications to
software engineering. ACM TOSEM 13 (4), 431487.
Day, J.D., Zimmermann, H., 1995. The osi reference model. In: Conformance Testing Methodologies and Architectures for OSI Protocols.
IEEE Computer Society Press, Los Alamitos, CA, USA, pp. 3844.
Deng, Y., Sadjadi, S.M., Clarke, P.J., Zhang, C., Hristidis, V., Rangaswami, R., Prabakar, N., 2006. A communication virtual machine. In:
COMPSAC06: Proceedings of the 30th Annual International Computer Software and Applications Conference COMPSAC06. IEEE
Computer Society, Washington, DC, USA, pp. 521531.
1661
1662
Stiller, B., Class, C., Waldvogel, M., Caronni, G., Bauer, D., 1999. A exible
middleware for multimedia communication: design, implementation,
and experience. IEEE J. Select. Areas Commun. 17 (9), 16141631.
TegesTM Corporation, December 2005. i-Rounds. <http://www.teges.com/index.asp>.
The Parlay Group, June 2007. Parlay/osa specications. <http://www.parlay.org/en/specications/>.
van Renesse, R., Birman, K., Hayden, M., Vaysburd, A., Karr, D., 1998.
Building adaptive systems using ensemble. Softw. Pract. Exper. 28 (9),
963979.
Vinoski, S., 1997. CORBA: integrating diverse applications within
distributed heterogeneous environments. IEEE Commun. Mag. 14
(2). <citeseer.nj.nec.com/vinoski97corba.html>.
Vinoski, S., 1998. New features for CORBA 3.0. Commun. ACM 41 (10),
4452.
Wang, Y., Clarke, P.J., Wu, Y., Allen, A., Deng, Y., 2007. Realizing
communication services using model-driven development. In: Proceedings of 11th IASTED International Conference on Software Engineering and Applications (SEA 2007). ACTA Press, November 1921,
pp. 473479.
Zave, P., Goguen, H.H., Smith, T.M., 2004. Component coordination: a
telecommunication case study. Comput. Networks 45 (5), 645664.
Zhang, C., Sadjadi, S.M., Sun, W., Rangaswami, R., Deng, Y., November
2006. A user-centric network communication broker for multimedia
collaborative computing. In: Proceedings of the Second International
Conference on Collaborative Computing CollaborateCom 2006.
Yi Deng received his Ph.D. in Computer Science from the University of
Pittsburgh in 1992. He has been the Dean and Professor of School of
Computing and Information Sciences at the Florida International University (FIU) the State University of Florida in Miami and one of the
largest urban research universities in the US. Under his leadership, the
School has grown into one of the largest computer science and information technology education programs and one of the best externally funded
research programs in State of Florida University System, a national leader
in diversity, and an active partner to industry. He is an accomplished
leader in computing and information technology research, innovation and
application. He has authored or co-authored over ninety research papers
in peer-reviewed journals and proceedings, and awarded eighteen research
grants as the principal or co-principal investigator totaling over $15 million, most of which from premier US federal funding agencies. He has
initiated and led many large scale multidisciplinary R&D and education
projects and initiatives, founded and directed three research centers,
including the Center for Advanced Distributed System Engineering, the
NSF Center of Emerging Technologies for Advanced Information Processing and High Condence Systems, and the IBM Center for Autonomic
and Grid Computing at FIU. He has been an active contributor to the
professional and research community in various leadership capacities. He
co-founded and co-chairs the Board of Governors for the Latin American
Grid (LA Grid) Consortium, with members include IBM, Barcelona
Supercomputing Center and twelve universities in US, Puerto Rico,
Mexico, Spain and Argentina, dedicated for collaborative research,
innovation and workforce development in computing.