Presentation is loading. Please wait.

Presentation is loading. Please wait.

OOI CI LCA REVIEW August 2010 Ocean Observatories Initiative OOI Cyberinfrastructure Common Operating Infrastructure Subsystem Michael Meisinger, Brian.

Similar presentations


Presentation on theme: "OOI CI LCA REVIEW August 2010 Ocean Observatories Initiative OOI Cyberinfrastructure Common Operating Infrastructure Subsystem Michael Meisinger, Brian."— Presentation transcript:

1 OOI CI LCA REVIEW August 2010 Ocean Observatories Initiative OOI Cyberinfrastructure Common Operating Infrastructure Subsystem Michael Meisinger, Brian Fox, Stephen Pasco, Dorian Raymer, Munindar Singh, Kartik Tadanki Life Cycle Architecture Review La Jolla, CA

2 OOI CI LCA REVIEW August 2010 2 Agenda Subsystem Purpose Release 1 Product Description Use Case Overview Architectural Overview Status of Progress by Service Key Achievements, Technology Challenges Emergent Risks

3 OOI CI LCA REVIEW August 2010 3 Common Operating Infrastructure: Purpose Provide the integration & communication environment for all the other subsystem services and interface processes

4 OOI CI LCA REVIEW August 2010 4 User Interfaces Core Infrastructure Services COI Purpose: Infrastructure Common Operating Infrastructure Data Distribution and Preservation Infrastructure Common Execution Infrastructure Data Management Application Level Services Externalization and Integration Instrument Agents External Observatory Integration Sensing & Acquisition

5 OOI CI LCA REVIEW August 2010 5 COI R1 Product Description Use Case Overview IDTitleDescription UC.R1.01Hello UserUser gets an ID and logs in UC.R1.05Synchronize State DataSynchronize state in distributed data store UC.R1.10Define InteractionDescribe pattern of interaction between actors UC.R1.11Define New ServiceAdd new service to system capabilities UC.R1.14Use Service AnywhereMessages go to services wherever they are UC.R1.31Assert Access PolicyDefine access policy for given resource UC.R1.32Conduct NegotiationNegotiate agreement (or not) between agents UC.R1.33Enroll in an OrgEnter as a member into an Organization (Org) UC.R1.34Share an Org ResourceCollaborate with Org member offering a resource UC.R1.35 Share Affiliated Orgs' Resources Orgs form a contract to allow resource sharing UC.R1.36Create an OrgCreate an Org with defined characteristics Responsible For

6 OOI CI LCA REVIEW August 2010 6 COI R1 Product Description Use Case Overview IDTitleDescription UC.R1.06Distribute Data ProductData made available to many consumers UC.R1.07Subscribe to DataUser finds data, asks for update notifications UC.R1.09Discover ResourceUser searches for resources meeting criteria UC.R1.12Annotate DataInformation or description is added to resource UC.R1.15Put Services AnywhereAllocate services where need is greatest UC.R1.17Replicate ServiceConfigure service once, deploy many times UC.R1.18Command An InstrumentSend typical commands to specific instrument UC.R1.20Command A ResourceSend typical commands to specific resource UC.R1.24Version A ResourceResource is supplanted by changed version UC.R1.25Assure ReliabilityComputer fails, messages resent, work resumes UC.R1.26Virtualize EverythingVirtual processes embody all system services UC.R1.27Configure Access PageConfigure user’s web page that accesses ION UC.R1.28Operate SystemConfigure system and respond to requests UC.R1.29Monitor SystemAnticipate issues using monitoring tools UC.R1.30Troubleshoot SystemDiagnose issues using logs, feeds, tools Supports

7 OOI CI LCA REVIEW August 2010 7 COI Development Scope of Release 1 Provide a “capability container” for service and agent integration in Python and Java Secure reliable asynchronous messaging Distributed state management: “persistence layer” Resource registration Governed resource sharing and access based on flexible identity and policy management Basic user interface platform

8 OOI CI LCA REVIEW August 2010 8 Architectural Overview

9 OOI CI LCA REVIEW August 2010 9 Capability Container and Subsystems

10 OOI CI LCA REVIEW August 2010 10 COI Services and Components Service Framework Resource Management Presentation Framework Capability Container Exchange Identity Management Governance Framework Distributed State Managemt 2940-00001 OV2 CI

11 OOI CI LCA REVIEW August 2010 11 COI Technology List Capability Container Python, Twisted, txAMQP Java, Spring Open Telecom Platform (OTP) architecture FIPA ACL Message Format (standard headers) in Common Format Messaging RabbitMQ AMQP broker (with federation extensions) Google Protocol Buffers Policy and Governance Jess Rules engine Identity Management CILogon Internet2 Security infrastructure Distributed State Management Cassandra Key Value Store GIT compatible Content Addressable Storage (CAS) architecture Presentation Framework Grails platform (Java/Groovy)

12 OOI CI LCA REVIEW August 2010 12 COI R1 Use Case Status IDTitleDescription UC.R1.11Define New ServiceAdd new service to system capabilities UC.R1.14Use Service AnywhereMessages go to services wherever they are UC.R1.01Hello UserUser gets an ID and logs in UC.R1.05Synchronize State DataSynchronize state in distributed data store UC.R1.10Define InteractionDescribe pattern of interaction between actors UC.R1.31Assert Access PolicyDefine access policy for given resource UC.R1.32Conduct NegotiationNegotiate agreement (or not) between agents UC.R1.33Enroll in an OrgEnter as a member into an Organization (Org) UC.R1.34Share an Org ResourceCollaborate with Org member offering a resource UC.R1.35 Share Affiliated Orgs' Resources Orgs form a contract to allow resource sharing UC.R1.36Create an OrgCreate an Org with defined characteristics

13 OOI CI LCA REVIEW August 2010 13 COI Status by Service / Component Capability Container Messaging, Common Message Format Service Framework Distributed State Management, Common Object Model Resource Management Security and Identity Management Governance Framework Presentation Framework

14 OOI CI LCA REVIEW August 2010 14 Capability Container, Exchange, Service Framework Relevant Use Cases: UC.R1.11 Define New Service UC.R1.14 Use Service Anywhere Support: All other use cases

15 OOI CI LCA REVIEW August 2010 15 Capability Container and Messaging

16 OOI CI LCA REVIEW August 2010 16 Python Capability Container Technologies Python 2.5 Twisted Infrastructure Start the container with arguments “Spawn” a set of processes Define and start a “process” (from a Python module) Attach a process to messaging to send and receive Process life cycle management (parent, init, shutdown) CC Agent responsible for the container management Heartbeat monitoring, integration with Execution infrastructure

17 OOI CI LCA REVIEW August 2010 17 Java Capability Container Technologies Java 1.6 OSGi service container AMQP messaging library Infrastructure Core library with OOI messaging format and data object serialization encoding/decoding Spring MVC container for defining services as bundles with full OSGi management capability Full interoperability Java-Python

18 OOI CI LCA REVIEW August 2010 18 Exchange: Secure Reliable Messaging Capability (Service) Capability (Service) Agent (Process) Agent (Process) UI Client (Process)

19 OOI CI LCA REVIEW August 2010 19 AMQP Messaging

20 OOI CI LCA REVIEW August 2010 20 Capability Container: Processes and Messaging

21 OOI CI LCA REVIEW August 2010 21 Common Message Format All Exchange messages have common headers Based on ACL FIPA message structure spec Identifies Interaction participants Message operation Message encoding, structure Interaction and conversation type Identity management and security headers Encoding Google Protocol Buffers Message handling in container goes through interceptors After a service sends a message, before it receives a message Message signing and validation Policy enforcement Governance tracking

22 OOI CI LCA REVIEW August 2010 22 Example Message AMQP Headers: Method(name=deliver, id=60): False, 'magnet.topic', 'mm.instrument_management'), children=[], properties={'content type': 'application/msgpack', 'content encoding': 'binary'}, delivery_info={}, delivery_tag=6, headers=None, reply_to=None, OOI Headers: accept-encoding='application/ion-jsond', conv- id='#22', conv-seq=1, encoding='application/ion-jsond', op='start_instrument_agent', receiver='mm.instrument_management', reply-to='10a79b88-d2f0- 4d3d-9092-87bb2e7fb3bb.1', sender='10a79b88-d2f0-4d3d-9092- 87bb2e7fb3bb.1', Content: instrumentID='602d286b-dc47-4703-8f92-b37c1b02ba95', model='SBE49'

23 OOI CI LCA REVIEW August 2010 23 Exchange Implementation Status Technologies RabbitMQ message broker (supporting AMQP 0.9.1) Federated RabbitMQ broker prototype for Exchange Spaces Integration Python and Java “ioncore” messaging libraries, part of the capability containers Naming abstraction for processes doing messaging Unique location-independent identifiers for processes, additional “known” messaging names for services Direct, worker queue and fanout messaging pattern

24 OOI CI LCA REVIEW August 2010 24 Distributed State Management Relevant Use Cases: UC.R1.05 Synchronize State Data Supports: UC.R1.14 Use Service Anywhere All other use cases

25 OOI CI LCA REVIEW August 2010 25 Distributed State Management Technologies Backend: Cassandra Key-Value Store Object repository: GIT architecture Integration (see DM presentation) Storage Persistence Model: Content Addressable Store Structured object abstraction Structure definition and identification Transport with flexible encoding Persistence

26 OOI CI LCA REVIEW August 2010 26 Distributed State: Content Addressable Store

27 OOI CI LCA REVIEW August 2010 27 Resource Management Relevant Use Cases: No direct use case Support: All use cases

28 OOI CI LCA REVIEW August 2010 28 CI Resources “CI governed” Resource: Resource Structured Data Object Standard OOI metadata attributes Resource specific attributes References to other resources Categories Information resource Stateful resource Taskable resource

29 OOI CI LCA REVIEW August 2010 29 Resource Management Services Resource Agent Resource Registry Resource (external) 2940-00005 OV2 COI

30 OOI CI LCA REVIEW August 2010 30 Resource Registry Service Operations Operations register_resource (Resource description) get_resource (Resource Reference) get_resource_by_id (ID string) find_resource (Resource query description) Data Objects Resource Instance – filled out typed attributes or default Resource Reference – to a specific version or the most recent Resource Query – filter on resource attribute values (or regex) Resource Description – resource type

31 OOI CI LCA REVIEW August 2010 31 Security and Identity Management Relevant Use Cases: UC.R1.01 Hello User

32 OOI CI LCA REVIEW August 2010 32 IdM Architecture Overview Technologies InCommon, IdM federation of choice for U.S. higher ed. today. CILogon, builds on InCommon to support thick clients. Security messaging leverages XML Security Messaging

33 OOI CI LCA REVIEW August 2010 33 IdM Secure Messaging Overview

34 OOI CI LCA REVIEW August 2010 34 Federated Facility and Governance Relevant Use Cases UC.R1.31Assert Access Policy UC.R1.32Conduct Negotiation UC.R1.33Enroll in an Org UC.R1.34Share an Org Resource UC.R1.35Share Affiliated Orgs' Resources UC.R1.36Create an Org

35 OOI CI LCA REVIEW August 2010 35 Governance: Resource Agents Resource Agent Resource Agent Proxy Agent Capability Container Capability Container Capability Container Capability Container

36 OOI CI LCA REVIEW August 2010 36 Governance: Interaction Management Technologies Graffle: Language for specifying interactions Example: import ExternalIdentityCredential; import IdentityCredential as Credential; protocol RegisterUser { role UnregisteredEndUser:OOIUser as User; role IntegratedObservatoryOperator:OOIOperator as Operator; pre { User.registered == false } ecred:ExternalIdentityCredental from User to Operator; choice from Operator to User { { externalSaysValid(ecred) } } ok(): { cred:Credential { cred==generateInternalCredential(ecred) } from Operator to User; post { User.registered == true } /// assertion [ Operator.UIR.add(cred, generateProfile(cred)) ] // action } ko() { not externalSaysValid(ecred) } : { ; } }

37 OOI CI LCA REVIEW August 2010 37 Presentation Framework Relevant Use Cases UC.R1.01 Hello User

38 OOI CI LCA REVIEW August 2010 38 Presentation Framework Implementation Technologies Engineering UIs and Provisional R1 UIs Grails (Groovy on Rails) 1.3.3 Java platform 1.6 Integration Automatic build and deployment Core messaging library “ioncore” started as service Establishes a connection to the message broker Calls services, interacts with Python side Model-View-Controller (MVC) UI design

39 OOI CI LCA REVIEW August 2010 Presentation Framework Screenshot 39

40 OOI CI LCA REVIEW August 2010 40 Key Achievements, Technical Challenges Key Achievements Robust messaging: AMQP / RabbitMQ Definition of a process abstraction Distributed data store and structured object transport Resource Registries Presentation UI Framework Python-Java interoperability Technical Challenges Cassandra Key-Value Store Stability Identity Management technology complexity Rules engines (Jess, Pyke) for Governance rules Scribble: Maturity of the language for interaction specification of all core interactions; application for interaction monitoring

41 OOI CI LCA REVIEW August 2010 Risk Assessment - COI Use Cases COI IDNameDescirption Risk of Availability Level of Maturity Target Use UC.R1.1Hello UserUser gets an ID and logs inLowExpectedUser UC.R1.14Use Service AnywhereMessages go to services wherever they areLowExpectedDeveloper UC.R1.11Define New ServiceAdd new service to system capabilitiesMediumExpectedDeveloper UC.R1.5Synchronize State DataSynchronize state in distributed data storeMediumNecessaryTest UC.R1.29Monitor SystemAnticipate issues using monitoring toolsMediumNecessaryOperator UC.R1.31Assess Access PolicyDefine access policy for a given resourceMediumNecessaryOperator UC.R1.33Enroll in an OrgEnter as a member into an Organization (Org)MediumNecessaryTest UC.R1.36Create an Org Create an Organization (Org) with defined characteristicsMediumNecessaryDeveloper UC.R1.10Define InteractionDescribe pattern of interaction between actorsHighDiminishedTest UC.R1.32Conduct NegotiationNegotiate agreement (or not) between agentsHighDiminishedTest UC.R1.34Share an Org ResourceColloborate with Org member offering a resourceHighDiminishedTest UC.R1.35 Share Affiliated Orgs' ResourcesOrgs form a contract to allow resource sharingHighDiminishedTest

42 OOI CI LCA REVIEW August 2010 Risk Assessment - COI Services COI Name Risk of Availability Level of MaturityTarget Use CC: Presentation FrameworkLowExpectedOperator Resource Registry and CatalogLowNecessaryUser CC: Service FrameworkMediumExpectedDeveloper CC: Capability ContainerMediumExpectedDeveloper CC: Exchange, MessagingMediumExpectedDeveloper CC: Distributed State ManagementMediumNecessaryDeveloper Identity & Policy ManagementHighNecessaryDeveloper Federated Facility (Virtual Organization)HighDiminishedTest

43 OOI CI LCA REVIEW August 2010 43 Thanks ! Questions ?

44 OOI CI LCA REVIEW August 2010 44 Capability Container Components (1)

45 OOI CI LCA REVIEW August 2010 45 Capability Container Components (2)

46 OOI CI LCA REVIEW August 2010 46 Resource Agent Services

47 OOI CI LCA REVIEW August 2010 47 Policy and Governance Services

48 OOI CI LCA REVIEW August 2010 48 Exchange Space Exchange Space is comprised of –Distributed Application Facility (DAF) –Distributed IPC Facility (DIF)

49 OOI CI LCA REVIEW August 2010 49 Back-End Infrastructure

50 OOI CI LCA REVIEW August 2010 50 The “Exchange” Applications communicate through Exchange Spaces Exchange Spaces are namespaces of “communicators” Applications need to enroll in Exchange Spaces Governance applies within Exchange Spaces

51 OOI CI LCA REVIEW August 2010 51 Exchange Space and Points Exchange Points are the message routing and queuing resources of Exchange Spaces Communicators play the role of Producer, Consumer, and Distributer (Broker)

52 OOI CI LCA REVIEW August 2010 52 Messaging Service Interfaces

53 OOI CI LCA REVIEW August 2010 53 Risk Mitigation Development Out of the box: RabbitMQ AMQP message broker Python: flexible and powerful applications Twisted: distributed application framework txAMQP: messaging library Integration Message abstraction for services Intercepting message handler (in and out) Policy and governance integration (via agents) Development console

54 OOI CI LCA REVIEW August 2010 54 Enrolling in an Exchange Space 2940-00061 OV6 COI

55 OOI CI LCA REVIEW August 2010 55 Send a message 2940-00063 OV6 COI

56 OOI CI LCA REVIEW August 2010 56 Receive a message 2940-00062 OV6 COI

57 OOI CI LCA REVIEW August 2010 57 Plan for Construction End-to end integration with all subsystems Separation the COI "ION-Core" from other COI services and release as module Stabilize core, container and service interfaces Apply IdM and policy enforcement throughout the system pervasively; integrate in capability container and leverage resource agents Define an initial facility and apply facility governance Provide a UI development platform for other subsystems Provide a unit test, integration test and operational execution platform with scalability test harness Build out the Java capability container R1C1. Full software integration and refactoring for production release R1C2. Functional completeness and end-to-end integration with subsystems R1C3. Robustness and governance

58 OOI CI LCA REVIEW August 2010 58 Messaging Abstraction Capability Container Capability Container Capability Container Send Message From: “name2” To: “name4” In: Exchg-Space1 Action: “invoke-service”


Download ppt "OOI CI LCA REVIEW August 2010 Ocean Observatories Initiative OOI Cyberinfrastructure Common Operating Infrastructure Subsystem Michael Meisinger, Brian."

Similar presentations


Ads by Google