实习时间:2012-08-27 到2012-10-24 将近两个月的实习时间。
工作背景介绍:
   首先看一下项目的整体架构。通过图来介绍一下项目负责的部分:
   
项目的需求任务是工作流引擎,因为使用Java工作流比较方便,因此,公司选择使用普元平台做了基于普元平台的工作流引擎。通过图,可以观察到客户乃是C++系统,我们做的工作流引擎是相当于客户C++系统的一个插件而已。并且客户的C++系统已经投入使用中了。
为了使公司中的Java引擎能够兼容嵌入到客户的C++系统中,基于这个需求下,我的工作任务诞生了——中间部分的C++通信客户端。
项目技术分析
整体的架构有了,通过图,大概能够知道我负责的C++通信客户端这块的大概技术要求了。中间部分就相当于协调者,协调的主要任务就是通信。
通过这个小内容技术分析,目的不是吹嘘技术,更不是炫耀自己的技术或公司或客户。而是真实的表达出目前市场技术形势以及技术需求,需求有了,才会有明确的学习目标。
首先:C++通信客户端<——>Java工作流引擎
通信方式共有三种:
  1. webserivce,与语言无关的接口。并且是个基于w3c标准。其中,在项目中,我就是通过webserivce来实现C++与Java通信的。其中,C++客户端使用的soap或gsoap。
  2. JNI方式。统称为Java Native Interface,Java本地调用方式。JNI标准已经是Java平台的一部分,允许Java与其他的语言进行通信,一般情况下,主要是为了C或C++设计的。只要他们约定好接口就行。  在JNI方式中,因为本地调用,所以在Java声明方法时,是使用native关键字,说明是非Java语言实现。具体的方法实现则是在C++或C中。
  3. socket通信。socket通信,这部分内容,确实很重要,做过Java客户端的,基本都接触过这socket部分,而我从未接触过java客户端,而是直接上手的java web,所以当时对socket通信,确实有点点难理解。所以没有选择socket通信方式。但是socket通信,在项目中也是重大的部分。
其次:B/S工作流——>C/S客户端
基于普元的Java工作流是B/S网页形式,而客户C++系统,则是纯纯的C/S模式,如何把后台的B/S工作流转化成C/S客户端哩?
因为是初次接触MFC,对于陌生的东东,是需要时间来熟悉的。由于初次接触,所以组长好心提示,做成类似网银加载提示的Active控件。自己手动开发Active控件,对于C++开发者,也许还有难度,更何况对于我呢?呼呼,经过自己上网查资料,嘻嘻,发现B/S转C/S很简单,一个自带的IE控件即可。OK,加载IE控件,URL地址设置成后台引擎的首页,一切搞定。YES,一个IE控件,搞定B/S转C/S。
哈哈,有网的地方,就会有天使。
然后:JSP<——>C++
根据业务的需求,通过后台Java返回的结果,调用本地的业务窗口。通过webserivce,每次都是在服务器端弹出,而不是客户端,所以webserivce这种方式失败。为了实现这个业务功能,所以直接让C++客户端调用,就可以实现客户端弹出相应的业务窗口。因此,JSP需要与C++打交道。所以,通过写js事件,调用C++方法,即可实现。
这部分通信,需要JS与C++通信。主要实现的是Iimdispatch接口。主要是根据名称,循环查找相应的id,然后通过id,查找相应的方法。
还有,C++通信客户端<——>客户C++系统
C++之间的通信,主要是通过函数依赖完成。函数依赖,也就是通过静态链接库或动态链接库方式加载。只要从事C++的,这部分也算是常识了。
这部分重点不是函数依赖,而是socket通信。
因此socket通信,这部分内容,也是我们需要掌握的。
无论是windows底层的socket32 api,还是mfc封装的Csocket,原理都是一样的,只不过,mfc封装的Csocket或java封装的socket,相对于socket32简单些。
在通信的过程中,使用udp方式,因为udp相对于tcp简单,不需连接,不许监听,但是有优点,就会有缺点。udp不如tcp安全。
但是,udp依然可以做到tcp的三次握手。由于业务的需要,在udp之上,又添加了tcp连接。只要udp用的合适,用的好,与tcp无差别。
其中,内部还涉及到了 解析xml,创建xml,这部分的内容也是为通信做准备。
     在技术分析这块,只要总体介绍了工作项目中应用到的技术,而没有具体介绍,在后期博客中会有相应的详细介绍,目的:记录工作经验,同样方便别人。
生活篇
虽然在公司天天加班,但是公司的氛围还是挺好的,嘻嘻,都是一帮刚毕业的”北京青年“。餐桌上有说有笑,有抢有夺,饭后有打有闹。呵呵,所以心情还是挺愉悦滴。
自我感觉,自己还是挺重感情的,喜欢结交朋友,喜欢水浒中的英雄好汉,喜欢桃园三结义,喜欢古惑仔情义。感觉自己就像个男孩子,但是喜欢情义的我,其实,内心也并不宽广。但是吧,生气一会,就没事了。
这次实习的公司,认识了新的朋友,无论是搞安卓的小李子(李冲),还是搞java web的小楚子(楚福伟),还是实习生喜洋洋(陈阳羊),还有最后实习走转行的郝峰o(︶︿︶)o ,还有搞怪的,经常送我小耳钉的人事部的雪娜,还有跟他们合伙对抗“敌人”—王国涛。还有就是不爱说话的技术蛮深的小吴(组长),还有……
突然实习结束,有种舍不得的感觉。喜欢跟他们一块吃饭,喜欢在餐桌上一起打闹,喜欢饭后聊天……
在客户那边,接触最多的也就是小曹了,感觉技术很高,尤其是思维敏捷。在C++上,同样帮助我很多。
可回来的匆忙,无论是公司还是客户,一些可爱的朋友,都没有见面道别……
北京之旅,收获很多。知识,信心,朋友人气……
其实,我对知识并不是太看重,知识,技术,是永远学不完的, 只要会学习,想学习,没有学不会的。
本文章出自:llhhyy1989 http://blog.csdn.net/llhhyy1989/article/details/8127474#comments

两个月C++实习总结篇相关推荐

  1. 华为之我见 --我在华为两个月的实习经历

    本文写给那些希望了解华为工作情况的人:也写给自己. 我是2019年6月末进入华为(成都研究所)实习的,直到8月底结束.这两个月期间做了一些和编程无关的活,比如发送群邮件,主持月度生活会什么的:也做了一 ...

  2. 这两个月找实习的经历

    从3月开始,我就开始向各个公司投递简历,然后复习专业知识,在网上看些面试题笔试题.忙忙碌碌快两个月,终于在这周四拿到了企鹅的OFFER,并毫不犹豫地签约了. 自从这周二的HR面之后,我就开始有点混日子 ...

  3. 亲身历时两个月,这可能是一篇最全面的2021大厂技术岗实习面经

    亲身历时两个月,这可能是一篇最全面的2021大厂技术岗实习面经 本篇仅从个人经历角度讲述2021春季日常实习的求职经历,涉及到微软.商汤.字节跳动.依图.寒武纪.百度.腾讯.旷视.轻舟智航等企业的面试 ...

  4. 第一篇学术演讲准备两个月,去了谷歌却做不了深度学习,听Facebook田渊栋谈人生挑战与选择...

    视学算法转载 来源:从零道一 (公众号ID:goto0011) 第一次 15 分钟的演讲准备了两个月.毕业就进谷歌却只能当螺丝钉.从研究员到研究经理面临角色转换-- 在最近的一次访谈中,Faceboo ...

  5. 大四实习两个月的体会

    我已经去公司实习两个月了.这两个月感觉过的很快,但是又感觉过的很慢,这篇文章我会归属到我的程序人生中,所以这篇文章不介绍什么技术点.去公司的这个两个月我都没有写什么技术文章,因为我确实也没有自认为整理 ...

  6. 如何在两个月的时间内发表一篇EI/SCI论文-我的时间管理心得

    在松松垮垮的三年研究生时期,要说有点像样的成果,也只有我的小论文可以谈谈了.可能有些厉害的角色研究生是丰富而多彩的,而大多数的同学在研究生阶段可能同我一样,是慢悠悠的渡过的,而且可能有的还不如我,我还 ...

  7. 一个二本院校的实习生在南京实习两个月后的记录

    时间过得飞快! 转眼间,实习已经两个月了. 目前的状况就是悲伤一家的php公司要求主动办理离职. 原因其实就是很肩单:经理看我不顺眼,就跟在上学的时候班主任总会看一些学生不顺眼一样,但是唯一不同的就是 ...

  8. 两个月后才更新一篇。。。。LIB和DLL的差别

    两个月后才更新一篇....LIB和DLL的差别  共同拥有两种库: 一种是LIB包括了函数所在的DLL文件和文件里函数位置的信息(入口).代码由执行时载入在进程空间中的DLL提供,称为动态链接库d ...

  9. IT大厂有两个月的实习生吗?IT毕业怎么找实习单位?

    找实习的群体基本是大三党或者研三党,为了不影响秋招,大部分实习生们希望自己既能拥有一个好的实习经历又能控制在2个月之内,不耽误校招.那么IT大厂有两个月的实习生们?IT毕业怎么找实习单位吗? IT大厂 ...

  10. 两个月15斤以上的健康减脂减重法,与饥饿、运动等无关的自我实验的验证方法(第六篇完结,无收费内容)...

    阅读本文前请先看前五篇内容,本文有部分修改,但是涉及前五篇的内容会大量隐藏,只保留关联修改部分,链接如下: 两个月15斤以上的健康减脂减重法,与饥饿.运动等无关的自我实验的验证方法(第五篇) 两个月1 ...

最新文章

  1. 成功案例_网络营销成功案例分析
  2. vba数组下标越界_VBA编程知识点(7)——数组基本知识
  3. 为什么很多招聘信息都要求三年以上的工作经验?
  4. ckeditor java 上传_CKEditor粘贴图片自动上传到服务器(Java版)
  5. php 获取用户名,php 获取Feedburner的用户名示例
  6. Java对正则表达式的支持(二)
  7. 论文笔记:TABERT: Pretraining for Joint Understanding of Textual and Tabular Data
  8. 【ANSYS命令流】加载与求解技术(四):面载荷(节点)的施加 [重点]
  9. 汽车的DFMEA(Design Failure Mode and Effect Analysis)
  10. MySQL体系结构图详解
  11. 通过maven命令获取参数值
  12. 10分钟教你用scratch做一款小游戏,玩游戏不如自己做游戏
  13. 计算机台式内存条,台式电脑怎么装内存条_台式电脑加装内存条方法-win7之家
  14. tms sparkle创建server以及module实例
  15. 蓍草占卜Python法
  16. 手机端点开图片全屏且手指缩放
  17. python调用迅雷下载引擎_python将下载地址转换成迅雷和qq旋风的下载地址
  18. 国家计算机报名730,730分学霸杨晨煜被清华智班录取!学习的专业是......
  19. 20194616 第一次作业
  20. 笔记本电脑出现“正在锁定”,然后就自动关机的解决方案

热门文章

  1. c语言 从高位开始输出整数的各位数字
  2. UE5新功能个人学习笔记
  3. 节后面试必备:多线程和高并发介绍
  4. 队列管理算法及优化策略
  5. Conflux × 双镜博物 | 虎年巨献——东方赛博·圆明园虎首
  6. 2018年世界VR产业大会(一)
  7. Aqemia X赛诺菲:用量子算法探索小分子肿瘤药物研发
  8. 飞凌小课堂丨5G不只是无线---5G流量到有线的转发
  9. 【Linux】 OpenSSH_7.4p1 升级到 OpenSSH_9.3p1(亲测无问题,建议收藏)
  10. cl.exe和link.exe 命令参数详解