Dr Alan Fekete
School of Information Technologies J12
University of Sydney
NSW 2006
Australia
I am Associate Professor in Computer Science 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 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".
I am affiliated with the Middleware research group and with the Computer Human Adapted Interaction research group.
I am available to supervise research and research-linked projects. Research projects would be suited for MIT Research Track (18crpt); research-linked projects would be suited for undergraduate TSP, MIT (12 crpt project), or Engineering Honours. Some of the research project topics could also be the first step for extending to a MSc or PhD research thesis. If these topics interest you, please contact me by email or in person.
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.
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.
One major thread in this research is a project on Consistency in Loosely Coupled Distributed Systems. This work is being done in collaboration with Paul Greenfield, Dean Kuo, and Surya Nepal. We are studying systems of the form common in contemporary enterprise setting, where a business process involves collaborative activities in several autonomous administrative domains. Typically, each party may run a workflow and these workflows interact with one another as Web Services. The "normal case" is fairly easy to describe and manage, but there are many situations where something goes wrong, and the application developer needs to deal with each situation yet avoid inconsistency developing between the state of the parties' workflows, and their separate data stores. Current technology provides little guidance for the developer in this task. The overall target of our research is to make it possible for developers to routinely, and easily, construct EAI and B2Bi applications which maintain the state and data consistently, even in executions with failure and unexpected interleaving. The strong ACID guarantees typical of transaction-processing applications are not feasible in the wide-scale loosely-coupled systems we are discussing, because ACID requires holding locks for the duration of a long-running activity (damaging performance), and because release of those locks is dependent on agreement among parties (violating site autonomy). Instead weaker mechanisms such as exception-handling and compensation must be used.
The other 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. This work also involves 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.
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 11 completed doctoral students:
My consultation time is Friday 12noon to 1pm. 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 INFO4990 IT Research Methods, INFO2110 Systems Analysis and Modeling, and SOFT1002 Software Development 2. Previous teaching has been in units such as SOFT2001 Concurrent Programming, COMP2001 Computer Systems, COMP2002 Design and Data Structures, COMP3005 Database Systems. 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).
My activities in development of curriculum material for teaching Java Programming, software development, and networks, are 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 previously been a member of the Academic Board of the University (1999-2000, 2002-2005). I hope to move the institution to a vision where it has significant impact by solving hard important problems. An extended account of this is available..
I used to be active in affairs of the Faculty of Science. I served as Associate Dean (2002-2005), with responsibility for student matters concerning undergraduate students majoring in IT.