1.02k likes | 1.29k Views
E-speak Fundamentals. The Essential Difference. Hardware + Software Tell the computer how to do the job. Services Tell the computer what job you want done. Overview. What the "big picture" for e-speak is What the various modules of e-speak are How service providers and consumers interact
E N D
The Essential Difference • Hardware + Software • Tell the computer how to do the job • Services • Tell the computer what job you want done
Overview • What the "big picture" for e-speak is • What the various modules of e-speak are • How service providers and consumers interact • How to identify projects that are a good fit with the e-speak technology
Systems Evolution Monolithic, proprietary systems Open systems 2-tier client-server systems Open data (Web) 3-tier, 4-tier, … systems Proprietary, one-off services (Amazon.com, Expedia, eBay, …) Open services (E-speak) Dynamic n-tier systems Service composition & Customization
E-speak - the Technology Goal Do for services what the Web has done for data. Make it as simple to create, compose, deploy, manage, personalize, and access services as it is to publish and access data on the Web.
What is E-speak ? Technology Platform for Open Services E-speak (services) Web (data) Internet (connectivity)
What does E-speak do ? What is it ? In a world made up of electronic services, (being provided and consumed on the intranet or internet) e-speak helps to solve the problems of developing, deploying, advertising, securing and managing those electronic services. E-speak is a platform for services
Appliance E-speak Service Provider A Service Provider B Service Provider C Services on Tap 1. User needs application on the appliance 2. Appliance connects to e-speak and asks it to find the "best" provider 3. Service provider runs the application 4. E-speak mediates the interaction 5. Data store can be on appliance, in service provider B, or elsewhere in the system. 6. Consumer and service provider may remain mutually anonymous
An E-service in E-speak terms • has an interface (programmatic or document based) • can be described using attributes • can be found using an attribute-based description • can be managed by a party other than the user • is available for use on a distributed basis
Services Framework Reducing the barrier to new, competitive services
Open Services Marketplace New services and service compositions, Cache New service providers Bill Locate Monitor Discover Utility Manage Distribute Convert Negotiate Meter Int**net QoS Mirror Verify Isolate New customers
Printing ERP Service N E-Speak: The Big Picture … Data Storage Data Mining Health Monitoring Procurement Service Framework Document Exchange Model E-speak API (J-ESI) Network Object Model E-speak Service Engine
Assumptions and Implications • Large number of machines • No centralized anything, forget consistency • Dynamic • Deal with failures, new services • Heterogeneous • Different hardware, OS, capability • Hostile environment • Security is critical • Different fiefdoms • Never look inside another machine
Virtual Resource Abstraction Resource Attribute Legacy Resource Access Descriptions Naming Abstraction (eg: NTFS) Permissions Interfaces Communication Basic Services Basic Services Interrupt Scheduling Attribute Handling Vocabularies Authorization Memory Management LDAP Timer Services DCOM/CORBA Transports Java Platform Repositories HTTP Legacy OS E-speak System E-speak Resource Model
The E-speak Engine’sThree Main Functions • Managing a repository of service descriptions for the purposes of allowing others to find those services • Message routing (to services or to other engines) • Name handling (allowing users to create name hierarchies)
Architecture - Scenario 1 • Federation of autonomous engines • Asynchronous, message-passing between engines • Service mediation • Naming, monitoring, service location independence A Simplified View of an Architecture Service Provider Service Consumer E-speak engine E-speak engine
Architecture - Scenario 2 • Look up a service in one engine • Get a reference to a second engine (or the web access part of the second engine) • Use the service via the second engine Service Provider Service Consumer 2. Use the service 1. find a service E-speak engine E-speak engine
Architecture - Scenario 3 • Look up a service in one engine • Get a reference to the service • Use the service directly (no engine intervention) • This is the web access model (check documentation for more information) Service Provider Service Consumer 2. Use the service 1. find the service E-speak engine
E-speak vs.Traditional Middleware • Virtual service intermediation • Uniform services model • Attribute-based lookup • Individual name spaces • Capability-based security • Directory lookup • Direct access to service • No mediation • No virtualization Service Client application Service Directory Advertising service Server Client Proxies Server Core Core Traditional Middleware e-speak
J-ESI and E-speak WebAccess J-ESI: (Java E-service Interface - the engine API) • fast, relatively close coupling (programmatic interface must be shared by service provider and service consumer) • intense and small grained interactions feasible • more suited to intranet uses WebAccess: • piercing of firewalls simpler, use of services on the internet, B2B • larger overhead (parsing of XML documents, WebServer, servlet time consumption) per message • larger grained messages (e.g. one XML document contains all information) • standard message content, loose coupling of service provider to consumer
XML and e-speak • The e-speak J-ESI currently supports XML for the following • vocabulary descriptions • service descriptions • queries • XML will also be used to interact with the e-speak core and e-speak components • XML can be used as the encoding for the payload of your service interface • You must provide your own parsing for the message payload as part of your service provider and service consumer code • This use of XML is independent of the e-speak engine; the engine does not interpret the payload of messages.
Technology Innovations • Dynamic discovery of services • Security Model • Meta-data Model
The E-speak Network Object Model How Service Providers and Service Consumers Interact
The E-speak Engine’s Network Object Model service consumer resource handler resource A resource is anything that can be described to e-speak using attributes and their values client library client library engine
Interfaces are defined between components service consumer resource handler resource J-ESI J-ESI client library client library ABI - Application Binary Interface - a set of structured messages between the engine and the client library ABI ABI engine
E-speak’s Network Object Model service consumer resource handler Developer writes this Developer writes this resource J-ESI J-ESI E-speak provides these client library client library ABI ABI engine
Q: How does a task use a resource from another e-speak engine? A: The same way it uses a resource on its own engine. E-speak’s Network Object Model
A Single engine View service consumer resource handler resource client library client library engine
A Multiple-Engine View service consumer resource handler resource client library client library ABI ABI Engine A Engine B ABI
E-speak’s Network Object Model service consumer resource handler resource J-ESI J-ESI client library client library ABI ABI engine engine ABI E-speak
Q: How can e-speak handle the great variety of potential services? A: E-speak is concerned with service metadata and access control.
Metadata • Description (attributes with values) • Vocabulary (one or more, in which the service is described) • Contract (the interface provided by the service) • Access Control (handled by the security subsystem)
Show me what happens when a consumer makes use of an e-service. A simple example
E-speak’s Network Object Model service provider provider systems 1. service provider registers with the local engine. J-ESI client library engine B
E-speak’s Network Object Model service consumer service provider 2. Consumer does a “find” on its local engine (using a J-ESI API call) to discover one or more suitable service providers. J-ESI client library More detail on this “discovery” later. engine A engine B
E-speak’s Network Object Model service consumer service provider 3. Consumer sends message to service provider via its local engine. J-ESI client library engine A engine B
E-speak’s Network Object Model serviceconsumer service provider 4. Security library checks access. 5. engine A knows that this message should be sent to engine B, (since it received internal e-speak data from engine B earlier, which told it so). engine A engine B
E-speak’s Network Object Model serviceconsumer serviceprovider 6. engine A sends the message to engine B. (Engines communicate using ABI compatible messages) engine A engine B
E-speak’s Network Object Model serviceconsumer service provider 7. engine B forwards the message to the service provider. 8. Library checks that the request is allowed. J-ESI client library Engine A Engine B
Q: How are new e-services made available to others? A: E-services are registered by a service provider. Attribute-based lookups discover registered services.
Dynamic Discovery SERVICE PROVIDER weather e-service reservation e-service travel e-service travel e-service SERVICE PROVIDER airline booking e-service travel e-service hotel booking e-service YOU hotel booking e-service hotel booking e-service airline booking e-service
Discovery options 1. Obtain reference to a service from a local repository “find” call 2. Receive a reference from someone else (e.g., an advertising service) Both of these actions are done by the service finder “find” API (see the ESServiceFinder class document online). 3. A reference may be loaded from persistent store
Advertising and finding advertising e-service Advertising services are standard services attached to engines (often as default options). They have their own service description repositories. 1. advertise service provider engine
advertising e-service 1. advertise 2. find service provider service consumer engine engine
advertising e-service 3. engine location information 1. advertise 2. find service consumer service provider engine engine
advertising e-service 3. engine location information 1. advertise 2. find service provider service consumer 4. service access engine engine
advertising e-service 3. engine location information 1. advertise 2. find service provider service consumer 4. service access engine engine 5. service result
Where is E-speak a good fit in projects? • Dynamic discovery of services, based on attribute matching, in a set of growing services, either from one or many providers (openness to new services) • Establishing communities of use for a set of services • Mediation of access to services (access control) • Creating a trusted third party between pairs of unfamiliar parties (provider and consumer of service) • Comparing services against others • Composing services from other services • Monitoring of service use • Negotiation between services
A Network Object Model Programmer’s Viewpoint Utility/Community ESConnection ESConnection Service Consumer ESServiceElement. register() ESService from ESServiceFinder. find() Service Provider