Date post: | 26-Dec-2015 |
Category: |
Documents |
Upload: | piers-webb |
View: | 232 times |
Download: | 0 times |
Enhancing the “Wire”
SIF v2.5 Web Services and the Future Direction of SIF Infrastructure
Copyright SIF Association
Agenda SIF Infrastructure Today: The ZoneSIF Infrastructure Tomorrow: Web Services
Why it was time to move forwardTechnical Direction: Guiding Principals
SIF v2.5 FunctionalityNormative WS DependenciesCreation of a 2nd Reference Transport (SOAP)ZIS and Push Agent Service WSDLOn the wire message examples
What happens next Conclusions & Questions
SIF Infrastructure Today:A look under the hood
Copyright © SIF Association
Components Working Together
Network Account
H.R. &Finance
Data Analysis
& Reporting
Transportation
Library Automation
Student Information Services
GradeBook
FoodServices
– Zone Integration Server (ZIS)
– SIF Agents
– Applications
– SIF Data Objects
“SIF Zone”
What is a SIF Zone?• A dedicated “Message Broker-Centric” intranet for
message exchange between two or more Agents.– Each Agent “fronts” for a different K-12 Application– The Zone Message Broker is the ZIS– All Agent Messages are sent to the ZIS and routed to their
appropriate Destination(s)– Request / Response and Publish / Subscribe exchanges
• A collection of certified interoperable components– Any SIF-Certified ZIS on any platform is compatible with any
SIF-Certified Agent on any platform.– Certification is for interoperability …not “correctness”
What is a SIF Zone? (Con’t)• An Agent between SIF Application and ZIS
– Wraps SIF Transport Protocol details– Asynchronous input Queue in Synchronous Method
Calls– Handles Initial Application Registration to ZIS– Handles Event Subscriptions on ZIS “Topics”
• Per Object Type Application Mapping– Requester / Subscriber / Provider / CUD Event
Publisher• Applications independent of ZIS
• Need not know ZIS is there
ZIS Functionality: Summary• Quality of Service
– Guaranteed once only Message Delivery– Content Based Routing– Publish / Subscribe support
• Security– Application Authentication– Application level Authorization– Element Level Security (XML Filtering) and encryption
• Application Registry – Auto-Discovery of Object Providers
• Zone Management (monitoring & control)• Certification Program for Compliance
ZIS
SIF v2.x Zone: Interoperability
Agent Agent
Client Application
Object Provider
Application
Zone Integration
ServerSIF SIF
DB
Agent
Object Provider
ApplicationDB
SIF
Why it was time for SIF to move forward
SIF’s Guiding Principles for Technology Evolution
• Backwards compatibility should never be broken.– Any technology roadmap must provide a reasonable
transition from where things are today– Extend & Embrace not Rip & Replace
• Increasing “Out of the Box” interoperability is at least as important as adding new functionality.– Leverage Service Encapsulation– Completely define any normative dependencies (what
standard, how used)
• Don’t duplicate existing external technology – adopt it
Advantages of WS support• Web service technology: Advanced and ubiquitous
– Off the shelf connectability at the infrastructure level– Open source and commercial development tool support– Developer expertise far more widespread
• External Applications can leverage Web Services– Registries & Service Governance (UDDI)– Diagnostic support (CIM and WS-Management)– ESB Security Managers and Work Flow Generators
• Powerful story to external communities– “SOA-based” SEAs and large Districts– Previously non-participating K-12 vendors– Developers in allied domains (Higher Ed, Health Care)
• Infrastructure implications:– SIF Data Model schemas accessible through standard
web service technologies (SOAP / WSDL / …)
• Both Backwards and Forwards Compatibility– Any new SIF Object Provider writable as a standard Web
Service using a publically available toolset– All SIF Data accessible as a Web Service – even by “pure”
registered Web Clients outside the Zone.
• ZIS functionality still available– Guaranteed Delivery, Content Based Routing, Auto
Discovery, Data Privacy and Data Security– Web Service Existing Agent / App
The Web Service-enabled Zone
Planning out the Road Ahead
1. Added second reference transport (SOAP)– ZIS is the bridge to HTTP/S
2. Wrapped ZIS functionality in WSDL Interface– The ZIS is the implementation of the Zone Web Service– Define Web Service Framework
• SOAP / WSDL Versions & options• Other WS -* standards and options (WS-Addressing, BP 1.2)
3. Wrapped Push Agents functionality in WSDL– Write any SIF Application as a “limited” Web Service – Support identical interface (Event, Request, Response)
SIF v2.5 with Web Services (March)
A. SOAP as an Optional SIF Transport
Agent Agent
Client Application Object
Provider Application
Zone Integration
Server
SIF SIF
DB
AgentObject
Provider Application
DBSIF
SOAP HTTPS
HTTPS
B. The ZIS viewed as a Series of SIF Infrastructure Web Services
SOAP overHTTP/S
Registration & Subscribe
Service WSDL
Zone Integration
Server
Request & Publish
Service WSDL
SIF Web Application
SIF Agent
Existing SIF Application
SIF
SIF
HTTP/S
SOAP overHTTP/S
SIF
• Advantages: Minor– A necessary 1st step:– Agent writers may use more generic tools
• Changes / Risks:– ZIS must “bridge” between SOAP and existing SIF Infra– ZIS Certification testing extended
• Migration Path– Existing Agents and applications are unaffected
• Issues / Implications / Limitations– SOAP (pick one version) or REST but not both– May require prior separation of the data model from the
existing SIF infrastructure
SOAP as an Optional Transport
SIF Web Application• Communicates through SOAP / WSDL
– SIF-Defined versions, options error conventions– Web technologies provide a 2nd Reference Transport
• Invokes SIF Infrastructure Service WSDL APIs– Parallel existing SIF Agent invocations of ZIS– Separate “Push” & “Pull” WSDL variants supported– ZIS becomes “implementation detail”
• Can be SIF Client, Object Provider, or both– Complete functionality of existing SIF Agent /
Application pairs
The Core SIF Infrastructure Services
Registration & Subscribe
Service WSDL
Zone Integration
Server
Request & Publish
Service WSDL
SIF Web Application
Register (Who am I?)
The Core SIF Infrastructure Services
Registration & Subscribe
Service WSDL
Zone Integration
Server
Request & Publish
Service WSDL
SIF Web Application
Subscribe & Provide (What do I want to do?)
Callback WSDL
Endpoint( )
The Core SIF Infrastructure Services
Registration & Subscribe
Service WSDL
Zone Integration
Server
Request & Publish
Service WSDL
SIF Web Subscriber
Object EventsWSDL
Endpoint
SIF Agent
SIF Publishing Application
SIF
The Core SIF Infrastructure Services
Registration & Subscribe
Service WSDL
Zone Integration
Server
Request & Publish
Service WSDL
SIF Object Provider
Web Service
Object Read RequestsWSDL
EndpointObject Data Response
SIF Agent
SIF Client
SIF
The Core SIF Infrastructure Services
Registration & Subscribe
Service WSDL
Zone Integration
Server
Request & Publish
Service WSDL
SIF Web Publisher
Publish “Object Change” Event
WSDL Endpoint
SIF Agent
SIF Subscriber
SIF
The Core SIF Infrastructure Services
Registration & Subscribe
Service WSDL
Zone Integration
Server
Request & Publish
Service WSDL
SIF Web Client Request
Object Data
Object Data Response
WSDL Endpoint
SIF Agent
SIF Object Provider
SIF
Web Service Alternative to Agent/Application
Registration & Subscribe
Service WSDL
Zone Integration
Server
Request & Publish
Service WSDL
SIF Object Provider or
other SIF Application (written as pure Web
Application)
Register & Subscribe & Responses
Object Events & Requests
Request s & Event Publish
Responses
WSDL Endpoint
SIF Agent
Existing SIF Application
SIF
• Any new SIF Object Provider writable as a standard Web Service using a publically available toolset– Appeal to External Educational Communities that must soon
interface with SIF Zones but have not yet standardized on how (LMS)
• All SIF Data accessible as a Web Service – even by “pure” registered Web Clients outside the Zone.• Appeal to non-Educational Vendor Products or End User
Communities that will never be integrated into the SIF Zone
• ZIS functionality still available– Guaranteed Delivery, Content Based Routing, Auto
Discovery– Web Service Existing Agent / App
The Web Service-enabled Zone
• Migration Path– Existing Agents and applications are still unaffected– Complete interoperability with new Web Services
• Issues / Implications / Limitations– New Object Provider Services support same CRUD API– The ZIS is still at the center of every message exchange– The SIF object hierarchy is still visible – The registration and subscribe logic is still required– Error resolution must make sense in WS terms– Impact to Certification Test Harness
The Web Service-enabled Zone(Con’t)
Physical Topology: Zone can be a Service accessible via ESB
SOAP
Registration & Subscribe
Service WSDL
Request & Publish Service
WSDL
SIF Web Application
SIF Agent
Existing SIF Application
SIF V3.0 ZIS
SIF
ESB
SOAP SOAP
Other SIF Utility Web ServicesOnce the ZIS is hidden behind a Web Service
API wall or replaced altogether, additional SIF Infrastructure Web Services may be
supported
UDDI SIF Application Registry WS-Management / CIM-based Administration BAM-type Message Logging Complex Event Processing & Filtering
The devil is in the details
Web Service Functionality:Normative Dependencies
Component Choice Options
Transport SOAP 1.1 Document/Literal
Interface Language WSDL 1.1
Basic Profile BP 1.2 WS-Addressing
Security Transport Layer Security (TLS)
Underlying protocol: HTTPS 1.1
Mutual Authentication mode supported by X.509 Certificates
Structure of a SIF MessageHTTPS Transport SOAP Transport
SIF_Message
SIF_Response SIF_Header Header Sublements Packet control elements SIF_ObjectData (xs:choice) (Chosen Data Object Schema)
SOAP Envelope SOAP Header
WS-Addressing elements SIFHeader
Header Subelements Packet control elements SOAP Body
SIF_QueryResponse (xs:any) (Any Data Object Schema)
The SIFHeader contains those elements necessary to successfully process and route the SIF_QueryResponse message being conveyed
The SIF_QueryResponse schema is independent of the actual SIF data object or SIF data elements being conveyed.
SIF XML Namespaces
Transport (ex: SIF_Header) || || (Dependency)
V
Messaging (ex: SIF_Request) || || (Dependency)
V
-----------------------------------
Data Model (v2.5 US, UK, AU)(Ex: StudentPersonal)
Transport(SOAP Header)
Co-exist with WS-Addressing
Messaging(Top Child in SOAP Body)
Ex: SIF_Query
Data Model(Any locale, any version)
SIF v2.5 Web ServicesSIF v2.X HTTP/S
SOAP Header: WS-Addressing
<soap:Envelope xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope”> <soap:Header xmlns:wsa=”http://www.w3.org/2005/08/addressing”> <wsa:To>https://AcmeHost:443/StudentAdmin</wsa:To> <wsa:From> <wsa:Address>https://AcmeHost:443/ZoneControl</wsa:Address> </wsa:From> <wsa:MessageID>A3E90785EFDA330DACB00785EFDA330E</wsa:MessageID> <wsa:Action> http://www.sifassociation.org/contract/SifZone/2.x/ PushAgent-S11/PostEvent </wsa:Action>
<wsa:ReplyTo> <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address> </wsa:ReplyTo>
<wsa:FaultTo> <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address> </wsa:FaultTo>
SOAP Header: SIF Transport<SIFHeader xmlns=”http://www.sifassociation.org/transport/soap/2.x” soap:mustUnderstand=”1”>
<TransportVersion>2.5</TransportVersion>
<DataModel> http://www.sifinfo.org/infrastructure/2.x </DataModel>
<DataModelVersion>2.5</DataModelVersion>
<ZoneId>sif:zone:AcmeMiddleSchool1.CoyoteDistrict.Arizona.US</ZoneId>
<MsgId> A3E90785EFDA330DACB00785EFDA330E</MsgId>
<Security> <SecureChannel>
<AuthenticationLevel>3</AuthenticationLevel>
<EncryptionLevel>4</EncryptionLevel>
</SecureChannel> </Security>
<Timestamp>2010-10-24T15:58:33.984Z</Timestamp>
<SourceId>AcmeZIS</SourceId>
<DestinationId>StudentAdmin</DestinationId>
<EventAction>Change</EventAction>
<TopicName>StudentPersonal</TopicName>
</SIF_Header>
SOAP Body: SIF_Event<soap:Body> <SIF_Event xmlns=”http://www.sifassociation.org/messages/2.x”>
<StudentPersonal xmlns=” http://www.sifinfo.org/infrastructure/2.x”
RefId="D3E34B359D75101A8C3D00AA001A1652">
<PhoneNumberList>
<PhoneNumber Type="0096">
<Number>(312) 555-1234</Number>
</PhoneNumber>
</PhoneNumberList>
</StudentPersonal>
</SIF_Event>
</soap:Body>
ZIS Service Operation Groups
Group Type Char Operations (omitting the leading “SIF_” prefix)
PushSWA Data Model
O Event, Query, ExtendedQuery, QueryResults, ExtendedQueryResults CancelRequests
PushSWA Zone Service
O ServiceNotify, ServiceInput, ServiceOutput, CancelServiceInputs
PushSWA System Control
M Ping, Sleep, Wakeup,
Takeaways?
Recent Steps: Near Term Enablers(from last Annual Meeting)
• Make infrastructure extensions necessary to support Zone Web Services (Completed in V2.4)
• Support SOAP as alternative Zone transport layer (Completed in v2.5)
• Encapsulate ZIS content routing and notification functionality in first two SIF Utility Web Services (Completed in v2.5)
• Enable any SIF agent/application to be written as a SIF Web Application using standard toolsets, by accessing these Services. (Completed in v2.5)
WS Roadmap Milestones - Medium
• Reduce special Zone Management & Monitoring by supporting widely available protocols– Encapsulate ZIS Application Registration data in standard
UDDI Registry Service– Encapsulate ZIS diagnostic and ACL data in Common
Information Model (CIM) for a Zone– Use WS-Management + CIM to provide standard Zone
Management and Diagnostic Service
• Add additional Web Services (WSDL)– Logging– 3 Zone Service
SIF v2.5 Web Services Reviewer Release Kit: Ask now
File Name ContentsReadThisFirst This file
Appendix Q SIF v2.5 Specification Appendix describing web services capabilities
ZIS WSDL defining ZIS Web Service Operations
PushAgent WSDL defining PushAgent Web Service Operations
Common Common WSDL defining complete set of SIF supported messages
SIF_Transport XSDs defining the SIF Transport (in SOAP Header)
SIF_Message XSDs defining the SIF Messages (in SOAP Body)
xml Industry standard file describing the XML namespace (needed by some tools)
Existing SIF Data Model (not in kit) Currently chose any schema version from the choice at:http://specification.sifinfo.org/Implementation/2.4/index.html
Questions?
EduGuy
www.sifassociation.org