User: cgjung Date: 02/04/02 05:48:35 Modified: jboss.net/docs README.html TODO Added: jboss.net/docs JBossOne2002.ppt Log: That is the alpha-version together with the .Net sample client I hacked together at JBossOne ;-) more to come. Revision Changes Path 1.9 +66 -20 contrib/jboss.net/docs/README.html Index: README.html =================================================================== RCS file: /cvsroot/jboss/contrib/jboss.net/docs/README.html,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- README.html 15 Mar 2002 10:04:24 -0000 1.8 +++ README.html 2 Apr 2002 13:48:35 -0000 1.9 @@ -23,12 +23,13 @@ and the Web ... </cite> -<p class="text"> As emphasised in the <a href="http://www.sun.com/sunone">Sun Open Network Environment</a> vision, -Web Services and the <a href="http://j2ee.sun.com">J2EE</a> platform are an ideal match. J2EE is a mature and +<p class="text"> As emphasised in the <a href="http://www.sun.com/sunone">Sun Open Network Environment</a> vision +and put right into the core of the pending <a href="http://j2ee.sun.com">J2EE1.4 specification</a>, +Web Services and J2EE are an ideal match. J2EE is a mature and productive environment for developing and deploying application logic. Web Services provide a new degree of cross-platform interoperability especially -wrt the (surely upcoming) <a href="http://www.microsoft.com/net/">Microsoft .NET</a> cosmos -that <a href="http://www.omg.org/corba">CORBA and IIOP</a> are not able to provide. +wrt the <a href="http://www.microsoft.com/net/">Microsoft .NET</a> cosmos +that <a href="http://www.omg.org/corba">CORBA and IIOP</a> have not been able to provide. <p class="text"> <em><a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/jboss/contrib/jboss.net/">JBoss.net</a></em> @@ -49,28 +50,36 @@ the commercial <a href="http://halcyonsoft.com/products/iNET.asp">Halycon iNet (Beta)</a> or the <a href="http://www.go-mono.com/">Mono</a> Open Source project. +<p class="head">Overview +<p class="text">For an introduction, please see this <a href="JbossOne2002.ppt">PowerPoint File</a> +that has been presented at the JBossOne Convention March 2002. + <p class="head">Features and release plan <p class="text"> <img SRC="pictures/axis.jpg" align=right> -In a first phase, JBoss.net is adapting the <a href="http://xml.apache.org/axis">Apache Axis</a> -distribution (current release is beta-ec1, installed under +Jboss.net is currently released as source under 1.0-Beta and has +been adopting the <a href="http://xml.apache.org/axis">Apache Axis</a> +distribution (current release is beta, installed under <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/jboss/thirdparty/apache/axis/">thirdParty/apache/axis</a>). + Axis is a clean-room successor to the <a href="http://xml.apache.org/soap/">Apache-SOAP 2.0</a> effort and comes with a well-configurable processing architecture that is quite -similar to the JBoss container concept. +similar to the JBoss container concept (see the above overview slides). We aim to fit the Axis code optimally into the JBoss hot-deploying environment +such that MBeans and EJB´s can be straightforwardly exposed as Web Services and such that the basic +J2EE-related use-cases are supported. -We aim to fit the Axis code optimally into the JBoss hot-deploying environment such that -MBeans and EJB´s can be straightforwardly exposed as Web Services. This early stage is also to -collect further requirements for the JBoss.net plugin. +JBoss.net 1.0 should be a part of JBoss3.0 and hopefully encourages you to bring +in further requirements for the project. <p class="text"> Further phases of the project will then address advanced issues -like security, specialised typemappings, .NET interoperability, and keeping track -with the XML-related JSR´s. +like adopting the pending XML-related JSR´s (Java API for XML DataBinding - JAXB, Java API for XML Remote Procedure Call - JAX-RPC, +Java API for XML Messaging - JAXM, Java API for XML Registries - JAXR), introducing lightweight Internet Transactions and +more advanced bean interaction patterns. Eventually, we will also provide basic +C#-, or .Net-Code that will speed up your building of Microsoft-enabled client applications. -<p class="text"> JBoss.net is currently an alpha version and prototypes some basic concepts -of J2EE-based Web Service integration: +<p class="text"> The current features include: <ul> @@ -101,7 +110,7 @@ </li> <li class="text"> -An example for an MBean-based Web Service is the pre-installed <code>org.jboss.net.jmx.adaptor.server.Adapter</code> +An example for an MBean-based Web Service is the pre-installed <code>org.jboss.net.jmx.adaptor.server.RemoteAdapter</code> which exposes the full MBeanServer functionality as a Web Service (for client-side acccess you can use, e.g., the <code>org.jboss.net.jmx.adaptor.RemoteAdaptor</code> interface and the <code>org.jboss.net.jmx.adaptor.RemoteAdaptorInvocationHandler</code> factory). Some of the relevant java types, such as javax.management.ObjectName, already have @@ -113,10 +122,17 @@ Web Service invocations immediately to session beans. For that purpose, .wsr files can be deployed as "client applications" within .ear files (<java/> modules). We allow "<ejb-ref\>" entries in the Axis deployment descriptor to link the -naming environments of the Web Service to the corresponding EJB´s. This is quite similar -to the way that Web Applications/servlets in .war files are linked to EJB´s -in the Virtual Machine (see the Web Container Howto for that purpose). -Support for session-based entity bean access and suitable security models is envisaged. +naming environments of the Web Service to the corresponding EJB´s. This is exactly the same +mechanism that is usually used in the web.xml descriptor for being able to reroute bean-lookups +without changing the Servlet-code (see the WebContainer HowTo for that purpose). However, since there is usually +no code involved in exposing a web-service, this feature may dissappear in some future version. +</li> + +<li class="text"> +Stateful Session Beans can be reasonably treated by maintaining a persistent http-session with the web-server. This is the default mode +of the AxisInvocationHandler. Subsequent calls to the same AxisInvocationHandler will hence hit the +same bean reference. We plan to introduce dedicated (URL-)handles to address states in +a more fine-grained manner. Also we will care about bean-lifecycle-management in relation to the httpsession. </li> <li class="text"> @@ -140,6 +156,29 @@ "securityDomain" as before, parameters "allowedRoles" and "deniedRoles" for controlling access to the specified web service. See the servers axis-config.xml for that purpose. </li> + +<li class="text"> +You usually would not want to expose your Entity Beans as Web Services themselves for the same reasons as you +usually do not expose references to client applications for fine-grained access. Instead you usually apply +the Value-Object-Pattern to stream the entity bean state to the client and to impose the returned modifications on +that state back to the entity instance. This is possible by using a combination of the Axis-BeanSerializer and the +<code>org.jboss.axis.server.EntityBeanDeserializer</code>. The Deserializer is given a particular find method +and corresponding attributes from the entity´s state, such as the primary key attribute, which are the parameters to the +find method. During Deserialization, it will first obtain these attribute to get a reference to the entity instance through +the home interface and the find method and afterwards will set the remaining attributes and elements from the structure. This way, even +if your application has not yet been designed using value objects, e.g., because it is yet used with a browser-based +GUI and the WebContainer is hosted in-VM, you can easily extend it into a web-service. +</li> + +<li class="text"> +Since the Entity Bean serialisation process will be deeply integrated with the persistence engine, it is also important to +cater about transactional isolation. Usually, the deserialized and serialized data should be consistent with +the transactional context within the called method. For that purpose, the <code>org.jboss.net.axis.server.JBossTxHandler</code> +and the <code>org.jboss.net.axis.server.JBossResetTxHandler</code> will spawn a minimal user transaction around the +exposed Web-Service, or particular methods of the Web-Service. the <code>org.jboss.net.axis.server.JbossForceSerHandler</code> is used + to ensure that serialisation is indeed done within the transaction borders. +</li> + </ul> JBoss.net is strongly connected to features of Jboss 3.0 (Rabbit Hole) and hence, @@ -287,6 +326,13 @@ an additional web service layer on top of the HelloBean). In output/bin we also have put some (non-functional, arrgh) batch files to run the individual tests. +<p class="text">Under samples/win, we have checked-in a tiny C#/.Net-based client application that can be run against +the advanced store-test from the above testsuite. You can play around especially with the "Add Web Reference" +functionality to see how programming against the live server and the wsdl-descriptions can be achieved. For example, +you can access the meta-data of the BusinessPartnerService bean under +<a href="http://localhost:8080:/axis/services/BusinessPartnerService?wsdl">http://localhost:8080:/axis/services/BusinessPartnerService?wsdl</a> once +the store.ear is deployed. + <p class="head">DISTRIBUTION AND CVS <p class="text">JBoss.net is not yet shipped @@ -306,7 +352,7 @@ <p class="text">Enjoy. -<p class="text">"Dr. Schorsch" (<a ref="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>) - 29/09/2001, Last update on 12/10/2001 +<p class="text">"Dr. Schorsch" (<a ref="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>) - 29/09/2001, Last update on 30/03/2002 <p class="text"><small>All mentioned trademarks on this page are copyright of their respective owners ... or so ... </small></p> 1.7 +41 -17 contrib/jboss.net/docs/TODO Index: TODO =================================================================== RCS file: /cvsroot/jboss/contrib/jboss.net/docs/TODO,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- TODO 15 Mar 2002 10:04:24 -0000 1.6 +++ TODO 2 Apr 2002 13:48:35 -0000 1.7 @@ -1,32 +1,56 @@ <h3>DONE</h3> <ul> <li> AxisService installation, WebContainer invocation.</li> -<li> Axis logging configuration disabled.<li> -<li> Axis extension to remember service classloader correctly.<li> +<li> Axis logging configuration corrected.<li> +<li> Axis deployment information extension to remember service classloader correctly.<li> <li> WSR-file structure and deployment.<li> -<li> MBeanProvider for Axis.<li> -<li> JMXConnector basic layout.<li> -<li> javax.management.ObjectName support.<li> -<li> Inclusion of .wsr as java-client into .ear, AxisService as java-client deployer in J2eeDeployer.<li> -<li> Naming Environment correctly set.<li> -<li> Stateless EJBProvider functionality<li> -<li> Authentication propagation and security constraints for AxisServlet.<li> -<li> Integration of Axis-Beta-rc1 and the new WSDD format.<li> +<li> MBeanProvider for Axis. <li> +<li> RemoteAdaptor basic layout. <li> +<li> javax.management.ObjectName support. <li> +<li> Inclusion of .wsr as java-client into .ear, AxisService as java-client deployer in J2eeDeployer. <li> +<li> Naming Environment correctly set. <li> +<li> Stateless and Stateful Session Bean functionality through EJBProvider. <li> +<li> Authentication propagation and security constraints for AxisServlet. <li> +<li> Integration of Axis-Beta and the new WSDD format. <li> <li> JBossAuthenticationHandler and JBossAuthorizationHandlers that connect to configurable JBoss Security Domain Manager. </li> +<li> JBossTxHandler for introducing coarse-grained transactions on the web-service level. </li> +<li> EntityBeanDeserializer will impose xml structures upon entity bean instances. </li> +<li> WSDL-generation for EJBProvider needs classloader adjustment. </li> +<li> EJBHomeProvider for exposing Home methods. </li> +<li> Advanced J2EE store example for testing functionality and .Net interoperability. </li> </ul> -<H3>TODO</h3> +<H3>TODO for 1.0 release</h3> <ul> -<li> Home methods should be also callable (stateless case). </li> +<li> Finish order part of the store example.</li> <li> MBeanProvider wsdl generation. </li> +<li> EJB-Refs should be either outsourced (different namespace, different file) or should be removed.</li> +<li> TypeMapping parameters must be introduced. </li> <li> JMX mappings for other complex types, e.g., javax.management.Attribute </li> -<li> StatefulEJBProvider </li> -<li> EntityEJBProvider (do we need that anyway?) </li> -<li> Remote References via Axis/SOAP </li> +<li> UDDI registry </li> +<li> call remove method on bean references hashed in the httpsession when session goes down. </li> +<li> publish/remove interface to UDDI from deployer </li> +<li> Detailed Documentation </li> +</ul> + +<H3>TODO - pick one</h3> +<ul> +<li> Generation of reference handles that can be used in the calls, e.g., the URLs, to address particular states. </li> +<li> Remote Service References via Axis/SOAP </li> <li> AxisClient deployment </li> -<li> exception (de-)serialisation </li> -<li> JMSTransportProvider? </li> +<li> Exception (de-)serialisation </li> +<li> JMSTransportProvider </li> +<li> JMSListener </li> +<li> Castor JAXB integration as typemapping. </li> +<li> switch to JAXR UDDI interaction. </li> +<li> use JAXM/JAXRPC interface to decouple from AXIS </li> +<li> have a look at BTP Internet Transactions </li> +<li> Integrate EntityBeanDeserializer/Serialiser to the persistence engine w/o invocation stack. </li> +<li> partial retrieval of entity beans. </li> +<li> lazy retrieval of relationships. </li> +<li> incremental retrieval of collections. </li> +<li> XML Dig-Sig </li> </ul> <h3>Open Bugs</h3> 1.1 contrib/jboss.net/docs/JBossOne2002.ppt <<Binary file>>
_______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development