For a while, UAV (Unmanned Arial Vehicles) use was limited to military applications, however recently UAVs are also used for a wide range of civilian applications. Some of the UAV applications may involve multiple UAVs that must cooperate to achieve a common task. This kind of applications is termed collaborative UAV applications. One of the main issues for multiple UAVs is developing an effective framework to enable the development of software systems for collaborative UAV operations. One possible approach is to rely on service-oriented computing and service-oriented middleware technologies to simplify the development and operations of such applications. This paper discusses the challenges of developing collaborative UAV applications and how the service-oriented middleware approach can help resolve some of these challenges. The paper also investigates the collaborative aspects of multiple UAVs and proposes a service-oriented middleware architecture that can satisfy the development and operations of such applications.