اﺳﺘﻔﺎده از ﻣﻔﺎﻫﻴﻢ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ در ﻣﺤﻴﻂ وب

ﺳﻴﺪﺟﻤﺎ ل اﻟﺪﻳﻦ ﭘﻴﺸﻮاﻳﻲ ﻣﺠﻴﺪرﺿﺎ ﺑﺎﻗﺮي ﻋﻠﻴﺮﺿﺎ ﻣﻌﻴﺮزاده [email protected] [email protected] [email protected]

داﻧﺸﻜﺪه ﻣﻬﻨﺪﺳﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ

ﭼﻜﻴﺪه 1 ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ ﻛﻪ اوﻟﻴﻦ ﺑﺎر در ﭼﺎرﭼﻮب ﻛﺎري NET. ﺑﻪ ﺻﻮرت ﺟﺪي ﻣﻄﺮح ﺷﺪ ﺑﺎ ﻓﺮاﻫﻢ ﻛﺮدن اﻣﻜﺎن درج و ﻣﻘﺪاردﻫﻲ ﺻﻔﺎت روي اﻟﻤﺎﻧﻬﺎي زﺑﺎن ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﻣﺎﻧﻨﺪ ﻛﻼﺳﻬﺎ، ﻣﺘﺪﻫﺎ و ﻓﻴﻠﺪﻫﺎ و ﺑﻬﺮه ﮔﻴﺮي از اﻳﻦ ﺻﻔﺎت در زﻣﺎن اﺟﺮا و ﻳﺎ زﻣﺎن ﻛﺎﻣﭙﺎﻳﻞ ﻣﻮﺟﺐ ﺳ ﺎده ﺗﺮ ﺷﺪن ﭘﻴﻜﺮﺑﻨﺪي ﻣﺆﻟﻔﻪ ﻫﺎي ﻧﺮم اﻓﺰاري و ﺳﺎدﮔﻲ اﺳﺘﻔﺎده از ﺳﺮوﻳﺲ ﻫﺎي زﻣﺎن اﺟﺮا ﮔﺸﺘﻪ اﺳﺖ. ﻫﻤﭽﻨﻴﻦ اﻳﻦ ﺻﻔﺎت ﻣﻲ ﺗﻮاﻧﻨﺪ ﺑﻪ ﻋﻨﻮان ﻣﺒﻨﺎي ﻛﺎر اﺑﺰارﻫﺎي ﺗﻮﻟﻴﺪ ﻛﺪ اﺳﺘﻔﺎده ﺷﻮﻧﺪ. اﻛﻨﻮن ﻧﺴﺨﻪ ﻫﺎي اﺧﻴﺮ ﺟﺎوا ﻧﻴﺰ از اﻳﻦ 2 اﻣﻜﺎن ﭘﺸﺘﻴﺒﺎﻧﻲ ﻣﻲ ﻛﻨﻨﺪ. از ﻫﻤﻴﻦ اﻳﺪه ﻣﻲ ﺗﻮان در ﺗﻮﺳﻌﻪ ﻣﺆﻟﻔﻪﻫﺎي وب ﻛﻪ در آﻧﺠﺎ ﺑﺠﺎي ﻛﻼﺳﻬﺎ، ﻣﺘﺪﻫﺎ و ﻓﻴﻠﺪﻫﺎ ﺑﺎ ﺻﻔﺤﺎت و ﺑﺮﭼﺴﺐ ﻫﺎي داﺧﻞ آﻧﻬﺎ ﺳﺮ و ﻛﺎر دارﻳﻢ ﻧﻴﺰ ﺑﻬﺮه ﺟﺴﺖ و اﻗﺪام ﺑﻪ درج، ﻣﻘﺪاردﻫﻲ و ﻧﻬﺎﻳﺘﺎً ﺑﻬﺮه ﮔﻴﺮي از ﺻﻔﺎﺗﻲ ﻛﻪ ﺑﻪ اﻳﻦ اﻟﻤﺎن ﻫﺎ اﺧﺘﺼﺎص ﻣﻲ ﻳﺎﺑﺪ ﻧﻤﻮد. در اﻳﻦ ﻣﻘﺎﻟﻪ ﺑﻪ ﭘﻴﺸﻨﻬﺎد راه ﻛﺎري ﺑﺮاي اﻳﻦ ﻣﺴﺄﻟﻪ ﺧﻮاﻫﻴﻢ ﭘﺮداﺧﺖ. اﻳﻦ اﻳﺪه ﻛﻪ ﺗﺎ ﻛﻨﻮن ﻣﻄﺮح ﻧﺸﺪه اﺳﺖ، ﻣﻲ ﺗﻮاﻧﺪ ﻣﻮﺟﺐ ﺗﺤﻮﻟﻲ در زﻣﻴﻨﺔ ﺗﻮﺳﻌﻪ ﻣﺆﻟﻔﻪ ﻫﺎي وب ﮔﺮدد. ﻛﻠﻤﺎت ﻛﻠﻴﺪي: ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ، ﺗﻮﺳﻌﻪ ﻣﺆﻟﻔﻪ ﻫﺎي وب

ﻣﻘﺪﻣﻪ 3 ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ ﺑﻪ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﺎن اﻣﻜﺎن ﻣﻲ دﻫﺪ ﺗﺎ ﺑﺎ اﺿﺎﻓﻪ ﻛﺮدن اﺑﺮ داده ﺑﻪ اﺟﺰاي ﻣﺨ ﺘﻠﻒ ﻳﻚ ﺑﺮﻧﺎﻣ ﺔ ﺔ ﻧﺮم اﻓﺰاري ﻣﺎﻧﻨﺪ ﻛﻼس ﻫﺎ، ﻣﺘﺪ ﻫﺎ ، ﻓﻴﻠﺪﻫﺎ و ﻣﻮﻟﻔﻪ ﻫﺎ رﻓﺘﺎر آﻧﻬﺎ را ﺑﺮ ﻣﺒﻨﺎي اﻳﻦ اﺑﺮ داده ﻫﺎ ﺗﻐﻴﻴﺮ دﻫﻨﺪ. ﺑﻪ ﻃﻮر ﻣﻌﻤﻮل وﻳﮋﮔﻲ ﻫﺎ و ﻗﺎﺑﻠﻴﺘﻬﺎي ﻳﻚ ﻣﺆ ﻟﻔﻪ ﺑﺎﻳﺪ ﺑﻪ ﺻﻮرت ﻛﺎﻣﻞ در ﺧﻮدش ﭘﻴﺎده ﺳﺎزي ﺷﻮد. اﻣﺎ ﮔﺎﻫﻲ ﻣﺤﻴﻄﻲ ﻛﻪ ﺑﺮﻧﺎﻣﺔ ﻣﺎ در ﻗﺎﻟﺐ آن اﺟﺮا ﻣﻲ ﺷﻮد - ﻣﺎﻧﻨﺪ Net Framework. و ﻳﺎ Application Server ﻫﺎي J2EE - ﺑﻪ ﻣﺎ اﻳﻦ اﻣﻜﺎن را ﻣﻲ دﻫﻨﺪ ﺗﺎ از ﻃﺮﻳﻖ اراﺋﻪ ﺗﻮﺻﻴﻔﺎﺗﻲ در ﻣﻮرد ﻣﺆﻟﻔﻪ ﻫﺎ از ﺑﺴﺘﺮ اﺟﺮاﻳﻲ ﺑﺨﻮاﻫﻴﻢ ﺗﺎ ﺑﺮﺧﻲ از اﻳﻦ وﻳﮋﮔﻲ ﻫﺎ و ﻗﺎﺑﻠﻴﺖ ﻫﺎ را ﺑﺮاي ﻣﺎ ﻓﺮاﻫﻢ ﺳﺎزد . اﻳﻦ ﺗﻮﺻﻴﻔﺎت ﻗﺎﻟﺒﺎً در ﻓﺎﻳﻞ ﻫﺎي ﭘﻴﻜﺮﺑﻨﺪي درج ﻣﻲ ﺷﻮﻧﺪ. ﻣﺜﻼً در J2EE ﭼﻨﻴﻦ ﺗﻮﺻﻴﻔﺎﺗﻲ ﺑﺮاي ﻣﺆﻟﻔﻪ ﻫﺎي EJB ﺑﻪ ﺻﻮرت ﻳﻚ ﻓﺎﻳﻞ XML ﺑﻪ ﻧﺎم ejb-jar.xml ﻛﻪ اﺻﻄﻼﺣﺎً Deployment Descriptor

1 Attribute Based Programming 2 Page 3 Metadata

ﺧﻮاﻧﺪه ﻣﻲ ﺷﻮد در اﺧﺘﻴﺎر Application Server ﻗﺮار ﻣﻲ ﮔﻴﺮد. از ﻃﺮﻳﻖ اﻳﻦ ﻓﺎﻳﻞ ﻣﻲ ﺗﻮاﻧﻴﻢ ﺑ ﺮاي ﻛﻨﺘﺮل دﺳﺘﺮﺳﻲ ﻫﺎ و ﻣﺠﺎزﺷﻨﺎﺳﻲ، اﺳﺘﻔﺎده ﺑﻬﻴ ﻨﻪ از ﻣﻨﺎﺑﻊ، ﻛﻨﺘﺮل ﺗﺮاﻛﻨﺶ ﻫﺎ و ﺑﺮﺧﻲ ﻣﻮارد دﻳﮕﺮ ﺑﺪون ﻧﻴﺎز ﺑﻪ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ از Application Server ﺳﺮوﻳﺴﻬﺎي را درﻳﺎﻓﺖ ﻛﻨﻴﻢ. ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ ﺑﻪ ﻣﺎ اﻳﻦ اﻣﻜﺎن را ﻣﻲ دﻫﺪ ﻛﻪ ﺑﺠﺎي وﻳﺮاﻳﺶ ﻓﺎﻳﻠﻬﺎي ﭘﻴﻜﺮﺑﻨﺪي اﻳﻦ ﺗﻮﺻﻴﻔﺎت را ﺑﻪ اﻟﻤﺎﻧﻬﺎي زﺑﺎن ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﻧﺴﺒﺖ دﻫﻴﻢ. ﻣﺜﻼً ﺑﺠﺎي درج وﻳﮋﮔﻲ ﻫﺎي ﺗﺮاﻛﻨﺸﻲ ﻣﺘﺪﻫﺎي ﻳﻚ EJB در Deployment Descriptor ﺑﻪ ﻫﺮ ﻳﻚ از ﻣﺘﺪﻫﺎي آن ﺻﻔﺘﻲ اﺧﺘﺼﺎص دﻫﻴﻢ ﻛﻪ وﻳﮋﮔﻲ ﺗﺮاﻛﻨﺸﻲ آن ﻣﺘﺪ را ﻣﺸﺨﺺ ﻛﻨﺪ. ﺑﻪ اﻳﻦ ﺗﺮﺗﻴﺐ Application Server ﻛﻪ در واﻗﻊ ﺑﺴﺘﺮ اﺟﺮاي EJB ﻣﺤﺴﻮب ﻣﻲ ﺷﻮد ﻣﻲ ﺗﻮاﻧﺪ ﻫﻨﮕﺎم ﻓﺮاﺧﻮاﻧﻲ ﻣﺘﺪﻫﺎ – ﺑﺎ اﺳﺘﻔﺎده از ﻣﻜﺎﻧﻴﺰم Reflection ﻣﻘﺎدﻳﺮ ﺻﻔﺎت آﻧﻬﺎ را ﺑﺎزﻳﺎﺑﻲ ﻛﻨﺪ و - ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺻﻔﺎت آﻧﻬﺎ 4 اﻗﺪام ﺑﻪ ﻣﺪﻳﺮﻳﺖ، ﺑﺎز ﻛﺮدن ﻳﺎ ﺑﺴﺘﻦ ﺗﺮاﻛﻨﺸﻬﺎ ﻧﻤﺎﻳﺪ . در ﺻﻮرت اﺳﺘﻔﺎده از ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ ﺑﺮاي ﺗﻐﻴﻴﺮ رﻓﺘﺎر ﻳﻚ EJB ﻧﻴﺎز ﺑﻪ ﺗﻐﻴﻴﺮ ﺑﻴﺶ از ﻳﻚ ﻓﺎﻳﻞ ( ﻛﻼس ﻣﺮﺑﻮﻃﻪ و ﻓﺎﻳﻞ ﭘﻴﻜﺮ ﺑﻨﺪي ) ﻧﺨﻮاﻫﺪ ﺑﻮد و ﻫﺮﮔﻮﻧﻪ ﺗﻐﻴﻴﺮي در ﻫﻤﺎن ﻓﺎﻳﻞِ ﻛﻼس اﻋﻤﺎل ﻣﻲ ﺷﻮد.

ﻣﻮارد ﻛﺎرﺑﺮد ﺻﻔﺎت، از آﻧﭽﻪ ﻛﻪ ذﻛﺮ ﺷﺪ ﻓﺮاﺗﺮ اﺳﺖ . ﺻﻔﺎت درج ﺷﺪه روي ﻣﺆﻟﻔﻪ ﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻣﻲ ﺗﻮاﻧﻨﺪ ﻣﺒﻨﺎي ﻛﺎر 5 اﺑﺰارﻫﺎي ﺗﻮﻟﻴﺪ ﻛﺪ ﻗﺮار ﮔﻴﺮﻧﺪ ﻛﻪ اﻳﻦ ﻳﻜﻲ از ﻋﻤﺪه ﺗﺮﻳﻦ ﻣﻮارد اﺳﺘﻔﺎده از ﺻﻔﺎت ﻣﺤﺴﻮب ﻣﻲ ﺷﻮد. XDoclet ﻛﻪ ﺑﻲ ﺷﻚ ﻣﺤﺒﻮب ﺗﺮﻳﻦ و ﭘﺮ اﺳﺘﻔﺎده ﺗﺮﻳﻦ اﺑﺰار ﺗﻮﻟﻴﺪ ﻛﺪ ﻣﺘﻦ ﺑﺎز در ﺟﺎوا ﻣﺤﺴﻮب ﻣﻲ ﺷﻮد ﺑﺮ اﻳﻦ ﻣﺒﻨﺎ ﻋﻤﻞ ﻣﻲ ﻛﻨﺪ.

ﻣﻲ ﺗﻮان از اﻳﺪه درج ﺻﻔﺎت روي اﻟﻤﺎﻧﻬﺎي ﺗﺸﻜﻴﻞ دﻫﻨﺪة زﺑﺎﻧﻬﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ در ﺗﻮﺳﻌﻪ ﻣﺆﻟﻔﻪ ﻫﺎي وب ﻛﻪ در آﻧﻬﺎ 6 ﺑﺠﺎي زﺑﺎﻧﻬﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺑﺎ زﺑﺎﻧﻬﺎي ﻧﺸﺎﻧﻪ ﮔﺬاري و ﺑﻪ ﺧﺼﻮص HTML ﺳﺮ و ﻛﺎر دارﻳﻢ ﺑﻬﺮه ﺟﺴﺖ. ﺗﺎﻛﻨﻮن ﺑﻪ اﻳﻦ اﻳﺪه ﭘﺮداﺧﺘﻪ ﻧﺸﺪه اﺳﺖ اﻣﺎ ﺑ ﻪ ﻧﻈﺮ ﻣﻲ رﺳﺪ در ﺻﻮرﺗﻲ ﻛﻪ اﻣﻜﺎﻧﻲ ﻓﺮاﻫﻢ ﺷﻮد ﻛﻪ ﺑﺘﻮاﻧ ﻴﻢ ﺑﺮ روي اﺟﺰاي اﺻﻠﻲ 8 7 ﻳﻚ ﻣﺆﻟﻔﻪ وب ﻧﻴﺰ ﺷﺎﻣﻞ ﺻﻔﺤﺎت و ﺑﺮﭼﺴﺐ ﻫﺎي داﺧﻞ ﻫﺮ ﺻﻔﺤﻪ ﺻﻔﺎﺗﻲ درج ﻛﻨﻴﻢ در ﻣﻮرد ﻣﺆﻟﻔﻪ ﻫﺎي وب ﻧﻴﺰ ﺑﻪ دﺳﺘﺎوردﻫﺎي ﻣﺸﺎﺑﻬﻲ ﺧﻮاﻫﻴﻢ ﺪرﺳﻴ . .

در اداﻣﻪ ﺑﻪ ﻣﻌﺮﻓﻲ ﺑﺮﺧﻲ اﻣﻜﺎﻧﺎت ﻣﻮﺟﻮد ﺑﺮاي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ در زﺑﺎﻧﻬﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺧﻮاﻫﻴﻢ ﭘﺮداﺧﺖ. ﺳﭙﺲ ﺗﻼش ﻣﻲ ﻛﻨﻴﻢ ﺑﺎ ﺑﻴﺎن ﭼﻨﺪ ﻛﺎرﺑﺮد ﻧﻤﻮﻧﻪ از دﻳﺪﮔﺎه ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ در ﺗﻮﺳﻌﻪ ﻣﺆﻟﻔﻪ ﻫﺎي وب اﻫﻤﻴﺖ و ﺗ ﺄﺛﻴﺮ وﺟﻮد اﻳﻦ اﻣﻜﺎن را روﺷﻦ ﺳﺎزﻳﻢ و ﻧﻬﺎﻳﺘﺎً ﺑﻪ ﭘﻴﺸﻨﻬﺎد راه ﻛﺎري ﺑﺮاي ﺑﻮﺟﻮد آوردن اﻳﻦ اﻣﻜﺎن ﺧﻮاﻫﻴﻢ ﭘﺮداﺧﺖ.

ﻣﻌﺮﻓﻲ ﺑﺮﺧﻲ اﻣﻜﺎﻧﺎت ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ

.NET Framework در NET. اﻣﻜﺎن اﻳﺠﺎد و اﺳﺘﻔﺎده از ﺻﻔﺖ ﻫﺎ از ﻧﺴﺨﻪ اوﻟﻴﻪ آن ﻳﻌﻨﻲ ﻧﺴﺨﻪ 1.0 ﻓﺮاﻫﻢ ﺷﺪه اﺳﺖ. اﻳﻦ ﺑﺴﺘﺮ ﺑﻪ ﻣﺎ اﺟﺎزه ﻣﻲ دﻫﺪ ﺗﺎ ﺻﻔﺖ ﻫﺎي ﻣﻮرد ﻧﻈﺮ ﺧﻮد را اﻳﺠﺎد ﻛﻨﻴﻢ و آن ﻫﺎ را ﺑﻪ اﺟﺰاي ﻣﺨﺘﻠﻒ ﺑﺮﻧﺎﻣﻪ ﺧﻮد ﻧﺴﺒﺖ دﻫﻴﻢ. ﻛﺎﻣﭙﺎﻳﻠﺮ

4 ﺑﺮاي اﻃﻼع از ﻣﻜﺎﻧﻴﺰم دﻗﻴﻖ اﺳﺘﻔﺎده از ﺻﻔﺎت ﺑﺠﺎي Deployment Descriptor ﺑﻪ ﻣﺮﺟﻊ ﺷﻤﺎره ﻳﻚ ﻣﺮاﺟﻌﻪ ﻛﻨﻴﺪ. 5 Code Generators 6 Markup Language 7 Page 8 Tag

ﻣﻲ ﺗﻮاﻧﺪ اﻳﻦ ﺻﻔﺎت را در زﻣﺎن ﻛﺎﻣﭙﺎﻳﻞ ﺷﻨﺎﺳﺎﻳﻲ ﻛﻨﺪ و وﻳﮋﮔﻲ ﻫﺎي اﻋﻼم ﺷﺪه ﺗﻮﺳﻂ ﺻﻔﺎت را اﻋﻤﺎل ﻧ ﻤﺎﻳ ﺪ. ﺑﺮاي ﻧﻤﻮﻧﻪ ﺑﻪ ﻛﺪ زﻳﺮ ﺗﻮﺟﻪ ﻛﻨﻴﺪ: using System.Runtime.CompilerServices; public class Class1 { [MethodImpl(MethodImplOptions.Synchronized)] public void Method1() { // method implementation goes here } } در اﻳﻦ ﻣﺜﺎل، ﺻﻔﺖ MethodImpl ﺑﺎ ﭘﺎراﻣﺘﺮ MethodImpl.Synchronized ﺑﻪ ﻣﺘﺪ ﺑﺎ ﻧﺎم Method1 ﻧﺴﺒﺖ داده ﺷﺪه اﺳﺖ. در NET. ﺻﻔﺖ MethodImpl ﺑﺮاي ﺗﻨﻈﻴﻢ رﻓﺘﺎر ﻳﻚ ﻣﺘﺪ ﺑﻪ ﻛﺎر ﻣﻲ رود و 9 ﭘﺎراﻣﺘﺮ MethodImplOptions.Synchronized ﺑﻪ ﻛﺎﻣﭙﺎﻳﻠﺮ اﻋﻼم ﻣﻲ ﻛﻨﺪ ﻛﻪ ﺑ ﺪﻧﻪ اﻳﻦ ﻣﺘﺪ، ﻳﻚ ﻧﺎﺣﻴﻪ ﺑﺤﺮاﻧﻲ اﺳﺖ. ﺑﻪ اﻳﻦ ﺗﺮﺗﻴﺐ ﻛﺎﻣﭙﺎﻳﻠﺮ ﺧﻮد ﻛﺪ ﻣﺮﺑﻮط ﺑﻪ ﻧﺎﺣﻴ ﻪ ﺑﺤﺮاﻧﻲ را اﻳﺠﺎد ﻣﻲ ﻛﻨﺪ و ﻧﻴﺎز ﺑﻪ دﺧﺎﻟﺖ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺲ از ﺑﻴﻦ ﻣﻲ رود. ﻋﻼوه ﺑﺮ اﻳﻦ، اﻳﺠﺎد ﺻﻔﺎت ﺟﺪﻳﺪ در NET. ﺑﺴﻴﺎر ﺳﺎده و ﻫﻤﺎﻧﻨﺪ اﻳﺠﺎد دﻳﮕﺮ ﻛﻼس ﻫﺎ اﺳﺖ. ﺗﻨﻬﺎ ﻣﺤﺪودﻳﺖ اﻳﻦ اﺳﺖ ﻛﻪ ﻛﻼس ﻧﺸﺎن دﻫﻨﺪه ﺻﻔﺖ ﺑﺎﻳﺪ از ﻛﻼس System.Attribute ﻣﺸﺘﻖ ﺷﻮد. ﺑﺮاي ﻣﺜﺎل ﺻﻔﺖ زﻳﺮ را ﻣﻲ ﺗﻮان ﺑﺮاي ﻣﺸﺨﺺ ﻛﺮدن ﻧﻮﻳﺴ ﻨﺪة ﻣﺘﺪ ﻫﺎي ﺑﺮﻧﺎﻣﻪ اﻳﺠﺎد ﻛﺮد: [AttributeUsage(AttributeTargets.Method)] public class AuthorAttribute : System.Attribute { private string name; public class Class2 { public string Name { [Author(“Moayerzadeh”)] get { return name; } public void Method2() { } // ... public void AuthorAttribute( string n){ } name = n; } } }

ﻣﻘﺎدﻳﺮ اﻳﻦ ﺻﻔﺎت را ﻣﻲ ﺗﻮان در زﻣﺎن اﺟﺮا از ﻃﺮﻳﻖ ﻣﻜﺎﻧﻴﺰم Reflection ﺑﺎزﻳﺎﺑﻲ ﻧﻤﻮد و از آن ﻫﺎ ا ﺳﺘﻔﺎده ﻛﺮد. ﺑﺮاي ﻣﺜﺎل ﺑﺎ اﺳﺘﻔﺎده از ﺻﻔﺖ ﺗﻌﺮﻳﻒ ﺷﺪه AuthorAttribute ، ﻣﻲ ﺗﻮان ﺑﺮﻧﺎﻣﻪ اي اﻳﺠﺎد ﻛﺮد ﻛﻪ ﻣﺘﺪ ﻫﺎي ﺗﺸﻜﻴﻞ دﻫﻨﺪه ﻳﻚ ﻛﻼس را ﺑﻪ ﻫﻤﺮاه ﻧﺎ م ﻧﻮﻳﺴ ﻨﺪة ﻫﺮ ﻣﺘﺪ ﭼﺎپ ﻛﻨﺪ . .

10 ﺗﺎﻳﭗ ﻫﺎي ﺣﺎﺷﻴﻪ ﻧﻮﻳﺴﻲ دردر J2SE 5.0 ﺟﺎوا در ﻧﺴﺨﻪ 5 ﺧﻮد اﻣﻜﺎن ﺗﻌﺮﻳﻒ ﺻﻔﺎت و درج و ﻣﻘﺪاردﻫﻲ آﻧ ﻬﺎ روي اﺟﺰاي ﺑﺮﻧﺎﻣﻪ را ﺑﻪ وﺟﻮد آورد. اﻳﻦ ﺻﻔﺎت در ﺟﺎوا اﺻﻄﻼﺣﺎً ﺗﺎﻳﭗ ﻫﺎي ﺣﺎﺷﻴﻪ ﻧﻮﻳﺴﻲ ﺧﻮاﻧﺪه ﻣﻲ ﺷﻮﻧﺪ . J2SE 5.0 ﺑﻪ ﻣﺎ اﻣﻜﺎن ﻣﻲ دﻫﺪ ﺗﺎﻳﭗ ﻫﺎي ﺣﺎﺷﻴﻪ ﻧﻮﻳﺴﻲ دﻟﺨﻮاه ﺧﻮد را ﺑﻨﻮﻳﺴﻴﻢ و در زﻣﺎن اﺟﺮا – از ﻃﺮﻳﻖ ﻣﻜﺎﻧﻴﺰمِ Reflection - ﻳﺎ در زﻣﺎن ﻛﺎﻣﭙﺎﻳﻞ – ﻣﺜﻼً ﺑﺎ ﻛﻤﻚ ا ﺑﺰاري ﺑﻪ ﻧﺎم apt – اﻳﻦ ﺻﻔﺎت را ﺑﺎزﻳﺎﺑﻲ ﻛﻨﻴﻢ و ﻧﺴﺒﺖ ﺑﻪ آﻧﻬﺎ ﻋﻜﺲ اﻟﻌﻤﻞ ﻧﺸﺎن دﻫﻴﻢ. ﺑﻪ اﻳﻦ ﺗﺮﺗﻴﺐ ﻣﻲ ﺗﻮان ﺣﺠﻢ ﻛﺪ ﻣﻮرد ﻧﻴﺎز ﺑﺮاي ﻳﻚ ﻣﺆﻟﻔﺔ ﻧﺮم اﻓﺰاري را ﺗﺎ ﺣﺪ ﻗﺎﺑﻞ ﺗﻮﺟﻬﻲ ﻛﺎﻫﺶ داد. ﺑﺮاي ﻣﺜﺎل، ﺑﺮاي اﺳﺘﻔﺎده از ﺳﺮوﻳﺲ JAX-RPC ، ﻻزم اﺳﺖ ﻛﻪ واﺳﻂ Remote ﺗﻮﺳﻂ ﻛﻼس ﻣﺮﺑﻮﻃ ﻪ ﻴﺎدهﭘ ﺳﺎزي ﺷﻮد. ﺑﺪون وﺟﻮد ﺻﻔﺖ، ﻛ ﻼﺳﻬﺎي زﻳﺮ ﻻزم اﺳﺖ: //PingIF. //Ping.java

public interface PingIF extends Remote { public class Ping implements PingIF { public void ping() throws RemoteException; public void ping() { } //... } }

9 Critical Section 10 Annotation Types

اﻣﺎ در ﺻﻮرت وﺟﻮد ﺻﻔﺎت ، ﻛﺎر ﺑﻪ ﻣﺮاﺗﺐ ﺳﺎده ﺗﺮ ﺧﻮاﻫﺪ ﺑﻮد: public class Ping { public @remote void ping() { //... } }

11 ﺑﺮﻧﺎﻣﻪ ﺑﺎ درجِ ﺻﻔﺖremote @ ﺑﻪ ﻛﺎﻣﭙﺎﻳﻠﺮ – ﻳﺎ ﺑﻪ ﻋﺒﺎرت دﻗﻴﻖ ﺗﺮ Annotation Processor - اﻋﻼم ﻣﻲ ﻴﻢﻛﻨ ﻛﻪ ﻴﻢﻛﻨ ﭘﻴﺎده ﺳﺎزي واﺳﻂ Remote ﻻزم اﺳﺖ. ﺑﻪ اﻳﻦ ﺗﺮﺗﻴﺐ ﻛﺎﻣﭙﺎﻳﻠﺮ، ﭘﻴﺎده ﺳﺎزي ﻣﻨﺎﺳﺐ را ﻓﺮاﻫﻢ ﻣﻲ ﻛﻨﺪ. ﺗﻮﻟﻴﺪ ﺗﺎﻳﭙﻬﺎي 12 ﺣﺎﺷﻴﻪ ﻧﻮﻳﺴﻲ ﻣﺎﻧﻨﺪ remote ﻧﻴﺰ ﺳﺎده اﺳﺖ : : public @interface remote { //... }

در اداﻣﻪ ﺧﻮاﻫﻴﻢ دﻳﺪ ﻛﻪ ﻣﺎ ﻧﻴﺰ ﺑﺮاي ﻗﺮار دادن ﺻﻔﺎت در ﻓﺎﻳﻞ ﻫﺎي JSP دﻗﻴﻘﺎً از ﻫﻤﻴﻦ ﺗﺎﻳﭗ ﻫﺎي ﺣﺎﺷﻴﻪ ﻧﻮﻳﺴﻲ ﺑﻬﺮه ﺧﻮاﻫﻴﻢ ﮔﺮﻓﺖ.

XDoclet XDoclet – ﻛﻪ ﻳﻚ اﺑﺰار ﺗﻮﻟﻴﺪ ﻛﺪ ﻣﺘﻦ ﺑﺎز ﺑﺴﻴﺎر ﻣﺤﺒﻮب و ﭘﺮاﺳﺘﻔﺎده ﻣﺤﺴﻮب ﻣﻲ ﺷﻮد - زﻣﺎﻧﻲ ﺑﻪ وﺟﻮد آﻣﺪ ﻛﻪ اﻣﻜﺎن ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ در زﺑﺎن ﺟﺎوا وﺟﻮد ﻧﺪاﺷﺖ و ﺗﻮاﻧﺴﺖ اﻳﻦ اﻣﻜﺎن را ﺗﺎ ﺣﺪي ﻓﺮاﻫﻢ ﺳﺎزد. ﻣﺒﻨﺎي ﻛﺎر XDoclet ﺑﻪ اﻳﻦ ﺷﻜﻞ اﺳﺖ ﻛﻪ ﺑﻪ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺲ اﻣﻜﺎن ﻣﻲ دﻫﺪ ﺻﻔﺎت را ﺑﻪ ﺻﻮرت ﻫﺎي ﻛﻪ در واﻗﻊ 13 ﺗﻮﺿﻴﺢ ﻣﺤﺴﻮب ﻣﻲ ﺷﻮﻧﺪ در ﺑﺎﻻي اﺟﺰاي ﻣﺨﺘﻠﻒ ﺑﺮﻧﺎﻣﻪ درج ﻛﻨﺪ. ﺑﺮاي ﭘﺮدازش ﺻﻔﺎت و ﺗﻮﻟﻴﺪ ﻛﺪ از روي آﻧﻬﺎ 14 ﻳﻜﺴﺮي ﺑﺮﭼﺴﺐ ANT وﺟﻮد دارﻧﺪ ﻛﻪ ﭘﺲ از اﺟﺮا ﺑﺎ ﺗﻮ ﺟﻪ ﺑﻪ ﻣﻘﺎدﻳﺮ ﺻﻔﺎت درج ﺷﺪه، اﻗﺪام ﺑﻪ ﺗﻮﻟﻴﺪ ﻛﺪ ﻣﻲ ﻛﻨﻨﺪ. XDoclet ادﻋﺎ ﻣﻲ ﻛﻨﺪ ﻣﻲ ﺗﻮاﻧﺪ ﺑﻴﺶ از 85 درﺻﺪ ﻛﺪﻫﺎي ﻣﻮرد ﻧﻴﺎز در J2EE از ﺟﻤﻠﻪ ﻓﺎﻳﻠﻬﺎي ﭘﻴﻜﺮﺑﻨﺪي و Deploymnet Descriptor را ﺗﻮﻟﻴﺪ ﻛﻨﺪ. ﺑﺮاي اﻃﻼﻋﺎت ﺑﻴﺸﺘﺮ در اﻳﻦ زﻣﻴﻨﻪ ﻣﻲ ﺗﻮاﻧﻴﺪ ﺑﻪ ﻣﺮﺟﻊ ﺷﻤﺎره ﺳﻪ رﺟﻮع ﻛﻨﻴﺪ. از آﻧﺠﺎ ﻛﻪ اﻳﺪة اﺳﺘﻔﺎده از ﺻﻔﺎت در وب اﻳﺪه اي ﺟﺪﻳﺪ اﺳﺖ و ﺻﻔﺎت ﺑﻮﺳﻴﻠﺔ ﺗﻔﺴﻴﺮﮔﺮﻫﺎي ﻣﺆﻟﻔﻪ ﻫﺎي وب ﻗﺎﺑﻞ ﻛﺎﻣﭙﺎﻳﻞ ﻧﻴﺴﺘﻨﺪ ﺑﺮاي اﺳﺘﻔﺎده از ﻣﻔﺎﻫﻴﻢ ﺻﻔﺖ ﻣﺒﻨﺎ در وب از راه ﺣﻠﻲ ﻣﺸﺎﺑﻪ XDoclet ﺑﻬﺮه ﺧﻮاﻫﻴﻢ ﮔﺮﻓﺖ.

ﺑﺮﺧﻲ ﻛﺎرﺑﺮدﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ در وب

در اﻳﻦ ﺑﺨﺶ ﺑﻪ ﺑﻴﺎن اﻫﻤﻴﺖ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ در وب و ذﻛﺮ ﺑﺮﺧﻲ ﻛﺎرﺑﺮدﻫﺎي آن ﺧﻮاﻫﻴﻢ ﭘﺮداﺧﺖ. اﺑﺘﺪا ﺑﺮﺧﻲ از ﻣﻬﻤﺘﺮﻳﻦ ﻛﺎرﺑﺮدﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ در زﺑﺎﻧﻬﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ را ﺑﺮرﺳﻲ ﻣﻲ ﻛﻨﻴﻢ: - ﻣﺸﺨﺺ ﻛﺮدن ﻣﺤﺪودﻳﺖ ﻫﺎي اﻣﻨﻴﺘﻲ : ﺑﺎ ﻗﺮار دادن ﺻﻔﺎﺗﻲ ﺑﺮ روي ﻣﺆ ﻟﻔﻪ ﻫﺎ ﻳﺎ ﺑﺮﺧﻲ ﻣﺘﺪﻫﺎ ي آﻧﻬﺎ ﻲﻣ ﺗﻮان ﻣﺸﺨﺺ ﻛﺮد ﭼﻪ ﻧﻘﺶ ﻫﺎي اﻣﻨﻴﺘﻲ ﻣﺠﺎز ﺑﻪ اﺳﺘﻔﺎده از ﻳﻚ ﻣﺆ ﻟﻔﻪ ﻳﺎ ﻳﻚ ﻣﺘﺪ ﻣﻲ ﺑﺎﺷﻨﺪ.

11 ﻣﻘﺼﻮد از ﻛﺎﻣﭙﺎﻳﻠﺮ ﻣﻔﻬﻮم ﻋﺎم آن اﺳﺖ ﻧﻪ ﺑﺮﻧﺎﻣﻪ اي ﻛﻪ ﻛﺪﻫﺎي ﻣﻨﺒﻊ ﺟﺎوا را ﺑﻪ ﺑﺎﻳﺖ ﻛﺪ ﺗﺒﺪﻳﻞ ﻣﻲ ﻛﻨﺪ. 12 ﺑﺮاي اﻃﻼع دﻗﻴﻖ از ﻧﺤﻮة ﺗﻌﺮﻳﻒ و اﺳﺘﻔﺎده از ﺗﺎﻳﭗ ﻫﺎي ﺣﺎﺷﻴﻪ ﻧﻮﻳﺴﻲ ﻣﻲ ﺗﻮاﻧﻴﺪ ﺑﻪ ﻣﺮﺟﻊ ﺷﻤﺎره دو ﻣﺮاﺟﻌﻪ ﻓﺮﻣﺎﻳﻴﺪ. 13 Comment ANT 14 ﻳﻚ اﺑﺰار ﺳﺎﺧﺖ ( Build Tool ) ﭼﻨﺪﺳﻜﻮﻳﻲ ﻣﺒﺘﻨﻲ ﺑﺮ XML اﺳﺖ ﻛﻪ ﺑﻪ زﺑﺎن ﺟﺎوا ﻧﻮﺷﺘﻪ ﺷﺪه و ﻋﻤﻠﻜﺮد آن ﺑﺎ make ﻣﺸﺎﺑﻬﺖ دارد. ﺑﺮاي اﻃﻼﻋﺎت ﺑﻴﺸﺘﺮ در اﻳﻦ زﻣﻴﻨﻪ ﻣﻲ ﺗﻮاﻧﻴﺪ ﺑﻪ ﺳﺎﻳﺖhttp://ant.apache.org  ﻣﺮاﺟﻌﻪ ﻛﻨﻴﺪ.

- ﻣﺪﻳﺮﻳﺖ ﺗﺮاﻛﻨﺶ ﻫﺎ : ﺑﻪ ﺟﺎي ﻣﺪﻳﺮﻳﺖ ﺗﺮاﻛﻨﺶ ﻫﺎ در ﻣﺘﺪﻫﺎي ﻣﺨﺘﻠﻒ ﻳﻚ ﻣﺆﻟﻔﺔ ﻧﺮم اﻓﺰاري ، ﻣﻲ ﺗﻮان ﺑﺎ ﻣﺸﺨﺺ ﻛﺮدن وﻳﮋﮔﻲ ﺗﺮاﻛﻨﺸﻲ ﻣﺘﺪﻫﺎ در ﻗﺎﻟﺐ ﺻﻔﺎت ، ﻣﺪﻳﺮﻳﺖ ﺗﺮاﻛﻨﺸﻬﺎ را ﺑﻪ ﺑﺴﺘﺮ اﺟﺮاﻳﻲ واﮔﺬا ر ﻛﺮد. - ﻗﺎﺑﻠﻴﺖ ﺳﺮﻳﺎﻟﻲ ﺷﺪن: ﺑﺮاي اﻳﺠﺎد ﻗﺎﺑﻠﻴﺖ ﺳﺮﻳﺎﻟﻲ ﺷﺪن در ﻛﻼﺳﻬﺎ ﻣﻲ ﺗﻮان ﺑﻪ ﺟﺎي اﻳﺠﺎد ﻣﺴﺘﻘﻴﻢ اﻳﻦ ﻗﺎﺑﻠﻴﺖ ﺗﻮﺳﻂ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ در ﻫﺮ ﻛﻼس ، وﺟﻮد اﻳﻦ ﻗﺎﺑﻠﻴﺖ را ﺑﻪ وﺳﻴﻠﻪ ﺻﻔﺎت ﺑﻪ ﻣﺤﻴﻂ اﺟﺮاﻳﻲ ﻳﺎ ﻳﻚ ﻛﺘﺎﺑﺨﺎﻧﻪ اﻋﻼم ﻛﻨﻴﻢ ﺗﺎ ﻣﺤﻴﻂ اﺟﺮا ﻳﺎ ﻛﺘﺎﺑﺨﺎﻧﻪ ﻣﻮرد ﻧﻈﺮ ﻧﺴﺒﺖ ﺳﺮﻳﺎﻟﻲ ﻛ ﺮدن ﻛﻼس اﻗﺪام ﻛﻨﺪ (اﻳﻦ ﻛﺎر دﻗﻴﻘﺎً ﺑﻪ ﻫﻤﻴﻦ ﺻﻮرت در ﭼﺎرﭼﻮب ﻛﺎري NET. اﻧﺠﺎم ﻣﻲ ﺷﻮد) . . - ﺗﻮﻟﻴﺪ ﻛﺪ : ﻫﻤﺎﻧﻄﻮر ﻛﻪ ذﻛﺮ ﺷﺪ ﺳﺎدﮔﻲ ﻋﻤﻠﻜﺮد اﺑﺰارﻫﺎي ﺗﻮﻟﻴﺪ ﻛﺪ ﻳﻜﻲ از ﻣﻬﻤﺘﺮﻳﻦ آورده ﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ ﻣﻲ ﺑﺎﺷﺪ. در ﺑﺴﻴﺎري از ﻛﺎرﺑﺮدﻫﺎ، ﻻزم اﺳﺖ ﻛﺪﻫﺎﻳﻲ ﺑﺮ اﺳﺎس اﻟﮕﻮﻫﺎﻳﻲ ﻣﺸ ﺨﺺ و از ﭘﻴﺶ ﺗﻌﻴﻴﻦ ﺷﺪه ﻛﻪ ﺑﺮ اﺳﺎس ﻛﺎرﺑﺮد ﺑﻪ ﺻﻮرت ﻣﺨﺘﺼﺮ ﺳﻔﺎرﺷﻲ ﻣﻲ ﺷﻮﻧﺪ اﻳﺠﺎد ﺷﻮﻧﺪ. در اﻳﻦ ﮔﻮﻧﻪ ﻣﻮارد ﻣﻲ ﺗﻮان ﺑﻪ ﺟﺎي ﺗﻮﻟﻴﺪ اﻳﻦ ﻛﺪﻫﺎ ﺑﻪ روش ﻣﺴﺘﻘﻴﻢ، آﻧﻬﺎ را ﺑﻪ ﻛﻤﻚ ﺻﻔﺖ ﻣﻌﺮﻓﻲ ﻧﻤﻮده ﺗﺎ ﺑﻪ ﺻﻮرت ﺧﻮدﻛﺎر ﺗﻮﻟﻴﺪ ﺷﻮﻧﺪ. 15 - ﻫﻤﮕﺎم ﺳﺎزي : ﻣﻤﻜﻦ اﺳﺖ ﺑﺮﺧﻲ ﻣﺘﺪﻫﺎي ﻳﻚ ﻛﻼس ﻧﺎﺣﻴﻪ ﻫﺎ ي ﺑﺤﺮاﻧﻲ ﻣﺤﺴﻮب ﺷﻮﻧﺪ. ﺑﺮاي ﻛﻨﺘﺮل ﻋﺪم ﻫﻤﺰﻣﺎﻧﻲ در ﻓﺮاﺧﻮاﻧﻲ اﻳﻦ ﻣﺘﺪﻫﺎ در زﺑﺎن ﺟﺎوا از ﻛﻠﻤﺔ ﻛﻠﻴﺪي synchronized اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد. Virtual Machine ﻛﻨﺘﺮل ﻣﻲ ﻛﻨﺪ ﻛﻪ ﻫﻤﺰﻣﺎن دو رﻳﺴﻤﺎن وارد ﻧﺎﺣﻴﻪ ﺑﺤﺮاﻧﻲ ﻧﺸﻮﻧﺪ. در NET. ﻣﻌﺮﻓﻲ ﻣﺘﺪﻫﺎﻳﻲ ﻛﻪ ﻧﺎﺣﻴﻪ ﺑﺤﺮاﻧﻲ ﻣﺤﺴﻮب ﻣﻲ ﺷﻮﻧﺪ از ﻃﺮﻳﻖ درج ﻲﺻﻔﺘ روي ﻣﺘﺪ ﺻﻮرت ﻣﻲ ﮔﻴﺮد. ﺑﺎ اﻳﻦ ﭘﻴﺶ زﻣﻴﻨﻪ ﻣﻲ ﺗﻮاﻧﻴﻢ ﺑﻪ ﺑﻴﺎن ﺑﺮﺧﻲ از ﻛﺎرﺑﺮدﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ در وب ﺑﭙﺮدازﻳﻢ. ﻣﺆﻟﻔﻪ ﻫﺎي وب ﻧﻴﺰ ﻣﻌﻤﻮﻻً ﻳﻚ ﻓﺎﻳﻞ ﭘﻴﻜﺮﺑﻨﺪي دارﻧﺪ ﻛﻪ ﺑﺎ اﻋﻤﺎل ﺑﺮﺧﻲ ﺗﻨﻈﻴﻤﺎت در آن ﻣﻲ ﺗﻮان ﺳﺮوﻳﺲ ﻫﺎﻳﻲ از ﺑﺴﺘﺮ اﺟﺮاﻳﻲ آﻧﻬﺎ ﮔﺮﻓﺖ. ﻣﺜﻼً در J2EE ، ﺗﻨﻈﻴﻤﺎت ﻫﺮ ﻣﺆﻟﻔﺔ وب در ﻗﺎﻟﺐ XML در ﻓﺎﻳﻠﻲ ﺑﻪ ﻧﺎم web.xml ﻛﻪ Deployment 16 Descriptor آن ﻣﺆﻟﻔﻪ ﻣﺤﺴﻮب ﻣﻲ ﺷﻮد، اﻋﻤﺎل ﻣﻲ ﮔﺮدد. از ﻃﺮﻳﻖ اﻳﻦ ﻓﺎﻳﻞ ﻣﻲ ﺗﻮان ﻓﺎﻳﻞ ﻫﺎي ﺧﻮش آﻣﺪﮔﻮﻳﻲ را ﻣﺸﺨﺺ ﻧﻤﻮد، ﺗﻨﻈﻴﻤﺎت اﻣﻨﻴﺘﻲ ﻻزم ﺑﺮاي ﻫﻮﻳﺖ ﺷﻨﺎﺳﻲ و ﻣﺠﺎزﺷﻨﺎﺳﻲ و ﻣﺤﺪود ﻛﺮدن دﺳﺘﺮﺳﻲ ﻫﺎ را اﻋﻤﺎل ﻧﻤﻮد، ﻓﻴﻠﺘﺮﻫﺎ و Listener ﻫﺎ را ﻣﻌﺮﻓﻲ ﻛﺮد و ﺑﺮاي اﻧﺠﺎم URL Mapping از آن ﺑﻬﺮه ﺑﺮد. ﺿﻤﻨﺎً ﻣﻌﻤﻮﻻً ﺑﺮاي ﺗﻮﺳﻌﻪ 18 17 ﻣﺆﻟﻔﻪ ﻫﺎي وب از اﻣﻜﺎﻧﺎﺗﻲ ﻣﺎﻧﻨﺪ Struts و Sitemesh ﻧﻴﺰ ﺑﻬﺮه ﻣﻲ ﮔﻴﺮﻳﻢ ﻛﻪ ﻫﺮ ﻳﻚ، ﭘﻴﻜﺮﺑﻨﺪي ﺧﺎص ﺧﻮد را دارﻧﺪ. ﺑﻪ ﺷﻜ ﻞ ﻣﺸﺎﺑﻬﻲ ﻣﻲ ﺗﻮان ﺑﻪ ﺟﺎي وﻳﺮاﻳﺶ ﻓﺎﻳﻠﻬﺎي ﭘﻴﻜﺮﺑﻨﺪي از درج ﺻﻔﺎت در ﺻﻔﺤﺎت وب ﺑﻬﺮه ﺑﺮد. ﻣﻮارد زﻳﺮ را ﻣﻲ ﺗﻮان ﺑﻪ ﻋﻨﻮان ﻧﻤﻮﻧﻪ ﻫﺎﻳﻲ از ﻛﺎرﺑﺮدﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ در وب ﻧﺎم ﺑﺮد:

15 Synchronization 16 در ﺻﻮرﺗﻲ ﻛﻪ ﻛﺎرﺑﺮ در ﻣﺮورﮔﺮ وب ﻧﺎم ﻓﺎﻳﻞ ﺧﺎﺻﻲ را ﻧﻴﺎورد – و ﺑﻪ ذﻛﺮ ﻧﺎم داﻳﺮﻛﺘﻮري اﻛﺘﻔﺎ ﻛﻨﺪ - ﺧﺪﻣﺘﮕﺰار وب ﺑﻪ ﻃﻮر ﭘﻴﺶ ﻓﺮض ﻳﻚ ﻓﺎﻳﻞ از داﻳﺮﻛﺘﻮري ﻣﺮﺑﻮﻃﻪ ( ﻣﺎﻧﻨﺪ index.html ﻳﺎ index.jsp ) را ﺑﻪ ﻧﻤﺎﻳﺶ درﺧﻮاﻫﺪ آ د.ور ﺑﻪ ﭼﻨﻴﻦ ﻓﺎﻳﻠﻲ اﺻﻄﻼﺣﺎً ﻓﺎﻳﻞ ﺧﻮش آﻣﺪﮔﻮﻳﻲ ( Welcome File ) ﮔﻔﺘﻪ ﻣﻲ ﺷﻮد. 17 ﺑﺮاي اﻃﻼﻋﺎت ﺑﻴﺸﺘﺮ ﺑﻪ http://struts.apache.org ﻣﺮاﺟﻌﻪ ﻛﻨﻴﺪ. 18 ﺑﺮاي اﻃﻼﻋﺎت ﺑﻴﺸﺘﺮ ﺑﻪ http://opensymphony.com/sitemesh ﻣﺮاﺟﻌﻪ ﻛﻨﻴﺪ.

- ﻣﺸﺨﺺ ﻛﺮدن ﻣﺤﺪودﻳﺖ ﻫﺎي دﺳﺘﺮﺳﻲ : ﺑﺮاي ﻣﺸﺨﺺ ﻛﺮدن اﻳﻨﻜﻪ ﭼﻪ دﺳﺘﻪ از ﻛﺎرﺑﺮان ﺣﻖ دﺳﺘﺮﺳﻲ ﺑﻪ ﻳﻚ ﺻﻔﺤﻪ را دارﻧﺪ ﻣﻲ ﺗﻮان ﺻ ﻔﺎﺗﻲ ﻣﺎﻧﻨﺪ PagePermission را ﺑﺮاي ﺻﻔﺤﻪ ﻣﻘﺪاردﻫﻲ ﻧﻤﻮد. - ﻣﺸﺨﺺ ﻛﺮدن ﻓﺎﻳﻠﻬﺎي ﺧﻮش آﻣﺪﮔﻮﻳﻲ : ﺑﻪ ﺟﺎي ﻣﻌﺮﻓﻲ ﻓﺎﻳﻠﻬﺎي ﺧﻮش آﻣﺪﮔﻮﻳﻲ در Deployment Descriptor ﻣﻲ ﺗﻮاﻧﻴﻢ از درج ﻳﻚ ﺻﻔﺖ ﺑﻪ ﻧﺎم WelcomeFile روي ﺻﻔﺤ ﻪ اﺳﺘﻔﺎده ﻛﻨﻴﻢ. - URL Mapping : ﭼﻨﺎﻧﭽﻪ ﺑﺨﻮاﻫﻴﻢ ﺑﻪ ازاي درﺧﻮاﺳﺖ ﻳﻚ URL ﻣﺎﻧﻨ ﺪ calc/add/ ﻓﺎﻳﻠﻲ ﻣﺎﻧﻨﺪ add.jsp ﻧﻤﺎﻳﺶ داده ﺷﻮد ﺑﺎﻳﺪ از URL Mapping اﺳﺘﻔﺎده ﻛﻨ ﻴﻢ و آدرسِ calc/add/ را ﺑﻪ add.jsp/ ﻧﮕﺎﺷﺖ ﻛﻨﻴﻢ . در ﺣﺎل ﺣﺎﺿﺮ اﻳﻦ اﻣﻜﺎن ﺑﺎ وﻳﺮاﻳﺶ Deployment Descriptor ﻓﺮاﻫﻢ ﻣﻲ ﺷﻮد . ﺑﺎ اﺳﺘﻔﺎده از ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ ﻣﻲ ﺗﻮان ﺑﻪ ﻛﻤﻚ ﺻﻔﺎت اﻳﻦ URL ﻫﺎ را ﻣﺸﺨﺺ ﻧﻤﻮد. - Exception Handling : ﻣﻌﻤﻮﻻً در ﻫﺮ ﻣﺆ ﻟﻔﻪ وب ﺑﻪ ازاي ﻫﺮ ﺧﻄﺎي HTTP ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﭘﻴﺪا ﻧﺸﺪن ﻳﻚ ﺻﻔﺤﻪ (ﺧﻄﺎي 404 ) ، ﻳﺎ ﻫﺮ ﻧﻮع Exception ، ﺻﻔﺤ ﺔ وﻳﮋه اي ﺑﻪ ﻛﺎرﺑﺮ ﻧﻤﺎﻳﺶ داده ﻣﻲ ﺷﻮد. ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺲ ﺻﻔﺤﺎت ﻣﻌﺎدل ﺧﻄﺎﻫﺎ و Exception ﻫﺎ را در Deployment Descriptor ﻣﺸﺨﺺ ﻣﻲ ﻛﻨﺪ. ﺑﻪ ﻛﻤﻚ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ ﻣﻲ ﺗﻮاﻧ ﻴﻢ ﺑﺎ درج ﻲﺗﺎﺻﻔ روي اﻳﻦ ﺻﻔﺤﺎت ، ﻣﺸﺨﺺ ﻛﻨﻴﻢ ﻫﺮ ﻳﻚ ﺑﻪ ازاي ﭼﻪ ﺧﻄﺎﻳﻲ ﺑﺎﻳﺪ ﻧﻤﺎﻳﺶ داده ﺷﻮﻧﺪ. - Caching : در ﻣ ﻟﻔﻪﺆ ﻫﺎ ي وب ﻣﻲ ﺗﻮان ﺑﺎ اﺳﺘﻔﺎده از ﻓﻴﻠﺘﺮ ﺑﺮﺧﻲ از ﻣﻨﺎﺑﻊ را cache ﺮدﻛ . ﺑﺮاي ﺳﻴﺎﺳﺘ ﮕﺬاري اﻳ ﻦ cache ﺑﻪ ازاي ﺻﻔﺤﺎت ﻣﺨﺘﻠﻒ ﻣﻲ ﺗﻮان از درج ﺻﻔﺎت ﺑﺮ روي ﺻﻔﺤﺎت ﻣﻮردﻧﻈﺮ اﺳﺘﻔﺎده ﻧﻤﻮد. - Layout : ﻣﻌﻤﻮﻻً ﻫﺮ ﮔﺮوه از ﺻﻔﺤﺎت ﻳﻚ ﻣﺆﻟﻔﺔ وب از ﻳﻚ ﺳﺎﺧﺘﺎر ( Layout ) ﻣﺸﺨﺺ ﺗﺒﻌﻴﺖ ﻣﻲ ﻛﻨﻨﺪ و ﻇﺎﻫﺮي ﻣﺸﺎﺑﻪ دارﻧﺪ . اﺑﺰارﻫﺎﻳﻲ ﻣﺎﻧﻨﺪ Sitemesh ﺑﺎ ﻓﺮاﻫﻢ آوردن ﻳﻚ Template Service ﺑﻪ ﻣﺎ ﻛﻤﻚ ﻣﻲ ﻛﻨﻨﺪ ﻗﺴﻤﺖﻫﺎي ﻣﺸﺘﺮك ﺻﻔﺤﺎت را ﺑﺎ ﻫﺰﻳﻨﻪ ﻛﻤﺘﺮي ﺗﻮﻟﻴﺪ و ﻣﺪﻳﺮﻳﺖ ﻛﻨﻴﻢ . ﺑﺮاي ﻣﺸﺨﺺ ﺷﺪن ﺳﺎﺧﺘﺎر ﺻﻔﺤﺎت ﻧﻴﺰ ﻣﻲ ﺗﻮان از درج ﺻﻔ ﺎت ﻣﺘﻨﺎﺳﺐ ﺑﺮ روي آﻧﻬﺎ اﺳﺘﻔﺎده ﻧﻤﻮد. ﻣﻮارد ﻛﺎرﺑﺮد ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ ﺑﻪ اﻳﻦ ﻣﻮارد ﻣﺤﺪود ﻧﻤﻲ ﺷﻮد و ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺲ ﺑﺎﻳﺪ ﺑﺘﻮاﻧﺪ ﺑﻪ دﻟﺨﻮاه ﺧﻮد ﺻﻔﺎﺗ ﻲ ﻲ ﺗﻌﺮﻳﻒ و از آﻧﻬﺎ اﺳﺘﻔﺎده ﻛﻨﺪ.

ﺗﻌﺮﻳﻒ و اﺳﺘﻔﺎده از ﺻﻔﺎت در وب

در زﺑﺎن ﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺷﻲء ﮔﺮا اﺟﺰاي اﺻﻠﻲ زﺑﺎن ﻛﻪ روي آﻧﻬﺎ ﺻﻔﺖ درج ﻣﻲ ﺷﻮد ﺷﺎﻣﻞ ﻣﺘﺪﻫﺎ، ﻓﻴﻠﺪﻫﺎ و ﺧﻮد ﻛﻼس ﻫﺎ ﻣﻲ ﺷﻮد. در زﺑﺎن ﻫﺎي ﻧﺸﺎﻧﻪ ﮔﺬاري ﻣﺎﻧﻨﺪ HTML اﺟﺰاي ﺗﺸﻜﻴﻞ دﻫﻨﺪه ﻛﻪ اﺧﺘﺼﺎص ﺻﻔﺖ ﺑ ﻪ آﻧﻬﺎ ﻣﻲ ﺗﻮاﻧﺪ ﻣﻮﺿﻮﻋﻴﺖ داﺷﺘﻪ ﺑﺎﺷﺪ ﺻﻔﺤﺎت و ﺑﺮﭼﺴﺐ ﻫﺎي ﻣﻮﺟﻮد در ﺻﻔﺤﺎت ﻣﻲ ﺑﺎﺷﻨﺪ. ﺑﺎﻳﺪ راﻫﻜﺎري ﺑﺮاي ﺗﻌﺮﻳﻒ ﺻﻔﺎت،

درج آﻧﻬﺎ روي ﺻﻔﺤﺎت و ﺑﺮﭼﺴﺐ ﻫﺎ و ﭘﺮدازش آﻧﻬﺎ ﭘﻴﺸﻨﻬﺎد ﮔﺮدد. در ﭘﻴﺸﻨﻬﺎد اراﺋﻪ ﺷﺪه، ﻗﻮاﻋﺪ ﻧﺤﻮي ﻣﻮرد اﺳﺘﻔﺎده ﺑﺮ ﻣﺒﻨﺎي ﻓﻨﺎوري Java Server Pages ﻣﻲ ﺪ.ﺑﺎﺷ - ﺗ ﻌﺮﻳﻒ و ﻣﻘﺪاردﻫﻲ ﺻﻔﺖ ﺑﺮاي ﺑﺮﭼﺴﺒﻬﺎ : ﻫﺮ ﺑﺮﭼﺴﺐ در زﺑﺎﻧﻬﺎي ﻧﺸﺎﻧﻪ ﮔﺬاري ﻣﻲ ﺗﻮاﻧﺪ داراي ﺗﻌﺪادي ﺻﻔﺖ ﻳﺎ ﭘﺎراﻣﺘﺮ ﺑﺎﺷﺪ . ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﺑﺮﭼﺴﺐِ ﻣﺮﺑﻮط ﺑﻪ ﻓﻮﻧﺖ در زﺑﺎن HTML – ﺑﻪ ﻧﺎم - داراي ﺻﻔﺎت رﻧﮓ و ﺳﺎﻳﺰ اﺳﺖ. ﺑﻨﺎﺑﺮاﻳﻦ ﺑﺮاي اﺧﺘﺼﺎصِ ﺻﻔﺎت ﺑﻪ ﻳﻚ ﺑﺮﭼﺴﺐ ﻲﻣ ﺗ ﻮان اﻳﻦ ﺻﻔﺎ ت را در ﻛﺘﺎر ﺻﻔﺎت اﺻﻠﻲ آن ﺑﺮﭼﺴﺐ آورد. اﻟﺒﺘﻪ اﻳﻦ روش داراي ﻣﺤﺪودﻳﺘﻬﺎﻳﻲ ﻧﻴﺰ ﻫﺴﺖ

اﻣﺎ در ﻫﺮ ﺻﻮرت ﻋﻤﺪة ﻧﻴﺎز ﻫﺎي ﻣﻮرد ﻧﻈﺮ ﻣﺎ را ﻣﺮﺗﻔﻊ ﻣ ﻲ ﺳﺎزد و از ﺳﺎدﮔﻲ ﻻزم ﻧﻴﺰ ﺑﺮﺧﻮردار اﺳﺖ. 19 در Tapestry ﻧﻴﺰ ﺑﺮاي اﺿﺎﻓﻪ ﻛﺮدن ﻣﺸﺨﺼﺔ ﺷﻲ ء ﻣﺮﺗﺒﻂ ﺑﺎ ﺑﺮﭼﺴﺐ ﺑﻪ ﺷﻜﻞ ﻣﺸﺎﺑﻬﻲ ﺻﻔﺘﻲ ﺑﻪ ﻧﺎم jwcid ﺑﻪ آن ﺑﺮﭼﺴﺐ اﺿﺎﻓﻪ ﻣﻲ ﻛﻨﻴﻢ. - ﺗﻌﺮﻳﻒ و ﻣﻘﺪاردﻫﺎي ﺻﻔﺖ ﺑﺮاي ﺻﻔﺤﻪ : ﺑﺮاي ﺗﻌﺮﻳﻒ ﺻﻔﺖ ﻫﺎﻳﻲ ﻛﻪ ﻣﻲ ﺗﻮان ﺑﻪ ﺻﻔﺤﺎت وب اﺧﺘﺼﺎص داد از ﻫﻤﺎن ﺗﺎﻳﭗ ﻫﺎي ﺣﺎﺷﻴﻪ ﻧﻮﻳﺴﻲ در J2SE 5.0 اﺳﺘﻔﺎده ﻣﻲ ﻛﻨﻴﻢ. درج ﺻﻔﺎت روي 20 ﺻﻔﺤﻪ ﻧﻴﺰ در ﻗﺎﻟﺐ ﺗﻮﺿﻴﺢ ﺻﻮرت ﻣﻲ ﮔﻴﺮد ( ﻣﺸﺎﺑﻪ XDoclet ) . در ﻣﺜﺎل زﻳﺮ ﻳﻚ ﺗﺎﻳﭗِ ﺣﺎﺷﻴﻪ ﻧﻮﻳﺴﻲ ﺑﻪ ﻧﺎم PagePermissions ﻛﻪ ﻣﻲ ﺗﻮان از آن ﺑﺮاي ﻣﺤﺪود ﻛﺮدن دﺳﺘﺮﺳﻲ اﺳﺘﻔﺎده ﻛﺮد ﺗﻌﺮﻳﻒ ﺷﺪه و در ﻳﻚ ﺻﻔﺤﻪ از آن اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ:

//PagePermissions.java //adminsOnly.jsp public @interface PagePermissions{ <%--- public String[] value(); @PagePermissions({“admin”}) } ---%> ...

ﻧﺤﻮة اﻋﻤﺎل ﺗﻨﻈﻴﻤﺎت ﺑﺮاي اﻋﻤﺎل ﺗﻨﻈﻴﻤﺎت ﻣﺸﺨﺺ ﺷﺪه ﺗﻮﺳﻂ ﺻﻔﺎت ﺑﺎﻳﺪ ﭘﻴﺶ ﭘﺮدازﺷﻲ ﺑﺮ روي ﺻﻔ ﺤﺎت اﻧﺠﺎم ﺷﻮد و ﺳﺎﻳﺮ ﻓﺎﻳﻠﻬﺎي ﻣﻮرد ﻧﻴﺎز ﺗﻮﻟﻴﺪ ﺷﻮﻧﺪ و ﻳﺎ ﺑﺮﺧﻲ ﻓﺎﻳﻞ ﻫﺎ وﻳﺮاﻳﺶ ﺷﻮﻧﺪ. ﺑﺮاي اﻳﻦ ﻛﺎر ﻣﺎﻧﻨﺪ XDoclet از Task ﻫﺎي ANT ﺑﻬﺮه ﻣﻲ ﮔﻴﺮﻳﻢ. اﻳﻦ Task ﻫﺎ ﻛﻪ ﻫﺮﻳﻚ ﺑﻪ ﺑﺮﺧﻲ از ﺻﻔﺎت ﺣﺴﺎس ﻫﺴﺘﻨﺪ ﺑﺮﻣﺒﻨﺎي ﻣﻘﺎدﻳﺮ ﺻﻔﺎت اﻗﺪام ﺑﻪ اﻳﺠﺎد ﻳﺎ وﻳﺮاﻳﺶ ﻓﺎﻳﻠﻬﺎ ﻣﻲ ﻛﻨﻨﺪ. ﻧﻤﻮﻧﻪ اي از ﻳﻚ Build ﻓﺎﻳﻞِ ANT ﻣﻲ ﺗﻮاﻧﺪ ﺑﻪ ﺻﻮرت زﻳﺮ ﺑﺎﺷﺪ:

اﻳﻦ Task ﺑﺎ ﻣﺸﺎﻫﺪه ﺻﻔﺖ WelcomeFile در ﻳﻚ ﺻﻔﺤﻪ، اﻗﺪام ﺑﻪ وﻳﺮاﻳﺶ Deployment Descriptor و اﺿﺎﻓﻪ ﻛﺮدن آدرس آن ﺻﻔﺤﻪ در ﻟﻴﺴﺖ ﻓﺎﻳﻞ ﻫﺎي ﺧﻮش آﻣﺪﮔﻮﻳﻲ ﻣﻲ ﻧﻤﺎﻳﺪ: //index.jsp //web.xml <%--- @welcomeFile ---%> /index.jsp ...

ﻧﺘﻴﺠﻪ ﮔﻴﺮي

ﻫﻤﺎن ﮔﻮﻧﻪ ﻛﻪ اﺳﺘﻔﺎده از دﻳﺪﮔﺎه ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ ﺑﺮاي زﺑﺎﻧﻬﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺗﺤﻮل اﻳﺠﺎد ﻛﺮد، ﻣﻲ ﺗﻮاﻧﺪ ايﺮﺑ ايﺮﺑ زﺑﺎﻧﻬﺎي ﻧﺸﺎﻧﻪ ﮔﺬاري در وب ﻧﻴﺰ ﻣﺆﺛﺮ ﺑﺎﺷﺪ و ﺑﺮاي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﺎن ﺳﺎدﮔﻲ، ﺣﺠﻢ ﻛﺪ ﻛﻤﺘﺮ و ﺧﻮاﻧﺎﻳﻲ و ﻗﺎﺑﻠﻴﺖ

19 Tapestry ﻳﻚ ﭼﺎرﭼﻮب ﻣﺘﻦ ﺑﺎز ﺗﻮﺳﻌﻪ ﻣﺆﻟﻔﻪ ﻫﺎي وب ﻣﻲ ﺑﺎﺷﺪ. ﺑﺮاي اﻃﻼﻋﺎت ﺑﻴﺸﺘﺮ ﺑﻪ آدرسِ http://jakarta.apache.org./tapestry ﻣﺮاﺟﻌﻪ ﻧﻤﺎﻳﻴﺪ. 20 Comment

ﻧﮕﻬﺪاري ﺑﻴﺸﺘﺮ را ﺑﻪ ارﻣﻐﺎن آورد. ﻛﺎرﺑﺮدﻫﺎي ﺑﺴﻴﺎري ﺑﺮاي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ در وب وﺟﻮد دارد . در اﻳﻦ ﻣﻘﺎﻟﻪ راه ﻛﺎري ﺑﺮاي اﺳﺘﻔﺎده از اﻳﻦ دﻳﺪﮔﺎه در وب اراﺋﻪ ﮔﺮدﻳﺪ. اﻳﻦ راه ﻛﺎر ﻣﺸﺎﺑﻪ راه ﻛﺎر XDoclet در ﻣﻮرد زﺑﺎﻧﻬﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ و اﻟﺒﺘﻪ ﻣﺒﺘﻨﻲ ﺑﺮ ﺗﺎﻳﭗ ﻫﺎي ﺣﺎﺷﻴﻪ ﻧﻮﻳﺴﻲِ J2SE 5 ﻣﻲ ﺑﺎﺷﺪ.

ﻛﺎرﻫﺎي آﺗﻲ 21 در اﻳﻦ ﻣﻘﺎﻟﻪ ﺑﻪ ﺑﻴﺎن ﻛﻠﻲ راه ﻛﺎر ﭘﺮداﺧﺘﻪ ﺷﺪ. ﻻزﻣﺴﺖ ﻣﺸﺨﺼﺎت دﻗﻴﻖ اﻳﻦ راه ﻛﺎر ﻣﻌﻴﻦ ﮔﺮدد و اﺑﺰارﻫﺎﻳﻲ ﺑﺮاي 22 ﭘﻴﺎده ﺳﺎزي اﻳﻦ اﻣﻜﺎن ﺑﻮﺟﻮد آﻳﻨﺪ. ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ارﺗﺒﺎط ﺗﻨﮕﺎﺗﻨﮓ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺻﻔﺖ ﻣﺒﻨﺎ و ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ وﺟﻪ ﮔﺮا ﺑﻪ ﻧﻈﺮ ﻣﻲ رﺳﺪ ﺷﺒﻴﻪ ﺳﺎزي اﻣﻜﺎﻧﺎت وﺟﻪ ﮔﺮا ﻧﻴﺰ در وب ﻣﻲ ﺗﻮاﻧﺪ ﻣﻮﺟﺐ ﺗﺤﻮل ﺷﮕﺮﻓﻲ در ﺣﻴﻄﻪ ﺗﻮﺳﻌﻪ ﺑﺮﻧﺎﻣﻪ ﻫﺎي 23 ﻣﺒﺘﻨﻲ ﺑﺮ وب اﻳﺠﺎد ﻛﻨﺪ. ﻣﺎ در ﭘﺮوژه ﻣﺘﻦ ﺑﺎز AspectWeb ﻣﻲ ﻛﻮﺷﻴﻢ در آﻳﻨﺪة ﻧﺰدﻳﻚ اﻳﻦ اﻣﻜﺎﻧﺎت را ﻓﺮاﻫﻢ ﻛﻨﻴﻢ.

ﻣﺮاﺟﻊ [1] Java Community Process. 2004. Enterprise JavaBeans TM 3.0 Specification Draft (JSR 220). http://www.jcp.org/en/jsr/detail?id=220 [2] Java Community Process. 2004. A Metadata Facility for the JavaTM Programming Language Specification (JSR 175). http://www.jcp.org/en/jsr/detail?id=175 [3] The XDoclet Project home page. 2004. http://xdoclet.sourceforge.net

21 Specification 22 Aspect Oriented Programming 23 http://aspectweb.sourceforge.net