{"id":145,"date":"2020-02-10T08:39:57","date_gmt":"2020-02-10T08:39:57","guid":{"rendered":"http:\/\/spiderwiz.org\/project\/?page_id=145"},"modified":"2025-04-09T06:16:13","modified_gmt":"2025-04-09T06:16:13","slug":"tutorial","status":"publish","type":"page","link":"https:\/\/spiderwiz.org\/project\/tutorial\/","title":{"rendered":"Spiderwiz Tutorial"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><ul class=\"list-pages-shortcode child-pages\"><li class=\"page_item page-item-388\"><a href=\"https:\/\/spiderwiz.org\/project\/tutorial\/lesson-1\/\">Lesson 1: Hello World<\/a> <div class=\"excerpt\">Learn how to build a basic functional Spiderwiz Application. The application will contain one data object - HelloWorld, which will print, guess what, \"Hello World\".<\/div><\/li>\n<li class=\"page_item page-item-393\"><a href=\"https:\/\/spiderwiz.org\/project\/tutorial\/lesson-2\/\">Lesson 2: Communication &#8211; Producers and Consumers<\/a> <div class=\"excerpt\">Learn about weaving a service mesh. We will get acquainted with Producers and Consumers, and will see how easy it is to link them with Spiderwiz.<\/div><\/li>\n<li class=\"page_item page-item-398\"><a href=\"https:\/\/spiderwiz.org\/project\/tutorial\/lesson-3\/\">Lesson 3: Going World Wide with a WebSocket Hub<\/a> <div class=\"excerpt\">Learn how to create a Spiderwiz web application. We will use it to implement a chat service over WebSockets. We will also discuss how Spiderwiz handles a complex network topology (hint \u2013 with Spiderwiz nothing is complex).<\/div><\/li>\n<li class=\"page_item page-item-621\"><a href=\"https:\/\/spiderwiz.org\/project\/tutorial\/lesson-4\/\">Lesson 4: Fine Grained Object Routing<\/a> <div class=\"excerpt\">Learn how to control the routing of specific data objects between specific applications using various techniques. We will use it to introduce chat rooms and private messages into the chat service of Lesson 3.<\/div><\/li>\n<li class=\"page_item page-item-667\"><a href=\"https:\/\/spiderwiz.org\/project\/tutorial\/lesson-5\/\">Lesson 5: Persistent Data Objects and the Data Object Tree<\/a> <div class=\"excerpt\">Learn about Spiderwiz data object tree and how it is shared between applications. We will use it to introduce dynamic chat rooms into the chat service of Lesson 4.<\/div><\/li>\n<li class=\"page_item page-item-777\"><a href=\"https:\/\/spiderwiz.org\/project\/tutorial\/lesson-6\/\">Lesson 6: Walking Through the Data Object Tree<\/a> <div class=\"excerpt\">Learn how to traverse the data object tree to collect information and perform actions. We will use it to add some features to the chat service of Lesson 5.<\/div><\/li>\n<li class=\"page_item page-item-863\"><a href=\"https:\/\/spiderwiz.org\/project\/tutorial\/lesson-7\/\">Lesson 7: Query Objects<\/a> <div class=\"excerpt\">Introducing Query Objects, a special type of Data Objects used for round trip queries and replies. We will use it to add a user registration feature to the chat service of the previous lessons.<\/div><\/li>\n<li class=\"page_item page-item-898\"><a href=\"https:\/\/spiderwiz.org\/project\/tutorial\/lesson-8\/\">Lesson 8: Streaming Queries and Data Object Archiving<\/a> <div class=\"excerpt\">Get a twofer. Learn about Streaming Queries and Data Object Archiving in one  lesson. We will use it to add a chat history feature to the chat service of the previous lessons.<\/div><\/li>\n<li class=\"page_item page-item-926\"><a href=\"https:\/\/spiderwiz.org\/project\/tutorial\/lesson-9\/\">Lesson 9: Manual Data Object Reset<\/a> <div class=\"excerpt\">Learn about the concept of Data Object Reset, how it is performed automatically and how to control it programmatically.<\/div><\/li>\n<li class=\"page_item page-item-970\"><a href=\"https:\/\/spiderwiz.org\/project\/tutorial\/lesson-10\/\">Lesson 10: Asynchronous Event Handling<\/a> <div class=\"excerpt\">Experience Spiderwiz robustness by exercising with synchronous vs. asynchronous event handling.<\/div><\/li>\n<li class=\"page_item page-item-986\"><a href=\"https:\/\/spiderwiz.org\/project\/tutorial\/lesson-11\/\">Lesson 11: Import\/Export \u2013 Interfacing with Legacy Frameworks<\/a> <div class=\"excerpt\">Learn a tricky way to easily bridge between the state-of-the-art Spiderwiz-based applications and legacy frameworks.<\/div><\/li>\n<li class=\"page_item page-item-1001\"><a href=\"https:\/\/spiderwiz.org\/project\/tutorial\/lesson-12\/\">Lesson 12: Don\u2019t Miss a Bit \u2013 Lossless Data Objects<\/a> <div class=\"excerpt\">Learn how to guarantee that every object arrives at its destination even if there is a communication break or the destination application is temporarily inactive.<\/div><\/li>\n<li class=\"page_item page-item-1003\"><a href=\"https:\/\/spiderwiz.org\/project\/tutorial\/lesson-13\/\">Lesson 13: Everything that Makes Maintenance Life Easier<\/a> <div class=\"excerpt\">Logs, alerts, exception reporting, monitoring and everything that lets you focus on your tasks without spending your entire life on debugging.<\/div><\/li>\n<li class=\"page_item page-item-1050\"><a href=\"https:\/\/spiderwiz.org\/project\/tutorial\/lesson-14\/\">Lesson 14: Monitor, Manage, Maintain and Control Your Applications with SpiderAdmin<\/a> <div class=\"excerpt\">SpiderAdmin is an administration service that comes free with every Spiderwiz-based application. Learn how to get the most out of it.<\/div><\/li>\n<li class=\"page_item page-item-1006\"><a href=\"https:\/\/spiderwiz.org\/project\/tutorial\/lesson-15\/\">Lesson 15: Writing a Communication Plugin<\/a> <div class=\"excerpt\">Learn how to extend Spiderwiz by writing and using a communication plugin. In this exercise we will implement an SSL TCP\/IP connection. <\/div><\/li>\n<li class=\"page_item page-item-1010\"><a href=\"https:\/\/spiderwiz.org\/project\/tutorial\/lesson-16\/\">Lesson 16: Writing a Mail Plugin<\/a> <div class=\"excerpt\">Learn how to extend Spiderwiz by writing and using a mail plugin. We will exercise sending messages through WhatsApp.<\/div><\/li>\n<li class=\"page_item page-item-1012\"><a href=\"https:\/\/spiderwiz.org\/project\/tutorial\/lesson-17\/\">Lesson 17: Writing an Import Handler Plugin<\/a> <div class=\"excerpt\">Learn how to extend Spiderwiz by writing a customized Import\/Export handler. We will use it to bridge with <a href=\"https:\/\/www.baeldung.com\/java-websockets\">Baeldung\u2019s WebSocket Chat Application<\/a>.<\/div><\/li>\n<li class=\"page_item page-item-1014\"><a href=\"https:\/\/spiderwiz.org\/project\/tutorial\/lesson-18\/\">Lesson 18: Customizing SpiderAdmin<\/a> <div class=\"excerpt\">Learn how to use <a href=\"http:\/\/spiderwiz.org\/project\/spideradmin\/\" \/>SpiderAdmin<\/a> for controlling and analyzing your application\u2019s logical functionality by adding application-specific features to SpiderAdmin pages.<\/div><\/li>\n<li class=\"page_item page-item-1016\"><a href=\"https:\/\/spiderwiz.org\/project\/tutorial\/where-do-we-go-from-here\/\">Where do We Go from Here?<\/a><\/li>\n<\/ul><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"tutorial-parent.php","meta":{"footnotes":""},"class_list":["post-145","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/spiderwiz.org\/project\/wp-json\/wp\/v2\/pages\/145","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/spiderwiz.org\/project\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/spiderwiz.org\/project\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/spiderwiz.org\/project\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/spiderwiz.org\/project\/wp-json\/wp\/v2\/comments?post=145"}],"version-history":[{"count":32,"href":"https:\/\/spiderwiz.org\/project\/wp-json\/wp\/v2\/pages\/145\/revisions"}],"predecessor-version":[{"id":412,"href":"https:\/\/spiderwiz.org\/project\/wp-json\/wp\/v2\/pages\/145\/revisions\/412"}],"wp:attachment":[{"href":"https:\/\/spiderwiz.org\/project\/wp-json\/wp\/v2\/media?parent=145"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}