Transcript Document
iNET Java implementation of Microsoft .NET Framework About Stryon • Don Hsi, Chief Technology Officer • Stryon is the merger of Halcyon Software and CyberNet Engineering in 6/2002 • Headquarter in Grand Rapids, Michigan. Product division in San Jose, CA • Development centers in U.S., China, and Pakistan • 200+ employees Service & Products • Service – System Integration (CyberNetEngineering.com) – Software Migration/Transformation – Managed Services – Server Consolidation • Products – VBIX. Visual Basic for UNIX – Instant BASIC 4 Java – iASP. Java based Active Server Pages implementation – RJAX/iHUB. COM+, .NET Remoting, Java bridging middleware Microsoft .NET • ECMA Standard (334, 335) • Visual Studio.Net Development Tool • Multiple programming language support; VB, C#, C++, Perl, Cobol, Java (J#), JavaScript (Jscript) • Web Service XML/SOAP centric • Integrated with Microsoft server technology; SQL Server, BizTalk, Exchange, Great Plains .NET Application Types • Windows application – WinForm, GUI.NET • Web application – ASP.NET, WebForm • Web service – ASP.NET Web Service – XML, WSDL, SOAP • Mobile application – .NET Compact Framework – Pocket PC, SmartPhone, WinCE .NET is Cross Platforms…. On different flavors of Windows… SQL Server Computing Framework MTS Microsoft MSMQ BizTalk .NET IIS Devices Browser Fat Client Exchange .NET Web Services Computing Framework Devices Browser Fat Client JDBC Database Java JTS/JMS WebLogic, WebSphere, SunOne, Oracle Web Services EJB App Server J2EE J2SE J2ME Java Web Services Computing Framework Devices Browser Fat Client JDBC Database JTS/JMS WebLogic, WebSphere, SunOne, Oracle Web Services EJB Java App Server + iNET J2EE J2SE J2ME .NET Web Services Java Web Services SQL Server Computing Framework MTS Microsoft MSMQ BizTalk .NET IIS Devices Browser Fat Client Office JDBC Database JTS/JMS WebLogic, WebSphere, SunOne, Oracle Web Services EJB iNET Bridge Java App Server + iNET J2EE J2SE J2ME .NET Web Services Java Web Services iNET Overview C#, VB, C++, Jscript, J#, … VisualStudio.NET 3 2 MSIL iNET Bridge 1 iNET Runtime WINFORM ADO.NET ASP.NET GUI.NET Java Platforms IL2JAVA JAVA Source Java Byte Code Java Compiler JAVA Write Once, Run Anywhere iNET Write Once In .NET, Run Anywhere Windows Platforms, Linux, Solaris, OS/390, Mac OS X, Palm, Pocket PC, Cell phones… Target Audience • ISV – – – – Expand platform coverage Increase revenue Minimize risk with minimum porting overhead Maintain single source code • OS / Platform Vendors – Mac OS X, Linux, IBM s390/as400/rs6000, Solaris – Offer deployment/migration solution for .NET developers • ISP/ASP – Server consolidation with high power system – Reduce NT server farm overhead • Enterprise – .NET & Java integration, collaboration – Cross platform deployment, migration Similar Effort • Microsoft “Rotor” • Shared Source CLI Implementation • http://msdn.microsoft.com/library/default.asp?url=/library/enus/dndotnet/html/mssharsourcecli.asp • mono • http://www.go-mono.org • Open source .NET Development Framework • JIT for Linux/x86 • Portable.Net • http://www.southern-storm.com.au/portable_net.html • Support GNU/Linux • Open source IL2JAVA • Translate IL Code to Java source • Translate .NET deployment information to J2EE deployment information • Translate .NET Metadata to iNET Metadata • Products: – VB.NET-to-Java converter – C# -to- Java converter – Runtime Classes [Required] Application Isolation - AppDomain • Code in one application domain cannot make direct calls into another application domain. • To implement application isolation, iNET calls the methods between different AppDomain by Remoting mechanisms. Application Isolation example //Create AppDomain1 in default application domain, return value is a proxy of //new AppDomain object AppDomain Domain1 = AppDomain.CreateDomain(“AppDomain1", 0, 0); //Create New Instance by the AppDomain proxy object, return value from the //new application domain is a proxy of new AppIsolation.Test object in new //application domain AppIsolation.Test isotest = Domain1.CreateInstance(“AppIsolation.Test”).unwrop(); //Call method of the new instance by proxy in default application domain Isotest.checkappdomain(); Application Isolation example: Application Host 1 1 Generate proxy 2 Return reference Forward createinstance method call to Appdomain1 Generate proxy 2 Return reference 3 Forward checkappdomain 3 mehtod call to Appdomain1 Default AppDomain Note: the communication between defalut appdomain and appdomain1 are using remoting. New Instance of AppIsolation.Test in this domain Execute checkappdomain Appdomain1 Security • Evidence-based Security by extends Java ProtectionDomain and Permission checking • Role-based security by JAAS • Cryptographic Security by JCE and Java GSS-API • Algorithms • • • • • Hashing: SHA1/256/384/512, MD5 Asymmetric: RSA, DSA Symmetric: AES, TripleDES, DES, RC2 MAC: HMACSHA1, MACTripleDES Random Number Generator • XML Support • W3C/IETF XML Signature • Active in W3C XML Encryption WG Loading Assembly Loading a1.jar Trusted Host JIT Compiler/Verifier Evidence Information about an Assembly iNET Classloader Policy Create ProtectionDomain a1.jar Grant permission Policy determines Permissions granted iASP.NET • Java implementation of ASP.NET • Java Servlet 2.3 • Http Pipeline • Web Form • Web Service iASP.NET Implementation • Translate HttpModule to Servlet 2.3 • Translate HttpHandler to Servlet 2.3 HttpServlet • Leverage ServletContext to implement HttpApplication Management. • Application Event with ServletContextListener • Session Event by HttpSessionListener iNET Remoting • The Java implementation of MS .NET Remoting • Support dynamic proxy generation • Support Sink, Channel, and Channel registry • Support SOAP and binary format. • Support TCP & HTTP protocol iNET Remoting Architecture Remote Object Transparent Proxy envelop Instance Object unenvelop Real Proxy Message sink Message sink Channels Channels Message Microsoft .NET Compatibility .NET APP .NET Framework Transaction/ ADSI/MSMQ il2java JMS JDBC Remoting/COM+ XML/ADO JFC WINFORM ASP.NET MOBILE APP Base class library Windows.NET Java APP iNET Framework iHUB iADO.NET IGUI.NET iASP.NET Servlet J2ME Base class library Any OS Roadmap • Conversion – VB.NET, C# to Java – Integration with Eclipse, JBuilder, SunONE Studio, … • ASP.NET/Web Service • GUI/WINFORM (fat) client applications • Mobile (.NET Compact Framework) Apps – Symbian – J2ME, P-Java, Java Phone Q&A Don Hsi [email protected] +1 (408) 891-2023 SQL Server MTS Microsoft MSMQ BizTalk .NET IIS Devices Browser Fat Client Office JDBC Database iNET Bridge Java Platform JTS/JMS WebLogic, WebSphere, SunOne, Oracle Web Services EJB App Server + iNET J2EE J2SE J2ME .NET Web Services Java Web Services