SlideShare une entreprise Scribd logo
1  sur  27
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

Contenu connexe

Tendances

Mashups For Soa
Mashups For SoaMashups For Soa
Mashups For Soa
WSO2
 
Resume
ResumeResume
Resume
Mina k
 
johns-resume-FinalDraft
johns-resume-FinalDraftjohns-resume-FinalDraft
johns-resume-FinalDraft
John Waite
 
Introducing Hibernate OGM: porting JPA applications to NoSQL, Sanne Grinovero...
Introducing Hibernate OGM: porting JPA applications to NoSQL, Sanne Grinovero...Introducing Hibernate OGM: porting JPA applications to NoSQL, Sanne Grinovero...
Introducing Hibernate OGM: porting JPA applications to NoSQL, Sanne Grinovero...
OpenBlend society
 

Tendances (18)

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

Similaire à Cross-platform interaction

Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3
Wen-Tien Chang
 
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2
 
Role of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EIRole of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EI
WSO2
 

Similaire à Cross-platform interaction (20)

Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3
 
Composable Software Architecture with Spring
Composable Software Architecture with SpringComposable Software Architecture with Spring
Composable Software Architecture with Spring
 
Restful风格ž„web服务架构
Restful风格ž„web服务架构Restful风格ž„web服务架构
Restful风格ž„web服务架构
 
Be faster then rabbits
Be faster then rabbitsBe faster then rabbits
Be faster then rabbits
 
Modern software architectures - PHP UK Conference 2015
Modern software architectures - PHP UK Conference 2015Modern software architectures - PHP UK Conference 2015
Modern software architectures - PHP UK Conference 2015
 
Node.js architecture (EN)
Node.js architecture (EN)Node.js architecture (EN)
Node.js architecture (EN)
 
Apache Thrift, a brief introduction
Apache Thrift, a brief introductionApache Thrift, a brief introduction
Apache Thrift, a brief introduction
 
Apache Arrow: Leveling Up the Analytics Stack
Apache Arrow: Leveling Up the Analytics StackApache Arrow: Leveling Up the Analytics Stack
Apache Arrow: Leveling Up the Analytics Stack
 
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
 
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
 
Introducing Apache Kafka and why it is important to Oracle, Java and IT profe...
Introducing Apache Kafka and why it is important to Oracle, Java and IT profe...Introducing Apache Kafka and why it is important to Oracle, Java and IT profe...
Introducing Apache Kafka and why it is important to Oracle, Java and IT profe...
 
Apache drill
Apache drillApache drill
Apache drill
 
After the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEANAfter the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEAN
 
Eclipse Dirigible WebIDE - Deep Dive
Eclipse Dirigible WebIDE - Deep DiveEclipse Dirigible WebIDE - Deep Dive
Eclipse Dirigible WebIDE - Deep Dive
 
Apache Con 2021 Structured Data Streaming
Apache Con 2021 Structured Data StreamingApache Con 2021 Structured Data Streaming
Apache Con 2021 Structured Data Streaming
 
Role of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EIRole of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EI
 
JustGiving – Serverless Data Pipelines, API, Messaging and Stream Processing
JustGiving – Serverless Data Pipelines,  API, Messaging and Stream ProcessingJustGiving – Serverless Data Pipelines,  API, Messaging and Stream Processing
JustGiving – Serverless Data Pipelines, API, Messaging and Stream Processing
 
JustGiving | Serverless Data Pipelines, API, Messaging and Stream Processing
JustGiving | Serverless Data Pipelines, API, Messaging and Stream ProcessingJustGiving | Serverless Data Pipelines, API, Messaging and Stream Processing
JustGiving | Serverless Data Pipelines, API, Messaging and Stream Processing
 
Untangling fall2017 week1
Untangling fall2017 week1Untangling fall2017 week1
Untangling fall2017 week1
 
What's New in IBM Streams V4.1
What's New in IBM Streams V4.1What's New in IBM Streams V4.1
What's New in IBM Streams V4.1
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Dernier (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

Cross-platform interaction

Notes de l'éditeur

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