Project Stonehenge for.NET Ben Dewey twentysix New York Apache Stonehenge Committer
What is Project Stonehenge? Stonehenge is sponsored by the Apache Software Foundation, a leader in the Open Source community, and was created to build reference applications that demonstrate the use of WS-* Standards in real-world project implementations
Goals Illustrate and develop best practices for interoperable applications that communicate via distributed protocols Demonstrate interoperability between platforms Provide sample code upon which SOA developers can build their own applications Potentially identify interoperability issues and their solutions Build confidence in cross-platform deployment of SOA technologies.
My Role (since April 2009) Created.NET Install Documentation Redesigned.NET StockTrader Client Create Interop Guide Provided various other code and wiki updates Release Manager for M2
Terms SOA – Service-Oriented Architecture WS-* – Web Service Standards W3C- World Wide Web Consortium OASIS - Organization for the Advancement of Structured Information Standards WCF – Windows Communication Foundation AXIS2-Java/Metro – Java Web Services Frameworks AXIS2-C (PHP) – C Web Services Framework
.NET Web Services(WS) Background Past – ASP.NET Web Services (ASMX) – WSE (Web Service Extensions) Present – WCF (“Indigo”) Future – Distributed Application Server (“Dublin”) – MSE (Managed Services Engine)
Example SOAP Message SubmitOrder buy open T23:07: : T00:00: s:3
WS-* Specifications WS-Messaging – SOAP (Packet, Envelope with a Header and a Body) – WS-Addressing (To, From, Action) WS-MetaData Exchange – WS-Policy – (Envelope Requirements) – WSDL – Web Services Definition Language (Policies, Types, Binding, Service) WS-Security – WS-Signature – (Prevents Tampering) – WS-Encryption – (Prevents Snooping) – WS-Trust/Federation – (Authenticates and Provides Roles) WS-ReliableMessaging – Transactions
Example SOAP Message (WS-Sec Header) SubmitOrder
Example SOAP Message (WS-Sec Element) … gH27sFs3Ay…fyHIuFEZg= … Ct2hjN…Np7qpZLXYL5
Example SOAP Message (WS-Sec Body) <e:EncryptedData Id="_4" Type=" xmlns:e=" FvifwljMEc…NUs4RvaG++Ww==
Example SOAP Message (WS-Sec) SubmitOrder … gH27sFs3Ay…fyHIuFEZg= … Ct2hjN…Np7qpZLXYL5 FvifwljMEc…NUs4RvaG++Ww==
Apache Stonehenge Project
Apache Software Foundation Apache Group “Web Server” Meritocracy – Committer Status Legal protection Mailing list correspondence Individualism – Nobody has any affiliations within Apache
Stonehenge Timeline Initial phase – Proposal submitted by WSO2, announced at ApacheCon US 2008 – Microsoft joined as a contributor with other vendors IONA, RedHat/Jboss – Stonehenge was accepted as a new Apache Incubator project on Nov 18, 2008Apache Incubator WSO2 contributed two StockTrader implementations with AXIS2 – A StockTrader client application in WSF(Axis2/C)/PHP,WSF(Axis2/C)/PHP – Two service implementations running on WSF/PHP, and WSAS (Axis2/Java).WSF/PHPWSASAxis2/Java Microsoft contributed the StockTrader implementation in WCF for.NET First “interop” lab published on May 2009 – Sun joined with Microsoft for a keynote at JavaOne to announce their contribution to the project on June 2009 – Sun contributes service implementations to the StockTrader application in Metro(Java) running on Glassfish.
Apache Stonehenge StockTrader Application “The flagship application”
StockTrader Application Overview Stock trading scenario application – Trader Client – Business Service - login/list/quote/buy/sell operations – Order Processing Service - buy/sell operations.NET Client PHP Client
StockTrader Interop Lab.NET, Java, PHP Interoperability scenarios using the contributions from WSO2 and Microsoft: – Java – PHP –.NET Interoperating different layers and formats: – Basic Web Services standards (SOAP) – SOAP with WS-Security (Encryption and Signing) Installation/configuration guides published on the Stonehenge wiki: – Blog post: –
StockTrader Interop Lab - Diagram StockTrader.NET ASP.NET-WCF StockTrader PHP PHP-WSF(Axis2/C) StockTrader Java WSAS-Axis2/Java Web UI Data Access Web UI Business Services Order Processing Data Access Database Business Services Order Processing Data Access Business Services.NETPHPWSAS Web Service calls: Order Processing
Apache Stonehenge StockTrader Application Interoperability Demonstration
Scenario 1 StockTrader.NET ASP.NET-WCF StockTrader PHP PHP-WSF(Axis2/C) StockTrader Java WSAS-Axis2/Java Web UI Business Services Order Processing Business Services Order Processing Business Services Order Processing
Scenario 2 StockTrader.NET ASP.NET-WCF StockTrader PHP PHP-WSF(Axis2/C) StockTrader Java WSAS-Axis2/Java Web UI Business Services Order Processing Business Services Order Processing Business Services Order Processing
Scenario 3 StockTrader.NET ASP.NET-WCF StockTrader PHP PHP-WSF(Axis2/C) StockTrader Java WSAS-Axis2/Java Web UI Business Services Order Processing Business Services Order Processing Business Services Order Processing
Scenario 4 StockTrader.NET ASP.NET-WCF StockTrader PHP PHP-WSF(Axis2/C) StockTrader Java WSAS-Axis2/Java Web UI Business Services Order Processing Business Services Order Processing Business Services Order Processing
Scenario 5 StockTrader.NET ASP.NET-WCF StockTrader PHP PHP-WSF(Axis2/C) StockTrader Java WSAS-Axis2/Java Web UI Business Services Order Processing Business Services Order Processing Business Services Order Processing
Scenario 6 StockTrader.NET ASP.NET-WCF StockTrader PHP PHP-WSF(Axis2/C) StockTrader Java WSAS-Axis2/Java Web UI Order Processing Business Services Order Processing Business Services Order Processing Business Services
Scenario 7 StockTrader.NET ASP.NET-WCF StockTrader PHP PHP-WSF(Axis2/C) StockTrader Java WSAS-Axis2/Java Web UI Business Services Order Processing Business Services Order Processing Business Services Order Processing
Future of Stonehenge StockTrader – Metro – Federated Identity – REST – AMQP (Advanced Message Queuing Protocol) Whatever the community decides
Call to Action Visit the Apache Stonehenge Website – Join the Mailing List Follow along, join the discussion Download the code Run the interoperability labs Give us feedback
Videos WSO2 and Microsoft demonstrate interoperability at TechEd IT Pro 2008 – us&vid=7019fbb8-4d12-4f56-93a1-a39b9d2ccb00 us&vid=7019fbb8-4d12-4f56-93a1-a39b9d2ccb00 Sun and Microsoft Demonstrate Metro contribution to Project Stonehenge at JavaOne in 2009 – &autoStart=on &autoStart=on
Links Apache Stonehenge Homepage – Bug Tracking, Wiki, Source Code, etc – Stonehenge Wiki, Installation Guides, Labs – Ben Dewey’s Blog Getting Started Guide – Kamaljit Bath’s Blog (Principal Program Manager, Microsoft) – ConnectedShow Podcast (Dimitry Lyalin & Peter Laudati) – Apache Foundation: Getting Involved –
Questions