Win a copy of The Little Book of Impediments (e-book only) this week in the Agile and Other Processes forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

question on responsibility

 
Bob Walker Jr
Ranch Hand
Posts: 46
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
This is from one of the cheaper mock exams (softSCBCD or INES one).
A bean deployer...
1. provides configuration information for mapping resource references and resource managers.
2. configures resource managers in the operational environment.
Which is correct?
Any ideas?
 
Kathy Sierra
Cowgirl and Author
Rancher
Posts: 1589
5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Howdy,

This one is poorly-worded because there is no such thing as a "bean deployer". There is a "Bean Provider" and a "Deployer", but I'm assuming they mean deployer, not bean deployer.
1. provides configuration information for mapping resource references and resource managers.
The deployer has to look at the DD and see, "Oh, I see that the Bean Provider has said that they want to use this customer database DataSource which they called "jdbc/CustDB" in code (the poor Bean Provider had no idea what the *real* JNDI name is, so he just made one up). But that's not the *real* JNDI name. I can see that the *real* JNDI name that the admin used to bind the actual DataSource for the database is "jdbc/CustomerData". So, I will map (in a vendor-specific way) between what the Bean Provider used in code, "jdbc/CustDB" and what the REAL JNDI name is -- "jdbc/CustomerData".
So this is exactly what the Deployer is responsible for. Can't be the Bean Provider, because the Bean Provider might not know where the bean is even being deployed. Can't be the Application Assembler, for the very same reason. Only the Deployer is guaranteed to know the configuration of the server to which the app is being deployed.
2. configures resource managers in the operational environment.
SOMEBODY has to configure the REAL database into the server, which binds the DataSource into JNDI so that the beans can look it up. We know it can't be the Bean Provider or the Application Assembler, since they don't know where the bean is going to be running, and they may not even know the name of the company where it will run! But could it be the Deployer? No, not according to the roles, because the Deployer is responsible for deploying applications, not configuring things into the server.
It must be the Admin...
Now, in *reality*, of course, these roles might ALL be performed by the same person. A Role doesn't necessarily mean "a separate human", but could just mean "a separate responsibility". The roles are so clearly defined because of the component-based development model which is designed to support bean reuse... by encouraging developers to be able to develop beans in such a way that they can be assembled into new applications by people whom the Bean Provider (developer/programmer) does not know anything about. And the App Assembler is encouraged to assemble applications from both new and existing beans, into applications that can be deployed in environments (servers running in some company) that the App Assembler knows nothing about. So it's always the Deployer who works for the company where the bean/app is being deployed, and it's the Deployer who has to do the last level of mapping for resource references and security (only the Deployer, not the Bean Provider or App Assembler, can know about the *real* users and groups in the environment where the app is being deployed, so only the Deployer can say that the roles the app assembler called "Managers", really means "Administrators" and "Directors" in the real company.
OK, more than you wanted to hear but I always get carried away...
cheers,
Kathy
 
Bob Walker Jr
Ranch Hand
Posts: 46
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Wow..what a wonderful explanation
Just one confusion. This is caused by the specs and not you
Section 3.1.6 says, "The System Administrator is responsible for the configuration and administration of the enterprise's computing and networking infrastructure that includes the EJB Server and Container. "
The way I was understanding it was (which is wrong), the SysAdmin will provide the infrastructure such as the server (physical box), networking etc. The deployer will use that infrastructure to set up the EJB container and configure it because the deployer is an expert at a "specific operational environment". So he/she knows how to configure the weblogic (or whatever) server etc. and, of course, deploy the application.
thanks a million for being there !!!
 
Bob Walker Jr
Ranch Hand
Posts: 46
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
On the second thought, the option says, "provides the configuration information for mapping resource references and resource managers.".
Not "maps the resource references and resource managers.
So if the sysadmin configures the resource manager, only he/she can "provide" that information. The deployer uses it to "map" the resource references to it. Does it even make any sense?
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic