Advanced Technologies For Device-To-Device Communications Underlaying Cellular Networks