SlideShare a Scribd company logo
Cross language
cooperation
Oleksii Dukhno @ Lohika Systems
Agenda
Why?
• Origin, Problems, Advantages
How?
• Approaches, Frameworks
Samples
• .NET WPF + JAVA ICP
• .NET + JAVA RPC
Analysis
• Pivot
Why?
INTEGRATION
•Process of bringing together the
component subsystems into one system and
ensuring that the subsystems function together as
a system
Why?
LACK OF HUMAN RESOURCES
•Customer wants to have everything and
right now
•Start-ups
•Huge projects
Why?
DO RiGHT THINGS RiGHT
•Mixing programming paradigms and
polyglot programming
•Don’t use screwdriver for nailing
•Predicting a future
How?
THE MAIN PRINCIPLES
•Transformation
•Persistence
•Serialization
How?
INTEGRATION TOPOLOGIES
How?
INTEGRATION TOPOLOGIES
How?
THE MAIN METHODS
•Messages
•Resources
•Procedures
How?
MESSAGES – MESSAGE BUS
How?
MESSAGES – MESSAGE HUB
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
How?
MESSAGES – SOLUTIONS
AMQP RabbitMQ
Windows Azure
Service Bus
Windows
Service Bus
How?
MESSAGES – PUBLISHER
How?
MESSAGES – SUBSCRIBER
How?
RESOURCES
REST
ROARESTFull
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
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
How?
RESOURCES
ROA concepts:
Resources
Resources URIs
Resources Representation
Links between them (hypermedia)
How?
PROCEDURES - RPC
How?
RPC SOLUTIONS
XML-RPC JSON-RPC SOAP
Cisco – Etch ZeroC – ICE
Google -
ProtoBuf
Apache -
Hadoop
Avro
Facebook -
Thrift
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
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
Apache Thrift IDL
IDLs
fileJAVA
branch
.NET
branch
JAVA
classes
.NET
classes
SVN
Thrift
generator
Thrift
generator
MODULE 1 MODULE 2
externals
SAMPLES
JAVA -> .NET – CALCULATOR
.NET
Client
CLR
Machine 1
JAVA
server
JVM
Machine 2
JETTY
JAVA -> .NET – a Business App
.NET
Client
CLR
Machine
JAVA
server
JVM
WPF
MS SQL
1 2
4 3

More Related Content

PPTX
Not your dad's h base new
PPTX
AMIS Beyond the Horizon - High density deployments using weblogic multitenancy
PPTX
RESTful Web Service using Swagger
PPTX
Drop acid
PPTX
Benefits of using Ruby on rails for Apps Development
KEY
Seda与Java并行编程点滴
PDF
SOA: What It Means To The Enterprise
PDF
Lecture #5 Introduction to rails
Not your dad's h base new
AMIS Beyond the Horizon - High density deployments using weblogic multitenancy
RESTful Web Service using Swagger
Drop acid
Benefits of using Ruby on rails for Apps Development
Seda与Java并行编程点滴
SOA: What It Means To The Enterprise
Lecture #5 Introduction to rails

What's hot (18)

PDF
Introduction to Rails by Evgeniy Hinyuk
PDF
Mashups For Soa
DOC
Resume
PDF
DbOps, DevOps and Ops
PDF
Road to database automation: database source control
PDF
johns-resume-FinalDraft
PDF
Introducing Hibernate OGM: porting JPA applications to NoSQL, Sanne Grinovero...
PDF
Road to database automation: database source control
PPSX
Olympya web-tools 2011
PPT
Client server
PDF
"Hook, Line and Syncer": Migrating existing websites within TERMINALFOUR Sit...
KEY
Infinspan: In-memory data grid meets NoSQL
PDF
Apache Jackrabbit
PDF
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
PPTX
CakePHP, cakePHP development Company
PPT
Java SE 7 New Features and Enhancements
PPTX
Scala and Spark are Ideal for Big Data
PDF
Road to database automation - Database source control
Introduction to Rails by Evgeniy Hinyuk
Mashups For Soa
Resume
DbOps, DevOps and Ops
Road to database automation: database source control
johns-resume-FinalDraft
Introducing Hibernate OGM: porting JPA applications to NoSQL, Sanne Grinovero...
Road to database automation: database source control
Olympya web-tools 2011
Client server
"Hook, Line and Syncer": Migrating existing websites within TERMINALFOUR Sit...
Infinspan: In-memory data grid meets NoSQL
Apache Jackrabbit
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
CakePHP, cakePHP development Company
Java SE 7 New Features and Enhancements
Scala and Spark are Ideal for Big Data
Road to database automation - Database source control
Ad

Similar to Cross-platform interaction (20)

PDF
Steve Vinoski Rest And Reuse And Serendipity
PPTX
Distributed system architecture
PDF
Rest Reuse And Serendipity
PDF
Cs556 section1
DOCX
Object and component based middleware for distributed system development
PDF
09-01-services-slides.pdf for educations
PDF
Microservices Practitioner Summit Jan '15 - Don't Build a Distributed Monolit...
PDF
Cloud Native API Design and Management
PPTX
Middle ware Technologies
PPTX
Middleware Technologies
PPT
Interoperability
PDF
[WSO2Con EU 2017] Building Next Generation Banking Middleware at ING: The Rol...
PDF
Dotnetfest forget about http
PPTX
Developing Distributed Web Applications, Where does REST fit in?
PDF
Microservices - opportunities, dilemmas and problems
PPT
Building scalable and language independent java services using apache thrift
PPT
Building scalable and language-independent Java services using Apache Thrift ...
PPTX
.NET Fest 2019. Irina Scurtu. Forget about HTTP
PDF
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
PDF
Rigadevdays - Communication in a microservice architecture
Steve Vinoski Rest And Reuse And Serendipity
Distributed system architecture
Rest Reuse And Serendipity
Cs556 section1
Object and component based middleware for distributed system development
09-01-services-slides.pdf for educations
Microservices Practitioner Summit Jan '15 - Don't Build a Distributed Monolit...
Cloud Native API Design and Management
Middle ware Technologies
Middleware Technologies
Interoperability
[WSO2Con EU 2017] Building Next Generation Banking Middleware at ING: The Rol...
Dotnetfest forget about http
Developing Distributed Web Applications, Where does REST fit in?
Microservices - opportunities, dilemmas and problems
Building scalable and language independent java services using apache thrift
Building scalable and language-independent Java services using Apache Thrift ...
.NET Fest 2019. Irina Scurtu. Forget about HTTP
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
Rigadevdays - Communication in a microservice architecture
Ad

Recently uploaded (20)

PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
KodekX | Application Modernization Development
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Advanced IT Governance
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
“AI and Expert System Decision Support & Business Intelligence Systems”
KodekX | Application Modernization Development
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Spectral efficient network and resource selection model in 5G networks
Chapter 3 Spatial Domain Image Processing.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Dropbox Q2 2025 Financial Results & Investor Presentation
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Advanced IT Governance
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Reach Out and Touch Someone: Haptics and Empathic Computing
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
Network Security Unit 5.pdf for BCA BBA.
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...

Cross-platform interaction

Editor's Notes

  • #3: ПричиныКак достичь возможности
  • #4: Integrating existing subsystemsExtending existing subsystems or applications
  • #5: Finding a lot of developers using different languages and technologies is simpler then find a lot of developer using a single ones
  • #6: There are three main programming paradigms:ImperativeDeclarativeFunctionalDon’t use C for programming GUIThink which subsystems will grow in future
  • #7: Every language and p
  • #8: PhysicalLogicalIntegration
  • #9: PhysicalLogicalIntegration
  • #10: Every language and p
  • #11: Broadcast based message bus architecture
  • #12: Content based message bus architectureDifference between that two message busses in Broker implementation
  • #13: 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.
  • #20: 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.
  • #23: 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.
  • #25: 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.
  • #26: 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.
  • #27: 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.
  • #28: 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.