Professor Alan Fekete
School of Information Technologies, building J12
University of Sydney
I am Professor of Enterprise Software Systems within the School of Information Technologies at the University of Sydney. My undergraduate education was at the University of Sydney, and my doctorate was earned in the mathematics department of Harvard University. I have been an academic at the University of Sydney since 1988, and I was promoted to Professor from 2010. I am a member of ACM and ACS, and of the IEEE Computer Society. I have been recognized as a Distinguished Scientist by ACM for "significant accomplishments in, and impact on, the computing field".
The motivation for my research and teaching is to improve the state-of-practice in the IT profession when dealing with enterprise software. In research, I try to provide intellectual tools that will help software developers who work with, or who design, major infrastructure "systems" software, such as communication networks and databases. The drive behind my teaching is to help enterprises and our students by producing graduates who will advance the state-of-practice in the IT profession. I do this by conveying key ways of thinking and essential skills while they are students. I try to give students experience of the best current practice, and awareness of new ideas that are not yet common in the profession, but give hope of improving our graduates' skills. My philosophy in both teaching and research is that better software depends on a clear understanding of the behaviour (both functionality and performance etc characteristics) of each piece of the system, and knowledge of how different pieces of a system influence one another.
List of my publications
I am affiliated with the Database Research group, and also with Middleware research group. I also interact somewhat with the Computer Human Adapted Interaction research group.
I am available to supervise research and research-linked projects. Research projects would be suited for Computer Science Honours (in BCST, BIT or BSc degrees) or for MIT Research Path (18crpt); research-linked projects would be suited for undergraduate TSP, MIT (12 crpt project), or for final-year Engineering project. Some of the research project topics could also be the first step for extending to a MSc or PhD research thesis. If you are an enrolled student at the University of Sydney, and some of these topics interest you, please contact me by email or in person.
If you are interested in coming to the University of Sydney for a research higher degree, you will need to apply for admission through the appropriate process. Please note that I expect that any student whom I supervise for a research masters or doctoral degree will already have successful research experience through the equivalent of Honours. If you don't have that sort of experience, I suggest you enrol for a coursework Masters of IT, and gain research experience through the Research Path within that degree.
Most of my research lies in the application of methods from Theoretical Computer Science to Software Systems. I work with mathematical models of important features of major infrastructure "systems" software, such as communication networks and databases. I have worked extensively in several subfields, but most of my work uses identical techniques: one must identify a component or aspect of a large infrastructure system, provide a mathematical model of the way it works (called "the implementation"), provide another model of the overall functionality desired (called "the specification"), and finally provide a proof (called "a verification") that the implementation does act as the specification directs. The essential contribution is usually in the appropriate choice of specification. Understanding this can allow systems researchers to work on each module independently, while ignoring the details about the others. The specification can also be used with various reasoning methodologies to support application-level developers, who will use the infrastructure without worrying about the details of its internals. Several projects have been funded by the Australian Research Council.
Since the start of 2002, I have concentrated my research activities on the theme of "Consistency with Weak Mechanisms". This is an attempt to deal with the reality that many software projects (especially at enterprise scale) are unable, for reasons of performance or organisational autonomy, to use the traditional "ACID transaction" mechanisms which ensure consistency of data; however, consistency is still an essential requirement, so system designers and architects need assistance in correct use of the weaker, non-ACID mechanisms that are available.
The main thread of my recent research has been on transactional applications within the scope of a single database management system or integrated distributed system. Here ACID transactions are often available, but for performance reasons, they are rarely used. Instead application programmers use lower isolation levels (sometimes in ignorance of the implications of this) and updates are propagated lazily to remote sites. My goal here is to give guidelines to the application programmer or DBA so they can use knowledge of the program behaviour to ensure that consistency is preserved despite running their programs with isolation mechanisms which have the potential to violate consistency in some executions. A major research effort over several years, with colleagues and students, has led to a deep understanding of how to obtain serializable executions with platforms that use the Snapshot isolation concurrency control mechanism. You can download slides from a seminar summarizing this project. Some of this work is done in collaboration with Prof Sudarshan and Prof Ramamritham at IIT Bombay. Earlier stages of this work were done as part of a project headed by Professor Pat O'Neil and Professor Betty O'Neil at University of Massachusetts, Boston. A PhD student in our group, Michael Cahill, used the theory we had developed and he invented a new concurrency control mechanism that is similar to Snapshot Isolation but avoids all the anomalies; this mechanism has been adopted by the PostgreSQL open source platform.
I am also interested in cloud-based computing platforms. This work is in collaboration with the SSRG team at NICTA led by Dr Anna Liu, and it is characterised by a focus on the viewpoint of a consumer of cloud services. We are investigating how an enterprise that wishes to utilize cloud computing can determine (and improve) the quality of service provided. Attributes that need to be measured and controlled included availability, computational power, consistency of data, elasticity. The key challenge is to work through the monitoring and control APIs provided by cloud vendors, which are quite restricted compared to what system administrators usually have access to in platforms they own or control.
An earlier phase of research on weak mechanisms focused on loosely coupled distributed systems. Working with a team at CSIRO led by Paul Greenfield, we studied systems of the form common in contemporary enterprise setting, where a business process involves collaborative activities in several autonomous administrative domains. we proposed ways to describe workflows and their consistency guarantees.
My earlier work, up to 2000, was mainly focused on understanding systems that offered stronger guarantees to their users. Most of this work was done as part of the Theory of Distributed Systems research group headed by Professor Lynch at MIT. A substantial effort in the late 1990s addressed infrastructure support for fault-tolerant distributed systems based on communication within a group of computers, whose membership changes unexpectedly.
In the 1980s and early 1990s we had concentrated on Transaction Management in Databases where ACID transactions were the principle mechanism. We studied the interactions between the algorithms (such as locking and logging) that guarantee serializability, a very strong property. This work is summarised in the book "Atomic Transactions" published by Morgan Kaufmann (isbn: 1-55860-104-X).
I have supervised 15 completed doctoral students:
My consultation time is TO BE DECIDED. Call me on x14287 from the phone kiosk near the elevator on the 4th floor. You may also email for appointments at other times.
In recent years I have taught COMP5348 Enterprise-Scale Software Architecture, COMP5338 Advanced Data Models, INFO2315 Introduction to IT Security, INFO2120 Database Systems 1, INFO2110 Systems Analysis and Modeling, and INFO1105 Data Structures. Previous teaching has been in units such as SOFT1002 Software Development 2, SOFT2001 Concurrent Programming, COMP2001 Computer Systems, COMP2002 Design and Data Structures, COMP3005 Database Systems, INFO4990 IT Research Methods. I also taught Masters Honours/Masters level subjects on Transaction management, Formal methods, and Distributed algorithms.
You can access materials that I have produced, such as lecture presentations.
I am active in publishing on innovative teaching of computer science, through conferences such as the Australasian Conference on Computing Education. I was general chair of the first conference (1996), and on the program committee of the third one (1998) and fifth one (2003).
For several years, my activities in development of curriculum material for teaching Java Programming, software development, and networks, were part of the Sydney University contribution to the project "Building the Internet Workforce". This was a joint project with Monash University and University of Queensland, funded by the Australian Government.
I have served on accreditation panels for the Australian Computer Society. I was a member of a team that won a University Teaching Excellence Award, for the introduction of novel first-year classes using a Problem-Based Learning approach (COMP1001 and COMP1002, later SOFT1001 and SOFT1002)
I am a member of the Academic Board of the University, and I serve on its Academic Standards and Policy Committee as Deputy Chair. As a Board nominee, I am available to serve on selection committees throughout the university. I hope to help move the institution to a vision where it has significant impact by solving hard important problems.
Nationally, I serve as Secretary/Treasurer for Computing Research and Education Association of Australasia.
I used to be active in affairs of the Faculty of Science within the University of Sydney. I served as Associate Dean (2002-2005), with responsibility for student matters concerning undergraduate students majoring in IT.