Federated Service Discovery
Total Page:16
File Type:pdf, Size:1020Kb
Federated Service Discovery Interconnecting different Web Service Discovery Mechanisms. Andreas Thuen Institutt for informatikk UNIVERSITETET I OSLO, HØGSKOLEN I BERGEN 3 May 2015 1 Abstract A Web Service consists of two parts, a provider and a consumer. The provider seeks to reply to incoming requests from the consumer, offering an answer to the requests sent. For the consumer to be able to discover and browse different Web Service providers, a Web Service Discovery Mechanism is often used. This mechanism lists all available Web Services that is registered with the Web Service Discovery Mechanism. This is a well functioning prevalent mode of operation, but the reach of these Web Service Discovery Mechanisms are often limited to the local network in which it resides. If the consumer wishes to discover services that resides outside the consumers local network, an application that can connect different Web Service Discovery Mechanisms is necessary. This application is what this thesis strives to design, create and test. The thesis reviews different methods of achieving federation between different Web Service Discovery Mechanisms across a Wide Area Network (WAN). Through the use of gateways set up between the different instances of Web Service Discovery Mechanisms. The data can be transferred between these gateways, regardless of network type and size, as well as between different networks. This enables the user to use different Web Service Discovery Mechanisms, in different networks, and exchange information between these Web Service Discovery Mechanisms. The application is designed so that it is easy for other developers to add or remove features however they see fit, making it a solid foundation for further research on the field. It implements easily pluggable, predictable interfaces, that enables anyone who wants to test their own Web Service Discovery Mechanism or to use a different mechanism to transport the data between the different instances of the application. The application has been tested in multiple different environments, and proven to work as intended in all of these. The biggest scenario involved 45 different computers distributed across Europe, which is representative of a WAN, and thus is a very good test considering the types of environments the application is intended to run in. 2 Preface This thesis is written as a part of my master’s degree in Computer Science at the University of Oslo, Institute of Informatics. The degree is a joint effort between the University of Oslo, UniK University Graduation Center and Bergen University College. I have always been interested in how and why things work as they do. Ranging from a simple light bulb, to a computer. To be able to understand and review the inner workings of things makes them far more comprehensible, and it also helps understanding why they work. Designing, implementing and testing this application has been a very rewarding and educating process and the learning outcome of this has been a lot wider that I had anticipated. I would like to thank Frank T. Johnsen for continuous feedback and support through the process of writing this thesis, Professor Carsten Griwodz for very good feedback on testing and writing, as well as facilitating the testing of the application in the Nornet Core. I am also grateful for Trude Hafsøe Bloebaum and Professor Knut Øvsthus contributions as supervisors for the thesis, as well as the team at Nornet helping med to be able to test the application in the Nornet Core distributed test bed. A special thank you also goes to my partner Camilla, for her patience and support with me during the work on this project. Andreas Thuen Bergen, May 2015 3 Contents 1. Introduction ..................................................................................................................................... 6 1.1 Central Terminology ................................................................................................................ 8 1.2 Problem Statement ................................................................................................................. 8 1.3 Premises .................................................................................................................................. 9 1.4 Scope and Limitations ........................................................................................................... 10 1.5 Research Methodology ......................................................................................................... 11 1.6 Contribution .......................................................................................................................... 12 1.7 Outline ................................................................................................................................... 12 2. Background and Requirements Analysis ....................................................................................... 14 2.1 Military Context ..................................................................................................................... 14 2.2 Technological Background ..................................................................................................... 15 2.2.2 SOA realized using Web Services. ........................................................................................ 17 2.2.3 Service discovery in-depth ................................................................................................... 20 2.2.4 Service discovery standards. ................................................................................................ 22 2.2.5 Communication methods ..................................................................................................... 26 2.2.6 WAN Mechanisms ................................................................................................................ 27 2.2.7 Response times..................................................................................................................... 31 2.3 Related Work ......................................................................................................................... 31 2.4 Requirements summary ........................................................................................................ 35 3. Design and Implementation .......................................................................................................... 36 3.1 Design .......................................................................................................................................... 37 3.1.1 Design decisions ................................................................................................................... 38 3.1.2 General design ...................................................................................................................... 40 3.2 Implementation ........................................................................................................................... 57 4. Testing and Evaluation .................................................................................................................. 61 4.1 Unit Tests ..................................................................................................................................... 63 4.2 Functional tests ........................................................................................................................... 65 4.3 Performance tests ....................................................................................................................... 67 4.4 Test environments ....................................................................................................................... 68 4.4.1 Test tools .............................................................................................................................. 68 4.4.2 Small scale testing ................................................................................................................ 69 4.4.3 Medium scale testing ........................................................................................................... 71 4.4.4 Large Scale Testing ............................................................................................................... 74 5. Conclusion and future work .......................................................................................................... 79 5.1 Conclusion ................................................................................................................................... 79 4 5.2 Future work. ................................................................................................................................ 80 Figures: .................................................................................................................................................. 80 Tables: ................................................................................................................................................... 82 References ............................................................................................................................................. 82 Appendices ............................................................................................................................................ 88 Appendix A – List of abbreviations .................................................................................................... 88 Appendix B – Technology