000052523 001__ 52523
000052523 005__ 20190416220410.0
000052523 037__ $$aREP_WORK
000052523 245__ $$aDynamic Proxies for Classes: Towards Type-Safe and Decoupled Remote Object Interaction
000052523 269__ $$a2003
000052523 260__ $$c2003
000052523 336__ $$aReports
000052523 520__ $$aA dynamic proxy object is a typed proxy, created at runtime, conforming to a type specified by the application. Such an object can be used wherever an expression of the type it was created for is expected, yet reifies all invocations performed on it. This simple but powerful concept has been introduced into Java at version 1.3 (and has later also appeared in the .NET platform). A dynamic proxy is created for a set of interfaces as an instance of a class, generated automatically on the fly without support from the Java compiler or virtual machine, implementing those interfaces. Unfortunately, dynamic proxies are only available ``for interfaces''. The case of creating dynamic proxies for a set of types including a class type, due to the increased complexity, has not been considered, meaning that it is currently not possible to create a dynamic proxy mimicking an instance of a class. We present a pragmatic approach to supporting dynamic proxies ``for classes'', building on the existing solution to dynamic proxies for interfaces. We discuss the costs of such an extension, in terms of safety, security, and performance, and illustrate its usefulness through a novel abstraction for decoupled remote interaction, unifying (implicit future) remote method invocations and (type-based) publish/subscribe.
000052523 6531_ $$aProxy
000052523 6531_ $$abehavioral reflection
000052523 6531_ $$aJava
000052523 6531_ $$aremote method invocation
000052523 6531_ $$aimplicit future
000052523 6531_ $$apublish/subscribe
000052523 6531_ $$apeer-to-peer
000052523 700__ $$aEugster, Patrick Th.
000052523 8564_ $$uhttps://infoscience.epfl.ch/record/52523/files/IC_TECH_REPORT_200317.pdf$$zn/a$$s682690
000052523 909C0 $$xU10407$$0252114$$pDCL
000052523 909CO $$ooai:infoscience.tind.io:52523$$qGLOBAL_SET$$pIC$$preport
000052523 937__ $$aLPD-REPORT-2003-008
000052523 970__ $$a200317/IC
000052523 973__ $$sPUBLISHED$$aEPFL
000052523 980__ $$aREPORT