Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Navajo Framework for building a Service Oriented Architecture


Published on

The Navajo SOA framework by Dexels offers all components for creating a service oriented architecture.

Published in: Technology
  • Be the first to comment

Navajo Framework for building a Service Oriented Architecture

  1. 1. THE NAVAJO FRAMEWORK creating service oriented architectures
  2. 2. WHY NAVAJO? Modern applications need more flexibility, in terms of functionality, coupling to other services and to improve reusability Navajo focuses on realising a service oriented architecture (SOA) Introducing a dedicated service layer offers possibilities to retrieve and combine data from a multitude of sources and to distribute and present it in a many different of ways
  3. 3. AN EXAMPLE Soccer club Dexlandia is involved in an active community in which a number of parties interchange information: The KNVB (the royal Dutch soccer league / union) Dexlandia itself Team captains, officials en players Fans Other media, such as local news papers etc.
  4. 4. AN EXAMPLE A community such as this benefits greatly from having a loosely coupled, flexible information architecture We would call this a SOA
  5. 5. WHAT IS SOA? Although many definitions exist, in general a SOA is an architecture for application design. It contains of 3 parts: Web service interfaces - containing the concepts relative to application communication Service-based application components - recognising the need for designing application components as services that perform individual tasks Process Orchestration - used to “glue” components together into complete business processes
  6. 6. WHAT IS SOA? WEB SERVICE INTERFACES Originally introduced to allow easy and flexible access to application components from Web environments Uses a standard syntax based on XML for invoking application components and passing data Supports both synchronous and asynchronous communication Supports “loose-coupling” meaning that component are not pre-linked together This improves agility and can be used to “wrap” legacy applications
  7. 7. WHAT IS SOA? SERVICE BASED APPLICATION COMPONENTS SOA services represent a single business task in the application domain Service-based application components should not remember things between invocations, to insure the components are complete tasks The goal of SOA is to create an architecture in which IT follows the business
  8. 8. WHAT IS SOA? PROCESS ORCHESTRATION Service-based components invoke each other directly, but sometimes some form of external “control” is needed. A process orchestration engine provides a number of capabilities: Detect certain events, including end-user initiated ones The ability to invoke service-based components The ability to control the process flow based on certain conditions The ability to support the parallel execution of tasks
  9. 9. WHAT DOES NAVAJO OFFER? TML : an XML-based mark-up language used for information exchange NavaScript : a scripting language for writing web service logic NavajoServer : a runtime environment build on top of web service interfaces, service-based application components and process orchestration Tipi : a user interface language running on Navajo services for building rich client applications
  10. 10. WHAT DOES NAVAJO OFFER? The Navajo framework offers ALL elements needed to start building a Service Oriented Architecture right now
  11. 11. TML A SERVICE MARK-UP LANGUAGE Prerequisites Easy to understand an read by human resources Single-schema based XML, supporting structuring of data and basic data types
  12. 12. TML THE HTML OF NAVAJO SERVICES Language components Messages to group data Properties to display data: e.g. text, numbers, dates, dropdowns, binaries etc.
  13. 13. NAVASCRIPT SERVICE SCRIPTING LANGUAGE Prerequisites Closely related to the TML mark-up language Easy to understand and use Minimal set of elements Extendible with custom functionality
  14. 14. NAVASCRIPT THE JAVASCRIPT OF NAVAJO SERVICES Goal Uniting the world of mark-up languages with the world of domain- specific adapters and functions Adapters and functions are written in Java; NavaScript is written in XML
  15. 15. NAVASCRIPT LANGUAGE CONSTRUCTS Imperative script-like approach Adapters are usable through getters and setters (cf. JavaBeans) Implicit handling of loops Support for custom functions
  16. 16. NAVAJOSERVER SERVICE RUNTIME Prerequisites Excellent performance Louse coupling of functionality
  17. 17. NAVAJOSERVER PERFORMANCE NavaScript files are compiled into Java Changes in NavaScript files are automatically handled Request times, network times and processing times are monitored and stored separately, to see exactly where the most delays occur
  18. 18. NAVAJOSERVER LOOSE COUPLING Every Navajo service is stateless, which enables the runtime / server not to have to store data on each of the supporting clients Services can be run synchronously or asynchronously, so clients don’t always have to wait for an answer For asynchronous adapters, requests can be stored in a queue
  19. 19. NAVAJOSERVER FUNCTION LIBRARY I Support for different protocols (listeners) Own or 3rd party libraries for functions and adapters Security (authorisation, authentication and encryption) Service logging Server monitoring Task scheduling
  20. 20. NAVAJOSERVER FUNCTION LIBRARY II Process orchestration (workflows and triggers) Clustering of multiple servers (NavajoTribes) Integrity and transaction support (fallback and retry) Beta-testing NavaDoc : automatic service documentation NavaTest : online testing environment
  21. 21. NAVAJOSERVER PROTOCOLS / LISTENERS TML over HTTP(s) XML over HTTP(s) JSON over HTTP(s) SOAP over HTTP(s) TML over SMTP/IMAP FTP / RSS support possible
  22. 22. NAVAJOSERVER ADAPTERS AND FUNCTIONS Adapters and functions are written in Java Default set of adapters contains a.o. support for databases, file systems, ftp, http, e-mail, iCal, authentication and many more Default set of functions contain a.o. string, number, date and image manipulation and more Interfaces are available to write your own custom adapters and functions New adapters are immediately availably to the NavajoServer
  23. 23. NAVAJOSERVER SECURITY Authorisation possible on a server, folder, script, role or data-driven level Authentication parameters can be stored in a database or file system Support for encryption and certificates Secure or unsecured communication possible (http/https)
  24. 24. NAVAJOSERVER LOGGING Every service request be stored Logging data contains a.o.: Information about the client Request and response data for each service Processing time for the server, client and each individual adapter Possible errors and stack traces
  25. 25. NAVAJOSERVER MONITORING Enterprise monitoring tool and watchdog: “Coyote” See status, uptime and downtime of NavajoServer clusters Use Jabber protocol to communicate with servers See current users and requests
  26. 26. NAVAJOSERVER TASK SCHEDULING Ready services to trigger by date or specific (other) service request date trigger: run service XYZ on a certain time-stamp before service trigger: run XYZ before service ABC occurs after service trigger: run XYZ after service ABC occurred Possibility to store request and response messages
  27. 27. NAVAJOSERVER PROCESS ORCHESTRATION Process orchestration uses a simple XML-based workflow definition language: Definition of service triggers Definition of workflow state Definition of time-based triggers Support for synchronous and asynchronous service calls Support for parallel execution over multiple servers
  28. 28. NAVAJOSERVER CLUSTERING Support for clustering of multiple NavajoServers, so called NavajoTribes Each NavajoTribe knows about the availability and workload of each of its members NavajoTribes support failover taking over workflow state and asynchronous services, if a member dies
  29. 29. NAVAJOSERVER SERVICE INTEGRITY Support for retries when clients temporarily cannot find servers due to heavy network load or connection problems Support for maintaining integrity when a server did respond (and process a request), but the client for some reason didn’t get an answer and issues a retry
  30. 30. NAVAJOSERVER BETA-TESTING Users can be labelled as beta testers Scripts can be deployed as beta-versions, making them available to the beta testers, thereby omitting the need for a separate testing environment The same goes for adapters
  31. 31. NAVAJOSERVER NAVADOC NavaDoc automatically generates documentation of Navajo services Documentation for services can be looked in any HTML-compliant web browser NavaDoc enables third parties to easily see what requests and responses are applicable for each service request
  32. 32. NAVAJOSERVER NAVATEST NavaTest offers a simple web interface to directly run a service on one of the NavajoServers A more elaborate version of NavaTest is also available as a plugin in the Eclipse IDE
  33. 33. TIPI RICH USER INTERFACE LANGUAGE Prerequisites Tight coupling with the Navajo framework XML-based Intuitive in use having a minimal set of language constructs Pretty and extendible See our separate extensive Tipi presentation at
  34. 34. INTEGRATING NAVAJO Background The Navajo framework implements a service layer not a data- or presentation layer This means that Navajo can be used with a multitude of data layers and a multitude of different programming techniques Because Navajo uses many open standards like XML and http, it’s easy to use in other environments
  35. 35. INTEGRATING NAVAJO Some implementations we built: Navajo and Java SE Navajo and PHP, inc. plug-ins for Joomla! Navajo and Flash Navajo and DHTML/AJAX Navajo and the iPhone
  36. 36. INTEGRATING NAVAJO NAVAJO AND JAVA SE Benefits Using Java for the front-end makes advanced, platform-independent applications possible Can use Java Web Start to offer applications via the internet, support for Java Web Start is common on many computers Java Web Start automatically handles updates Used on a very large scale by Dexels
  37. 37. INTEGRATING NAVAJO NAVAJO AND PHP / JOOMLA! Benefits PHP is a commonly used scripting language to build web applications and websites PHP libraries have been written to quickly create simple applications that benefit from communication with the Navajo framework, or could reuse services already used by other (e.g. Java) clients Navajo plug-ins for the Joomla! CMS have been written to include Navajo services in the standard article model (making it possible for non-programmers to access the Navajo framework)
  38. 38. INTEGRATING NAVAJO NAVAJO AND FLASH Benefits You don’t need a Java virtual machine Flash looks (uniformly) pretty in all web browsers
  39. 39. INTEGRATING NAVAJO NAVAJO AND IPHONE Benefits The iPhone is a mobile device and thus opens up a plethora of new business possibilities and markets The iPhone has a default set of software (phone book, Google Maps) that can be used to extend and enhance the user experience of working with a Navajo based application The iPhones hard technical development requirements can greatly benefit from a framework-based approach that handles data manipulation and transport
  40. 40. END Questions? More about Dexels and the Navajo framework can be found at: Feel free to call us at +31 20 490 4977 or mail us at to ask for further information