1 / 24

Dynamic Aspect C++ Compiler for Inter Hosts/Applications Aspects

Dynamic Aspect C++ Compiler for Inter Hosts/Applications Aspects. By Sufyan Almajali Advisor Prof. Tzilla Elrad. What We Want to Enable. Dynamic Network Security Policy Dynamic WLAN Accounting Policy

heman
Download Presentation

Dynamic Aspect C++ Compiler for Inter Hosts/Applications Aspects

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dynamic Aspect C++ Compiler for Inter Hosts/Applications Aspects By Sufyan Almajali Advisor Prof. Tzilla Elrad

  2. What We Want to Enable • Dynamic Network Security Policy • Dynamic WLAN Accounting Policy • Network applications are only one possible application that can benefit from our extended language. Others could be standalone applications ,peer-to-peer applications, and distributed applications.

  3. Dynamic Network Security Policy

  4. Policy 1: All For all network users, each of the applications start event is logged for auditing purposes users should Policy 2: Sales users should access the network from their own PCs only Policy 3: HR application events (add new employee record), need to be audited along with HR user information

  5. Dynamic WLAN Accounting Policy • Users use different network applications ( services) : Internet Browsing, Network Printing, File service, ..etc. • Charges for the different services should be dynamically controlled.

  6. Challenges • To provide a simple mechanisms to localize a concern across entire network. • To provide a complete dynamic infrastructure ( software and network protocols) at both the application and network levels.

  7. Goals • To design a software system that supports organizational policy changes across a network. • To design a programming language that supports the development of dynamic networks applications and services. • To automate network administration process

  8. AOSD • Using AOSD allows localizing the representation of concerns in modular units. • AOSD Joinpoint model is not network aware. • Joinpoints are only within the same program applications  Pointcut expressions are restricted within application.

  9. Our Approach • Implement a Dynamic AOSD language at the application level  Dynamic Aspect C++ ( DAC++) • Expand the joinpoint model toward networks • Implement a Dynamic AOSD language at the network level(Network Dynamic Aspect C++) NDAC++

  10. DAC++ • Allows Efficient Dynamic Weaving for C++ • The compiler backend has been redesigned to support Meta object data at runtime. • Meta Object data includes • Classes objects information, • Aspect information, and • runtime linking information.

  11. DAC++ v2

  12. New C++ Compiler backend

  13. NDAC++ v3 • Extends the jointpoint model to support pointcut expressions over network. • Supports dynamic network weaving at the network level.

  14. NDAC++ Jointpoint Dimensions • Network • Application (process) • Thread • Class • Instance • Method ( member function) • Variable • Cancel this page

  15. NDAC++ Syntax • Security Policy Example

  16. Defining Join Points and Pointcut Designator • NetworkPC net_pc1(SUBNET,"192.168.64.0/26"); • ApplicationPC app_pc1(ALL,""); • ThreadPC thr_pc1(ALL,””);

  17. Pointcut Definition Examples. 1 NetworkPC net_pc1(BROADCAST,""); 2 NetworkPC net_pc2(SUBNET,"192.168.64.0/26"); 3 NetworkPC net_pc3(HGROUP, "192.168.64.0-63, 192.168.64.128-191"); 4 NetworkPC net_pc4(SUBNET,"192.168.64.64/26"); 5 ApplicationPC app_pc1(ALL,""); 6 ApplicationPC app_pc2(ALL,""); 7 ApplicationPC app_pc3( GROUP, "Salesapp , Adminapp"); 8 ApplicationPC app_pc4(NAMEMATCH,"HRapp"); 9 ClassPC class_pc1(GROUP,”square,rectangle”); 10 MethodPC meth_pc1(GROUP, "add_emp, modify_emp,delete_emp");

  18. Defining Sub-Pointcut Designator and Pointcut Designator over Multi-dimensional Join Point Space 1 SPCD spcd1, spcd2; 2 spcd1.setnetworkpc(net_pc1); 3 spcd1.setapplicationpc(app_pc1); 4 spcd2.setnetworkpc(net_pc1); 5 spcd2.setapplicationpc(app_pc2); 6 spcd2.setmethodpc(meth_pc1); 7 PCD pc1; 8 pc1.add(spcd1); 9 pc1.add(spcd2);

  19. 1 class LoggingPolicy: public Aspect { 2 LoggingPolicy(); 3 Advice() { // code to log user info} 4 ..... // here, programmer can define other member variables and functions 5 } 6 class CheckSalesUsersPolic: public Aspect { 7 CheckSalesUsersPolicy(); 8 Advice() { // code to get user name first, get // machine's mac address next, send to // server for validity and authorize } 9 int main () { 10 WeaveSpecs w1; 11 w1.setweavetarget(Application_W); 12 w1.setweavetype(Start_T); 13 NetworkPC net_pc1(BROADCAST,""); 14 NetworkPC net_pc2(SUBNET,"192.168.64.0/26"); 15 ApplicationPC app_pc1(ALL,"");

  20. 16 SPCD spcd1, spcd2; 17 spcd1.setnetworkpc(net_pc1); 18 spcd1.setapplicationpc(app_pc1); 19 spcd2.setnetworkpc(net_pc1); 20 spcd2.setapplicationpc(app_pc2); 21 PCD pc1,pc2; 22 pc1.add(spcd1); 23 pc2.add(spcd2); 24 LoggingPolicy aspect1; 25 aspect1.setweavespecs(w1); 26 aspect1.setpcd(pc1); 27 CheckSalesUsersPolicy aspect2; 28 aspect2.setweavspecs(w1); 29 aspect2.setpcd(pc2);

  21. Network Weaving Level

  22. Network Weaving Level • IPC over TCP ( Interprocess communication) • Network Weaving Protocol

  23. Questions • ???

  24. Contact Info: • Prof. Tzilla Elrad email: elrad@iit.edu • Sufyan Almajali email: almasuf@iit.edu

More Related