A Database Security Course on a Shoestring Database security has paramount importance in industrial , civilian and government domains . Despite its importance , our search reveals that only a small number of database security courses are being offered . In this paper , we share our experience in developing and offering an undergraduate elective course on database security with limited resources . We believe that database security should be considered in its entirety rather than being component specific . Therefore , we emphasize that students develop and implement a database security plan for a typical real world application . In addition to the key theoretical concepts , students obtain hands-on experience with two popular database systems . We encourage students to learn independently making use of the documentation and technical resources freely available on the Internet . This way , our hope is that they will be able to adapt to emerging systems and application scenarios . H. 2.7 -LSB- DATABASE MANAGEMENT -RSB- : Database Administration -- security , integrity , and protection ; K. 3.2 -LSB- COMPUTERS AND EDUCATION -RSB- : Computer and Information Science Education -- curriculum . Security . Database systems are designed to provide efficient access to large volumes of data . However , many application domains require that the data access be restricted for security reasons . For example , an unauthorized access to Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page . To copy otherwise , or republish , to post on servers or to redistribute to lists , requires prior specific permission and/or a fee . SIGCSE ' 06 , March 1 5 , 2006 , Houston , Texas , USA . Copyright 2006 ACM 1-59593-259-3 / 06/0003 ... $ 5.00 . a bank database can potentially cost millions of dollars . The federal Health Insurance Portability and Accountability Act -LRB- HIPAA -RRB- regulates the disclosure of information from a patient database , allowing access to health care providers , health plans , and health care clearinghouses , simultaneously protecting the privacy of patients . For obvious reasons , a Department of Defense -LRB- DoD -RRB- database needs to be protected from unauthorized access . Since many organizations increasingly entrust their information resources with database systems , in today 's highly networked environment , the sensitive information can be at high risk unless there are security mechanisms in place to protect the data at the source itself . However , a large number of databases are incorrectly installed , configured , and maintained . This , in part , may be attributed to the lack of database security education in our computer science programs . We feel that a new undergraduate course on database security will help our students face the ever increasing challenges in this field . Our search shows that , despite the importance , only a handful database security courses are being offered . Most of the courses we found are graduate courses and are highly theoretical . We also found a few extension program courses , which are product specific . Although a large number of database courses exist at both undergraduate and graduate levels , we feel that , one reason for not offering database security courses may be the scarcity of textbooks , reference materials , and other resources . Realizing the importance of database security in computer science curriculum , -LSB- 8 -RSB- proposes adding a new module to the basic database course . Since the basic database course has already many topics to cover , we feel that the addition of new material will not completely serve the purpose . Further , we find it difficult to incorporate hands-on component to such a course . Similarly , a computer security course is too broad in scope , and rarely includes database security topics . Therefore , we decided to develop a new undergraduate level elective on database security . This paper is based on our experience of offering a database security course in Spring 2005 . We have adjusted the contents and assignments in response to the feedback and course outcome . The modified version is presented here . Since many of our students seek industrial positions after graduation , we have designed our course to meet their needs with the right blend of theory and practice . The course objective is to develop an understanding of security aspects of databases , database administration , and database supported applications . We collected information from alumni as well as potential employers before finalizing the contents . 7 Although students were expected to gain hands-on experience with some popular databases in our course , we tried to focus on concepts rather than just syntax or product specific features . Often , students were asked to learn software packages on their own by reading the product documentation . We also offered an online feedback page for receiving anonymous student comments , which helped us know if students needed additional assistance . By encouraging students to learn and experiment on their own , we hope that they can easily apply the learned concepts to emerging application scenarios . This is particularly needed since today 's work environment expects agility from employees to quickly master and develop software systems . To facilitate participation further , we asked students to research and make presentations choosing from a set of specified topics . Most impor-tantly , since many of our educational institutions are cash strapped , we designed our course to execute with a small budget . In the next section , we detail topics , which may be included in a database security course , with references that , we hope , will be useful for other instructors . We also discuss labs and assignments in detail . Finally , we conclude the paper with an account of lessons learned and future possibilities Although a large number of topics can be included , we try to focus on a few important ones that , in our judgment , are likely to be immediately useful after graduation . We also include topics on securing the data within a database , as well as the security of database systems and operating systems as suggested in -LSB- 8 -RSB- . Our position is that database security should be considered in whole rather than adopting a piecemeal approach . However , we recognize that , in practice , it is often easy to overlook some aspects of database security . Therefore , we recommend that students develop a database security plan . We also include other relevant topics such as statistical database security , and security and privacy issues of data mining . Table 1 shows the schedule of topics for a typical sixteen week semester course on database security . Major labs and assignments are given in Table 2 . The course begins with an `` Introduction to database se-curity '' , where the objective is to highlight the importance of database security and to motivate students to learn the rest of the topics . 2.1 Introducing Database Security One way to emphasize the importance of database security would be to reflect on the impact of not having security at all in application domains such as military , medical , financial , credit card , credit file , driving records , and insurance databases . Students may survey the incidents of database security breaches and evaluate the efforts to ensure database security by industry and government . Since database security is a combination of database technology and computer security , basics of both will be helpful . A discussion on security properties such as confiden-tiality , integrity , availability and non-repudiation should be included . Although an in-depth study of cryptography is not within the scope of this course , basics of secret key cryptography and public key cryptography will benefit students . A good reference book we found is `` Data Security and Cryptogra-Week Topic 1 Course Overview and Introduction to Database Security , Basics of Data Security and Cryptography 2 Overview of Security Models 3 Access Control Models , Covert Channels and Inference Channels 4 MySQL Security 5 Oracle Security 6 Oracle Label Security 7 Developing a Database Security Plan 8 Spring Break 9 SQL Server Security 10 Security of Statistical Databases 11 Security and privacy issues of Data Mining 12 Database Applications Security , SQL Injection , Defensive Programming 13 Database Intrusion Prevention , Audit , Fault Tolerance and Recovery 14 Hippocratic Databases , XML Security 15 Network Security , Biometrics 16 Final Examination Week Table 1 : Course Schedule phy '' by Dorothy Denning -LSB- 5 -RSB- . Digital signatures , digital certificates and Public Key Infrastructure -LRB- PKI -RRB- -LSB- 21 -RSB- are other topics to consider . An overview of security and integrity models -LSB- 4 -RSB- will also be helpful at this point . This is the best time to introduce the computer security lingo such as subjects and objects . The difference between widely used access control techniques may also be highlighted . 2.2 Access Control Discretionary Access Control -LRB- DAC -RRB- mechanisms such as capabilities , profiles , access control lists , passwords , and permission bits may be discussed . Here we also introduce the operating system security aspects -LRB- using Windows R and Linux environments -RRB- , and how they impact database security in general . Although details are not required until we introduce Oracle security , overview of Role-Based Access Control -LRB- RBAC -RRB- -LSB- 6 , 18 -RSB- may be discussed . Unlike the above access control techniques , in Mandatory Access Control -LRB- MAC -RRB- the security is enforced by the system as dictated in the security policy , not by the owner of an object . Although there are many security models suggested for providing Mandatory security , Bell-LaPadula -LSB- 2 -RSB- model is probably the simplest to learn . Even when a system enforces Mandatory Access Control , information leakage through covert channels -LSB- 11 -RSB- and inference channels -LSB- 13 -RSB- may still be possible . A few examples will help students understand how the information leakage can take place through such means . Databases enforcing MAC often assign security classification levels for objects and security clearance levels for subjects . Access control is performed by the system based on these levels . A lab may be developed , where students 8 simulate a multilevel database on an ordinary database system . This means students will have to modify the schema to add additional fields for storing security classification levels . They also develop views for users having different clearance levels . Further , to support poly-instantiation , the primary key will have to be redefined to include security level to accommodate the possibility of the same key values existing at multiple security levels . Another topic of interest would be to explore how the Discretionary Access Control and the Mandatory Access Control can be combined and applied in some scenarios . 2.3 Securing Real Life Databases The candidate database systems we chose for hands-on experience were MySQL TM , Oracle R , and Microsoft R SQL Server TM . Because of time constraints , students were able to focus only on the first two databases , but an overview of SQL server security was also provided . 2.3.1 MySQL Security With more than six million installations worldwide -LSB- 14 -RSB- , the simplicity and open source architecture make MySQL , probably , the first database to study . The primary source of information would be the MySQL manual itself -LRB- available from MySQL site -LSB- 14 -RSB- -RRB- , particularly the section on `` MySQL Access Privilege System '' . Another source , MySQL Security Handbook -LSB- 22 -RSB- , explains MySQL security system and provides a few practical examples . Labs/Assignments 1 Multilevel Security Poly-instantiation 2 MySQL Grant Privilege System 3 SQL Injection 4 Oracle Security Basic Lab 5 Database Security Plan Development 6 Backend Development for B2C Application 7 Probability Distributions , Sampling 8 Statistical Databases - Breach of Security 9 Statistical Databases - Inference Protection Techniques 10 Data Mining Security - Reading and Presentation Table 2 : Major Labs/Assignments MySQL Access Privilege System authenticates a user based on user name , host name , and password . Further , it ensures that users perform only permitted operations based on the privileges specified in the grant tables -LRB- namely , user , db , and host -RRB- . The format and contents of these tables , therefore , are of particular importance . Since most of the critical information including the grant tables are stored on a default database named mysql , the security of mysql database is also crucial . Students should learn to apply the `` principle of least privilege '' when granting privileges in order to perform the task at hand . Each student was given a MySQL instance with root level access . Students were asked to create users and assign privileges while monitoring the privilege tables for changes . Students also experimented with the privilege system by man-ually modifying privilege tables . We created two person administrator-user teams for enabling the students to experience the system from both perspectives . Users were assigned certain tasks to perform . Some of the tasks given were specifically designed to understand the limitations of the MySQL privilege system . The role of the administrators was to grant privileges just sufficient for users to perform the task . Users could access the system in any manner they wish in fact , users will be encouraged to expose the weaknesses in the privilege assignments . The administrators , on the other hand , controlled access based on need-to-know , at the same time trying not to be too restrictive for users to perform the required tasks . We found the users very excited to expose security weaknesses in the privilege assignment . Although administrators were a little embarrassed , they too were motivated by the exercise . For the the next lab session , students switched roles , i.e. , those who were administrators became users and vice versa . MySQL supports data security by providing functions such as ENCRYPT , DES ENCRYPT , AES ENCRYPT , PASSWORD , OLD PASSWORD and ENCODE . Since these functions may not be safe under all circumstances , it would be useful to highlight the unsafe scenarios . Students may also learn how to use SSL for security , and simultaneously make sure that the system performance is not significantly impacted . Also useful would be to study how the authentication requirements may vary when using options such as REQUIRE SSL , REQUIRE ISSUER and REQUIRE X509 . Even when using SSL , the data security can depend on the type of cipher and the key lengths used . Therefore , students may learn how to specify these parameters using the REQUIRE CIPHER option . Some privileges in MySQL , if not carefully used , can expose the system to high security risk . For example , FILE privilege may be misused to gain access to the system . Hence , a comprehensive study of unsafe privileges will be extremely useful . Even when the privilege system is correctly set up and maintained the entire privilege system can be circumvented using a MySQL startup option like -- skip-grant-tables . On the other hand , some startup options make the server safer . Therefore , MySQL startup options and their security consequences must be discussed . Many web applications have MySQL database server deployed as the backend , and HTML based form acting as the front end . Since user input is used to generate SQL queries to interact with the database , if unchecked , malicious users or programs can inject unsafe SQL queries . Basic concepts of preventing SQL injection may also be discussed . Students may be asked to analyze a number of SQL queries for potential vulnerability . Other topics , which can be included are : using MySQL network scanner to detect MySQL servers on the network with default passwords , MySQL resource control , data backup and recovery , auditing , and firewalls . 2.3.2 Planning Database Security Since enforcing database security is extremely complex task with a large number of factors affecting the security of a database , the best way to approach the problem would be to systematically develop and implement a comprehensive database security plan . Therefore , in our course , we required that students develop a database security plan for a small Business-to-Consumer -LRB- B2C -RRB- E-Commerce application . See -LSB- 19 -RSB- Ch7 -LRB- available online -RRB- for detailed exposition on database security planning . Although the text is on Oracle security , the concepts can be applied to any database . 9 2.3.3 Oracle Security For security reasons , the computer science department was reluctant to grant administrative privileges to students on our Oracle server . Therefore , we ended up creating a separate Oracle instance for the course . For each student , we created one administrative account with DBA privileges , and then the students were allowed to create user accounts as needed , provided they follow a naming convention to avoid conflicting names . In addition to Oracle Security Handbook -LSB- 12 -RSB- , we found the Oracle Database Administrators Guide -LSB- 15 -RSB- also useful . The guide is available online from the Oracle Database Documentation Library . First , we had an Oracle Security Basics Lab . Students were introduced to the Oracle security system through a series of tasks . The next lab was more advanced , and built up on the database security plan developed in a previous assignment . The task was to develop the backend for a small B2C E-Commerce application . Students were asked to create user accounts , roles , tables , views and triggers as required . The privileges were to be assigned by observing the `` principle of least privilege '' , as per the security plan . Further , students may also be trained to perform some standard checks for security such as checking for default user accounts , default passwords , users having excessive privileges -LRB- e.g. , DBA , ALTER SYSTEM , CREATE LIBRARY , CREATE ANY TRIGGER -RRB- , security impact of WITH AD-MIN and WITH GRANT options on privileges , EXTER-NALLY authenticated users , and the existence of database links . Students may also learn how to display information on items such as triggers , views and externally authenticated users . A section on security issues of using default Oracle supplied roles will be useful . Other topics to include are : Transparent Network Substrate -LRB- TNS -RRB- security and listener management from remote machines and setting up listener passwords , buffer overflow attacks and prevention , auditing , and undocumented Oracle features . Students may also be introduced to reading security advisories and obtaining Oracle Critical Patch Updates -LRB- CPU -RRB- . Recently , a large number of security breaches have been reported . Interestingly , however , many of these breaches were incidents of missing or stolen backup storage devices . Therefore , we feel appropriate to include a session on security and protection needs of exports , cold backups , hot backups , and disaster recovery sites . 2.3.4 Oracle Label Security Oracle Label Security provides built-in row level access control for high security applications . Essentially , Oracle adds a new field to each row for storing the row 's sensitivity labels . Row access is granted or denied by comparing the user 's identity and security clearance label with the row 's sensitivity labels . Earlier , in Assignment 1 , students have simulated a multilevel database . Therefore , the above concepts should be easy to learn at this point . As a source of information on Oracle Label Security Architecture , we used Oracle Label Security Administrator 's Guide -LSB- 16 -RSB- . We covered levels , compartments , groups , session and row labels , label security algorithm , and management of label security using Oracle Internet Dictionary . 2.3.5 Microsoft SQL Server Security As we mentioned earlier at the beginning of this section , due to time constraints , we could not provide an extensive coverage of Microsoft SQL Server . We briefly discussed SQL Server security model , authentication mechanisms , authentication modes , and good security practices for SQL servers . Students presented information they gathered on SQL server vulnerabilities , security breaches , and prevention techniques . We found a few excellent articles on SQLServer-Central . com , an online community of DBAs , developers , and SQL server users . We also found SQL Server Developer Center -LRB- http://msdn.microsoft.com/sql -RRB- useful in providing a large number of resources in this area . 2.4 Statistical Security As for the rest of the course , this section is application oriented , giving the students the gist of the concepts they need to know and then putting them to work in the context of a real database . Thus , the first lab is a simulation based assignment designed as an introduction to probability distributions , expectation , spread , sampling methods , and sampling distributions of relevant statistics . We find that , even for students with prior coursework in probability and statistics , an assignment of this type is very beneficial . The second lab presents the task of setting up a sequence of queries , so that students can extract from a database what should have been secure information . At this point we introduce the main conceptual techniques for inference protection such as the lattice model and partitioning the database entities into populations . See -LSB- 4 -RSB- , Ch 5 for details . The third major assignment aims at teaching inference protection techniques . Given a database , the students are asked to answer queries without disclosing sensitive information by applying restriction , perturbation , and combined techniques . 2.5 Security Issues of Data Mining Data mining may be misused to obtain confidential information from a database . So we believe , a course on database security should include an overview of security and privacy concerns of data mining . Organizations would like to share the data for operational convenience , at the same time prevent the mining of data for information they do not want to disclose . Likewise , private individuals would like to submit their personal information for data mining without compromising their privacy while keeping the key association rules intact . Secure data mining techniques appear similar to statistical security methods , however , their computational efficiency is a major concern . We found a number of interesting papers -LSB- 3 , 17 , 20 -RSB- that can be used for reading assignments and group discussions . 2.6 Other Topics Malicious users may bypass security mechanisms provided by an application by directly connecting to the database . Therefore , whenever possible stored procedures , and views must be used for providing data access . Database application security and defensive programming was briefly covered . Semi-structured nature of Extensible Markup Language -LRB- XML -RRB- documents make them ideal candidates for use in many applications including E-Business . Therefore , XML -LSB- 7 -RSB- security was also discussed . 10 Other topics of interest are : database intrusion detection and prevention -LSB- 17 -RSB- , database fault tolerance and recovery , Hippocratic databases -LSB- 1 -RSB- , network security -LSB- 10 -RSB- , and biometrics -LSB- 9 -RSB- . Department of Computer Science at University of Alberta has offered an independent study on database security with topics such as security models , security mechanisms , intrusion detection systems , and statistical database protection . University of Maryland University College has a graduate level course on database security with theory and applications , including frameworks for discretionary and mandatory access control , data integrity , availability and performance , secure database design , data aggregation , data inference , secure concurrency control , and secure transaction processing . University of South Carolina and George Mason University offer graduate level elective courses on Database Security . Similar courses are offered at a few other institutions , but we do not discuss them here due to space constraints . Among the undergraduate courses we found , the closest one to what we offered is taught at University of Arkansas Little Rock . It provides database security theory and background on Oracle security environment . Our new undergraduate elective course on database security covers basic concepts and provides practical experience on two popular databases . We emphasized that students develop a database security plan that , we hope , will encourage them to view the problem of ensuring database security as a task that needs to be carefully planned in whole rather than something that can be addressed in parts . The initial offering of the course had `` Data Structures '' as the only pre-requisite , because we wanted to keep the course open to a larger audience . Students , in general , were found be more motivated to follow through on course work than other courses we have taught . We received excellent numerical score as well as comments from students in the departmental student evaluations . We had a good mixture of students . All were computer science majors , and forty seven percent were honors students . Sixty seven percent of the class completed the course with an overall score of 80 % or higher with all honors students falling into this category . However , it was felt that a few students lacked basics to fully grasp the material . Therefore , having a basic database technology course as the pre-requisite will help cover more of the suggested topics in depth . In closing , we hope that our experience shared herein will help other instructors develop and offer a similar course on database security with limited resources . -LSB- 1 -RSB- R. Agrawal , J. Kiernan , R. Srikant , and Y. Xu . Hippocratic Databases . In Proc . of the Very Large Data Bases -LRB- VLDB -RRB- Conference , Hong Kong , China , August 2002 . -LSB- 2 -RSB- D. Bell and L. LaPadula . Secure Computer Systems : Mathematical Foundations . Technical Report ESD-TR-73-278 , MITRE Corporation , 1973 . -LSB- 3 -RSB- C. Clifton and D. Marks . Security and Privacy Implications of Data Mining . In Workshop on Data Mining and Knowledge Discovery , Montreal , Canada , February 1996 . -LSB- 4 -RSB- S. Castano , M. G. Fugini , G. Martella , and P. Samarati . Database Security . Addison-Wesley & ACM Press , 1995 . -LSB- 5 -RSB- D. E. Denning . Cryptography and Data Security . Addison-Wesley , 1982 . -LSB- 6 -RSB- D. Ferraiolo and R. Kuhn . Role-Based Access Controls . In Proc . 15th NIST-NCSC National Computer Security Conference , Baltimore , MD , October 1992 . -LSB- 7 -RSB- B. Dournaee . XML Security . RSA Press , Berkeley , CA , USA , 2002 . -LSB- 8 -RSB- M. Guimaraes , H. Mattord , and R. Austin . Incorporating Security Components into Database Courses . In Proc . of the InfoSecCD Conference ' 04 , Kennesaw , GA , September 2004 . -LSB- 9 -RSB- A. Jain , L. Hong , and S. Pankanti . Biometric Identification . Commun . ACM , 43 -LRB- 2 -RRB- , 2000 . -LSB- 10 -RSB- C. Kaufman , R. Perlman , and M. Speciner . Network Security : Private Communication in a Public World , Second Edition . Prentice-Hall , 2002 . -LSB- 11 -RSB- B. W. Lampson . A Note on the Confinement Problem . Commun . ACM , 16 -LRB- 10 -RRB- , October 1973 . -LSB- 12 -RSB- M. Theriault and A. Newman . Oracle Security Handbook : Implement a Sound Security Plan in Your Oracle Environment . Osborne McGraw-Hill , 2001 . -LSB- 13 -RSB- M. Morgenstern . Security and Inference in Multi-Level Database and Knowledge-Base Systems . In ACM SIGMOD Conf . on the Management of Data , San Francisco , CA , May 1987 . -LSB- 14 -RSB- http://www.mysql.com . -LSB- 15 -RSB- Oracle Database Administrator 's Guide . Oracle Corporation , 2001 . -LSB- 16 -RSB- Oracle Label Security Administrator 's Guide . Oracle Corporation , 2003 . -LSB- 17 -RSB- R. Agrawal and R. Srikant . Privacy-preserving Data Mining . In Proc . of the ACM SIGMOD Conference on Management of Data , Dallas , TX , May 2000 . -LSB- 18 -RSB- R. Sandhu and Q. Munawer . How to do Discretionary Access Control Using Roles . In RBAC ' 98 : Proceedings of the third ACM workshop on Role-based access control , Fairfax , VA , 1998 . -LSB- 19 -RSB- M. Theriault and W. Heney . Oracle Security . O'Reilly & Associates , Inc. , 1998 . -LSB- 20 -RSB- V. Verykios , E. Bertino , I. Fovino , L. Provenza , Y. Saygin and Y. Theodoridis . State-of-the-art in Privacy Preserving Data Mining . SIGMOD Record , 33 -LRB- 1 -RRB- , 2004 . -LSB- 21 -RSB- W. Ford and M. S. Baum . Secure Electronic Commerce : Building the Infrastructure for Digital Signatures and Encryption . Prentice Hall , 2000 . -LSB- 22 -RSB- Wrox Author Team . MySQL Security Handbook . Wrox Press , 2003 . 11

O B I I O O O B I O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I B O O O O O O O O O O O O O B I O O O O O O O O O O O B I I O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O B I I O O O O O O O O O O O O O O O O O O B O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O B I I O O O O O O B O O B I I O O O O B I O O O O O O O O O O B O O O O O O O O B I O O B O B O O O O O O O O O O O O O O B I O O O O O O O O O B I I I O O O O O O O O O O B O O O B I O O O O O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O B I O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B O O O B O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O B O O O O O O O O O O O O O O O O B I O B I O O O O O O O B I I O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O B I O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O B I O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O B I O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O B I O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O B I O O O O O O O O B I O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O

access privilege system
xml security
right blend of theory and practice
labs
importance of database security
database security course
topics
assignments
mysql security
secure information
statistical database security
statistical security
database security education
oracle security
database security plan
cryptography
undergraduate course
privacy issues
administrators
security plan
data access
database system
database security
security breaches

hands-on experience
high risk of sensitive information
few database security courses
undergraduate students
undergraduate database security course
real life database security
hands-on
real life databases hands-on
laboratory/active learning
database privacy


An Architectural Style for High-Performance Asymmetrical Parallel Computations Researchers with deep knowledge of scientific domains are now developing highly-adaptive and irregular -LRB- asymmetrical -RRB- parallel computations , leading to challenges in both delivery of data for computation and mapping of processes to physical resources . Using software engineering principles , we have developed a new communications protocol and architectural style for asymmetrical parallel computations called ADaPT . Utilizing the support of architecturally-aware middleware , we show that ADaPT provides a more efficient solution in terms of message passing and load balancing than asymmetrical parallel computations using collective calls in the Message-Passing Interface -LRB- MPI -RRB- or more advanced frameworks implementing explicit load-balancing policies . Additionally , developers using ADaPT gain significant windfall from good practices in software engineering , including implementation-level support of architectural artifacts and separation of computational loci from communication protocols D. 2.11 -LSB- Software Engineering -RSB- : Software Architectures Design , Performance In recent years , as the cost-to-performance ratio of consumer hardware has continued to decrease , computational clusters consisting of fast networks and commodity hardware have become a common sight in research laboratories . A Copyright is held by the author/owner . ICSE ' 06 , May 20 28 , 2006 , Shanghai , China . ACM 1-59593-085-X / 06/0005 . growing number of physicists , biologists , chemists , and computer scientists have developed highly-adaptive and irregular parallel applications that are characterized by computational intensity , loosely-synchronous parallelism and dynamic computation . Because the computation time of each parallel process varies significantly for this class of computation , we shall refer to them as asymmetrical parallel computations . Adaptive mesh refinements for the simulation of crack growth , combinatorial search applications used in artificial intelligence , and partial differential equation field solvers -LSB- 2 -RSB- are examples of asymmetrical computations . While supercomputing platforms available to us continue to increase performance , our ability to build software capable of matching theoretical limits is lacking -LSB- 8 -RSB- . At the same time , researchers with significant depth of knowledge in a scientific domain but with limited software experience are confounded by the interface bloat of libraries such the Message-Passing Interface -LRB- MPI -RRB- , which has 12 different routines for point-to-point communications alone -LSB- 5 -RSB- . Would-be practitioners of high-performance computing are introduced early to the mantra of optimization . The myth that high-level concepts inherent to software engineering principles , such as `` separation of concerns , '' result in inefficiencies at the performance level has caused these researchers to eschew best practices of traditional software development in favor of highly-optimized library routines . We contend that a sound software engineering solution to asymmetrical parallel computations provides decoupling of connectors from computational loci and reduces the complexity of development for the programmer while still providing an efficient solution both in terms of load-balancing and message-delivery . In this paper , we present such a solution . In the next section , we will discuss our motivations for creating the ADaPT protocol and architecture , including the load-balancing inefficiencies of `` optimized '' communications libraries when computing asymmetrical parallel computations . We will then present ADaPT , a communications protocol and associated software architecture for asymmetrical computations . Additionally , we will present analysis which shows ADaPT 's ability to outperform both MPI and other load-balancing frameworks using traditional work-sharing strategies . We conclude with an overview of future research opportunities afforded by ADaPT . This work has been motivated by our experience with two key classes of existing approaches : use of optimized 857 communications libraries such as MPI -LSB- 4 -RSB- , and message-passing frameworks which implement load-balancing strategies based on work sharing . 2.1 Message-Passing Interface High-performance communications libraries such as MPI are optimized to reduce the bandwidth needed to communicate a large amount of data to subprocesses . In order to accomplish this reduction , collective calls in MPI are synchronous , causing barriers at data-distribution points in the software . When used to compute uniform parallel computations barriers are unobtrusive . In asymmetrical computations , however , an effective mapping of processes to physical resources contributes more significantly to wall-clock time to completion than efficient communications . For these computations , asynchronous communications are needed , despite increased bandwidth . To illustrate this phenomena , let us consider a mapping of a large normalized population of computation times with a high level of variance onto a significantly smaller number of physical nodes -LRB- a strategy known as overaggregation -RRB- . The MPI library offers developers efficient use of bandwidth via collective scatter and gather commands . While bandwidth is conserved using these collective calls , analyses made by Gropp , et . al. and Skjellum -LSB- 10 , 4 -RSB- suggest that most implementations of MPI 's scatter are built on top of MPI 's rendezvous protocol and result in a synchronous barrier at each subsequent distribution of data . Since each process has variable computation time , a number of subprocesses will remain idle until the longest process completes during each of the scatters . In -LSB- 1 -RSB- we have shown that the smallest contribution to overall wall-clock time to completion made by this idle time is given as n , where n is the number of subprocesses and is the mean of the computation times . In comparison , the wall-clock time saved using the collective calls to reduce bandwidth is negligible . While these collective calls only consider bandwidth optimizations , it is clear that in asymmetrical parallel computations , process load-balancing across subprocesses is a more important optimization to pursue . 2.2 Load-Balancing Frameworks Attempts to develop message-passing frameworks that can assist computational scientists in the development of asymmetrical parallel computations can be divided into two groups : static load-balancing frameworks and dynamic load-balancing frameworks . Because a priori knowledge of the computation involved in asymmetrical parallel computations is required of static load balancers , such frameworks are inapplicable to this class of problems . Unlike static load balancers , dynamic load-balancing frameworks do not require information a priori and are able to redeploy balanced distributions of data during program execution . Notable examples of parallel development frameworks which provide dynamic load-balancing are PREMA -LSB- 2 -RSB- and Charm + + -LSB- 6 -RSB- . Unfortunately , these frameworks often incur significant performance losses due to the introduction of barriers for load-balancing . Additionally , these frameworks do not provide explicit support for consistency of structure and development . A software architectural solution can provide a number of benefits in addition to load balancing . Employing a sound software engineering principle , the separation of communication from computational elements shields the developer from the need to optimize communications and provides enforcement of architectural constraints . An added benefit is that architectural components reified as explicit implementation-level artifacts allow for easy reconfiguration of software in principle . We will revisit this point below . Two overlooked aspects of performance optimizations that must be addressed in order to provide a truly efficient solution are asynchronous load-balancing and event pattern optimization . In addition to simply providing a load-balanced distribution , asynchronous load-balancing provides a best effort redistribution of processes without introducing a barrier to computation . Event pattern optimization suggests that a protocol is capable of utilizing the predictability of future messages given analysis of past messages . During overaggregated parallel computations , a number of computations need to be distributed to each of the subprocesses over the course of the parallel computation , causing a pattern to emerge . In order to incorporate each of these optimizations into a high-performance communications protocol , we have developed ADaPT , an Adaptive Data-parallel Publication / Subscription Transport protocol and software architecture . The thesis of ADaPT is that it is possible to exploit the sequence that emerges from sending multiple messages to each parallel process in order to reduce the overall wall clock time to completion of the computation while still making a best-effort to avoid sending messages to each subprocess to quickly for the process to buffer . 3.1 ADaPT Defined We feel that for the purposes of this paper it is most helpful to define ADaPT 's protocol , architectural elements , and implementation . 3.1.1 Protocol ADaPT views each parallel process as an independent software component -LRB- Worker -RRB- residing on a physical node capable of performing computations on data . Each Worker initiates computation by subscribing to a coordination component -LRB- Master -RRB- . An important distinction between ADaPT and traditional publication/subscription systems is that unlike traditional pub/sub systems , ADaPT does not duplicate messages to service multiple downstream requests . Rather , it distributes messages uniquely from a queue in a round-robin fashion . Upon receipt of a subscription , the Master publishes a message to the Worker . There is another divergence from traditional pub/sub systems at this point . The Master waits for another request from the subscribed Worker before publishing another message to that Worker . Using data from each subscribed Worker on its computation time , or , the Master tracks an average processing time , or . Because the protocol is adaptive , when a predetermined number of messages have been sent to the Workers and a has been calculated , the Master switches from this conservative phase to an aggressive phase during which it sends messages of the requested type to the process at the regular interval dictated by . The protocol exploits the emerging event pattern to reduce the overall processing time at each physical node . 858 0 5 0 100 150 200 0 5 10 15 20 Number of Workers % Overhead Computation Time Variance = 10 LBF MP I ADaPT 0 50 100 150 200 0 5 10 15 20 Number of Workers % Overhead Computation Time Variance = 50 LBF MPI ADaPT 0 50 100 150 200 0 5 10 15 20 Number of Workers % Overhead Computation Time Variance = 100 LBF MPI ADaPT 0 50 100 150 200 0 5 10 15 20 Number of Workers % Overhead Computation Time Variance = 200 LBF MPI ADaPT Figure 1 : Monte Carlo simulations of overhead for asymmetrical computations exhibiting multiple variances . Similar to MPI 's eager protocol , this phase of ADaPT can be too aggressive , flooding the process 's buffer -LRB- datasets in high-performance computing tend to be very large causing memory limitations to surface frequently -RRB- . If the number of messages in the Worker 's buffer reaches a maximum , the Worker unsubscribes from the Master . After the Worker has computed each of the messages in its buffer , it re-subscribes to the Master , starting once again with the conservative phase of delivery as described above . 3.1.2 Architectural Model and Implementation We have further codified ADaPT in a software architectural style -LSB- 9 -RSB- . In addition to Master and Worker components , the ADaPT connector utilizes an adaptive dispatcher to deliver messages to each subscribed Worker using the ADaPT protocol . The dispatcher uses a priority-based round-robin algorithm which utilizes the calculated and attempts to saturate each Worker 's computation load without flooding the Worker 's buffer . This handler auto-matically switches between the conservative and aggressive phases . The key contribution of this connector is the encap-sulation of underlying protocols , allowing the developer to focus instead on the computations to be performed . Similar to the C2 software architecture -LSB- 3 -RSB- , messages triggering computation travel downstream from one or more Masters to the ADaPT connector . Messages typed as results originating at Workers travel upstream through the ADaPT connector back to the Masters . We have implemented these architectural rules through extensions to the Prism framework -LSB- 7 -RSB- . Prism-MW , a middleware designed to enforce architectural rules at the level of software artifacts , is a light-weight event-based framework consisting of a core set of functionality with handles to extensible components , connectors , and event handlers . Topological rules for each architectural style are also en-forced through overloaded methods for connecting artifacts . 3.2 Performance Analysis In analyzing ADaPT 's performance in comparison to load-balancing frameworks as well as synchronous scatters and gathers using MPI , it is first important to define a base metric with which to compare protocols . This metric , the `` natural rate '' of parallel computation , is the sum of all individual computations to be completed divided by the number of nodes in the parallel computation . In this section we will present comparisons of protocols as measured by percentage overhead -LRB- calculated as the wall-clock time for the parallel process to complete minus the natural rate , divided by the natural rate -RRB- . In order to properly compare ADaPT 's ability to reduce message traffic as well as to efficiently map asymmetrical computations to physical resources , we developed a Monte Carlo simulation in which a normalized population of computations was delivered to virtual processors via three different communications policies/architectures and the percentage overhead was calculated for each . All massage-passing costs were uniform across the network for each policy implemented . MPI -LRB- collective calls -RRB- - Costs of synchronous scatters and gathers using MPI were modeled using equations from -LSB- 10 , 4 -RSB- . In this policy each worker receives a computation via a scatter and returns via a gather before scattering the next subset until all computations are completed . This process is known as a multi-part scatter -LSB- 1 -RSB- . Load-balancing framework - The Monte Carlo simulation of the load-balancing framework uses work-sharing methods . All events are delivered to workers before they begin processing and a barrier is periodically introduced . At 859 this barrier , the workload is redistributed evenly between all processors . In order to idealize load balancing , the cost of this calculation was treated as negligible . ADaPT implementation - Using the routing policies of ADaPT , this implementation assumes that workers are capable of buffering only two events and each worker is homogeneous . We made each of these assumptions in order to conservatively profile ADaPT 's performance . In each of four simulations , a normalized population of 1000 computations was generated with a mean computation time of 100 milliseconds and a variance of 10 milliseconds 2 , 50 milliseconds 2 , 100 milliseconds 2 , and 200 milliseconds 2 , respectively . For each simulation , the aggregation of the parallel computation -LRB- i.e , the ratio of workers to computations -RRB- was varied from 1:500 to 1:5 . Results of this comparison are shown in Figure 1 . It can be seen in these plots that while ADaPT performs uniformly at all aggregations smaller than 1:100 -LRB- i.e. , > = 10 workers -RRB- , MPI collective commands and load-balancing frameworks decrease performance as the aggregation is reduced . For load-balancing frameworks , this is due to the increased volume of messaging required in order to re-balance the load across all processors at each barrier . In the presence of load-balancing , the idle time is significantly reduced , but the cost of rerouting messages to new processors makes ADaPT the better performer especially in high variance computations . From these initial results , we feel that our implementation of ADaPT outperforms collective calls via MPI as well as load-balancing frameworks employing a full worksharing scheme for significantly varied aggregations and computation time variances . In Monte Carlo simulations , ADaPT produced a better mapping of computations to resources , reducing computational overhead to under 1 % for aggregations less than 1:100 . In the simulations of aggregations greater than 1:100 , ADaPT does not perform as well as MPI or other load-balancing frameworks due to the increased percentage of time each worker 's buffer remains empty before another event is pushed to the Worker at the calculated rate of computation . This situation seems of little consequence , however , in that data sets are seldom overagreggated to this extreme . ADaPT offers a significant decrease in overhead for event delivery in parallel computations and also outperforms established load-balancing techniques for use with asymmetrical parallel computations . Additionally , ADaPT , through its implementation in Prism , offers developers architectural artifacts at the level of implementation , clear division between the computation loci -LRB- in the form of extensible Workers -RRB- and communications algorithms , and reduction of communications knowledge needed by the developer in order to implement asymmetrical parallel computations . 4.2 Future Work While ADaPT is clearly an applicable architectural style to high-performance computing , we make no claim as to its monopoly of the field . In future work , we hope to build a more substantial architectural framework for high-performance computing which provides more underlying protocol choices and further assists developers in code migration to new platforms including SMP and other shared-memory machines . We hope to demonstrate the ease of system design and implementation via architectures to the high-performance community without serious performance degradation , as is cur-rently the prevalent though . Further enhancements to the ADaPT protocol and architecture will include refinement of its topological constraints to encapsulate both data-parallel stages of computation and higher-level workflow stages using multiple layers of masters and workers connected between more advanced ADaPT connectors -LRB- themselves perhaps distributed across multiple physical nodes -RRB- . Also , we hope to further investigate the tradeoffs associated with alternate unsubscription policies and the effects of `` pumping '' the parallel computation by modifying delivery rates to be faster than average computation rates . This work was supported by the NSF 0312780 grant . Any opinions , findings and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect those of the National Science Foundation . The authors also wish to thank the anonymous reviewers for their helpful comments . -LSB- 1 -RSB- D. Woollard et . al. . Adapt : Event-passing protocol for reducing delivery costs in scatter-gather parallel processes . In Proceeding of the Workshop on Patterns in High Performance Computing , Urbana , Illinois , May 2005 . -LSB- 2 -RSB- K. Barker et . al. . A load balancing framework for adaptive and asynchronous applications . Parallel and Distributed Systems , IEEE Transactions on , 15:183 192 , 2004 . -LSB- 3 -RSB- R. Taylor et . al. . A component - and message-based architectural style for gui software . IEEE Transactions on Software Engineering , June , 1996 . -LSB- 4 -RSB- W. Gropp , E. Lusk , and A. Skjellum . Using MPI : Portable Programming with the Message Passing Interface . MIT Press , 1999 . -LSB- 5 -RSB- S. Guyer and C. Lin . Broadway : A software architecture for scientific computing . In Proceedings of the IFIP TC2/WG2 .5 Working Conference on the Architecture of Scientific Software , pages 175 192 , Deventer , The Netherlands , The Netherlands , 2001 . Kluwer , B.V. -LSB- 6 -RSB- L. Kale and S. Krishnan . CHARM + + : A Portable Concurrent Object Oriented System Based on C++ . In A. Paepcke , editor , Proceedings of OOPSLA ' 93 , pages 91 108 . ACM Press , September 1993 . -LSB- 7 -RSB- S. Malek , M. Mikic-Rakic , and N. Medvidovic . A style-aware architectural middleware for resource-constrained , distributed systems . IEEE Transactions on Software Engineering , March , 2005 . -LSB- 8 -RSB- D. Post and L. Votta . Computational science demands a new paradigm . Physics Today , 58 -LRB- 1 -RRB- : 35 41 , 2005 . -LSB- 9 -RSB- M. Shaw and D. Garlan . Software Architecture : Perspectives on an Emerging Discipline . Prentice-Hall , 1996 . -LSB- 10 -RSB- A. Skjellum . High performance mpi : Extending the message passing interface for higher performance and higher predictability , 1998 . 860

O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O B I I O B O O O O O O O O O O O B O O O O O O O O O O O B I O B I I O B I O O O O O B O O O O O O O O O O O O O O B O O O O O O O B I O O O O O O O O O O O O O B I O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B I I O O O O O B O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B I O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O B I O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O B I O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O B O B I O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B I I O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O

load balancing
adapt
software engineering
mpi
asymmetrical parallel computations
collective calls
communication protocols

high-performance computing
asymamtrical parallel computations