Cross-platform interaction

789 views
653 views

Published on

This presentation ought to describe several popular cross-platform integration approaches

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
789
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
8
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • ПричиныКак достичь возможности
  • Integrating existing subsystemsExtending existing subsystems or applications
  • Finding a lot of developers using different languages and technologies is simpler then find a lot of developer using a single ones
  • There are three main programming paradigms:ImperativeDeclarativeFunctionalDon’t use C for programming GUIThink which subsystems will grow in future
  • Every language and p
  • PhysicalLogicalIntegration
  • PhysicalLogicalIntegration
  • Every language and p
  • Broadcast based message bus architecture
  • Content based message bus architectureDifference between that two message busses in Broker implementation
  • In very gross terms, an AMQP server is analogous to an email server, with each exchange acting as amessage transfer agent, and each message queue as a mailbox. The bindings define the routing tables ineach transfer agent. Publishers send messages to individual transfer agents, which then route the messagesinto mailboxes. Consumers take messages from mailboxes.
  • The ROA is the name we give to REST when combined with our codified version of folklore. We came up with a new term because REST isn't an architecture: it's an architectural style, a way of judging architectures. It's not even tied to HTTP. Which is fine, but it means that there's a largely undefined path from RESTful principles, to principles of HTTP-based applications, to principles of web services in particular, to the design of specific services. The ROA is a way-station along that path: an alternate starting point that gets you more quickly to the design of specific services. The ROA is a concrete architecture specifically designed for web services, with a procedure you can follow to turn requirements into resources.
  • Each client can call its server methods passing arguments and receiving results.For programmers it seems like creating just local application object and call methods on it.
  • IDL – defines protocol with services, methods and types.Thrift generates classes for both .NET and JAVA technologies.Thrift generates proxy classes to communicate with RPC (client/server).Guarantees APIs consistency and strongly typing.
  • Each client can call its server methods passing arguments and receiving results.For programmers it seems like creating just local application object and call methods on it.
  • IDL – defines protocol with services, methods and types.Thrift generates classes for both .NET and JAVA technologies.Thrift generates proxy classes to communicate with RPC (client/server).Guarantees APIs consistency and strongly typing.
  • IDL – defines protocol with services, methods and types.Thrift generates classes for both .NET and JAVA technologies.Thrift generates proxy classes to communicate with RPC (client/server).Guarantees APIs consistency and strongly typing.
  • Cross-platform interaction

    1. 1. Cross language cooperation Oleksii Dukhno @ Lohika Systems
    2. 2. Agenda Why? • Origin, Problems, Advantages How? • Approaches, Frameworks Samples • .NET WPF + JAVA ICP • .NET + JAVA RPC Analysis • Pivot
    3. 3. Why? INTEGRATION •Process of bringing together the component subsystems into one system and ensuring that the subsystems function together as a system
    4. 4. Why? LACK OF HUMAN RESOURCES •Customer wants to have everything and right now •Start-ups •Huge projects
    5. 5. Why? DO RiGHT THINGS RiGHT •Mixing programming paradigms and polyglot programming •Don’t use screwdriver for nailing •Predicting a future
    6. 6. How? THE MAIN PRINCIPLES •Transformation •Persistence •Serialization
    7. 7. How? INTEGRATION TOPOLOGIES
    8. 8. How? INTEGRATION TOPOLOGIES
    9. 9. How? THE MAIN METHODS •Messages •Resources •Procedures
    10. 10. How? MESSAGES – MESSAGE BUS
    11. 11. How? MESSAGES – MESSAGE HUB
    12. 12. How? MESSAGES – SOLUTIONS AMQP Exchange • receives messages from publisher applications and routes these to "message queues", based on arbitrary criteria, usually message properties or content. Message queue • stores messages until they can be safely processed by a consuming client application (or multiple applications). Binding • defines the relationship between a message queue and an exchange and provides the message routing criteria
    13. 13. How? MESSAGES – SOLUTIONS AMQP RabbitMQ Windows Azure Service Bus Windows Service Bus
    14. 14. How? MESSAGES – PUBLISHER
    15. 15. How? MESSAGES – SUBSCRIBER
    16. 16. How? RESOURCES REST ROARESTFull
    17. 17. How? RESOURCES ORIGIN REST • Fielding, Roy Thomas (2000), Architectural Styles and the Design of Network-based Software Architectures ROA and RESTfull • Richardson, Leonard; Ruby, Sam (2007). RESTful Web Services
    18. 18. How? RESOURCES REST constraints: Client-Server •separation of concerns Stateless •Visibility, reliability and scalability Cache •improve network efficiency, but decrease reliability Uniform Interface •simplify architecture Layered system •Flexibility but degrades latency Code on demand •Reduces number of features to be implemented
    19. 19. How? RESOURCES ROA concepts: Resources Resources URIs Resources Representation Links between them (hypermedia)
    20. 20. How? PROCEDURES - RPC
    21. 21. How? RPC SOLUTIONS XML-RPC JSON-RPC SOAP Cisco – Etch ZeroC – ICE Google - ProtoBuf Apache - Hadoop Avro Facebook - Thrift
    22. 22. Pivot table Messages Resources Procedures Supportability 3 3 3 Scalability 3 2 1 Performance 2 1 3 Expressiveness 1 2 3 Network Throughput 3 2 3 Total: 12 11 13
    23. 23. APACHE THRIFT RPC ARCHITECTURE Transport • Http • TCP Sockets • Stream • Your own Protocol packer • JSON • BSON • Your own Data generator • Generators for: As3, C Glib, C++, C#, D, Delphi, Erlang, Go, Graphviz, Haskell, Java, Java Me, Javascript, Node.js, Objective-c, OCaml, Perl, PHP, Python, Ruby, Smalltalk
    24. 24. Apache Thrift IDL IDLs fileJAVA branch .NET branch JAVA classes .NET classes SVN Thrift generator Thrift generator MODULE 1 MODULE 2 externals
    25. 25. SAMPLES
    26. 26. JAVA -> .NET – CALCULATOR .NET Client CLR Machine 1 JAVA server JVM Machine 2 JETTY
    27. 27. JAVA -> .NET – a Business App .NET Client CLR Machine JAVA server JVM WPF MS SQL 1 2 4 3

    ×