Click here to Skip to main content
15,312,535 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
who can tell me what is the main purpose of using jshooter?

is it like RMI ? is it like CORBA ? It is more or less ?

here is the link of this document.read it and say ur opinion

http://SourceForge.net/projects/shine-enterpris/files/[^]

tnx
Posted
Comments
Richard MacCutchan 6-Jul-10 4:41am
   
My opinion is that there is not enough information on that web page to offer an opinion. If you think this technology is useful then try it out.
OmiD_Haghighatgoo 6-Jul-10 8:46am
   
tnx

i found some thing in it's doc
I copy paste here .please read it say what's ur idea about it.

Chapter three
JShooter (Reflect in Network Framework)
What is JShooter?
JShooter is a framework for distributing application programs on the network. Certainly, you have used RMI, Corba and JMS. Each of aforementioned technologies has its own special problems and at the same time enjoys extraordinary advantages. However, you must be careful about the expenses caused by these technologies. In most cases RMI, Corba and JMS increase the productions’ costs unbelievably. However in other cases they confuse programmers. Years ago, Reflect Oriented Programming was the focus of attention within professional programmers, then Aspect Oriented Programming came into the programming world but instead of reducing the programmer’s task, it causes the professional programmers and even the amateur ones to be confused in many cases. One of the most important capabilities of JShooter is that it makes the “Reflect Oriented Programming” easier to use.





The first example of the Reflect Oriented Programming:
Suppose you have a class like this and you want to create an object from this in another class.

Figure 3 -1

Now, pay attention to the class that is responsible for creating object from the above said Class.

Figure 3 – 2
First we create an object from Application Class called app (this object has no data type). We specify it by “newInstance” method via input parameter. The Input parameter includes Calss-name and Package-name specifications). Then we create a new object by using app from MyClass and invoked “hello” method of the mentioned object.


Figure 3 – 3
   
Comments
Richard MacCutchan 6-Jul-10 9:08am
   
OK it's some form of reflection, and as I understand the above paragraphs it has answered your question.
ok but what is reflection ?

I don't just a little about it

it's something amazing
   
Comments
Richard MacCutchan 6-Jul-10 11:10am
   
I think you need to go away and do some more studying as this forum is not able to provide tutorials for question like this. If you do not understand what these patterns and frameworks are for then it is unlikely that you need to implement them.
OmiD_Haghighatgoo 6-Jul-10 12:41pm
   
tnx

but az you know (i wish you know !!!) jshooter is the first reflect oriented framework

and there isn't any other reflect oriented framework !!!
so my knowledge is good you are not uptodate !!!
Richard MacCutchan 6-Jul-10 17:06pm
   
If your knowledge is that good then what is this question about?
hi!

I found a sample for Jshooter:

XML
jsp pages:

----------------index.jsp---------------

<pre lang="xml"><%@ page contentType="text/html;charset=windows-1256"%>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
    <title>untitled</title>
  </head>
  <body>
    <form action="servlet/client.Caller" method="get">
      <input type="submit" value="view list of server's class mathods"/>
    </form>
  </body>
</html>



-------------callMethod.jsp--------------

XML
<%@ page contentType="text/html;charset=windows-1256"%>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
    <title>untitled</title>
  </head>
  <body>
    <P>call one of methods:</P>
    <form action="servlet/client.Caller" method="get">
      <P>Method name:
        <input type="text" name="method_name"/>
      </P>
      <P>
        <input type="submit" value="Call"/>
      </P>
    </form>

  </body>
</html>



----------------response.jsp----------------

<%@ page import="java.util.ArrayList"<>
<%@ taglib uri="/WEB-INF/maplet.tld" prefix="maplet"<>







<%
String a=request.getParameter("methods");
String[] b=a.split("&");
for(int i=0;i out.print(b+"
");
}
<>



<iframe src="CallMethod.jsp" frameborder="0">


output of <%=request.getParameter("method_name")<> method:

<%=request.getParameter("return_value")<>

No Access



Classes:

client package:

---------------caller.java------------

<%@ page import="java.util.ArrayList"<>
<%@ taglib uri="/WEB-INF/maplet.tld" prefix="maplet"<>







<%
String a=request.getParameter("methods");
String[] b=a.split("&");
for(int i=0;i out.print(b+"
");
}
<>



<iframe src="CallMethod.jsp" frameborder="0">


output of <%=request.getParameter("method_name")<> method:

<%=request.getParameter("return_value")<>

No Access



server package:

--------------Distributer.java----

package server;

import org.j2os.shine.jshooter.*;


public class Distributer {
public static void main(String[] arg) throws Exception {
Application app = new Application();
app.distribute(1099, "firstApp");
}
}

-------------SourceClass.java----

package server;

public class SourceClass
{

public String helloWorld() {
return "Hello World!";
}
public String byeEverybody() {
return "bye bye!";
}

}
   

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900