If automatic failover's required then your only option (of the ones listed) is mirroring. Replication provides neither a failover mechanism nor a fail back. Logshipping the failover is manual.
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability