Linux/Mac OS X-ækvivalenter til Windows Communication Foundation

Indlæg af Hanne Mølgaard Plasc

Problem



--redigere--


Hvilke applikationsudviklingsrammer/komponentmodeller til Linux og Mac OS X er analoge med Windows Communication Foundation & COM, som leverer IPC-mekanismer på højt niveau til manipulation/kommunikation med softwareapplikationer?


Ved højniveau kommunikationsmodel mener jeg RPC, publicere/abonnere mv.


Jeg skriver software til interaktionsenheder, som kan være bundet til manipulation af beregning og data inden for nogle software. Hidtil har jeg muligvis et kontrolpanel med fysiske skydere, der er bundet til forskellige celler i et regneark i Excel, Beregn eller Numbers. Jeg har måder at sætte begivenheder, der stammer fra enheden, men interaktionsundersystemerne (X11, Explorer osv.) Er ikke udvidelige til at håndtere nye former for interaktionshændelser, så jeg skal indfange og transportere mine egne arrangementer til og fra den software, som de 'er bundet til.


Også de fleste af de applikationer, jeg gerne vil kontrollere, kan ikke ændres for at reagere på disse nye typer af begivenheder. Og simulering af genvejstaster og genveje-sekvenser er ikke ekspressive nok, selv om det ville udnytte eksisterende interaktions-subsystemer. Derfor er jeg interesseret i platformspecifikke rammer, så jeg kan udnytte allerede eksisterende kroge til at styre software i naturen.


Da dette er for brugerinteraktion, skal det have lave ventetider. Jeg vil gerne have mulighed for statsløs, asynkron kommunikation også.


Jeg har tænkt på dette spørgsmål, og jeg er klar over, at jeg skulle stille to spørgsmål. Den ene handler om høj IPC, og den anden handler om objektkomponentmodeller, som giver dig mulighed for at kalde metoder på et softwareobjekt.


- oprindeligt spørgsmål


Hvilke kommunikations-/komponentrammer giver funktionalitet svarende til Windows Communications Foundation på Linux og Mac OS X?


Min forskningsgruppe er begyndt at udvikle en slags applikationsudviklingsramme for interaktive applikationer, der involverer nye typer enheder til at manipulere/interagere med softwareapplikationer. Vi vil bruge et adaptermønster til at give abstraktioner til enhed/enhed applikation/applikation eller enhed/applikation kommunikation, så software bygget med denne ramme vil være bærbar over de 3 store OS platforme.

Bedste reference


Hvis Linux apps er moderne nok, kan du muligvis drage fordel af D-Bus. Det er først og fremmest afkom fra DCOP fra KDE, og i mindre grad Bonobo fra GNOME, så hvis det er ældre, kan du se en af ​​disse ting op. Det forudsætter selvfølgelig, at det bruger en af ​​disse værktøjer. [1]


Hvis det er endnu ældre end det eller bruger et værktøjssæt uden IPC på højt niveau (f.eks. Motiv (jeg tror)), kan du ende med at ty til rør, stikkontakter, fem og alt andet, jeg måske har glemt. forudsætter selvfølgelig, at appen har en slags kroge til de ting.

Andre referencer 1


Her er en liste over hjælpelinjer relateret til netværk på Mac OS X. Det dækker forskellige niveauer af netværk fra lavt niveau socket kommunikation på http://developer.apple.com/documentation/Cocoa/Networking-date.html#doclist[2]]]


Det dækker:



  • Core Foundation-netværksfunktioner
    at arbejde med BSD-stikkontakter på lavt niveau.

  • Kakao stream klasser til at læse data
    fra og skrive data til strømme.

  • Web Services klient-side rammer
    tilgængelig i Mac OS X.

  • Bonjour i kakao eller kulstof
    applikationer.

  • URL-indlæser system til at manipulere webadresser og overførsel
    URL indhold

  • Programmering af distribuerede objekter - Kommunikation mellem objektiv-C objekter i forskellige
    tråde eller forskellige processer



Ellers er Mac OS X fuldt kompatibelt Unix-system, så du finder lignende IPC-system som fundet på Linux. [3]


Eller måske er du efter Mac OS X System Services, et system, der giver en applikation adgang til funktionalitet i et andet program. Ansøgning annoncerer de tjenester, de leverer. For yderligere oplysninger læs linket Apple dokumentation. [4]

Andre referencer 2


Den nærmeste fætter ville være libsoap og tilsvarende SOAP-biblioteker i dit valg sprog. [5]