4 ms·
DCE/RPC is used today! Lots of factories running this crusty stuff to interconnect PLCs: https://wiki.wireshark.org/PROFINET/IO https://wiki.wireshark.org/PROF
by stefan_ 3y ago
DCE/RPC is used today! Lots of factories running this crusty stuff to interconnect PLCs:
https://wiki.wireshark.org/PROFINET/IO https://wiki.wireshark.org/PROFINET/IO
My favorite part of RPC is that it has a header with switchable endianness and a field for what floating point encoding you would like to use. For when your machine encodes Cray-compatible:
https://pubs.opengroup.org/onlinepubs/9629399/chap14.htm https://pubs.opengroup.org/onlinepubs/9629399/chap14.htm
- p_l 3y agoDCE/RPC is basis for DCOM as well. And honestly, Profinet is one of the best fieldbuses out there (DCE is used in the setup phase, afterwards it's pretty much always raw ethernet though there's UDP mode documented somewhere).
- skissane 3y ago> DCE/RPC is basis for DCOM as well. I wonder how interoperable DCE/RPC and MS-RPC are though? I mean, if I have a DCE implementation (for example IBM Encina), can I successfully talk to it using the MS-RPC client and server libraries bundled with Windows?
- pjmlp 3y agoMaybe back in Windows 9X days, nowdays the protocol has evolved enough that I seriously doubt it.
- p_l 3y agoThe main issue is that MSRPC runs DCE over SMB named pipes - so one can't just take random DCE implementation and make it talk to NT's. But AFAIK once you get onto named pipe transport, the protocol at worst got extended but not changed too much (new crypto options mainly, iirc?)
- pjmlp 3y agoThere are all the changes related to turning Loghorn ideas from .NET into COM as of Vista, and then the WinRT evolution with a new type system based on .NET metadata.
- p_l 3y agoLooking over protocol extensions from Microsoft, the changes aren't that big for RPC itself, and might be actually smaller for ORPC (aka what DCOM-over-RPC).
- actionfromafar 3y agoSamba file server started out this way.
- mike_hearn 3y agoMore than that. DCE/RPC is what underlies DCOM and DCOM is the basis for OPC, a.k.a. "OLE for Process Control" which is (or was) widely used in factories and SCADA settings. https://www.aboutmechanics.com/what-is-ole-for-process-control.htm https://www.aboutmechanics.com/what-is-ole-for-process-contr...
- p_l 3y agoOPC-DA is still big but mercifully slowly and surely replaced by OPC-UA, which is properly portable. OPC-DA essentially operated a lot like TWAIN - it specified an interface for OLE-loadable DLL to load, which would then implement actual communication driver for your infrastructure. OPC-UA describes its own protocol to talk between devices.
- mike_hearn 3y agoI thought DCOM i.e. wire protocols were a big part of OPC too. But maybe it evolved in that direction over time? Like, if the COM interface is simple enough they realized you don't need a driver if DCOM is doing what the driver would do anyway.
- p_l 3y agoNope, you install an OLE control on the system that wants to communicate, then tell the SCADA/etc application to use it, and the control talks vendor-specific protocol. Newer OPC-UA capable devices could arguably run like that (definitely enough power, even without going for the ones that have full Linux system with Docker), but those tend to run OPC-UA instead which is way more capable and interoperable.
- mike_hearn 3y agoHuh, I wonder what this sort of thing is about then: https://www.matrikonopc.com/dcom-configuration-opc.aspx https://www.matrikonopc.com/dcom-configuration-opc.aspx