The Openwings Tutorial

The Openwings Tutorial

Documents
268 pages
Lire
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

The Openwings Tutorial
Introduction
This tutorial provides guidance on design, development, and deployment of
components using the Openwings reference implementation, version 0.9.2. This
document is meant to be a terse guide. it does not discuss the Openwings APIs in
detail—please refer to the Javadocs for that information.
This tutorial contains material that is specific to this Reference Implementation
of Openwings. It will be continually updated to reflect changes made in new
releases. If you notice an error in the tutorial, please e-mail us so we can fix the
problem.
Click here to download a PDF containing all the tutorial content.
Tutorial Trails
Trail I. Openwings Architecture Introduction
1. Introduction
2. Architecture Overview
3. Component Services
4. Container Services
5. Connector Services
6. Install Services
7. Context Services
8. Management Services
9. Security Services
Trail II. Getting Started (Quick Start)
1. Installation
2. Running the Demo Applications
file:///S|/OpenwingsDotOrg/html/openwings-0.9.2/tutorial/index.html (1 of 5) [12/19/2002 6:46:37 PM] The Openwings Tutorial
3. The HelloWorld Demos
4. The HelloWorldSynchronous
Component
5. The HelloWorldProvider Component
6. The HelloWorldSimpleUser Component
7. The HelloWorldUser Component
8. The HelloWorldAsynchronous
Component
9. The HelloWorldPublisher Component
10. The HelloWorldSubscriber
Component
11. Compilation
12. Connector Generation
13. Packaging
14. Installing ...

Sujets

Informations

Publié par
Nombre de lectures 141
Langue English
Poids de l'ouvrage 2 Mo
Signaler un problème
The Openwings Tutorial Introduction This tutorial provides guidance on design, development, and deployment of components using the Openwings reference implementation, version 0.9.2. This document is meant to be a terse guide. it does not discuss the Openwings APIs in detail—please refer to the Javadocs for that information. This tutorial contains material that is specific to this Reference Implementation of Openwings. It will be continually updated to reflect changes made in new releases. If you notice an error in the tutorial, please e-mail us so we can fix the problem. Click here to download a PDF containing all the tutorial content. Tutorial Trails Trail I. Openwings Architecture Introduction 1. Introduction 2. Architecture Overview 3. Component Services 4. Container Services 5. Connector Services 6. Install Services 7. Context Services 8. Management Services 9. Security Services Trail II. Getting Started (Quick Start) 1. Installation 2. Running the Demo Applications file:///S|/OpenwingsDotOrg/html/openwings-0.9.2/tutorial/index.html (1 of 5) [12/19/2002 6:46:37 PM] The Openwings Tutorial 3. The HelloWorld Demos 4. The HelloWorldSynchronous Component 5. The HelloWorldProvider Component 6. The HelloWorldSimpleUser Component 7. The HelloWorldUser Component 8. The HelloWorldAsynchronous Component 9. The HelloWorldPublisher Component 10. The HelloWorldSubscriber Component 11. Compilation 12. Connector Generation 13. Packaging 14. Installing Your Component 15. Running Your Component Trail III. The Openwings Shell 1. Navigation 2. Basic Commands 3. The ls command 4. The cd command 5. The lcd, pwd, and lls commands 6. The install command 7. The process command 8. The uninstall command 9. The edit command 10. The findclass command 11. The quit command 12. Other Useful Shell Tricks Trail IV. The Openwings Explorer file:///S|/OpenwingsDotOrg/html/openwings-0.9.2/tutorial/index.html (2 of 5) [12/19/2002 6:46:37 PM] The Openwings Tutorial 1. Introducing the Openwings Explorer 2. Basic Navigation 3. Installing a Component 4. Uninstalling a Component 5. Starting a Process 6. Stopping a Process 7. Moving a Process 8. Editing a Component Descriptor 9. Viewing more about a Component 10. Shutting Down a Platform 11. More Explorer Tips Trail V. Design Topics 1. Design Introduction 2. Architecture Definition Language (ADL) 3. Service-Oriented Programming Principles 4. Defining Service Contracts 5. Defining Components Trail VI. Developing Components 1. Developing Components 2. The Development Environment 3. Naming Conventions 4. Component Service APIs 5. The Component Interface 6. The ComponentComplex Interface 7. Failure Recovery Techniques 8. ServiceUI Development file:///S|/OpenwingsDotOrg/html/openwings-0.9.2/tutorial/index.html (3 of 5) [12/19/2002 6:46:37 PM] The Openwings Tutorial 9. Component Compilation 10. Connector Generation 11. Using Policies 12. Using Properties 13. Dependency Resolution 14. Dependency Substitution 15. Component Packaging Trail VII. Deploying Components 1. Component Deployment 2. Component Installation 3. Component Execution Trail VIII. Code Security 1. Introduction to Openwings Code Security 2. Editing Your ICD 3. Create Your Component's Security Policy 4. Rebuild and Reinstall 5. Debug Trail IX. Troubleshooting 1. Openwings Troubleshooting Tips Glossary Openwings Glossary file:///S|/OpenwingsDotOrg/html/openwings-0.9.2/tutorial/index.html (4 of 5) [12/19/2002 6:46:37 PM] The Openwings Tutorial Appendices Appendix A: Native Code Appendix B: System Performance Appendix C: Log Control back to top © Copyright 2002, General Dynamics Decision Systems. All rights reserved. file:///S|/OpenwingsDotOrg/html/openwings-0.9.2/tutorial/index.html (5 of 5) [12/19/2002 6:46:37 PM] l l l l l l l Installation Openwings Introduction Congratulations for taking the leap into the world of Service Based Architectures (SBA). Perhaps you have heard something about SBA and want to find out what it is all about. In this section we will discuss some of the history that has lead up to SBA and why it is important. History Often it is helpful to reflect on the past to understand the present. There have been three key software technologies underlying the success of the Internet: Internet Protocol (IP), WWW technologies, and Java. Understanding why these technologies were successful provides a great deal of insight. Technology Value Proposition Origin Notes Internet Protocol (IP) Cross Platform Connectivity Military The plumbing that Send anything between any provides connectivity nodes between nodes WWW (Web Browser, Cross Platform User Interface Academia Brochure-like user access Web Server, Search User access to capabilities of to capabilities Engines, HTTP, HTML) any node on the network Ability to find useful capabilities Java Cross Platform Applications Industry GUI user access to Enriched Cross Platform User capabilities Interface The reason all of these technologies were successful is that they had compelling value propositions. Your computer is more useful if it is on the Internet. The Internet is more useful with web technologies. You can provide much richer user interactions with Java. These technologies provide greater flexibility and value. By using these technologies to integrate legacy systems, one can extend the reach and utility of legacy systems, without losing past investments. Because of these technologies, the Internet has become a very useful tool. People can do a tremendous variety of tasks on the Internet, everything from paying their bills, selling items, buying items, getting the weather, reading the news, finding directions, filing tax returns, installing software, downloading music, finding movie times, reading book reviews, doing research, etc. When the Internet first came into existence, there file:///S|/OpenwingsDotOrg/html/openwings-0.9.2/tutorial/Trail01_Introduction/01_Introduction.html (1 of 9) [12/19/2002 6:46:40 PM] Installation was connectivity, but it was not easy to find and use things. A published cross- platform user interface (a web page) and the ability to search for things (a search engine) dramatically changed the use of the Internet. A compelling commercial aspect came to the Internet, in such a way that eBay could hold the world’s largest garage sale with a million of their closest friends. At times, industry and individuals would like to have these capabilities work together in ways that their creators could not have conceived. For instance, a travel service is a prime example of a horizontal integration of services. Travel agents need to book travel (airlines, bus, train), book tour services, book hotels, book rental cars, find weather information, book events, and book attractions. Another example is a realtor selling homes. A client wants to know the price range of homes in an area, crime rates, seasonal information, schools, easements, fees, previous sales history, taxes, energy costs, insurance costs, local shopping, local restaurants, noise levels, gas/electric, cable/internet, sewage/septic tank, public water/well, plot information, and so forth. The military has similar horizontal integration problems. The military often needs to coordinate across services, agencies, and nations to achieve its objectives. Figure1. Horizontal Integration Examples file:///S|/OpenwingsDotOrg/html/openwings-0.9.2/tutorial/Trail01_Introduction/01_Introduction.html (2 of 9) [12/19/2002 6:46:40 PM] l l l Installation That fact is that one cannot predict how services or information will be combined and used in the future. The whole is greater than the sum of the parts. However, this kind of interoperability is very difficult to achieve when the only interface to these capabilities is a web page. Today, the technique of parsing these unstructured HTML pages is used to integrate across vendors, however it is difficult and error-prone. Simple changes to websites can break this “screen scraping” approach. The problem is that there is no programmatic access to these capabilities and no way to search for these capabilities. This interoperability need has been labeled as many things: Enterprise Integration Horizontal Integration Open-Ended Integration This has been the driving force behind Web Services. Web services rely on a protocol for interoperability: Simple Object Access Protocol (SOAP). Since web services are not concerned with high bandwidth access or passing large amounts of data, they use XML technologies. Web services can be used to share capabilities, but not software. Web Services provide the important lookup mechanism through Universal Description, Discovery, and Integration (UDDI). Not only do we have these kinds of integration problem for web services, but for network devices and network services in general. The concept of plugging a piece of software or hardware onto the network and having it automatically provide services is very powerful. It extends the utility of these hardware and software components while making it much easier for users. This same concept of pluggability can even be extended to locality-based services, similar to what Bluetooth provides. Often the military has characterized their interoperability problem as an information dissemination problem, but it is more than that. As an example from a non-military environment, when you go to the bank to get your balance, the bank doesn’t send you all of your banking transactions since the creation of your account for you to add up. Instead the bank provides a service that returns your account balance. This is much more efficient and convenient. They knew a balance is something people would ask for and provided an efficient way of accessing it. The military is moving to a service view of the world and in fact they define interoperability in terms of services: Interoperability (from Joint Vision 2020): The ability of systems, units, or forces to provide services to and accept services from other systems, units, or forces and to use the services so exchanged to enable them to operate effectively together. Service Based Architectures represent the evolution of distributed software Component Architectures and System Architectures. The following figure shows the evolution of component architectures and the focus of Openwings (modified slide from Sun™ Jini Presentations): file:///S|/OpenwingsDotOrg/html/openwings-0.9.2/tutorial/Trail01_Introduction/01_Introduction.html (3 of 9) [12/19/2002 6:46:40 PM] Installation Figure 2. Evolution of Component Architectures In a world where components can encapsulate both hardware and software, publish services, and find services to use, our concepts of Systems Architecture must begin to evolve. The Service Based approach actually makes it easy to define systems, because service contracts are defined for all inter-node interactions. This makes integration much easier. Systems architectures are not only concerned with the functional breakdown, but the quality of service provided. Things like availability, security, and performance become issues. The Problem Here is a succinct statement of the problem(s) SBA is trying to solve. How do you provide interoperability between software components, hardware components, and systems in a secure, highly available manner that is simple to develop and use? This is a compact statement of a large problem. The Solution In this section we break down the various parts of the problem and explain how Openwings solves it. file:///S|/OpenwingsDotOrg/html/openwings-0.9.2/tutorial/Trail01_Introduction/01_Introduction.html (4 of 9) [12/19/2002 6:46:40 PM] l l l l Installation Services, Discovery, Components, and Deployment Openwings takes a broad view of Service Based Architectures. Here is how Openwings defines a service: A service is a contractually defined behavior that can be provided by a component for use by any component solely based on the Interface Contract. A key thing to note is that there has to be a way to publish and discover a service. Much like we need search engines to find user interfaces on the web, we need a way to find programmatic access to services. Though this is a relatively simple definition it has very powerful implications. It implies that the service cannot depend on: Discovery protocols Transport protocols Platforms Deployment Environments This has broad implications for interoperability. Service Based Architectures are an evolution of Component Architectures. Component Architectures have typically focused on deployment and inter-process communication; examples include Common Object Request Brokering Architecture (CORBA), DCE, EJB, Applets, Servlets, etc. Openwings takes the Software Engineering Institute definition of a component: A component is a binary implementation of functionality that is a unit of deployment, which is subject to third party composition and is conformant with a component model. Openwings handles the issues of deployment and third party composition through its Install Service and Component Services. Openwings allows software components to be deployed on any platform with no user interaction. By combining Openwings software components with hardware components, one can easily create network appliances that you simply plug in and turn on to use. The following figure shows an example network appliance that, when plugged into the network, can display any workstation screen. file:///S|/OpenwingsDotOrg/html/openwings-0.9.2/tutorial/Trail01_Introduction/01_Introduction.html (5 of 9) [12/19/2002 6:46:40 PM]