Author Topic: Is an RJ-45,RS-232 or other comm interface connectors a fullPort or a proxyPort?  (Read 20842 times)

mse

  • EA User
  • **
  • Posts: 303
  • Karma: +1/-0
    • View Profile
In the book "A Pratical Guide to SysML" by Friedenthal there is a section on full and proxy ports. I read through the whole thing and compared the text with the example figures. There was very little distinguishing between the two concepts other than that a full port has its own behavior and can be typed by a block whereas a proxy port can only be typed by an InterfaceBlock. That was clear to me, but then I tried thinking of things in the real world that might help me out. The RJ-45 connector for ethernet connections sounds like a good one.

I thought at first an RJ-45 connector would be a fullPort because it was physical in nature and could be in a parts list. I was thinking of an Enet card with an RJ-45 connector at its boundary. However, Friedenthals' book showed it as a proxyPort. The same was true even for voltage connectors like plugs and sockets.

Are RJ-45 connectors and plugs/sockets proxyPorts because they simply relay Enet packets and voltage/current respectively to the things that they are attached to? Why then is something like a bolt assembly a fullPort?

And just to illustrate the inconsistencies even more, here is yet another diagram from another site that models RS-232 but using fullPorts:



Why not model them as proxyPorts?
« Last Edit: April 07, 2024, 02:05:25 am by mse »

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +396/-301
  • I'm no guru at all
    • View Profile
Re: Is an RJ-45 connector a fullPort or a proxyPort?
« Reply #1 on: April 06, 2024, 07:45:56 am »
No idea. My SysML time is lying back too long. Probably it's like with any model: it depends. You know that the diagrams are not abot RJ45 but about the good old serial 9 pin headers?

q.

mse

  • EA User
  • **
  • Posts: 303
  • Karma: +1/-0
    • View Profile
Re: Is an RJ-45 connector a fullPort or a proxyPort?
« Reply #2 on: April 07, 2024, 02:04:19 am »
The RJ45 connector was the first example, but any other type of interface that has a physical connector could apply here. That is why I mentioned the RS-232 example. I have seen other papers that use full ports in some tractor or where there is a bolt connection for a telescope. Other examples might be HDMI connections, USB, CAN connections.

Somehow I think it might be more about a full port being independent and having the capability to have behavior and even take on some of the work on behalf of the part that the port is attached. That is why we can type it with a block. Whereas a proxy port is just a pass-through kind of port that accepts certain types of information. So even in the RS-232 example above, it might be modeled as a proxy port because those pins really just relay serial data.

maaroe

  • EA Novice
  • *
  • Posts: 5
  • Karma: +1/-0
    • View Profile
My - fairly inexperienced - view on this is similar to qwerty's: It really depends on what you are trying to accomplish with your model.

Typically, you would have a logical model, which would probably not have the need for describing the detailed physical part properties of a connector through the use of a fullPort.

Once the design matures you need a physical model as well, in which it may be necessary to describe the equivalent connection as a fullPort.

Then again, unless you need to actually make it very clear that you have a specific implementation of an RJ-45 (or even of an Ethernet connector), you could easily leave it as a proxyPort. There are many things, you could include in your model, but it does not make sense to do so because of the little value it brings. The cables could be blocks as well, as could the individual wires so you can specify wire gauge and color in the model - but this is rarely a good way to spend your time as a system designer.

Sunshine

  • EA Practitioner
  • ***
  • Posts: 1311
  • Karma: +120/-10
  • Its the results that count
    • View Profile
In SysML modeling, whether an RJ-45 connector is considered a fullPort or a proxyPort can depend on the context of the system being modeled and how the connector is being used.

A fullPort represents a physical port with its own behavior and can be typed by a block, meaning it encapsulates both the interface and the implementation. On the other hand, a proxyPort is typically used to represent a purely abstract interface that can only be typed by an InterfaceBlock and does not encapsulate any behavior1.

In the case of an RJ-45 connector, it could be modeled as a proxyPort if you are only interested in representing its interface capabilities, such as the ability to connect network cables for Ethernet communication. However, if the RJ-45 connector’s physical characteristics and behavior (like signal processing or locking mechanisms) are relevant to the model, it might be represented as a fullPort.

The book “A Practical Guide to SysML” by Friedenthal, as mentioned in your query, shows an RJ-45 connector as a proxyPort, which suggests that in their example, the RJ-45 is being used to represent the interface for Ethernet connections without delving into the physical implementation details.

Hope that helps.
« Last Edit: April 07, 2024, 08:31:12 am by Sunshine »
Happy to help
:)

mse

  • EA User
  • **
  • Posts: 303
  • Karma: +1/-0
    • View Profile
Thanks Maaroe and Sunshine for the explanations. The examples you gave definitely helped me understand that sentence in the book where "the choice between full and proxy ports is considered by some to be a design decision." I was looking at it from a right or wrong answer perspective and was forgetting the context.

To add one more example to the discusion, all this reminds me of RTE ports in AUTOSAR. RTE communication in AUTOSAR is rather complex and has rules and behavior depending on the ports involved. In RTE, I could see them being modeled as full ports, because there you definitely specify behavior and would have blocks implementing that type of communication. This would be of interest to the designers and implementers of the RTE layer, so they would use full ports. Designers and implementers of the applications using the RTE might use proxy ports instead since usually RTE is provided by some other contractor or even auto-generated.

So if I have a port and I know that it is going to be helpful and of value to specify behavior, then I need a full port. But if all I care about is the type of information crossing that port, I will make it a proxy port. Now I understand that argument where most simply suggest that in the majority of cases it will be a proxy port since most of us just care about a block supporting Enet, ARINC 429, MIL-1553, CAN, etc. traffic. But we don't need to delve into the behavior of those ports since we are not the system designers of such connectors and wires.

Thanks to all for the discussion, it helped a lot  :)
 
« Last Edit: April 08, 2024, 07:38:05 pm by mse »

Jochen Wendebaum

  • EA Novice
  • *
  • Posts: 9
  • Karma: +0/-0
    • View Profile
@mse, I have a related question posted here: https://sparxsystems.com/forums/smf/index.php/topic,48395.0.html

I am not sure how to model ports that are on a PCB and reachable from the ouside, meaning I have internal ports (on the PCB), which at the same time are external ports.

I would be thankful for your thoughts over there.

Jochen

maaroe

  • EA Novice
  • *
  • Posts: 5
  • Karma: +1/-0
    • View Profile
@mse
Glad to hear it helped :)